pygipsy.src

        Copyright (c) Kapteyn Astronomical Institute, Groningen 2013
        All Rights Reserved.

Name:         pygipsy.src
Creator:      terlouw
Host:         azarquiel
Date:         Mar 24, 2013
Contents:     pygipsy.doc gipsy.so.make incdir.py logos.qrc setup.py
              gipsy.c gipsy.pyx ggidecl.pxi ggi.pxi pgplotdecl.pxi
              pgplot.pxi qt4logos.pxi c_numpy.pxd

#>            pygipsy.doc
Document:     pygipsy

Purpose:      Python module interfacing with GIPSY

Category:     SYSTEM

File:         pygipsy.src

Author:       J.P. Terlouw

Description:  pygipsy implements a pre-compiled module which can be
              used for writing GIPSY tasks in Python.  Prerequisites are a
              supported architecture (now Linux or MacOS), Python 2.3 or
              higher, and NumPy.  If these requirements are not met, the
              installation procedure will produce a non-functional dummy
              module. When the requirements are met afterwards, the module
              can be built with 'p -rebuild pygipsy.src'.
              Pygipsy is fully documented in GIPSY's web pages.

Use:          From an executable Python program: "import gipsy"
              or "from gipsy import ...".

Updates:      Jul 11, 2007: JPT, Document created.
              Aug 23, 2007: JPT, Bug in Set.wminmax() fixed and
                                 make procedure improved.
              Aug 29, 2007: JPT, Import ggivtk only when necessary.
              Sep 19, 2007: JPT, Fixed cotrans bug, added userangle() and
                                 allow None for Ggi elements' help message.
              May 22, 2008: JPT, Moved from Pyrex to Cython and non-existing
                                 header items now raise KeyError exception. 
              Jun  5, 2008: JPT, Various improvements and extensions.
              Oct 28, 2008: JPT, Threading support for event driven tasks.
              Nov 24, 2008: JPT, Modified for gfortran.
              Jan 27, 2009: JPT, Added Set methods word(), read() and write().
              Feb 19, 2009: JPT, Implemented FITS pseudo sets.
              Feb 26, 2009: JPT, Allow multiple views per set.
              Mar  6, 2009: JPT, Implemented external event handling, PyQt4
                                 connection and the functions evalexpr()
                                 and unitfactor().
              Mar 20, 2009: JPT, Implemented QtLink class.
              Apr  8, 2009: JPT, QtLink improvements; removed PostScript doc.
              Apr 27, 2009: JPT, Implemented alternative WCS headers.
              Jun  8, 2009: JPT, Explicit numpy.int32 in polymask & ellipsemask.
              Feb 28, 2010: JPT, Added gipsy_logo(), returning a QLabel object.
              Aug 23, 2010: JPT, Implemented GTK- and Tk-connections.
              Nov 11, 2010: JPT, Implemented typecli() function.
              Mar  4, 2011: JPT, Added Set.max_cword, largest coordinate word.
              Apr 11, 2011: JPT, Added method Set.tablis().
              Apr 18, 2011: JPT, Added function aborttask(); added attribute
                                 'compare' to class QtLink.
              Apr 21, 2011: JPT, Fixed problem with new Cython's (0.14.1)
                                 handling of freed char* strings.
              May  9, 2011: JPT, Temporarily reverted to Cython 0.11.2 because
                                 of more problems with char* conversions.
              May 10, 2011: JPT, Fixed more char* string problems.
              May 18, 2011: JPT, Fixed string-related bug in Set header access.
              Jun  7, 2011: JPT, Fixed bug in CHAR-typed table column reading.
              Jun 20, 2011: JPT, Added alternative WCS to FITS pseudo set spec.
              Jul 18, 2011: JPT, Improved alternative WCS interaction.
              Jul 31, 2012: JPT, Fixed bug in FITS pseudo set logic.
              Aug 16, 2012: JPT, Suppress exception message from Set.__del__().
              Oct 14, 2012: JPT, Implement TimeCallback for Qt4 and GTK.
              Oct 30, 2012: JPT, Improved keyword reject alert for PyQt4.
              Nov  7, 2012: JPT, New class QtMessage (for keyword reject alerts)
              Dec 14, 2012: JPT, New class InputCallback.
              Dec 27, 2012: JPT, Handle keyword rejects in InputCallback.
              Jan 19, 2013: JPT, Added 'active' argument to InputCallback.
              Mar  6, 2013: JPT, Added functions decodeint() and decodefloat().
              Mar 24, 2013: JPT, Use gcc option -iquote instead of -I-.
#<

#>            gipsy.so.make
SHELL = /bin/sh

DOCUMENTS = pygipsy.doc

HELPERS   = gipsy.so.make incdir.py logos.qrc setup.py

SOURCES   = gipsy.c gipsy.pyx ggidecl.pxi ggi.pxi pgplotdecl.pxi pgplot.pxi \
            qt4logos.pxi c_numpy.pxd

default:: gipsy.so

pack::
	$${gip_sys}/pack.csh pygipsy.src $(DOCUMENTS) $(HELPERS) $(SOURCES)
        
gipsy.so : gipsy.c
	-@rm -f gipsy.so
	-@python setup.py install --install-lib .
	-@if [ ! -r gipsy.so ] ; then \
	touch gipsy.so ;\
	chmod +x gipsy.so ;\
	echo "... a dummy gipsy.so has been created." ;\
	fi
#<

#>            incdir.py
from distutils.sysconfig import get_python_inc
try:
   import numpy
   pi = get_python_inc()
   ni = numpy.get_include()
   print "-I%s -I%s -I%s/numpy" % (pi, ni, ni)
except:
   f = open('gipsy.c', 'w')
   f.write('void dummy_module(void){}\n/* NumPy not available */\n')
   f.close()
#<

#>            logos.qrc
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>gipsy_logo.png</file>
    <file>rug_logo.png</file>
    <file>Kapteyn45.png</file>
</qresource>
</RCC>


#<

#>            setup.py
# setup.py
import os
from distutils.core import setup, Extension
import numpy

ni1 = numpy.get_include()
ni2 = ni1 + '/numpy'

gip_root = os.environ['gip_root']
gip_inc  = os.environ['gip_inc']
gip_lib  = os.environ['gip_lib']
libdirs  = ['/usr/X11R6/lib']
try:
   gflibdir = '/usr/local/gfortran/lib'
   os.stat(gflibdir)
   libdirs.append(gflibdir)
except:
   pass

setup(name="gipsy", version="0.1",
      ext_modules=[Extension("gipsy", ['gipsy.c'],
                             include_dirs=   [ni1, ni2, '/usr/include',
                                              ],
                             extra_compile_args=['-iquote'+gip_inc],
                             library_dirs=   libdirs,
                             libraries=      ['X11', 'Xaw3d','Xmu','Xt',
                                              'Xext','SM','ICE','X11', 'm', 'gfortran'],
                             extra_objects = [gip_lib+'/giplib.a'],
                            )
                  ]
      )
#<

#>            gipsy.c
/* Generated by Cython 0.15.1 on Wed Mar  6 17:12:55 2013 */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#else

#include <stddef.h> /* For offsetof */
#ifndef offsetof
#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif

#if !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

#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif

#if PY_VERSION_HEX < 0x02040000
  #define METH_COEXIST 0
  #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
  #define PyDict_Contains(d,o)   PySequence_Contains(d,o)
#endif

#if PY_VERSION_HEX < 0x02050000
  typedef int Py_ssize_t;
  #define PY_SSIZE_T_MAX INT_MAX
  #define PY_SSIZE_T_MIN INT_MIN
  #define PY_FORMAT_SIZE_T ""
  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
  #define PyInt_AsSsize_t(o)   __Pyx_PyInt_AsInt(o)
  #define PyNumber_Index(o)    PyNumber_Int(o)
  #define PyIndex_Check(o)     PyNumber_Check(o)
  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
#endif

#if PY_VERSION_HEX < 0x02060000
  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
  #define PyVarObject_HEAD_INIT(type, size) \
          PyObject_HEAD_INIT(type) size,
  #define PyType_Modified(t)

  typedef struct {
     void *buf;
     PyObject *obj;
     Py_ssize_t len;
     Py_ssize_t itemsize;
     int readonly;
     int ndim;
     char *format;
     Py_ssize_t *shape;
     Py_ssize_t *strides;
     Py_ssize_t *suboffsets;
     void *internal;
  } Py_buffer;

  #define PyBUF_SIMPLE 0
  #define PyBUF_WRITABLE 0x0001
  #define PyBUF_FORMAT 0x0004
  #define PyBUF_ND 0x0008
  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)

#endif

#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
#endif

#if PY_MAJOR_VERSION >= 3
  #define Py_TPFLAGS_CHECKTYPES 0
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif

#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#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
#endif

#if PY_VERSION_HEX < 0x02060000
  #define PyBytesObject                PyStringObject
  #define PyBytes_Type                 PyString_Type
  #define PyBytes_Check                PyString_Check
  #define PyBytes_CheckExact           PyString_CheckExact
  #define PyBytes_FromString           PyString_FromString
  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
  #define PyBytes_FromFormat           PyString_FromFormat
  #define PyBytes_DecodeEscape         PyString_DecodeEscape
  #define PyBytes_AsString             PyString_AsString
  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
  #define PyBytes_Size                 PyString_Size
  #define PyBytes_AS_STRING            PyString_AS_STRING
  #define PyBytes_GET_SIZE             PyString_GET_SIZE
  #define PyBytes_Repr                 PyString_Repr
  #define PyBytes_Concat               PyString_Concat
  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
#endif

#if PY_VERSION_HEX < 0x02060000
  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif

#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)

#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 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
#endif

#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif

#if PY_VERSION_HEX < 0x03020000
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
#endif


#if PY_MAJOR_VERSION >= 3
  #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 (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
#else
  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
#endif

#if PY_MAJOR_VERSION >= 3
  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
#endif

#if PY_VERSION_HEX < 0x02050000
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
#else
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
#endif

#if PY_VERSION_HEX < 0x02050000
  #define __Pyx_NAMESTR(n) ((char *)(n))
  #define __Pyx_DOCSTR(n)  ((char *)(n))
#else
  #define __Pyx_NAMESTR(n) (n)
  #define __Pyx_DOCSTR(n)  (n)
#endif

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
#define _USE_MATH_DEFINES
#endif
#include <math.h>
#define __PYX_HAVE__gipsy
#define __PYX_HAVE_API__gipsy
#include "numpy/arrayobject.h"
#include "stdlib.h"
#include "stdio.h"
#include "f2cvvdefs.h"
#include "srvreq.h"
#include "userangle.h"
#include "decodeint.h"
#include "decodedble.h"
#include "dcderrstr.h"
#include "keyevents.h"
#include "herevents.h"
#include "eventmonitor.h"
#include "setfblank.h"
#include "gdsd_basic.h"
#include "gds_errstr.h"
#include "gds_extend.h"
#include "gdsc_axnum.h"
#include "gdsc_name.h"
#include "gdsc_origin.h"
#include "gdsc_size.h"
#include "gdsc_range.h"
#include "gdsc_grid.h"
#include "gdsc_word.h"
#include "gdsc_ndims.h"
#include "gdsd_type.h"
#include "gdsd_rreal.h"
#include "gdsd_rdble.h"
#include "gdsd_rint.h"
#include "gdsd_rlog.h"
#include "gdsd_rchar.h"
#include "gdsd_wreal.h"
#include "gdsd_wdble.h"
#include "gdsd_wlog.h"
#include "gdsd_wint.h"
#include "gdsd_wchar.h"
#include "gdsd_wvar.h"
#include "gdsa_tablis.h"
#include "gdsa_tabinq.h"
#include "gdsa_crecol.h"
#include "gdsa_delcol.h"
#include "gdsa_colinq.h"
#include "gdsa_rcreal.h"
#include "gdsa_rcdble.h"
#include "gdsa_rcint.h"
#include "gdsa_rclog.h"
#include "gdsa_rcchar.h"
#include "gdsa_wcreal.h"
#include "gdsa_wcdble.h"
#include "gdsa_wcint.h"
#include "gdsa_wclog.h"
#include "gdsa_wcchar.h"
#include "gdsa_deltab.h"
#include "cotrans.h"
#include "ncoords.h"
#include "dcdpos.h"
#include "gdsd_history.h"
#include "dcdsetdef.h"
#include "minmax3.h"
#include "axtype.h"
#include "dcddble.h"
#include "factor.h"
#include "cubicspline.h"
#include "scanline.h"
#include "ellipsefill.h"
#include "ggi.h"
#include "pgplot.h"
#include "pgellipse.h"
#include "pgbeam.h"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#ifdef PYREX_WITHOUT_ASSERTIONS
#define CYTHON_WITHOUT_ASSERTIONS
#endif


/* inline attribute */
#ifndef CYTHON_INLINE
  #if 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

/* unused attribute */
#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)
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif

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


/* Type Conversion Predeclarations */

#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
#define __Pyx_PyBytes_AsUString(s)   ((unsigned char*) PyBytes_AsString(s))

#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);

static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);

#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))


#ifdef __GNUC__
  /* Test for GCC > 2.95 */
  #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
    #define likely(x)   __builtin_expect(!!(x), 1)
    #define unlikely(x) __builtin_expect(!!(x), 0)
  #else /* __GNUC__ > 2 ... */
    #define likely(x)   (x)
    #define unlikely(x) (x)
  #endif /* __GNUC__ > 2 ... */
#else /* __GNUC__ */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
    
static PyObject *__pyx_m;
static PyObject *__pyx_b;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "gipsy.pyx",
  "ggi.pxi",
  "pgplot.pxi",
  "qt4logos.pxi",
  "c_numpy.pxd",
};

/*--- Type declarations ---*/

#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif

#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
  #define __Pyx_RefNannySetupContext(name)           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
  #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) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name)
  #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 /* CYTHON_REFNANNY */

static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*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); /*proto*/

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

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


static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}


#define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
                                                    __Pyx_GetItemInt_List_Fast(o, i) : \
                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))

static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) {
    if (likely(o != Py_None)) {
        if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
            PyObject *r = PyList_GET_ITEM(o, i);
            Py_INCREF(r);
            return r;
        }
        else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) {
            PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i);
            Py_INCREF(r);
            return r;
        }
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
                                                    __Pyx_GetItemInt_Tuple_Fast(o, i) : \
                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))

static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) {
    if (likely(o != Py_None)) {
        if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, i);
            Py_INCREF(r);
            return r;
        }
        else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) {
            PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i);
            Py_INCREF(r);
            return r;
        }
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}


#define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
                                                    __Pyx_GetItemInt_Fast(o, i) : \
                                                    __Pyx_GetItemInt_Generic(o, to_py_func(i)))

static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) {
    PyObject *r;
    if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) {
        r = PyList_GET_ITEM(o, i);
        Py_INCREF(r);
    }
    else if (PyTuple_CheckExact(o) && ((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
        r = PyTuple_GET_ITEM(o, i);
        Py_INCREF(r);
    }
    else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0))) {
        r = PySequence_GetItem(o, i);
    }
    else {
        r = __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
    }
    return r;
}

static double __Pyx__PyObject_AsDouble(PyObject* obj); /* proto */

#define __Pyx_PyObject_AsDouble(obj) \
    ((likely(PyFloat_CheckExact(obj))) ? \
     PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj))

static CYTHON_INLINE int __Pyx_NegateNonNeg(int b) { 
    return unlikely(b < 0) ? b : !b; 
}
static CYTHON_INLINE PyObject* __Pyx_PyBoolOrNull_FromLong(long b) {
    return unlikely(b < 0) ? NULL : __Pyx_PyBool_FromLong(b);
}

static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/

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

static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void);

#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    if (unlikely(d == Py_None)) {
        __Pyx_RaiseNoneIndexingError();
        return NULL;
    }
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred())
            PyErr_SetObject(PyExc_KeyError, key);
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#else
    #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#endif

static CYTHON_INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (PyList_Append(L, x) < 0) return NULL;
        Py_INCREF(Py_None);
        return Py_None; /* this is just to have an accurate signature */
    }
    else {
        PyObject *r, *m;
        m = __Pyx_GetAttrString(L, "append");
        if (!m) return NULL;
        r = PyObject_CallFunctionObjArgs(m, x, NULL);
        Py_DECREF(m);
        return r;
    }
}

#ifndef __PYX_FORCE_INIT_THREADS
  #if PY_VERSION_HEX < 0x02040200
    #define __PYX_FORCE_INIT_THREADS 1
  #else
    #define __PYX_FORCE_INIT_THREADS 0
  #endif
#endif

static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/

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

static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

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

static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);

#define __Pyx_SetItemInt(o, i, v, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \
                                                    __Pyx_SetItemInt_Fast(o, i, v) : \
                                                    __Pyx_SetItemInt_Generic(o, to_py_func(i), v))

static CYTHON_INLINE int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (!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) {
    if (PyList_CheckExact(o) && ((0 <= i) & (i < PyList_GET_SIZE(o)))) {
        Py_INCREF(v);
        Py_DECREF(PyList_GET_ITEM(o, i));
        PyList_SET_ITEM(o, i, v);
        return 1;
    }
    else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_ass_item && (likely(i >= 0)))
        return PySequence_SetItem(o, i, v);
    else {
        PyObject *j = PyInt_FromSsize_t(i);
        return __Pyx_SetItemInt_Generic(o, j, v);
    }
}

static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/

static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/

static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases); /*proto*/

static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
                                   PyObject *modname); /*proto*/

#define __pyx_binding_PyCFunctionType_USED 1

typedef struct {
    PyCFunctionObject func;
} __pyx_binding_PyCFunctionType_object;

static PyTypeObject __pyx_binding_PyCFunctionType_type;
static PyTypeObject *__pyx_binding_PyCFunctionType = NULL;

static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module); /* proto */
#define __pyx_binding_PyCFunctionType_New(ml, self) __pyx_binding_PyCFunctionType_NewEx(ml, self, NULL)

static int __pyx_binding_PyCFunctionType_init(void); /* proto */

static CYTHON_INLINE fint __Pyx_PyInt_from_py_fint(PyObject *);

static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_fint(fint);

#include <string.h>

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

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

#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
#else
#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
#endif

static CYTHON_INLINE bool __Pyx_PyInt_from_py_bool(PyObject *);

static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_bool(bool);

static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);

static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);

static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);

static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *);

static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *);

static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *);

static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);

static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);

static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);

static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *);

static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);

static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);

static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *);

static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);

static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);

static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);

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

static int __Pyx_check_binary_version(void);

static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);  /*proto*/

static PyObject *__Pyx_ImportModule(const char *name); /*proto*/

static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno,
                               int __pyx_lineno, const char *__pyx_filename); /*proto*/

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

/* Module declarations from 'numpy' */

/* Module declarations from 'c_numpy' */
static PyTypeObject *__pyx_ptype_7c_numpy_dtype = 0;
static PyTypeObject *__pyx_ptype_7c_numpy_ndarray = 0;
static PyTypeObject *__pyx_ptype_7c_numpy_flatiter = 0;
static PyTypeObject *__pyx_ptype_7c_numpy_broadcast = 0;

/* Module declarations from 'gipsy' */
static float __pyx_v_5gipsy_blankpixel_c;
static fchar __pyx_f_5gipsy_tofchar(PyObject *); /*proto*/
static fchar __pyx_f_5gipsy_newfchar(PyObject *); /*proto*/
static PyObject *__pyx_f_5gipsy_delfchar(fchar); /*proto*/
static char **__pyx_f_5gipsy_charlist(PyObject *); /*proto*/
static ident __pyx_f_5gipsy_toident(PyObject *); /*proto*/
static fchar __pyx_f_5gipsy_chardata(PyObject *, PyObject *, PyObject *); /*proto*/
static void __pyx_f_5gipsy_keyproc(ident, char *, int, void *); /*proto*/
static void __pyx_f_5gipsy_timeproc(ident, void *); /*proto*/
static void __pyx_f_5gipsy_cursorproc_c(ident, GgiPlotInfo, void *); /*proto*/
static char *__pyx_f_5gipsy_cvt_name_c(char *); /*proto*/
static char *__pyx_f_5gipsy_cvt_detail_c(char *); /*proto*/
static void __pyx_f_5gipsy_lininterp(float, float, int, float *); /*proto*/
#define __Pyx_MODULE_NAME "gipsy"
int __pyx_module_is_main_gipsy = 0;

/* Implementation of 'gipsy' */
static PyObject *__pyx_builtin_Exception;
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_super;
static PyObject *__pyx_builtin_round;
static PyObject *__pyx_builtin_xrange;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_AttributeError;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_chr;
static PyObject *__pyx_builtin_id;
static char __pyx_k_1[] = "Uncaught Python exception";
static char __pyx_k_3[] = "=";
static char __pyx_k_5[] = "should be number, ndarray or list";
static char __pyx_k_11[] = "datatype= %s";
static char __pyx_k_12[] = "should be number or list";
static char __pyx_k_14[] = " ";
static char __pyx_k_17[] = "Keyword %s already scheduled by InputCallback";
static char __pyx_k_18[] = "Callback object already active";
static char __pyx_k_20[] = "Callback object inactive";
static char __pyx_k_22[] = "Exception from gipsy.keyproc() (keyword %s)";
static char __pyx_k_26[] = "Keyword %s already scheduled";
static char __pyx_k_27[] = "UCAMESSAGE=";
static char __pyx_k_29[] = "REJECTED=";
static char __pyx_k_37[] = "TimeCallback not implemented for this event loop";
static char __pyx_k_40[] = "timeout()";
static char __pyx_k_42[] = "<f4";
static char __pyx_k_43[] = "<f8";
static char __pyx_k_44[] = "<i4";
static char __pyx_k_45[] = "<i8";
static char __pyx_k_46[] = ">f4";
static char __pyx_k_47[] = ">f8";
static char __pyx_k_48[] = ">i4";
static char __pyx_k_49[] = ">i8";
static char __pyx_k_50[] = "Cannot execute";
static char __pyx_k_52[] = "Exited prematurely";
static char __pyx_k_53[] = "Fatal error";
static char __pyx_k_54[] = "User abort";
static char __pyx_k_55[] = "Deputy error, code= %d";
static char __pyx_k_57[] = "Enter text string";
static char __pyx_k_59[] = "Enter up to %d integer number(s)";
static char __pyx_k_61[] = "Enter up to %d logical(s)";
static char __pyx_k_64[] = "Enter up to %d real number(s)";
static char __pyx_k_67[] = "Enter up to %d double(s)";
static char __pyx_k_69[] = "Enter up to %d text string(s)";
static char __pyx_k_74[] = "Enter up to %d angle(s)";
static char __pyx_k_75[] = "";
static char __pyx_k_78[] = "Input not acceptable";
static char __pyx_k_79[] = "odd number of keywords";
static char __pyx_k_80[] = "bad keyword";
static char __pyx_k_81[] = "insufficient space";
static char __pyx_k_82[] = "An error has occurred";
static char __pyx_k_83[] = "Cannot abort task '%s'. Not found.";
static char __pyx_k_84[] = "Cannot connect to PyQt4";
static char __pyx_k_86[] = "activated(int)";
static char __pyx_k_88[] = "Cannot connect to GTK";
static char __pyx_k_90[] = "Cannot connect to Tk";
static char __pyx_k_92[] = "TimeCallback_NotImpl";
static char __pyx_k_93[] = "Bad ellipse parameters";
static char __pyx_k_95[] = "Bad expression (code %d from herinp.dc2) \"%s\"";
static char __pyx_k_96[] = "Cannot convert \"%s\" to \"%s\" (%d)";
static char __pyx_k_97[] = "undefined error";
static char __pyx_k_98[] = "%s (%s)";
static char __pyx_k_99[] = "invalid header key: %s";
static char __pyx_k__N[] = "N";
static char __pyx_k__Y[] = "Y";
static char __pyx_k__a[] = "a";
static char __pyx_k__b[] = "b";
static char __pyx_k__c[] = "c";
static char __pyx_k__g[] = "g";
static char __pyx_k__l[] = "l";
static char __pyx_k__n[] = "n";
static char __pyx_k__r[] = "r";
static char __pyx_k__x[] = "x";
static char __pyx_k__y[] = "y";
static char __pyx_k_100[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static char __pyx_k_101[] = "PC%d_%d";
static char __pyx_k_102[] = "PC%03d%03d";
static char __pyx_k_103[] = "CD%d_%d";
static char __pyx_k_104[] = "CD%03d%03d";
static char __pyx_k_105[] = "PV%d_%d";
static char __pyx_k_106[] = "PS%d_%d";
static char __pyx_k_109[] = "GDS -- set does not exist";
static char __pyx_k_112[] = "#";
static char __pyx_k_115[] = "%s: unspecified HDU";
static char __pyx_k_116[] = "%s: HDU %s does not exist";
static char __pyx_k_117[] = "%s: HDU %s has EXTENSION=%s";
static char __pyx_k_118[] = "%s: non-existing alternative WCS '%s'";
static char __pyx_k_119[] = "_tmp_%d_%d";
static char __pyx_k_120[] = "CTYPE%d";
static char __pyx_k_121[] = "CRPIX%d";
static char __pyx_k_122[] = "NAXIS%d";
static char __pyx_k_123[] = "X%d";
static char __pyx_k_124[] = "CRVAL%d";
static char __pyx_k_126[] = "Invalid set object";
static char __pyx_k_130[] = "r+";
static char __pyx_k_131[] = ".image";
static char __pyx_k_132[] = "w+";
static char __pyx_k_133[] = "cannot open image for set %s";
static char __pyx_k_137[] = "No attribute %s";
static char __pyx_k_138[] = "GDS set %s, open= %s";
static char __pyx_k_139[] = "Set(\"%s\")";
static char __pyx_k_140[] = "error using indexing operator";
static char __pyx_k_142[] = "strided column access not yet implemented";
static char __pyx_k_148[] = "error deleting header item";
static char __pyx_k_150[] = "set opened read-only";
static char __pyx_k_152[] = "set %s opened read-only";
static char __pyx_k_153[] = "COPY INSET=%s BOX=%s OUTSET=%s";
static char __pyx_k_155[] = "'%s', level %d";
static char __pyx_k_156[] = "Unknown type in item %s";
static char __pyx_k_157[] = "cannot change NAXIS items";
static char __pyx_k_159[] = "special headers on top level only";
static char __pyx_k_161[] = "number must be greater than 1";
static char __pyx_k_163[] = "number greater than set dimension";
static char __pyx_k_165[] = "incorrect type for %s";
static char __pyx_k_166[] = "%s unsupported for item %s";
static char __pyx_k_172[] = "cotrans error %d";
static char __pyx_k_175[] = "dcdpos error %d";
static char __pyx_k_177[] = "box outside set";
static char __pyx_k_180[] = "Input string longer than internal buffer.";
static char __pyx_k_181[] = "Empty input string.";
static char __pyx_k_182[] = "Set does not exist.";
static char __pyx_k_183[] = "Set name too long for buffer.";
static char __pyx_k_184[] = "Could not allocate memory to contain axis info.";
static char __pyx_k_185[] = "Axis name not unique.";
static char __pyx_k_186[] = "Integer number expected.";
static char __pyx_k_187[] = "Syntax error.";
static char __pyx_k_188[] = "Could not allocate memory for storing grids positions.";
static char __pyx_k_189[] = "Repeat argument <= 0.";
static char __pyx_k_190[] = "Loop increment is 0.";
static char __pyx_k_191[] = "Infinite loop.";
static char __pyx_k_192[] = "Internal inconsistency.";
static char __pyx_k_193[] = "Axis already defined.";
static char __pyx_k_194[] = "Non existent subset.";
static char __pyx_k_195[] = "Could not allocate memory for storing subset levels.";
static char __pyx_k_196[] = "dcdset code %d (%s)";
static char __pyx_k_198[] = "-";
static char __pyx_k_201[] = "only inside axes have blo";
static char __pyx_k_203[] = "incompatibe box and subset";
static char __pyx_k_206[] = "only inside axes have bhi";
static char __pyx_k_209[] = "%s%d";
static char __pyx_k_210[] = "          ";
static char __pyx_k_213[] = "unsupported widget: %s";
static char __pyx_k_214[] = "<b>";
static char __pyx_k_216[] = "</b>";
static char __pyx_k_218[] = "QLabel { color: %s; background-color: %s }";
static char __pyx_k_219[] = "setAutoFillBackground";
static char __pyx_k_221[] = "hide()";
static char __pyx_k_223[] = "container mismatch";
static char __pyx_k_224[] = "cannot open MPEG recorder on base object";
static char __pyx_k_225[] = "cannot open MPEG recorder";
static char __pyx_k_226[] = "cannot record MPEG frame";
static char __pyx_k_227[] = "cannot construct MPEG movie";
static char __pyx_k_228[] = "Input set/subset";
static char __pyx_k_230[] = "PlotField frame allocation failure";
static char __pyx_k_232[] = "PlotField color allocation failure";
static char __pyx_k_233[] = "Too many color spans";
static char __pyx_k_236[] = "Another callback is active for plotter %s";
static char __pyx_k_237[] = "unequal list lengths";
static char __pyx_k_238[] = "pgctab: invalid color tables";
static char __pyx_k_239[] = "qRegisterResourceData";
static char __pyx_k_240[] = "qUnregisterResourceData";
static char __pyx_k_241[] = ":gipsy_logo.png";
static char __pyx_k_244[] = ":Kapteyn45.png";
static char __pyx_k_247[] = "cannot run in this architecture: pointer longer than long";
static char __pyx_k_249[] = "INPUT=";
static char __pyx_k_250[] = "unknown type of axis";
static char __pyx_k_251[] = "spatial axis longitude";
static char __pyx_k_252[] = "spatial axis latitude";
static char __pyx_k_253[] = "spectral axis frequency";
static char __pyx_k_254[] = "spectral axis velocity";
static char __pyx_k_255[] = "spectral axis wavelength";
static char __pyx_k_256[] = "spectral axis inverse wavelength";
static char __pyx_k_257[] = "spectral axis log(wavelength)";
static char __pyx_k_258[] = "time axis";
static char __pyx_k_259[] = "polarisation axis";
static char __pyx_k_260[] = "parameter axis";
static char __pyx_k_261[] = "sample axis of IRAS data";
static char __pyx_k_262[] = "tick axis of IRAS data";
static char __pyx_k_263[] = "detector axis of IRAS data";
static char __pyx_k_264[] = "snip axis of IRAS data";
static char __pyx_k_269[] = "AITOFF equal area";
static char __pyx_k_271[] = "equivalent cylindrical";
static char __pyx_k_277[] = "global sinusoidal";
static char __pyx_k_279[] = "north celestial pole (WSRT)";
static char __pyx_k_282[] = "Mercator projection";
static char __pyx_k_284[] = "unknown velocity system";
static char __pyx_k_288[] = "editingFinished()";
static char __pyx_k_289[] = "toggled(bool)";
static char __pyx_k_290[] = "valueChanged(int)";
static char __pyx_k_291[] = "valueChanged(double)";
static char __pyx_k_292[] = "Abstract class of pop-up elements";
static char __pyx_k_293[] = "Abstract class of pop-up elements which can contain other elements.";
static char __pyx_k_294[] = "Abstract class of analog valuators";
static char __pyx_k_295[] = "Prompter: GgiPrompter.dc2";
static char __pyx_k_296[] = "\000\000\203\301\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000L\000\000\000n\010\006\000\000\000\215\363\365\026\000\000\000\006bKGD\000\377\000\377\000\377\240\275\247\223\000\000\000\tpHYs\000\000\013\022\000\000\013\022\001\322\335~\374\000\000\000\007tIME\007\331\003\t\n\034\023\254\023KH\000\000 \000IDATx\001\000{\204\200\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000m\000\000\000a\000\000\000\024\000\000\000\314\000\000\000\210\000\000\000\306\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\247\000\000\000U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000Q\000\000\000\266\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\227\000\000\000U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\255\000\000\000G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\026\000\000\000\023\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000Z\000\000\0004\000\000\000\367\000\000\000\331\000\000\000\272\000\000\000\341\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000\254\000\000\000\240\000\000\000s\000\000\000\270\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\252\000\000\000\333\000\000\000\317\000\000\000\367""\000\000\0002\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\0006\000\000\000\"\000\000\000\356\000\000\000\265\000\000\000\305\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\211\000\000\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\000\000\000Y\000\000\000\271\000\000\000\001\000\000\000U\000\000\000\370\000\000\000\262\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\000\000\000\276\000\000\000,\000\000\000\000\000\000\000v\000\000\000T\000\000\0006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000^\000\000\000B\000\000\000\000\000\000\000z\000\000\000\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\034\000\000\000I\000\000\000\275\000\000\000\336\000\000\000\003\000\000\000\234\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000)\000\000\000\340\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\352\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\000\000\000\330\000\000\000\324\000\000\000\000\000\000\000\303\000\000\000u\000\000\000\311\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\215\000\000\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\336\000\000\000\346\000\000\0005\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\367\000\000\0008\000\000\000\322\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000s\000\000\000r\000\000\000\027\000\000\000\310\000\000\000F\000\000\000\246\000\000\000L\000\000\000\377\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000X\000\000\000\251\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\323\000\000\000\231\000\000\000,\000\000\000\304\000\000\000\221\000\000\0003\000\000\000\373\000\000\000\000\000\000\000=\000\000\000\303\000\000\000\205\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\247\000\000\0000\000\000\000=\000\000\000G\000\000\000\350\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\000\000\000\276\000\000\000\211\000\000\000\027\000\000\000\000\000\000\000\376\000\000\000o\000\000\000L\000\000\000l\000\000\0007\000\000\000\322\000\000\000\342\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001s\000\000\000s\000\000\000\271\000\000\000m\000\000\000\005\000\000\000\357\000\000\000\024\000\000\000\317\000\000\000\007\000\000\000\020\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\211\000\000\000x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\000\000\000\322\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\371\000\000\000*\000\000\000\336\000\000\000\000\000\000\000\000\000\000\000~\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\300\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\307\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\000\000\000\013\000\000\000\236\000\000\000i\000\000\000\000\000\000\000\017\000\000\000\"\000\000\000\244\000\000\000\001\000\000\000D\000\000\000\346\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\215\000\000\000(\000\000\000a\000\000\000\364\000\000\000\357\000\000\000\000\000\000\000\354\000\000\000\223\000\000\000\025\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000s\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\366\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\363\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\000\000\370\000\000\000{\000\000\000\000\000\000\000\000\000\000\000\361\000\000\000\317\000\000\0001\000\000\0002\000\000\000\346\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\362\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\331\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\035\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000k\000\000\000\201\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000\346\000\000\000\327\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000y\000\000\000\010\000\000\000\000\000\000\000.\000\000\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\303\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\204\000\000\0009\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\331\000\000\000\361\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\370\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\233\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\275\000\000\000\000\000\000\000U\000""\000\000\252\000\000\000\000\000\000\000\253\000\000\000W\000\000\000\377\000\000\000\000\000\000\000j\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\353\000\000\000\021\000\000\000\004\000\000\000\325\000\000\000\343\000\000\000:\000\000\000\016\000\000\000\360\000\000\000\007\000\000\000\t\000\000\000\000\000\000\000\341\000\000\0003\000\000\000\355\000\000\000\000\000\000\000$\000\000\000\326\000\000\000\005\000\000\000\344\000\000\000*\000\000\000\363\000\000\000\000\000\000\000\315\000\000\0002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000G\000\000\000\277\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\306\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000+\000\000\000\000\000\000\000\000\000\000\000K\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\234\000\000\000\324\000\000\000\000\000\000\000\274\000\000\000j\000\000\000\372\000\000\000\000\000\000\000+\000\000\000H\000\000\000\016\000\000\000\000\000\000\000\323\000\000\000k\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\355\000\000\000\000\000\000\000\000\000\000\000C\000\000\000\005\000\000\000\000\000\000\000\026\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\363\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\312\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\274\000\000\000\337\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000\352\000\000\000\000\000\000\000\000\000\000\000\261\000\000\000\366\000\000\000\000\000\000\000\375\000\000\000\037\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000x\000\000\000\225\000\000\000\233\000\000\000\215\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000;\000\000\000\\\000\000\000\227\000\000\000\247\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\037\000\000\000\000\000\000\000\000\000\000\000\306\000\000\000\344\000\000\000\000\000\000\000\000\000\000\000\315\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\000\000\367\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\341\000\000\000z\000\000\000\000\000\000\000\370\000\000\000\205\000\000\000\350\000\000\000\002\000\000\000\363\000\000\000\000\000\000\000\003\000\000\000c\000\000\000\004\000\000\000\000\000\000\000\r\000\000\000\254\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\265\000\000\000l\000\000\000(\000\000\000\036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000c\000\000\000\274\000\000\000j\000\000\000\352\000\000\000\000\000\000\000\000\000\000\000_\000\000\000y\000\000""\000\000\000\000\000\000\000\000\000#\000\000\0008\000\000\000\000\000\000\000\000\000\000\000\335\000\000\000\000\000\000\000\262\000\000\000\276\000\000\000\000\000\000\000\345\000\000\000~\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\000\000\000\322\000\000\000\010\000\000\000E\000\000\000\227\000\000\000C\000\000\000\355\000\000\000\000\000\000\000\001\000\000\000'\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\304\000\000\000\360\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\236\000\000\000T\000\000\000\316\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\206\000\000\000A\000\000\000\354\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\300\000\000\000\354\000\000\000\000\000\000\000\000\000\000\000\013\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\251\000\000\000P\000\000\000\356\000\000\0000\000\000\000\000\000\000\000\224\000\000\000\372\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\245\000\000\000\000\000\000\0006\000\000\000p\000\000\000\000\000\000\000\376\000\000\000\000\000\000\000\374\000\000\000E\000\000\000\324\000""\000\000\000\000\000\000\000\000\000\000A\000\000\000p\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\344\000\000\000\331\000\000\000\336\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000\371\000\000\000\333\000\000\000\324\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000D\000\000\000}\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\203\000\000\000\263\000\000\000\000\000\000\000\000\000\000\000\355\000\000\000F\000\000\000`\000\000\000\022\000\000\000\353\000\000\000\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\314\000\000\000\002\000\000\000\000\000\000\000\236\000\000\000c\000\000\000\000\000\000\000\000\000\000\000k\000\000\000\221\000\000\000\003\000\000\000\365\000\000\000\013\000\000\000\000\000\000\000\370\000\000\000\324\000\000\000\344\000\000\000\003\000\000\000#\000\000\000*\000\000\000\000\000\000\000\371\000\000\000\243\000\000\000\243\000\000\000\233\000\000\000&\000\000\000\000\000\000\000\362\000\000\000\322\000\000\000\353\000\000\000\010\000\000\000&\000\000\000#\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\006\000\000\000\334\000\000\000D\000\000\000\341\000\000\000\000\000\000\000\004\000\000\000\356\000\000\000\r\000\000\000\000\000\000\000\250\000\000\000Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001""\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\266\000\000\000I\000\000\000\000\000\000\000\331\000\000\000\250\000\000\000\021\000\000\000:\000\000\0004\000\000\000\000\000\000\000\252\000\000\000\210\000\000\000\202\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\364\000\000\000\312\000\000\000\367\000\000\000 \000\000\000*\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\000\000\000}\000\000\000\320\000\000\000\252\000\000\000\032\000\000\000\352\000\000\000\310\000\000\000\317\000\000\000\026\000\000\000b\000\000\000\007\000\000\000\000\000\000\000U\000\000\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\267\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\313\000\000\000\r\000\000\000\025\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\371\000\000\000\352\000\000\000\342\000\000""\000\034\000\000\000\037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\323\000\000\0007\000\000\000\367\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\303\000\000\000\350\000\000\000\034\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\0006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\035\000\000\000\035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\254\000\000\000\367\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000x\000\000\000\032\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\360\000\000\000\360\000\000\000\350\000\000\000\354\000\000\000\351\000\000\000\354\000\000\000\363\000\000\000\364\000\000\000\363\000\000\000\371\000\000\000\374\000\000\000\006\000\000\000\005\000\000\000\014\000\000\000\013\000\000\000\020\000\000\000\024\000\000\000\027\000\000\000\026\000\000\000\030\000\000\000\020\000\000\000\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\000\000\261\000\000\000\321\000\000\000\000\000\000\000\000\000\000\245\315\233\314\000\000 \000IDAT\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000\335\000\000\000\335\000\000\000\351\000\000\000\350\000\000\000\331\000\000\000\331\000\000\000\363\000\000\000\336\000\000\000\373\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\033\000\000\000\336\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000!\000\000\000\024\000\000\000+\000\000\000!\000\000\000\031\000\000\000\033\000\000\000'\000\000\000\033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\237\000\000\000+\000\000\000\300\000\000\000\304\000\000\000\320\000\000\000\340\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\270\000\000\000|\000\000\000\271\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\000\000\000\241\000\000\000\026\000\000\000\323\000\000\000R\000\000\000\335\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\000\000\000S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000*\000\000\000=\000\000\000?\000\000\000/\000\000\000h\000\000\000\264\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\262\000\000\000G\000\000\000\373\000\000\000?\000\000\000\307\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000\211\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\270\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\000""\000\255\000\000\000\000\000\000\000\224\000\000\000n\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\006\000\000\000\364\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\300\000\000\000\342\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\374\000\000\000\263\000\000\000\364\000\000\000\251\000\000\000\315\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\000\000\000a\000\000\000\212\000\000\000H\000\000\000\270\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\275\000\000\000\324\000\000\000\347\000\000\000\267\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\333\000\000\000\244\000\000\000\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\306\000\000\0009\000\000\000\000\000\000\000\204""\000\000\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\354\000\000\000\003\000\000\000\027\000\000\000\025\000\000\000\024\000\000\000\024\000\000\000\016\000\000\000\013\000\000\000\365\000\000\000\001\000\000\000\001\000\000\000\013\000\000\000\363\000\000\000\361\000\000\000\354\000\000\000\354\000\000\000\352\000\000\000\351\000\000\000\021\000\000\000\370\000\000\000\352\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\324\000\000\000+\000\000\000\000\000\000\000f\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000x\000\000\000O\000\000\000\350\000\000\000\220\000\000\000\000\000\000\000\001\000\000\000\035\000\000\000$\000\000\000-\000\000\000 \000\000\000\024\000\000\000\014\000\000\000\036\000\000\000\034\000\000\000\017\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000\361\000\000\000\336\000\000\000\350\000\000\000\362\000\000\000\352\000\000\000\335\000\000\000\322\000\000\000\332\000\000\000\355\000\000\000\000\000\000\000N\000\000\000^\000\000\000\013\000\000\000\267\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\000\026\000\000\000:\000\000\000:\000\000\000.\000\000\000%\000\000\000\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\353\000\000\000\331\000\000\000\316\000\000\000\275\000\000\000\330\000\000\000\343\000\000\000\367\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\000\000\000\313\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\335\000\000\000*\000\000\000\372\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+\000\000\000~\000\000\000\r\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\032\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\000\000\000\274\000\000\000\364\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\363\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000y\000\000\000\344\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001J\000\000\000\262\000\000\000\224\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000""\000\366\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000\367\000\000\000\n\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\372\000\000\000N\000\000\0008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000\223\000\000\000\352\000\000\000\000\000\000\000\022\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\375\000\000\000k\000\000\000\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000-\000\000\000\324\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\340\000\000\000p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\317\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000[\000\000\000\251\000\000\000\014\000\000\000\010\000\000\000\354\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\373\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\002\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\316\000\000\000T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\276\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000l\000\000\000\251\000\000\000\023\000\000\000\310\000\000\000\332\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\212\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\200\000\000\000\000\000\000\0009\000\000""\000\000\000\000\000\000\000\000\0003\000\000\000\245\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\000\000\000\226\000\000\000\016\000\000\000\307\000\000\000+\000\000\000\021\000\000\000\031\000\000\000\000\000\000\000\000\000\000\000l\000\000\000\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\0004\000\000\000&\000\000\000\000\000\000\000\004\000\000\000b\000\000\000\305\000\000\000\247\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000y\000\000\000\267\000\000\000\261\000\000\000/\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\340\000\000\000\342\000\000\000\353\000\000\000\032\000\000\000\000\000\000\000!\000\000\000\266\000\000\000\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\217\000\000\000\000\000\000\000\376\000\000\000\361\000\000\000\356\000\000\000\363\000\000\000\014\000\000\000\000\000\000\000[\000\000\000\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\000\000\000%\000\000\000t\000\000\000\262\000\000\000\264\000\000\000G\000\000\0001\000\000\000:\000\000""\000:\000\000\000\355\000\000\000\274\000\000\000\000\000\000\000\001\000\000\000q\000\000\000\025\000\000\000\362\000\000\000Q\000\000\000\035\000\000\000\277\000\000\000s\000\000\000\"\000\000\000\264\000\000\000\362\000\000\000\347\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000\000\000\207\000\000\000\007\000\000\000\371\000\000\000)\000\000\000\261\000\000\000\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\364\000\000\000<\000\000\000\013\000\000\000\t\000\000\000\346\000\000\000T\000\000\000\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\363\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000N\000\000\000H\000\000\000\037\000\000\000|\000\000\000,\000\000\000\353\000\000\000\256\000\000\000\341\000\000\000\000\000\000\000T\000\000\000\020\000\000\000\000\000\000\000T\000\000\000\025\000\000\000\000\000\000\000\250\000\000\000\323\000\000\000\005\000\000\000\201\000\000\000;\000\000\000G\000\000\000\230\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\366\000\000\000\357\000\000\000\r\000\000\000\240\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235\000\000\000s\000\000\000\016\000\000\000F\000\000\000\021\000\000\000\000\000\000\000\371\000\000\000\356\000\000\000\345\000\000\000D\000\000\000\240\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000q\000\000\000\355\000\000\000\003\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\344\000\000\000c\000\000\000\027\000\000\000\t\000\000\000\235\000\000\000#\000\000\000\277\000\000\000V\000\000\000\260\000\000\000\027\000\000\000\227\000\000\000S\000\000\000\234\000\000\000\374\000\000\000y\000\000\000\205\000\000\000\342\000\000\000j\000\000\000s\000\000\000\000\000\000\000E\000\000\000\034\000\000\000\371\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\273\000\000\0006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\254\000\000\000e\000\000\000\007\000\000\000\212\000\000\000\271\000\000\000n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\256\000\000\000\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\000\000\000\233\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\335\000\000\000\247\000\000\000\355\000\000\000\000\000\000\000\003\000\000\000u\000\000\000Q\000\000\000\312\000\000\000\233\000\000\000\000\000\000\000X\000\000\000\254\000\000\000\014\000\000\000\342\000\000\000\210\000\000\000\342\000\000\000\221\000\000\000@\000\000\000\000\000\000\000\377\000\000\000\327\000\000\000\240\000\000\000\361\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\264\000\000\000-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\262\000\000\000]\000\000\000\377\000\000\000\214\000\000\000g\000\000\000\000\000\000\000#\000\000\000\000\000\000\000\000\000\000\0008\000\000\000\264\000\000\000\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\237\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\000\000\000]\000\000\000\273\000\000\000\334\000\000\000\000\000\000\000\320\000\000\0009\000\000\000\237\000\000\000\024\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000S\000\000\000\004\000\000\000N\000\000\000p\000\000\000\000\000\000\000\000\000\000\000\301\000\000\000\344\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\226\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\277\000\000\000_\000\000\000\370\000\000\000\000\000\000\000\323\000\000\000\314\000\000\000\321\000\000\000\354\000\000\000\000\000\000\000)\000\000\000\244\000\000\000\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\212\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001J\000\000\000\224\000\000\000'\000\000\000\373\000\000\000\013\000\000\000\244\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\343\000\000\000\345\000\000\000!\000\000\000\275\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\001\000\000\000\224\000\000\000\376\000\000\000\370\000\000\000%\000\000\000\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000N\000\000\000\263\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\322\000\000\000;\000\000\000\364\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\377\000\000\000\030\000\000\000\312\000\000\000\035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\222\000\000\000o\000\000\000\000\000\000\000\000\000\000\000\026\000\000\000\322\000\000\000G\000\000\000\321\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\247\000\000\000\022\000\000\0008\000\000\000\006\000\000\000\000\000\000\000\035\000\000\000\035\000\000\000\000\000\000\000\317\000\000\000\276\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\000\000\0009\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\344\000\000\000\306\000\000\000\335\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\315\000\000\000N\000\000\000\364\000\000\000{\000\000\000\341\000\000\000\244\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000 \000\000\000\260\000\000\000\035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000o\000\000\0004\000\000\000o\000\000\000\220\000\000\000\332\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\300\000\000\000\032\000\000\000;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000N\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\361\000\000\000z\000\000\000\356\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\333\000\000\000[\000\000\000\346\000\000\000[\000\000\000\204\000\000\000\360\000\000\000\261\000\000\000\363\000\000\000\000\000\000\000\024\000\000\000\237\000\000\000/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\251\000\000\000j\000\000\000#\000\000\000\216\000\000\000=\000\000\000\362\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000D\000\000\000\215\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000V\000\000\000V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+\000\000\000\255\000\000\000[\000\000\000\364\000\000\000\373\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\355\000\000\000H\000\000\000\336\000\000\000;\000\000\000\244\000\000\000\000\000\000\000\020\000\000\000\025""\000\000\000\363\000\000\000\004\000\000\000\263\000\000\0008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\272\000\000\000]\000\000\000\374\000\000\000\203\000\000\000=\000\000\000\000\000\000\0003\000\000\000\t\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\235\000\000\000\330\000\000\000\026\000\000\000\344\000\000\000\022\000\000\000\036\000\000\000\000\000\000\000\000\000\000\000\321\000\000\000\314\000\000\000\003\000\000\000\000\000\000\000\377\000\000\000\376\000\000\000V\000\000\000\r\000\000\000\000\000\000\000\000\000\000\000\273\000\000\0007\000\000\000\371\000\000\000\"\000\000\000\237\000\000\000L\000\000\000\352\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\342\000\000\000R\000\000\000\336\000\000\000\000\000\000\000\330\000\000\000\203\000\000\000\020\000\000\000\n\000\000\000\366\000\000\000\r\000\000\000\245\000\000\0008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\274\000\000\000R\000\000\000\373\000\000\000\000\000\000\000\202\000\000\000\307\000\000\000\005\000\000\000\361\000\000\000\003\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\263\000\000\000;\000\000\000a\000\000\0008\000\000\000h\000\000\000\260\000\000\000\355\000\000\000\314\000\000\000\n\000\000\000\357\000\000\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000T\000\000\000\207\000\000\000Z\000\000\000""\014\000\000\000\354\000\000\000~\000\000\000a\000\000\000\217\000\000\000\266\000\000\000\353\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\360\000\000\000g\000\000\000\315\000\000\000\000\000\000\000\000\000\000\000\355\000\000\000~\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\231\000\000\000M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\311\000\000\000Z\000\000\000\373\000\000\0004\000\000\000\324\000\000\000\330\000\000\000\330\000\000\000\000\000\000\000\000\000\000\000.\000\000\000\n\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\354\000\000\000\306\000\000\000Z\000\000\000{\000\000\000\242\000\000\000\222\000\000\000q\000\000\000d\000\000\000N\000\000\000\203\000\000\000\013\000\000\000\000\000\000\000#\000\000\000\265\000\000\000\312\000\000\000z\000\000\000\261\000\000\000\222\000\000\000%\000\000\000\347\000\000\000^\000\000\000\366\000\000\000\362\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000\377\000\000\000O\000\000\000\270\000\000\000R\000\000\000\250\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\336\000\000\000L\000\000\000\353\000\000\000\203\000\000\000\313\000\000\000h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\255\000\000\000\017\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\342\000\000\000\342\000\000\000\010\000\000\000\206\000\000\000\314\000\000\000!\000\000\000\344\000\000\000t\000\000\000\000\000\000\000|\000\000\000[\000\000\000\355\000\000\0000\000\000\000\004\000\000\000\376\000\000\000*\000\000\000~\000\000\000\017\000\000\000\205\000\000\000+\000\000\000\322\000\000\000\322\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\374\000\000\000e\000\000\000\302\000\000\000>\000\000\000\214\000\000\000!\000\000\000\273\000\000\000\235\000\000\000\000\000\000\000\002\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000\0007F\227\322\000\000 \000IDAT\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\335\000\000\000M\000\000\000\354\000\000\000\202\000\000\000u\000\000\000\000\000\000\000)\000\000\000\000\000\000\000\000\000\000\000\025\000\000\000\247\000\000\000$\000\000\000\373\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\000\000\000:\000\000\000\004\000\000\000\037\000\000\000Q\000\000\000\271\000\000\000\206\000\000\000\352\000\000\000\206\000\000\000\025\000\000\0004\000\000\000\310\000\000\000\254\000\000\000(\000\000\000\313\000\000\000\240\000\000\000*\000\000\000+\000\000\000\000\000\000\000P\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\200\000\000\000\240\000\000\000\002\000\000\000\233\000\000\000!\000\000\000\000\000\000\000.\000\000\000\000\000\000\000\000\000\000\000t\000\000\000~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\353\000\000\000V\000\000\000\327\000\000\000\000\000\000\000\001\000\000\000\364\000\000\000\363\000\000\000\010\000\000\000\000\000\000\000\006\000\000\000\234\000\000\000C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\367\000\000\000f\000\000\000&\000\000\000\220\000\000\000\271\000\000\000'\000\000\000?\000\000\000\262\000\000\000{\000\000\000J\000\000\0000\000\000\000\242\000\000\000\233\000\000\000\353\000\000\000\024\000\000\000\243\000\000\000\350\000\000\000\216\000\000\000\n\000\000\000\311\000\000\000\265\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\350\000\000\000\000\000\000\000\376\000\000\000]\000\000\000A\000\000\000\t\000\000\000\321\000\000\000\000\000\000\000|\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\365\000\000\000H\000\000\000\316\000\000\000\000\000\000\000\000\000\000\000~\000\000\000\224\000\000\000\004\000\000\000\370\000\000\000\000\000\000\000\256\000\000\000K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\367\000\000\000\004\000\000\0001\000\000\000!\000\000\000\036\000\000\000\337\000\000\000\220\000\000\000\010\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\035\000\000\000\005\000\000\000\311\000\000\000\232\000\000\000?\000\000\000\030\000\000\000\024\000\000\000(\000\000\000\230\000\000\000\373\000\000\000""\006\000\000\000-\000\000\000\034\000\000\000\340\000\000\000\321\000\000\000\000\000\000\000\350\000\000\000)\000\000\000*\000\000\000\377\000\000\000\320\000\000\000\211\000\000\000\000\000\000\000\000\000\000\000\\\000\000\000\201\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\356\000\000\000]\000\000\000\316\000\000\000I\000\000\000c\000\000\000m\000\000\000\347\000\000\000\351\000\000\000\000\000\000\000\004\000\000\000\232\000\000\000K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\000\310\000\000\000\316\000\000\000\200\000\000\000\247\000\000\000_\000\000\000!\000\000\000\370\000\000\000\n\000\000\000\013\000\000\000\000\000\000\000\037\000\000\000\373\000\000\000o\000\000\000\335\000\000\000\300\000\000\000\334\000\000\000\322\000\000\000w\000\000\000!\000\000\000z\000\000\000H\000\000\000\001\000\000\000\365\000\000\000\020\000\000\000\354\000\000\000\214\000\000\000U\000\000\0006\000\000\000\342\000\000\000\003\000\000\000w\000\000\000\354\000\000\000\235\000\000\000\t\000\000\000\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000g\000\000\000\266\000\000\000O\000\000\000\206\000\000\000*\000\000\000\246\000\000\000\256\000\000\000\000\000\000\000\000\000\000\000\210\000\000\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\314\000\000\000\314\000\000\000\000\000\000\000\345\000\000\000K\000\000\000\000\000\000\000!\000\000\000\276\000\000\000\n\000\000\000\013\000\000\000\000\000\000\000\031\000\000\000\000\000\000\000\373\000\000\000:\000\000\000\351\000\000\000\306\000\000\000\202\000\000\000p\000\000\000\002\000\000\000\274\000\000\000b\000\000\000\334\000\000\000\000\000\000\000\000\000\000\000:\000\000\000\221\000\000\000\274\000\000\000?\000\000\000\366\000\000\000\000\000\000\000\000\000\000\0000\000\000\000J\000\000\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000V\000\000\000\260\000\000\000\001\000\000\000\214\000\000\000$\000\000\000\000\000\000\0005\000\000\000\256\000\000\000\000\000\000\000\222\000\000\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\254\000\000\000\370\000\000\000j\000\000\000*\000\000\000\327\000\000\000e\000\000\000\014\000\000\000\000\000\000\000*\000\000\000>\000\000\000\360\000\000\000\227\000\000\000\244\000\000\000\037\000\000\000x\000\000\000\271\000\000\000\235\000\000\000\000\000\000\000\013\000\000\000C\000\000\000\020\000\000\000\320\000\000\000\306\000\000\000\273\000\000\000\327\000\000\000\366\000\000\000\000\000\000\000\007\000\000\000;\000\000\000\305\000\000\000\320\000\000\000\234\000\000\000t\000\000\000_\000\000\000\026\000\000\000\000\000\000\000\000\000\000\000\363\000\000\000{\000\000\000\260\000\000\000\000\000\000\000\377\000\000\000e\000\000\000@\000\000\000\005\000\000\000\315\000\000\000\000\000\000\000t\000\000\000m\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\365\000\000\000\034\000\000\000t\000\000\000\003\000\000\000\030\000\000\000\333\000\000\000\333\000\000\000)\000\000\000\260\000\000\000S\000\000\0004\000\000\000\024\000\000\0002\000\000\000u\000\000\000\274\000\000\000\000\000\000\000\"\000\000\000=\000\000\000\342\000\000\000\\\000\000\000\000\000\000\000\010\000\000\000\335\000\000\000\004\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\204\000\000\000V\000\000\000\364\000\000\000\013\000\000\000v\000\000\000\214\000\000\000P\000\000\000D\000\000\0008\000\000\000\307\000\000\000\223\000\000\000\031\000\000\000\035\000\000\000\312\000\000\000\300\000\000\000\300\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\371\000\000\000\374\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\226\000\000\000~\000\000\000|\000\000\000\300\000\000\000H\000\000\000'\000\000\000\000\000\000\000a\000\000\000'\000\000\000\377\000\000\000U\000\000\000Y\000\000\000\274\000\000\000\037\000\000\0004\000\000\000~\000\000\000\031\000\000\000\336\000\000\000\r\000\000\000%\000\000\000\326\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\360\000\000\000\363\000\000\000\372\000\000\000\232\000\000\000&\000\000\000\005\000\000\000\232\000\000\000V\000\000\000\\\000\000\000\365\000\000\000\006\000\000\000\254\000\000\000\310\000\000\0002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000o\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\371\000\000\000Y\000\000\000\354\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\367\000\000\000\260\000\000\000\276\000\000\000\032\000\000\000\300\000\000\000\372\000\000\000\000\000\000\000\325\000\000\000\325\000\000\000)\000\000\000\351\000\000\000*\000\000\000y\000\000\000\013\000\000\000\363\000\000\000\376\000\000\000\377\000\000\000\021\000\000\000\355\000\000\000\236\000\000\000N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\013\000\000\000\377\000\000\000\372\000\000\000\320\000\000\000W\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\364\000\000\000\010\000\000\000\272\000\000\000:\000\000\000\001\000\000\0004\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\212\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\363\000\000\000[\000\000\000\266\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\353\000\000\000\353\000\000\000z\000\000\000\000\000\000\000\331\000\000\000b\000\000\000D\000\000\000\362\000\000\000\003\000\000\000\023\000\000\000\324\000\000\0008\000\000\000\000\000\000\000\231\000\000\000\003\000\000\000\347\000\000\000\025\000\000\000\301\000\000\000\264\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\310\000\000\000q\000\000\000\267\000\000\000\304\000\000\000\221\000\000\000\215\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\374\000\000\000\332\000\000\000#\000\000\000\n\000\000\000\035\000\000\000\000\000\000\000G\000\000\000\256\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000o\000\000\000\255\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\230\377\000\000\243\001\000\000\365\000\000\000\000\000\000\000\371\000\000\000\003\000\000\000\366\000\000\000\313\000\000\0004\000\000\000\207\000\000\000\260\000\000\000\326\000\000\000\331\000\000\000\000\000\000\000\000\000\000\000\302\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\000\000\000w\000\000\000\031\000\000\000\350\000\000\000!\000\000\000\202\000\000\000\366\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\376\000\000\000f\000\000\000\014\000\000\000\006\000\000\000\362\000\000\000H\000\000\000\246\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\000\247\000\000""\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\277\000\000\000\000\000\000\000\257\000\000\000\001\000\000\000(\000\000\000%\000\000\000\277\000\000\000Y\000\000\000\233\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000q\000\000\000\372\000\000\000\315\000\000\000\343\000\000\000\026\000\000\000\341\000\000\000\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\364\000\000\000\000\000\000\000/\000\000\000\242\000\000\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000{\000\000\000\260\000\000\000S\000\000\000\275\000\000\000\373\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\331\000\000\000\305\000\000\000\032\000\000\000\022\000\000\000V\000\000\000\033\000\000\000\222\000\000\000\264\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\367\000\000\000+\000\000\000\205\000\000\000""\261\000\000\000\360\000\000\000e\000\000\000\000\000\0005\000\000\000\017\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\000\000\274\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\000\000\000\211\000\000\000{\000\000\000\254\000\000\000o\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\n\000\000\000;\000\000\000\006\000\000\0005\000\000\000\020\000\000\000\252\000\000\000\356\000\000\000\214\000\000\000\020\000\000\0002\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000\030\000\000\000\376\000\000\000\345\000\000\000\377\000\000\000\367\000\000\000\033\000\000\000\351\000\000\000e\000\000\000\032\000\000\000\231\000\000\000\331\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000(\000\000\000\263\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\200\000\000\000\206\000\000\000y\000\000\000\000\000\000\000>\000\000\000\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\365\000\000\000N\000\000\000\213\000\000\000x\000\000\000\247\000\000\000?\000\000\000\371\000\000\000\020\000\000\000\316\000\000\000\241\000\000\000\004\000\000\000\000\000\000\000\377\000\000\000\010\000\000\000\320\000\000\000\335\000\000\000h\000\000\000\025\000\000\000\001\000\000\000\320\000\000\000\350\000\000\000\n\000\000\000\367\000\000\000f\000\000\000\000\000\000\000\377\000\000\000\371\000\000\000\036\000\000\000\265\000\000\000#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\000\200\000\000\000\377\000\000\000\327\000\000\000\276\000\000\000\304\000\000\000\350\000\000\000\014\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\377\000\000\000\371\000\000\000\366\000\000\000\003\000\000\000\366\000\000\000\236\000\000\000\353\000\000\000\373\000\000\000\000\000\000\000\347\000\000\000a\000\000\000\000\000\000\000\001\000\000\000\006\000\000\000\355\000\000\000F\000\000\000=\000\000\000\366\000\000\000\365\000\000\000\000\000\000\0002\000\000\000\003\000\000\000B\000\000\000\317\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000k\000\000\000\372\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\303\000\000\000\000\000\000\000\000\000\000\000\243\000\000\000\243\000\000\000\000\000\000\000""\000\000\000\000\026\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000j\000\000\000\016\000\000\000\212\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000K\000\000\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\371\000\000\000\376\000\000\000\371\000\000\000\010\000\000\000\313\000\000\000\034\000\000\000\020\000\000\000\223\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000%\000\000\000\336\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000\351\000\000\000\254\000\000\000\000\000\000\000\223\000\000\000$\000\000\000\005\000\000\000\004\000\000\000\240\000\000\0009\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\340\000\000\000\340\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000O\000\000\000\221\000\000\000\004\000\000\000\246\000\000\000\342\000\000\000\000\000\000\000C\000\000\000\235\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\033\000\000\000\010\000\000\000\366\000\000\000\017\000\000\000\220\000\000\000\323\000\000\000\000\000\000\000\002\000\000\000*\000\000\000\022\000\000\000\232\000\000\0002\000\000\000\366\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\000""\000\000#\000\000\000\251\000\000\000\347\000\000\000\365\000\000\000\202\000\000\000\017\000\000\000\014\000\000\000\023\000\000\000\375\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\034\000\000\000\260\000\000\000\000\000\000\000\000\000\000\000\027\000\000\000\342\000\000\000(\000\000\000\255\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\000\000\000\231\000\000\000\214\000\000\000\013\000\000\000\272\000\000\000\261\000\000\000\000\000\000\000\000\000\000\000z\000\000\000\357\000\000\000\330\000\000\000\366\000\000\000\001\000\000\000\373\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\202\000\000\000\327\000\000\000\350\000\000\000\035\000\000\000\002\000\000\000\326\000\000\000\215\000\000\000\002\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\351\000\000\000q\000\000\000\226\000\000\000\241\000\000\000\346\000\000\000+\000\000\000\277\000\000\000\017\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\203\000\000\000\206\000\000\000}\000\000\000a\000\000\000\364\000\000\000\370\000\000\000_\000\000\000y\000\000\000\\\000\000\000\315\000\000\000\204\000\000\000/\000\000\000\373\000\000\000\t\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\366\000\000\000\273\000\000\000\222\000\000\000\371\000\000\000\037\000\000\000\233\000\000\000\010\000\000\000\000\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\373\000\000\000\220\000\000\000k\000\000\000`\000\000\000\013\000\000\000\247\000\000\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\214\000\000\000~\000\000\000`\000\000\000s\000\000\000\022\000\000\000\375\000\000\000\001\000\000\000>\000\000\000\305\000\000\000;\000\000\000\323\000\000\000c\000\000\000\374\000\000\000\361\000\000\000\265\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\246\000\000\000\322\000\000\000)\000\000\000!\000\000\000\016\000\000\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\264\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000u\000\000\000\000\000\000\000q\000\000\000\017\000\000\000\376\000\000\000\001\000\000\000\376\000\000\000\350\000\000\000(\000\000\000\321\000\000\000\034\000\000\000\267\000\000\000\375\000\000\000\374\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\305\000\000\000\001\000\000\000\310\000\000\000<\000\000\000\374\000\000\000\313\000\000\0000\000\000\000\327\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\007\000\000\000\013\000\000\000\353\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\373\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\000\266\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\\\000\000\000\000\000\000\000\000\000\000\000I\000\000\000!\000\000\000j\000\000\000\013\000\000\000\000\000\000\000\006\000\000\000\001\000\000\000\243\000\000\000\365\000\000\000\000\000\000\000\004\000\000\000\023\000\000\000\377\000\000\000\360\000\000\000\376\000\000\000\372\000\000\000\370\000\000\000\000\000\000\000\000\000\000\000\010\000""\000\000\371\000\000\000\370\000\000\000\274\000\000\000\000\000\000\000\311\000\000\000Q\000\000\000\003\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000W\000\000\000\204\000\000\000\022\000\000\000\302\000\000\000d\000\000\000\352\000\000\000E\000\000\000\007\000\000\000\272\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\002\000\000\000\375\000\000\000\013\000\000\000\227\000\000\0002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\273\000\000\000c\000\000\000\035\000\000\000_\000\000\000\240\000\000\000\344\000\000\000\346\000\000\000K\000\000\000\004\000\000\000\000\000\000\000\203\000\000\000\362\000\000\000\000\000\000\0003\000\000\000Z\000\000\000K\000\000\000\026\000\000\000\377\000\000\000\344\000\000\000\301\000\000\000&\000\000\000\032\000\000\000:\000\000\0007\000\000\000\025\000\000\000\363\000\000\000\325\000\000\000\246\000\000\000\301\000\000\000\323\000\000\000\330\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000D\000\000\000!\000\000\000\366\000\000\000\306\000\000\000R\000\000\000\274\000\000\000O\000\000\000,\000\000\000\004\000\000\000\375\000\000\000\256\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\364\000\000\000\002\000\000\000\005\000\000\000\250\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\314\000\000\000R\000\000""\000\026\000\000\000\240\000\000\000B\000\000\000\n\000\000\000z\000\000\000\000\000\000\000\005\000\000\000\376\000\000\000\000\000\000\000\362\000\000\000\027\000\000\000\226\000\000\000Q\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000.\000\000\000\235\000\000\000\004\000\000\000k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\000\000\000W\000\000\000\333\000\000\000r\000\000\000\264\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\004\000\000\000\000\000\000\000A\000\000\000\\\000\000\000\000\000\000\000\322\000\000\000\271\000\000\000\350\000\000\000\205\000\000\000a\000\000\000\356\000\000\000\223\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\000\000\000\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\354\000\000\000\007\000\000\000\257\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\311\000\000\000O\000\000\000\364\000\000\000\232\000\000\000B\000\000\000\000\000\000\000\037\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\007\000\000\000\"\000\000\000]\000\000\000d\000\000\000\034\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\350\000\000\000\377\000\000\000\031\000\000\000\304\000\000\000d\000\000\000\000\000\000\000 \000\000\000?\000\000\000\351\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000%\000\000\000\263\000\000\000\250\000\000\000\245\000\000\000\275\000\000\000\366\000\000\000H\000\000\000\234\000\000\000H\000\000\000\005\000\000\000~\000\000\000\230\000\000\0002\000\000\000\232\000\000\0004\000\000\000\000\000\000\000\022\000\000\000\000\000\000\000\355\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\362\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\353\000\000\000\004\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\327\000\000\000Z\000\000\000\351\000\000\000\000\000\000\000\240\000\000\000\002\000\000\000\013\000\000\000\333\000\000\000\000\000\000\000\027\000\000\000?\000\000\000_\000\000\000\020\000\000\000\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000k\000\000\000\365\000\000\000\204\000\000\000m\000\000\000;\000\000\000\001\000\000\000/\000\000\000t\000\000\000\272\000\000\0000\217\370Az\000\000 \000IDAT\000\000\000j\000\000\0007\000\000\000\374\000\000\000\303\000\000\000<\000\000\000M\000\000\000\346\000\000\000\374\000\000\000\022\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\300\000\000\000\353\000\000\000\023\000\000\000\375\000\000\000\362\000\000\000\016\000\000\000\350\000\000\000\232\000\000\000\321\000\000\000\007\000\000\000\371\000\000\000\000\000\000\000\000\000\000\000\031\000\000\000\366\000\000\000\362\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\361\000\000\000\344\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\351\000\000\000F\000\000\000\345\000\000\000G\000\000\000\302\000\000\000\272\000\000\000\272\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\264\000\000\0004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\266\000\000\000_\000\000\000\026\000\000\000>\000\000\000~\000\000\000\034\000\000\000\304\000\000\000\000\000\000\000\237\000\000\000\215\000\000\000\273\000\000\000\023\000\000\000\013\000\000\000\001\000\000\000\002\000\000""\000\266\000\000\000e\000\000\000%\000\000\000\222\000\000\000&\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\222\000\000\000j\000\000\000\267\000\000\000\347\000\000\000\246\000\000\000\016\000\000\000\010\000\000\000B\000\000\000W\000\000\000=\000\000\000\353\000\000\000\000\000\000\000\000\000\000\000'\000\000\000\354\000\000\000\372\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\330\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\340\000\000\000H\000\000\000\344\000\000\000{\000\000\000\270\000\000\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\000\000\261\000\000\0004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\267\000\000\000V\000\000\000\021\000\000\000\231\000\000\000\265\000\000\000+\000\000\000_\000\000\000A\000\000\000=\000\000\000b\000\000\000\000\000\000\000{\000\000\000\007\000\000\000&\000\000\000\000\000\000\000\003\000\000\000\214\000\000\000\314\000\000\000\250\000\000\000\001\000\000\000%\000\000\000)\000\000\000)\000\000\000)\000\000\000)\000\000\000\270\000\000\000\306\000\000\000\335\000\000\000\276\000\000\000\030\000\000\000\000\000\000\000\020\000\000\000<\000\000\000\210\000\000\000\353\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\353\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\323\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\355\000\000\000b\000\000\000\320\000\000\000\231\000\000\000\203\000\000\000\000\000\000\000;\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\222\000\000\000H\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\306\000\000\000]\000\000\000\365\000\000\000\272\000\000\000P\000\000\000\000\000\000\000,\000\000\000\000\000\000\000\300\000\000\000\304\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\261\000\000\000\344\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\000\000\020\000\000\000\371\000\000\000\337\000\000\000\343\000\000\000\343\000\000\000\343\000\000\000\345\000\000\000\340\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\372\000\000\000\245\000\000\000\363\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\000\000\000\344\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\342\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000L\000\000\000\310\000\000\000\000\000\000\000\326\000\000\000\332\000\000\000\n\000\000\000\022\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\330\000\000\000L\000\000\000\357\000\000\000\001\000\000\000\312\000\000\000\013\000\000\000\t\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\312\000\000\000\030\000\000\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\000\277\000\000\000\376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\340\000\000\000\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\027\000\000\000\313\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\0002\000\000\000\313\000\000\000\002\000\000\000\362\000\000\000]\000\000\000\262\000\000\000\022\000\000\000\356\000\000\000\000\000\000\000\006\000\000\000\007\000\000\000\000\000\000\000\365\000\000\000\221\000\000\000l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\322\000\000\000N\000\000\000\341\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\005\000\000\000\372\000\000\000#\000\000\000!\000\000\000\270\000\000\000\000\000\000\000\023\000\000\000~\000\000\000b\000\000\000\014\000\000\000\000\000\000\000\373\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\260\000\000\000\220\000\000\000\301\000\000\000\000\000\000\000*\000\000\000\307\000\000\0001\000\000\000\336\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\323\000\000\000\331\000\000\000\365\000\000\000r\000\000\000\262\000\000\000D\000\000\000\326\000\000\000o\000\000\000\000\000\000\000\372\000\000\000\363\000\000\000\363\000\000\000~\000\000\000l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\337\000\000\000\\\000\000\000\341\000\000\000O\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\366\000\000\000\n\000\000\000\234\000\000\0009\000\000\000\000\000\000\000\000\000\000\000\374\000\000\000*\000\000\000\320\000\000\000\344\000\000\000\316\000\000\000\233\000\000\000\000\000\000\000\376\000\000\000\366\000\000\000\366\000\000\000w\000""\000\000q\000\000\000q\000\000\000q\000\000\000l\000\000\000\307\000\000\000\376\000\000\000\364\000\000\000\000\000\000\000\327\000\000\000\233\000\000\000\000\000\000\000\302\000\000\000\035\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000T\000\000\000\332\000\000\000\336\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\262\000\000\000F\000\000\000\235\000\000\000N\000\000\000\237\000\000\000\022\000\000\000V\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\362\000\000\000H\000\000\000\332\000\000\000V\000\000\000\251\000\000\000\261\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\263\000\000\000<\000\000\000\255\000\000\000\000\000\000\000\000\000\000\000\361\000\000\000H\000\000\000\202\000\000\000\n\000\000\000Z\000\000\000\233\000\000\000\301\000\000\000\377\000\000\000\205\000\000\000\263\000\000\000\274\000\000\000\316\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000y\000\000\000`\000\000\000%\000\000\000C\000\000\000'\000\000\000\256\000\000\000\004\000\000\000\025\000\000\000b\000\000\000\335\000\000\000\000\000\000\000\004\000\000\000`\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\234\000\000\000m\000\000\000+\000\000\000\024\000\000\000\020\000\000\000\000\000\000\000 \000\000\000\n\000\000\000\366\000\000\000p\000\000\000x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\347\000\000\000T\000\000\000\332\000\000\000[\000\000\000\244\000""\000\000\000\000\000\000!\000\000\000\001\000\000\000\377\000\000\000\013\000\000\000\241\000\000\000>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\263\000\000\000\205\000\000\000[\000\000\000\270\000\000\000\320\000\000\000\360\000\000\000\306\000\000\000\343\000\000\000\264\000\000\000\227\000\000\000\305\000\000\000#\000\000\000b\000\000\000\033\000\000\000\272\000\000\000\273\000\000\000\357\000\000\000\353\000\000\000=\000\000\000q\000\000\000'\000\000\000\372\000\000\000\000\000\000\000\000\000\000\000=\000\000\000!\000\000\000\273\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\334\000\000\000\342\000\000\000q\000\000\000d\000\000\000\305\000\000\000\016\000\000\000\002\000\000\000\366\000\000\000^\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\362\000\000\000h\000\000\000\306\000\000\000\000\000\000\000\337\000\000\000\307\000\000\000\005\000\000\000\357\000\000\000\010\000\000\000\372\000\000\000\213\000\000\000S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000\310\000\000\000\000\000\000\000\236\000\000\000\375\000\000\000\016\000\000\000$\000\000\000o\000\000\000!\000\000\000\003\000\000\000\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\237\000\000\000\257\000\000\000\340\000\000\000\000\000\000\000\000\000\000\000\312\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\000\000\000\316\000\000\000\335\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\210\000\000\000\222\000\000\000p\000\000\000\331\000\000\000\000\000\000\000\000\000\000\000\\\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000S\000\000\000\274\000\000\000\000\000\000\000\000\000\000\000\306\000\000\000:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\032\000\000\000\224\000\000\000\311\000\000\000\004\000\000\000\352\000\000\000+\000\000\000o\000\000\000\000\000\000\0009\000\000\000F\000\000\000\201\000\000\000\317\000\000\000^\000\000\000\254\000\000\000h\000\000\000\030\000\000\000\340\000\000\000\335\000\000\000(\000\000\000\035\000\000\000\215\000\000\000\302\000\000\000\000\000\000\000\037\000\000\000c\000\000\000J\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\333\000\000\000\215\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\231\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\367\000\000\000Z\000\000\000\274\000\000\000B\000\000\000\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\207\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\346\000\000\000\253\000\000\000h\000\000\000.\000\000\000\265\000\000\000\355\000\000\000\301\000\000\000\351\000\000\000\313\000\000\000\352\000\000\000\000\000\000\000\365\000\000\000\324\000\000\000\313\000\000\000\303\000\000\000""\351\000\000\000\233\000\000\000\007\000\000\000c\000\000\000\342\000\000\000\317\000\000\000\000\000\000\000\000\000\000\000\216\000\000\000\321\000\000\000\275\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\374\000\000\000\207\000\000\000\254\000\000\000\201\000\000\000\034\000\000\000\252\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000y\000\000\000\247\000\000\000&\000\000\000\216\000\000\000/\000\000\000\262\000\000\000\317\000\000\000\000\000\000\000\000\000\000\000u\000\000\000x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000@\000\000\000\010\000\000\0009\000\000\000\247\000\000\000\252\000\000\000U\000\000\000\222\000\000\000\004\000\000\000\024\000\000\000\000\000\000\000\030\000\000\000\002\000\000\000\322\000\000\000\227\000\000\000\001\000\000\000\227\000\000\000\r\000\000\000\370\000\000\000\033\000\000\000\026\000\000\000\363\000\000\000&\000\000\000R\000\000\000R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\000\000\000\266\000\000\000\264\000\000\000\026\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\000\000\000\230\000\000\000\010\000\000\000\301\000\000\000\030\000\000\000\000\000\000\000\037\000\000\000\317\000\000\000\000\000\000\000w\000\000\000\210\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000\211\000\000\000x\000\000\000]\000\000\000\000\000\000B\000\000\000\375\000\000\000^\000\000\000\373\000\000\000\033\000\000\000\000\000\000\000\023\000\000\000\020\000\000\000\213\000\000\000\001\000\000\000\377\000\000\000\325\000\000\000\023\000\000\000N\000\000\000\376\000\000\000\356\000\000\000\004\000\000\000\257\000\000\000\242\000\000\000\257\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\000\000\000d\000\000\000\332\000\000\000\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\230\000\000\000\000\000\000\000\373\000\000\000\211\000\000\000.\000\000\000\014\000\000\000\372\000\000\000\000\000\000\000c\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\355\000\000\000\276\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\371\000\000\000\336\000\000\000\000\000\000\000\222\000\000\000=\000\000\000\036\000\000\000>\000\000\000\274\000\000\000\345\000\000\000(\000\000\000\000\000\000\000\020\000\000\000\032\000\000\000\356\000\000\000t\000\000\000\253\000\000\000\007\000\000\000{\000\000\000\344\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000#\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\347\000\000\000r\000\000\000\230\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\222\000\000\000\202\000\000\000\000\000\000\000\000\000\000\000\375\000\000\000\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\000\000\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\367\000\000\000n\000\000\000\314\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000V\000\000\000E\000\000\000\347\000\000\000V\000\000\000\035\000\000\000\000\000\000\000\351\000\000\000j\000\000\000\255\000\000\000I\000\000\000'\000\000\000\261\000\000\000\342\000\000\000\000\000\000\000\000\000\000\000I\000\000\000{\000\000\000W\000\000\000\351\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\000\000\000o\000\000\000\001\000\000\000\213\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\022\000\000\0005\000\000\000B\000\000\000\342\000\000\000\307\000\000\000\000\000\000\000\360\000\000\000\277\000\000\000&\000\000\000&\000\000\000\035\000\000\000\020\000\000\000\373\000\000\000\000""\000\000\000#\000\000\000\266\000\000\000\214\000\000\000\256\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\226\000\000\000_\000\000\000\376\000\000\000\240\000\000\000h\000\000\000\021\000\000\000{\000\000\000n\000\000\000\256\000\000\000S\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\261\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\374\000\000\000l\000\000\000\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\000\000k\000\000\000\317\000\000\000\217\000\000\000+\000\000\000\000\000\000\000\000\000\000\000\354\000\000\000\232\000\000\000\357\000\000\000\340\000\000\000\254\000\000\000\000\000\000\000,\000\000\000\274\000\000\000\261\000\000\000k\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\366\000\000\000b\000\000\000\275\000\000\000\371\000\000\000\211\000\000\000\373\000\000\000\\\000\000\000n\000\000\000\000\000\000\000\035\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\256\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\231\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\365\000\000\000\217\000\000\000\016\000\000\000_\000\000\000\216\000\000\000\000\000\000\000\314\000\000\000G\000\000\000\352\000\000\000\241\000\000\000\254\000\000\000\000\000\000\000.\000\000\000\263\000\000\000\320\000\000\000i\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\376\000\000\000I\000\000\000\233\000\000\000\324\000\000\000>\000\000\000\247\000\000\000\"\000\000\000\r\000\000\000\362\000\000\000\000\000\000\000*\000\000\000\261\000\000\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\373\000\000\000\255\000\000\000\000\000\000\000\315\000\000\000\360\000\000\000\240\000\000\000\343\000\000\000\316\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\270\000\000\000\246\000\000\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000|\000\000\000p\000\000\000\203\000\000\000\212\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\275\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\215\000\000\000t\000\000\000\000\000\000\0003\000\000\000\336\000\000\000\357\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000~\000\000\000y\000\000\000}\000\000\000\213\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\000\000\000\223\000\000\000\303\000\000\000\\\000\000\000\375\000\000\000\301\000\000\000+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000[\000\000\000\000\000\000\000=\000\000\000\302\000\000\000\241\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\037\000\000\000\246\000\000\000/\000\000\000b\000\000\000\252\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\234\000\000\000-\000\000\000\371\000\000\000\325\000\000\000\317\000\000\000+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\241\000\000\000e\000\000\000\000\000\000\000N\000\000\000\261\000\000\000\000\000\000\000@\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\000\000\223\000\000\000\326\000\000\000\337\000\000\000+\000\000\000\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\334\000\000\000M\000\000\000\201\000\000\000\356\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\273\000\000\000k\000\000\000\366\000\000\000\000\000\000\000\375\000\000\000\357\000\000\000\356\000\000\000\004\000\000""\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000r\000\000\000\320\000\000\000>\000\000\000m\000\000\000\\\000\000\000\341\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000_\000\000\000y\000\000\000!\000\000\000\000\000\000\000\000\000\000\000\301\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\014\000\000\000\004\000\000\000\361\000\000\000\371\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000)\000\000\000p\000\000\000V\000\000\000\366\000\000\000\000\000\000\235\000\000\000\375\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\0009\000\000\000c\000\000\000M\000\000\000\362\000\000\000\262\000\000\000\255\000\000\000\306\000\000\000\361\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000;\000\000\000X\000\000\000:\000\000\000\017\000\000\000\303\000\000\000\230\000\000\000\302\000\000\000\365\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\000\000\000R\000\000\000=\000\000\000)\000\000\000\001\000\000\000\332\000\000\000\316\000\000\000\345\000\000\000\352\000\000\000\357\000\000\000\365\000\000\000\373\000\000\000\000\000\000\000\005\000\000\000\014\000\000\000\021\000\000\000\026\000\000\000\034\000\000\0003\000\000\000$\000\000\000\375\000\000\000\325\000\000\000\310\000\000\000\251\000\000\000\331\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\223\003l\374\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\000\0003s&c\257\000\000\003\036IDAT\000\000\000@\000\000\0009\000\000\000$\000\000\000\032\000\000\000\007\000\000\000\377\000\000\000\376\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\370\000\000\000\347\000\000\000\333\000\000\000\305\000\000\000\301\000\000\000\315\000\000\000\370\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\315\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000""\000\000\000\000\000\000\000\000\000\000\021\000\000\000\013\000\000\000\007\000\000\000\003\000\000\000\000\000\000\000\375\000\000\000\370\000\000\000\365\000\000\000\360\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\000\000\000\357\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\241\\\235\010T\232\026\262\000\000\000\000IEND\256B`\202\000""\0004\036\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000M\000\000\000W\010\006\000\000\000AD\310M\000\000\000\001sRGB\000\256\316\034\351\000\000\000\006bKGD\000\377\000\377\000\377\240\275\247\223\000\000\000\tpHYs\000\000\\F\000\000\\F\001\024\224CA\000\000\000\007tIME\007\333\005\001\013\010 ;\223\353x\000\000 \000IDATx\332\314\274\311\263e\331y\335\367\333\335in_\227\231/\373\254\036YU(\000\005\322\222C2hG\330\222\034tX\226\001\207g\362H\021\016\016=/\343\217\360@\366\000\021\0349\n3Q\242lJb\023\266\010\221D\tD\365@Ue\377^\276\376\266\247\333\255\0077\311\260\024\026\211B%%\237Y\276\227\361\342\336u\276\3755\353[k\013\376\212\237\364\316;\362\207w\357\212;\263\231\\e\231\032n[\331F\255\234\3629U\032\304\030G\326\247\221\021\014\242\024C\327\271\261\017a,E\234\204\340\373\"\321\245\244O\2041O3\255Oe\241\316\\\227\316\362R\256u\225uCk\303\267\016\017\203\370\376\367#\377\236\036\361W\361G\337}\367]\265\273[\031\263\210\246Zve\022i\244\264\034\312(\206>\204q$\365}\327n\327MwY!\246\2024\365\370)\301M\\\333\016C\010%B\030\333v\306H\355\2234\265\311\315\254\350\227GYQ>\212I>6\2719P*?B\212\223\024\322Eg\365:\273\262\266\353\365\025\377\335\217>J\225 \212\347\035U\277w\257\247e\271G\n7\234\363{Mcw\273\256\275b\264\334&\305i\362n\332\372n\274Z\254&\241\263\245s>O)\031i\244\326$\035B\320E\236\313\376\240\317h4d\271Xqrt\222\232\316{\013\256\354\365\353\242,We\277w>\350\367\017\2442\217\2252\217\224\321\217\363\314<\225Z\235Z\251g\272\325\265\337\231\371\277\375G\027\356y\003\370\334@K\351\035\371\376?{\241\234/\355\313m\323|'9\373\355`\3555\221\342\230\344\007\203\311H\227E\337\330j\235\237\236\236\026!\004\035\254\223g\347\347\002\204(\312\222\242\314\304\366\326\226\270z\343&\231\321TU\313\207\037\314\375\373\217 \245\344\274g\266\252RD\304\314da<\036v\333[[\325d4\232\347e\357\304\344\305\223\224x\"M\3660Iuh\212\354\201\367\371C\327\357\257\276\367\275\357\205\347\365]\325\363\212\260\367\335\0060\021\354\337\256g\347\267Z/\277i\333\365\315AY\354\025\231\236\244""\340\306Z\210~\353ly\362\364\3008\347u\023\275<=\273\220[[[\"\306 F\243\221\350\017G\\\277u\213\351\336\025\346\263\031\217\036\334\243\351j|\360\242m;a\255\027\"%\271Z\256\324l>\317\217N\217\372\253u5M\276\275\224\242\277\351\255}\265\256\3537Bp_\303\307m\243Y)\033\317_\371\3067\374\037\374\301\037\244\347\361}\365\363\000\354Gw\357\346a\265z1Z\367_\340\332\277c\204x\245vnT\026\2712ZR\366J\261\252*\016\237\034przN\022\202~\317p\372\344\204\311p@\010\035\")\2646\354\\\332\345\376\275{<\270\367\005\037v\237\223\323\031UU\203\020\030\243\350:K\231eD\020R\nzy.\316\316\317\244\263\235~%\317KG3i\233\366\262\311\3737\322\326tG*\265.\373\331\321\257\357\357\337\377>\304\377_D\332w\376\347\277\237\213\306\336i\232\352\277\254W\313__\234\237}\355\311\223'cD\320\323\351X\224e!\362\242\344\350\350\204\203\243c\2141\274\374\342\035&[\023\316/.\030O&\354mO\271y\3476E\221\361\350\341c\216\017\017!\tv\246\023H\221u]\201J\304\030\001\201\363\221\262,\351\2259\333\3431\303\341\230\350\274\010DA\n\322#\224u\235QB\024&/\243\322\371\303\205)\236\276\372\326[\366yD\333W\002\355\367~\360\203\302\310x38\373\267\332\345\342\327\357\335{\360\306\354\342b\264\267\263\255v\246S&\343!\223\3116\2200\306\260\273=a2\032\320\371\304\305\371\214,7dE\237\340,m\347X\267\035\323\255m^x\3416/\275\3742m\327\360\350\321\001\363\345\212\326Z\222\213\304\004\205\321\230L\223b \317\014\253j\215\355\034g\2639\247\0273\326u\203\3112\331\353\227J\013\251M\236\315T)\356\275]\214\026\377\353?\376\307\361?\030h\037\276\373nf{\365M\351\342vr|\370\337~\362\351g_?>>\036\n\242*2C\214\226\321d\314\345k7\020)\"\265bg{\013k\003m\325\360\364\351!\247\247\027<~|\300\272^srr\216\024\202W_}\t\251\024\360\207\314\037\376\350Oxzr\006B\240\220\204\224\350\365r\266\246\003\224\224\364L\201\020\202\363\331\234\332Yb\210\244\024q\336s6[\340Z/\265\326\272(\313\320\313\312\2073]\034\376\357o\275e\277\377\025\243M\377\262\200\315\344\372ZW\273_;>9\372{\037\360\351\327\353\371lX\327\225*\267&(\025\271}\347E^x\371e\\\323@\n\244""\340\310\212\021\243Q\037\353,\363\365\212\317\037\037b\214F\233)wn]gk2\346\336\247\037\363\364\350\224\373\217\236\322t-y\251\221R\023B`l\006\370\020X.\032r\251\321C\215\017\026i\024\261\365\204\224(e\206\210\na-\275\334\010c\350\271\256~\321\306\301\333J\351\237\275\267\277_\361\025s\333\227\216\264\037\377\303h\252\201\333\367\336\375\332\375'\007\337\375\323\237\276\377\355\243\247\207#\353\254\032\r{\274\362\342-\336x\375\rn\337y\201\274,i\353\206\246\255Q:\303\230\214\262\337\347\203\367?\340\336\303\003B\014(c(\212\234^^\020}bU\325\034\237/\270\264\273\315\233_{\211\375\235].o\217)\313\034\2455*\n\234s\314\327\025\347\313\025\027\2135\235w %\303<c4\036p\371\322e\246\323\t\201\204\321F\024F+\222Hy\257\367p\256\276z\264\351/\013\330l\213+\262\261\343\347\367\357\377w?\373\364\347\337\236\317\316\207!\004\231\345\232\351d\300\013/\335\341\362\376u\204\322t]K\010\356Y\002OD\357Y\316.(\213\214q\277\000\004&\313\030\226=&\223\t\303\341\220\230\022\327n^g{2\242\337\037\262\\\3149\277\230!\364\031R/i\252\026\027\003R\t\2144x\333A\222x\2370\375\234\335\351\224\253\327\366)\313>M\327\362\301\373\037\310\340\375`\013\361\222)\007\337.\207\351+G\333/\014\332\273\357\276\253\026\234\357\225I\376\265\017\357\337\373\357?\371\344\323o\037\034>\0355u\255\246\375>\275\242\340\326\365\353\354_\273A\226k\346\347\347\364\207\003\362\242D\nEV\026\350\314`\214\346\225W^%S\232\246\263\344\205!FX\267\216u\263\302\250\214\340=qkB\333v,\327-\007O\217ytp\310b\265\346bY\3234->\004\212<G\304D\024\t%\023B\n\362\314pzr\314l\261\002\245\030\214\247\034\037\235j!\325\256\352\r\337\326y\376\336\343,{\232\336yg\371\313N\n\372\027\005l\330\315\366\204\342?\232\327\213\377\372\223O?\373\225\247O\237\216\273\266Q*\006\266\307#~\345\255\327\270u\353&1\005\332\272\246(s\264\326\344E\017\263S@\n\204\030(zC\006\243mz\203!\275^I\212\221z\275\342\360\340)O\236<\245\0255\203Q\237\305\305\014\2554\313\325\234\020#\243\321\010\245\014\235\013\310$H1\342\274\243\3103l\364H-hl\307|U\263\267\273\213^\266<~""r\200\222\n\245\2058\2750\275r8|i0\032\276]H\363\351W\2116\375\2134\257\377\027\353-\257\303\267m\323\374W\357\375\370\247\377\311\321\341\341\244Z\327*\3175\223\321\210\233Ww\031\366{h))\212\202,\313\020HL^ \225$I\201\360\t%\025\002\211,3\366\256]EI\211H\211\351\3266\227\256^\343\366\213\347T\253\025\353\345\232\246\255\361!0\354\365HS\317t<\304\266\226\335\351\210\312Z\210\221\242(Y\255\032\232\272&3\212 \004!&\036<|D\347,*7\330\306\342m@\351\265\252V\253\355f6{[o\233\367\216\006\331\323\364\316;\213_&\332\376R\320~\377\356^/\204\356\325\330u\353\351\301\301\337x\360\370\341\216m[e\244\340\312t\312k/\336\340\245;w\270~\373:[[;\344E\201R\032\244@H\210\301#\202\002\245\221$$\002\242@\032\2639VI\2224d\344\354\230\202\355\275H\n\236\266i\210\321\021\221$\300;\217w\016H\233\343\233\240?\032!\022Tu\213\017\236\020\003!D\026\213\025\367\276x\300\007\037\314\211?\303v\221\371r-\372\307g\275\235\275\275;]\327\276\335\353\027\237\274\267\277\277\376e\242M\377eQ\366\3330\220m\367FS\255\336>:>\276\274Z\327:\304(v'C\276\366\3025^x\341&\227.]&7=\264\326H%\t\276Cj\215 #\305D\260\016\255\022I$\242\020h\235\021C$\246H\022\021%\025R*\320\022!\000r\262^\237\230\002)F\204\311!%@\220\274'\245D\214\036\251\r\301;\206\023\020J\340C\"X\313\376\276\340\352\376U\356\274p\207\376\007\310'\037B\010\226\203\223cu}us'\353\r\336\362.\376\370h0\376\245\242M\376E\277\374\341\335\273\242\210\272\037\t{u\265\336y\360\370 \2131\210\311h\300\356\316\224\333/\274\300\235\227^\342\306\213/2\336\336\"\313sDR\204\220p\326\023\275G\030\201 \020\202Ch\005B\022C \205\010\t\022\202\230 \310\204P\002!%R\010\204\320\010e\020I\202\333\214ORI\2441\240$\010\211o;R\200\024\005\316C\264\026\347:Brh#\270\262\273\305\372\235\277\316\345+\227\2101\322Z+\356?\270\337oW\353\227\232\252\372vt\325\376\017\357\336\375\322\275\252\374K\271#\037\265B\024\213\3252_U\265\360\326\321/\013^\276}\213\233wn\261{e\037\243%JIH\002\357-R\nR\014\370\320\341\254\005e\210) \"x\347\360!\020\202\207\020\t]KL\236\344\034\321Z\202s""\244\024\211\"n\300\215i\023\221\301\021\211\004o\211\266C\204\204\367\236\316\326\330\256\"\370\032\357\034)\t|\353\221HB\202\255\341\210\327\357\276F\257\327#\223\222\263\363\013uqv\276\333\256\227\337\262\266\271;Z.\007\351\235w\344s;\236wf39\357\013\025B0umU\214Q\364\312\234\266\355\360\301!\222 \206\200(\n2\025\t>\220\204$\205@\010\233\3361\371\016\037\003:\31379I\010b\364@\"!AJRL`\014\321u\020\023\301\2014\032\244\"\211\004\321\223\242 \271\216\220\002xOL\t\037\034\301y\254\263\020\023\010I\210as\214\023\370\256\305\372\310+/\334\342\361\343'|\364\311\307\324M%\216\216\017z\243\311\340E\225\227\337\226\303\354\343\372\253[\025\320=\267H3B(\201R<\253L>\006\204V\304(p\266\305\271\200w\026\037\302\006\210\260\211\006\251\024RJ\204\0208g\261\316\022H\010!7\334g\004H\210\004\321y\242\337$\361\230\022)\202\214\352\317\036\375\346\250\207\350\2111\340\202\333D\254\217\330\316\022|\300w\016\333Z\\g\351\272\226z\275\302\205\200\355Z\272\266\345\345\027oQ\364\006\204\010mk\225\255\355\226\353\232o\270\330|\255;\036\225_&\332\376\322\377\030\215P\256\353\362\256\266j\265\256QI\222+\301j\275\334T\270\256\243\255+B\364\004\337!D\000\251\010\301\343\274\007\024)B\014\021\347,!n\216o$b\255%\nH\002p\201$\004IJ\244\226\270`\237U\311D\327Y:kY\315.hW\025\315\272\246Z\257h\2539m\263f\275Z\263n*\274\363\020\301\267\201\344\003\235m\251\2535g\247g\340=o\275\3662\231\226\314\2263q\276\230\227UU\335L\326\277\226\013\273\375\303\273w\305s\001\355\344z+cL2+\214TJ`\214\004\021\361\301c\204\300;G\323\256!\n\332\252\306z\217\363\216\024@j\203\322\232$\"\336;\272\365\n[W$!7m\210\020(c n\252\250\367-\261s\340#>\206\315\317\\G\275^\323u\233\004\257\025()0\332`\362\234\242?\334L\035\245\301\030\363\014hK\014\216\020\002\355\252\246\251\033\204H4\326b\262\214\033W\257\243\243\3005\225r\266\035'\037o\370$\266\006\203\247\372\271\344\264\365\372J\312\303\271&%=\036\364\323\244? \006G\257,\310{\005\220\350\3265D\220ZS\364Kb\360\244\230\020\321#\225\"8\207R\n!%B+\332\365\022!\300\230\014!\014Q""\0001\342\243eSg\035\004\271\251\274\200\311\014$\360\266\303\207\210\210\026\357\002HP\312\340\255\203g\005C\010\2016\031\021\213\353\034.8\204\210x\347P)\261\\,Y,\346t\336\261l\255\270\0341\336u\273)\371\261\367\205zn\315\255TJ\352\3140\350\347\344&\243\215\233\316>\323\031eHo8&EO\014a\223\350cBk\215m\033\022\200P\010\255\361]K\256\372h\2550\231A\251M\373\221\222\"\205\210\316\364&w\305H\024\001DBJ\203s\026\201$\002&+\211)\222I\215\020\222D \310D\331\353\221\222\244\255[\202\224H\251\261]\3009G]u\264u\313\262\252\330\332\032\023\322u\332\237U\254\347\347T\365\245l\213\275\241\024\014\362y)\236\013h\273U%e\201L!de\2363\350\025\244\030(M\306\315[\327\031\364{\230,c\275\262h\255\250Vk\224RdJ\342\235E(I\212\036\2433\224)\321\306@\014\264M\207\226\240\263\022!\301\331\226\326:\312\242\300\273\016!\rJI\022\021)\022\244\210\326\032\255\263\315\213Q\233\332\033C\"\313J\234wH!\310\212\214\316z\254s(\243\010>\342\242\007\255\210H\252u\307\225\335m\234}\201\343\2633\321\037\014e\360n\344C\030\024\375F?\267B\240\265P)F\335\332FmM\006\351\352\345\035n\337\272N\257,\220Z\321v5)9\332\266\3025-\336yV\313%\336\007\2444H\245\360\256\241Z.\231\235\235Q\255W\220\022)\201\024 \205 /K&\343)\231\321\030m\3103\205\222\032)$1F\234\353\020HB\364 \304\246)Ni\323\374\352\214\242\354\243\265Ae\206,\317\210R c\002\231\350\332\r#\"\210\304\340({}n\336\276\303\376\3765\\U\253\256u=\241\342X\324\271\376E+\350_\336\334&%cJ\252\3102\256^\336&\245\000\0042\223\3216\r\244M\267n\333\216$\004\332\030\362\262\240\354\r\321&'\206\200\363\221\376\240d\320\353\323\353\017\220R\200\334t\035\233\210\211\204\3406=\236\2204M\273\251\264\336m>\244\324D\261\241\262C\332\024\211\030=\3019\\\327\342:K\210\221\024\002\336Z\n\243\320\271&/\372\214\207#\274s\304\024\351\274\345\340\3519\343\361\220k\327\257\021\022\262\310\215\301\213\241\325\256\374E+\350_\010\332p\333J\037\254\226\002-\245\344\364d&\272\272a:\236\3209Kp\236\256\351\260\235\335|}!\321YN\331\037\200\226x\3571&G\n\201w\036\347\034]\273\351!\245\3166s""\245\220H\251H\311\023\274C\010\310\313\002m\014:/1Y\21169\022\201\220\032\201\240\251W,g3\346\363\013\232jMgk\322\263\331TH\211R\032c2\212\262\000!\321R\341}D\353\234\303\247O\210\002\206\203\036g\363s\261\256\353\242j\352]\357\342\340\316l&\237K!\3602i\357\235i\232N^\314\327\364\372=R\214\244\224\260\266\243\353:\264\224 \005)ylS\241\362\202\020<*+H\317\370/\223\031 \241\214BJp\266C?kt\025\n\241\364\246\253'\242\265!\006\217D\021\t\233^8@p\035\313\371\214\213\213S\352uE\333\324\354\\\272D\331\033\220\347\001\2433b\010H\251\360\316S\030\203u\035R$\306\375\222\243\363\005\336v|\376\263\317\031\216\206\264uM\210\301\264\255\335\032\016\375\360\336tW|e\320\016\201\242\013\312\207\244:\357\344\366V\037%$m\333QU\025MJ\344eI\345<\243\301\000\357;:\004\332h\2141@\240?\035\023]@\031M\360\216\256m6Cv\362\010\223\021mC\027\002J\033\264)\2101\222b\004!q\256\203\0247c\026\211\266\251\231\315.X\257k\272\272\241k\033V\363\005>\200\353\002y\236?\333|l>cH\233j\354\274E\231\202\321\240\307b\221s|\374\224\203\303\003\326\313\245X\317g\371\366\326\316HJ=\330\255\252\347\023iJ\t\3255]\346\273(\232\326\021\022L\275c1_ \020\014B\244i*z\203>\306\230M\225$B\032b\214t\235#Y\213\014\222\224\002\211Dg;\264\3228\237\020)\241\265\001\241@\200\020\202\020\003\211H\212\222\030\300\207@]\327\\\234\235\362\370\321\023\216\217O\250\272\226\\g\034\235\257@\302\326hBH\201\341h\304p4F\n\211\304S\3449E\331\303\273\210\024\220e\005\363\263\013\234\357H11_\267\372\246\210\203\220|\317\251R}e\320\212y)\204Y\213\242\227\213D\220\347\263%\203A\311b\271\242n\032v\266\247\010%\211>2\237\315\030\215\307\010\240\360\016\2415E^\222R$I\350\332\232\305l\301b\261\300\205M\343\212T\214&S\246\243)e?\303\331\r\037G\022$\001\002A\333\264tM\315b9\347\223\217?\345\341\301!GG\027\330\316\222\367\312\315t`\024\367\345!\3269\262L\263\267\273\315\245\235\035\312\242d>\237a\335f\246\315L\306\366\366\204\263\3319:\n\222\322\242m\326\312\373X*!\263\347Gw\213\244\225D-\353ZD\031\321Z\262^o\032W\221 X\007J\222Y\313\351\3611[""\333\333Xg\031\014G\230L#\244\242kk2\n\372\203@S\327\\\314g,\347\013\272\326c\362\214[wn1\034\364\030\216\266\310\263\354\317\363\2452\031\336\266,\227K\336\373\311\007|\376\305}\252\272AI\311\353w_\344\365\273\2571\335\271\204\316\014]]\363\360\321c>\376\344\347|\366\363\007\264\353\206\255\255\361\246\211F`\273\216\306m*n\2565>\202\213\002\031\223\020\244\r\t\232\236\023h\302I\321v\316$\221\204\024J4\255\345\254^\321/\013\274\013\004\357\331\232\014i\233\216\274Wl\206\360g\324s\327\326\010\251\t\341\231\016C\010\362\242\300v\035!D\316\316f\324\316q\276X\320+K\256\\\271\314\365\253W\031\r\206dENL\240\244\344\213\373\217\370\323\217>#\245\300\355k\373\274\361\332\313\\\276z\211\235\235K\014\206cd\246\t\3163\034\r\331\333\336\341\303\017?f\265^\020cBg\032)\023RJ\362\242\344\274j\311\262\202\242g8:9J\327wo\204,\317\275\326*\340\236\003h\275\221\223\266F\345\271\021J(\241\204LU\325\210\326\007|\364x\"\252\226\354_\275\304`0\240i;l\327\341\335\246[\357|\240\253\0278\357X\255V\034<9\344\301\343C\316\317\347\264\266\303\305D\022\202\263\252\242\324\212\223\323\031\027\3473\336~\373m\312\301\000\245\025\213\256\345\341\223C\262L\262\2635\345\3157^fgg\207\262?\244\252+\204R\344>g\271\230sr|\312l>\343\326\355\353X{\231\343\243c\360 M\2061\001-$Y\251\251[I&5\375\262do\262\023\2042\326z\0372\314s\210\264sHYT)$\245\205\024\347\313\265\260\316\222k\203\367\tA\205\010\201\246u(\335\341\235\307JA\333X\326\313\005)El\333\361\331\375\373|~\357!\336E\256\356_\342W\365W0Zq\360\350\021\307g3\352u\305\305rE\327\265<|\360\220\253\373W\271y\353&YfX\314\347\214\006\005zo\227\313\227w\310\263MS\275\252:\004\201\325\275G\034\235\236\343\232\226\243\343c\266\206CT^\360\312+/2\032\r8\233-q]\313x0$\000\355\312\242H\264\266\342\322\245=\256\335\274\342\\\300))\374\326\260I_\031\264f\350\245\364B\245\024\265\217^t\316\322Z\207\210\202~Y\220i\263iL\343\206Ip\336\263^\255\250\353\216\272\336\242ZW\314.\346\374\374\376C\276v\367\025\336z\363\r\256\\\276L8\302{\313\315\23378=>\345\351\341!g\263s""\026\313\025\353\325\212\303\247\0074M\203\3114\303\301\220W^x\001o;\306\223\021'\247\027,Vgh\255\231nMyzx\310'\237~F\257(\311\212\202\255\235\t\332d\224E\216\330\332a0\332b\325T\210$\230-\326\233\021-\353\261X\314\350\365\006\351\312\365\353\366\341\203\003\207\213\336\266[_\035\264>J\255\\\327\257\353\266X\315V\262_\024\233\231RI\222\212\230LqiwB\221k\212^\311\352\370\204\256u\004\024M\365\204\030\003\247'\247\274\372\322-\336~\353\r\206\243\021\326{V'\247\034\235\034qzzB//1\205\341\306\365}\312^\237\007_\334'/r\316OO\350\367{\230<c<\236\2404l\357^b8\336\306\0249\271Q\024e\237\327^}\235\027n\337\242\353\002\373\373\273<\274\237\020#\303~\037#\025\010Eo\330g9_ \324\206Q\221\332\340}`k{\314\244W\206/|\010(\025\272\252\372j\240\245w\336\221\377\322\213B\0101\2161\344\273\227\267PF\362\341g\3671Z\022\272D+,B\032\2446\310$PJ\323\037\346\250M\303\205\367\201;/\276\302\013/\337b1\237\363\305\027\017Y\327\r\237~\3669\211\rgv\375\312e\222\360\\\275v\223;w\256\321+rNNO7\224\266\367dyN0\244j\226tm\315p8\246(\013\234m\351\272\206\020<\267\357\334b1\277\340\370\351!\010\311\325\313\227)\213\014\021=JkL\312h;K\265:\300'\201\360\216\255\355mz\203i\022JG\245\224UB\270\257\334r\274\267\277\257\320\014u\324\023R\314\327\213J\032\255\271\261\267Ck\035M\347\350\367\013\362\\\223\033C\226i.]\276D]7(!\351\232\032c\014\223\355\021\367\276\270\317\351\311\tE\226S\014G\274\366\362\213\234<=\340\346\255W\270~\363\006\223\341\230\336`H\321/\010\311\263Z\256p\235\243i;F\243\021B\201kZ\304h\2046\002\241\004\020\351\232\206\224\3009\217\004\306\343\021\227\313>\375\336\000\225\031\244\224D!!J\202\\0\273\230\341E\242Y\257x\355\215\327\231\214\372\314VK\004\321m\0065\365\325@+\246SQ\263\034\213\344w\215Pf>_\262\254*n\\\273\302\311\331\014\2555E\236\323\317r\232\272!\206@4d\2725F&A[\230\r\363\020#\253\305\222\334\344\274\366\346\233\334\276s\233\223\323S\366\257\354\321\033\016\331\335\331F\353\214\254\314Qf\263\\N)\021\202\245Z\316\031\366\373\364\373}\216\236Z\232\272f0\232\342\234G(\311tw""\017%4\301{B\3628\273a9\244\226\350\314\340]F\323v,/\2264\3135h\211\362\221\341x\314\213/\276\200\311t\362\336\307\334\030\253\264\266\247Y?~%\320N\253J\252\302\017\203\265\323\274\320\346\306\365+\374\374\213G|\361\350\220\2540\\\236N\351\345\031E/g:\035\263X\255\360\3263\034\016\311\224f0\034 \224b5_p\373\3465|J\254\2273\036=\330\220\205\343\351\004c4UU1\232\024\220\022\355j\205w\026\235e\2335at\304\030\310\363\002\333:\352\272\301u\035\203\311\224\345\371\031\316\316\311\213\001\3019\332\256\305v\226\336pH\226\027H\251Q*\341\335\246g\r>`\204bm[\306[S.\355^&\246\310\331\371<\231,o\214V\376k\361+\036\317\341\266\225\253F\n\027\254\026Zr\345\362\016\263\345\234\345\203\003\026\213\216^\226s\375\312\016\275\242\340l\266$FO\277\237\220Rc\362\214^\277G\360\021%\024ZK\312^\217\371\3719\255\265\010\002\332\030|\010\364\006\003\242\367t]\332h@\020(!I1\260^\256\010{\001c4F+\326\313\005\325xB8f\274\267K=\237o\026/mK$\320\033\014Q\317\266\370][#\224\246\355Z\332\266EiIf\024\3169dL$<Q\302j\265\024y\257\357:/\\\373\342\354\253\025\202\242\235z\247\327\027.+\236\254\026\363\372\322\316\336\340\255\327{Y\265n\271X\256\270X\255X\265\0357o]\247:<\246\256;H3\262,g4\276A\331\037!\205\244?\210\314\347g\010)\330\271|\031)\024\375\341\020g;\234\365\033\3621t\010\235\323\265\016\327=\333\331\306\204\332H\001\321\246`\274\275\305\331\311\tuS3\237\2351\030\r\030M\266\030\004O\265Z\221\304\206\254\224Jc\273\016\33364M\315\252\252\351\3525\256nq\3161\030\365\031LG\254\3265]S\321\353\225\336'\357\224\224\277\260\236\343\337I\205\334\375\350#\337\006qh\362\362'y\257\367()\335\274\376\326\033\361\326\365k\\\232\216\331\032\366\370\374\341cNf\013\332\246\243\265\226\365jMJ\033\311Ap\026e4\345\240\317\366\316%\274}\2664!\321\266\r\0106*\237\030)\207\023\262\242G\3274\330\256E\312\r1)\244\"z\217\224\212A\257\307x<\332\200\355:\232U\305\272Zb\235%\357\3651yIxF\003\331\256\305ZK\333\266\370\266\305(\211\217\026\037=\032\030\017\372\020\003:/Y\327\rJ\230.\031\357\357\335\233\306\257\004\232\370""\376\367#\025s\231\313\367{\243\361\277\266\316]\250,\263\257\277\376J\372\332k/\363\342\355[h\2418>8\342\344\354\234\343\2233\232\256\245kZ\026\2639\326u\270\266\306{G^\226l\355\354\222g%\266m\231]\2341\277\270\240Z-\221\002\224\3264\325\232\266\252\020B\342\375\206\010\227R \204D)\305\326\326\026\203\336\000b\302v\335f/j7c[\333\2547\"\277g\333v\3477\313\033\347\">\t\232\246\241\256j\214T\010`0\031svv\206\020!5uCg\275\247\362\376\271\260\034\337\371\373\017\354{\277\365\362}\014\377jUUw\203K\203\353wn\033\037P\327\265\300\333\216\262\310\010\321\323Z\207K\320t-\3269\252u\203\020\212\034\r\021\212~\201\311KL\236Q\327+\222O\220A\226e\317\250p\213\320\232\330u\004oY-\227\014G#\2042 \004\345p\304\240j\210\3176S\010\360~#t\026\321\323vKB\210\233(\353,\3367X\347\350\272\226\326n\250\366\3065dY\311\315\0337\021\304t1[x-S]\024\331\014\231\332\357~\367\243\364\225\"\r@\210\357\307\2425K\241\305\007\246\354\275\367\364\364\350l\347\332\215N\033\235\356\274\362\n\337~\373\233\\\276t\205\253W.3\032\rPJqpp\314\341\223'\\\234\236\260^UT\353%\353\325\214\325|NWW\330\272B<\343\225L\221\343\203\247\256\346\304\010\202\210w\226\341h\204\3162\252\272\246s\035B+\214\336,k\022\202\030#\253\345\222\020<\"\005|\212\270`\221R\223p\304\344\351\332\016I\"\206\200\222l\350\367\010&\317\331\332\335NE\257oM\226_\014F[\237\225ey\257?)\233\347&\211\377_\336\375Z:\374hl#1\257\226\325\255\275\275\275I\364\241?\232N\344\336\245\313\234\235\036\221b \272@S\267\324\266\303(\261Y\264\304\204H\233MS\327uxo7G+\004\2442\010\221\320*C\352\215\200\331\265\0351&\266wwq!RW\025\273{\227\351\rF\010\tM]qz|\304\323\247'\014\206C\312\"'\245\200H\ne6T\267m\033\234\265\370\230HD\214\316\320\306P\325\035\307\247g\204\230x\371\245\027\334r\265\276h;\377\2761\331o\353\276\371\243\342r}q\365\352\377\024\276r\244\375Y\264ew\302*7\275\367u\236\375\311\307\037|p6\036\367\333\343\303'\251m\033\244\322T\255\305\344\031\332h\210\202\020\022\263\305\212\371b\306\262Za\255\333\200Z\325$!\310\362\202<\323H\245\020J\001\233\255""\270\312s:\333rzzB\364\201\325rE]m4 \315zMU\325|\376\340\001\370G?f\265\256\351\365{\317$V\221,\317\220RR\366F\344E\3632\224!3\033*=\204\260\221\206\271\030\277x\370d\265\\U\237\250<\377m\235\365~/\016\303\323\267\337\376\007\356\271\344\264?{\276\365\255\303\360G'/=\315\222\373\343\325\374\342\315\243\223\263\035R\312\037\334{\240\256]\273&F\303\021\367\276x\300\305|\216O\201\305\252\"7\212L\253g#V\2161\233\365\233m;\204\020HYb\235G\312\215' +JF\303\021\037|\370\021\372\321\317\250\333\216\353\273[\014\307#z\275\036\235\265|\364\301\307\274\367\247?c:,\230L\306\220\004E\331'$AB\342| \370\360\314\356\223\320\312\220\000\353\327\304\224\030\r\373I\025\245M\326?6\303\342_\224J\375\256\214\331\243\277\366\373\237\331\347.\211\027\342\373\361\335w\337\255n\226\275OR\362?:9\273\270\271\277\267;\354R78=9\343\312\325}\226\253\025G'G\330\266A\225%\323\311\220\242_n\336v\236\321Y\207BP\366\006x\353\350\204Bg\005\326uh\241@D\3622'D\300;\332\246\346\243\317\227\010%\350\272\216\363\323\031?\372\311G\030%x\353\365\273L'\243\215\342R\030B\327\342\233\215\202\262Z\317\201\2046\232\316{\010\201\272\256\360)\220\224J\223\255\275u\257\337\377P\031\363\257t\253\037\377\352g\037u_Vs\373\013+e~\370\303\037\246\357\375\355\277\353\224\212\302u\335\265\325r\276\375\332\315\362\364\344T^\234\235\212\375\253WHI2[,\320Z\321\353\365(\313\002m4\203\301\220\242\327\337\364S\231\302\230\002\244\334\310\022\244\240\327\033P\224}T\2263\036\217Q\t\266G}\264\026\234\234\316y\370\350\220/\036=\246\355Zv\306c\356\334\271\305tkJ^\364\210)`\362\234\030\301\266\035\3266\324UCg\035\304H\353,\325\272e\261\\\022\225\016\333;\323\343\255\275K\377\247\026\331\377}\250\362\263\327\3437\276\264\272\373KiM\347E\321&#?3e\371\257B\022\217\337\001\311@T\000\000\023\222IDAT\377\375\246?\032\205\233/\336J\203\341\210\227^~\031\222$\206H]5\314\347+\332\266\243i:R\014\244\3407\233\246\024P2\2412MY\3667j\357\230\360\3261\032\016x\373W\276\311\355;\267x\371\366m\246\243\001RH\246\303\0017\366\367\270}\363*\347g""\247|\362\311\247\\\314\316\251\353f3W\026\232\361\326\210\274\034\340}\304(\275Q\273\200\217\021\022\311\267\336\367\207\223c\245\212\007\262\247\346\337\375\350\243_\312\037\365\245\224\315\337\373\336\367\302\217\377\321?\274X\332\354\307Re/\372X\367\017\016\017/\277\360\322\235<\205\224\357\014\206z:\031\313\007\217\236\210\252j\331\001\372\375\001m\3270\364%>\tL\006\316;\204\3140B\341S\3005\025)AQ\026x\347\350:K\010\221\355\235]\376\306\345=N\236\236bm\313x2\301d\232\230`0\232\222e9\253\345z3\366\025}\362\"g4\236PW\r\321\007\262^\217UU\323:K@$\323+\272,\313\2378\357\217\262\272\337\376\225\332|\376\215\242\360\336a\373\307_\277\375y\024\2434\316\364\274Z\256\336\372\371g_\354mm\357L\224\220S\255\3644\205\220'\251\204\2655\307\247\247 6>\246\301`\200\367\016\333\265\0331\202\354\210I\260\230\317\350\r\206T\365\n\357:\362\274$\317sV\25357n\276\310t:\335\370\010R\302\344\031M\335\242\263\202\345r\311\240,Y\257\326|\360\321G\\\275z\215\314\344\264.\240eB\0207\377\256j\032\327\245\336h\273\322F=\224:\235d\267g\236_\362\371\322\240\211\357?\276\373\356\273\363\033^\277W\227\372p \263\037\315+{\373\344\354\336K\002\377\322p{\353\345\235\331\362\372\343\203\203\262n;9\036nT<=\223\241\224\3049K\327\264l\357lVyBJ\206\303M3\273^T(\255Y\316\227\214Fcz\203>\211\215\017JkM]7\220@+E\221+f\363\006k4\253\325\222\345\371\005\017\037\036\260\275\263CD\262\371\022e\t'gg8\033h\226u\274z\355\326\005\211\207\270p\376\255\337:\374\245oO\370\245\234\305?\374\341\017\323\377\366\306\033\356\302\364\027\345\216<\220\262\367\205*\325\3172S\336S\231\t\332\250+'g\347c|\220y\336\023ZI\264\226h\255\361\301\223\200\262(@\nb\024()\250\253%\353\345\002\235\345\034<~\314t\274\021\250tm\213\363\236\316v\314\027k\216ON6\202d\251\250\353\016!51x\356?xD\226\027\034\035\237\323\357\225h\255\030\224=\236<9\340t\276H\246(\333\253\373W>-\206\223\226\231\311\317o\377\306ot\377\336\"\355\337\030\3507\0223\227\336y\247}o^O\315\231\020\014\312\262\370\346p4\274\272<=\3231F\3543I\225V\031\203\376\200""\325j\205\324\032o\003\027\213\013v\267&\034\034<\301\030C\222\013\262\242\340\321\301\001F\t\\gyxpB\325\266\034_\254\031d\232\275\235m\362\376\021)F\356\334\276\315\223\203\2474\255\345\321\223\223\r\263\222\347\364{}Z\357I$\\H\351\372\376\245u^\364\356;x\272\002\313Wx\276\362\025\023\377o\000\357\007?X%\303YD\316\247\243\221\235\235_\224:\323\244\020\230\257\032.\357o,ee\304\242\252\250\226\013\316Ng\314g\027\374\354\347\017\330\335\031a\235'\205\304\331b\316\260_0\356\367\030\016\372\\\331\335\343\2557\307\234\034\237\360\343\237|H\331+\021\002\252\272\306v-\303A\237\316Z.\346+\216\217OI$.\357_a]\267(\255bV\366\327\312d\007&\223\263\375\331,\375\007\007\355\3175\272\375~|\032\272\205\311\364\371\240_\332HJ'Gg\342\372\365k,\326k.f\027(%yzr\314\331\371\005\203~\311\351\311\214\303\2433Z\03389='\323\n\245$\235m\231\235_\360\302\255\253\374\352_\373\353\214\267\306\324\313\025R\300\316\366\224\345|\211\215\236\246\312\031\014\373\324\335\232\262\227\223\346\013\244\226\214F#\356}~\237\305\371\234b\330#\205N\205\024\306\302\206\353\247=\252\337\373\301\017f\337y\360\300\376\225X\027\277\314\3631\204-!\227m\227f.\004\237)\3152v\034\236\2350\356\027,\026K\372\375!\237\335{\204!\361\305g\017\360.P\364zL\206\031;\223\215\261\277\356,;[c:\027\250\326\035\357\375\361\237P\226\006\255\014\336GF\203\022\333uL\312!\303\321\200^V\220\211\215\223o\357\215\273T\235c2\035\361\223\375\001\213\345\202\375\341@\272\266\233\256\346\363\357\024\205\033\344\203\376\037\213\276x\377w_}\365\341\357\375\336\017\026\337\371\316\003+\304/\016\336s\005\355\273\037}\224\376\351K\333\265@\314]\214\316\307\220\252\326\262jZ\274\035!\304\021\326u\204\246\305\n\270~\343\032\301{.\357l\221e\031\211D\221\033\272\326\341\255\305\006\307h2!7\232\262\310q>\"Lb4\036\243\215F\246DV\344H)\331\231\354 \225\241Z\257)\262\234\007\017\036q\261\270\3009\307\303\207\217\244Q7\007.\204\227\027rqi\342\246o\216\342\344OS^\376\2119\326\357\377\356o\275\372\350\313\200\367\334@{\367\335w\325o\025\263<_\333Af\214J""Ql\230S\347\211\002\226u\r2\021\210\004\327\241\362\014o-W\367\367\231\214\207\264]CY\024\214G\003\000\332\246\245\252V\200\242m\034m\347\321Z\341\211H\231\230l\215H\235%\240\320\306 P,.\026|v\357\001\363\252\246\355,\211@\214\202\371\354\234\356S\253\224T=\020e8\332\232nm\337\276v\353\346\327\307\303\301O{n\360\343\254\311?\374\375r\367\301\037\276\373\356\342\t\330\277\350B\247\257\004\332;\357\274#}_\235\364\333\262\253\217v\335\"\336\0212\275\021|\373\255\331\331\331\350\370\374L\202\302\307\000\026\3022\022bd\332/\301\006b\346H\311\223Db0\030 \022X\237PJ\242\214!7\005\323\355-\312\341\020)\024\316Y2\223\203\210,\3275\27164UEL\001\353:N/\316\3611\3206-1B\221\3474\261C\002M\275&\306$d\222b\271\234\345g\247Ow\236<<\030Ov\246/\274\374\312\213\337\334\236N\337\317\353\352_\333^\361\3418\212\373\277\363;\277y1\237\027\355\377\027x\277\024h\351\235w\344{\373\373\352h\020\006\207\326^\022\221\227|U}sq1\377\226\302\335\236\235]\\9=\277\030Z\027E\226A\246$1%B\010T\353\006%4\245\021\370uE\323\266LS\240,\372\024Y\216\324\031J\t\262<g4\0353\034N1&\243m\326(e\310\313\03618f\2639\301\265\324\275>MS\341\027s\272\272a\3356\330\020\221@\236g\204\220\320rCG\005\361l\357@&bB\254\252\263\254\255\347\333\353\331\331h\367\362\376\355\253W\366\336\236no}2\232L\377\2507\347\375\375\262\375\374\247\277\363\233\347?\373\267\300\023_\026\254\372\253[f\262\356\367W\255\333om\375\332zU}\253\251\326\337h\353\365\035\333T;\222T\036\236\234\230\343\243s\351bD\t(\236\321\3321F\374\306\341\310\260\2373(rv\266&\334\276u\235\253\327\257\261\345\3323oE$\317{ #y^\022C\342\342\374\202\351t\2126\206\220\002m\323\260\234\317\261\235c\275^\361\323\367?\342\321\343'\314\326kB\202^\236qy{\207\223\213\005'\027\027\317\354\334\033\027\214\311r\2646\270\256&$EftRR\244\262\354\371\275+\227\253\027o\337~\274\273\267\363aQ\224?.\373\203\237F#\356\215Juv\222v\333_\373\265_\363\372\313\200\365\273\363\336$\23667\3274/\333\246~\353\354|\366\315\305bv\373\350\350h'E\237{g\325z]\313\350\355\263uZ\300\013\301""\326\240O\364\233\345\306\305bEp\001A\"\371DdI\321?E=\273aa0\034\222e\006)3\"\236\242\034\340m\213\024\t\0276\306\013k\033\226\363%\363\371\234\363\263\013\346\213%O\236\036\263\356\034:3\250\004;[;\024eN\257_\242\346\233\313\006|\214n\367\326R\201\316\310\205\000\211\010\316\212n\035\262\343\247Q\267\353u\377\346\255\233\373W\257\356Mj\361Q\026\362\237t\210\237\216\343\305g?\375\235\337<\323Yr/f\263\374\237\217\354\244;\0257\203[\337\265m\363\366\262k\356\036<:\270\365\350\360`k\265Z\345\255m\244VF\010)H\321#\302\306o\256\237\311H\227\2139\267o^\303\372\200\215\221d#>E.\226+\254\337H\0176\256\025\317\245\335\335M.j[\244T\254\2275\275^A\336+\t\316\261\256*\326\353%M\333\262Z.99=\341\360\311\021mU#\237\231p\313^A\331/\270\365\302K\\\374\344\003\2244\304\344\221)\241\205$\005K\324\212\242?\244^\257\t.!\223\204\014lU\313\013\347\262\256\255\266\332\256\032\336\3607\367\207\375\376\353eQ\274=\030\r\377\245\263\346O\364\277\013\254\201}\332\367\363\243m/\302\355\371\302\335\365\266{\253]Ww\227\363\213\033gg\027\343\007\217\036\025\31691\350\027BF\350|G\236e\214\373#V\353\n-%\375q\237\246\261\200$\327\031\271NL\373}j\321\261\252*\002\201E\323`S`YU\234\\\314\271\274w\306\326x\310tk\212\022\022)$\275~\217\242\3147b\226\371\222\371j\201\3670\233-899e\271Z\022I(6z\264\341`\300t\274\305\233\337|\213\237~\370\t!z\222\210D\231p)\240\223!$\211\321\032)\rB\204g\2677l\314\037D\301r]\311\373\367\037fg\347\027;[\343\311xwg\353\352\356\245K\373\223\355\255\211\376\267\223\373*\313\372\213\325\341\245\266\363/u\256\375zW7\337\250\352\345\313\353\325\362\322\311\361\331\350\354\374\"3F\212\322(Qf\n\255\024\"\317Y[\207\222\002IbP\026\264\316\342}\"/\nZky\355\356\253\374\354\343O\031\224\031\203\"\247\310\024\347\013\010!\261\252\033\032\245\251\3551ggs\206\203!W\367w6\267\267\244\204|6%X\347YW\025\266\363T\235%\372\2601\324\306Mz\326\271\246\327+\031\366K\336\374\306\353lMGTU\275iIR HM\260\201\250\022\231\0244U\205\022\t\233\"H\2111\206\340=\002\001R\340\235\025mU\211\013\337emSO.f""\213Wv\257\\9\327\226\257~\264\356\367\227>^\t\335\372\225\3205\337\254V\313o\330\246\276\263\230\317\366\216N\316\372\263\305\322\264\266\023\326:\021BF\221i\n\255\236\211\0256\004DJd\271a\261\252\211\002\212g\322)\243\024\273W\2563\332\336\345O\364/\221(\244\226\370\230\250\352\006\033<\321GZ\337\341]`\335t4mKH\211\030\003\243^os\017\007\022!\005I\010\252\272\005!\221Z\220\367{\024R`\224&\3174\327\256]\343\225\257}\r\353\"''\247@$\270\210\322\033\253w\212\221\266m\350\025\003\020\036-%\321':\027(r\263Y1&H>\322\266-\301\033\341\243\224:/L\333\272\201\376\355[{{\366\300_=\021\325+8\373VS\255\336\352\232\325\235\223\343\223\235\373\217\237\364\353\272\225U\323IH\233\255Q\226\221\302\346V\004m\n\"\021\021\241\3102\\\360H%\030\367Kj\347Y\327kH\022)\341\223\237\316\377\360\033\377#\325l\306\331\341\023L\256\221R\262Zm\314b\255st\336\023b\244u\216\323\331\222,\323 \"Mk7/ \205\315&K)t\246\220I\220e\206~\231\323\317\014\343\311\204^\277\317_\377\316w\230^\276\314\217\377\370=\202\3556\354\211\022\270\030\321B\200\322D\277\221\354g\371\346\305\352La\235c\261^c\224\242(r2c\010>\020\024Dgq\316\213\3169\243\333\246\372n\333\324w\327\353\305\233\253\325\362\272m\252\311\243G\007\305\351|\251\202\363\302\373@\226gh\275\t\337L\n\262,\247?\350\241UN[7(\243\031\225\005FI\\\010\\,\026\244\264\331\204K!\220\311p\360\350!A\300\337\374o\376\036\277\363\233?\240\210\036\235i\006\275\212\322d\254\352\226Y\265\246\355Z\264\222D\221p>\220\"\033kw^\240\225\242u\216\302(\244\220d\231d8\3503\354\227\364\212\202\311t\233_\371\233\3771\227n\334\200,\343\213\317\357\241s\215s\036\255\r\031\t\3476S+\211\320\200\210\350\274\330\214d\td\364h]\220\302FS\234\025\006\357\035Rh\021c\020\336;\243\017\037=\374\007\347\347\347;\007g'\343\345bi\272\246\221>x\021Cb4\034l>\270\017\317\374\350\236\306E\344\240\304\331\000\271Gh\215\353,\316J\232\344)\312\234\235\3551M\347h\032Gk\035\326\266\254\347K\036}v\217\333_\233o\375\347\207?\371?\376\t\"@\331\353m\364p\303\036\243\252`\3354\254\333\032\2415]""\273\361\265+\245\350\345\005\204@\277,H$\214Qd\231\242W\026\214\206#vw/\361\215_y\233\233\257\276\212C\242T\306g\237\376\214\334\350\215\347!:\004\n\251\005\032\rB\020:\313h0\304\005O@\240\244&\306\202\200C%I\275l\031O\306$\221\260\336\223\373 \204\220\350\237~\364\341K\253\325Z\327M#\204\330\310,\022bc\207N\021\231\322\306\021\0227\227XN\206=\224\322\330\020H.\320\357\345,\255%\005\213\022\202\256\263\370\024)\363\234\364\354\330^\254\226\324u\305\347\037\304\355\257\277\311\3157\337&z\307O\376\305?\247\251+2\255\211!0\032\026\033=o\323q2\233ShE?\357\221e\206,\333l\226\204H\324uK\222\233h1Fs\375\326-\276\361\355\267\271\264\r\244\306\3449gG\307\377O;g\323#\311Q\204\341'\"?\252\272zz\3063f\361\372kg,\033\004>\030l\201\227\023\007s\005\237\220\270\300/\265%\220\020\030\013\031\301\202\264\0136\036\257\331],\306\236ev\246\247\273\2522#8d#\361\033\320\306?\250\254T\346\033\031\357\373p\366\360!\245\354\344Duf/M\237%\241\326\202!\\\317\023\342\302<M\244\030)\363\210\253\343\2419\214\326\233+4DrJ\304\0200\363\020\307q\014\212\213\212HN\201\315\330x\030hhn\240bHi\021\350\244\201\271TTaX,\032\272a3\342\320\316\227\224\031mf\\_\323\205\200\325\002\n\313\305\300\372z\344\376\307\247l\327[\372A8\371\356\233t}\317G\357\277\307\371Wg\244\020\200H\316\035\253a \245\3140d\242F\272\276c\2523\333qf\332LTs\2567#\356\221\357\274\365}\336\376\301\333\354\035\035\355D\277 )\362\307\337\377\201\352\266\303\371D\020'\252\264\313\305m\307{\022\324\033\276l\336NX)\344>b;\273i5\250\246,\206\310\"g\357R&\210kD\232\020\035\272\216\331\255-\200*\2100N\205>4\227t\014\201R\n\333i\303j\365\354.P&`\306\321j\017\315\221\353\365\232T\224\264\277\277C\336\030I#\204\302\3654r\372\351'\234\361\220\027^\375\006\342\312\013\337z\235\303\2337\271\367\233_s\357/w(\343\304j\325\346\234\3350\260\277\277\207FmvR\017\374\373\3619g\3639\346\306\311\311\t?\375\305\3179|\356\006\"\016.\255't\3076\033\356|\364!\342-\n9\273\0235\020R\302\246\231\352\245a.\202\340b\\]]a\"t]Fgc\262\nfh\000\365\231\365\265\341""\325d\365\314!9'\342\"E{2\025)f\"HS\314QH1R\335\031Ka\021:B\014Tkx\207\355f\"u\211.\0131)\3234\021\005\242\004fo;Q\021\026]\240R\311*\\o\204G\217\376\311\247w\377\312\363\307\307 \006\004\026\007\317\362\346O~\306K\337~\235\217?\374\035\217\277\372\022\025e1,\221\250\255\335\252\205\355f\315\343\213K\372\275=\336}\347\035\336\270}\033],\240T|\032\221\324\341\2646\351ow?\341\301g\017\260Z\230\266-\342mj\224q\333\370m\305[v^\002>W\352\316DX\352\004\245\020R&\365Kl.\224\"$Q\204H)ED,\304~\271,\325\221\355(X\251\242\271\243\212Q\252\241\032\010\251%\347T\240\353\204^#\271\353\275\2123N\225\252\320\345\235m\252\213,\004\314\275\001\224L\033\344\322\214\334\365\022\203\370\007\357\277\307[\267\277W\207\243Cw\253\202\230{un\274\366Mn\034\277\"\217?\277\317\331\375\317\345\374\213\007ru\371\2441\213\372%\007/\276\344o\374\360\230\027o\335\362\274\267\327\022\307\265 V[\224[@\244\375\350\273\376\223\216\333k\t1\222R\024\021\305h\354\310b3$!\320h\014I\243\347Ed*\225\240\202\345(1\004g\347\000\260j\210@\354\222\273\210\341bq\265\370e\314\313~Y\2468\316\243*M\257 \322\342~9\272\2307\342\212\004\016V\013\253\305\030\213\t\356\364]v\314X.\027&\ne*\342\336\322u\325L@\275\324\"f\025w\270\270\274\224\017~\371\253\313\037\275\373\343K\311\235{\255\"\352\216\031\004\345\360\225\023\016_>\226\361\352\211\256\317\316\202\324\"\271\037l\261\2772\355{G\203{\231\005q\304\\\210\311\333\231\002H\364\213\213\213p\372\367\317\216\366\017\217R\210\352y9*.\216\004\254\026!\004\377/\233Or\364\344\202\2530N\223\364)y5G\360\246\005\225\366\026\210K\327\365%w\303\005\222\316\342\321\315\347~[J\035j\265d\325\244TD\201\240\342\252m2j\215a&Q\202w]_\242\303TLRVW\201\234\324\213\233\304\030m\332\026\305\240\313\271n\313\024T\324C\202y213\021\340\037\247\017\246\335?}\364\265\223\327\326\032\202Sv_\255\206!\250\n\335\376\201t{\007X\255B\231\0043\231\327\353\220\206e\2216,\205\030\377\347\201K\335\004\356\335\271{\224r\367\365\347_\276%\"\352e.Z\013\273\235\010`2;\010\352`\322w\253I\"l\25771\004\365\024""\242\271\0275\003\215\352f&VLR\010u\030\372\307\303\336p\312\323zZO\353i\375\037\325\000z?l\357dj(\246\000\000\000\000IEND\256B`\202\000\000\013\212\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000M\000\000\000W\010\006\000\000\000AD\310M\000\000\000\001sRGB\000\256\316\034\351\000\000\000\006bKGD\000\377\000\377\000\377\240\275\247\223\000\000\000\tpHYs\000\000\013\023\000\000\013\023\001\000\232\234\030\000\000\000\007tIME\007\331\004\016\0172\022\371/T\260\000\000\013\nIDATx\332\355]=n\343:\020&\215\324*T\251\014\340.-S,\3403\270\335&\275\334=\340\345\002\353\023,\260\351\244>\305n\3533\030Ha\266\351\014\244t\245B\027\320+h\206\303\341\014I\311r\026\273/\004\0049\022EJ\037\277\371%\245\310a\030\304g\031WnR\025\244|TB<\034\376n\030\366\3550\374\263\311\255\275HW\371\322\374\375\334Y\325\206\034\263\201\266T\377\017\241+\346\004\r\226\243\236v\356\222kW\273\027\201f\033?j\307:x\014\237K\235\237z\356Z\355\216\007/S<q'\360\030\334\347\234\237r\356\222ks\317\315\3164\0160\356\2068\226\342\233\313\035\220\234\376s\332M\235\233\311\345\210\217\230=\206\217\237\264\020\035z\220\223\022\242J\000\034cD\254j\22096Q`\215c\332M\276N\313\241\366Q\013\361\332\n\321\353qb\237#\332\271b\207A\340\352\343g{\235[\247q\242\201io\000\033\206\357\336\346\332\352t\\\374\307\000H\211\275\3251Q\244\352]\235i\334\261\375;`t;\275v\276\320\t]\037\023E\316\372\331:\3736\255VR\">\273\365\244\304\220\242w\307\002\026\262\255R\361\301\241\036\224\033\320N\233\020\350\2555[w\326\2511\235G\3657;hxD\250\277\215\036\213\207#\275\026\242T\216i\224\345:\352<G\324\250\203a\330\266v`\302A\343\006\233j\273\3273\203\226*\247w\321\243\330\346\200,\224\257\327.\t\321\334@\205\003c\3316&\n\270Z\030\305\225J\t\321k\216e>\220\245\362\3053\245W^[~\240\270R^5^^\314\327\224\031)\013\034\334\207`\2362\035J\353\276p\300\371\352\300\375\266zs\214\343\372[\304\263|\027O\014\\H\377*\323rY\306P\314\251\024\034(_\005\224*m]\257.\236P\024\250\337\325\373\rK\271\255\303\233)T(\232XIs\355\336\326\356\032\\\247\004m\333~l""\037\266}|-\367,\371L\273\311\003\014v\234\372\335\351p\324\354\310C\300.\351\343\204\334\226\022\261\030\353JX\237k\257PB\010=\023\323*\345\217|\354w\245\374\007(U\010\0304\000\271\355\306~\303\266+EK\210\255\017\331\206\301\273\n\323(\200\250:\225\242\235W\354\270\332\272V\331\337\326t\324\303\343\3738i\0320\\\237\003l\034\323n\362\231Fu\304\3551\003\334\004FX\327\204^Rn\321\203WJ\210\227\215?O\221\272\017\252_\3102\254\337\340\365o\355\025\231f]\201R\271=\2453(_\n\266\303\371Y\260N\241\322\214O\r$5\370\261z\351\"S\363\236R>5~\206\242\217(zJ\014b\017\013\343\321\273:.\206\235v}C=I\001\303\001\025\253\367\262\341\223\r\223@\353t\\Q\026*\264\222\320\245\240F\222\002\217\033\365N\333\030\323\334\323\2666 s\222\300\265\023\253\347\3671Y<\317\016cK\205C\361\300<\245\3049 )\020\251\244f\257}\243\203\257\343\304-Vo\346\210\000g\020\244|T\376\261^\323I\306\245\022bU\233\343\257mh\030l*\207\263\266.\322\310\033,\014\370\007\307\236\261\233\243e\237\002\3169\230\206\372x\244\241\233\221\320#dH\266T\371\254\272r\030\005o0\245\034\303\363%2\353G-\304\272qmVj|F\302\204H\246\r\030*a\326^Rf\022\317\034kbE\225\237\007\260\016\255\215!O\023R\3146\262\270\255}\300\366\255\370\re\221/\022<\260t=\034\003\372\226\312m\224\356\261\254\351\210\301\200\316*<[\207n\314\207\202\306ga\323L\303:\005\316\0149_\317\350\270\036\031\210N\207.\214=f\237PB\223\002\266\003\006\244\323\374\000t\363N\254\360\014\n\001\363\353\225\221\211\214R\t\361\326Z\220\035\330T\260O=<\005\004>\337\3510i \204\363\353\340o\334\336\205a\024\317 \016\330\002\335<\227\006\242\002\343\212\000\206\002\317\356\341o\356\030\327\006\225Z\262\376\240\230\036\021P\014\213O\230@@J\340p\256j\216\321\246\255{$\2060\204\302`` ;B<)\240\250p/\026\366\231\230:'*X\244|\026*\n\240\301\242\202k\230\243\207\216\352m\355\003\3061\252C\206\303\2120\307\254^\273\215\372\233\002\036\352\310u\023f\236G\304\236\346b\2773Z\317\025*/C\273oy\366`\300\034\033]\237\030dh=C\037\313^\027\336s\354~\355=\35761\306%@K9~97\000\001\243\304\244#""\234cg,|\226S\300\371N\255\275\016\352\344\020\274\234\201~\276\347tz\304zB\244\361\344\005\3271\345\324Rz\210\003\214\367\354\351\007xk\271\370\030\377N\373\234'\264\\\201_\321>b\n\257\310\24085\323d\275v\312u\270\253C\367\240P\274\321\201\313\032^[\212]\234\261\362\333\354\263\326\361\272\\\342\344$$e\272)\267\001/\324\303\026\023ZY\234d\364u\031\2572\312\367\364tv\3420KDq.p\251\206A\311\tL\303\"\004\255\235e\027\305\260\335\306\345\302z\035\246\222:\355\207F\345\373\303`qr\223\301\275\206\200]\026\356\365\221$\245\263\372\2245\315\024\317\016\305y\3259O\006\365\027\\:\272\333p\372(\314\301Y]\342\332\203\254\240-_\241\260\205\234\222\027\014\211\001\235\336\243\346\364u\206x\306\374\226T\030\302/\362\013\323<v\tAG\350\036\034\213\362\"<.\001Q(\336\331]\002_\325\027\321\tk9z\31530/?\345\337|\007\254V\205\036\202Z\32205\223\213\231V\250x:\353\310\246\366\027\343\201*\224\357qs\373\"\221\371-\"\213[\336\316S\203\326\272\336\005\353C\306\212\246\257\033\3613\225\314\nq:\253\273\310\003\014\003e\377\206{\010h\021e\203S\352\224_g\257\357\200\345\265{7\2257\206ai\246\361n\007\005j\006h\024@\324\276\3271Q\264\243L/\211\202\016&n\317Z\312\267 \252\310sZ\271\270\271OL\361A\021\365\373\035\3114\232I4\270\261\321,\010\277\310\336\034\274\226\352\233N_q\340A\347\226\266\304%\221h\300K\351{=\221i\030\300\034\366Ae\016\267\222\230\034\331\267\361\001\240A\247@\301\023C\264\325\344\230\026\352\264 \016N\273\034xt0\023R\305\346\356;\315\007\310\326\325\340\200\242\330\033\317l\344\261,\225h0\000\016\303\327\373\tL\243\374&\374\020\334\336\352\242\273\363R\002\034A\354\317\353\3779\313\213A\354\3110\0163\215\027\335T\242\001\227p\275\357\010\246\025\243\026\276\305\007\300wR\363\333\246tj?\3228p\256\016\227\236\017SD#\305s*P\375\025\246\323n\353\364\302\234\2301\342R\336~\342\224\372 \300\215\270z\351\2574\377\330E,4e\201s\001\203F\200\316\355-\304\037[z&EeA\342\222\245\034`\230i\273\315\350\314\355\237Ql\270\025\023\3072\241\3038\213\311\317\021\\\005\264X\3329\235\302\316k\327""\027S\230\001\206\263U\2348b\221\364_s\304.\306d\320\360\254xlO\371G\330\252Q\217i\327\355\341k@8\260\247\330uJ\274u\374\222\374\022\214\314\371\326\020~\360\034\000\270\277\251\337S\257\017\377.T\270\254\224+aZ>w\371\250\030\206!\272\t\361\257\202\277\355\006\317\345\354\3611\356|\352\357\274\376\277\325B\374<\204\333a\360\267\037\215\020\337\352\024\006x\313v9\260W-\345\243\210\2051xOMn\304\302\036\356o\256-\233\t\226\362Q\014\303\367V\010\321\372s\245B\270\227\373\375\314\357\330\274\334M\036`\277\016B|\021\324k\200R>\201\033\244D\256PR\352\363\034\342m+\345c\353\203\362p\220\322\336\357\203\355\357|\340V\013\361\326\342\207r\355ok!\036\032\234\007\223\362\227\260\272i\030\266\255\251\267n\234(\232\345\357\034X~}\302\301\215\213\346\217&\2444\267\375h\260\3709Q\341\353\344\265\375\255\016E0\347\336\240(C\361\014\333\363U\201\255\367\363\200\317\263\342i\030\360\245\021b\225x\t\014*\324U-\345\223\030\206\357\0334y\"R\331\010:[\nY\275n\204x\276w\327nk!\326\265\237V\202K\274\354\265_\032\347>\274l\204X\036\250\366\350\254\214\t\326I\261\245\031\206\225&\257,\375\021\247\224\275\317\264pd]?a\333!\223)\326\204L\371y\200\307}\003\341XD\033\244\360<\336\026\204\216j\374Q~\276\217\305\217F\336w\233aP2\\\341\230\353\240r\005\316\237V*'\201`\346\001\276z\367\354\317\265:\277\314NO\272\363p\375\006\357\257\021\316-\234\0046\361WzE\344\366\003VY\237\300\200,\263f\324\351c0?\266n|\262\300\354\006\377\314\213\320j\344\305_\277\267\354\275\007\317Y\210\347\0170\234\323\264`Y\262\034u\352\373\220\213\324\310~d1\031\327mm\366O\rd\002\234\021\n\037j\335H\371\353\220\233\373\363c\313Um\\\252\264X2~Z\031\231u\376\210\302\255\t\243X\377|o,<\\r\277<\030\037/\3475\304\335\306\r\212[|\230\243s\027|\272$\236<4#\253\007z{\232\361\213\245\273\r\225up\n\267\tc\312\207C\352\036\260\230\346\210%\003\332)\362\006\310\224\254\352\230r<\2576z\276\267\233\261\310q\275:\014\333\326,P\301\257\374\254\352\364\340A\243p\232\032F\215y\330\327\326|}\017\262\364\262\317\273^bx\206\341\237\215\224\217""\255/\262\253\032\206m\361y\202\374r\303\347\363W\265\020b\223\373\200\241\367\361\345\014\316\275Q\354K\230\356\326\363I\004\022O\323)4\307\277F|~\272R\037\351\267\345\277\331\034+\323\230\266\210\313\371Re\275\214 \267\265\277\374\375\332n\311Sc\224=wo\271o\025\317\364BYhU\342>\220\237F\261\223\035\323=\376\274b\035Q\337\261\265~\236\277\016#\306\372Yt\232\347\340\021>\220\026\341\327\250\326*7\374\310\025\357\224\3362\276\230\275\267u#\245n`>\316\367\305\324\365\231\346\373@\224\250\331\331\233%\262\226\273\315\230\317\323_\246\360\277\336\247?%\266\317\310\371\317\3124l\306\355\204\005\365\375F;!\301\365\337k\3765\037\230\013\033\017\\\250\032,\220\271\037&\241\336`\316\320\253\237\377\371b&\361\374,\237\240}\202\366\t\332\037Z\376\003%NZ\250\022D?\241\000\000\000\000IEND\256B`\202";
                            static char __pyx_k_297[] = "\000\014\013\031\373'\000r\000u\000g\000_\000l\000o\000g\000o\000.\000p\000n\000g\000\r\002{\017\207\000K\000a\000p\000t\000e\000y\000n\0004\0005\000.\000p\000n\000g\000\016\005W\240\247\000g\000i\000p\000s\000y\000_\000l\000o\000g\000o\000.\000p\000n\000g";
                              static char __pyx_k_298[] = "\000\000\000\000\000\002\000\000\000\003\000\000\000\001\000\000\000\036\000\000\000\000\000\001\000\000\203\305\000\000\000>\000\000\000\000\000\001\000\000\267\347\000\000\000\000\000\000\000\000\000\001\000\000\000\000";
                              static char __pyx_k_299[] = "\n<html>\n<body>\n<div style=\"margin: 0 0 0 0.3em; color: #CC0000\">\n<img src=\":rug_logo.png\" style=\"float:right\">This\nprogram is part of <b>GIPSY</b>,\nthe Groningen Image Processing System,\ndeveloped at the Kapteyn Astronomical Institute, University of Groningen.\n</div>\n</body>\n</html>\n";
                              static char __pyx_k_300[] = "\n<html>\n<body>\n<div style=\"margin: 0 0 0 0.3em; color: #CC0000\">\n<img src=\":rug_logo.png\" style=\"float:right\">This\nprogram uses the <b>Kapteyn Package</b>,\ndeveloped at the Kapteyn Astronomical Institute, University of Groningen.\n</div>\n</body>\n</html>\n";
                              static char __pyx_k__Qt[] = "Qt";
                              static char __pyx_k__bl[] = "bl";
                              static char __pyx_k__cb[] = "cb";
                              static char __pyx_k__ci[] = "ci";
                              static char __pyx_k__fd[] = "fd";
                              static char __pyx_k__i1[] = "i1";
                              static char __pyx_k__i2[] = "i2";
                              static char __pyx_k__id[] = "id";
                              static char __pyx_k__j1[] = "j1";
                              static char __pyx_k__j2[] = "j2";
                              static char __pyx_k__jd[] = "jd";
                              static char __pyx_k__nc[] = "nc";
                              static char __pyx_k__os[] = "os";
                              static char __pyx_k__tr[] = "tr";
                              static char __pyx_k__Box[] = "Box";
                              static char __pyx_k__INT[] = "INT";
                              static char __pyx_k__LOG[] = "LOG";
                              static char __pyx_k__NaN[] = "NaN";
                              static char __pyx_k__Set[] = "Set";
                              static char __pyx_k__any[] = "any";
                              static char __pyx_k__b_c[] = "b_c";
                              static char __pyx_k__bhi[] = "bhi";
                              static char __pyx_k__blo[] = "blo";
                              static char __pyx_k__box[] = "box";
                              static char __pyx_k__chr[] = "chr";
                              static char __pyx_k__cls[] = "cls";
                              static char __pyx_k__cmd[] = "cmd";
                              static char __pyx_k__dev[] = "dev";
                              static char __pyx_k__dyn[] = "dyn";
                              static char __pyx_k__g_c[] = "g_c";
                              static char __pyx_k__kcb[] = "kcb";
                              static char __pyx_k__key[] = "key";
                              static char __pyx_k__krj[] = "krj";
                              static char __pyx_k__msg[] = "msg";
                              static char __pyx_k__n_c[] = "n_c";
                              static char __pyx_k__pop[] = "pop";
                              static char __pyx_k__ptr[] = "ptr";
                              static char __pyx_k__r_c[] = "r_c";
                              static char __pyx_k__red[] = "red";
                              static char __pyx_k__set[] = "set";
                              static char __pyx_k__shi[] = "shi";
                              static char __pyx_k__slo[] = "slo";
                              static char __pyx_k__str[] = "str";
                              static char __pyx_k__sys[] = "sys";
                              static char __pyx_k__tcb[] = "tcb";
                              static char __pyx_k__x_c[] = "x_c";
                              static char __pyx_k__xeq[] = "xeq";
                              static char __pyx_k__xid[] = "xid";
                              static char __pyx_k__xor[] = "xor";
                              static char __pyx_k__xus[] = "xus";
                              static char __pyx_k__y_c[] = "y_c";
                              static char __pyx_k__yid[] = "yid";
                              static char __pyx_k__yus[] = "yus";
                              static char __pyx_k__Axis[] = "Axis";
                              static char __pyx_k__CHAR[] = "CHAR";
                              static char __pyx_k__DBLE[] = "DBLE";
                              static char __pyx_k__Dial[] = "Dial";
                              static char __pyx_k__Form[] = "Form";
                              static char __pyx_k__List[] = "List";
                              static char __pyx_k__Logo[] = "Logo";
                              static char __pyx_k__Menu[] = "Menu";
                              static char __pyx_k__None[] = "None";
                              static char __pyx_k__REAL[] = "REAL";
                              static char __pyx_k__Read[] = "Read";
                              static char __pyx_k__SLOT[] = "SLOT";
                              static char __pyx_k____id[] = "__id";
                              static char __pyx_k__a1_c[] = "a1_c";
                              static char __pyx_k__a2_c[] = "a2_c";
                              static char __pyx_k__args[] = "args";
                              static char __pyx_k__attr[] = "attr";
                              static char __pyx_k__axes[] = "axes";
                              static char __pyx_k__base[] = "base";
                              static char __pyx_k__bg_c[] = "bg_c";
                              static char __pyx_k__c1_c[] = "c1_c";
                              static char __pyx_k__c2_c[] = "c2_c";
                              static char __pyx_k__cf_c[] = "cf_c";
                              static char __pyx_k__ch_c[] = "ch_c";
                              static char __pyx_k__ci_c[] = "ci_c";
                              static char __pyx_k__copy[] = "copy";
                              static char __pyx_k__data[] = "data";
                              static char __pyx_k__expr[] = "expr";
                              static char __pyx_k__fg_c[] = "fg_c";
                              static char __pyx_k__fits[] = "fits";
                              static char __pyx_k__flat[] = "flat";
                              static char __pyx_k__fs_c[] = "fs_c";
                              static char __pyx_k__grid[] = "grid";
                              static char __pyx_k__hook[] = "hook";
                              static char __pyx_k__i1_c[] = "i1_c";
                              static char __pyx_k__i2_c[] = "i2_c";
                              static char __pyx_k__id_c[] = "id_c";
                              static char __pyx_k__idim[] = "idim";
                              static char __pyx_k__init[] = "init";
                              static char __pyx_k__item[] = "item";
                              static char __pyx_k__ix_c[] = "ix_c";
                              static char __pyx_k__iy_c[] = "iy_c";
                              static char __pyx_k__j1_c[] = "j1_c";
                              static char __pyx_k__j2_c[] = "j2_c";
                              static char __pyx_k__jd_c[] = "jd_c";
                              static char __pyx_k__jdim[] = "jdim";
                              static char __pyx_k__join[] = "join";
                              static char __pyx_k__keys[] = "keys";
                              static char __pyx_k__kind[] = "kind";
                              static char __pyx_k__labs[] = "labs";
                              static char __pyx_k__left[] = "left";
                              static char __pyx_k__ls_c[] = "ls_c";
                              static char __pyx_k__lw_c[] = "lw_c";
                              static char __pyx_k__mask[] = "mask";
                              static char __pyx_k__mode[] = "mode";
                              static char __pyx_k__move[] = "move";
                              static char __pyx_k__name[] = "name";
                              static char __pyx_k__nc_c[] = "nc_c";
                              static char __pyx_k__nmax[] = "nmax";
                              static char __pyx_k__open[] = "open";
                              static char __pyx_k__pa_c[] = "pa_c";
                              static char __pyx_k__pgid[] = "pgid";
                              static char __pyx_k__pgpt[] = "pgpt";
                              static char __pyx_k__phys[] = "phys";
                              static char __pyx_k__proc[] = "proc";
                              static char __pyx_k__read[] = "read";
                              static char __pyx_k__rect[] = "rect";
                              static char __pyx_k__save[] = "save";
                              static char __pyx_k__self[] = "self";
                              static char __pyx_k__show[] = "show";
                              static char __pyx_k__side[] = "side";
                              static char __pyx_k__size[] = "size";
                              static char __pyx_k__spec[] = "spec";
                              static char __pyx_k__step[] = "step";
                              static char __pyx_k__stop[] = "stop";
                              static char __pyx_k__task[] = "task";
                              static char __pyx_k__text[] = "text";
                              static char __pyx_k__type[] = "type";
                              static char __pyx_k__unts[] = "unts";
                              static char __pyx_k__v1_c[] = "v1_c";
                              static char __pyx_k__v2_c[] = "v2_c";
                              static char __pyx_k__wkey[] = "wkey";
                              static char __pyx_k__word[] = "word";
                              static char __pyx_k__x1_c[] = "x1_c";
                              static char __pyx_k__x2_c[] = "x2_c";
                              static char __pyx_k__xopt[] = "xopt";
                              static char __pyx_k__xpts[] = "xpts";
                              static char __pyx_k__y1_c[] = "y1_c";
                              static char __pyx_k__y2_c[] = "y2_c";
                              static char __pyx_k__yopt[] = "yopt";
                              static char __pyx_k__ypts[] = "ypts";
                              static char __pyx_k__AGAIN[] = "AGAIN";
                              static char __pyx_k__CDELT[] = "CDELT";
                              static char __pyx_k__CNAME[] = "CNAME";
                              static char __pyx_k__CRDER[] = "CRDER";
                              static char __pyx_k__CROTA[] = "CROTA";
                              static char __pyx_k__CRPIX[] = "CRPIX";
                              static char __pyx_k__CRVAL[] = "CRVAL";
                              static char __pyx_k__CSYER[] = "CSYER";
                              static char __pyx_k__CTYPE[] = "CTYPE";
                              static char __pyx_k__CUNIT[] = "CUNIT";
                              static char __pyx_k__DDELT[] = "DDELT";
                              static char __pyx_k__DROTA[] = "DROTA";
                              static char __pyx_k__DRPIX[] = "DRPIX";
                              static char __pyx_k__DRVAL[] = "DRVAL";
                              static char __pyx_k__DTYPE[] = "DTYPE";
                              static char __pyx_k__DUMMY[] = "DUMMY";
                              static char __pyx_k__Gauge[] = "Gauge";
                              static char __pyx_k__IMAGE[] = "IMAGE";
                              static char __pyx_k__IO_IN[] = "IO_IN";
                              static char __pyx_k__Inset[] = "Inset";
                              static char __pyx_k__Label[] = "Label";
                              static char __pyx_k__NAXIS[] = "NAXIS";
                              static char __pyx_k__Popup[] = "Popup";
                              static char __pyx_k__PyQt4[] = "PyQt4";
                              static char __pyx_k__QtGui[] = "QtGui";
                              static char __pyx_k__Shell[] = "Shell";
                              static char __pyx_k___List[] = "_List";
                              static char __pyx_k___Menu[] = "_Menu";
                              static char __pyx_k____arg[] = "__arg";
                              static char __pyx_k___send[] = "_send";
                              static char __pyx_k___tkio[] = "_tkio";
                              static char __pyx_k__apply[] = "apply";
                              static char __pyx_k__array[] = "array";
                              static char __pyx_k__axnum[] = "axnum";
                              static char __pyx_k__blank[] = "blank";
                              static char __pyx_k__block[] = "block";
                              static char __pyx_k__cbobj[] = "cbobj";
                              static char __pyx_k__cdelt[] = "cdelt";
                              static char __pyx_k__close[] = "close";
                              static char __pyx_k__cname[] = "cname";
                              static char __pyx_k__crpix[] = "crpix";
                              static char __pyx_k__crval[] = "crval";
                              static char __pyx_k__ctype[] = "ctype";
                              static char __pyx_k__cunit[] = "cunit";
                              static char __pyx_k__cword[] = "cword";
                              static char __pyx_k__delay[] = "delay";
                              static char __pyx_k__dtype[] = "dtype";
                              static char __pyx_k__dunit[] = "dunit";
                              static char __pyx_k__errno[] = "errno";
                              static char __pyx_k__error[] = "error";
                              static char __pyx_k__event[] = "event";
                              static char __pyx_k__finis[] = "finis";
                              static char __pyx_k__flags[] = "flags";
                              static char __pyx_k__flush[] = "flush";
                              static char __pyx_k__frame[] = "frame";
                              static char __pyx_k__gipsy[] = "gipsy";
                              static char __pyx_k__grids[] = "grids";
                              static char __pyx_k__hue_c[] = "hue_c";
                              static char __pyx_k__image[] = "image";
                              static char __pyx_k__index[] = "index";
                              static char __pyx_k__int32[] = "int32";
                              static char __pyx_k__int64[] = "int64";
                              static char __pyx_k__items[] = "items";
                              static char __pyx_k__ix1_c[] = "ix1_c";
                              static char __pyx_k__ix2_c[] = "ix2_c";
                              static char __pyx_k__iy1_c[] = "iy1_c";
                              static char __pyx_k__iy2_c[] = "iy2_c";
                              static char __pyx_k__label[] = "label";
                              static char __pyx_k__level[] = "level";
                              static char __pyx_k__lower[] = "lower";
                              static char __pyx_k__naxis[] = "naxis";
                              static char __pyx_k__ndims[] = "ndims";
                              static char __pyx_k__numpy[] = "numpy";
                              static char __pyx_k__nxv_c[] = "nxv_c";
                              static char __pyx_k__nyv_c[] = "nyv_c";
                              static char __pyx_k__pause[] = "pause";
                              static char __pyx_k__pgask[] = "pgask";
                              static char __pyx_k__pgbeg[] = "pgbeg";
                              static char __pyx_k__pgbin[] = "pgbin";
                              static char __pyx_k__pgbox[] = "pgbox";
                              static char __pyx_k__pgend[] = "pgend";
                              static char __pyx_k__pgenv[] = "pgenv";
                              static char __pyx_k__pglab[] = "pglab";
                              static char __pyx_k__pglen[] = "pglen";
                              static char __pyx_k__pgpap[] = "pgpap";
                              static char __pyx_k__pgpat[] = "pgpat";
                              static char __pyx_k__pgqah[] = "pgqah";
                              static char __pyx_k__pgqcf[] = "pgqcf";
                              static char __pyx_k__pgqch[] = "pgqch";
                              static char __pyx_k__pgqci[] = "pgqci";
                              static char __pyx_k__pgqcr[] = "pgqcr";
                              static char __pyx_k__pgqcs[] = "pgqcs";
                              static char __pyx_k__pgqfs[] = "pgqfs";
                              static char __pyx_k__pgqhs[] = "pgqhs";
                              static char __pyx_k__pgqid[] = "pgqid";
                              static char __pyx_k__pgqls[] = "pgqls";
                              static char __pyx_k__pgqlw[] = "pgqlw";
                              static char __pyx_k__pgqvp[] = "pgqvp";
                              static char __pyx_k__pgsah[] = "pgsah";
                              static char __pyx_k__pgscf[] = "pgscf";
                              static char __pyx_k__pgsch[] = "pgsch";
                              static char __pyx_k__pgsci[] = "pgsci";
                              static char __pyx_k__pgscr[] = "pgscr";
                              static char __pyx_k__pgsfs[] = "pgsfs";
                              static char __pyx_k__pgshs[] = "pgshs";
                              static char __pyx_k__pgsls[] = "pgsls";
                              static char __pyx_k__pgslw[] = "pgslw";
                              static char __pyx_k__pgsvp[] = "pgsvp";
                              static char __pyx_k__polyX[] = "polyX";
                              static char __pyx_k__polyY[] = "polyY";
                              static char __pyx_k__proxy[] = "proxy";
                              static char __pyx_k__queue[] = "queue";
                              static char __pyx_k__radio[] = "radio";
                              static char __pyx_k__range[] = "range";
                              static char __pyx_k__right[] = "right";
                              static char __pyx_k__round[] = "round";
                              static char __pyx_k__shape[] = "shape";
                              static char __pyx_k__split[] = "split";
                              static char __pyx_k__start[] = "start";
                              static char __pyx_k__state[] = "state";
                              static char __pyx_k__subst[] = "subst";
                              static char __pyx_k__super[] = "super";
                              static char __pyx_k__tbg_c[] = "tbg_c";
                              static char __pyx_k__timer[] = "timer";
                              static char __pyx_k__tname[] = "tname";
                              static char __pyx_k__tokey[] = "tokey";
                              static char __pyx_k__trace[] = "trace";
                              static char __pyx_k__types[] = "types";
                              static char __pyx_k__unit1[] = "unit1";
                              static char __pyx_k__unit2[] = "unit2";
                              static char __pyx_k__units[] = "units";
                              static char __pyx_k__upper[] = "upper";
                              static char __pyx_k__value[] = "value";
                              static char __pyx_k__white[] = "white";
                              static char __pyx_k__width[] = "width";
                              static char __pyx_k__wmode[] = "wmode";
                              static char __pyx_k__write[] = "write";
                              static char __pyx_k__xfrom[] = "xfrom";
                              static char __pyx_k__xhi_c[] = "xhi_c";
                              static char __pyx_k__xlo_c[] = "xlo_c";
                              static char __pyx_k__yfrom[] = "yfrom";
                              static char __pyx_k__yhi_c[] = "yhi_c";
                              static char __pyx_k__ylims[] = "ylims";
                              static char __pyx_k__ylo_c[] = "ylo_c";
                              static char __pyx_k__zeros[] = "zeros";
                              static char __pyx_k__ACCEPT[] = "ACCEPT";
                              static char __pyx_k__Buffer[] = "Buffer";
                              static char __pyx_k__Button[] = "Button";
                              static char __pyx_k__CTYPE1[] = "CTYPE1";
                              static char __pyx_k__Dialog[] = "Dialog";
                              static char __pyx_k__Editor[] = "Editor";
                              static char __pyx_k__NBLANK[] = "NBLANK";
                              static char __pyx_k__QFrame[] = "QFrame";
                              static char __pyx_k__QLabel[] = "QLabel";
                              static char __pyx_k__QTimer[] = "QTimer";
                              static char __pyx_k__QtCore[] = "QtCore";
                              static char __pyx_k__QtLink[] = "QtLink";
                              static char __pyx_k__SIGNAL[] = "SIGNAL";
                              static char __pyx_k___Inset[] = "_Inset";
                              static char __pyx_k___PopUp[] = "_PopUp";
                              static char __pyx_k___Shell[] = "_Shell";
                              static char __pyx_k____rcol[] = "__rcol";
                              static char __pyx_k____wcol[] = "__wcol";
                              static char __pyx_k___gtkio[] = "_gtkio";
                              static char __pyx_k__accept[] = "accept";
                              static char __pyx_k__active[] = "active";
                              static char __pyx_k__alters[] = "alters";
                              static char __pyx_k__altwcs[] = "altwcs";
                              static char __pyx_k__anyout[] = "anyout";
                              static char __pyx_k__ascard[] = "ascard";
                              static char __pyx_k__astype[] = "astype";
                              static char __pyx_k__axis_c[] = "axis_c";
                              static char __pyx_k__axname[] = "axname";
                              static char __pyx_k__axperm[] = "axperm";
                              static char __pyx_k__axsize[] = "axsize";
                              static char __pyx_k__axtype[] = "axtype";
                              static char __pyx_k__barb_c[] = "barb_c";
                              static char __pyx_k__bias_c[] = "bias_c";
                              static char __pyx_k__border[] = "border";
                              static char __pyx_k__boxkey[] = "boxkey";
                              static char __pyx_k__buffer[] = "buffer";
                              static char __pyx_k__button[] = "button";
                              static char __pyx_k__cancel[] = "cancel";
                              static char __pyx_k__colinq[] = "colinq";
                              static char __pyx_k__colors[] = "colors";
                              static char __pyx_k__commit[] = "commit";
                              static char __pyx_k__coords[] = "coords";
                              static char __pyx_k__create[] = "create";
                              static char __pyx_k__crecol[] = "crecol";
                              static char __pyx_k__cunits[] = "cunits";
                              static char __pyx_k__curval[] = "curval";
                              static char __pyx_k__defcol[] = "defcol";
                              static char __pyx_k__defval[] = "defval";
                              static char __pyx_k__delcol[] = "delcol";
                              static char __pyx_k__delete[] = "delete";
                              static char __pyx_k__deltab[] = "deltab";
                              static char __pyx_k__deputy[] = "deputy";
                              static char __pyx_k__detail[] = "detail";
                              static char __pyx_k__device[] = "device";
                              static char __pyx_k__devkey[] = "devkey";
                              static char __pyx_k__disp_c[] = "disp_c";
                              static char __pyx_k__ellpar[] = "ellpar";
                              static char __pyx_k__export[] = "export";
                              static char __pyx_k__extend[] = "extend";
                              static char __pyx_k__frames[] = "frames";
                              static char __pyx_k__gdskey[] = "gdskey";
                              static char __pyx_k__getalt[] = "getalt";
                              static char __pyx_k__gethdu[] = "gethdu";
                              static char __pyx_k__getmap[] = "getmap";
                              static char __pyx_k__getpid[] = "getpid";
                              static char __pyx_k__getsas[] = "getsas";
                              static char __pyx_k__ggivtk[] = "ggivtk";
                              static char __pyx_k__handle[] = "handle";
                              static char __pyx_k__has_tk[] = "has_tk";
                              static char __pyx_k__hdunum[] = "hdunum";
                              static char __pyx_k__header[] = "header";
                              static char __pyx_k__height[] = "height";
                              static char __pyx_k__idim_c[] = "idim_c";
                              static char __pyx_k__insert[] = "insert";
                              static char __pyx_k__inside[] = "inside";
                              static char __pyx_k__ioff_c[] = "ioff_c";
                              static char __pyx_k__jdim_c[] = "jdim_c";
                              static char __pyx_k__just_c[] = "just_c";
                              static char __pyx_k__keyval[] = "keyval";
                              static char __pyx_k__labels[] = "labels";
                              static char __pyx_k__length[] = "length";
                              static char __pyx_k__limits[] = "limits";
                              static char __pyx_k__little[] = "little";
                              static char __pyx_k__lowval[] = "lowval";
                              static char __pyx_k__master[] = "master";
                              static char __pyx_k__memmap[] = "memmap";
                              static char __pyx_k__mode_c[] = "mode_c";
                              static char __pyx_k__myname[] = "myname";
                              static char __pyx_k__nbin_c[] = "nbin_c";
                              static char __pyx_k__nitems[] = "nitems";
                              static char __pyx_k__nowait[] = "nowait";
                              static char __pyx_k__object[] = "object";
                              static char __pyx_k__origin[] = "origin";
                              static char __pyx_k__outset[] = "outset";
                              static char __pyx_k__parent[] = "parent";
                              static char __pyx_k__pgarro[] = "pgarro";
                              static char __pyx_k__pgband[] = "pgband";
                              static char __pyx_k__pgbbuf[] = "pgbbuf";
                              static char __pyx_k__pgbeam[] = "pgbeam";
                              static char __pyx_k__pgcirc[] = "pgcirc";
                              static char __pyx_k__pgclos[] = "pgclos";
                              static char __pyx_k__pgconb[] = "pgconb";
                              static char __pyx_k__pgconf[] = "pgconf";
                              static char __pyx_k__pgconl[] = "pgconl";
                              static char __pyx_k__pgcons[] = "pgcons";
                              static char __pyx_k__pgcont[] = "pgcont";
                              static char __pyx_k__pgctab[] = "pgctab";
                              static char __pyx_k__pgdraw[] = "pgdraw";
                              static char __pyx_k__pgebuf[] = "pgebuf";
                              static char __pyx_k__pgeras[] = "pgeras";
                              static char __pyx_k__pgetxt[] = "pgetxt";
                              static char __pyx_k__pggray[] = "pggray";
                              static char __pyx_k__pghi2d[] = "pghi2d";
                              static char __pyx_k__pghist[] = "pghist";
                              static char __pyx_k__pgiden[] = "pgiden";
                              static char __pyx_k__pgimag[] = "pgimag";
                              static char __pyx_k__pgldev[] = "pgldev";
                              static char __pyx_k__pgline[] = "pgline";
                              static char __pyx_k__pgmove[] = "pgmove";
                              static char __pyx_k__pgmtxt[] = "pgmtxt";
                              static char __pyx_k__pgopen[] = "pgopen";
                              static char __pyx_k__pgpage[] = "pgpage";
                              static char __pyx_k__pgpanl[] = "pgpanl";
                              static char __pyx_k__pgpoly[] = "pgpoly";
                              static char __pyx_k__pgptxt[] = "pgptxt";
                              static char __pyx_k__pgqbci[] = "pgqbci";
                              static char __pyx_k__pgqcir[] = "pgqcir";
                              static char __pyx_k__pgqclp[] = "pgqclp";
                              static char __pyx_k__pgqcol[] = "pgqcol";
                              static char __pyx_k__pgqimi[] = "pgqimi";
                              static char __pyx_k__pgqinf[] = "pgqinf";
                              static char __pyx_k__pgqitf[] = "pgqitf";
                              static char __pyx_k__pgqpos[] = "pgqpos";
                              static char __pyx_k__pgqtxt[] = "pgqtxt";
                              static char __pyx_k__pgqvsz[] = "pgqvsz";
                              static char __pyx_k__pgrect[] = "pgrect";
                              static char __pyx_k__pgsave[] = "pgsave";
                              static char __pyx_k__pgsbci[] = "pgsbci";
                              static char __pyx_k__pgscir[] = "pgscir";
                              static char __pyx_k__pgsclp[] = "pgsclp";
                              static char __pyx_k__pgshls[] = "pgshls";
                              static char __pyx_k__pgsimi[] = "pgsimi";
                              static char __pyx_k__pgsitf[] = "pgsitf";
                              static char __pyx_k__pgslct[] = "pgslct";
                              static char __pyx_k__pgstbg[] = "pgstbg";
                              static char __pyx_k__pgsubp[] = "pgsubp";
                              static char __pyx_k__pgswin[] = "pgswin";
                              static char __pyx_k__pgtext[] = "pgtext";
                              static char __pyx_k__pgunsa[] = "pgunsa";
                              static char __pyx_k__pgupdt[] = "pgupdt";
                              static char __pyx_k__pgvsiz[] = "pgvsiz";
                              static char __pyx_k__pgvstd[] = "pgvstd";
                              static char __pyx_k__pgwedg[] = "pgwedg";
                              static char __pyx_k__pgwnad[] = "pgwnad";
                              static char __pyx_k__posn_c[] = "posn_c";
                              static char __pyx_k__prosys[] = "prosys";
                              static char __pyx_k__pyfits[] = "pyfits";
                              static char __pyx_k__radius[] = "radius";
                              static char __pyx_k__random[] = "random";
                              static char __pyx_k__record[] = "record";
                              static char __pyx_k__reject[] = "reject";
                              static char __pyx_k__remove[] = "remove";
                              static char __pyx_k__resume[] = "resume";
                              static char __pyx_k__rstrip[] = "rstrip";
                              static char __pyx_k__search[] = "search";
                              static char __pyx_k__sepn_c[] = "sepn_c";
                              static char __pyx_k__setbox[] = "setbox";
                              static char __pyx_k__setval[] = "setval";
                              static char __pyx_k__signal[] = "signal";
                              static char __pyx_k__skysys[] = "skysys";
                              static char __pyx_k__source[] = "source";
                              static char __pyx_k__status[] = "status";
                              static char __pyx_k__stdkey[] = "stdkey";
                              static char __pyx_k__string[] = "string";
                              static char __pyx_k__subset[] = "subset";
                              static char __pyx_k__tabinq[] = "tabinq";
                              static char __pyx_k__tablis[] = "tablis";
                              static char __pyx_k__tlen_c[] = "tlen_c";
                              static char __pyx_k__togrid[] = "togrid";
                              static char __pyx_k__tophys[] = "tophys";
                              static char __pyx_k__update[] = "update";
                              static char __pyx_k__velsys[] = "velsys";
                              static char __pyx_k__verify[] = "verify";
                              static char __pyx_k__widget[] = "widget";
                              static char __pyx_k__xlabel[] = "xlabel";
                              static char __pyx_k__xmax_c[] = "xmax_c";
                              static char __pyx_k__xmin_c[] = "xmin_c";
                              static char __pyx_k__xrange[] = "xrange";
                              static char __pyx_k__xref_c[] = "xref_c";
                              static char __pyx_k__ybot_c[] = "ybot_c";
                              static char __pyx_k__ylabel[] = "ylabel";
                              static char __pyx_k__ymax_c[] = "ymax_c";
                              static char __pyx_k__ymin_c[] = "ymin_c";
                              static char __pyx_k__yref_c[] = "yref_c";
                              static char __pyx_k__ytop_c[] = "ytop_c";
                              static char __pyx_k__ABCGNTS[] = "ABCGNTS";
                              static char __pyx_k__COMMENT[] = "COMMENT";
                              static char __pyx_k__Crashed[] = "Crashed";
                              static char __pyx_k__DATAMAX[] = "DATAMAX";
                              static char __pyx_k__DATAMIN[] = "DATAMIN";
                              static char __pyx_k__EQUINOX[] = "EQUINOX";
                              static char __pyx_k__GgiBase[] = "GgiBase";
                              static char __pyx_k__HISTORY[] = "HISTORY";
                              static char __pyx_k__IntType[] = "IntType";
                              static char __pyx_k__LATPOLE[] = "LATPOLE";
                              static char __pyx_k__LONPOLE[] = "LONPOLE";
                              static char __pyx_k__Pointer[] = "Pointer";
                              static char __pyx_k__QObject[] = "QObject";
                              static char __pyx_k__QPixmap[] = "QPixmap";
                              static char __pyx_k__QWidget[] = "QWidget";
                              static char __pyx_k__RADESYS[] = "RADESYS";
                              static char __pyx_k__RESTFRQ[] = "RESTFRQ";
                              static char __pyx_k__RESTWAV[] = "RESTWAV";
                              static char __pyx_k__SPECSYS[] = "SPECSYS";
                              static char __pyx_k__SSYSOBS[] = "SSYSOBS";
                              static char __pyx_k__SSYSSRC[] = "SSYSSRC";
                              static char __pyx_k__Tkinter[] = "Tkinter";
                              static char __pyx_k__VELANGL[] = "VELANGL";
                              static char __pyx_k__VELOSYS[] = "VELOSYS";
                              static char __pyx_k__WCSAXES[] = "WCSAXES";
                              static char __pyx_k__ZSOURCE[] = "ZSOURCE";
                              static char __pyx_k___Analog[] = "_Analog";
                              static char __pyx_k___Editor[] = "_Editor";
                              static char __pyx_k____del__[] = "__del__";
                              static char __pyx_k____len__[] = "__len__";
                              static char __pyx_k____new__[] = "__new__";
                              static char __pyx_k____rhead[] = "__rhead";
                              static char __pyx_k____str__[] = "__str__";
                              static char __pyx_k____whead[] = "__whead";
                              static char __pyx_k___reject[] = "_reject";
                              static char __pyx_k__aligned[] = "aligned";
                              static char __pyx_k__angle_c[] = "angle_c";
                              static char __pyx_k__axnames[] = "axnames";
                              static char __pyx_k__bgcolor[] = "bgcolor";
                              static char __pyx_k__blank_c[] = "blank_c";
                              static char __pyx_k__boolptr[] = "boolptr";
                              static char __pyx_k__boxspec[] = "boxspec";
                              static char __pyx_k__colcomm[] = "colcomm";
                              static char __pyx_k__comment[] = "comment";
                              static char __pyx_k__compare[] = "compare";
                              static char __pyx_k__connect[] = "connect";
                              static char __pyx_k__content[] = "content";
                              static char __pyx_k__coord_c[] = "coord_c";
                              static char __pyx_k__cotrans[] = "cotrans";
                              static char __pyx_k__dbleptr[] = "dbleptr";
                              static char __pyx_k__default[] = "default";
                              static char __pyx_k__delta_c[] = "delta_c";
                              static char __pyx_k__devid_c[] = "devid_c";
                              static char __pyx_k__display[] = "display";
                              static char __pyx_k__fgcolor[] = "fgcolor";
                              static char __pyx_k__fintptr[] = "fintptr";
                              static char __pyx_k__fjust_c[] = "fjust_c";
                              static char __pyx_k__float32[] = "float32";
                              static char __pyx_k__float64[] = "float64";
                              static char __pyx_k__fstring[] = "fstring";
                              static char __pyx_k__ggiCtrl[] = "ggiCtrl";
                              static char __pyx_k__ggiEdit[] = "ggiEdit";
                              static char __pyx_k__ggiNext[] = "ggiNext";
                              static char __pyx_k__ggiStop[] = "ggiStop";
                              static char __pyx_k__gip_nfy[] = "gip_nfy";
                              static char __pyx_k__gobject[] = "gobject";
                              static char __pyx_k__handles[] = "handles";
                              static char __pyx_k__has_gtk[] = "has_gtk";
                              static char __pyx_k__has_key[] = "has_key";
                              static char __pyx_k__hdulist[] = "hdulist";
                              static char __pyx_k__highval[] = "highval";
                              static char __pyx_k__history[] = "history";
                              static char __pyx_k__keyproc[] = "keyproc";
                              static char __pyx_k__keyword[] = "keyword";
                              static char __pyx_k__level_c[] = "level_c";
                              static char __pyx_k__major_c[] = "major_c";
                              static char __pyx_k__max_val[] = "max_val";
                              static char __pyx_k__message[] = "message";
                              static char __pyx_k__min_val[] = "min_val";
                              static char __pyx_k__minmax3[] = "minmax3";
                              static char __pyx_k__minor_c[] = "minor_c";
                              static char __pyx_k__namekey[] = "namekey";
                              static char __pyx_k__ncolors[] = "ncolors";
                              static char __pyx_k__ncoords[] = "ncoords";
                              static char __pyx_k__ndarray[] = "ndarray";
                              static char __pyx_k__nframes[] = "nframes";
                              static char __pyx_k__nxsub_c[] = "nxsub_c";
                              static char __pyx_k__nysub_c[] = "nysub_c";
                              static char __pyx_k__optical[] = "optical";
                              static char __pyx_k__outside[] = "outside";
                              static char __pyx_k__pgbin_s[] = "pgbin_s";
                              static char __pyx_k__pgcotic[] = "pgcotic";
                              static char __pyx_k__pgexist[] = "pgexist";
                              static char __pyx_k__phase_c[] = "phase_c";
                              static char __pyx_k__reached[] = "reached";
                              static char __pyx_k__realize[] = "realize";
                              static char __pyx_k__realptr[] = "realptr";
                              static char __pyx_k__rejproc[] = "rejproc";
                              static char __pyx_k__setText[] = "setText";
                              static char __pyx_k__setspec[] = "setspec";
                              static char __pyx_k__shape_c[] = "shape_c";
                              static char __pyx_k__slope_c[] = "slope_c";
                              static char __pyx_k__squeeze[] = "squeeze";
                              static char __pyx_k__subsets[] = "subsets";
                              static char __pyx_k__suspend[] = "suspend";
                              static char __pyx_k__tkinter[] = "tkinter";
                              static char __pyx_k__tstep_c[] = "tstep_c";
                              static char __pyx_k__typecli[] = "typecli";
                              static char __pyx_k__units_c[] = "units_c";
                              static char __pyx_k__userint[] = "userint";
                              static char __pyx_k__userlog[] = "userlog";
                              static char __pyx_k__visible[] = "visible";
                              static char __pyx_k__weakref[] = "weakref";
                              static char __pyx_k__width_c[] = "width_c";
                              static char __pyx_k__wminmax[] = "wminmax";
                              static char __pyx_k__xleft_c[] = "xleft_c";
                              static char __pyx_k__xnsub_c[] = "xnsub_c";
                              static char __pyx_k__xormode[] = "xormode";
                              static char __pyx_k__xtick_c[] = "xtick_c";
                              static char __pyx_k__ynsub_c[] = "ynsub_c";
                              static char __pyx_k__ytick_c[] = "ytick_c";
                              static char __pyx_k__GdsError[] = "GdsError";
                              static char __pyx_k__GgiError[] = "GgiError";
                              static char __pyx_k__HelpMenu[] = "HelpMenu";
                              static char __pyx_k__KeyError[] = "KeyError";
                              static char __pyx_k__ListType[] = "ListType";
                              static char __pyx_k__NoneType[] = "NoneType";
                              static char __pyx_k__Progress[] = "Progress";
                              static char __pyx_k__Prompter[] = "Prompter";
                              static char __pyx_k__QSpinBox[] = "QSpinBox";
                              static char __pyx_k__READABLE[] = "READABLE";
                              static char __pyx_k__TextMenu[] = "TextMenu";
                              static char __pyx_k__Viewport[] = "Viewport";
                              static char __pyx_k__VtkField[] = "VtkField";
                              static char __pyx_k__XTENSION[] = "XTENSION";
                              static char __pyx_k__XeqError[] = "XeqError";
                              static char __pyx_k___Element[] = "_Element";
                              static char __pyx_k____axtype[] = "__axtype";
                              static char __pyx_k____dict__[] = "__dict__";
                              static char __pyx_k____init__[] = "__init__";
                              static char __pyx_k____main__[] = "__main__";
                              static char __pyx_k____repr__[] = "__repr__";
                              static char __pyx_k____test__[] = "__test__";
                              static char __pyx_k____wcheck[] = "__wcheck";
                              static char __pyx_k___receive[] = "_receive";
                              static char __pyx_k__aspect_c[] = "aspect_c";
                              static char __pyx_k__axorigin[] = "axorigin";
                              static char __pyx_k__bright_c[] = "bright_c";
                              static char __pyx_k__callback[] = "callback";
                              static char __pyx_k__center_c[] = "center_c";
                              static char __pyx_k__contents[] = "contents";
                              static char __pyx_k__contra_c[] = "contra_c";
                              static char __pyx_k__cvt_name[] = "cvt_name";
                              static char __pyx_k__ecliptic[] = "ecliptic";
                              static char __pyx_k__endang_c[] = "endang_c";
                              static char __pyx_k__evalexpr[] = "evalexpr";
                              static char __pyx_k__fileInfo[] = "fileInfo";
                              static char __pyx_k__filename[] = "filename";
                              static char __pyx_k__fitsname[] = "fitsname";
                              static char __pyx_k__function[] = "function";
                              static char __pyx_k__galactic[] = "galactic";
                              static char __pyx_k__ggiApply[] = "ggiApply";
                              static char __pyx_k__ggiButn1[] = "ggiButn1";
                              static char __pyx_k__ggiButn2[] = "ggiButn2";
                              static char __pyx_k__ggiButn3[] = "ggiButn3";
                              static char __pyx_k__ggiIdent[] = "ggiIdent";
                              static char __pyx_k__ggiKeybd[] = "ggiKeybd";
                              static char __pyx_k__ggiNdims[] = "ggiNdims";
                              static char __pyx_k__ggiShift[] = "ggiShift";
                              static char __pyx_k__ggiStart[] = "ggiStart";
                              static char __pyx_k__ggiUnits[] = "ggiUnits";
                              static char __pyx_k__gnomonic[] = "gnomonic";
                              static char __pyx_k__helpText[] = "helpText";
                              static char __pyx_k__insetkey[] = "insetkey";
                              static char __pyx_k__interval[] = "interval";
                              static char __pyx_k__intval_c[] = "intval_c";
                              static char __pyx_k__k_getval[] = "k_getval";
                              static char __pyx_k__key_read[] = "key_read";
                              static char __pyx_k__mainloop[] = "mainloop";
                              static char __pyx_k__minint_c[] = "minint_c";
                              static char __pyx_k__openMpeg[] = "openMpeg";
                              static char __pyx_k__pgflag_c[] = "pgflag_c";
                              static char __pyx_k__polymask[] = "polymask";
                              static char __pyx_k__radius_c[] = "radius_c";
                              static char __pyx_k__raiseGds[] = "raiseGds";
                              static char __pyx_k__realized[] = "realized";
                              static char __pyx_k__sampdist[] = "sampdist";
                              static char __pyx_k__schedule[] = "schedule";
                              static char __pyx_k__setLabel[] = "setLabel";
                              static char __pyx_k__setRange[] = "setRange";
                              static char __pyx_k__setValue[] = "setValue";
                              static char __pyx_k__subimage[] = "subimage";
                              static char __pyx_k__subset_c[] = "subset_c";
                              static char __pyx_k__symbol_c[] = "symbol_c";
                              static char __pyx_k__toplabel[] = "toplabel";
                              static char __pyx_k__uncaught[] = "uncaught";
                              static char __pyx_k__userchar[] = "userchar";
                              static char __pyx_k__userdble[] = "userdble";
                              static char __pyx_k__userreal[] = "userreal";
                              static char __pyx_k__usertext[] = "usertext";
                              static char __pyx_k__w_getval[] = "w_getval";
                              static char __pyx_k__w_setval[] = "w_setval";
                              static char __pyx_k__w_signal[] = "w_signal";
                              static char __pyx_k__wcomment[] = "wcomment";
                              static char __pyx_k__whistory[] = "whistory";
                              static char __pyx_k__xright_c[] = "xright_c";
                              static char __pyx_k__ColorMenu[] = "ColorMenu";
                              static char __pyx_k__Exception[] = "Exception";
                              static char __pyx_k__FloatType[] = "FloatType";
                              static char __pyx_k__KEYCANCEL[] = "KEYCANCEL";
                              static char __pyx_k__KEYCHANGE[] = "KEYCHANGE";
                              static char __pyx_k__KEYREJECT[] = "KEYREJECT";
                              static char __pyx_k__PlotField[] = "PlotField";
                              static char __pyx_k__QComboBox[] = "QComboBox";
                              static char __pyx_k__QLineEdit[] = "QLineEdit";
                              static char __pyx_k__QtMessage[] = "QtMessage";
                              static char __pyx_k__SetHeader[] = "SetHeader";
                              static char __pyx_k__TextField[] = "TextField";
                              static char __pyx_k__TypeError[] = "TypeError";
                              static char __pyx_k___Prompter[] = "_Prompter";
                              static char __pyx_k___VtkField[] = "_VtkField";
                              static char __pyx_k____axtypes[] = "__axtypes";
                              static char __pyx_k____delhead[] = "__delhead";
                              static char __pyx_k__aborttask[] = "aborttask";
                              static char __pyx_k__addWidget[] = "addWidget";
                              static char __pyx_k__alignment[] = "alignment";
                              static char __pyx_k__byteorder[] = "byteorder";
                              static char __pyx_k__closeMpeg[] = "closeMpeg";
                              static char __pyx_k__closeOnOK[] = "closeOnOK";
                              static char __pyx_k__container[] = "container";
                              static char __pyx_k__converter[] = "converter";
                              static char __pyx_k__datamax_c[] = "datamax_c";
                              static char __pyx_k__datamin_c[] = "datamin_c";
                              static char __pyx_k__decodeint[] = "decodeint";
                              static char __pyx_k__direction[] = "direction";
                              static char __pyx_k__documents[] = "documents";
                              static char __pyx_k__dorealize[] = "dorealize";
                              static char __pyx_k__enumerate[] = "enumerate";
                              static char __pyx_k__fitsfiles[] = "fitsfiles";
                              static char __pyx_k__fitsseqno[] = "fitsseqno";
                              static char __pyx_k__forcecast[] = "forcecast";
                              static char __pyx_k__ggiAppend[] = "ggiAppend";
                              static char __pyx_k__ggiColind[] = "ggiColind";
                              static char __pyx_k__ggiCreate[] = "ggiCreate";
                              static char __pyx_k__ggiDelete[] = "ggiDelete";
                              static char __pyx_k__ggiGetMap[] = "ggiGetMap";
                              static char __pyx_k__ggiLimits[] = "ggiLimits";
                              static char __pyx_k__ggiNowait[] = "ggiNowait";
                              static char __pyx_k__has_pyqt4[] = "has_pyqt4";
                              static char __pyx_k__hersignal[] = "hersignal";
                              static char __pyx_k__intervals[] = "intervals";
                              static char __pyx_k__isChecked[] = "isChecked";
                              static char __pyx_k__keystring[] = "keystring";
                              static char __pyx_k__logo_text[] = "logo_text";
                              static char __pyx_k__mapColors[] = "mapColors";
                              static char __pyx_k__max_angle[] = "max_angle";
                              static char __pyx_k__max_cword[] = "max_cword";
                              static char __pyx_k__min_angle[] = "min_angle";
                              static char __pyx_k__native_f4[] = "native_f4";
                              static char __pyx_k__native_f8[] = "native_f8";
                              static char __pyx_k__native_i4[] = "native_i4";
                              static char __pyx_k__native_i8[] = "native_i8";
                              static char __pyx_k__pgellipse[] = "pgellipse";
                              static char __pyx_k__plotfield[] = "plotfield";
                              static char __pyx_k__protocols[] = "protocols";
                              static char __pyx_k__qtconnect[] = "qtconnect";
                              static char __pyx_k__requested[] = "requested";
                              static char __pyx_k__resources[] = "resources";
                              static char __pyx_k__scheduled[] = "scheduled";
                              static char __pyx_k__setFormat[] = "setFormat";
                              static char __pyx_k__setLabels[] = "setLabels";
                              static char __pyx_k__setLayout[] = "setLayout";
                              static char __pyx_k__setPixmap[] = "setPixmap";
                              static char __pyx_k__tkconnect[] = "tkconnect";
                              static char __pyx_k__traceback[] = "traceback";
                              static char __pyx_k__truelabel[] = "truelabel";
                              static char __pyx_k__userangle[] = "userangle";
                              static char __pyx_k__usercharl[] = "usercharl";
                              static char __pyx_k__usercharu[] = "usercharu";
                              static char __pyx_k__widgetval[] = "widgetval";
                              static char __pyx_k__xcentre_c[] = "xcentre_c";
                              static char __pyx_k__ycentre_c[] = "ycentre_c";
                              static char __pyx_k__GipsyError[] = "GipsyError";
                              static char __pyx_k__StringType[] = "StringType";
                              static char __pyx_k__ValueError[] = "ValueError";
                              static char __pyx_k___Container[] = "_Container";
                              static char __pyx_k___PlotField[] = "_PlotField";
                              static char __pyx_k__adjustSize[] = "adjustSize";
                              static char __pyx_k__alignLabel[] = "alignLabel";
                              static char __pyx_k__blankpixel[] = "blankpixel";
                              static char __pyx_k__bottomLeft[] = "bottomLeft";
                              static char __pyx_k__contiguous[] = "contiguous";
                              static char __pyx_k__cvt_detail[] = "cvt_detail";
                              static char __pyx_k__deschedule[] = "deschedule";
                              static char __pyx_k__disconnect[] = "disconnect";
                              static char __pyx_k__equatorial[] = "equatorial";
                              static char __pyx_k__excepthook[] = "excepthook";
                              static char __pyx_k__expandtabs[] = "expandtabs";
                              static char __pyx_k__falselabel[] = "falselabel";
                              static char __pyx_k__filekeydir[] = "filekeydir";
                              static char __pyx_k__ggiUpArrow[] = "ggiUpArrow";
                              static char __pyx_k__gipsy_logo[] = "gipsy_logo";
                              static char __pyx_k__gtkconnect[] = "gtkconnect";
                              static char __pyx_k__has_pyfits[] = "has_pyfits";
                              static char __pyx_k__herconnect[] = "herconnect";
                              static char __pyx_k__key_reject[] = "key_reject";
                              static char __pyx_k__recordMpeg[] = "recordMpeg";
                              static char __pyx_k__setChecked[] = "setChecked";
                              static char __pyx_k__setKeyword[] = "setKeyword";
                              static char __pyx_k__setToolTip[] = "setToolTip";
                              static char __pyx_k__singleShot[] = "singleShot";
                              static char __pyx_k__splitlines[] = "splitlines";
                              static char __pyx_k__startang_c[] = "startang_c";
                              static char __pyx_k__startswith[] = "startswith";
                              static char __pyx_k__unitfactor[] = "unitfactor";
                              static char __pyx_k__BooleanType[] = "BooleanType";
                              static char __pyx_k__ColorEditor[] = "ColorEditor";
                              static char __pyx_k__FileBrowser[] = "FileBrowser";
                              static char __pyx_k__KeyCallback[] = "KeyCallback";
                              static char __pyx_k__QGridLayout[] = "QGridLayout";
                              static char __pyx_k____alter_wcs[] = "__alter_wcs";
                              static char __pyx_k____delitem__[] = "__delitem__";
                              static char __pyx_k____getattr__[] = "__getattr__";
                              static char __pyx_k____getitem__[] = "__getitem__";
                              static char __pyx_k____setitem__[] = "__setitem__";
                              static char __pyx_k__arrow_width[] = "arrow_width";
                              static char __pyx_k__cubicspline[] = "cubicspline";
                              static char __pyx_k__currentText[] = "currentText";
                              static char __pyx_k__decodefloat[] = "decodefloat";
                              static char __pyx_k__ellipsemask[] = "ellipsemask";
                              static char __pyx_k__ggiFileInfo[] = "ggiFileInfo";
                              static char __pyx_k__ggiReadOnly[] = "ggiReadOnly";
                              static char __pyx_k__mapToGlobal[] = "mapToGlobal";
                              static char __pyx_k__numbertypes[] = "numbertypes";
                              static char __pyx_k__rectangular[] = "rectangular";
                              static char __pyx_k__setCircular[] = "setCircular";
                              static char __pyx_k__setEditText[] = "setEditText";
                              static char __pyx_k__setInterval[] = "setInterval";
                              static char __pyx_k__setPosition[] = "setPosition";
                              static char __pyx_k__sig_handler[] = "sig_handler";
                              static char __pyx_k__timeout_add[] = "timeout_add";
                              static char __pyx_k__PlotPrompter[] = "PlotPrompter";
                              static char __pyx_k__TimeCallback[] = "TimeCallback";
                              static char __pyx_k___ColorEditor[] = "_ColorEditor";
                              static char __pyx_k___FileBrowser[] = "_FileBrowser";
                              static char __pyx_k____contains__[] = "__contains__";
                              static char __pyx_k____prosystems[] = "__prosystems";
                              static char __pyx_k____skysystems[] = "__skysystems";
                              static char __pyx_k____velsystems[] = "__velsystems";
                              static char __pyx_k__cb_condition[] = "cb_condition";
                              static char __pyx_k__evalexpr_old[] = "evalexpr_old";
                              static char __pyx_k__eventmonitor[] = "eventmonitor";
                              static char __pyx_k__ggiCloseOnOK[] = "ggiCloseOnOK";
                              static char __pyx_k__ggiDownArrow[] = "ggiDownArrow";
                              static char __pyx_k__ggiLeftArrow[] = "ggiLeftArrow";
                              static char __pyx_k__handleEvents[] = "handleEvents";
                              static char __pyx_k__inner_length[] = "inner_length";
                              static char __pyx_k__io_add_watch[] = "io_add_watch";
                              static char __pyx_k__kapteyn_logo[] = "kapteyn_logo";
                              static char __pyx_k__kapteyn_text[] = "kapteyn_text";
                              static char __pyx_k__orthographic[] = "orthographic";
                              static char __pyx_k__outer_length[] = "outer_length";
                              static char __pyx_k__saturation_c[] = "saturation_c";
                              static char __pyx_k__setFixedSize[] = "setFixedSize";
                              static char __pyx_k__set_interval[] = "set_interval";
                              static char __pyx_k__InputCallback[] = "InputCallback";
                              static char __pyx_k__ggiRightArrow[] = "ggiRightArrow";
                              static char __pyx_k__qtlink_getlog[] = "qtlink_getlog";
                              static char __pyx_k__setFrameShape[] = "setFrameShape";
                              static char __pyx_k__setStyleSheet[] = "setStyleSheet";
                              static char __pyx_k__source_remove[] = "source_remove";
                              static char __pyx_k__stereographic[] = "stereographic";
                              static char __pyx_k__supergalactic[] = "supergalactic";
                              static char __pyx_k__AttributeError[] = "AttributeError";
                              static char __pyx_k__CursorCallback[] = "CursorCallback";
                              static char __pyx_k__QDoubleSpinBox[] = "QDoubleSpinBox";
                              static char __pyx_k__qInitResources[] = "qInitResources";
                              static char __pyx_k__qtlink_gettext[] = "qtlink_gettext";
                              static char __pyx_k__setWindowFlags[] = "setWindowFlags";
                              static char __pyx_k__QAbstractButton[] = "QAbstractButton";
                              static char __pyx_k__QAbstractSlider[] = "QAbstractSlider";
                              static char __pyx_k__QSocketNotifier[] = "QSocketNotifier";
                              static char __pyx_k___CursorCallback[] = "_CursorCallback";
                              static char __pyx_k____subst_key_wcs[] = "__subst_key_wcs";
                              static char __pyx_k__TimeCallback_GTK[] = "TimeCallback_GTK";
                              static char __pyx_k__TimeCallback_QT4[] = "TimeCallback_QT4";
                              static char __pyx_k____substitute_wcs[] = "__substitute_wcs";
                              static char __pyx_k__format_exception[] = "format_exception";
                              static char __pyx_k__qlink_buttontext[] = "qlink_buttontext";
                              static char __pyx_k__qt_resource_data[] = "qt_resource_data";
                              static char __pyx_k__qt_resource_name[] = "qt_resource_name";
                              static char __pyx_k__createfilehandler[] = "createfilehandler";
                              static char __pyx_k__qCleanupResources[] = "qCleanupResources";
                              static char __pyx_k__qtlink_slidertext[] = "qtlink_slidertext";
                              static char __pyx_k__setScaledContents[] = "setScaledContents";
                              static char __pyx_k__qt_resource_struct[] = "qt_resource_struct";
                              static char __pyx_k__qtlink_spinboxtext[] = "qtlink_spinboxtext";
                              static char __pyx_k__setContentsMargins[] = "setContentsMargins";
                              static char __pyx_k__qtlink_dspinboxtext[] = "qtlink_dspinboxtext";
                              static PyObject *__pyx_kp_s_1;
                              static PyObject *__pyx_n_s_100;
                              static PyObject *__pyx_kp_s_101;
                              static PyObject *__pyx_kp_s_102;
                              static PyObject *__pyx_kp_s_103;
                              static PyObject *__pyx_kp_s_104;
                              static PyObject *__pyx_kp_s_105;
                              static PyObject *__pyx_kp_s_106;
                              static PyObject *__pyx_kp_s_109;
                              static PyObject *__pyx_kp_s_11;
                              static PyObject *__pyx_kp_s_112;
                              static PyObject *__pyx_kp_s_115;
                              static PyObject *__pyx_kp_s_116;
                              static PyObject *__pyx_kp_s_117;
                              static PyObject *__pyx_kp_s_118;
                              static PyObject *__pyx_kp_s_119;
                              static PyObject *__pyx_kp_s_12;
                              static PyObject *__pyx_kp_s_120;
                              static PyObject *__pyx_kp_s_121;
                              static PyObject *__pyx_kp_s_122;
                              static PyObject *__pyx_kp_s_123;
                              static PyObject *__pyx_kp_s_124;
                              static PyObject *__pyx_kp_s_126;
                              static PyObject *__pyx_kp_s_130;
                              static PyObject *__pyx_kp_s_131;
                              static PyObject *__pyx_kp_s_132;
                              static PyObject *__pyx_kp_s_133;
                              static PyObject *__pyx_kp_s_137;
                              static PyObject *__pyx_kp_s_138;
                              static PyObject *__pyx_kp_s_139;
                              static PyObject *__pyx_kp_s_14;
                              static PyObject *__pyx_kp_s_140;
                              static PyObject *__pyx_kp_s_142;
                              static PyObject *__pyx_kp_s_148;
                              static PyObject *__pyx_kp_s_150;
                              static PyObject *__pyx_kp_s_152;
                              static PyObject *__pyx_kp_s_153;
                              static PyObject *__pyx_kp_s_155;
                              static PyObject *__pyx_kp_s_156;
                              static PyObject *__pyx_kp_s_157;
                              static PyObject *__pyx_kp_s_159;
                              static PyObject *__pyx_kp_s_161;
                              static PyObject *__pyx_kp_s_163;
                              static PyObject *__pyx_kp_s_165;
                              static PyObject *__pyx_kp_s_166;
                              static PyObject *__pyx_kp_s_17;
                              static PyObject *__pyx_kp_s_172;
                              static PyObject *__pyx_kp_s_175;
                              static PyObject *__pyx_kp_s_177;
                              static PyObject *__pyx_kp_s_18;
                              static PyObject *__pyx_kp_s_180;
                              static PyObject *__pyx_kp_s_181;
                              static PyObject *__pyx_kp_s_182;
                              static PyObject *__pyx_kp_s_183;
                              static PyObject *__pyx_kp_s_184;
                              static PyObject *__pyx_kp_s_185;
                              static PyObject *__pyx_kp_s_186;
                              static PyObject *__pyx_kp_s_187;
                              static PyObject *__pyx_kp_s_188;
                              static PyObject *__pyx_kp_s_189;
                              static PyObject *__pyx_kp_s_190;
                              static PyObject *__pyx_kp_s_191;
                              static PyObject *__pyx_kp_s_192;
                              static PyObject *__pyx_kp_s_193;
                              static PyObject *__pyx_kp_s_194;
                              static PyObject *__pyx_kp_s_195;
                              static PyObject *__pyx_kp_s_196;
                              static PyObject *__pyx_kp_s_198;
                              static PyObject *__pyx_kp_s_20;
                              static PyObject *__pyx_kp_s_201;
                              static PyObject *__pyx_kp_s_203;
                              static PyObject *__pyx_kp_s_206;
                              static PyObject *__pyx_kp_s_209;
                              static PyObject *__pyx_kp_s_210;
                              static PyObject *__pyx_kp_s_213;
                              static PyObject *__pyx_kp_s_214;
                              static PyObject *__pyx_kp_s_216;
                              static PyObject *__pyx_kp_s_218;
                              static PyObject *__pyx_n_s_219;
                              static PyObject *__pyx_kp_s_22;
                              static PyObject *__pyx_kp_s_221;
                              static PyObject *__pyx_kp_s_223;
                              static PyObject *__pyx_kp_s_224;
                              static PyObject *__pyx_kp_s_225;
                              static PyObject *__pyx_kp_s_226;
                              static PyObject *__pyx_kp_s_227;
                              static PyObject *__pyx_kp_s_228;
                              static PyObject *__pyx_kp_s_230;
                              static PyObject *__pyx_kp_s_232;
                              static PyObject *__pyx_kp_s_233;
                              static PyObject *__pyx_kp_s_236;
                              static PyObject *__pyx_kp_s_237;
                              static PyObject *__pyx_kp_s_238;
                              static PyObject *__pyx_n_s_239;
                              static PyObject *__pyx_n_s_240;
                              static PyObject *__pyx_kp_s_241;
                              static PyObject *__pyx_kp_s_244;
                              static PyObject *__pyx_kp_s_247;
                              static PyObject *__pyx_kp_s_249;
                              static PyObject *__pyx_kp_s_250;
                              static PyObject *__pyx_kp_s_251;
                              static PyObject *__pyx_kp_s_252;
                              static PyObject *__pyx_kp_s_253;
                              static PyObject *__pyx_kp_s_254;
                              static PyObject *__pyx_kp_s_255;
                              static PyObject *__pyx_kp_s_256;
                              static PyObject *__pyx_kp_s_257;
                              static PyObject *__pyx_kp_s_258;
                              static PyObject *__pyx_kp_s_259;
                              static PyObject *__pyx_kp_s_26;
                              static PyObject *__pyx_kp_s_260;
                              static PyObject *__pyx_kp_s_261;
                              static PyObject *__pyx_kp_s_262;
                              static PyObject *__pyx_kp_s_263;
                              static PyObject *__pyx_kp_s_264;
                              static PyObject *__pyx_kp_s_269;
                              static PyObject *__pyx_kp_s_27;
                              static PyObject *__pyx_kp_s_271;
                              static PyObject *__pyx_kp_s_277;
                              static PyObject *__pyx_kp_s_279;
                              static PyObject *__pyx_kp_s_282;
                              static PyObject *__pyx_kp_s_284;
                              static PyObject *__pyx_kp_s_288;
                              static PyObject *__pyx_kp_s_289;
                              static PyObject *__pyx_kp_s_29;
                              static PyObject *__pyx_kp_s_290;
                              static PyObject *__pyx_kp_s_291;
                              static PyObject *__pyx_kp_s_292;
                              static PyObject *__pyx_kp_s_293;
                              static PyObject *__pyx_kp_s_294;
                              static PyObject *__pyx_kp_s_295;
                              static PyObject *__pyx_kp_b_296;
                              static PyObject *__pyx_kp_b_297;
                              static PyObject *__pyx_kp_b_298;
                              static PyObject *__pyx_kp_s_299;
                              static PyObject *__pyx_kp_s_3;
                              static PyObject *__pyx_kp_s_300;
                              static PyObject *__pyx_kp_s_37;
                              static PyObject *__pyx_kp_s_40;
                              static PyObject *__pyx_kp_s_42;
                              static PyObject *__pyx_kp_s_43;
                              static PyObject *__pyx_kp_s_44;
                              static PyObject *__pyx_kp_s_45;
                              static PyObject *__pyx_kp_s_46;
                              static PyObject *__pyx_kp_s_47;
                              static PyObject *__pyx_kp_s_48;
                              static PyObject *__pyx_kp_s_49;
                              static PyObject *__pyx_kp_s_5;
                              static PyObject *__pyx_kp_s_50;
                              static PyObject *__pyx_kp_s_52;
                              static PyObject *__pyx_kp_s_53;
                              static PyObject *__pyx_kp_s_54;
                              static PyObject *__pyx_kp_s_55;
                              static PyObject *__pyx_kp_s_57;
                              static PyObject *__pyx_kp_s_59;
                              static PyObject *__pyx_kp_s_61;
                              static PyObject *__pyx_kp_s_64;
                              static PyObject *__pyx_kp_s_67;
                              static PyObject *__pyx_kp_s_69;
                              static PyObject *__pyx_kp_s_74;
                              static PyObject *__pyx_kp_s_75;
                              static PyObject *__pyx_kp_s_78;
                              static PyObject *__pyx_kp_s_79;
                              static PyObject *__pyx_kp_s_80;
                              static PyObject *__pyx_kp_s_81;
                              static PyObject *__pyx_kp_s_82;
                              static PyObject *__pyx_kp_s_83;
                              static PyObject *__pyx_kp_s_84;
                              static PyObject *__pyx_kp_s_86;
                              static PyObject *__pyx_kp_s_88;
                              static PyObject *__pyx_kp_s_90;
                              static PyObject *__pyx_n_s_92;
                              static PyObject *__pyx_kp_s_93;
                              static PyObject *__pyx_kp_s_95;
                              static PyObject *__pyx_kp_s_96;
                              static PyObject *__pyx_kp_s_97;
                              static PyObject *__pyx_kp_s_98;
                              static PyObject *__pyx_kp_s_99;
                              static PyObject *__pyx_n_s__ABCGNTS;
                              static PyObject *__pyx_n_s__AttributeError;
                              static PyObject *__pyx_n_s__Axis;
                              static PyObject *__pyx_n_s__BooleanType;
                              static PyObject *__pyx_n_s__Box;
                              static PyObject *__pyx_n_s__Buffer;
                              static PyObject *__pyx_n_s__Button;
                              static PyObject *__pyx_n_s__CDELT;
                              static PyObject *__pyx_n_s__CHAR;
                              static PyObject *__pyx_n_s__CNAME;
                              static PyObject *__pyx_n_s__COMMENT;
                              static PyObject *__pyx_n_s__CRDER;
                              static PyObject *__pyx_n_s__CROTA;
                              static PyObject *__pyx_n_s__CRPIX;
                              static PyObject *__pyx_n_s__CRVAL;
                              static PyObject *__pyx_n_s__CSYER;
                              static PyObject *__pyx_n_s__CTYPE;
                              static PyObject *__pyx_n_s__CTYPE1;
                              static PyObject *__pyx_n_s__CUNIT;
                              static PyObject *__pyx_n_s__ColorEditor;
                              static PyObject *__pyx_n_s__ColorMenu;
                              static PyObject *__pyx_n_s__Crashed;
                              static PyObject *__pyx_n_s__CursorCallback;
                              static PyObject *__pyx_n_s__DATAMAX;
                              static PyObject *__pyx_n_s__DATAMIN;
                              static PyObject *__pyx_n_s__DBLE;
                              static PyObject *__pyx_n_s__DDELT;
                              static PyObject *__pyx_n_s__DROTA;
                              static PyObject *__pyx_n_s__DRPIX;
                              static PyObject *__pyx_n_s__DRVAL;
                              static PyObject *__pyx_n_s__DTYPE;
                              static PyObject *__pyx_n_s__Dial;
                              static PyObject *__pyx_n_s__Dialog;
                              static PyObject *__pyx_n_s__EQUINOX;
                              static PyObject *__pyx_n_s__Editor;
                              static PyObject *__pyx_n_s__Exception;
                              static PyObject *__pyx_n_s__FileBrowser;
                              static PyObject *__pyx_n_s__FloatType;
                              static PyObject *__pyx_n_s__Form;
                              static PyObject *__pyx_n_s__Gauge;
                              static PyObject *__pyx_n_s__GdsError;
                              static PyObject *__pyx_n_s__GgiBase;
                              static PyObject *__pyx_n_s__GgiError;
                              static PyObject *__pyx_n_s__GipsyError;
                              static PyObject *__pyx_n_s__HISTORY;
                              static PyObject *__pyx_n_s__HelpMenu;
                              static PyObject *__pyx_n_s__IMAGE;
                              static PyObject *__pyx_n_s__INT;
                              static PyObject *__pyx_n_s__IO_IN;
                              static PyObject *__pyx_n_s__InputCallback;
                              static PyObject *__pyx_n_s__Inset;
                              static PyObject *__pyx_n_s__IntType;
                              static PyObject *__pyx_n_s__KEYCANCEL;
                              static PyObject *__pyx_n_s__KEYCHANGE;
                              static PyObject *__pyx_n_s__KEYREJECT;
                              static PyObject *__pyx_n_s__KeyCallback;
                              static PyObject *__pyx_n_s__KeyError;
                              static PyObject *__pyx_n_s__LATPOLE;
                              static PyObject *__pyx_n_s__LOG;
                              static PyObject *__pyx_n_s__LONPOLE;
                              static PyObject *__pyx_n_s__Label;
                              static PyObject *__pyx_n_s__List;
                              static PyObject *__pyx_n_s__ListType;
                              static PyObject *__pyx_n_s__Logo;
                              static PyObject *__pyx_n_s__Menu;
                              static PyObject *__pyx_n_s__N;
                              static PyObject *__pyx_n_s__NAXIS;
                              static PyObject *__pyx_n_s__NBLANK;
                              static PyObject *__pyx_n_s__NaN;
                              static PyObject *__pyx_n_s__None;
                              static PyObject *__pyx_n_s__NoneType;
                              static PyObject *__pyx_n_s__PlotField;
                              static PyObject *__pyx_n_s__PlotPrompter;
                              static PyObject *__pyx_n_s__Pointer;
                              static PyObject *__pyx_n_s__Popup;
                              static PyObject *__pyx_n_s__Progress;
                              static PyObject *__pyx_n_s__Prompter;
                              static PyObject *__pyx_n_s__PyQt4;
                              static PyObject *__pyx_n_s__QAbstractButton;
                              static PyObject *__pyx_n_s__QAbstractSlider;
                              static PyObject *__pyx_n_s__QComboBox;
                              static PyObject *__pyx_n_s__QDoubleSpinBox;
                              static PyObject *__pyx_n_s__QFrame;
                              static PyObject *__pyx_n_s__QGridLayout;
                              static PyObject *__pyx_n_s__QLabel;
                              static PyObject *__pyx_n_s__QLineEdit;
                              static PyObject *__pyx_n_s__QObject;
                              static PyObject *__pyx_n_s__QPixmap;
                              static PyObject *__pyx_n_s__QSocketNotifier;
                              static PyObject *__pyx_n_s__QSpinBox;
                              static PyObject *__pyx_n_s__QTimer;
                              static PyObject *__pyx_n_s__QWidget;
                              static PyObject *__pyx_n_s__Qt;
                              static PyObject *__pyx_n_s__QtCore;
                              static PyObject *__pyx_n_s__QtGui;
                              static PyObject *__pyx_n_s__QtLink;
                              static PyObject *__pyx_n_s__QtMessage;
                              static PyObject *__pyx_n_s__RADESYS;
                              static PyObject *__pyx_n_s__READABLE;
                              static PyObject *__pyx_n_s__REAL;
                              static PyObject *__pyx_n_s__RESTFRQ;
                              static PyObject *__pyx_n_s__RESTWAV;
                              static PyObject *__pyx_n_s__Read;
                              static PyObject *__pyx_n_s__SIGNAL;
                              static PyObject *__pyx_n_s__SLOT;
                              static PyObject *__pyx_n_s__SPECSYS;
                              static PyObject *__pyx_n_s__SSYSOBS;
                              static PyObject *__pyx_n_s__SSYSSRC;
                              static PyObject *__pyx_n_s__Set;
                              static PyObject *__pyx_n_s__SetHeader;
                              static PyObject *__pyx_n_s__Shell;
                              static PyObject *__pyx_n_s__StringType;
                              static PyObject *__pyx_n_s__TextField;
                              static PyObject *__pyx_n_s__TextMenu;
                              static PyObject *__pyx_n_s__TimeCallback;
                              static PyObject *__pyx_n_s__TimeCallback_GTK;
                              static PyObject *__pyx_n_s__TimeCallback_QT4;
                              static PyObject *__pyx_n_s__Tkinter;
                              static PyObject *__pyx_n_s__TypeError;
                              static PyObject *__pyx_n_s__VELANGL;
                              static PyObject *__pyx_n_s__VELOSYS;
                              static PyObject *__pyx_n_s__ValueError;
                              static PyObject *__pyx_n_s__Viewport;
                              static PyObject *__pyx_n_s__VtkField;
                              static PyObject *__pyx_n_s__WCSAXES;
                              static PyObject *__pyx_n_s__XTENSION;
                              static PyObject *__pyx_n_s__XeqError;
                              static PyObject *__pyx_n_s__Y;
                              static PyObject *__pyx_n_s__ZSOURCE;
                              static PyObject *__pyx_n_s___Analog;
                              static PyObject *__pyx_n_s___ColorEditor;
                              static PyObject *__pyx_n_s___Container;
                              static PyObject *__pyx_n_s___CursorCallback;
                              static PyObject *__pyx_n_s___Editor;
                              static PyObject *__pyx_n_s___Element;
                              static PyObject *__pyx_n_s___FileBrowser;
                              static PyObject *__pyx_n_s___Inset;
                              static PyObject *__pyx_n_s___List;
                              static PyObject *__pyx_n_s___Menu;
                              static PyObject *__pyx_n_s___PlotField;
                              static PyObject *__pyx_n_s___PopUp;
                              static PyObject *__pyx_n_s___Prompter;
                              static PyObject *__pyx_n_s___Shell;
                              static PyObject *__pyx_n_s___VtkField;
                              static PyObject *__pyx_n_s____alter_wcs;
                              static PyObject *__pyx_n_s____arg;
                              static PyObject *__pyx_n_s____axtype;
                              static PyObject *__pyx_n_s____axtypes;
                              static PyObject *__pyx_n_s____contains__;
                              static PyObject *__pyx_n_s____del__;
                              static PyObject *__pyx_n_s____delhead;
                              static PyObject *__pyx_n_s____delitem__;
                              static PyObject *__pyx_n_s____dict__;
                              static PyObject *__pyx_n_s____getattr__;
                              static PyObject *__pyx_n_s____getitem__;
                              static PyObject *__pyx_n_s____id;
                              static PyObject *__pyx_n_s____init__;
                              static PyObject *__pyx_n_s____len__;
                              static PyObject *__pyx_n_s____main__;
                              static PyObject *__pyx_n_s____new__;
                              static PyObject *__pyx_n_s____prosystems;
                              static PyObject *__pyx_n_s____rcol;
                              static PyObject *__pyx_n_s____repr__;
                              static PyObject *__pyx_n_s____rhead;
                              static PyObject *__pyx_n_s____setitem__;
                              static PyObject *__pyx_n_s____skysystems;
                              static PyObject *__pyx_n_s____str__;
                              static PyObject *__pyx_n_s____subst_key_wcs;
                              static PyObject *__pyx_n_s____substitute_wcs;
                              static PyObject *__pyx_n_s____test__;
                              static PyObject *__pyx_n_s____velsystems;
                              static PyObject *__pyx_n_s____wcheck;
                              static PyObject *__pyx_n_s____wcol;
                              static PyObject *__pyx_n_s____whead;
                              static PyObject *__pyx_n_s___gtkio;
                              static PyObject *__pyx_n_s___receive;
                              static PyObject *__pyx_n_s___reject;
                              static PyObject *__pyx_n_s___send;
                              static PyObject *__pyx_n_s___tkio;
                              static PyObject *__pyx_n_s__a;
                              static PyObject *__pyx_n_s__a1_c;
                              static PyObject *__pyx_n_s__a2_c;
                              static PyObject *__pyx_n_s__aborttask;
                              static PyObject *__pyx_n_s__accept;
                              static PyObject *__pyx_n_s__active;
                              static PyObject *__pyx_n_s__addWidget;
                              static PyObject *__pyx_n_s__adjustSize;
                              static PyObject *__pyx_n_s__alignLabel;
                              static PyObject *__pyx_n_s__aligned;
                              static PyObject *__pyx_n_s__alignment;
                              static PyObject *__pyx_n_s__alters;
                              static PyObject *__pyx_n_s__altwcs;
                              static PyObject *__pyx_n_s__angle_c;
                              static PyObject *__pyx_n_s__any;
                              static PyObject *__pyx_n_s__anyout;
                              static PyObject *__pyx_n_s__apply;
                              static PyObject *__pyx_n_s__args;
                              static PyObject *__pyx_n_s__array;
                              static PyObject *__pyx_n_s__arrow_width;
                              static PyObject *__pyx_n_s__ascard;
                              static PyObject *__pyx_n_s__aspect_c;
                              static PyObject *__pyx_n_s__astype;
                              static PyObject *__pyx_n_s__attr;
                              static PyObject *__pyx_n_s__axes;
                              static PyObject *__pyx_n_s__axis_c;
                              static PyObject *__pyx_n_s__axname;
                              static PyObject *__pyx_n_s__axnames;
                              static PyObject *__pyx_n_s__axnum;
                              static PyObject *__pyx_n_s__axorigin;
                              static PyObject *__pyx_n_s__axperm;
                              static PyObject *__pyx_n_s__axsize;
                              static PyObject *__pyx_n_s__axtype;
                              static PyObject *__pyx_n_s__b;
                              static PyObject *__pyx_n_s__b_c;
                              static PyObject *__pyx_n_s__barb_c;
                              static PyObject *__pyx_n_s__base;
                              static PyObject *__pyx_n_s__bg_c;
                              static PyObject *__pyx_n_s__bgcolor;
                              static PyObject *__pyx_n_s__bhi;
                              static PyObject *__pyx_n_s__bias_c;
                              static PyObject *__pyx_n_s__bl;
                              static PyObject *__pyx_n_s__blank;
                              static PyObject *__pyx_n_s__blank_c;
                              static PyObject *__pyx_n_s__blankpixel;
                              static PyObject *__pyx_n_s__blo;
                              static PyObject *__pyx_n_s__block;
                              static PyObject *__pyx_n_s__boolptr;
                              static PyObject *__pyx_n_s__border;
                              static PyObject *__pyx_n_s__bottomLeft;
                              static PyObject *__pyx_n_s__box;
                              static PyObject *__pyx_n_s__boxkey;
                              static PyObject *__pyx_n_s__boxspec;
                              static PyObject *__pyx_n_s__bright_c;
                              static PyObject *__pyx_n_s__buffer;
                              static PyObject *__pyx_n_s__button;
                              static PyObject *__pyx_n_s__byteorder;
                              static PyObject *__pyx_n_s__c;
                              static PyObject *__pyx_n_s__c1_c;
                              static PyObject *__pyx_n_s__c2_c;
                              static PyObject *__pyx_n_s__callback;
                              static PyObject *__pyx_n_s__cancel;
                              static PyObject *__pyx_n_s__cb;
                              static PyObject *__pyx_n_s__cb_condition;
                              static PyObject *__pyx_n_s__cbobj;
                              static PyObject *__pyx_n_s__cdelt;
                              static PyObject *__pyx_n_s__center_c;
                              static PyObject *__pyx_n_s__cf_c;
                              static PyObject *__pyx_n_s__ch_c;
                              static PyObject *__pyx_n_s__chr;
                              static PyObject *__pyx_n_s__ci;
                              static PyObject *__pyx_n_s__ci_c;
                              static PyObject *__pyx_n_s__close;
                              static PyObject *__pyx_n_s__closeMpeg;
                              static PyObject *__pyx_n_s__closeOnOK;
                              static PyObject *__pyx_n_s__cls;
                              static PyObject *__pyx_n_s__cmd;
                              static PyObject *__pyx_n_s__cname;
                              static PyObject *__pyx_n_s__colcomm;
                              static PyObject *__pyx_n_s__colinq;
                              static PyObject *__pyx_n_s__colors;
                              static PyObject *__pyx_n_s__comment;
                              static PyObject *__pyx_n_s__commit;
                              static PyObject *__pyx_n_s__compare;
                              static PyObject *__pyx_n_s__connect;
                              static PyObject *__pyx_n_s__container;
                              static PyObject *__pyx_n_s__content;
                              static PyObject *__pyx_n_s__contents;
                              static PyObject *__pyx_n_s__contiguous;
                              static PyObject *__pyx_n_s__contra_c;
                              static PyObject *__pyx_n_s__converter;
                              static PyObject *__pyx_n_s__coord_c;
                              static PyObject *__pyx_n_s__coords;
                              static PyObject *__pyx_n_s__copy;
                              static PyObject *__pyx_n_s__cotrans;
                              static PyObject *__pyx_n_s__create;
                              static PyObject *__pyx_n_s__createfilehandler;
                              static PyObject *__pyx_n_s__crecol;
                              static PyObject *__pyx_n_s__crpix;
                              static PyObject *__pyx_n_s__crval;
                              static PyObject *__pyx_n_s__ctype;
                              static PyObject *__pyx_n_s__cubicspline;
                              static PyObject *__pyx_n_s__cunit;
                              static PyObject *__pyx_n_s__cunits;
                              static PyObject *__pyx_n_s__currentText;
                              static PyObject *__pyx_n_s__curval;
                              static PyObject *__pyx_n_s__cvt_detail;
                              static PyObject *__pyx_n_s__cvt_name;
                              static PyObject *__pyx_n_s__cword;
                              static PyObject *__pyx_n_s__data;
                              static PyObject *__pyx_n_s__datamax_c;
                              static PyObject *__pyx_n_s__datamin_c;
                              static PyObject *__pyx_n_s__dbleptr;
                              static PyObject *__pyx_n_s__decodefloat;
                              static PyObject *__pyx_n_s__decodeint;
                              static PyObject *__pyx_n_s__default;
                              static PyObject *__pyx_n_s__defcol;
                              static PyObject *__pyx_n_s__defval;
                              static PyObject *__pyx_n_s__delay;
                              static PyObject *__pyx_n_s__delcol;
                              static PyObject *__pyx_n_s__delete;
                              static PyObject *__pyx_n_s__delta_c;
                              static PyObject *__pyx_n_s__deltab;
                              static PyObject *__pyx_n_s__deputy;
                              static PyObject *__pyx_n_s__deschedule;
                              static PyObject *__pyx_n_s__detail;
                              static PyObject *__pyx_n_s__dev;
                              static PyObject *__pyx_n_s__device;
                              static PyObject *__pyx_n_s__devid_c;
                              static PyObject *__pyx_n_s__devkey;
                              static PyObject *__pyx_n_s__direction;
                              static PyObject *__pyx_n_s__disconnect;
                              static PyObject *__pyx_n_s__disp_c;
                              static PyObject *__pyx_n_s__display;
                              static PyObject *__pyx_n_s__documents;
                              static PyObject *__pyx_n_s__dorealize;
                              static PyObject *__pyx_n_s__dtype;
                              static PyObject *__pyx_n_s__dunit;
                              static PyObject *__pyx_n_s__dyn;
                              static PyObject *__pyx_n_s__ecliptic;
                              static PyObject *__pyx_n_s__ellipsemask;
                              static PyObject *__pyx_n_s__ellpar;
                              static PyObject *__pyx_n_s__endang_c;
                              static PyObject *__pyx_n_s__enumerate;
                              static PyObject *__pyx_n_s__equatorial;
                              static PyObject *__pyx_n_s__errno;
                              static PyObject *__pyx_n_s__error;
                              static PyObject *__pyx_n_s__evalexpr;
                              static PyObject *__pyx_n_s__evalexpr_old;
                              static PyObject *__pyx_n_s__event;
                              static PyObject *__pyx_n_s__eventmonitor;
                              static PyObject *__pyx_n_s__excepthook;
                              static PyObject *__pyx_n_s__expandtabs;
                              static PyObject *__pyx_n_s__export;
                              static PyObject *__pyx_n_s__expr;
                              static PyObject *__pyx_n_s__extend;
                              static PyObject *__pyx_n_s__falselabel;
                              static PyObject *__pyx_n_s__fd;
                              static PyObject *__pyx_n_s__fg_c;
                              static PyObject *__pyx_n_s__fgcolor;
                              static PyObject *__pyx_n_s__fileInfo;
                              static PyObject *__pyx_n_s__filekeydir;
                              static PyObject *__pyx_n_s__filename;
                              static PyObject *__pyx_n_s__finis;
                              static PyObject *__pyx_n_s__fintptr;
                              static PyObject *__pyx_n_s__fits;
                              static PyObject *__pyx_n_s__fitsfiles;
                              static PyObject *__pyx_n_s__fitsname;
                              static PyObject *__pyx_n_s__fitsseqno;
                              static PyObject *__pyx_n_s__fjust_c;
                              static PyObject *__pyx_n_s__flags;
                              static PyObject *__pyx_n_s__flat;
                              static PyObject *__pyx_n_s__float32;
                              static PyObject *__pyx_n_s__float64;
                              static PyObject *__pyx_n_s__flush;
                              static PyObject *__pyx_n_s__forcecast;
                              static PyObject *__pyx_n_s__format_exception;
                              static PyObject *__pyx_n_s__frame;
                              static PyObject *__pyx_n_s__frames;
                              static PyObject *__pyx_n_s__fs_c;
                              static PyObject *__pyx_n_s__fstring;
                              static PyObject *__pyx_n_s__function;
                              static PyObject *__pyx_n_s__g;
                              static PyObject *__pyx_n_s__g_c;
                              static PyObject *__pyx_n_s__galactic;
                              static PyObject *__pyx_n_s__gdskey;
                              static PyObject *__pyx_n_s__getalt;
                              static PyObject *__pyx_n_s__gethdu;
                              static PyObject *__pyx_n_s__getmap;
                              static PyObject *__pyx_n_s__getpid;
                              static PyObject *__pyx_n_s__getsas;
                              static PyObject *__pyx_n_s__ggiAppend;
                              static PyObject *__pyx_n_s__ggiApply;
                              static PyObject *__pyx_n_s__ggiButn1;
                              static PyObject *__pyx_n_s__ggiButn2;
                              static PyObject *__pyx_n_s__ggiButn3;
                              static PyObject *__pyx_n_s__ggiCloseOnOK;
                              static PyObject *__pyx_n_s__ggiColind;
                              static PyObject *__pyx_n_s__ggiCreate;
                              static PyObject *__pyx_n_s__ggiCtrl;
                              static PyObject *__pyx_n_s__ggiDelete;
                              static PyObject *__pyx_n_s__ggiDownArrow;
                              static PyObject *__pyx_n_s__ggiEdit;
                              static PyObject *__pyx_n_s__ggiFileInfo;
                              static PyObject *__pyx_n_s__ggiGetMap;
                              static PyObject *__pyx_n_s__ggiIdent;
                              static PyObject *__pyx_n_s__ggiKeybd;
                              static PyObject *__pyx_n_s__ggiLeftArrow;
                              static PyObject *__pyx_n_s__ggiLimits;
                              static PyObject *__pyx_n_s__ggiNdims;
                              static PyObject *__pyx_n_s__ggiNext;
                              static PyObject *__pyx_n_s__ggiNowait;
                              static PyObject *__pyx_n_s__ggiReadOnly;
                              static PyObject *__pyx_n_s__ggiRightArrow;
                              static PyObject *__pyx_n_s__ggiShift;
                              static PyObject *__pyx_n_s__ggiStart;
                              static PyObject *__pyx_n_s__ggiStop;
                              static PyObject *__pyx_n_s__ggiUnits;
                              static PyObject *__pyx_n_s__ggiUpArrow;
                              static PyObject *__pyx_n_s__ggivtk;
                              static PyObject *__pyx_n_s__gip_nfy;
                              static PyObject *__pyx_n_s__gipsy;
                              static PyObject *__pyx_n_s__gipsy_logo;
                              static PyObject *__pyx_n_s__gnomonic;
                              static PyObject *__pyx_n_s__gobject;
                              static PyObject *__pyx_n_s__grid;
                              static PyObject *__pyx_n_s__grids;
                              static PyObject *__pyx_n_s__gtkconnect;
                              static PyObject *__pyx_n_s__handle;
                              static PyObject *__pyx_n_s__handleEvents;
                              static PyObject *__pyx_n_s__handles;
                              static PyObject *__pyx_n_s__has_gtk;
                              static PyObject *__pyx_n_s__has_key;
                              static PyObject *__pyx_n_s__has_pyfits;
                              static PyObject *__pyx_n_s__has_pyqt4;
                              static PyObject *__pyx_n_s__has_tk;
                              static PyObject *__pyx_n_s__hdulist;
                              static PyObject *__pyx_n_s__hdunum;
                              static PyObject *__pyx_n_s__header;
                              static PyObject *__pyx_n_s__height;
                              static PyObject *__pyx_n_s__helpText;
                              static PyObject *__pyx_n_s__herconnect;
                              static PyObject *__pyx_n_s__hersignal;
                              static PyObject *__pyx_n_s__highval;
                              static PyObject *__pyx_n_s__history;
                              static PyObject *__pyx_n_s__hook;
                              static PyObject *__pyx_n_s__hue_c;
                              static PyObject *__pyx_n_s__i1;
                              static PyObject *__pyx_n_s__i1_c;
                              static PyObject *__pyx_n_s__i2;
                              static PyObject *__pyx_n_s__i2_c;
                              static PyObject *__pyx_n_s__id;
                              static PyObject *__pyx_n_s__id_c;
                              static PyObject *__pyx_n_s__idim;
                              static PyObject *__pyx_n_s__idim_c;
                              static PyObject *__pyx_n_s__image;
                              static PyObject *__pyx_n_s__index;
                              static PyObject *__pyx_n_s__init;
                              static PyObject *__pyx_n_s__inner_length;
                              static PyObject *__pyx_n_s__insert;
                              static PyObject *__pyx_n_s__insetkey;
                              static PyObject *__pyx_n_s__inside;
                              static PyObject *__pyx_n_s__int32;
                              static PyObject *__pyx_n_s__int64;
                              static PyObject *__pyx_n_s__interval;
                              static PyObject *__pyx_n_s__intervals;
                              static PyObject *__pyx_n_s__intval_c;
                              static PyObject *__pyx_n_s__io_add_watch;
                              static PyObject *__pyx_n_s__ioff_c;
                              static PyObject *__pyx_n_s__isChecked;
                              static PyObject *__pyx_n_s__item;
                              static PyObject *__pyx_n_s__items;
                              static PyObject *__pyx_n_s__ix1_c;
                              static PyObject *__pyx_n_s__ix2_c;
                              static PyObject *__pyx_n_s__ix_c;
                              static PyObject *__pyx_n_s__iy1_c;
                              static PyObject *__pyx_n_s__iy2_c;
                              static PyObject *__pyx_n_s__iy_c;
                              static PyObject *__pyx_n_s__j1;
                              static PyObject *__pyx_n_s__j1_c;
                              static PyObject *__pyx_n_s__j2;
                              static PyObject *__pyx_n_s__j2_c;
                              static PyObject *__pyx_n_s__jd;
                              static PyObject *__pyx_n_s__jd_c;
                              static PyObject *__pyx_n_s__jdim;
                              static PyObject *__pyx_n_s__jdim_c;
                              static PyObject *__pyx_n_s__join;
                              static PyObject *__pyx_n_s__just_c;
                              static PyObject *__pyx_n_s__k_getval;
                              static PyObject *__pyx_n_s__kapteyn_logo;
                              static PyObject *__pyx_n_s__kapteyn_text;
                              static PyObject *__pyx_n_s__kcb;
                              static PyObject *__pyx_n_s__key;
                              static PyObject *__pyx_n_s__key_read;
                              static PyObject *__pyx_n_s__key_reject;
                              static PyObject *__pyx_n_s__keyproc;
                              static PyObject *__pyx_n_s__keys;
                              static PyObject *__pyx_n_s__keystring;
                              static PyObject *__pyx_n_s__keyval;
                              static PyObject *__pyx_n_s__keyword;
                              static PyObject *__pyx_n_s__kind;
                              static PyObject *__pyx_n_s__krj;
                              static PyObject *__pyx_n_s__l;
                              static PyObject *__pyx_n_s__label;
                              static PyObject *__pyx_n_s__labels;
                              static PyObject *__pyx_n_s__labs;
                              static PyObject *__pyx_n_s__left;
                              static PyObject *__pyx_n_s__length;
                              static PyObject *__pyx_n_s__level;
                              static PyObject *__pyx_n_s__level_c;
                              static PyObject *__pyx_n_s__limits;
                              static PyObject *__pyx_n_s__little;
                              static PyObject *__pyx_n_s__logo_text;
                              static PyObject *__pyx_n_s__lower;
                              static PyObject *__pyx_n_s__lowval;
                              static PyObject *__pyx_n_s__ls_c;
                              static PyObject *__pyx_n_s__lw_c;
                              static PyObject *__pyx_n_s__mainloop;
                              static PyObject *__pyx_n_s__major_c;
                              static PyObject *__pyx_n_s__mapColors;
                              static PyObject *__pyx_n_s__mapToGlobal;
                              static PyObject *__pyx_n_s__mask;
                              static PyObject *__pyx_n_s__master;
                              static PyObject *__pyx_n_s__max_angle;
                              static PyObject *__pyx_n_s__max_cword;
                              static PyObject *__pyx_n_s__max_val;
                              static PyObject *__pyx_n_s__memmap;
                              static PyObject *__pyx_n_s__message;
                              static PyObject *__pyx_n_s__min_angle;
                              static PyObject *__pyx_n_s__min_val;
                              static PyObject *__pyx_n_s__minint_c;
                              static PyObject *__pyx_n_s__minmax3;
                              static PyObject *__pyx_n_s__minor_c;
                              static PyObject *__pyx_n_s__mode;
                              static PyObject *__pyx_n_s__mode_c;
                              static PyObject *__pyx_n_s__move;
                              static PyObject *__pyx_n_s__msg;
                              static PyObject *__pyx_n_s__myname;
                              static PyObject *__pyx_n_s__n;
                              static PyObject *__pyx_n_s__n_c;
                              static PyObject *__pyx_n_s__name;
                              static PyObject *__pyx_n_s__namekey;
                              static PyObject *__pyx_n_s__native_f4;
                              static PyObject *__pyx_n_s__native_f8;
                              static PyObject *__pyx_n_s__native_i4;
                              static PyObject *__pyx_n_s__native_i8;
                              static PyObject *__pyx_n_s__naxis;
                              static PyObject *__pyx_n_s__nbin_c;
                              static PyObject *__pyx_n_s__nc;
                              static PyObject *__pyx_n_s__nc_c;
                              static PyObject *__pyx_n_s__ncolors;
                              static PyObject *__pyx_n_s__ncoords;
                              static PyObject *__pyx_n_s__ndarray;
                              static PyObject *__pyx_n_s__ndims;
                              static PyObject *__pyx_n_s__nframes;
                              static PyObject *__pyx_n_s__nitems;
                              static PyObject *__pyx_n_s__nmax;
                              static PyObject *__pyx_n_s__nowait;
                              static PyObject *__pyx_n_s__numbertypes;
                              static PyObject *__pyx_n_s__numpy;
                              static PyObject *__pyx_n_s__nxsub_c;
                              static PyObject *__pyx_n_s__nxv_c;
                              static PyObject *__pyx_n_s__nysub_c;
                              static PyObject *__pyx_n_s__nyv_c;
                              static PyObject *__pyx_n_s__object;
                              static PyObject *__pyx_n_s__open;
                              static PyObject *__pyx_n_s__openMpeg;
                              static PyObject *__pyx_n_s__optical;
                              static PyObject *__pyx_n_s__origin;
                              static PyObject *__pyx_n_s__orthographic;
                              static PyObject *__pyx_n_s__os;
                              static PyObject *__pyx_n_s__outer_length;
                              static PyObject *__pyx_n_s__outset;
                              static PyObject *__pyx_n_s__outside;
                              static PyObject *__pyx_n_s__pa_c;
                              static PyObject *__pyx_n_s__parent;
                              static PyObject *__pyx_n_s__pause;
                              static PyObject *__pyx_n_s__pgarro;
                              static PyObject *__pyx_n_s__pgask;
                              static PyObject *__pyx_n_s__pgband;
                              static PyObject *__pyx_n_s__pgbbuf;
                              static PyObject *__pyx_n_s__pgbeam;
                              static PyObject *__pyx_n_s__pgbeg;
                              static PyObject *__pyx_n_s__pgbin;
                              static PyObject *__pyx_n_s__pgbin_s;
                              static PyObject *__pyx_n_s__pgbox;
                              static PyObject *__pyx_n_s__pgcirc;
                              static PyObject *__pyx_n_s__pgclos;
                              static PyObject *__pyx_n_s__pgconb;
                              static PyObject *__pyx_n_s__pgconf;
                              static PyObject *__pyx_n_s__pgconl;
                              static PyObject *__pyx_n_s__pgcons;
                              static PyObject *__pyx_n_s__pgcont;
                              static PyObject *__pyx_n_s__pgcotic;
                              static PyObject *__pyx_n_s__pgctab;
                              static PyObject *__pyx_n_s__pgdraw;
                              static PyObject *__pyx_n_s__pgebuf;
                              static PyObject *__pyx_n_s__pgellipse;
                              static PyObject *__pyx_n_s__pgend;
                              static PyObject *__pyx_n_s__pgenv;
                              static PyObject *__pyx_n_s__pgeras;
                              static PyObject *__pyx_n_s__pgetxt;
                              static PyObject *__pyx_n_s__pgexist;
                              static PyObject *__pyx_n_s__pgflag_c;
                              static PyObject *__pyx_n_s__pggray;
                              static PyObject *__pyx_n_s__pghi2d;
                              static PyObject *__pyx_n_s__pghist;
                              static PyObject *__pyx_n_s__pgid;
                              static PyObject *__pyx_n_s__pgiden;
                              static PyObject *__pyx_n_s__pgimag;
                              static PyObject *__pyx_n_s__pglab;
                              static PyObject *__pyx_n_s__pgldev;
                              static PyObject *__pyx_n_s__pglen;
                              static PyObject *__pyx_n_s__pgline;
                              static PyObject *__pyx_n_s__pgmove;
                              static PyObject *__pyx_n_s__pgmtxt;
                              static PyObject *__pyx_n_s__pgopen;
                              static PyObject *__pyx_n_s__pgpage;
                              static PyObject *__pyx_n_s__pgpanl;
                              static PyObject *__pyx_n_s__pgpap;
                              static PyObject *__pyx_n_s__pgpat;
                              static PyObject *__pyx_n_s__pgpoly;
                              static PyObject *__pyx_n_s__pgpt;
                              static PyObject *__pyx_n_s__pgptxt;
                              static PyObject *__pyx_n_s__pgqah;
                              static PyObject *__pyx_n_s__pgqbci;
                              static PyObject *__pyx_n_s__pgqcf;
                              static PyObject *__pyx_n_s__pgqch;
                              static PyObject *__pyx_n_s__pgqci;
                              static PyObject *__pyx_n_s__pgqcir;
                              static PyObject *__pyx_n_s__pgqclp;
                              static PyObject *__pyx_n_s__pgqcol;
                              static PyObject *__pyx_n_s__pgqcr;
                              static PyObject *__pyx_n_s__pgqcs;
                              static PyObject *__pyx_n_s__pgqfs;
                              static PyObject *__pyx_n_s__pgqhs;
                              static PyObject *__pyx_n_s__pgqid;
                              static PyObject *__pyx_n_s__pgqimi;
                              static PyObject *__pyx_n_s__pgqinf;
                              static PyObject *__pyx_n_s__pgqitf;
                              static PyObject *__pyx_n_s__pgqls;
                              static PyObject *__pyx_n_s__pgqlw;
                              static PyObject *__pyx_n_s__pgqpos;
                              static PyObject *__pyx_n_s__pgqtxt;
                              static PyObject *__pyx_n_s__pgqvp;
                              static PyObject *__pyx_n_s__pgqvsz;
                              static PyObject *__pyx_n_s__pgrect;
                              static PyObject *__pyx_n_s__pgsah;
                              static PyObject *__pyx_n_s__pgsave;
                              static PyObject *__pyx_n_s__pgsbci;
                              static PyObject *__pyx_n_s__pgscf;
                              static PyObject *__pyx_n_s__pgsch;
                              static PyObject *__pyx_n_s__pgsci;
                              static PyObject *__pyx_n_s__pgscir;
                              static PyObject *__pyx_n_s__pgsclp;
                              static PyObject *__pyx_n_s__pgscr;
                              static PyObject *__pyx_n_s__pgsfs;
                              static PyObject *__pyx_n_s__pgshls;
                              static PyObject *__pyx_n_s__pgshs;
                              static PyObject *__pyx_n_s__pgsimi;
                              static PyObject *__pyx_n_s__pgsitf;
                              static PyObject *__pyx_n_s__pgslct;
                              static PyObject *__pyx_n_s__pgsls;
                              static PyObject *__pyx_n_s__pgslw;
                              static PyObject *__pyx_n_s__pgstbg;
                              static PyObject *__pyx_n_s__pgsubp;
                              static PyObject *__pyx_n_s__pgsvp;
                              static PyObject *__pyx_n_s__pgswin;
                              static PyObject *__pyx_n_s__pgtext;
                              static PyObject *__pyx_n_s__pgunsa;
                              static PyObject *__pyx_n_s__pgupdt;
                              static PyObject *__pyx_n_s__pgvsiz;
                              static PyObject *__pyx_n_s__pgvstd;
                              static PyObject *__pyx_n_s__pgwedg;
                              static PyObject *__pyx_n_s__pgwnad;
                              static PyObject *__pyx_n_s__phase_c;
                              static PyObject *__pyx_n_s__phys;
                              static PyObject *__pyx_n_s__plotfield;
                              static PyObject *__pyx_n_s__polyX;
                              static PyObject *__pyx_n_s__polyY;
                              static PyObject *__pyx_n_s__polymask;
                              static PyObject *__pyx_n_s__pop;
                              static PyObject *__pyx_n_s__posn_c;
                              static PyObject *__pyx_n_s__proc;
                              static PyObject *__pyx_n_s__prosys;
                              static PyObject *__pyx_n_s__protocols;
                              static PyObject *__pyx_n_s__proxy;
                              static PyObject *__pyx_n_s__ptr;
                              static PyObject *__pyx_n_s__pyfits;
                              static PyObject *__pyx_n_s__qCleanupResources;
                              static PyObject *__pyx_n_s__qInitResources;
                              static PyObject *__pyx_n_s__qlink_buttontext;
                              static PyObject *__pyx_n_s__qt_resource_data;
                              static PyObject *__pyx_n_s__qt_resource_name;
                              static PyObject *__pyx_n_s__qt_resource_struct;
                              static PyObject *__pyx_n_s__qtconnect;
                              static PyObject *__pyx_n_s__qtlink_dspinboxtext;
                              static PyObject *__pyx_n_s__qtlink_getlog;
                              static PyObject *__pyx_n_s__qtlink_gettext;
                              static PyObject *__pyx_n_s__qtlink_slidertext;
                              static PyObject *__pyx_n_s__qtlink_spinboxtext;
                              static PyObject *__pyx_n_s__queue;
                              static PyObject *__pyx_n_s__r;
                              static PyObject *__pyx_n_s__r_c;
                              static PyObject *__pyx_n_s__radio;
                              static PyObject *__pyx_n_s__radius;
                              static PyObject *__pyx_n_s__radius_c;
                              static PyObject *__pyx_n_s__raiseGds;
                              static PyObject *__pyx_n_s__random;
                              static PyObject *__pyx_n_s__range;
                              static PyObject *__pyx_n_s__reached;
                              static PyObject *__pyx_n_s__read;
                              static PyObject *__pyx_n_s__realize;
                              static PyObject *__pyx_n_s__realized;
                              static PyObject *__pyx_n_s__realptr;
                              static PyObject *__pyx_n_s__record;
                              static PyObject *__pyx_n_s__recordMpeg;
                              static PyObject *__pyx_n_s__rect;
                              static PyObject *__pyx_n_s__rectangular;
                              static PyObject *__pyx_n_s__red;
                              static PyObject *__pyx_n_s__reject;
                              static PyObject *__pyx_n_s__rejproc;
                              static PyObject *__pyx_n_s__remove;
                              static PyObject *__pyx_n_s__requested;
                              static PyObject *__pyx_n_s__resources;
                              static PyObject *__pyx_n_s__resume;
                              static PyObject *__pyx_n_s__right;
                              static PyObject *__pyx_n_s__round;
                              static PyObject *__pyx_n_s__rstrip;
                              static PyObject *__pyx_n_s__sampdist;
                              static PyObject *__pyx_n_s__saturation_c;
                              static PyObject *__pyx_n_s__save;
                              static PyObject *__pyx_n_s__schedule;
                              static PyObject *__pyx_n_s__scheduled;
                              static PyObject *__pyx_n_s__search;
                              static PyObject *__pyx_n_s__self;
                              static PyObject *__pyx_n_s__sepn_c;
                              static PyObject *__pyx_n_s__set;
                              static PyObject *__pyx_n_s__setChecked;
                              static PyObject *__pyx_n_s__setCircular;
                              static PyObject *__pyx_n_s__setContentsMargins;
                              static PyObject *__pyx_n_s__setEditText;
                              static PyObject *__pyx_n_s__setFixedSize;
                              static PyObject *__pyx_n_s__setFormat;
                              static PyObject *__pyx_n_s__setFrameShape;
                              static PyObject *__pyx_n_s__setInterval;
                              static PyObject *__pyx_n_s__setKeyword;
                              static PyObject *__pyx_n_s__setLabel;
                              static PyObject *__pyx_n_s__setLabels;
                              static PyObject *__pyx_n_s__setLayout;
                              static PyObject *__pyx_n_s__setPixmap;
                              static PyObject *__pyx_n_s__setPosition;
                              static PyObject *__pyx_n_s__setRange;
                              static PyObject *__pyx_n_s__setScaledContents;
                              static PyObject *__pyx_n_s__setStyleSheet;
                              static PyObject *__pyx_n_s__setText;
                              static PyObject *__pyx_n_s__setToolTip;
                              static PyObject *__pyx_n_s__setValue;
                              static PyObject *__pyx_n_s__setWindowFlags;
                              static PyObject *__pyx_n_s__set_interval;
                              static PyObject *__pyx_n_s__setbox;
                              static PyObject *__pyx_n_s__setspec;
                              static PyObject *__pyx_n_s__setval;
                              static PyObject *__pyx_n_s__shape;
                              static PyObject *__pyx_n_s__shape_c;
                              static PyObject *__pyx_n_s__shi;
                              static PyObject *__pyx_n_s__show;
                              static PyObject *__pyx_n_s__side;
                              static PyObject *__pyx_n_s__sig_handler;
                              static PyObject *__pyx_n_s__signal;
                              static PyObject *__pyx_n_s__singleShot;
                              static PyObject *__pyx_n_s__size;
                              static PyObject *__pyx_n_s__skysys;
                              static PyObject *__pyx_n_s__slo;
                              static PyObject *__pyx_n_s__slope_c;
                              static PyObject *__pyx_n_s__source;
                              static PyObject *__pyx_n_s__source_remove;
                              static PyObject *__pyx_n_s__spec;
                              static PyObject *__pyx_n_s__split;
                              static PyObject *__pyx_n_s__splitlines;
                              static PyObject *__pyx_n_s__squeeze;
                              static PyObject *__pyx_n_s__start;
                              static PyObject *__pyx_n_s__startang_c;
                              static PyObject *__pyx_n_s__startswith;
                              static PyObject *__pyx_n_s__state;
                              static PyObject *__pyx_n_s__status;
                              static PyObject *__pyx_n_s__stdkey;
                              static PyObject *__pyx_n_s__step;
                              static PyObject *__pyx_n_s__stereographic;
                              static PyObject *__pyx_n_s__stop;
                              static PyObject *__pyx_n_s__str;
                              static PyObject *__pyx_n_s__string;
                              static PyObject *__pyx_n_s__subimage;
                              static PyObject *__pyx_n_s__subset;
                              static PyObject *__pyx_n_s__subset_c;
                              static PyObject *__pyx_n_s__subsets;
                              static PyObject *__pyx_n_s__subst;
                              static PyObject *__pyx_n_s__super;
                              static PyObject *__pyx_n_s__supergalactic;
                              static PyObject *__pyx_n_s__suspend;
                              static PyObject *__pyx_n_s__symbol_c;
                              static PyObject *__pyx_n_s__sys;
                              static PyObject *__pyx_n_s__tabinq;
                              static PyObject *__pyx_n_s__tablis;
                              static PyObject *__pyx_n_s__task;
                              static PyObject *__pyx_n_s__tbg_c;
                              static PyObject *__pyx_n_s__tcb;
                              static PyObject *__pyx_n_s__text;
                              static PyObject *__pyx_n_s__timeout_add;
                              static PyObject *__pyx_n_s__timer;
                              static PyObject *__pyx_n_s__tkconnect;
                              static PyObject *__pyx_n_s__tkinter;
                              static PyObject *__pyx_n_s__tlen_c;
                              static PyObject *__pyx_n_s__tname;
                              static PyObject *__pyx_n_s__togrid;
                              static PyObject *__pyx_n_s__tokey;
                              static PyObject *__pyx_n_s__tophys;
                              static PyObject *__pyx_n_s__toplabel;
                              static PyObject *__pyx_n_s__tr;
                              static PyObject *__pyx_n_s__trace;
                              static PyObject *__pyx_n_s__traceback;
                              static PyObject *__pyx_n_s__truelabel;
                              static PyObject *__pyx_n_s__tstep_c;
                              static PyObject *__pyx_n_s__type;
                              static PyObject *__pyx_n_s__typecli;
                              static PyObject *__pyx_n_s__types;
                              static PyObject *__pyx_n_s__uncaught;
                              static PyObject *__pyx_n_s__unit1;
                              static PyObject *__pyx_n_s__unit2;
                              static PyObject *__pyx_n_s__unitfactor;
                              static PyObject *__pyx_n_s__units;
                              static PyObject *__pyx_n_s__units_c;
                              static PyObject *__pyx_n_s__unts;
                              static PyObject *__pyx_n_s__update;
                              static PyObject *__pyx_n_s__upper;
                              static PyObject *__pyx_n_s__userangle;
                              static PyObject *__pyx_n_s__userchar;
                              static PyObject *__pyx_n_s__usercharl;
                              static PyObject *__pyx_n_s__usercharu;
                              static PyObject *__pyx_n_s__userdble;
                              static PyObject *__pyx_n_s__userint;
                              static PyObject *__pyx_n_s__userlog;
                              static PyObject *__pyx_n_s__userreal;
                              static PyObject *__pyx_n_s__usertext;
                              static PyObject *__pyx_n_s__v1_c;
                              static PyObject *__pyx_n_s__v2_c;
                              static PyObject *__pyx_n_s__value;
                              static PyObject *__pyx_n_s__velsys;
                              static PyObject *__pyx_n_s__verify;
                              static PyObject *__pyx_n_s__visible;
                              static PyObject *__pyx_n_s__w_getval;
                              static PyObject *__pyx_n_s__w_setval;
                              static PyObject *__pyx_n_s__w_signal;
                              static PyObject *__pyx_n_s__wcomment;
                              static PyObject *__pyx_n_s__weakref;
                              static PyObject *__pyx_n_s__whistory;
                              static PyObject *__pyx_n_s__white;
                              static PyObject *__pyx_n_s__widget;
                              static PyObject *__pyx_n_s__widgetval;
                              static PyObject *__pyx_n_s__width;
                              static PyObject *__pyx_n_s__width_c;
                              static PyObject *__pyx_n_s__wkey;
                              static PyObject *__pyx_n_s__wminmax;
                              static PyObject *__pyx_n_s__wmode;
                              static PyObject *__pyx_n_s__word;
                              static PyObject *__pyx_n_s__write;
                              static PyObject *__pyx_n_s__x;
                              static PyObject *__pyx_n_s__x1_c;
                              static PyObject *__pyx_n_s__x2_c;
                              static PyObject *__pyx_n_s__x_c;
                              static PyObject *__pyx_n_s__xcentre_c;
                              static PyObject *__pyx_n_s__xeq;
                              static PyObject *__pyx_n_s__xfrom;
                              static PyObject *__pyx_n_s__xhi_c;
                              static PyObject *__pyx_n_s__xid;
                              static PyObject *__pyx_n_s__xlabel;
                              static PyObject *__pyx_n_s__xleft_c;
                              static PyObject *__pyx_n_s__xlo_c;
                              static PyObject *__pyx_n_s__xmax_c;
                              static PyObject *__pyx_n_s__xmin_c;
                              static PyObject *__pyx_n_s__xnsub_c;
                              static PyObject *__pyx_n_s__xopt;
                              static PyObject *__pyx_n_s__xor;
                              static PyObject *__pyx_n_s__xormode;
                              static PyObject *__pyx_n_s__xpts;
                              static PyObject *__pyx_n_s__xrange;
                              static PyObject *__pyx_n_s__xref_c;
                              static PyObject *__pyx_n_s__xright_c;
                              static PyObject *__pyx_n_s__xtick_c;
                              static PyObject *__pyx_n_s__xus;
                              static PyObject *__pyx_n_s__y;
                              static PyObject *__pyx_n_s__y1_c;
                              static PyObject *__pyx_n_s__y2_c;
                              static PyObject *__pyx_n_s__y_c;
                              static PyObject *__pyx_n_s__ybot_c;
                              static PyObject *__pyx_n_s__ycentre_c;
                              static PyObject *__pyx_n_s__yfrom;
                              static PyObject *__pyx_n_s__yhi_c;
                              static PyObject *__pyx_n_s__yid;
                              static PyObject *__pyx_n_s__ylabel;
                              static PyObject *__pyx_n_s__ylims;
                              static PyObject *__pyx_n_s__ylo_c;
                              static PyObject *__pyx_n_s__ymax_c;
                              static PyObject *__pyx_n_s__ymin_c;
                              static PyObject *__pyx_n_s__ynsub_c;
                              static PyObject *__pyx_n_s__yopt;
                              static PyObject *__pyx_n_s__ypts;
                              static PyObject *__pyx_n_s__yref_c;
                              static PyObject *__pyx_n_s__ytick_c;
                              static PyObject *__pyx_n_s__ytop_c;
                              static PyObject *__pyx_n_s__yus;
                              static PyObject *__pyx_n_s__zeros;
                              static PyObject *__pyx_int_0;
                              static PyObject *__pyx_int_1;
                              static PyObject *__pyx_int_2;
                              static PyObject *__pyx_int_3;
                              static PyObject *__pyx_int_4;
                              static PyObject *__pyx_int_5;
                              static PyObject *__pyx_int_6;
                              static PyObject *__pyx_int_7;
                              static PyObject *__pyx_int_8;
                              static PyObject *__pyx_int_9;
                              static PyObject *__pyx_int_neg_1;
                              static PyObject *__pyx_int_neg_2;
                              static PyObject *__pyx_int_neg_3;
                              static PyObject *__pyx_int_neg_4;
                              static PyObject *__pyx_int_neg_5;
                              static PyObject *__pyx_int_neg_6;
                              static PyObject *__pyx_int_neg_7;
                              static PyObject *__pyx_int_neg_8;
                              static PyObject *__pyx_int_neg_9;
                              static PyObject *__pyx_int_10;
                              static PyObject *__pyx_int_11;
                              static PyObject *__pyx_int_12;
                              static PyObject *__pyx_int_13;
                              static PyObject *__pyx_int_14;
                              static PyObject *__pyx_int_15;
                              static PyObject *__pyx_int_16;
                              static PyObject *__pyx_int_20;
                              static PyObject *__pyx_int_27;
                              static PyObject *__pyx_int_30;
                              static PyObject *__pyx_int_32;
                              static PyObject *__pyx_int_80;
                              static PyObject *__pyx_int_neg_10;
                              static PyObject *__pyx_int_neg_11;
                              static PyObject *__pyx_int_neg_12;
                              static PyObject *__pyx_int_neg_13;
                              static PyObject *__pyx_int_neg_14;
                              static PyObject *__pyx_int_neg_15;
                              static PyObject *__pyx_int_neg_16;
                              static PyObject *__pyx_int_100;
                              static PyObject *__pyx_int_209;
                              static PyObject *__pyx_int_210;
                              static PyObject *__pyx_int_211;
                              static PyObject *__pyx_int_212;
                              static PyObject *__pyx_int_256;
                              static PyObject *__pyx_int_1000;
                              static PyObject *__pyx_int_4096;
                              static PyObject *__pyx_int_2147483647;
                              static PyObject *__pyx_k_4;
                              static PyObject *__pyx_k_7;
                              static PyObject *__pyx_k_9;
                              static PyObject *__pyx_k_15;
                              static PyObject *__pyx_k_16;
                              static PyObject *__pyx_k_23;
                              static PyObject *__pyx_k_24;
                              static PyObject *__pyx_k_25;
                              static PyObject *__pyx_k_32;
                              static PyObject *__pyx_k_33;
                              static PyObject *__pyx_k_36;
                              static PyObject *__pyx_k_39;
                              static PyObject *__pyx_k_56;
                              static PyObject *__pyx_k_58;
                              static PyObject *__pyx_k_60;
                              static PyObject *__pyx_k_62;
                              static PyObject *__pyx_k_63;
                              static PyObject *__pyx_k_65;
                              static PyObject *__pyx_k_66;
                              static PyObject *__pyx_k_68;
                              static PyObject *__pyx_k_70;
                              static PyObject *__pyx_k_71;
                              static PyObject *__pyx_k_72;
                              static PyObject *__pyx_k_73;
                              static PyObject *__pyx_k_76;
                              static PyObject *__pyx_k_77;
                              static PyObject *__pyx_k_107;
                              static PyObject *__pyx_k_108;
                              static PyObject *__pyx_k_154;
                              static PyObject *__pyx_k_169;
                              static PyObject *__pyx_k_197;
                              static PyObject *__pyx_k_211;
                              static PyObject *__pyx_k_217;
                              static PyObject *__pyx_k_229;
                              static PyObject *__pyx_k_231;
                              static PyObject *__pyx_k_234;
                              static PyObject *__pyx_k_235;
                              static PyObject *__pyx_k_tuple_2;
                              static PyObject *__pyx_k_tuple_6;
                              static PyObject *__pyx_k_tuple_8;
                              static PyObject *__pyx_k_tuple_10;
                              static PyObject *__pyx_k_tuple_13;
                              static PyObject *__pyx_k_tuple_19;
                              static PyObject *__pyx_k_tuple_21;
                              static PyObject *__pyx_k_tuple_28;
                              static PyObject *__pyx_k_tuple_30;
                              static PyObject *__pyx_k_tuple_31;
                              static PyObject *__pyx_k_tuple_34;
                              static PyObject *__pyx_k_tuple_35;
                              static PyObject *__pyx_k_tuple_38;
                              static PyObject *__pyx_k_tuple_41;
                              static PyObject *__pyx_k_tuple_51;
                              static PyObject *__pyx_k_tuple_85;
                              static PyObject *__pyx_k_tuple_87;
                              static PyObject *__pyx_k_tuple_89;
                              static PyObject *__pyx_k_tuple_91;
                              static PyObject *__pyx_k_tuple_94;
                              static PyObject *__pyx_k_tuple_110;
                              static PyObject *__pyx_k_tuple_111;
                              static PyObject *__pyx_k_tuple_113;
                              static PyObject *__pyx_k_tuple_114;
                              static PyObject *__pyx_k_tuple_125;
                              static PyObject *__pyx_k_tuple_127;
                              static PyObject *__pyx_k_tuple_128;
                              static PyObject *__pyx_k_tuple_129;
                              static PyObject *__pyx_k_tuple_134;
                              static PyObject *__pyx_k_tuple_135;
                              static PyObject *__pyx_k_tuple_136;
                              static PyObject *__pyx_k_tuple_141;
                              static PyObject *__pyx_k_tuple_143;
                              static PyObject *__pyx_k_tuple_144;
                              static PyObject *__pyx_k_tuple_145;
                              static PyObject *__pyx_k_tuple_146;
                              static PyObject *__pyx_k_tuple_147;
                              static PyObject *__pyx_k_tuple_149;
                              static PyObject *__pyx_k_tuple_151;
                              static PyObject *__pyx_k_tuple_158;
                              static PyObject *__pyx_k_tuple_160;
                              static PyObject *__pyx_k_tuple_162;
                              static PyObject *__pyx_k_tuple_164;
                              static PyObject *__pyx_k_tuple_167;
                              static PyObject *__pyx_k_tuple_168;
                              static PyObject *__pyx_k_tuple_170;
                              static PyObject *__pyx_k_tuple_171;
                              static PyObject *__pyx_k_tuple_173;
                              static PyObject *__pyx_k_tuple_174;
                              static PyObject *__pyx_k_tuple_176;
                              static PyObject *__pyx_k_tuple_178;
                              static PyObject *__pyx_k_tuple_179;
                              static PyObject *__pyx_k_tuple_199;
                              static PyObject *__pyx_k_tuple_200;
                              static PyObject *__pyx_k_tuple_202;
                              static PyObject *__pyx_k_tuple_204;
                              static PyObject *__pyx_k_tuple_205;
                              static PyObject *__pyx_k_tuple_207;
                              static PyObject *__pyx_k_tuple_208;
                              static PyObject *__pyx_k_tuple_212;
                              static PyObject *__pyx_k_tuple_215;
                              static PyObject *__pyx_k_tuple_220;
                              static PyObject *__pyx_k_tuple_222;
                              static PyObject *__pyx_k_tuple_242;
                              static PyObject *__pyx_k_tuple_243;
                              static PyObject *__pyx_k_tuple_245;
                              static PyObject *__pyx_k_tuple_246;
                              static PyObject *__pyx_k_tuple_248;
                              static PyObject *__pyx_k_tuple_265;
                              static PyObject *__pyx_k_tuple_266;
                              static PyObject *__pyx_k_tuple_267;
                              static PyObject *__pyx_k_tuple_268;
                              static PyObject *__pyx_k_tuple_270;
                              static PyObject *__pyx_k_tuple_272;
                              static PyObject *__pyx_k_tuple_273;
                              static PyObject *__pyx_k_tuple_274;
                              static PyObject *__pyx_k_tuple_275;
                              static PyObject *__pyx_k_tuple_276;
                              static PyObject *__pyx_k_tuple_278;
                              static PyObject *__pyx_k_tuple_280;
                              static PyObject *__pyx_k_tuple_281;
                              static PyObject *__pyx_k_tuple_283;
                              static PyObject *__pyx_k_tuple_285;
                              static PyObject *__pyx_k_tuple_286;
                              static PyObject *__pyx_k_tuple_287;

/* "gipsy.pyx":325
 * #  uncaught: handle uncaught exception
 * #  --------------------------------------------------------------------------
 * def uncaught(type, value, trace):             # <<<<<<<<<<<<<<
 *    efmt = traceback.format_exception(type, value, trace)
 *    for line in efmt:
 */

static PyObject *__pyx_pf_5gipsy_uncaught(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_uncaught = {__Pyx_NAMESTR("uncaught"), (PyCFunction)__pyx_pf_5gipsy_uncaught, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_uncaught(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_type = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_trace = 0;
  PyObject *__pyx_v_efmt = NULL;
  PyObject *__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__type,&__pyx_n_s__value,&__pyx_n_s__trace,0};
  __Pyx_RefNannySetupContext("uncaught");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__type);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("uncaught", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__trace);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("uncaught", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "uncaught") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_type = values[0];
    __pyx_v_value = values[1];
    __pyx_v_trace = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("uncaught", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.uncaught", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":326
 * #  --------------------------------------------------------------------------
 * def uncaught(type, value, trace):
 *    efmt = traceback.format_exception(type, value, trace)             # <<<<<<<<<<<<<<
 *    for line in efmt:
 *       anyout(line)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__traceback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__format_exception); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_type);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_type);
  __Pyx_GIVEREF(__pyx_v_type);
  __Pyx_INCREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __Pyx_INCREF(__pyx_v_trace);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_trace);
  __Pyx_GIVEREF(__pyx_v_trace);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_efmt = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":327
 * def uncaught(type, value, trace):
 *    efmt = traceback.format_exception(type, value, trace)
 *    for line in efmt:             # <<<<<<<<<<<<<<
 *       anyout(line)
 *    error(4, 'Uncaught Python exception')
 */
  if (PyList_CheckExact(__pyx_v_efmt) || PyTuple_CheckExact(__pyx_v_efmt)) {
    __pyx_t_3 = __pyx_v_efmt; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_efmt); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
  }
  for (;;) {
    if (PyList_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_line);
    __pyx_v_line = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":328
 *    efmt = traceback.format_exception(type, value, trace)
 *    for line in efmt:
 *       anyout(line)             # <<<<<<<<<<<<<<
 *    error(4, 'Uncaught Python exception')
 * 
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__anyout); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_v_line);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_line);
    __Pyx_GIVEREF(__pyx_v_line);
    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":329
 *    for line in efmt:
 *       anyout(line)
 *    error(4, 'Uncaught Python exception')             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.uncaught", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_efmt);
  __Pyx_XDECREF(__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":334
 * #  tofchar: convert a character object to an fchar
 * #  --------------------------------------------------------------------------
 * cdef fchar tofchar(object c):             # <<<<<<<<<<<<<<
 *    cdef fchar result
 *    result.a = c
 */

static fchar __pyx_f_5gipsy_tofchar(PyObject *__pyx_v_c) {
  fchar __pyx_v_result;
  fchar __pyx_r;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tofchar");

  /* "gipsy.pyx":336
 * cdef fchar tofchar(object c):
 *    cdef fchar result
 *    result.a = c             # <<<<<<<<<<<<<<
 *    result.l = len(c)
 *    return result
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_c); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_result.a = __pyx_t_1;

  /* "gipsy.pyx":337
 *    cdef fchar result
 *    result.a = c
 *    result.l = len(c)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_2 = PyObject_Length(__pyx_v_c); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_result.l = __pyx_t_2;

  /* "gipsy.pyx":338
 *    result.a = c
 *    result.l = len(c)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("gipsy.tofchar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":343
 * #  newfchar: create a new fchar of the specified size
 * #  --------------------------------------------------------------------------
 * cdef fchar newfchar(size):             # <<<<<<<<<<<<<<
 *    cdef fchar result
 *    result.a = <char*>malloc(size+1)
 */

static fchar __pyx_f_5gipsy_newfchar(PyObject *__pyx_v_size) {
  fchar __pyx_v_result;
  fchar __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  fint __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("newfchar");

  /* "gipsy.pyx":345
 * cdef fchar newfchar(size):
 *    cdef fchar result
 *    result.a = <char*>malloc(size+1)             # <<<<<<<<<<<<<<
 *    result.l = size
 *    result.a[size] = 0
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_size, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result.a = ((char *)malloc(__pyx_t_2));

  /* "gipsy.pyx":346
 *    cdef fchar result
 *    result.a = <char*>malloc(size+1)
 *    result.l = size             # <<<<<<<<<<<<<<
 *    result.a[size] = 0
 *    return result
 */
  __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_v_size); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_result.l = __pyx_t_3;

  /* "gipsy.pyx":347
 *    result.a = <char*>malloc(size+1)
 *    result.l = size
 *    result.a[size] = 0             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_size); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  (__pyx_v_result.a[__pyx_t_4]) = 0;

  /* "gipsy.pyx":348
 *    result.l = size
 *    result.a[size] = 0
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("gipsy.newfchar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":353
 * #  delfchar: release the data part of an fchar
 * #  --------------------------------------------------------------------------
 * cdef delfchar(fchar f):             # <<<<<<<<<<<<<<
 *    free(f.a)
 * 
 */

static PyObject *__pyx_f_5gipsy_delfchar(fchar __pyx_v_f) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("delfchar");

  /* "gipsy.pyx":354
 * #  --------------------------------------------------------------------------
 * cdef delfchar(fchar f):
 *    free(f.a)             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  free(__pyx_v_f.a);

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":359
 * #  charlist: convert a list with strings to an array of pointers
 * #  --------------------------------------------------------------------------
 * cdef char **charlist(object cl):             # <<<<<<<<<<<<<<
 *    cdef char **result
 *    result = <char**>malloc((len(cl)+1)*sizeof(char*))
 */

static char **__pyx_f_5gipsy_charlist(PyObject *__pyx_v_cl) {
  char **__pyx_v_result;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_el = NULL;
  char **__pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  char *__pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("charlist");

  /* "gipsy.pyx":361
 * cdef char **charlist(object cl):
 *    cdef char **result
 *    result = <char**>malloc((len(cl)+1)*sizeof(char*))             # <<<<<<<<<<<<<<
 *    i = 0
 *    for el in cl:
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_cl); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_result = ((char **)malloc(((__pyx_t_1 + 1) * (sizeof(char *)))));

  /* "gipsy.pyx":362
 *    cdef char **result
 *    result = <char**>malloc((len(cl)+1)*sizeof(char*))
 *    i = 0             # <<<<<<<<<<<<<<
 *    for el in cl:
 *       result[i] = el
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_i = __pyx_int_0;

  /* "gipsy.pyx":363
 *    result = <char**>malloc((len(cl)+1)*sizeof(char*))
 *    i = 0
 *    for el in cl:             # <<<<<<<<<<<<<<
 *       result[i] = el
 *       i = i+1
 */
  if (PyList_CheckExact(__pyx_v_cl) || PyTuple_CheckExact(__pyx_v_cl)) {
    __pyx_t_2 = __pyx_v_cl; __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_cl); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++;
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_2);
      if (unlikely(!__pyx_t_4)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF(__pyx_v_el);
    __pyx_v_el = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":364
 *    i = 0
 *    for el in cl:
 *       result[i] = el             # <<<<<<<<<<<<<<
 *       i = i+1
 *    result[i] = NULL
 */
    __pyx_t_5 = PyBytes_AsString(__pyx_v_el); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_result[__pyx_t_6]) = __pyx_t_5;

    /* "gipsy.pyx":365
 *    for el in cl:
 *       result[i] = el
 *       i = i+1             # <<<<<<<<<<<<<<
 *    result[i] = NULL
 *    return result
 */
    __pyx_t_4 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":366
 *       result[i] = el
 *       i = i+1
 *    result[i] = NULL             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  (__pyx_v_result[__pyx_t_1]) = NULL;

  /* "gipsy.pyx":367
 *       i = i+1
 *    result[i] = NULL
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("gipsy.charlist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_el);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":372
 * #  toident: convert an ident stored in an integer object to an ident
 * #  --------------------------------------------------------------------------
 * cdef ident toident(object id):             # <<<<<<<<<<<<<<
 *    cdef long c_id
 *    c_id = id
 */

static ident __pyx_f_5gipsy_toident(PyObject *__pyx_v_id) {
  long __pyx_v_c_id;
  ident __pyx_r;
  __Pyx_RefNannyDeclarations
  long __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("toident");

  /* "gipsy.pyx":374
 * cdef ident toident(object id):
 *    cdef long c_id
 *    c_id = id             # <<<<<<<<<<<<<<
 *    return <ident>c_id
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_AsLong(__pyx_v_id); if (unlikely((__pyx_t_1 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_id = __pyx_t_1;

  /* "gipsy.pyx":375
 *    cdef long c_id
 *    c_id = id
 *    return <ident>c_id             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_r = ((ident)__pyx_v_c_id);
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("gipsy.toident", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":380
 * #  minmax3: return tuple minimum, maximum, number of blanks
 * #  --------------------------------------------------------------------------
 * def minmax3(a):             # <<<<<<<<<<<<<<
 *    cdef long a_l
 *    cdef fint ndat_c, nblank_c, count_c
 */

static PyObject *__pyx_pf_5gipsy_1minmax3(PyObject *__pyx_self, PyObject *__pyx_v_a); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_1minmax3 = {__Pyx_NAMESTR("minmax3"), (PyCFunction)__pyx_pf_5gipsy_1minmax3, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_1minmax3(PyObject *__pyx_self, PyObject *__pyx_v_a) {
  long __pyx_v_a_l;
  fint __pyx_v_ndat_c;
  fint __pyx_v_nblank_c;
  fint __pyx_v_count_c;
  float __pyx_v_amin_c;
  float __pyx_v_amax_c;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  fint __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("minmax3");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":384
 *    cdef fint ndat_c, nblank_c, count_c
 *    cdef float amin_c, amax_c
 *    a_ptr = realptr(a); a_l = a_ptr.ptr; ndat_c = a_ptr.n             # <<<<<<<<<<<<<<
 *    count_c = 0
 *    minmax3_c(<float*>a_l, &ndat_c, &amin_c, &amax_c, &nblank_c, &count_c)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_a_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a_l = __pyx_t_4;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_5 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_ndat_c = __pyx_t_5;

  /* "gipsy.pyx":385
 *    cdef float amin_c, amax_c
 *    a_ptr = realptr(a); a_l = a_ptr.ptr; ndat_c = a_ptr.n
 *    count_c = 0             # <<<<<<<<<<<<<<
 *    minmax3_c(<float*>a_l, &ndat_c, &amin_c, &amax_c, &nblank_c, &count_c)
 *    return (amin_c, amax_c, nblank_c)
 */
  __pyx_v_count_c = 0;

  /* "gipsy.pyx":386
 *    a_ptr = realptr(a); a_l = a_ptr.ptr; ndat_c = a_ptr.n
 *    count_c = 0
 *    minmax3_c(<float*>a_l, &ndat_c, &amin_c, &amax_c, &nblank_c, &count_c)             # <<<<<<<<<<<<<<
 *    return (amin_c, amax_c, nblank_c)
 * 
 */
  minmax3_c(((float *)__pyx_v_a_l), (&__pyx_v_ndat_c), (&__pyx_v_amin_c), (&__pyx_v_amax_c), (&__pyx_v_nblank_c), (&__pyx_v_count_c));

  /* "gipsy.pyx":387
 *    count_c = 0
 *    minmax3_c(<float*>a_l, &ndat_c, &amin_c, &amax_c, &nblank_c, &count_c)
 *    return (amin_c, amax_c, nblank_c)             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_amin_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_amax_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_nblank_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_r = ((PyObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  goto __pyx_L0;

  __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("gipsy.minmax3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":392
 * #  tokey: return a 'standard' user input keyword (uppercase, equals sign)
 * #  --------------------------------------------------------------------------
 * def tokey(a):             # <<<<<<<<<<<<<<
 *    if a[-1] != '=':
 *       a = a + '='
 */

static PyObject *__pyx_pf_5gipsy_2tokey(PyObject *__pyx_self, PyObject *__pyx_v_a); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_2tokey = {__Pyx_NAMESTR("tokey"), (PyCFunction)__pyx_pf_5gipsy_2tokey, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_2tokey(PyObject *__pyx_self, PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tokey");
  __pyx_self = __pyx_self;
  __Pyx_INCREF(__pyx_v_a);

  /* "gipsy.pyx":393
 * #  --------------------------------------------------------------------------
 * def tokey(a):
 *    if a[-1] != '=':             # <<<<<<<<<<<<<<
 *       a = a + '='
 *    return a.upper()
 */
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_a, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_kp_s_3), Py_NE); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":394
 * def tokey(a):
 *    if a[-1] != '=':
 *       a = a + '='             # <<<<<<<<<<<<<<
 *    return a.upper()
 * 
 */
    __pyx_t_1 = PyNumber_Add(__pyx_v_a, ((PyObject *)__pyx_kp_s_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_a);
    __pyx_v_a = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":395
 *    if a[-1] != '=':
 *       a = a + '='
 *    return a.upper()             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_a, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.tokey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":410
 * #  realptr: obtain a Pointer object for type float
 * #  --------------------------------------------------------------------------
 * def realptr(object data, nitems=None, forcecast=True):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef float  *result_c
 */

static PyObject *__pyx_pf_5gipsy_3realptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3realptr = {__Pyx_NAMESTR("realptr"), (PyCFunction)__pyx_pf_5gipsy_3realptr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3realptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_nitems = 0;
  PyObject *__pyx_v_forcecast = 0;
  PyArrayObject *__pyx_v_data_c = 0;
  PyArrayObject *__pyx_v_copy_c = 0;
  float *__pyx_v_result_c;
  PyObject *__pyx_v_datatype = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_format = NULL;
  PyObject *__pyx_v_dcopy = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  size_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  double __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__data,&__pyx_n_s__nitems,&__pyx_n_s__forcecast,0};
  __Pyx_RefNannySetupContext("realptr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = __pyx_k_4;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__forcecast);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "realptr") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_data = values[0];
    __pyx_v_nitems = values[1];
    __pyx_v_forcecast = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("realptr", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.realptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_nitems);

  /* "gipsy.pyx":415
 *    cdef int requirements_c
 *    global numbertypes, native_f4
 *    datatype = type(data)             # <<<<<<<<<<<<<<
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_data)));
  __pyx_v_datatype = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_data)));

  /* "gipsy.pyx":416
 *    global numbertypes, native_f4
 *    datatype = type(data)
 *    if datatype is types.ListType:             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = len(data)
 *       result_c = <float*>malloc(nitems*sizeof(float))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ListType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":417
 *    datatype = type(data)
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)             # <<<<<<<<<<<<<<
 *       result_c = <float*>malloc(nitems*sizeof(float))
 *       i = 0
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "gipsy.pyx":418
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 *       result_c = <float*>malloc(nitems*sizeof(float))             # <<<<<<<<<<<<<<
 *       i = 0
 *       for element in data:
 */
    __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(float))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_nitems, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_result_c = ((float *)malloc(__pyx_t_5));

    /* "gipsy.pyx":419
 *       if nitems is None: nitems = len(data)
 *       result_c = <float*>malloc(nitems*sizeof(float))
 *       i = 0             # <<<<<<<<<<<<<<
 *       for element in data:
 *          result_c[i] = float(element)
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_i = __pyx_int_0;

    /* "gipsy.pyx":420
 *       result_c = <float*>malloc(nitems*sizeof(float))
 *       i = 0
 *       for element in data:             # <<<<<<<<<<<<<<
 *          result_c[i] = float(element)
 *          i = i+1
 */
    if (PyList_CheckExact(__pyx_v_data) || PyTuple_CheckExact(__pyx_v_data)) {
      __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_1)) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
      } else if (PyTuple_CheckExact(__pyx_t_1)) {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
      } else {
        __pyx_t_2 = __pyx_t_6(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_element);
      __pyx_v_element = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":421
 *       i = 0
 *       for element in data:
 *          result_c[i] = float(element)             # <<<<<<<<<<<<<<
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 */
      __pyx_t_7 = __Pyx_PyObject_AsDouble(__pyx_v_element); if (unlikely(__pyx_t_7 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      (__pyx_v_result_c[__pyx_t_8]) = __pyx_t_7;

      /* "gipsy.pyx":422
 *       for element in data:
 *          result_c[i] = float(element)
 *          i = i+1             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 */
      __pyx_t_2 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":423
 *          result_c[i] = float(element)
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)             # <<<<<<<<<<<<<<
 *    elif datatype in numbertypes:
 *       result_c = <float*>malloc(sizeof(float))
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_10));
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_2 = 0;
    __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
    __pyx_v_result = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":424
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:             # <<<<<<<<<<<<<<
 *       result_c = <float*>malloc(sizeof(float))
 *       result_c[0] = float(data)
 */
  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numbertypes); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_9, ((PyObject *)__pyx_v_datatype)))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":425
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 *       result_c = <float*>malloc(sizeof(float))             # <<<<<<<<<<<<<<
 *       result_c[0] = float(data)
 *       result = Pointer(<long>result_c, True, 1)
 */
    __pyx_v_result_c = ((float *)malloc((sizeof(float))));

    /* "gipsy.pyx":426
 *    elif datatype in numbertypes:
 *       result_c = <float*>malloc(sizeof(float))
 *       result_c[0] = float(data)             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, 1)
 *    elif isinstance(data, numpy.ndarray):
 */
    __pyx_t_7 = __Pyx_PyObject_AsDouble(__pyx_v_data); if (unlikely(__pyx_t_7 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_result_c[0]) = __pyx_t_7;

    /* "gipsy.pyx":427
 *       result_c = <float*>malloc(sizeof(float))
 *       result_c[0] = float(data)
 *       result = Pointer(<long>result_c, True, 1)             # <<<<<<<<<<<<<<
 *    elif isinstance(data, numpy.ndarray):
 *       if nitems is None: nitems = data.size
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    __pyx_t_10 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":428
 *       result_c[0] = float(data)
 *       result = Pointer(<long>result_c, True, 1)
 *    elif isinstance(data, numpy.ndarray):             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ndarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_data, __pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":429
 *       result = Pointer(<long>result_c, True, 1)
 *    elif isinstance(data, numpy.ndarray):
 *       if nitems is None: nitems = data.size             # <<<<<<<<<<<<<<
 *       format = data.dtype.str
 *       data_c = <ndarray>data
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "gipsy.pyx":430
 *    elif isinstance(data, numpy.ndarray):
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str             # <<<<<<<<<<<<<<
 *       data_c = <ndarray>data
 *       if format==native_f4 and data.flags.contiguous and data.flags.aligned:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__dtype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__str); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_format = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":431
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str
 *       data_c = <ndarray>data             # <<<<<<<<<<<<<<
 *       if format==native_f4 and data.flags.contiguous and data.flags.aligned:
 *          result = Pointer(<long>data_c.data, False, nitems)
 */
    __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_data)));
    __pyx_v_data_c = ((PyArrayObject *)__pyx_v_data);

    /* "gipsy.pyx":432
 *       format = data.dtype.str
 *       data_c = <ndarray>data
 *       if format==native_f4 and data.flags.contiguous and data.flags.aligned:             # <<<<<<<<<<<<<<
 *          result = Pointer(<long>data_c.data, False, nitems)
 *       else:
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__native_f4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_format, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__flags); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_11) {
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__aligned); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_13 = __pyx_t_12;
      } else {
        __pyx_t_13 = __pyx_t_11;
      }
      __pyx_t_11 = __pyx_t_13;
    } else {
      __pyx_t_11 = __pyx_t_3;
    }
    if (__pyx_t_11) {

      /* "gipsy.pyx":433
 *       data_c = <ndarray>data
 *       if format==native_f4 and data.flags.contiguous and data.flags.aligned:
 *          result = Pointer(<long>data_c.data, False, nitems)             # <<<<<<<<<<<<<<
 *       else:
 *          dcopy = data.astype(native_f4)
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyInt_FromLong(((long)__pyx_v_data_c->data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_nitems);
      PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_nitems);
      __Pyx_GIVEREF(__pyx_v_nitems);
      __pyx_t_1 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
      __pyx_v_result = __pyx_t_9;
      __pyx_t_9 = 0;
      goto __pyx_L11;
    }
    /*else*/ {

      /* "gipsy.pyx":435
 *          result = Pointer(<long>data_c.data, False, nitems)
 *       else:
 *          dcopy = data.astype(native_f4)             # <<<<<<<<<<<<<<
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)
 */
      __pyx_t_9 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__astype); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__native_f4); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_v_dcopy = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "gipsy.pyx":436
 *       else:
 *          dcopy = data.astype(native_f4)
 *          copy_c = <ndarray>dcopy             # <<<<<<<<<<<<<<
 *          result = Pointer(<long>copy_c.data, False, nitems)
 *          result.array = dcopy
 */
      __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_dcopy)));
      __pyx_v_copy_c = ((PyArrayObject *)__pyx_v_dcopy);

      /* "gipsy.pyx":437
 *          dcopy = data.astype(native_f4)
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)             # <<<<<<<<<<<<<<
 *          result.array = dcopy
 *    else:
 */
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyInt_FromLong(((long)__pyx_v_copy_c->data)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_nitems);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_nitems);
      __Pyx_GIVEREF(__pyx_v_nitems);
      __pyx_t_2 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_v_result = __pyx_t_9;
      __pyx_t_9 = 0;

      /* "gipsy.pyx":438
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)
 *          result.array = dcopy             # <<<<<<<<<<<<<<
 *    else:
 *       raise TypeError("should be number, ndarray or list")
 */
      if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__array, __pyx_v_dcopy) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L11:;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":440
 *          result.array = dcopy
 *    else:
 *       raise TypeError("should be number, ndarray or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
    __pyx_t_9 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_Raise(__pyx_t_9, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  /* "gipsy.pyx":441
 *    else:
 *       raise TypeError("should be number, ndarray or list")
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("gipsy.realptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_data_c);
  __Pyx_XDECREF((PyObject *)__pyx_v_copy_c);
  __Pyx_XDECREF(__pyx_v_datatype);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_format);
  __Pyx_XDECREF(__pyx_v_dcopy);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":446
 * #  dbleptr: return a Pointer object for type double
 * #  --------------------------------------------------------------------------
 * def dbleptr(object data, nitems=None, forcecast=True):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef double *result_c
 */

static PyObject *__pyx_pf_5gipsy_4dbleptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_4dbleptr = {__Pyx_NAMESTR("dbleptr"), (PyCFunction)__pyx_pf_5gipsy_4dbleptr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_4dbleptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_nitems = 0;
  PyObject *__pyx_v_forcecast = 0;
  PyArrayObject *__pyx_v_data_c = 0;
  PyArrayObject *__pyx_v_copy_c = 0;
  double *__pyx_v_result_c;
  PyObject *__pyx_v_datatype = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_format = NULL;
  PyObject *__pyx_v_dcopy = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  size_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  double __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__data,&__pyx_n_s__nitems,&__pyx_n_s__forcecast,0};
  __Pyx_RefNannySetupContext("dbleptr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = __pyx_k_7;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__forcecast);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "dbleptr") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_data = values[0];
    __pyx_v_nitems = values[1];
    __pyx_v_forcecast = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("dbleptr", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.dbleptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_nitems);

  /* "gipsy.pyx":451
 *    cdef int requirements_c
 *    global numbertypes, native_f8
 *    datatype = type(data)             # <<<<<<<<<<<<<<
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_data)));
  __pyx_v_datatype = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_data)));

  /* "gipsy.pyx":452
 *    global numbertypes, native_f8
 *    datatype = type(data)
 *    if datatype is types.ListType:             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = len(data)
 *       result_c = <double*>malloc(nitems*sizeof(double))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ListType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":453
 *    datatype = type(data)
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)             # <<<<<<<<<<<<<<
 *       result_c = <double*>malloc(nitems*sizeof(double))
 *       i = 0
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "gipsy.pyx":454
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 *       result_c = <double*>malloc(nitems*sizeof(double))             # <<<<<<<<<<<<<<
 *       i = 0
 *       for element in data:
 */
    __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(double))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_nitems, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_result_c = ((double *)malloc(__pyx_t_5));

    /* "gipsy.pyx":455
 *       if nitems is None: nitems = len(data)
 *       result_c = <double*>malloc(nitems*sizeof(double))
 *       i = 0             # <<<<<<<<<<<<<<
 *       for element in data:
 *          result_c[i] = float(element)       # Python float IS double
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_i = __pyx_int_0;

    /* "gipsy.pyx":456
 *       result_c = <double*>malloc(nitems*sizeof(double))
 *       i = 0
 *       for element in data:             # <<<<<<<<<<<<<<
 *          result_c[i] = float(element)       # Python float IS double
 *          i = i+1
 */
    if (PyList_CheckExact(__pyx_v_data) || PyTuple_CheckExact(__pyx_v_data)) {
      __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_1)) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
      } else if (PyTuple_CheckExact(__pyx_t_1)) {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
      } else {
        __pyx_t_2 = __pyx_t_6(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_element);
      __pyx_v_element = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":457
 *       i = 0
 *       for element in data:
 *          result_c[i] = float(element)       # Python float IS double             # <<<<<<<<<<<<<<
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 */
      __pyx_t_7 = __Pyx_PyObject_AsDouble(__pyx_v_element); if (unlikely(__pyx_t_7 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      (__pyx_v_result_c[__pyx_t_8]) = __pyx_t_7;

      /* "gipsy.pyx":458
 *       for element in data:
 *          result_c[i] = float(element)       # Python float IS double
 *          i = i+1             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 */
      __pyx_t_2 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":459
 *          result_c[i] = float(element)       # Python float IS double
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)             # <<<<<<<<<<<<<<
 *    elif datatype in numbertypes:
 *       result_c = <double*>malloc(sizeof(double))
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_10));
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_2 = 0;
    __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
    __pyx_v_result = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":460
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:             # <<<<<<<<<<<<<<
 *       result_c = <double*>malloc(sizeof(double))
 *       result_c[0] = data
 */
  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numbertypes); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_9, ((PyObject *)__pyx_v_datatype)))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":461
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 *       result_c = <double*>malloc(sizeof(double))             # <<<<<<<<<<<<<<
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)
 */
    __pyx_v_result_c = ((double *)malloc((sizeof(double))));

    /* "gipsy.pyx":462
 *    elif datatype in numbertypes:
 *       result_c = <double*>malloc(sizeof(double))
 *       result_c[0] = data             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is numpy.ndarray:
 */
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_data); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_result_c[0]) = __pyx_t_7;

    /* "gipsy.pyx":463
 *       result_c = <double*>malloc(sizeof(double))
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)             # <<<<<<<<<<<<<<
 *    elif datatype is numpy.ndarray:
 *       if nitems is None: nitems = data.size
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    __pyx_t_10 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":464
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is numpy.ndarray:             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ndarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":465
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is numpy.ndarray:
 *       if nitems is None: nitems = data.size             # <<<<<<<<<<<<<<
 *       format = data.dtype.str
 *       data_c = <ndarray>data
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__size); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "gipsy.pyx":466
 *    elif datatype is numpy.ndarray:
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str             # <<<<<<<<<<<<<<
 *       data_c = <ndarray>data
 *       if format==native_f8 and data.flags.contiguous and data.flags.aligned:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__dtype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__str); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_format = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":467
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str
 *       data_c = <ndarray>data             # <<<<<<<<<<<<<<
 *       if format==native_f8 and data.flags.contiguous and data.flags.aligned:
 *          result = Pointer(<long>data_c.data, False, nitems)
 */
    __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_data)));
    __pyx_v_data_c = ((PyArrayObject *)__pyx_v_data);

    /* "gipsy.pyx":468
 *       format = data.dtype.str
 *       data_c = <ndarray>data
 *       if format==native_f8 and data.flags.contiguous and data.flags.aligned:             # <<<<<<<<<<<<<<
 *          result = Pointer(<long>data_c.data, False, nitems)
 *       else:
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__native_f8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_format, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__flags); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_11) {
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__aligned); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_13 = __pyx_t_12;
      } else {
        __pyx_t_13 = __pyx_t_11;
      }
      __pyx_t_11 = __pyx_t_13;
    } else {
      __pyx_t_11 = __pyx_t_3;
    }
    if (__pyx_t_11) {

      /* "gipsy.pyx":469
 *       data_c = <ndarray>data
 *       if format==native_f8 and data.flags.contiguous and data.flags.aligned:
 *          result = Pointer(<long>data_c.data, False, nitems)             # <<<<<<<<<<<<<<
 *       else:
 *          dcopy = data.astype(native_f8)
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyInt_FromLong(((long)__pyx_v_data_c->data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_nitems);
      PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_nitems);
      __Pyx_GIVEREF(__pyx_v_nitems);
      __pyx_t_1 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
      __pyx_v_result = __pyx_t_9;
      __pyx_t_9 = 0;
      goto __pyx_L11;
    }
    /*else*/ {

      /* "gipsy.pyx":471
 *          result = Pointer(<long>data_c.data, False, nitems)
 *       else:
 *          dcopy = data.astype(native_f8)             # <<<<<<<<<<<<<<
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)
 */
      __pyx_t_9 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__astype); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__native_f8); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_v_dcopy = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "gipsy.pyx":472
 *       else:
 *          dcopy = data.astype(native_f8)
 *          copy_c = <ndarray>dcopy             # <<<<<<<<<<<<<<
 *          result = Pointer(<long>copy_c.data, False, nitems)
 *          result.array = dcopy
 */
      __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_dcopy)));
      __pyx_v_copy_c = ((PyArrayObject *)__pyx_v_dcopy);

      /* "gipsy.pyx":473
 *          dcopy = data.astype(native_f8)
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)             # <<<<<<<<<<<<<<
 *          result.array = dcopy
 *    else:
 */
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyInt_FromLong(((long)__pyx_v_copy_c->data)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_nitems);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_nitems);
      __Pyx_GIVEREF(__pyx_v_nitems);
      __pyx_t_2 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_v_result = __pyx_t_9;
      __pyx_t_9 = 0;

      /* "gipsy.pyx":474
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)
 *          result.array = dcopy             # <<<<<<<<<<<<<<
 *    else:
 *       raise TypeError("should be number, ndarray or list")
 */
      if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__array, __pyx_v_dcopy) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L11:;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":476
 *          result.array = dcopy
 *    else:
 *       raise TypeError("should be number, ndarray or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
    __pyx_t_9 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_Raise(__pyx_t_9, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  /* "gipsy.pyx":477
 *    else:
 *       raise TypeError("should be number, ndarray or list")
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("gipsy.dbleptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_data_c);
  __Pyx_XDECREF((PyObject *)__pyx_v_copy_c);
  __Pyx_XDECREF(__pyx_v_datatype);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_format);
  __Pyx_XDECREF(__pyx_v_dcopy);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":482
 * #  fintptr: return a Pointer object for type fint
 * #  --------------------------------------------------------------------------
 * def fintptr(object data, nitems=None, forcecast=True):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef fint   *result_c
 */

static PyObject *__pyx_pf_5gipsy_5fintptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_5fintptr = {__Pyx_NAMESTR("fintptr"), (PyCFunction)__pyx_pf_5gipsy_5fintptr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_5fintptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_nitems = 0;
  PyObject *__pyx_v_forcecast = 0;
  PyArrayObject *__pyx_v_data_c = 0;
  PyArrayObject *__pyx_v_copy_c = 0;
  fint *__pyx_v_result_c;
  PyObject *__pyx_v_datatype = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_format = NULL;
  PyObject *__pyx_v_dcopy = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  size_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  fint __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__data,&__pyx_n_s__nitems,&__pyx_n_s__forcecast,0};
  __Pyx_RefNannySetupContext("fintptr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = __pyx_k_9;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__forcecast);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "fintptr") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_data = values[0];
    __pyx_v_nitems = values[1];
    __pyx_v_forcecast = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fintptr", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.fintptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_nitems);

  /* "gipsy.pyx":487
 *    cdef int requirements_c
 *    global numbertypes, native_i4
 *    datatype = type(data)             # <<<<<<<<<<<<<<
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_data)));
  __pyx_v_datatype = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_data)));

  /* "gipsy.pyx":488
 *    global numbertypes, native_i4
 *    datatype = type(data)
 *    if datatype is types.ListType:             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = len(data)
 *       result_c = <fint*>malloc(nitems*sizeof(fint))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ListType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":489
 *    datatype = type(data)
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)             # <<<<<<<<<<<<<<
 *       result_c = <fint*>malloc(nitems*sizeof(fint))
 *       i = 0
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "gipsy.pyx":490
 *    if datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 *       result_c = <fint*>malloc(nitems*sizeof(fint))             # <<<<<<<<<<<<<<
 *       i = 0
 *       for element in data:
 */
    __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(fint))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_nitems, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_result_c = ((fint *)malloc(__pyx_t_5));

    /* "gipsy.pyx":491
 *       if nitems is None: nitems = len(data)
 *       result_c = <fint*>malloc(nitems*sizeof(fint))
 *       i = 0             # <<<<<<<<<<<<<<
 *       for element in data:
 *          result_c[i] = int(element)
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_i = __pyx_int_0;

    /* "gipsy.pyx":492
 *       result_c = <fint*>malloc(nitems*sizeof(fint))
 *       i = 0
 *       for element in data:             # <<<<<<<<<<<<<<
 *          result_c[i] = int(element)
 *          i = i+1
 */
    if (PyList_CheckExact(__pyx_v_data) || PyTuple_CheckExact(__pyx_v_data)) {
      __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_1)) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
      } else if (PyTuple_CheckExact(__pyx_t_1)) {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
      } else {
        __pyx_t_2 = __pyx_t_6(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_element);
      __pyx_v_element = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":493
 *       i = 0
 *       for element in data:
 *          result_c[i] = int(element)             # <<<<<<<<<<<<<<
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 */
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_element);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_element);
      __Pyx_GIVEREF(__pyx_v_element);
      __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_t_7); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      (__pyx_v_result_c[__pyx_t_9]) = __pyx_t_8;

      /* "gipsy.pyx":494
 *       for element in data:
 *          result_c[i] = int(element)
 *          i = i+1             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 */
      __pyx_t_7 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":495
 *          result_c[i] = int(element)
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)             # <<<<<<<<<<<<<<
 *    elif datatype in numbertypes:
 *       result_c = <fint*>malloc(sizeof(fint))
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_10));
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_7 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":496
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:             # <<<<<<<<<<<<<<
 *       result_c = <fint*>malloc(sizeof(fint))
 *       result_c[0] = data
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numbertypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_2, ((PyObject *)__pyx_v_datatype)))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":497
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 *       result_c = <fint*>malloc(sizeof(fint))             # <<<<<<<<<<<<<<
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)
 */
    __pyx_v_result_c = ((fint *)malloc((sizeof(fint))));

    /* "gipsy.pyx":498
 *    elif datatype in numbertypes:
 *       result_c = <fint*>malloc(sizeof(fint))
 *       result_c[0] = data             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is numpy.ndarray:
 */
    __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_v_data); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_result_c[0]) = __pyx_t_8;

    /* "gipsy.pyx":499
 *       result_c = <fint*>malloc(sizeof(fint))
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)             # <<<<<<<<<<<<<<
 *    elif datatype is numpy.ndarray:
 *       if nitems is None: nitems = data.size
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    __pyx_t_10 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":500
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is numpy.ndarray:             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ndarray); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_7));
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":501
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is numpy.ndarray:
 *       if nitems is None: nitems = data.size             # <<<<<<<<<<<<<<
 *       format = data.dtype.str
 *       data_c = <ndarray>data
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__size); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "gipsy.pyx":502
 *    elif datatype is numpy.ndarray:
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str             # <<<<<<<<<<<<<<
 *       data_c = <ndarray>data
 *       if format==native_i4 and data.flags.contiguous and data.flags.aligned:
 */
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__dtype); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__str); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_format = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":503
 *       if nitems is None: nitems = data.size
 *       format = data.dtype.str
 *       data_c = <ndarray>data             # <<<<<<<<<<<<<<
 *       if format==native_i4 and data.flags.contiguous and data.flags.aligned:
 *          result = Pointer(<long>data_c.data, False, nitems)
 */
    __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_data)));
    __pyx_v_data_c = ((PyArrayObject *)__pyx_v_data);

    /* "gipsy.pyx":504
 *       format = data.dtype.str
 *       data_c = <ndarray>data
 *       if format==native_i4 and data.flags.contiguous and data.flags.aligned:             # <<<<<<<<<<<<<<
 *          result = Pointer(<long>data_c.data, False, nitems)
 *       else:
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__native_i4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_format, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_3) {
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__flags); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_11) {
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__aligned); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_13 = __pyx_t_12;
      } else {
        __pyx_t_13 = __pyx_t_11;
      }
      __pyx_t_11 = __pyx_t_13;
    } else {
      __pyx_t_11 = __pyx_t_3;
    }
    if (__pyx_t_11) {

      /* "gipsy.pyx":505
 *       data_c = <ndarray>data
 *       if format==native_i4 and data.flags.contiguous and data.flags.aligned:
 *          result = Pointer(<long>data_c.data, False, nitems)             # <<<<<<<<<<<<<<
 *       else:
 *          dcopy = data.astype(native_i4)
 */
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyInt_FromLong(((long)__pyx_v_data_c->data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_nitems);
      PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_nitems);
      __Pyx_GIVEREF(__pyx_v_nitems);
      __pyx_t_1 = 0;
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
      __pyx_v_result = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L11;
    }
    /*else*/ {

      /* "gipsy.pyx":507
 *          result = Pointer(<long>data_c.data, False, nitems)
 *       else:
 *          dcopy = data.astype(native_i4)             # <<<<<<<<<<<<<<
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_data, __pyx_n_s__astype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__native_i4); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
      __pyx_v_dcopy = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "gipsy.pyx":508
 *       else:
 *          dcopy = data.astype(native_i4)
 *          copy_c = <ndarray>dcopy             # <<<<<<<<<<<<<<
 *          result = Pointer(<long>copy_c.data, False, nitems)
 *          result.array = dcopy
 */
      __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_dcopy)));
      __pyx_v_copy_c = ((PyArrayObject *)__pyx_v_dcopy);

      /* "gipsy.pyx":509
 *          dcopy = data.astype(native_i4)
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)             # <<<<<<<<<<<<<<
 *          result.array = dcopy
 *    else:
 */
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = PyInt_FromLong(((long)__pyx_v_copy_c->data)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_nitems);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_nitems);
      __Pyx_GIVEREF(__pyx_v_nitems);
      __pyx_t_7 = 0;
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_v_result = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":510
 *          copy_c = <ndarray>dcopy
 *          result = Pointer(<long>copy_c.data, False, nitems)
 *          result.array = dcopy             # <<<<<<<<<<<<<<
 *    else:
 *       raise TypeError("should be number, ndarray or list")
 */
      if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__array, __pyx_v_dcopy) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L11:;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":512
 *          result.array = dcopy
 *    else:
 *       raise TypeError("should be number, ndarray or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
    __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_10), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  /* "gipsy.pyx":513
 *    else:
 *       raise TypeError("should be number, ndarray or list")
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("gipsy.fintptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_data_c);
  __Pyx_XDECREF((PyObject *)__pyx_v_copy_c);
  __Pyx_XDECREF(__pyx_v_datatype);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_format);
  __Pyx_XDECREF(__pyx_v_dcopy);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":520
 * #  This function does not support Numpy array objects.
 * #
 * def boolptr(object data, nitems=None):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef bool   *result_c
 */

static PyObject *__pyx_pf_5gipsy_6boolptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6boolptr = {__Pyx_NAMESTR("boolptr"), (PyCFunction)__pyx_pf_5gipsy_6boolptr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6boolptr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_nitems = 0;
  bool *__pyx_v_result_c;
  PyObject *__pyx_v_datatype = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_element = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  bool __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  size_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__data,&__pyx_n_s__nitems,0};
  __Pyx_RefNannySetupContext("boolptr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "boolptr") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_data = values[0];
    __pyx_v_nitems = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("boolptr", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.boolptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_nitems);

  /* "gipsy.pyx":524
 *    cdef bool   *result_c
 *    cdef int requirements_c
 *    datatype = type(data)             # <<<<<<<<<<<<<<
 *    if datatype is types.BooleanType:
 *       result_c = <bool*>malloc(sizeof(bool))
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_data)));
  __pyx_v_datatype = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_data)));

  /* "gipsy.pyx":525
 *    cdef int requirements_c
 *    datatype = type(data)
 *    if datatype is types.BooleanType:             # <<<<<<<<<<<<<<
 *       result_c = <bool*>malloc(sizeof(bool))
 *       result_c[0] = data
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__BooleanType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":526
 *    datatype = type(data)
 *    if datatype is types.BooleanType:
 *       result_c = <bool*>malloc(sizeof(bool))             # <<<<<<<<<<<<<<
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)
 */
    __pyx_v_result_c = ((bool *)malloc((sizeof(bool))));

    /* "gipsy.pyx":527
 *    if datatype is types.BooleanType:
 *       result_c = <bool*>malloc(sizeof(bool))
 *       result_c[0] = data             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is types.ListType:
 */
    __pyx_t_4 = __Pyx_PyInt_from_py_bool(__pyx_v_data); if (unlikely((__pyx_t_4 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_result_c[0]) = __pyx_t_4;

    /* "gipsy.pyx":528
 *       result_c = <bool*>malloc(sizeof(bool))
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)             # <<<<<<<<<<<<<<
 *    elif datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    __pyx_t_1 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_result = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":529
 *       result_c[0] = data
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is types.ListType:             # <<<<<<<<<<<<<<
 *       if nitems is None: nitems = len(data)
 *       result_c = <bool*>malloc(nitems*sizeof(bool))
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ListType); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = (__pyx_v_datatype == ((PyObject*)__pyx_t_6));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":530
 *       result = Pointer(<long>result_c, True, 1)
 *    elif datatype is types.ListType:
 *       if nitems is None: nitems = len(data)             # <<<<<<<<<<<<<<
 *       result_c = <bool*>malloc(nitems*sizeof(bool))
 *       i = 0
 */
    __pyx_t_3 = (__pyx_v_nitems == Py_None);
    if (__pyx_t_3) {
      __pyx_t_7 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_v_nitems);
      __pyx_v_nitems = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "gipsy.pyx":531
 *    elif datatype is types.ListType:
 *       if nitems is None: nitems = len(data)
 *       result_c = <bool*>malloc(nitems*sizeof(bool))             # <<<<<<<<<<<<<<
 *       i = 0
 *       for element in data:
 */
    __pyx_t_6 = __Pyx_PyInt_FromSize_t((sizeof(bool))); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyNumber_Multiply(__pyx_v_nitems, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_PyInt_AsSize_t(__pyx_t_5); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_result_c = ((bool *)malloc(__pyx_t_8));

    /* "gipsy.pyx":532
 *       if nitems is None: nitems = len(data)
 *       result_c = <bool*>malloc(nitems*sizeof(bool))
 *       i = 0             # <<<<<<<<<<<<<<
 *       for element in data:
 *          result_c[i] = element!=0
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_i = __pyx_int_0;

    /* "gipsy.pyx":533
 *       result_c = <bool*>malloc(nitems*sizeof(bool))
 *       i = 0
 *       for element in data:             # <<<<<<<<<<<<<<
 *          result_c[i] = element!=0
 *          i = i+1
 */
    if (PyList_CheckExact(__pyx_v_data) || PyTuple_CheckExact(__pyx_v_data)) {
      __pyx_t_5 = __pyx_v_data; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_5)) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++;
      } else if (PyTuple_CheckExact(__pyx_t_5)) {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++;
      } else {
        __pyx_t_6 = __pyx_t_9(__pyx_t_5);
        if (unlikely(!__pyx_t_6)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF(__pyx_v_element);
      __pyx_v_element = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "gipsy.pyx":534
 *       i = 0
 *       for element in data:
 *          result_c[i] = element!=0             # <<<<<<<<<<<<<<
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_element, __pyx_int_0, Py_NE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = __Pyx_PyInt_from_py_bool(__pyx_t_6); if (unlikely((__pyx_t_4 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      (__pyx_v_result_c[__pyx_t_10]) = __pyx_t_4;

      /* "gipsy.pyx":535
 *       for element in data:
 *          result_c[i] = element!=0
 *          i = i+1             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 */
      __pyx_t_6 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_6;
      __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":536
 *          result_c[i] = element!=0
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)             # <<<<<<<<<<<<<<
 *    elif datatype in numbertypes:
 *       result_c = <bool*>malloc(sizeof(bool))
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":537
 *          i = i+1
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:             # <<<<<<<<<<<<<<
 *       result_c = <bool*>malloc(sizeof(bool))
 *       result_c[0] = data!=0
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numbertypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_2, ((PyObject *)__pyx_v_datatype)))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":538
 *       result = Pointer(<long>result_c, True, nitems)
 *    elif datatype in numbertypes:
 *       result_c = <bool*>malloc(sizeof(bool))             # <<<<<<<<<<<<<<
 *       result_c[0] = data!=0
 *       result = Pointer(<long>result_c, True, 1)
 */
    __pyx_v_result_c = ((bool *)malloc((sizeof(bool))));

    /* "gipsy.pyx":539
 *    elif datatype in numbertypes:
 *       result_c = <bool*>malloc(sizeof(bool))
 *       result_c[0] = data!=0             # <<<<<<<<<<<<<<
 *       result = Pointer(<long>result_c, True, 1)
 *    else:
 */
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_data, __pyx_int_0, Py_NE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyInt_from_py_bool(__pyx_t_2); if (unlikely((__pyx_t_4 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    (__pyx_v_result_c[0]) = __pyx_t_4;

    /* "gipsy.pyx":540
 *       result_c = <bool*>malloc(sizeof(bool))
 *       result_c[0] = data!=0
 *       result = Pointer(<long>result_c, True, 1)             # <<<<<<<<<<<<<<
 *    else:
 *       anyout("datatype= %s" % repr(datatype))
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Pointer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyInt_FromLong(((long)__pyx_v_result_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    __pyx_t_1 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_result = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":542
 *       result = Pointer(<long>result_c, True, 1)
 *    else:
 *       anyout("datatype= %s" % repr(datatype))             # <<<<<<<<<<<<<<
 *       raise TypeError("should be number or list")
 *    return result
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__anyout); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyObject_Repr(((PyObject *)__pyx_v_datatype)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_11), __pyx_t_6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_2));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "gipsy.pyx":543
 *    else:
 *       anyout("datatype= %s" % repr(datatype))
 *       raise TypeError("should be number or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
    __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_13), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  /* "gipsy.pyx":544
 *       anyout("datatype= %s" % repr(datatype))
 *       raise TypeError("should be number or list")
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("gipsy.boolptr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_datatype);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":549
 * #  chardata: return an fchar struct
 * #  --------------------------------------------------------------------------
 * cdef fchar chardata(data, width, nitems):             # <<<<<<<<<<<<<<
 *    cdef fchar result
 *    cdef char *element_c
 */

static fchar __pyx_f_5gipsy_chardata(PyObject *__pyx_v_data, PyObject *__pyx_v_width, PyObject *__pyx_v_nitems) {
  fchar __pyx_v_result;
  char *__pyx_v_element_c;
  PyObject *__pyx_v_padding = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_element = NULL;
  fchar __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  fint __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  char *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chardata");
  __Pyx_INCREF(__pyx_v_data);
  __Pyx_INCREF(__pyx_v_nitems);

  /* "gipsy.pyx":552
 *    cdef fchar result
 *    cdef char *element_c
 *    result   = newfchar(width*nitems)             # <<<<<<<<<<<<<<
 *    result.l = width
 *    padding = ' '*width
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_width, __pyx_v_nitems); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = __pyx_f_5gipsy_newfchar(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":553
 *    cdef char *element_c
 *    result   = newfchar(width*nitems)
 *    result.l = width             # <<<<<<<<<<<<<<
 *    padding = ' '*width
 *    if type(data) is not types.ListType:
 */
  __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_v_width); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_result.l = __pyx_t_2;

  /* "gipsy.pyx":554
 *    result   = newfchar(width*nitems)
 *    result.l = width
 *    padding = ' '*width             # <<<<<<<<<<<<<<
 *    if type(data) is not types.ListType:
 *       data = [data]
 */
  __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_kp_s_14), __pyx_v_width); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_padding = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "gipsy.pyx":555
 *    result.l = width
 *    padding = ' '*width
 *    if type(data) is not types.ListType:             # <<<<<<<<<<<<<<
 *       data = [data]
 *       nitems = 1
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ListType); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_data)) != __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "gipsy.pyx":556
 *    padding = ' '*width
 *    if type(data) is not types.ListType:
 *       data = [data]             # <<<<<<<<<<<<<<
 *       nitems = 1
 *    if nitems is None:
 */
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_v_data);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_data);
    __Pyx_GIVEREF(__pyx_v_data);
    __Pyx_DECREF(__pyx_v_data);
    __pyx_v_data = ((PyObject *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "gipsy.pyx":557
 *    if type(data) is not types.ListType:
 *       data = [data]
 *       nitems = 1             # <<<<<<<<<<<<<<
 *    if nitems is None:
 *       nitems = len(data)
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_nitems);
    __pyx_v_nitems = __pyx_int_1;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "gipsy.pyx":558
 *       data = [data]
 *       nitems = 1
 *    if nitems is None:             # <<<<<<<<<<<<<<
 *       nitems = len(data)
 *    i = 0
 */
  __pyx_t_4 = (__pyx_v_nitems == Py_None);
  if (__pyx_t_4) {

    /* "gipsy.pyx":559
 *       nitems = 1
 *    if nitems is None:
 *       nitems = len(data)             # <<<<<<<<<<<<<<
 *    i = 0
 *    for element in data:
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_v_nitems);
    __pyx_v_nitems = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L4;
  }
  __pyx_L4:;

  /* "gipsy.pyx":560
 *    if nitems is None:
 *       nitems = len(data)
 *    i = 0             # <<<<<<<<<<<<<<
 *    for element in data:
 *       element   = (element + padding)[:width]
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_i = __pyx_int_0;

  /* "gipsy.pyx":561
 *       nitems = len(data)
 *    i = 0
 *    for element in data:             # <<<<<<<<<<<<<<
 *       element   = (element + padding)[:width]
 *       element_c = &result.a[i*width]
 */
  if (PyList_CheckExact(__pyx_v_data) || PyTuple_CheckExact(__pyx_v_data)) {
    __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext;
  }
  for (;;) {
    if (PyList_CheckExact(__pyx_t_3)) {
      if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++;
    } else if (PyTuple_CheckExact(__pyx_t_3)) {
      if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++;
    } else {
      __pyx_t_1 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_element);
    __pyx_v_element = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":562
 *    i = 0
 *    for element in data:
 *       element   = (element + padding)[:width]             # <<<<<<<<<<<<<<
 *       element_c = &result.a[i*width]
 *       element_c = element
 */
    __pyx_t_1 = PyNumber_Add(__pyx_v_element, __pyx_v_padding); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_width); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __Pyx_PySequence_GetSlice(__pyx_t_1, 0, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_element);
    __pyx_v_element = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "gipsy.pyx":563
 *    for element in data:
 *       element   = (element + padding)[:width]
 *       element_c = &result.a[i*width]             # <<<<<<<<<<<<<<
 *       element_c = element
 *       i = i+1
 */
    __pyx_t_8 = PyNumber_Multiply(__pyx_v_i, __pyx_v_width); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_element_c = (&(__pyx_v_result.a[__pyx_t_7]));

    /* "gipsy.pyx":564
 *       element   = (element + padding)[:width]
 *       element_c = &result.a[i*width]
 *       element_c = element             # <<<<<<<<<<<<<<
 *       i = i+1
 *    return result
 */
    __pyx_t_9 = PyBytes_AsString(__pyx_v_element); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_element_c = __pyx_t_9;

    /* "gipsy.pyx":565
 *       element_c = &result.a[i*width]
 *       element_c = element
 *       i = i+1             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
    __pyx_t_8 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_8;
    __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":566
 *       element_c = element
 *       i = i+1
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_WriteUnraisable("gipsy.chardata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_padding);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_element);
  __Pyx_XDECREF(__pyx_v_data);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":583
 * #
 * class Pointer(object):
 *    def __init__(self, ptr, dyn=False, n=1):             # <<<<<<<<<<<<<<
 *       self.ptr = ptr
 *       self.dyn = dyn
 */

static PyObject *__pyx_pf_5gipsy_7Pointer___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_7Pointer___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_7Pointer___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_7Pointer___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_ptr = 0;
  PyObject *__pyx_v_dyn = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__ptr,&__pyx_n_s__dyn,&__pyx_n_s__n,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k_15;
    values[3] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ptr);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dyn);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_ptr = values[1];
    __pyx_v_dyn = values[2];
    __pyx_v_n = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Pointer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":584
 * class Pointer(object):
 *    def __init__(self, ptr, dyn=False, n=1):
 *       self.ptr = ptr             # <<<<<<<<<<<<<<
 *       self.dyn = dyn
 *       self.n   = n
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__ptr, __pyx_v_ptr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":585
 *    def __init__(self, ptr, dyn=False, n=1):
 *       self.ptr = ptr
 *       self.dyn = dyn             # <<<<<<<<<<<<<<
 *       self.n   = n
 *    def __del__(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__dyn, __pyx_v_dyn) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":586
 *       self.ptr = ptr
 *       self.dyn = dyn
 *       self.n   = n             # <<<<<<<<<<<<<<
 *    def __del__(self):
 *       cdef long  ptr_l
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__n, __pyx_v_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("gipsy.Pointer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":587
 *       self.dyn = dyn
 *       self.n   = n
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       cdef long  ptr_l
 *       if self.dyn:
 */

static PyObject *__pyx_pf_5gipsy_7Pointer_1__del__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_7Pointer_1__del__ = {__Pyx_NAMESTR("__del__"), (PyCFunction)__pyx_pf_5gipsy_7Pointer_1__del__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_7Pointer_1__del__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  long __pyx_v_ptr_l;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  long __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__del__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":589
 *    def __del__(self):
 *       cdef long  ptr_l
 *       if self.dyn:             # <<<<<<<<<<<<<<
 *          ptr_l = self.ptr
 *          free(<void*>ptr_l)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dyn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":590
 *       cdef long  ptr_l
 *       if self.dyn:
 *          ptr_l = self.ptr             # <<<<<<<<<<<<<<
 *          free(<void*>ptr_l)
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_3 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_ptr_l = __pyx_t_3;

    /* "gipsy.pyx":591
 *       if self.dyn:
 *          ptr_l = self.ptr
 *          free(<void*>ptr_l)             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
    free(((void *)__pyx_v_ptr_l));
    goto __pyx_L5;
  }
  __pyx_L5:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.Pointer.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":606
 * #
 * class Buffer(object):
 *    def __init__(self, size):             # <<<<<<<<<<<<<<
 *       cdef void *content_c
 *       content_c = malloc(size)
 */

static PyObject *__pyx_pf_5gipsy_6Buffer___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6Buffer___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_6Buffer___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6Buffer___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_size = 0;
  void *__pyx_v_content_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__size,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_size = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Buffer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":608
 *    def __init__(self, size):
 *       cdef void *content_c
 *       content_c = malloc(size)             # <<<<<<<<<<<<<<
 *       self.content = <long>content_c
 *       self.size = size
 */
  __pyx_t_1 = __Pyx_PyInt_AsSize_t(__pyx_v_size); if (unlikely((__pyx_t_1 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_content_c = malloc(__pyx_t_1);

  /* "gipsy.pyx":609
 *       cdef void *content_c
 *       content_c = malloc(size)
 *       self.content = <long>content_c             # <<<<<<<<<<<<<<
 *       self.size = size
 *    def __del__(self):
 */
  __pyx_t_2 = PyInt_FromLong(((long)__pyx_v_content_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__content, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":610
 *       content_c = malloc(size)
 *       self.content = <long>content_c
 *       self.size = size             # <<<<<<<<<<<<<<
 *    def __del__(self):
 *       cdef long content_c
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__size, __pyx_v_size) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy.Buffer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":611
 *       self.content = <long>content_c
 *       self.size = size
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       cdef long content_c
 *       content_c = self.content
 */

static PyObject *__pyx_pf_5gipsy_6Buffer_1__del__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6Buffer_1__del__ = {__Pyx_NAMESTR("__del__"), (PyCFunction)__pyx_pf_5gipsy_6Buffer_1__del__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6Buffer_1__del__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  long __pyx_v_content_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  long __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__del__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":613
 *    def __del__(self):
 *       cdef long content_c
 *       content_c = self.content             # <<<<<<<<<<<<<<
 *       free(<void*>content_c)
 *    def __len__(self):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__content); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_2 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_content_c = __pyx_t_2;

  /* "gipsy.pyx":614
 *       cdef long content_c
 *       content_c = self.content
 *       free(<void*>content_c)             # <<<<<<<<<<<<<<
 *    def __len__(self):
 *       return self.size
 */
  free(((void *)__pyx_v_content_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.Buffer.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":615
 *       content_c = self.content
 *       free(<void*>content_c)
 *    def __len__(self):             # <<<<<<<<<<<<<<
 *       return self.size
 * 
 */

static PyObject *__pyx_pf_5gipsy_6Buffer_2__len__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6Buffer_2__len__ = {__Pyx_NAMESTR("__len__"), (PyCFunction)__pyx_pf_5gipsy_6Buffer_2__len__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6Buffer_2__len__(PyObject *__pyx_self, 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("__len__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":616
 *       free(<void*>content_c)
 *    def __len__(self):
 *       return self.size             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.Buffer.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":622
 * #  --------------------------------------------------------------------------
 * class GipsyError(Exception):
 *    def __init__(self, value=None):             # <<<<<<<<<<<<<<
 *       self.value = value
 *    def __str__(self):
 */

static PyObject *__pyx_pf_5gipsy_10GipsyError___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10GipsyError___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_10GipsyError___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10GipsyError___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__value,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GipsyError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":623
 * class GipsyError(Exception):
 *    def __init__(self, value=None):
 *       self.value = value             # <<<<<<<<<<<<<<
 *    def __str__(self):
 *       return repr(self.value)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__value, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("gipsy.GipsyError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":624
 *    def __init__(self, value=None):
 *       self.value = value
 *    def __str__(self):             # <<<<<<<<<<<<<<
 *       return repr(self.value)
 * 
 */

static PyObject *__pyx_pf_5gipsy_10GipsyError_1__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10GipsyError_1__str__ = {__Pyx_NAMESTR("__str__"), (PyCFunction)__pyx_pf_5gipsy_10GipsyError_1__str__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10GipsyError_1__str__(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("__str__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":625
 *       self.value = value
 *    def __str__(self):
 *       return repr(self.value)             # <<<<<<<<<<<<<<
 * 
 * class XeqError(GipsyError):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.GipsyError.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":655
 *    scheduled = []
 * 
 *    def __init__(self, proc, key, mask=1, schedule=True, **attr):             # <<<<<<<<<<<<<<
 * 
 * # proc     - function to be called upon a keyword event, matching 'mask'.
 */

static PyObject *__pyx_pf_5gipsy_11KeyCallback___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_11KeyCallback___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_11KeyCallback___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_11KeyCallback___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_mask = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_cb = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__key,&__pyx_n_s__mask,&__pyx_n_s__schedule,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_1);
    values[4] = __pyx_k_16;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mask);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_key = values[2];
    __pyx_v_mask = values[3];
    __pyx_v_schedule = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy.KeyCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":663
 * # attr     - keyword arguments defining extra attributes
 * 
 *       self.proc = proc             # <<<<<<<<<<<<<<
 *       self.key  = tokey(key)
 *       for cb in InputCallback.scheduled:
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__proc, __pyx_v_proc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":664
 * 
 *       self.proc = proc
 *       self.key  = tokey(key)             # <<<<<<<<<<<<<<
 *       for cb in InputCallback.scheduled:
 *          if cb.key==self.key:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__key, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":665
 *       self.proc = proc
 *       self.key  = tokey(key)
 *       for cb in InputCallback.scheduled:             # <<<<<<<<<<<<<<
 *          if cb.key==self.key:
 *             raise GipsyError("Keyword %s already scheduled by InputCallback" % self.key)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__InputCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else {
      __pyx_t_2 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_cb);
    __pyx_v_cb = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":666
 *       self.key  = tokey(key)
 *       for cb in InputCallback.scheduled:
 *          if cb.key==self.key:             # <<<<<<<<<<<<<<
 *             raise GipsyError("Keyword %s already scheduled by InputCallback" % self.key)
 *       self.mask = mask
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {

      /* "gipsy.pyx":667
 *       for cb in InputCallback.scheduled:
 *          if cb.key==self.key:
 *             raise GipsyError("Keyword %s already scheduled by InputCallback" % self.key)             # <<<<<<<<<<<<<<
 *       self.mask = mask
 *       for name in attr.keys():
 */
      __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_17), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_2));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":668
 *          if cb.key==self.key:
 *             raise GipsyError("Keyword %s already scheduled by InputCallback" % self.key)
 *       self.mask = mask             # <<<<<<<<<<<<<<
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__mask, __pyx_v_mask) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":669
 *             raise GipsyError("Keyword %s already scheduled by InputCallback" % self.key)
 *       self.mask = mask
 *       for name in attr.keys():             # <<<<<<<<<<<<<<
 *          self.__dict__[name] = attr[name]
 *       self.__id   = 0
 */
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "keys"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_3 = PyDict_Keys(__pyx_v_attr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":670
 *       self.mask = mask
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]             # <<<<<<<<<<<<<<
 *       self.__id   = 0
 *       self.active = False
 */
    __pyx_t_3 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_attr), __pyx_v_name); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_1, __pyx_v_name, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __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;

  /* "gipsy.pyx":671
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 *       self.__id   = 0             # <<<<<<<<<<<<<<
 *       self.active = False
 *       if schedule: self.schedule()
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":672
 *          self.__dict__[name] = attr[name]
 *       self.__id   = 0
 *       self.active = False             # <<<<<<<<<<<<<<
 *       if schedule: self.schedule()
 * 
 */
  __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":673
 *       self.__id   = 0
 *       self.active = False
 *       if schedule: self.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def schedule(self):
 */
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_schedule); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__schedule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L11;
  }
  __pyx_L11:;

  __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("gipsy.KeyCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_cb);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":675
 *       if schedule: self.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       "activate the callback object"
 *       if self.__id:
 */

static PyObject *__pyx_pf_5gipsy_11KeyCallback_1schedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_11KeyCallback_1schedule[] = "activate the callback object";
static PyMethodDef __pyx_mdef_5gipsy_11KeyCallback_1schedule = {__Pyx_NAMESTR("schedule"), (PyCFunction)__pyx_pf_5gipsy_11KeyCallback_1schedule, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_11KeyCallback_1schedule)};
static PyObject *__pyx_pf_5gipsy_11KeyCallback_1schedule(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_selfkey = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":677
 *    def schedule(self):
 *       "activate the callback object"
 *       if self.__id:             # <<<<<<<<<<<<<<
 *          raise GipsyError("Callback object already active")
 *       selfkey = self.key
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":678
 *       "activate the callback object"
 *       if self.__id:
 *          raise GipsyError("Callback object already active")             # <<<<<<<<<<<<<<
 *       selfkey = self.key
 *       self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_19), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":679
 *       if self.__id:
 *          raise GipsyError("Callback object already active")
 *       selfkey = self.key             # <<<<<<<<<<<<<<
 *       self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)
 *       self.active = True
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_selfkey = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":680
 *          raise GipsyError("Callback object already active")
 *       selfkey = self.key
 *       self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)             # <<<<<<<<<<<<<<
 *       self.active = True
 *       self.scheduled.append(self)
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_selfkey); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__mask); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyInt_FromLong(((long)ScheduleKeyevent(__pyx_f_5gipsy_keyproc, __pyx_t_4, __pyx_t_5, ((void *)__pyx_v_self)))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":681
 *       selfkey = self.key
 *       self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)
 *       self.active = True             # <<<<<<<<<<<<<<
 *       self.scheduled.append(self)
 * 
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":682
 *       self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)
 *       self.active = True
 *       self.scheduled.append(self)             # <<<<<<<<<<<<<<
 * 
 *    def deschedule(self):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __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_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("gipsy.KeyCallback.schedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_selfkey);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":684
 *       self.scheduled.append(self)
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       "deactivate the callback object"
 *       cdef ident id
 */

static PyObject *__pyx_pf_5gipsy_11KeyCallback_2deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_11KeyCallback_2deschedule[] = "deactivate the callback object";
static PyMethodDef __pyx_mdef_5gipsy_11KeyCallback_2deschedule = {__Pyx_NAMESTR("deschedule"), (PyCFunction)__pyx_pf_5gipsy_11KeyCallback_2deschedule, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_11KeyCallback_2deschedule)};
static PyObject *__pyx_pf_5gipsy_11KeyCallback_2deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  ident __pyx_v_id;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deschedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":687
 *       "deactivate the callback object"
 *       cdef ident id
 *       if not self.__id:             # <<<<<<<<<<<<<<
 *          raise GipsyError("Callback object inactive")
 *       id = toident(self.__id)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":688
 *       cdef ident id
 *       if not self.__id:
 *          raise GipsyError("Callback object inactive")             # <<<<<<<<<<<<<<
 *       id = toident(self.__id)
 *       DescheduleKeyevent(&id)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_21), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":689
 *       if not self.__id:
 *          raise GipsyError("Callback object inactive")
 *       id = toident(self.__id)             # <<<<<<<<<<<<<<
 *       DescheduleKeyevent(&id)
 *       self.__id = 0
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_id = __pyx_f_5gipsy_toident(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":690
 *          raise GipsyError("Callback object inactive")
 *       id = toident(self.__id)
 *       DescheduleKeyevent(&id)             # <<<<<<<<<<<<<<
 *       self.__id = 0
 *       self.active = False
 */
  DescheduleKeyevent((&__pyx_v_id));

  /* "gipsy.pyx":691
 *       id = toident(self.__id)
 *       DescheduleKeyevent(&id)
 *       self.__id = 0             # <<<<<<<<<<<<<<
 *       self.active = False
 *       self.scheduled.remove(self)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":692
 *       DescheduleKeyevent(&id)
 *       self.__id = 0
 *       self.active = False             # <<<<<<<<<<<<<<
 *       self.scheduled.remove(self)
 * 
 */
  __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":693
 *       self.__id = 0
 *       self.active = False
 *       self.scheduled.remove(self)             # <<<<<<<<<<<<<<
 * 
 * # --------------------------------------------------------------------------
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __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("gipsy.KeyCallback.deschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":698
 * #                         KeyCallback helper function
 * # --------------------------------------------------------------------------
 * cdef void keyproc(ident id, char *key, int code, void *arg) with gil:             # <<<<<<<<<<<<<<
 *    cbobj = <object>arg
 *    cbobj.event = code
 */

static void __pyx_f_5gipsy_keyproc(ident __pyx_v_id, char *__pyx_v_key, int __pyx_v_code, void *__pyx_v_arg) {
  PyObject *__pyx_v_cbobj = 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;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("keyproc");

  /* "gipsy.pyx":699
 * # --------------------------------------------------------------------------
 * cdef void keyproc(ident id, char *key, int code, void *arg) with gil:
 *    cbobj = <object>arg             # <<<<<<<<<<<<<<
 *    cbobj.event = code
 *    try:
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_arg));
  __pyx_v_cbobj = ((PyObject *)__pyx_v_arg);

  /* "gipsy.pyx":700
 * cdef void keyproc(ident id, char *key, int code, void *arg) with gil:
 *    cbobj = <object>arg
 *    cbobj.event = code             # <<<<<<<<<<<<<<
 *    try:
 *       cbobj.proc(cbobj)
 */
  __pyx_t_1 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_cbobj, __pyx_n_s__event, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":701
 *    cbobj = <object>arg
 *    cbobj.event = code
 *    try:             # <<<<<<<<<<<<<<
 *       cbobj.proc(cbobj)
 *    except:
 */
  {
    __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:*/ {

      /* "gipsy.pyx":702
 *    cbobj.event = code
 *    try:
 *       cbobj.proc(cbobj)             # <<<<<<<<<<<<<<
 *    except:
 *       error(3, "Exception from gipsy.keyproc() (keyword %s)" % key)
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_cbobj, __pyx_n_s__proc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __Pyx_INCREF(__pyx_v_cbobj);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_cbobj);
      __Pyx_GIVEREF(__pyx_v_cbobj);
      __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __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_L10_try_end;
    __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;

    /* "gipsy.pyx":703
 *    try:
 *       cbobj.proc(cbobj)
 *    except:             # <<<<<<<<<<<<<<
 *       error(3, "Exception from gipsy.keyproc() (keyword %s)" % key)
 *       raise
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy.keyproc", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_1);

      /* "gipsy.pyx":704
 *       cbobj.proc(cbobj)
 *    except:
 *       error(3, "Exception from gipsy.keyproc() (keyword %s)" % key)             # <<<<<<<<<<<<<<
 *       raise
 * 
 */
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyBytes_FromString(__pyx_v_key); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_22), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __Pyx_INCREF(__pyx_int_3);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_3);
      __Pyx_GIVEREF(__pyx_int_3);
      PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_t_9));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_9));
      __pyx_t_9 = 0;
      __pyx_t_9 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "gipsy.pyx":705
 *    except:
 *       error(3, "Exception from gipsy.keyproc() (keyword %s)" % key)
 *       raise             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_ErrRestore(__pyx_t_6, __pyx_t_5, __pyx_t_1);
      __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_1 = 0; 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L4_exception_handled;
    }
    __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_L4_exception_handled:;
    __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);
    __pyx_L10_try_end:;
  }

  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_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_WriteUnraisable("gipsy.keyproc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cbobj);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "gipsy.pyx":714
 *    scheduled=[]
 * 
 *    def __init__(self, proc, key, function=None, args={}, schedule=True,             # <<<<<<<<<<<<<<
 *                       active=True, **attr):
 * 
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_function = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_active = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_cb = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__key,&__pyx_n_s__function,&__pyx_n_s__args,&__pyx_n_s__schedule,&__pyx_n_s__active,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[3] = ((PyObject *)Py_None);
    values[4] = __pyx_k_23;
    values[5] = __pyx_k_24;
    values[6] = __pyx_k_25;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__function);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__args);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__active);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_key = values[2];
    __pyx_v_function = values[3];
    __pyx_v_args = values[4];
    __pyx_v_schedule = values[5];
    __pyx_v_active = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy.InputCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":717
 *                       active=True, **attr):
 * 
 *       self.proc = proc             # <<<<<<<<<<<<<<
 *       self.key  = tokey(key)
 *       for cb in KeyCallback.scheduled:
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__proc, __pyx_v_proc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":718
 * 
 *       self.proc = proc
 *       self.key  = tokey(key)             # <<<<<<<<<<<<<<
 *       for cb in KeyCallback.scheduled:
 *          if cb.key==self.key:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__key, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":719
 *       self.proc = proc
 *       self.key  = tokey(key)
 *       for cb in KeyCallback.scheduled:             # <<<<<<<<<<<<<<
 *          if cb.key==self.key:
 *             raise GipsyError("Keyword %s already scheduled" % self.key)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else {
      __pyx_t_2 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_cb);
    __pyx_v_cb = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":720
 *       self.key  = tokey(key)
 *       for cb in KeyCallback.scheduled:
 *          if cb.key==self.key:             # <<<<<<<<<<<<<<
 *             raise GipsyError("Keyword %s already scheduled" % self.key)
 *       if function is None:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {

      /* "gipsy.pyx":721
 *       for cb in KeyCallback.scheduled:
 *          if cb.key==self.key:
 *             raise GipsyError("Keyword %s already scheduled" % self.key)             # <<<<<<<<<<<<<<
 *       if function is None:
 *          self.function = usertext
 */
      __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_26), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_2));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":722
 *          if cb.key==self.key:
 *             raise GipsyError("Keyword %s already scheduled" % self.key)
 *       if function is None:             # <<<<<<<<<<<<<<
 *          self.function = usertext
 *       else:
 */
  __pyx_t_7 = (__pyx_v_function == Py_None);
  if (__pyx_t_7) {

    /* "gipsy.pyx":723
 *             raise GipsyError("Keyword %s already scheduled" % self.key)
 *       if function is None:
 *          self.function = usertext             # <<<<<<<<<<<<<<
 *       else:
 *          self.function = function
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__function, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9;
  }
  /*else*/ {

    /* "gipsy.pyx":725
 *          self.function = usertext
 *       else:
 *          self.function = function             # <<<<<<<<<<<<<<
 *       self.args = args
 *       for name in attr.keys():
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__function, __pyx_v_function) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L9:;

  /* "gipsy.pyx":726
 *       else:
 *          self.function = function
 *       self.args = args             # <<<<<<<<<<<<<<
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__args, __pyx_v_args) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":727
 *          self.function = function
 *       self.args = args
 *       for name in attr.keys():             # <<<<<<<<<<<<<<
 *          self.__dict__[name] = attr[name]
 *       self.kcb = KeyCallback(self._receive, self.key, schedule=False)
 */
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "keys"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_3 = PyDict_Keys(__pyx_v_attr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":728
 *       self.args = args
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]             # <<<<<<<<<<<<<<
 *       self.kcb = KeyCallback(self._receive, self.key, schedule=False)
 *       self.krj = KeyCallback(self._reject, self.key,
 */
    __pyx_t_3 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_attr), __pyx_v_name); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_1, __pyx_v_name, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __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;

  /* "gipsy.pyx":729
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 *       self.kcb = KeyCallback(self._receive, self.key, schedule=False)             # <<<<<<<<<<<<<<
 *       self.krj = KeyCallback(self._reject, self.key,
 *                              mask=KeyCallback.KEYREJECT, schedule=False)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___receive); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__schedule), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__kcb, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":730
 *          self.__dict__[name] = attr[name]
 *       self.kcb = KeyCallback(self._receive, self.key, schedule=False)
 *       self.krj = KeyCallback(self._reject, self.key,             # <<<<<<<<<<<<<<
 *                              mask=KeyCallback.KEYREJECT, schedule=False)
 *       self.tcb = TimeCallback(self._send, 0.0, schedule=False)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___reject); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_1 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));

  /* "gipsy.pyx":731
 *       self.kcb = KeyCallback(self._receive, self.key, schedule=False)
 *       self.krj = KeyCallback(self._reject, self.key,
 *                              mask=KeyCallback.KEYREJECT, schedule=False)             # <<<<<<<<<<<<<<
 *       self.tcb = TimeCallback(self._send, 0.0, schedule=False)
 *       self.active = active
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__KEYREJECT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__mask), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__schedule), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

  /* "gipsy.pyx":730
 *          self.__dict__[name] = attr[name]
 *       self.kcb = KeyCallback(self._receive, self.key, schedule=False)
 *       self.krj = KeyCallback(self._reject, self.key,             # <<<<<<<<<<<<<<
 *                              mask=KeyCallback.KEYREJECT, schedule=False)
 *       self.tcb = TimeCallback(self._send, 0.0, schedule=False)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__krj, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "gipsy.pyx":732
 *       self.krj = KeyCallback(self._reject, self.key,
 *                              mask=KeyCallback.KEYREJECT, schedule=False)
 *       self.tcb = TimeCallback(self._send, 0.0, schedule=False)             # <<<<<<<<<<<<<<
 *       self.active = active
 *       self.queue = []
 */
  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___send); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_6 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__schedule), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_8, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__tcb, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":733
 *                              mask=KeyCallback.KEYREJECT, schedule=False)
 *       self.tcb = TimeCallback(self._send, 0.0, schedule=False)
 *       self.active = active             # <<<<<<<<<<<<<<
 *       self.queue = []
 *       if schedule:
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_v_active) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":734
 *       self.tcb = TimeCallback(self._send, 0.0, schedule=False)
 *       self.active = active
 *       self.queue = []             # <<<<<<<<<<<<<<
 *       if schedule:
 *          self.schedule()
 */
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__queue, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

  /* "gipsy.pyx":735
 *       self.active = active
 *       self.queue = []
 *       if schedule:             # <<<<<<<<<<<<<<
 *          self.schedule()
 * 
 */
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_schedule); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {

    /* "gipsy.pyx":736
 *       self.queue = []
 *       if schedule:
 *          self.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def _receive(self, cb):
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__schedule); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L12;
  }
  __pyx_L12:;

  __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_8);
  __Pyx_AddTraceback("gipsy.InputCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_cb);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":738
 *          self.schedule()
 * 
 *    def _receive(self, cb):             # <<<<<<<<<<<<<<
 *       while True:
 *          value = self.function(cb.key, default=2, defval=None, **self.args)
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_1_receive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_1_receive = {__Pyx_NAMESTR("_receive"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_1_receive, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_1_receive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_cb = 0;
  PyObject *__pyx_v_value = 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_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__cb,0};
  __Pyx_RefNannySetupContext("_receive");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cb);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_receive", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_receive") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_cb = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_receive", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.InputCallback._receive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":739
 * 
 *    def _receive(self, cb):
 *       while True:             # <<<<<<<<<<<<<<
 *          value = self.function(cb.key, default=2, defval=None, **self.args)
 *          cancel(cb.key)
 */
  while (1) {
    if (!1) break;

    /* "gipsy.pyx":740
 *    def _receive(self, cb):
 *       while True:
 *          value = self.function(cb.key, default=2, defval=None, **self.args)             # <<<<<<<<<<<<<<
 *          cancel(cb.key)
 *          if value is not None:
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__default), __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__defval), Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__args); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_Update(((PyObject *)__pyx_t_2), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_v_value);
    __pyx_v_value = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":741
 *       while True:
 *          value = self.function(cb.key, default=2, defval=None, **self.args)
 *          cancel(cb.key)             # <<<<<<<<<<<<<<
 *          if value is not None:
 *             self.queue.append(value)
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__cancel); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__key); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "gipsy.pyx":742
 *          value = self.function(cb.key, default=2, defval=None, **self.args)
 *          cancel(cb.key)
 *          if value is not None:             # <<<<<<<<<<<<<<
 *             self.queue.append(value)
 *          else:
 */
    __pyx_t_6 = (__pyx_v_value != Py_None);
    if (__pyx_t_6) {

      /* "gipsy.pyx":743
 *          cancel(cb.key)
 *          if value is not None:
 *             self.queue.append(value)             # <<<<<<<<<<<<<<
 *          else:
 *             break
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L8;
    }
    /*else*/ {

      /* "gipsy.pyx":745
 *             self.queue.append(value)
 *          else:
 *             break             # <<<<<<<<<<<<<<
 *       if (not self.tcb.active) and self.active and self.queue:
 *          self.tcb.schedule()
 */
      goto __pyx_L7_break;
    }
    __pyx_L8:;
  }
  __pyx_L7_break:;

  /* "gipsy.pyx":746
 *          else:
 *             break
 *       if (not self.tcb.active) and self.active and self.queue:             # <<<<<<<<<<<<<<
 *          self.tcb.schedule()
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__active); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __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_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = (!__pyx_t_6);
  if (__pyx_t_7) {
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__active); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_6) {
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_9 = __pyx_t_8;
    } else {
      __pyx_t_9 = __pyx_t_6;
    }
    __pyx_t_6 = __pyx_t_9;
  } else {
    __pyx_t_6 = __pyx_t_7;
  }
  if (__pyx_t_6) {

    /* "gipsy.pyx":747
 *             break
 *       if (not self.tcb.active) and self.active and self.queue:
 *          self.tcb.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def _reject(self, cb):
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__schedule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L9;
  }
  __pyx_L9:;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.InputCallback._receive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":749
 *          self.tcb.schedule()
 * 
 *    def _reject(self, cb):             # <<<<<<<<<<<<<<
 *       self.queue = [(cb.key,
 *                      usertext('UCAMESSAGE=', default=-1),
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_2_reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_2_reject = {__Pyx_NAMESTR("_reject"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_2_reject, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_2_reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_cb = 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;
  int __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__cb,0};
  __Pyx_RefNannySetupContext("_reject");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cb);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_reject", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_reject") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_cb = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_reject", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.InputCallback._reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":750
 * 
 *    def _reject(self, cb):
 *       self.queue = [(cb.key,             # <<<<<<<<<<<<<<
 *                      usertext('UCAMESSAGE=', default=-1),
 *                      usertext('REJECTED=', default=-1))]
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "gipsy.pyx":751
 *    def _reject(self, cb):
 *       self.queue = [(cb.key,
 *                      usertext('UCAMESSAGE=', default=-1),             # <<<<<<<<<<<<<<
 *                      usertext('REJECTED=', default=-1))]
 *       wkey(cb.key)  # clear keyword's value(s)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__default), __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_k_tuple_28), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;

  /* "gipsy.pyx":752
 *       self.queue = [(cb.key,
 *                      usertext('UCAMESSAGE=', default=-1),
 *                      usertext('REJECTED=', default=-1))]             # <<<<<<<<<<<<<<
 *       wkey(cb.key)  # clear keyword's value(s)
 *       if (not self.tcb.active) and self.active and self.queue:
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__default), __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_k_tuple_30), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyList_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_2));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
  __pyx_t_2 = 0;

  /* "gipsy.pyx":750
 * 
 *    def _reject(self, cb):
 *       self.queue = [(cb.key,             # <<<<<<<<<<<<<<
 *                      usertext('UCAMESSAGE=', default=-1),
 *                      usertext('REJECTED=', default=-1))]
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__queue, ((PyObject *)__pyx_t_5)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":753
 *                      usertext('UCAMESSAGE=', default=-1),
 *                      usertext('REJECTED=', default=-1))]
 *       wkey(cb.key)  # clear keyword's value(s)             # <<<<<<<<<<<<<<
 *       if (not self.tcb.active) and self.active and self.queue:
 *          self.tcb.schedule()
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__wkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":754
 *                      usertext('REJECTED=', default=-1))]
 *       wkey(cb.key)  # clear keyword's value(s)
 *       if (not self.tcb.active) and self.active and self.queue:             # <<<<<<<<<<<<<<
 *          self.tcb.schedule()
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__active); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __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_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = (!__pyx_t_6);
  if (__pyx_t_7) {
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__active); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_6) {
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_9 = __pyx_t_8;
    } else {
      __pyx_t_9 = __pyx_t_6;
    }
    __pyx_t_6 = __pyx_t_9;
  } else {
    __pyx_t_6 = __pyx_t_7;
  }
  if (__pyx_t_6) {

    /* "gipsy.pyx":755
 *       wkey(cb.key)  # clear keyword's value(s)
 *       if (not self.tcb.active) and self.active and self.queue:
 *          self.tcb.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def _send(self, cb):
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__schedule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.InputCallback._reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":757
 *          self.tcb.schedule()
 * 
 *    def _send(self, cb):             # <<<<<<<<<<<<<<
 *       self.value = self.queue.pop(0)
 *       self.proc(self)
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_3_send(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_3_send = {__Pyx_NAMESTR("_send"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_3_send, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_3_send(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_cb = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__cb,0};
  __Pyx_RefNannySetupContext("_send");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cb);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_send", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_send") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_cb = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.InputCallback._send", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":758
 * 
 *    def _send(self, cb):
 *       self.value = self.queue.pop(0)             # <<<<<<<<<<<<<<
 *       self.proc(self)
 *       if not self.queue:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__pop); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_31), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__value, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":759
 *    def _send(self, cb):
 *       self.value = self.queue.pop(0)
 *       self.proc(self)             # <<<<<<<<<<<<<<
 *       if not self.queue:
 *          self.tcb.deschedule()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__proc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":760
 *       self.value = self.queue.pop(0)
 *       self.proc(self)
 *       if not self.queue:             # <<<<<<<<<<<<<<
 *          self.tcb.deschedule()
 * 
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = (!__pyx_t_4);
  if (__pyx_t_5) {

    /* "gipsy.pyx":761
 *       self.proc(self)
 *       if not self.queue:
 *          self.tcb.deschedule()             # <<<<<<<<<<<<<<
 * 
 *    def suspend(self):
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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("gipsy.InputCallback._send", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":763
 *          self.tcb.deschedule()
 * 
 *    def suspend(self):             # <<<<<<<<<<<<<<
 *       if self.active:
 *          self.active = False
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_4suspend(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_4suspend = {__Pyx_NAMESTR("suspend"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_4suspend, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_4suspend(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;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("suspend");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":764
 * 
 *    def suspend(self):
 *       if self.active:             # <<<<<<<<<<<<<<
 *          self.active = False
 *          if self.queue and self.tcb.active:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__active); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":765
 *    def suspend(self):
 *       if self.active:
 *          self.active = False             # <<<<<<<<<<<<<<
 *          if self.queue and self.tcb.active:
 *             self.tcb.deschedule()
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":766
 *       if self.active:
 *          self.active = False
 *          if self.queue and self.tcb.active:             # <<<<<<<<<<<<<<
 *             self.tcb.deschedule()
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__active); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_5 = __pyx_t_4;
    } else {
      __pyx_t_5 = __pyx_t_2;
    }
    if (__pyx_t_5) {

      /* "gipsy.pyx":767
 *          self.active = False
 *          if self.queue and self.tcb.active:
 *             self.tcb.deschedule()             # <<<<<<<<<<<<<<
 * 
 *    def resume(self):
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L6;
    }
    __pyx_L6:;
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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("gipsy.InputCallback.suspend", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":769
 *             self.tcb.deschedule()
 * 
 *    def resume(self):             # <<<<<<<<<<<<<<
 *       if not self.active:
 *          self.active = True
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_5resume(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_5resume = {__Pyx_NAMESTR("resume"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_5resume, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_5resume(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("resume");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":770
 * 
 *    def resume(self):
 *       if not self.active:             # <<<<<<<<<<<<<<
 *          self.active = True
 *          if self.queue:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__active); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":771
 *    def resume(self):
 *       if not self.active:
 *          self.active = True             # <<<<<<<<<<<<<<
 *          if self.queue:
 *             self.tcb.schedule()
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":772
 *       if not self.active:
 *          self.active = True
 *          if self.queue:             # <<<<<<<<<<<<<<
 *             self.tcb.schedule()
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__queue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {

      /* "gipsy.pyx":773
 *          self.active = True
 *          if self.queue:
 *             self.tcb.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def schedule(self):
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tcb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__schedule); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L6;
    }
    __pyx_L6:;
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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_AddTraceback("gipsy.InputCallback.resume", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":775
 *             self.tcb.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       self.scheduled.append(self)
 *       self.kcb.schedule()
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_6schedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_6schedule = {__Pyx_NAMESTR("schedule"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_6schedule, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_6schedule(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":776
 * 
 *    def schedule(self):
 *       self.scheduled.append(self)             # <<<<<<<<<<<<<<
 *       self.kcb.schedule()
 *       self.krj.schedule()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":777
 *    def schedule(self):
 *       self.scheduled.append(self)
 *       self.kcb.schedule()             # <<<<<<<<<<<<<<
 *       self.krj.schedule()
 *       self._receive(self.kcb)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__kcb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__schedule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":778
 *       self.scheduled.append(self)
 *       self.kcb.schedule()
 *       self.krj.schedule()             # <<<<<<<<<<<<<<
 *       self._receive(self.kcb)
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__krj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__schedule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":779
 *       self.kcb.schedule()
 *       self.krj.schedule()
 *       self._receive(self.kcb)             # <<<<<<<<<<<<<<
 * 
 *    def deschedule(self):
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___receive); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__kcb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __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("gipsy.InputCallback.schedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":781
 *       self._receive(self.kcb)
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       self.queue = []
 *       self.suspend()
 */

static PyObject *__pyx_pf_5gipsy_13InputCallback_7deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13InputCallback_7deschedule = {__Pyx_NAMESTR("deschedule"), (PyCFunction)__pyx_pf_5gipsy_13InputCallback_7deschedule, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13InputCallback_7deschedule(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deschedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":782
 * 
 *    def deschedule(self):
 *       self.queue = []             # <<<<<<<<<<<<<<
 *       self.suspend()
 *       self.kcb.deschedule()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__queue, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":783
 *    def deschedule(self):
 *       self.queue = []
 *       self.suspend()             # <<<<<<<<<<<<<<
 *       self.kcb.deschedule()
 *       self.krj.deschedule()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__suspend); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":784
 *       self.queue = []
 *       self.suspend()
 *       self.kcb.deschedule()             # <<<<<<<<<<<<<<
 *       self.krj.deschedule()
 *       self.scheduled.remove(self)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__kcb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":785
 *       self.suspend()
 *       self.kcb.deschedule()
 *       self.krj.deschedule()             # <<<<<<<<<<<<<<
 *       self.scheduled.remove(self)
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__krj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":786
 *       self.kcb.deschedule()
 *       self.krj.deschedule()
 *       self.scheduled.remove(self)             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.InputCallback.deschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":803
 *    scheduled = []
 * 
 *    def __new__(cls, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 *       return super(TimeCallback, TimeCallback.cls).__new__(TimeCallback.cls)
 * 
 */

static PyObject *__pyx_pf_5gipsy_12TimeCallback___new__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12TimeCallback___new__ = {__Pyx_NAMESTR("__new__"), (PyCFunction)__pyx_pf_5gipsy_12TimeCallback___new__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12TimeCallback___new__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_interval = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__cls,&__pyx_n_s__proc,&__pyx_n_s__interval,&__pyx_n_s__schedule,0};
  __Pyx_RefNannySetupContext("__new__");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = __pyx_k_32;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cls);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__new__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__interval);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__new__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "__new__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_cls = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_interval = values[2];
    __pyx_v_schedule = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__new__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy.TimeCallback.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":804
 * 
 *    def __new__(cls, proc, interval, schedule=True, **attr):
 *       return super(TimeCallback, TimeCallback.cls).__new__(TimeCallback.cls)             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self, proc, interval, schedule=True, **attr):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__cls); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s____new__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__cls); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __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("gipsy.TimeCallback.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":806
 *       return super(TimeCallback, TimeCallback.cls).__new__(TimeCallback.cls)
 * 
 *    def __init__(self, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 * 
 * # proc     -  function to be called each time when interval has expired.
 */

static PyObject *__pyx_pf_5gipsy_12TimeCallback_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12TimeCallback_1__init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_12TimeCallback_1__init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12TimeCallback_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_interval = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_name = 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 *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__interval,&__pyx_n_s__schedule,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = __pyx_k_33;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__interval);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_interval = values[2];
    __pyx_v_schedule = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy.TimeCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":813
 * # attr     -  keyword arguments defining extra attributes
 * 
 *       self.proc     = proc             # <<<<<<<<<<<<<<
 *       self.interval = interval
 *       for name in attr.keys():
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__proc, __pyx_v_proc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":814
 * 
 *       self.proc     = proc
 *       self.interval = interval             # <<<<<<<<<<<<<<
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__interval, __pyx_v_interval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":815
 *       self.proc     = proc
 *       self.interval = interval
 *       for name in attr.keys():             # <<<<<<<<<<<<<<
 *          self.__dict__[name] = attr[name]
 *       self.__id     = 0
 */
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "keys"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_1 = PyDict_Keys(__pyx_v_attr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (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_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":816
 *       self.interval = interval
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]             # <<<<<<<<<<<<<<
 *       self.__id     = 0
 *       self.active   = False
 */
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_attr), __pyx_v_name); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":817
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 *       self.__id     = 0             # <<<<<<<<<<<<<<
 *       self.active   = False
 *       if schedule: self.schedule()
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":818
 *          self.__dict__[name] = attr[name]
 *       self.__id     = 0
 *       self.active   = False             # <<<<<<<<<<<<<<
 *       if schedule: self.schedule()
 * 
 */
  __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":819
 *       self.__id     = 0
 *       self.active   = False
 *       if schedule: self.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def schedule(self):
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_schedule); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_6) {
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__schedule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L8;
  }
  __pyx_L8:;

  __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_5);
  __Pyx_AddTraceback("gipsy.TimeCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":821
 *       if schedule: self.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       "activate the callback object"
 *       if self.__id:
 */

static PyObject *__pyx_pf_5gipsy_12TimeCallback_2schedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_12TimeCallback_2schedule[] = "activate the callback object";
static PyMethodDef __pyx_mdef_5gipsy_12TimeCallback_2schedule = {__Pyx_NAMESTR("schedule"), (PyCFunction)__pyx_pf_5gipsy_12TimeCallback_2schedule, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_12TimeCallback_2schedule)};
static PyObject *__pyx_pf_5gipsy_12TimeCallback_2schedule(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_milliseconds = 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;
  long __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("schedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":823
 *    def schedule(self):
 *       "activate the callback object"
 *       if self.__id:             # <<<<<<<<<<<<<<
 *          raise GipsyError("Callback object already active")
 *       milliseconds = max(1,int(round(self.interval*1000.0)))
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":824
 *       "activate the callback object"
 *       if self.__id:
 *          raise GipsyError("Callback object already active")             # <<<<<<<<<<<<<<
 *       milliseconds = max(1,int(round(self.interval*1000.0)))
 *       self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":825
 *       if self.__id:
 *          raise GipsyError("Callback object already active")
 *       milliseconds = max(1,int(round(self.interval*1000.0)))             # <<<<<<<<<<<<<<
 *       self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)
 *       self.active = True
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__interval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyFloat_FromDouble(1000.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __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 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_5 = 1;
  __pyx_t_3 = PyInt_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_1 = __pyx_t_4;
  } else {
    __pyx_t_6 = PyInt_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_milliseconds = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":826
 *          raise GipsyError("Callback object already active")
 *       milliseconds = max(1,int(round(self.interval*1000.0)))
 *       self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)             # <<<<<<<<<<<<<<
 *       self.active = True
 *       self.scheduled.append(self)
 */
  __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_v_milliseconds); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = PyInt_FromLong(((long)ScheduleTimer(__pyx_f_5gipsy_timeproc, __pyx_t_7, ((void *)__pyx_v_self)))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":827
 *       milliseconds = max(1,int(round(self.interval*1000.0)))
 *       self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)
 *       self.active = True             # <<<<<<<<<<<<<<
 *       self.scheduled.append(self)
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":828
 *       self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)
 *       self.active = True
 *       self.scheduled.append(self)             # <<<<<<<<<<<<<<
 * 
 *    def deschedule(self):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_self); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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("gipsy.TimeCallback.schedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_milliseconds);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":830
 *       self.scheduled.append(self)
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       "deactivate the callback object"
 *       cdef ident id
 */

static PyObject *__pyx_pf_5gipsy_12TimeCallback_3deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_12TimeCallback_3deschedule[] = "deactivate the callback object";
static PyMethodDef __pyx_mdef_5gipsy_12TimeCallback_3deschedule = {__Pyx_NAMESTR("deschedule"), (PyCFunction)__pyx_pf_5gipsy_12TimeCallback_3deschedule, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_12TimeCallback_3deschedule)};
static PyObject *__pyx_pf_5gipsy_12TimeCallback_3deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  ident __pyx_v_id;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deschedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":833
 *       "deactivate the callback object"
 *       cdef ident id
 *       if not self.__id:             # <<<<<<<<<<<<<<
 *          raise GipsyError("Callback object inactive")
 *       id = toident(self.__id)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":834
 *       cdef ident id
 *       if not self.__id:
 *          raise GipsyError("Callback object inactive")             # <<<<<<<<<<<<<<
 *       id = toident(self.__id)
 *       Deschedule(&id)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_35), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":835
 *       if not self.__id:
 *          raise GipsyError("Callback object inactive")
 *       id = toident(self.__id)             # <<<<<<<<<<<<<<
 *       Deschedule(&id)
 *       self.__id = 0
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_id = __pyx_f_5gipsy_toident(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":836
 *          raise GipsyError("Callback object inactive")
 *       id = toident(self.__id)
 *       Deschedule(&id)             # <<<<<<<<<<<<<<
 *       self.__id = 0
 *       self.active = False
 */
  Deschedule((&__pyx_v_id));

  /* "gipsy.pyx":837
 *       id = toident(self.__id)
 *       Deschedule(&id)
 *       self.__id = 0             # <<<<<<<<<<<<<<
 *       self.active = False
 *       self.scheduled.remove(self)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":838
 *       Deschedule(&id)
 *       self.__id = 0
 *       self.active = False             # <<<<<<<<<<<<<<
 *       self.scheduled.remove(self)
 * TimeCallback.cls = TimeCallback
 */
  __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":839
 *       self.__id = 0
 *       self.active = False
 *       self.scheduled.remove(self)             # <<<<<<<<<<<<<<
 * TimeCallback.cls = TimeCallback
 * 
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__remove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __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("gipsy.TimeCallback.deschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":845
 * #
 * class TimeCallback_NotImpl(TimeCallback):
 *    def __init__(self, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 *       raise GipsyError("TimeCallback not implemented for this event loop")
 * 
 */

static PyObject *__pyx_pf_5gipsy_20TimeCallback_NotImpl___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_20TimeCallback_NotImpl___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_20TimeCallback_NotImpl___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_20TimeCallback_NotImpl___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_interval = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__interval,&__pyx_n_s__schedule,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = __pyx_k_36;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__interval);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_interval = values[2];
    __pyx_v_schedule = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy.TimeCallback_NotImpl.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":846
 * class TimeCallback_NotImpl(TimeCallback):
 *    def __init__(self, proc, interval, schedule=True, **attr):
 *       raise GipsyError("TimeCallback not implemented for this event loop")             # <<<<<<<<<<<<<<
 * 
 * # Qt4Agg:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_38), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __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("gipsy.TimeCallback_NotImpl.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":853
 *    class TimeCallback_QT4(TimeCallback):
 * 
 *       def __init__(self, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 *          self.proc     = proc
 *          self.interval = interval
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_QT4___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_QT4___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_interval = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_name = 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 *);
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__interval,&__pyx_n_s__schedule,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = __pyx_k_39;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__interval);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_interval = values[2];
    __pyx_v_schedule = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy.TimeCallback_QT4.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":854
 * 
 *       def __init__(self, proc, interval, schedule=True, **attr):
 *          self.proc     = proc             # <<<<<<<<<<<<<<
 *          self.interval = interval
 *          for name in attr.keys():
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__proc, __pyx_v_proc) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":855
 *       def __init__(self, proc, interval, schedule=True, **attr):
 *          self.proc     = proc
 *          self.interval = interval             # <<<<<<<<<<<<<<
 *          for name in attr.keys():
 *             self.__dict__[name] = attr[name]
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__interval, __pyx_v_interval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":856
 *          self.proc     = proc
 *          self.interval = interval
 *          for name in attr.keys():             # <<<<<<<<<<<<<<
 *             self.__dict__[name] = attr[name]
 *          self.active   = False
 */
  if (unlikely(((PyObject *)__pyx_v_attr) == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "keys"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_1 = PyDict_Keys(__pyx_v_attr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (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_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":857
 *          self.interval = interval
 *          for name in attr.keys():
 *             self.__dict__[name] = attr[name]             # <<<<<<<<<<<<<<
 *          self.active   = False
 *          self.timer = QtCore.QTimer()
 */
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_attr), __pyx_v_name); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":858
 *          for name in attr.keys():
 *             self.__dict__[name] = attr[name]
 *          self.active   = False             # <<<<<<<<<<<<<<
 *          self.timer = QtCore.QTimer()
 *          QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),
 */
  __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":859
 *             self.__dict__[name] = attr[name]
 *          self.active   = False
 *          self.timer = QtCore.QTimer()             # <<<<<<<<<<<<<<
 *          QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),
 *                                 self.reached)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__QTimer); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__timer, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":860
 *          self.active   = False
 *          self.timer = QtCore.QTimer()
 *          QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),             # <<<<<<<<<<<<<<
 *                                 self.reached)
 *          if schedule: self.schedule()
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__QObject); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__connect); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__timer); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__SIGNAL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_41), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":861
 *          self.timer = QtCore.QTimer()
 *          QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),
 *                                 self.reached)             # <<<<<<<<<<<<<<
 *          if schedule: self.schedule()
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__reached); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":862
 *          QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),
 *                                 self.reached)
 *          if schedule: self.schedule()             # <<<<<<<<<<<<<<
 * 
 *       def schedule(self):
 */
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_schedule); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_8) {
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__schedule); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L8;
  }
  __pyx_L8:;

  __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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("gipsy.TimeCallback_QT4.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":864
 *          if schedule: self.schedule()
 * 
 *       def schedule(self):             # <<<<<<<<<<<<<<
 *          if self.active:
 *             return
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_1schedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_QT4_1schedule = {__Pyx_NAMESTR("schedule"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_QT4_1schedule, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_1schedule(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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":865
 * 
 *       def schedule(self):
 *          if self.active:             # <<<<<<<<<<<<<<
 *             return
 *          self.set_interval(self.interval)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__active); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":866
 *       def schedule(self):
 *          if self.active:
 *             return             # <<<<<<<<<<<<<<
 *          self.set_interval(self.interval)
 *          self.timer.start()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":867
 *          if self.active:
 *             return
 *          self.set_interval(self.interval)             # <<<<<<<<<<<<<<
 *          self.timer.start()
 *          self.active = True
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set_interval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__interval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":868
 *             return
 *          self.set_interval(self.interval)
 *          self.timer.start()             # <<<<<<<<<<<<<<
 *          self.active = True
 *          self.scheduled.append(self)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__timer); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":869
 *          self.set_interval(self.interval)
 *          self.timer.start()
 *          self.active = True             # <<<<<<<<<<<<<<
 *          self.scheduled.append(self)
 * 
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":870
 *          self.timer.start()
 *          self.active = True
 *          self.scheduled.append(self)             # <<<<<<<<<<<<<<
 * 
 *       def deschedule(self):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_self); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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("gipsy.TimeCallback_QT4.schedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":872
 *          self.scheduled.append(self)
 * 
 *       def deschedule(self):             # <<<<<<<<<<<<<<
 *          if not self.active:
 *             return
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_2deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_QT4_2deschedule = {__Pyx_NAMESTR("deschedule"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_QT4_2deschedule, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_2deschedule(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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deschedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":873
 * 
 *       def deschedule(self):
 *          if not self.active:             # <<<<<<<<<<<<<<
 *             return
 *          self.timer.stop()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__active); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":874
 *       def deschedule(self):
 *          if not self.active:
 *             return             # <<<<<<<<<<<<<<
 *          self.timer.stop()
 *          self.active = False
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":875
 *          if not self.active:
 *             return
 *          self.timer.stop()             # <<<<<<<<<<<<<<
 *          self.active = False
 *          self.scheduled.remove(self)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__timer); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__stop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":876
 *             return
 *          self.timer.stop()
 *          self.active = False             # <<<<<<<<<<<<<<
 *          self.scheduled.remove(self)
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":877
 *          self.timer.stop()
 *          self.active = False
 *          self.scheduled.remove(self)             # <<<<<<<<<<<<<<
 * 
 *       def set_interval(self, interval):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __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("gipsy.TimeCallback_QT4.deschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":879
 *          self.scheduled.remove(self)
 * 
 *       def set_interval(self, interval):             # <<<<<<<<<<<<<<
 *          self.interval = interval
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_3set_interval(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_QT4_3set_interval = {__Pyx_NAMESTR("set_interval"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_QT4_3set_interval, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_3set_interval(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_interval = 0;
  PyObject *__pyx_v_milliseconds = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__interval,0};
  __Pyx_RefNannySetupContext("set_interval");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__interval);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_interval", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_interval") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_interval = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_interval", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.TimeCallback_QT4.set_interval", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":880
 * 
 *       def set_interval(self, interval):
 *          self.interval = interval             # <<<<<<<<<<<<<<
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 *          self.timer.setInterval(milliseconds)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__interval, __pyx_v_interval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":881
 *       def set_interval(self, interval):
 *          self.interval = interval
 *          milliseconds = max(1,int(round(self.interval*1000.0)))             # <<<<<<<<<<<<<<
 *          self.timer.setInterval(milliseconds)
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__interval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(1000.0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __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_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_4 = 1;
  __pyx_t_1 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_2 = __pyx_t_3;
  } else {
    __pyx_t_5 = PyInt_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __pyx_t_5;
    __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_milliseconds = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":882
 *          self.interval = interval
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 *          self.timer.setInterval(milliseconds)             # <<<<<<<<<<<<<<
 * 
 *       def reached(self):
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__timer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__setInterval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_milliseconds);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_milliseconds);
  __Pyx_GIVEREF(__pyx_v_milliseconds);
  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __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("gipsy.TimeCallback_QT4.set_interval", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_milliseconds);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":884
 *          self.timer.setInterval(milliseconds)
 * 
 *       def reached(self):             # <<<<<<<<<<<<<<
 *          self.proc(self)
 * 
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_4reached(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_QT4_4reached = {__Pyx_NAMESTR("reached"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_QT4_4reached, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_QT4_4reached(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reached");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":885
 * 
 *       def reached(self):
 *          self.proc(self)             # <<<<<<<<<<<<<<
 * 
 * # GTK:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__proc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.TimeCallback_QT4.reached", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":892
 *    class TimeCallback_GTK(TimeCallback):
 * 
 *       def schedule(self):             # <<<<<<<<<<<<<<
 *          if self.id:
 *             return
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_GTK_schedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_GTK_schedule = {__Pyx_NAMESTR("schedule"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_GTK_schedule, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_GTK_schedule(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_milliseconds = 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;
  long __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":893
 * 
 *       def schedule(self):
 *          if self.id:             # <<<<<<<<<<<<<<
 *             return
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":894
 *       def schedule(self):
 *          if self.id:
 *             return             # <<<<<<<<<<<<<<
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 *          self.id    = gobject.timeout_add(milliseconds, self.reached)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":895
 *          if self.id:
 *             return
 *          milliseconds = max(1,int(round(self.interval*1000.0)))             # <<<<<<<<<<<<<<
 *          self.id    = gobject.timeout_add(milliseconds, self.reached)
 *          self.active = True
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__interval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(1000.0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  __pyx_t_1 = PyInt_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_3 = __pyx_t_4;
  } else {
    __pyx_t_6 = PyInt_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_v_milliseconds = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":896
 *             return
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 *          self.id    = gobject.timeout_add(milliseconds, self.reached)             # <<<<<<<<<<<<<<
 *          self.active = True
 *          self.scheduled.append(self)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__gobject); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__timeout_add); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__reached); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_v_milliseconds);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_milliseconds);
  __Pyx_GIVEREF(__pyx_v_milliseconds);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__id, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":897
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 *          self.id    = gobject.timeout_add(milliseconds, self.reached)
 *          self.active = True             # <<<<<<<<<<<<<<
 *          self.scheduled.append(self)
 * 
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":898
 *          self.id    = gobject.timeout_add(milliseconds, self.reached)
 *          self.active = True
 *          self.scheduled.append(self)             # <<<<<<<<<<<<<<
 * 
 *       def deschedule(self):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_self); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.TimeCallback_GTK.schedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_milliseconds);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":900
 *          self.scheduled.append(self)
 * 
 *       def deschedule(self):             # <<<<<<<<<<<<<<
 *          if not self.id:
 *             return
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_GTK_1deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_GTK_1deschedule = {__Pyx_NAMESTR("deschedule"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_GTK_1deschedule, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_GTK_1deschedule(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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deschedule");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":901
 * 
 *       def deschedule(self):
 *          if not self.id:             # <<<<<<<<<<<<<<
 *             return
 *          gobject.source_remove(self.id)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":902
 *       def deschedule(self):
 *          if not self.id:
 *             return             # <<<<<<<<<<<<<<
 *          gobject.source_remove(self.id)
 *          self.id = 0
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":903
 *          if not self.id:
 *             return
 *          gobject.source_remove(self.id)             # <<<<<<<<<<<<<<
 *          self.id = 0
 *          self.active = False
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gobject); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__source_remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":904
 *             return
 *          gobject.source_remove(self.id)
 *          self.id = 0             # <<<<<<<<<<<<<<
 *          self.active = False
 *          self.scheduled.remove(self)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":905
 *          gobject.source_remove(self.id)
 *          self.id = 0
 *          self.active = False             # <<<<<<<<<<<<<<
 *          self.scheduled.remove(self)
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":906
 *          self.id = 0
 *          self.active = False
 *          self.scheduled.remove(self)             # <<<<<<<<<<<<<<
 * 
 *       def reached(self):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__scheduled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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("gipsy.TimeCallback_GTK.deschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":908
 *          self.scheduled.remove(self)
 * 
 *       def reached(self):             # <<<<<<<<<<<<<<
 *          self.proc(self)
 *          return True
 */

static PyObject *__pyx_pf_5gipsy_16TimeCallback_GTK_2reached(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16TimeCallback_GTK_2reached = {__Pyx_NAMESTR("reached"), (PyCFunction)__pyx_pf_5gipsy_16TimeCallback_GTK_2reached, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16TimeCallback_GTK_2reached(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reached");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":909
 * 
 *       def reached(self):
 *          self.proc(self)             # <<<<<<<<<<<<<<
 *          return True
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__proc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":910
 *       def reached(self):
 *          self.proc(self)
 *          return True             # <<<<<<<<<<<<<<
 * 
 * # --------------------------------------------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.TimeCallback_GTK.reached", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":915
 * #                           TimeCallback helper function
 * # --------------------------------------------------------------------------
 * cdef void timeproc(ident id, void *arg) with gil:             # <<<<<<<<<<<<<<
 *    cbobj = <object>arg
 *    cbobj.proc(cbobj)
 */

static void __pyx_f_5gipsy_timeproc(ident __pyx_v_id, void *__pyx_v_arg) {
  PyObject *__pyx_v_cbobj = 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;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("timeproc");

  /* "gipsy.pyx":916
 * # --------------------------------------------------------------------------
 * cdef void timeproc(ident id, void *arg) with gil:
 *    cbobj = <object>arg             # <<<<<<<<<<<<<<
 *    cbobj.proc(cbobj)
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_arg));
  __pyx_v_cbobj = ((PyObject *)__pyx_v_arg);

  /* "gipsy.pyx":917
 * cdef void timeproc(ident id, void *arg) with gil:
 *    cbobj = <object>arg
 *    cbobj.proc(cbobj)             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_cbobj, __pyx_n_s__proc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_cbobj);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_cbobj);
  __Pyx_GIVEREF(__pyx_v_cbobj);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("gipsy.timeproc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cbobj);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "gipsy.pyx":925
 * stdkey = "INPUT="
 * 
 * def init():             # <<<<<<<<<<<<<<
 *    "Initialize task's communication with Hermes. See init.dc2"
 *    global native_f4, native_f8, native_i4, native_i8
 */

static PyObject *__pyx_pf_5gipsy_7init(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_5gipsy_7init[] = "Initialize task's communication with Hermes. See init.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7init = {__Pyx_NAMESTR("init"), (PyCFunction)__pyx_pf_5gipsy_7init, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7init)};
static PyObject *__pyx_pf_5gipsy_7init(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  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;
  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("init");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":929
 *    global native_f4, native_f8, native_i4, native_i8
 *    global numbertypes
 *    gipsytask_c()             # <<<<<<<<<<<<<<
 *    init_c()
 *    if sys.byteorder=='little':
 */
  gipsytask_c();

  /* "gipsy.pyx":930
 *    global numbertypes
 *    gipsytask_c()
 *    init_c()             # <<<<<<<<<<<<<<
 *    if sys.byteorder=='little':
 *       native_f4  = '<f4'
 */
  init_c();

  /* "gipsy.pyx":931
 *    gipsytask_c()
 *    init_c()
 *    if sys.byteorder=='little':             # <<<<<<<<<<<<<<
 *       native_f4  = '<f4'
 *       native_f8  = '<f8'
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__byteorder); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__little), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":932
 *    init_c()
 *    if sys.byteorder=='little':
 *       native_f4  = '<f4'             # <<<<<<<<<<<<<<
 *       native_f8  = '<f8'
 *       native_i4  = '<i4'
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_f4, ((PyObject *)__pyx_kp_s_42)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":933
 *    if sys.byteorder=='little':
 *       native_f4  = '<f4'
 *       native_f8  = '<f8'             # <<<<<<<<<<<<<<
 *       native_i4  = '<i4'
 *       native_i8  = '<i8'
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_f8, ((PyObject *)__pyx_kp_s_43)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":934
 *       native_f4  = '<f4'
 *       native_f8  = '<f8'
 *       native_i4  = '<i4'             # <<<<<<<<<<<<<<
 *       native_i8  = '<i8'
 *    else:
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_i4, ((PyObject *)__pyx_kp_s_44)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":935
 *       native_f8  = '<f8'
 *       native_i4  = '<i4'
 *       native_i8  = '<i8'             # <<<<<<<<<<<<<<
 *    else:
 *       native_f4  = '>f4'
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_i8, ((PyObject *)__pyx_kp_s_45)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  /*else*/ {

    /* "gipsy.pyx":937
 *       native_i8  = '<i8'
 *    else:
 *       native_f4  = '>f4'             # <<<<<<<<<<<<<<
 *       native_f8  = '>f8'
 *       native_i4  = '>i4'
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_f4, ((PyObject *)__pyx_kp_s_46)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":938
 *    else:
 *       native_f4  = '>f4'
 *       native_f8  = '>f8'             # <<<<<<<<<<<<<<
 *       native_i4  = '>i4'
 *       native_i8  = '>i8'
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_f8, ((PyObject *)__pyx_kp_s_47)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":939
 *       native_f4  = '>f4'
 *       native_f8  = '>f8'
 *       native_i4  = '>i4'             # <<<<<<<<<<<<<<
 *       native_i8  = '>i8'
 *    numbertypes = [types.FloatType,
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_i4, ((PyObject *)__pyx_kp_s_48)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 939; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":940
 *       native_f8  = '>f8'
 *       native_i4  = '>i4'
 *       native_i8  = '>i8'             # <<<<<<<<<<<<<<
 *    numbertypes = [types.FloatType,
 *                   types.IntType,
 */
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__native_i8, ((PyObject *)__pyx_kp_s_49)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L5:;

  /* "gipsy.pyx":941
 *       native_i4  = '>i4'
 *       native_i8  = '>i8'
 *    numbertypes = [types.FloatType,             # <<<<<<<<<<<<<<
 *                   types.IntType,
 *                   numpy.float32,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__FloatType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":942
 *       native_i8  = '>i8'
 *    numbertypes = [types.FloatType,
 *                   types.IntType,             # <<<<<<<<<<<<<<
 *                   numpy.float32,
 *                   numpy.float64,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__IntType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":943
 *    numbertypes = [types.FloatType,
 *                   types.IntType,
 *                   numpy.float32,             # <<<<<<<<<<<<<<
 *                   numpy.float64,
 *                   numpy.int32,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__float32); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":944
 *                   types.IntType,
 *                   numpy.float32,
 *                   numpy.float64,             # <<<<<<<<<<<<<<
 *                   numpy.int32,
 *                   numpy.int64]
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__float64); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":945
 *                   numpy.float32,
 *                   numpy.float64,
 *                   numpy.int32,             # <<<<<<<<<<<<<<
 *                   numpy.int64]
 *    sys.excepthook = uncaught
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__int32); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":946
 *                   numpy.float64,
 *                   numpy.int32,
 *                   numpy.int64]             # <<<<<<<<<<<<<<
 *    sys.excepthook = uncaught
 * 
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__int64); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyList_New(6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__numbertypes, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;

  /* "gipsy.pyx":947
 *                   numpy.int32,
 *                   numpy.int64]
 *    sys.excepthook = uncaught             # <<<<<<<<<<<<<<
 * 
 * def finis():
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__uncaught); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__sys); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (PyObject_SetAttr(__pyx_t_8, __pyx_n_s__excepthook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  __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_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("gipsy.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":949
 *    sys.excepthook = uncaught
 * 
 * def finis():             # <<<<<<<<<<<<<<
 *    "Terminate task. See finis.dc2"
 *    finis_c()
 */

static PyObject *__pyx_pf_5gipsy_8finis(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_5gipsy_8finis[] = "Terminate task. See finis.dc2";
static PyMethodDef __pyx_mdef_5gipsy_8finis = {__Pyx_NAMESTR("finis"), (PyCFunction)__pyx_pf_5gipsy_8finis, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_5gipsy_8finis)};
static PyObject *__pyx_pf_5gipsy_8finis(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("finis");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":951
 * def finis():
 *    "Terminate task. See finis.dc2"
 *    finis_c()             # <<<<<<<<<<<<<<
 * 
 * def xeq(cmd, keyword=None):
 */
  finis_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":953
 *    finis_c()
 * 
 * def xeq(cmd, keyword=None):             # <<<<<<<<<<<<<<
 * 
 * # Start another task. If keyword is not specified,
 */

static PyObject *__pyx_pf_5gipsy_9xeq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9xeq = {__Pyx_NAMESTR("xeq"), (PyCFunction)__pyx_pf_5gipsy_9xeq, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9xeq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cmd = 0;
  PyObject *__pyx_v_keyword = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_err;
  PyObject *__pyx_v_msgs = 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;
  long __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__cmd,&__pyx_n_s__keyword,0};
  __Pyx_RefNannySetupContext("xeq");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cmd);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "xeq") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_cmd = values[0];
    __pyx_v_keyword = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("xeq", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.xeq", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":962
 * 
 *    cdef fint err_c
 *    if keyword:             # <<<<<<<<<<<<<<
 *       err = xeqcont_c(tofchar(tokey(keyword)), tofchar(cmd))
 *       if err<0:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_keyword); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":963
 *    cdef fint err_c
 *    if keyword:
 *       err = xeqcont_c(tofchar(tokey(keyword)), tofchar(cmd))             # <<<<<<<<<<<<<<
 *       if err<0:
 *          raise XeqError("Cannot execute")
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_v_keyword);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_keyword);
    __Pyx_GIVEREF(__pyx_v_keyword);
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __pyx_v_err = xeqcont_c(__pyx_f_5gipsy_tofchar(__pyx_t_4), __pyx_f_5gipsy_tofchar(__pyx_v_cmd));
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "gipsy.pyx":964
 *    if keyword:
 *       err = xeqcont_c(tofchar(tokey(keyword)), tofchar(cmd))
 *       if err<0:             # <<<<<<<<<<<<<<
 *          raise XeqError("Cannot execute")
 *    else:
 */
    __pyx_t_1 = (__pyx_v_err < 0);
    if (__pyx_t_1) {

      /* "gipsy.pyx":965
 *       err = xeqcont_c(tofchar(tokey(keyword)), tofchar(cmd))
 *       if err<0:
 *          raise XeqError("Cannot execute")             # <<<<<<<<<<<<<<
 *    else:
 *       xeq_c(tofchar(cmd), &err_c)
 */
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__XeqError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_51), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L7;
    }
    __pyx_L7:;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":967
 *          raise XeqError("Cannot execute")
 *    else:
 *       xeq_c(tofchar(cmd), &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          msgs = ["Cannot execute", "Exited prematurely", "Fatal error", "Crashed", "User abort"]
 */
    xeq_c(__pyx_f_5gipsy_tofchar(__pyx_v_cmd), (&__pyx_v_err_c));

    /* "gipsy.pyx":968
 *    else:
 *       xeq_c(tofchar(cmd), &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          msgs = ["Cannot execute", "Exited prematurely", "Fatal error", "Crashed", "User abort"]
 *          raise XeqError(msgs[-err_c-1])
 */
    __pyx_t_1 = (__pyx_v_err_c < 0);
    if (__pyx_t_1) {

      /* "gipsy.pyx":969
 *       xeq_c(tofchar(cmd), &err_c)
 *       if err_c<0:
 *          msgs = ["Cannot execute", "Exited prematurely", "Fatal error", "Crashed", "User abort"]             # <<<<<<<<<<<<<<
 *          raise XeqError(msgs[-err_c-1])
 * 
 */
      __pyx_t_3 = PyList_New(5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_50));
      PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_50));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_50));
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_52));
      PyList_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_kp_s_52));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_52));
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_53));
      PyList_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_kp_s_53));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_53));
      __Pyx_INCREF(((PyObject *)__pyx_n_s__Crashed));
      PyList_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_n_s__Crashed));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Crashed));
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_54));
      PyList_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_kp_s_54));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_54));
      __pyx_v_msgs = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "gipsy.pyx":970
 *       if err_c<0:
 *          msgs = ["Cannot execute", "Exited prematurely", "Fatal error", "Crashed", "User abort"]
 *          raise XeqError(msgs[-err_c-1])             # <<<<<<<<<<<<<<
 * 
 * def deputy(cmd):
 */
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__XeqError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = ((-__pyx_v_err_c) - 1);
      __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_msgs), __pyx_t_5, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __pyx_L6:;

  __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("gipsy.xeq", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_msgs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":972
 *          raise XeqError(msgs[-err_c-1])
 * 
 * def deputy(cmd):             # <<<<<<<<<<<<<<
 *    cdef fint err_c
 *    deputy_c(tofchar(cmd), &err_c)
 */

static PyObject *__pyx_pf_5gipsy_10deputy(PyObject *__pyx_self, PyObject *__pyx_v_cmd); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10deputy = {__Pyx_NAMESTR("deputy"), (PyCFunction)__pyx_pf_5gipsy_10deputy, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10deputy(PyObject *__pyx_self, PyObject *__pyx_v_cmd) {
  fint __pyx_v_err_c;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deputy");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":974
 * def deputy(cmd):
 *    cdef fint err_c
 *    deputy_c(tofchar(cmd), &err_c)             # <<<<<<<<<<<<<<
 *    if err_c<0:
 *       raise XeqError("Deputy error, code= %d" % err_c)
 */
  deputy_c(__pyx_f_5gipsy_tofchar(__pyx_v_cmd), (&__pyx_v_err_c));

  /* "gipsy.pyx":975
 *    cdef fint err_c
 *    deputy_c(tofchar(cmd), &err_c)
 *    if err_c<0:             # <<<<<<<<<<<<<<
 *       raise XeqError("Deputy error, code= %d" % err_c)
 * 
 */
  __pyx_t_1 = (__pyx_v_err_c < 0);
  if (__pyx_t_1) {

    /* "gipsy.pyx":976
 *    deputy_c(tofchar(cmd), &err_c)
 *    if err_c<0:
 *       raise XeqError("Deputy error, code= %d" % err_c)             # <<<<<<<<<<<<<<
 * 
 * def usertext(keyword=stdkey, message="Enter text string", default=0, defval=None, nmax=256):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__XeqError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_55), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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("gipsy.deputy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":978
 *       raise XeqError("Deputy error, code= %d" % err_c)
 * 
 * def usertext(keyword=stdkey, message="Enter text string", default=0, defval=None, nmax=256):             # <<<<<<<<<<<<<<
 * 
 * # Read a text string from the user. 'nmax' is the maximum number of characters
 */

static PyObject *__pyx_pf_5gipsy_11usertext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_11usertext = {__Pyx_NAMESTR("usertext"), (PyCFunction)__pyx_pf_5gipsy_11usertext, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_11usertext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_nmax = 0;
  fchar __pyx_v_c_result;
  fint __pyx_v_c_default;
  PyObject *__pyx_v_result = 0;
  fint __pyx_v_nc;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("usertext");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = __pyx_k_56;
    values[1] = ((PyObject *)__pyx_kp_s_57);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)__pyx_int_256);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "usertext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_nmax = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("usertext", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.usertext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":987
 *    cdef fint  c_default
 *    cdef bytes result
 *    c_result = newfchar(nmax)             # <<<<<<<<<<<<<<
 *    c_default = default
 *    nc = usertext_c(c_result, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_v_c_result = __pyx_f_5gipsy_newfchar(__pyx_v_nmax);

  /* "gipsy.pyx":988
 *    cdef bytes result
 *    c_result = newfchar(nmax)
 *    c_default = default             # <<<<<<<<<<<<<<
 *    nc = usertext_c(c_result, &c_default, tofchar(tokey(keyword)),
 *                    tofchar(message))
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_1;

  /* "gipsy.pyx":989
 *    c_result = newfchar(nmax)
 *    c_default = default
 *    nc = usertext_c(c_result, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                    tofchar(message))
 *    if nc:
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;

  /* "gipsy.pyx":990
 *    c_default = default
 *    nc = usertext_c(c_result, &c_default, tofchar(tokey(keyword)),
 *                    tofchar(message))             # <<<<<<<<<<<<<<
 *    if nc:
 *       c_result.a[nc] = 0
 */
  __pyx_v_nc = usertext_c(__pyx_v_c_result, (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_4), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":991
 *    nc = usertext_c(c_result, &c_default, tofchar(tokey(keyword)),
 *                    tofchar(message))
 *    if nc:             # <<<<<<<<<<<<<<
 *       c_result.a[nc] = 0
 *       result = c_result.a
 */
  if (__pyx_v_nc) {

    /* "gipsy.pyx":992
 *                    tofchar(message))
 *    if nc:
 *       c_result.a[nc] = 0             # <<<<<<<<<<<<<<
 *       result = c_result.a
 *    else:
 */
    (__pyx_v_c_result.a[__pyx_v_nc]) = 0;

    /* "gipsy.pyx":993
 *    if nc:
 *       c_result.a[nc] = 0
 *       result = c_result.a             # <<<<<<<<<<<<<<
 *    else:
 *       result = defval
 */
    __pyx_t_4 = PyBytes_FromString(__pyx_v_c_result.a); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_v_result = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":995
 *       result = c_result.a
 *    else:
 *       result = defval             # <<<<<<<<<<<<<<
 *    delfchar(c_result)
 *    return result
 */
    if (!(likely(PyBytes_CheckExact(__pyx_v_defval))||((__pyx_v_defval) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_defval)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_v_result = ((PyObject*)__pyx_v_defval);
  }
  __pyx_L6:;

  /* "gipsy.pyx":996
 *    else:
 *       result = defval
 *    delfchar(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_4 = __pyx_f_5gipsy_delfchar(__pyx_v_c_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":997
 *       result = defval
 *    delfchar(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def userint(keyword=stdkey, message=None, default=0, defval=0, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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("gipsy.usertext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":999
 *    return result
 * 
 * def userint(keyword=stdkey, message=None, default=0, defval=0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of integer numbers from the user.
 */

static PyObject *__pyx_pf_5gipsy_12userint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12userint = {__Pyx_NAMESTR("userint"), (PyCFunction)__pyx_pf_5gipsy_12userint, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12userint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_nmax = 0;
  fint *__pyx_v_c_result;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  fint __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("userint");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = __pyx_k_58;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "userint") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_nmax = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userint", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.userint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1007
 * 
 *    cdef fint *c_result, c_default, c_nmax, i
 *    c_result  = <fint*>malloc(nmax*sizeof(fint))             # <<<<<<<<<<<<<<
 *    c_default = default
 *    c_nmax    = nmax
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(fint))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_result = ((fint *)malloc(__pyx_t_3));

  /* "gipsy.pyx":1008
 *    cdef fint *c_result, c_default, c_nmax, i
 *    c_result  = <fint*>malloc(nmax*sizeof(fint))
 *    c_default = default             # <<<<<<<<<<<<<<
 *    c_nmax    = nmax
 *    if message is None:
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_4;

  /* "gipsy.pyx":1009
 *    c_result  = <fint*>malloc(nmax*sizeof(fint))
 *    c_default = default
 *    c_nmax    = nmax             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d integer number(s)" % nmax
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_4;

  /* "gipsy.pyx":1010
 *    c_default = default
 *    c_nmax    = nmax
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d integer number(s)" % nmax
 *    n = userint_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_5 = (__pyx_v_message == Py_None);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1011
 *    c_nmax    = nmax
 *    if message is None:
 *       message = "Enter up to %d integer number(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = userint_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                  tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_59), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1012
 *    if message is None:
 *       message = "Enter up to %d integer number(s)" % nmax
 *    n = userint_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                  tofchar(message))
 *    if not n: return defval
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1013
 *       message = "Enter up to %d integer number(s)" % nmax
 *    n = userint_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                  tofchar(message))             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_v_n = userint_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_6), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1014
 *    n = userint_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                  tofchar(message))
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = c_result[0]
 */
  __pyx_t_5 = (!__pyx_v_n);
  if (__pyx_t_5) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1015
 *                  tofchar(message))
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = c_result[0]
 *    else:
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_5) {

    /* "gipsy.pyx":1016
 *    if not n: return defval
 *    if nmax==1:
 *       result = c_result[0]             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = __Pyx_PyInt_to_py_fint((__pyx_v_c_result[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1018
 *       result = c_result[0]
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __pyx_v_result = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1019
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(c_result[i])
 *    free(c_result)
 */
    __pyx_t_4 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) {

      /* "gipsy.pyx":1020
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])             # <<<<<<<<<<<<<<
 *    free(c_result)
 *    return result
 */
      __pyx_t_6 = __Pyx_PyInt_to_py_fint((__pyx_v_c_result[__pyx_v_i])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1021
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 *    free(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  free(__pyx_v_c_result);

  /* "gipsy.pyx":1022
 *          result.append(c_result[i])
 *    free(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def userlog(keyword=stdkey, message=None, default=0, defval=0, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_6);
  __Pyx_AddTraceback("gipsy.userint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1024
 *    return result
 * 
 * def userlog(keyword=stdkey, message=None, default=0, defval=0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of boolean values (logicals) from the user.
 */

static PyObject *__pyx_pf_5gipsy_13userlog(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_13userlog = {__Pyx_NAMESTR("userlog"), (PyCFunction)__pyx_pf_5gipsy_13userlog, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_13userlog(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_nmax = 0;
  bool *__pyx_v_c_result;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  fint __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("userlog");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = __pyx_k_60;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "userlog") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_nmax = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userlog", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.userlog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1033
 *    cdef bool *c_result
 *    cdef fint c_default, c_nmax, i
 *    c_result  = <bool*>malloc(nmax*sizeof(fint))             # <<<<<<<<<<<<<<
 *    c_default = default
 *    c_nmax    = nmax
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(fint))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_result = ((bool *)malloc(__pyx_t_3));

  /* "gipsy.pyx":1034
 *    cdef fint c_default, c_nmax, i
 *    c_result  = <bool*>malloc(nmax*sizeof(fint))
 *    c_default = default             # <<<<<<<<<<<<<<
 *    c_nmax    = nmax
 *    if message is None:
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_4;

  /* "gipsy.pyx":1035
 *    c_result  = <bool*>malloc(nmax*sizeof(fint))
 *    c_default = default
 *    c_nmax    = nmax             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d logical(s)" % nmax
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_4;

  /* "gipsy.pyx":1036
 *    c_default = default
 *    c_nmax    = nmax
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d logical(s)" % nmax
 *    n = userlog_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_5 = (__pyx_v_message == Py_None);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1037
 *    c_nmax    = nmax
 *    if message is None:
 *       message = "Enter up to %d logical(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = userlog_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                  tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_61), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1038
 *    if message is None:
 *       message = "Enter up to %d logical(s)" % nmax
 *    n = userlog_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                  tofchar(message))
 *    if not n: return defval
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1039
 *       message = "Enter up to %d logical(s)" % nmax
 *    n = userlog_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                  tofchar(message))             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    result = []
 */
  __pyx_v_n = userlog_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_6), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1040
 *    n = userlog_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                  tofchar(message))
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    result = []
 *    for i from 0 <= i < n:
 */
  __pyx_t_5 = (!__pyx_v_n);
  if (__pyx_t_5) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1041
 *                  tofchar(message))
 *    if not n: return defval
 *    result = []             # <<<<<<<<<<<<<<
 *    for i from 0 <= i < n:
 *       if c_result[i]:
 */
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __pyx_v_result = ((PyObject *)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "gipsy.pyx":1042
 *    if not n: return defval
 *    result = []
 *    for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *       if c_result[i]:
 *          result.append(True)
 */
  __pyx_t_4 = __pyx_v_n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) {

    /* "gipsy.pyx":1043
 *    result = []
 *    for i from 0 <= i < n:
 *       if c_result[i]:             # <<<<<<<<<<<<<<
 *          result.append(True)
 *       else:
 */
    if ((__pyx_v_c_result[__pyx_v_i])) {

      /* "gipsy.pyx":1044
 *    for i from 0 <= i < n:
 *       if c_result[i]:
 *          result.append(True)             # <<<<<<<<<<<<<<
 *       else:
 *          result.append(False)
 */
      __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__; goto __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;
      goto __pyx_L10;
    }
    /*else*/ {

      /* "gipsy.pyx":1046
 *          result.append(True)
 *       else:
 *          result.append(False)             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = result[0]
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L10:;
  }

  /* "gipsy.pyx":1047
 *       else:
 *          result.append(False)
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = result[0]
 *    free(c_result)
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_5) {

    /* "gipsy.pyx":1048
 *          result.append(False)
 *    if nmax==1:
 *       result = result[0]             # <<<<<<<<<<<<<<
 *    free(c_result)
 *    return result
 */
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_result, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_v_result);
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L11;
  }
  __pyx_L11:;

  /* "gipsy.pyx":1049
 *    if nmax==1:
 *       result = result[0]
 *    free(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  free(__pyx_v_c_result);

  /* "gipsy.pyx":1050
 *       result = result[0]
 *    free(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def userreal(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_6);
  __Pyx_AddTraceback("gipsy.userlog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1052
 *    return result
 * 
 * def userreal(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of real numbers from the user.
 */

static PyObject *__pyx_pf_5gipsy_14userreal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_14userreal = {__Pyx_NAMESTR("userreal"), (PyCFunction)__pyx_pf_5gipsy_14userreal, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_14userreal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_nmax = 0;
  float *__pyx_v_c_result;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  fint __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("userreal");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = __pyx_k_62;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = __pyx_k_63;
    values[4] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "userreal") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_nmax = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userreal", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.userreal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1061
 *    cdef float *c_result
 *    cdef fint  c_default, c_nmax, i
 *    c_result  = <float*>malloc(nmax*sizeof(float))             # <<<<<<<<<<<<<<
 *    c_default = default
 *    c_nmax    = nmax
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(float))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_result = ((float *)malloc(__pyx_t_3));

  /* "gipsy.pyx":1062
 *    cdef fint  c_default, c_nmax, i
 *    c_result  = <float*>malloc(nmax*sizeof(float))
 *    c_default = default             # <<<<<<<<<<<<<<
 *    c_nmax    = nmax
 *    if message is None:
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_4;

  /* "gipsy.pyx":1063
 *    c_result  = <float*>malloc(nmax*sizeof(float))
 *    c_default = default
 *    c_nmax    = nmax             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d real number(s)" % nmax
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_4;

  /* "gipsy.pyx":1064
 *    c_default = default
 *    c_nmax    = nmax
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d real number(s)" % nmax
 *    n = userreal_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_5 = (__pyx_v_message == Py_None);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1065
 *    c_nmax    = nmax
 *    if message is None:
 *       message = "Enter up to %d real number(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = userreal_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_64), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1066
 *    if message is None:
 *       message = "Enter up to %d real number(s)" % nmax
 *    n = userreal_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                   tofchar(message))
 *    if not n: return defval
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1067
 *       message = "Enter up to %d real number(s)" % nmax
 *    n = userreal_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_v_n = userreal_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_6), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1068
 *    n = userreal_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = c_result[0]
 */
  __pyx_t_5 = (!__pyx_v_n);
  if (__pyx_t_5) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1069
 *                   tofchar(message))
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = c_result[0]
 *    else:
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_5) {

    /* "gipsy.pyx":1070
 *    if not n: return defval
 *    if nmax==1:
 *       result = c_result[0]             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = PyFloat_FromDouble((__pyx_v_c_result[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1072
 *       result = c_result[0]
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __pyx_v_result = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1073
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(c_result[i])
 *    free(c_result)
 */
    __pyx_t_4 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) {

      /* "gipsy.pyx":1074
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])             # <<<<<<<<<<<<<<
 *    free(c_result)
 *    return result
 */
      __pyx_t_6 = PyFloat_FromDouble((__pyx_v_c_result[__pyx_v_i])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1075
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 *    free(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  free(__pyx_v_c_result);

  /* "gipsy.pyx":1076
 *          result.append(c_result[i])
 *    free(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def userdble(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_6);
  __Pyx_AddTraceback("gipsy.userreal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1078
 *    return result
 * 
 * def userdble(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of double precision numbers from the user.
 */

static PyObject *__pyx_pf_5gipsy_15userdble(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_15userdble = {__Pyx_NAMESTR("userdble"), (PyCFunction)__pyx_pf_5gipsy_15userdble, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_15userdble(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_nmax = 0;
  double *__pyx_v_c_result;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  fint __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("userdble");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = __pyx_k_65;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = __pyx_k_66;
    values[4] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "userdble") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_nmax = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userdble", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.userdble", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1087
 *    cdef double *c_result
 *    cdef fint  c_default, c_nmax, i
 *    c_result  = <double*>malloc(nmax*sizeof(double))             # <<<<<<<<<<<<<<
 *    c_default = default
 *    c_nmax    = nmax
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(double))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_result = ((double *)malloc(__pyx_t_3));

  /* "gipsy.pyx":1088
 *    cdef fint  c_default, c_nmax, i
 *    c_result  = <double*>malloc(nmax*sizeof(double))
 *    c_default = default             # <<<<<<<<<<<<<<
 *    c_nmax    = nmax
 *    if message is None:
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_4;

  /* "gipsy.pyx":1089
 *    c_result  = <double*>malloc(nmax*sizeof(double))
 *    c_default = default
 *    c_nmax    = nmax             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d double(s)" % nmax
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_4;

  /* "gipsy.pyx":1090
 *    c_default = default
 *    c_nmax    = nmax
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d double(s)" % nmax
 *    n = userdble_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_5 = (__pyx_v_message == Py_None);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1091
 *    c_nmax    = nmax
 *    if message is None:
 *       message = "Enter up to %d double(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = userdble_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_67), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1092
 *    if message is None:
 *       message = "Enter up to %d double(s)" % nmax
 *    n = userdble_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                   tofchar(message))
 *    if not n: return defval
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1093
 *       message = "Enter up to %d double(s)" % nmax
 *    n = userdble_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_v_n = userdble_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_6), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1094
 *    n = userdble_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = c_result[0]
 */
  __pyx_t_5 = (!__pyx_v_n);
  if (__pyx_t_5) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1095
 *                   tofchar(message))
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = c_result[0]
 *    else:
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_5) {

    /* "gipsy.pyx":1096
 *    if not n: return defval
 *    if nmax==1:
 *       result = c_result[0]             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = PyFloat_FromDouble((__pyx_v_c_result[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1098
 *       result = c_result[0]
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __pyx_v_result = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1099
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(c_result[i])
 *    free(c_result)
 */
    __pyx_t_4 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) {

      /* "gipsy.pyx":1100
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])             # <<<<<<<<<<<<<<
 *    free(c_result)
 *    return result
 */
      __pyx_t_6 = PyFloat_FromDouble((__pyx_v_c_result[__pyx_v_i])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1101
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 *    free(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  free(__pyx_v_c_result);

  /* "gipsy.pyx":1102
 *          result.append(c_result[i])
 *    free(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def userchar(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_6);
  __Pyx_AddTraceback("gipsy.userdble", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1104
 *    return result
 * 
 * def userchar(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of character strings from the user.
 */

static PyObject *__pyx_pf_5gipsy_16userchar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_16userchar = {__Pyx_NAMESTR("userchar"), (PyCFunction)__pyx_pf_5gipsy_16userchar, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_16userchar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_nmax = 0;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fchar __pyx_v_c_result;
  PyObject *__pyx_v_results = 0;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__width,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("userchar");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[0] = __pyx_k_68;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)__pyx_int_256);
    values[5] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "userchar") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_width = values[4];
    __pyx_v_nmax = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userchar", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.userchar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1115
 *    cdef fchar c_result
 *    cdef bytes results
 *    c_default  = default             # <<<<<<<<<<<<<<
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_1;

  /* "gipsy.pyx":1116
 *    cdef bytes results
 *    c_default  = default
 *    c_nmax     = nmax             # <<<<<<<<<<<<<<
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_1;

  /* "gipsy.pyx":1117
 *    c_default  = default
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)             # <<<<<<<<<<<<<<
 *    c_result.l = width
 *    if message is None:
 */
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_width, __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_c_result = __pyx_f_5gipsy_newfchar(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1118
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_width); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_result.l = __pyx_t_1;

  /* "gipsy.pyx":1119
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = userchar_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1120
 *    c_result.l = width
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = userchar_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_69), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1121
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = userchar_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                   tofchar(message))
 *    results = c_result.a
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;

  /* "gipsy.pyx":1122
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = userchar_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))             # <<<<<<<<<<<<<<
 *    results = c_result.a
 *    if not n: return defval
 */
  __pyx_v_n = userchar_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_5), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1123
 *    n = userchar_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 *    results = c_result.a             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_t_5 = PyBytes_FromString(__pyx_v_c_result.a); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_results = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":1124
 *                   tofchar(message))
 *    results = c_result.a
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = results[0:width].rstrip()
 */
  __pyx_t_3 = (!__pyx_v_n);
  if (__pyx_t_3) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1125
 *    results = c_result.a
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = results[0:width].rstrip()
 *    else:
 */
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":1126
 *    if not n: return defval
 *    if nmax==1:
 *       result = results[0:width].rstrip()             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_width); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_results), 0, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1128
 *       result = results[0:width].rstrip()
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_v_result = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "gipsy.pyx":1129
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)
 */
    __pyx_t_1 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

      /* "gipsy.pyx":1130
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())             # <<<<<<<<<<<<<<
 *    delfchar(c_result)
 *    return result
 */
      __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_v_width); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromLong((__pyx_v_i + 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_v_width); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_results), __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1131
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_4 = __pyx_f_5gipsy_delfchar(__pyx_v_c_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":1132
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.userchar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_results);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1135
 * 
 * 
 * def usercharu(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of character strings from the user.
 */

static PyObject *__pyx_pf_5gipsy_17usercharu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_17usercharu = {__Pyx_NAMESTR("usercharu"), (PyCFunction)__pyx_pf_5gipsy_17usercharu, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_17usercharu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_nmax = 0;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fchar __pyx_v_c_result;
  PyObject *__pyx_v_results = 0;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__width,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("usercharu");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[0] = __pyx_k_70;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)__pyx_int_256);
    values[5] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "usercharu") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_width = values[4];
    __pyx_v_nmax = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("usercharu", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.usercharu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1146
 *    cdef fchar c_result
 *    cdef bytes results
 *    c_default  = default             # <<<<<<<<<<<<<<
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_1;

  /* "gipsy.pyx":1147
 *    cdef bytes results
 *    c_default  = default
 *    c_nmax     = nmax             # <<<<<<<<<<<<<<
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_1;

  /* "gipsy.pyx":1148
 *    c_default  = default
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)             # <<<<<<<<<<<<<<
 *    c_result.l = width
 *    if message is None:
 */
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_width, __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_c_result = __pyx_f_5gipsy_newfchar(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1149
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_width); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_result.l = __pyx_t_1;

  /* "gipsy.pyx":1150
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = usercharu_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1151
 *    c_result.l = width
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = usercharu_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_69), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1152
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = usercharu_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                   tofchar(message))
 *    results = c_result.a
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;

  /* "gipsy.pyx":1153
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = usercharu_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))             # <<<<<<<<<<<<<<
 *    results = c_result.a
 *    if not n: return defval
 */
  __pyx_v_n = usercharu_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_5), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1154
 *    n = usercharu_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 *    results = c_result.a             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_t_5 = PyBytes_FromString(__pyx_v_c_result.a); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_results = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":1155
 *                   tofchar(message))
 *    results = c_result.a
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = results[0:width].rstrip()
 */
  __pyx_t_3 = (!__pyx_v_n);
  if (__pyx_t_3) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1156
 *    results = c_result.a
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = results[0:width].rstrip()
 *    else:
 */
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":1157
 *    if not n: return defval
 *    if nmax==1:
 *       result = results[0:width].rstrip()             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_width); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_results), 0, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1159
 *       result = results[0:width].rstrip()
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_v_result = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "gipsy.pyx":1160
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)
 */
    __pyx_t_1 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

      /* "gipsy.pyx":1161
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())             # <<<<<<<<<<<<<<
 *    delfchar(c_result)
 *    return result
 */
      __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_v_width); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromLong((__pyx_v_i + 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_v_width); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_results), __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1162
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_4 = __pyx_f_5gipsy_delfchar(__pyx_v_c_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":1163
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.usercharu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_results);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1166
 * 
 * 
 * def usercharl(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of character strings from the user.
 */

static PyObject *__pyx_pf_5gipsy_18usercharl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_18usercharl = {__Pyx_NAMESTR("usercharl"), (PyCFunction)__pyx_pf_5gipsy_18usercharl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_18usercharl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_nmax = 0;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fchar __pyx_v_c_result;
  PyObject *__pyx_v_results = 0;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__width,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("usercharl");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[0] = __pyx_k_71;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)__pyx_int_256);
    values[5] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "usercharl") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_width = values[4];
    __pyx_v_nmax = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("usercharl", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.usercharl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1177
 *    cdef fchar c_result
 *    cdef bytes results
 *    c_default  = default             # <<<<<<<<<<<<<<
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_1;

  /* "gipsy.pyx":1178
 *    cdef bytes results
 *    c_default  = default
 *    c_nmax     = nmax             # <<<<<<<<<<<<<<
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_1;

  /* "gipsy.pyx":1179
 *    c_default  = default
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)             # <<<<<<<<<<<<<<
 *    c_result.l = width
 *    if message is None:
 */
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_width, __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_c_result = __pyx_f_5gipsy_newfchar(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1180
 *    c_nmax     = nmax
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_width); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_result.l = __pyx_t_1;

  /* "gipsy.pyx":1181
 *    c_result   = newfchar(width*nmax)
 *    c_result.l = width
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = usercharl_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1182
 *    c_result.l = width
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = usercharl_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_69), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1183
 *    if message is None:
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = usercharl_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                   tofchar(message))
 *    results = c_result.a
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;

  /* "gipsy.pyx":1184
 *       message = "Enter up to %d text string(s)" % nmax
 *    n = usercharl_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))             # <<<<<<<<<<<<<<
 *    results = c_result.a
 *    if not n: return defval
 */
  __pyx_v_n = usercharl_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_5), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1185
 *    n = usercharl_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                   tofchar(message))
 *    results = c_result.a             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_t_5 = PyBytes_FromString(__pyx_v_c_result.a); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_results = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":1186
 *                   tofchar(message))
 *    results = c_result.a
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = results[0:width].rstrip()
 */
  __pyx_t_3 = (!__pyx_v_n);
  if (__pyx_t_3) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1187
 *    results = c_result.a
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = results[0:width].rstrip()
 *    else:
 */
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":1188
 *    if not n: return defval
 *    if nmax==1:
 *       result = results[0:width].rstrip()             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_width); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_results), 0, __pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1190
 *       result = results[0:width].rstrip()
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())
 */
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_v_result = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "gipsy.pyx":1191
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)
 */
    __pyx_t_1 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {

      /* "gipsy.pyx":1192
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())             # <<<<<<<<<<<<<<
 *    delfchar(c_result)
 *    return result
 */
      __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_i); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_v_width); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromLong((__pyx_v_i + 1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_v_width); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_results), __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_5), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1193
 *       for i from 0 <= i < n:
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_4 = __pyx_f_5gipsy_delfchar(__pyx_v_c_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":1194
 *          result.append(results[i*width:(i+1)*width].rstrip())
 *    delfchar(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def userangle(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.usercharl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_results);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1196
 *    return result
 * 
 * def userangle(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of angles from the user.
 */

static PyObject *__pyx_pf_5gipsy_19userangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_19userangle = {__Pyx_NAMESTR("userangle"), (PyCFunction)__pyx_pf_5gipsy_19userangle, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_19userangle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_v_defval = 0;
  PyObject *__pyx_v_nmax = 0;
  double *__pyx_v_c_result;
  fint __pyx_v_c_default;
  fint __pyx_v_c_nmax;
  fint __pyx_v_i;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  fint __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__default,&__pyx_n_s__defval,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("userangle");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[0] = __pyx_k_72;
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = __pyx_k_73;
    values[4] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defval);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "userangle") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
    __pyx_v_default = values[2];
    __pyx_v_defval = values[3];
    __pyx_v_nmax = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("userangle", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.userangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "gipsy.pyx":1204
 *    cdef double *c_result
 *    cdef fint  c_default, c_nmax, i
 *    c_result  = <double*>malloc(nmax*sizeof(double))             # <<<<<<<<<<<<<<
 *    c_default = default
 *    c_nmax    = nmax
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(double))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_result = ((double *)malloc(__pyx_t_3));

  /* "gipsy.pyx":1205
 *    cdef fint  c_default, c_nmax, i
 *    c_result  = <double*>malloc(nmax*sizeof(double))
 *    c_default = default             # <<<<<<<<<<<<<<
 *    c_nmax    = nmax
 *    if message is None:
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_default); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_default = __pyx_t_4;

  /* "gipsy.pyx":1206
 *    c_result  = <double*>malloc(nmax*sizeof(double))
 *    c_default = default
 *    c_nmax    = nmax             # <<<<<<<<<<<<<<
 *    if message is None:
 *       message = "Enter up to %d angle(s)" % nmax
 */
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_nmax = __pyx_t_4;

  /* "gipsy.pyx":1207
 *    c_default = default
 *    c_nmax    = nmax
 *    if message is None:             # <<<<<<<<<<<<<<
 *       message = "Enter up to %d angle(s)" % nmax
 *    n = userangle_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 */
  __pyx_t_5 = (__pyx_v_message == Py_None);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1208
 *    c_nmax    = nmax
 *    if message is None:
 *       message = "Enter up to %d angle(s)" % nmax             # <<<<<<<<<<<<<<
 *    n = userangle_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                      tofchar(message))
 */
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_74), __pyx_v_nmax); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1209
 *    if message is None:
 *       message = "Enter up to %d angle(s)" % nmax
 *    n = userangle_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),             # <<<<<<<<<<<<<<
 *                      tofchar(message))
 *    if not n: return defval
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1210
 *       message = "Enter up to %d angle(s)" % nmax
 *    n = userangle_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                      tofchar(message))             # <<<<<<<<<<<<<<
 *    if not n: return defval
 *    if nmax==1:
 */
  __pyx_v_n = userangle_c(__pyx_v_c_result, (&__pyx_v_c_nmax), (&__pyx_v_c_default), __pyx_f_5gipsy_tofchar(__pyx_t_6), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1211
 *    n = userangle_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
 *                      tofchar(message))
 *    if not n: return defval             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = c_result[0]
 */
  __pyx_t_5 = (!__pyx_v_n);
  if (__pyx_t_5) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_defval);
    __pyx_r = __pyx_v_defval;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":1212
 *                      tofchar(message))
 *    if not n: return defval
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = c_result[0]
 *    else:
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_5) {

    /* "gipsy.pyx":1213
 *    if not n: return defval
 *    if nmax==1:
 *       result = c_result[0]             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_6 = PyFloat_FromDouble((__pyx_v_c_result[0])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_result = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":1215
 *       result = c_result[0]
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __pyx_v_result = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1216
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(c_result[i])
 *    free(c_result)
 */
    __pyx_t_4 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) {

      /* "gipsy.pyx":1217
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])             # <<<<<<<<<<<<<<
 *    free(c_result)
 *    return result
 */
      __pyx_t_6 = PyFloat_FromDouble((__pyx_v_c_result[__pyx_v_i])); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __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;
    }
  }
  __pyx_L8:;

  /* "gipsy.pyx":1218
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 *    free(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  free(__pyx_v_c_result);

  /* "gipsy.pyx":1219
 *          result.append(c_result[i])
 *    free(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_6);
  __Pyx_AddTraceback("gipsy.userangle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1222
 * 
 * 
 * def wkey(keystring,task=""):             # <<<<<<<<<<<<<<
 * 
 * # Define or modify a user input keyword. If 'task' is specified,
 */

static PyObject *__pyx_pf_5gipsy_20wkey(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_20wkey = {__Pyx_NAMESTR("wkey"), (PyCFunction)__pyx_pf_5gipsy_20wkey, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_20wkey(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keystring = 0;
  PyObject *__pyx_v_task = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keystring,&__pyx_n_s__task,0};
  __Pyx_RefNannySetupContext("wkey");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keystring);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__task);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "wkey") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keystring = values[0];
    __pyx_v_task = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wkey", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.wkey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_task);

  /* "gipsy.pyx":1228
 * # otherwise it is done for the calling task.
 * 
 *    if task: task = task + " "             # <<<<<<<<<<<<<<
 *    wkey_c(tofchar(task + keystring))
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_task); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {
    __pyx_t_2 = PyNumber_Add(__pyx_v_task, ((PyObject *)__pyx_kp_s_14)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_v_task);
    __pyx_v_task = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1229
 * 
 *    if task: task = task + " "
 *    wkey_c(tofchar(task + keystring))             # <<<<<<<<<<<<<<
 * 
 * def typecli(text):
 */
  __pyx_t_2 = PyNumber_Add(__pyx_v_task, __pyx_v_keystring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  wkey_c(__pyx_f_5gipsy_tofchar(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy.wkey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_task);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1231
 *    wkey_c(tofchar(task + keystring))
 * 
 * def typecli(text):             # <<<<<<<<<<<<<<
 * 
 *    "Type characters into Hermes' User Command Area. See type.dc2"
 */

static PyObject *__pyx_pf_5gipsy_21typecli(PyObject *__pyx_self, PyObject *__pyx_v_text); /*proto*/
static char __pyx_doc_5gipsy_21typecli[] = "Type characters into Hermes' User Command Area. See type.dc2";
static PyMethodDef __pyx_mdef_5gipsy_21typecli = {__Pyx_NAMESTR("typecli"), (PyCFunction)__pyx_pf_5gipsy_21typecli, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_21typecli)};
static PyObject *__pyx_pf_5gipsy_21typecli(PyObject *__pyx_self, PyObject *__pyx_v_text) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("typecli");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1234
 * 
 *    "Type characters into Hermes' User Command Area. See type.dc2"
 *    type_c(tofchar(text))             # <<<<<<<<<<<<<<
 * 
 * def cancel(keyword=stdkey):
 */
  type_c(__pyx_f_5gipsy_tofchar(__pyx_v_text));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1236
 *    type_c(tofchar(text))
 * 
 * def cancel(keyword=stdkey):             # <<<<<<<<<<<<<<
 *    "Cancel user input. See cancel.dc2"
 *    cancel_c(tofchar(tokey(keyword)))
 */

static PyObject *__pyx_pf_5gipsy_22cancel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_22cancel[] = "Cancel user input. See cancel.dc2";
static PyMethodDef __pyx_mdef_5gipsy_22cancel = {__Pyx_NAMESTR("cancel"), (PyCFunction)__pyx_pf_5gipsy_22cancel, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_22cancel)};
static PyObject *__pyx_pf_5gipsy_22cancel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,0};
  __Pyx_RefNannySetupContext("cancel");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    values[0] = __pyx_k_76;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "cancel") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1238
 * def cancel(keyword=stdkey):
 *    "Cancel user input. See cancel.dc2"
 *    cancel_c(tofchar(tokey(keyword)))             # <<<<<<<<<<<<<<
 * 
 * def reject(keyword=stdkey, message="Input not acceptable"):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  cancel_c(__pyx_f_5gipsy_tofchar(__pyx_t_3));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1240
 *    cancel_c(tofchar(tokey(keyword)))
 * 
 * def reject(keyword=stdkey, message="Input not acceptable"):             # <<<<<<<<<<<<<<
 *    "Reject user input. See reject.dc2"
 *    reject_c(tofchar(tokey(keyword)), tofchar(message))
 */

static PyObject *__pyx_pf_5gipsy_23reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_23reject[] = "Reject user input. See reject.dc2";
static PyMethodDef __pyx_mdef_5gipsy_23reject = {__Pyx_NAMESTR("reject"), (PyCFunction)__pyx_pf_5gipsy_23reject, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_23reject)};
static PyObject *__pyx_pf_5gipsy_23reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__keyword,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("reject");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[0] = __pyx_k_77;
    values[1] = ((PyObject *)__pyx_kp_s_78);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "reject") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_keyword = values[0];
    __pyx_v_message = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("reject", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1242
 * def reject(keyword=stdkey, message="Input not acceptable"):
 *    "Reject user input. See reject.dc2"
 *    reject_c(tofchar(tokey(keyword)), tofchar(message))             # <<<<<<<<<<<<<<
 * 
 * def subst(substring):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tokey); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_keyword);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_keyword);
  __Pyx_GIVEREF(__pyx_v_keyword);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  reject_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), __pyx_f_5gipsy_tofchar(__pyx_v_message));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1244
 *    reject_c(tofchar(tokey(keyword)), tofchar(message))
 * 
 * def subst(substring):             # <<<<<<<<<<<<<<
 *    "Keyword substition for deputy tasks. See subst.dc2"
 *    cdef fint err_c
 */

static PyObject *__pyx_pf_5gipsy_24subst(PyObject *__pyx_self, PyObject *__pyx_v_substring); /*proto*/
static char __pyx_doc_5gipsy_24subst[] = "Keyword substition for deputy tasks. See subst.dc2";
static PyMethodDef __pyx_mdef_5gipsy_24subst = {__Pyx_NAMESTR("subst"), (PyCFunction)__pyx_pf_5gipsy_24subst, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_24subst)};
static PyObject *__pyx_pf_5gipsy_24subst(PyObject *__pyx_self, PyObject *__pyx_v_substring) {
  fint __pyx_v_err_c;
  PyObject *__pyx_v_msgs = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  long __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("subst");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1247
 *    "Keyword substition for deputy tasks. See subst.dc2"
 *    cdef fint err_c
 *    subst_c(tofchar(substring.upper()), &err_c)             # <<<<<<<<<<<<<<
 *    if err_c<0:
 *       msgs = ["odd number of keywords", "bad keyword", "insufficient space"]
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_substring, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  subst_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1248
 *    cdef fint err_c
 *    subst_c(tofchar(substring.upper()), &err_c)
 *    if err_c<0:             # <<<<<<<<<<<<<<
 *       msgs = ["odd number of keywords", "bad keyword", "insufficient space"]
 *       raise GipsyError(msgs[-err_c-1])
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1249
 *    subst_c(tofchar(substring.upper()), &err_c)
 *    if err_c<0:
 *       msgs = ["odd number of keywords", "bad keyword", "insufficient space"]             # <<<<<<<<<<<<<<
 *       raise GipsyError(msgs[-err_c-1])
 * 
 */
    __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_79));
    PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_79));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_79));
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_80));
    PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_s_80));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_80));
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_81));
    PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_kp_s_81));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_81));
    __pyx_v_msgs = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":1250
 *    if err_c<0:
 *       msgs = ["odd number of keywords", "bad keyword", "insufficient space"]
 *       raise GipsyError(msgs[-err_c-1])             # <<<<<<<<<<<<<<
 * 
 * def anyout(text, dev=0):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = ((-__pyx_v_err_c) - 1);
    __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_msgs), __pyx_t_4, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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_5);
  __Pyx_AddTraceback("gipsy.subst", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_msgs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1252
 *       raise GipsyError(msgs[-err_c-1])
 * 
 * def anyout(text, dev=0):             # <<<<<<<<<<<<<<
 *    cdef fint  c_dev
 *    c_dev = dev
 */

static PyObject *__pyx_pf_5gipsy_25anyout(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_25anyout = {__Pyx_NAMESTR("anyout"), (PyCFunction)__pyx_pf_5gipsy_25anyout, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_25anyout(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_text = 0;
  PyObject *__pyx_v_dev = 0;
  fint __pyx_v_c_dev;
  PyObject *__pyx_v_lines = NULL;
  PyObject *__pyx_v_line = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__text,&__pyx_n_s__dev,0};
  __Pyx_RefNannySetupContext("anyout");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dev);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "anyout") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_text = values[0];
    __pyx_v_dev = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("anyout", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.anyout", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1254
 * def anyout(text, dev=0):
 *    cdef fint  c_dev
 *    c_dev = dev             # <<<<<<<<<<<<<<
 *    lines = text.splitlines()
 *    for line in lines:
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_dev); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_c_dev = __pyx_t_1;

  /* "gipsy.pyx":1255
 *    cdef fint  c_dev
 *    c_dev = dev
 *    lines = text.splitlines()             # <<<<<<<<<<<<<<
 *    for line in lines:
 *       line = line.expandtabs()
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_text, __pyx_n_s__splitlines); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_lines = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":1256
 *    c_dev = dev
 *    lines = text.splitlines()
 *    for line in lines:             # <<<<<<<<<<<<<<
 *       line = line.expandtabs()
 *       anyout_c(&c_dev, tofchar(line))
 */
  if (PyList_CheckExact(__pyx_v_lines) || PyTuple_CheckExact(__pyx_v_lines)) {
    __pyx_t_3 = __pyx_v_lines; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_lines); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
  }
  for (;;) {
    if (PyList_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_3)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else {
      __pyx_t_2 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_line);
    __pyx_v_line = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":1257
 *    lines = text.splitlines()
 *    for line in lines:
 *       line = line.expandtabs()             # <<<<<<<<<<<<<<
 *       anyout_c(&c_dev, tofchar(line))
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_line, __pyx_n_s__expandtabs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_line);
    __pyx_v_line = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1258
 *    for line in lines:
 *       line = line.expandtabs()
 *       anyout_c(&c_dev, tofchar(line))             # <<<<<<<<<<<<<<
 * 
 * def error(level=4, message="An error has occurred"):
 */
    anyout_c((&__pyx_v_c_dev), __pyx_f_5gipsy_tofchar(__pyx_v_line));
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.anyout", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lines);
  __Pyx_XDECREF(__pyx_v_line);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1260
 *       anyout_c(&c_dev, tofchar(line))
 * 
 * def error(level=4, message="An error has occurred"):             # <<<<<<<<<<<<<<
 *    "Error reporting and handling. See error.dc2"
 *    cdef fint level_c
 */

static PyObject *__pyx_pf_5gipsy_26error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_26error[] = "Error reporting and handling. See error.dc2";
static PyMethodDef __pyx_mdef_5gipsy_26error = {__Pyx_NAMESTR("error"), (PyCFunction)__pyx_pf_5gipsy_26error, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_26error)};
static PyObject *__pyx_pf_5gipsy_26error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_message = 0;
  fint __pyx_v_level_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__level,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("error");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[0] = ((PyObject *)__pyx_int_4);
    values[1] = ((PyObject *)__pyx_kp_s_82);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "error") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_level = values[0];
    __pyx_v_message = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("error", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1263
 *    "Error reporting and handling. See error.dc2"
 *    cdef fint level_c
 *    level_c = level             # <<<<<<<<<<<<<<
 *    error_c(&level_c, tofchar(message))
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_1;

  /* "gipsy.pyx":1264
 *    cdef fint level_c
 *    level_c = level
 *    error_c(&level_c, tofchar(message))             # <<<<<<<<<<<<<<
 * 
 * def aborttask(taskname):
 */
  error_c((&__pyx_v_level_c), __pyx_f_5gipsy_tofchar(__pyx_v_message));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("gipsy.error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1266
 *    error_c(&level_c, tofchar(message))
 * 
 * def aborttask(taskname):             # <<<<<<<<<<<<<<
 *    "Abort a task, given its name"
 *    result = aborttask_c(tofchar(taskname))
 */

static PyObject *__pyx_pf_5gipsy_27aborttask(PyObject *__pyx_self, PyObject *__pyx_v_taskname); /*proto*/
static char __pyx_doc_5gipsy_27aborttask[] = "Abort a task, given its name";
static PyMethodDef __pyx_mdef_5gipsy_27aborttask = {__Pyx_NAMESTR("aborttask"), (PyCFunction)__pyx_pf_5gipsy_27aborttask, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_27aborttask)};
static PyObject *__pyx_pf_5gipsy_27aborttask(PyObject *__pyx_self, PyObject *__pyx_v_taskname) {
  fint __pyx_v_result;
  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("aborttask");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1268
 * def aborttask(taskname):
 *    "Abort a task, given its name"
 *    result = aborttask_c(tofchar(taskname))             # <<<<<<<<<<<<<<
 *    if result:
 *       raise GipsyError("Cannot abort task '%s'. Not found." % taskname)
 */
  __pyx_v_result = aborttask_c(__pyx_f_5gipsy_tofchar(__pyx_v_taskname));

  /* "gipsy.pyx":1269
 *    "Abort a task, given its name"
 *    result = aborttask_c(tofchar(taskname))
 *    if result:             # <<<<<<<<<<<<<<
 *       raise GipsyError("Cannot abort task '%s'. Not found." % taskname)
 * 
 */
  if (__pyx_v_result) {

    /* "gipsy.pyx":1270
 *    result = aborttask_c(tofchar(taskname))
 *    if result:
 *       raise GipsyError("Cannot abort task '%s'. Not found." % taskname)             # <<<<<<<<<<<<<<
 * 
 * def pause(message=""):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_83), __pyx_v_taskname); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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("gipsy.aborttask", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1272
 *       raise GipsyError("Cannot abort task '%s'. Not found." % taskname)
 * 
 * def pause(message=""):             # <<<<<<<<<<<<<<
 *    "Suspend task. See pause.dc2"
 *    pause_c(tofchar(message))
 */

static PyObject *__pyx_pf_5gipsy_28pause(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_28pause[] = "Suspend task. See pause.dc2";
static PyMethodDef __pyx_mdef_5gipsy_28pause = {__Pyx_NAMESTR("pause"), (PyCFunction)__pyx_pf_5gipsy_28pause, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_28pause)};
static PyObject *__pyx_pf_5gipsy_28pause(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("pause");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pause") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_message = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pause", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pause", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1274
 * def pause(message=""):
 *    "Suspend task. See pause.dc2"
 *    pause_c(tofchar(message))             # <<<<<<<<<<<<<<
 * 
 * def status(message):
 */
  pause_c(__pyx_f_5gipsy_tofchar(__pyx_v_message));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1276
 *    pause_c(tofchar(message))
 * 
 * def status(message):             # <<<<<<<<<<<<<<
 *    "Display status message. See status.dc2"
 *    status_c(tofchar(message))
 */

static PyObject *__pyx_pf_5gipsy_29status(PyObject *__pyx_self, PyObject *__pyx_v_message); /*proto*/
static char __pyx_doc_5gipsy_29status[] = "Display status message. See status.dc2";
static PyMethodDef __pyx_mdef_5gipsy_29status = {__Pyx_NAMESTR("status"), (PyCFunction)__pyx_pf_5gipsy_29status, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_29status)};
static PyObject *__pyx_pf_5gipsy_29status(PyObject *__pyx_self, PyObject *__pyx_v_message) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("status");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1278
 * def status(message):
 *    "Display status message. See status.dc2"
 *    status_c(tofchar(message))             # <<<<<<<<<<<<<<
 * 
 * def decodeint(expr, nmax=4096): # test value; later: increase nmax
 */
  status_c(__pyx_f_5gipsy_tofchar(__pyx_v_message));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1280
 *    status_c(tofchar(message))
 * 
 * def decodeint(expr, nmax=4096): # test value; later: increase nmax             # <<<<<<<<<<<<<<
 *    "Decode a GIPSY integer expreession. See decodeint.dc2"
 *    cdef fint *buffer
 */

static PyObject *__pyx_pf_5gipsy_30decodeint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_30decodeint[] = "Decode a GIPSY integer expreession. See decodeint.dc2";
static PyMethodDef __pyx_mdef_5gipsy_30decodeint = {__Pyx_NAMESTR("decodeint"), (PyCFunction)__pyx_pf_5gipsy_30decodeint, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_30decodeint)};
static PyObject *__pyx_pf_5gipsy_30decodeint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_expr = 0;
  PyObject *__pyx_v_nmax = 0;
  fint *__pyx_v_buffer;
  fint __pyx_v_nmax_c;
  fint __pyx_v_status_c;
  fint __pyx_v_status;
  PyObject *__pyx_v_result = NULL;
  fint __pyx_v_i;
  fchar __pyx_v_c_errmsg;
  PyObject *__pyx_v_errmsg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  fint __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__expr,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("decodeint");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_4096);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__expr);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "decodeint") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_expr = values[0];
    __pyx_v_nmax = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("decodeint", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.decodeint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1283
 *    "Decode a GIPSY integer expreession. See decodeint.dc2"
 *    cdef fint *buffer
 *    cdef fint nmax_c=nmax             # <<<<<<<<<<<<<<
 *    cdef fint status_c
 *    buffer = <fint*>malloc(nmax*sizeof(fint))
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nmax_c = __pyx_t_1;

  /* "gipsy.pyx":1285
 *    cdef fint nmax_c=nmax
 *    cdef fint status_c
 *    buffer = <fint*>malloc(nmax*sizeof(fint))             # <<<<<<<<<<<<<<
 *    status = decodeint_c(tofchar(expr), buffer, &nmax_c)
 *    if status>0:
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(fint))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsSize_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_buffer = ((fint *)malloc(__pyx_t_4));

  /* "gipsy.pyx":1286
 *    cdef fint status_c
 *    buffer = <fint*>malloc(nmax*sizeof(fint))
 *    status = decodeint_c(tofchar(expr), buffer, &nmax_c)             # <<<<<<<<<<<<<<
 *    if status>0:
 *       if nmax==1:
 */
  __pyx_v_status = decodeint_c(__pyx_f_5gipsy_tofchar(__pyx_v_expr), __pyx_v_buffer, (&__pyx_v_nmax_c));

  /* "gipsy.pyx":1287
 *    buffer = <fint*>malloc(nmax*sizeof(fint))
 *    status = decodeint_c(tofchar(expr), buffer, &nmax_c)
 *    if status>0:             # <<<<<<<<<<<<<<
 *       if nmax==1:
 *          result = buffer[0]
 */
  __pyx_t_5 = (__pyx_v_status > 0);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1288
 *    status = decodeint_c(tofchar(expr), buffer, &nmax_c)
 *    if status>0:
 *       if nmax==1:             # <<<<<<<<<<<<<<
 *          result = buffer[0]
 *       else:
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_5) {

      /* "gipsy.pyx":1289
 *    if status>0:
 *       if nmax==1:
 *          result = buffer[0]             # <<<<<<<<<<<<<<
 *       else:
 *          result = []
 */
      __pyx_t_3 = __Pyx_PyInt_to_py_fint((__pyx_v_buffer[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_v_result = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L7;
    }
    /*else*/ {

      /* "gipsy.pyx":1291
 *          result = buffer[0]
 *       else:
 *          result = []             # <<<<<<<<<<<<<<
 *          for i in xrange(status):
 *             result.append(buffer[i])
 */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __pyx_v_result = ((PyObject *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "gipsy.pyx":1292
 *       else:
 *          result = []
 *          for i in xrange(status):             # <<<<<<<<<<<<<<
 *             result.append(buffer[i])
 *       free(buffer)
 */
      __pyx_t_1 = __pyx_v_status;
      for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_1; __pyx_t_6+=1) {
        __pyx_v_i = __pyx_t_6;

        /* "gipsy.pyx":1293
 *          result = []
 *          for i in xrange(status):
 *             result.append(buffer[i])             # <<<<<<<<<<<<<<
 *       free(buffer)
 *       return result
 */
        __pyx_t_3 = __Pyx_PyInt_to_py_fint((__pyx_v_buffer[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __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;
      }
    }
    __pyx_L7:;

    /* "gipsy.pyx":1294
 *          for i in xrange(status):
 *             result.append(buffer[i])
 *       free(buffer)             # <<<<<<<<<<<<<<
 *       return result
 *    else:
 */
    free(__pyx_v_buffer);

    /* "gipsy.pyx":1295
 *             result.append(buffer[i])
 *       free(buffer)
 *       return result             # <<<<<<<<<<<<<<
 *    else:
 *       free(buffer)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_result);
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":1297
 *       return result
 *    else:
 *       free(buffer)             # <<<<<<<<<<<<<<
 *       status_c = status
 *       c_errmsg = newfchar(80)
 */
    free(__pyx_v_buffer);

    /* "gipsy.pyx":1298
 *    else:
 *       free(buffer)
 *       status_c = status             # <<<<<<<<<<<<<<
 *       c_errmsg = newfchar(80)
 *       dcderrstr_c(c_errmsg, &status_c)
 */
    __pyx_v_status_c = __pyx_v_status;

    /* "gipsy.pyx":1299
 *       free(buffer)
 *       status_c = status
 *       c_errmsg = newfchar(80)             # <<<<<<<<<<<<<<
 *       dcderrstr_c(c_errmsg, &status_c)
 *       errmsg = c_errmsg.a
 */
    __pyx_v_c_errmsg = __pyx_f_5gipsy_newfchar(__pyx_int_80);

    /* "gipsy.pyx":1300
 *       status_c = status
 *       c_errmsg = newfchar(80)
 *       dcderrstr_c(c_errmsg, &status_c)             # <<<<<<<<<<<<<<
 *       errmsg = c_errmsg.a
 *       errmsg = errmsg.rstrip()
 */
    dcderrstr_c(__pyx_v_c_errmsg, (&__pyx_v_status_c));

    /* "gipsy.pyx":1301
 *       c_errmsg = newfchar(80)
 *       dcderrstr_c(c_errmsg, &status_c)
 *       errmsg = c_errmsg.a             # <<<<<<<<<<<<<<
 *       errmsg = errmsg.rstrip()
 *       delfchar(c_errmsg)
 */
    __pyx_t_2 = PyBytes_FromString(__pyx_v_c_errmsg.a); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_v_errmsg = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "gipsy.pyx":1302
 *       dcderrstr_c(c_errmsg, &status_c)
 *       errmsg = c_errmsg.a
 *       errmsg = errmsg.rstrip()             # <<<<<<<<<<<<<<
 *       delfchar(c_errmsg)
 *       raise GipsyError(errmsg)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_errmsg, __pyx_n_s__rstrip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_errmsg);
    __pyx_v_errmsg = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":1303
 *       errmsg = c_errmsg.a
 *       errmsg = errmsg.rstrip()
 *       delfchar(c_errmsg)             # <<<<<<<<<<<<<<
 *       raise GipsyError(errmsg)
 * 
 */
    __pyx_t_3 = __pyx_f_5gipsy_delfchar(__pyx_v_c_errmsg); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":1304
 *       errmsg = errmsg.rstrip()
 *       delfchar(c_errmsg)
 *       raise GipsyError(errmsg)             # <<<<<<<<<<<<<<
 * 
 * def decodefloat(expr, nmax=4096): # test value; later: increase nmax
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_v_errmsg);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_errmsg);
    __Pyx_GIVEREF(__pyx_v_errmsg);
    __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  __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_7);
  __Pyx_AddTraceback("gipsy.decodeint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_errmsg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1306
 *       raise GipsyError(errmsg)
 * 
 * def decodefloat(expr, nmax=4096): # test value; later: increase nmax             # <<<<<<<<<<<<<<
 *    "Decode a GIPSY integer expreession. See decodeint.dc2"
 *    cdef double *buffer
 */

static PyObject *__pyx_pf_5gipsy_31decodefloat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_31decodefloat[] = "Decode a GIPSY integer expreession. See decodeint.dc2";
static PyMethodDef __pyx_mdef_5gipsy_31decodefloat = {__Pyx_NAMESTR("decodefloat"), (PyCFunction)__pyx_pf_5gipsy_31decodefloat, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_31decodefloat)};
static PyObject *__pyx_pf_5gipsy_31decodefloat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_expr = 0;
  PyObject *__pyx_v_nmax = 0;
  double *__pyx_v_buffer;
  fint __pyx_v_nmax_c;
  fint __pyx_v_status_c;
  fint __pyx_v_status;
  PyObject *__pyx_v_result = NULL;
  fint __pyx_v_i;
  fchar __pyx_v_c_errmsg;
  PyObject *__pyx_v_errmsg = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  fint __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__expr,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("decodefloat");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_4096);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__expr);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "decodefloat") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_expr = values[0];
    __pyx_v_nmax = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("decodefloat", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.decodefloat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1309
 *    "Decode a GIPSY integer expreession. See decodeint.dc2"
 *    cdef double *buffer
 *    cdef fint nmax_c=nmax             # <<<<<<<<<<<<<<
 *    cdef fint status_c
 *    buffer = <double*>malloc(nmax*sizeof(double))
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nmax); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nmax_c = __pyx_t_1;

  /* "gipsy.pyx":1311
 *    cdef fint nmax_c=nmax
 *    cdef fint status_c
 *    buffer = <double*>malloc(nmax*sizeof(double))             # <<<<<<<<<<<<<<
 *    status = decodedble_c(tofchar(expr), buffer, &nmax_c)
 *    if status>0:
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(double))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_nmax, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsSize_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_buffer = ((double *)malloc(__pyx_t_4));

  /* "gipsy.pyx":1312
 *    cdef fint status_c
 *    buffer = <double*>malloc(nmax*sizeof(double))
 *    status = decodedble_c(tofchar(expr), buffer, &nmax_c)             # <<<<<<<<<<<<<<
 *    if status>0:
 *       if nmax==1:
 */
  __pyx_v_status = decodedble_c(__pyx_f_5gipsy_tofchar(__pyx_v_expr), __pyx_v_buffer, (&__pyx_v_nmax_c));

  /* "gipsy.pyx":1313
 *    buffer = <double*>malloc(nmax*sizeof(double))
 *    status = decodedble_c(tofchar(expr), buffer, &nmax_c)
 *    if status>0:             # <<<<<<<<<<<<<<
 *       if nmax==1:
 *          result = buffer[0]
 */
  __pyx_t_5 = (__pyx_v_status > 0);
  if (__pyx_t_5) {

    /* "gipsy.pyx":1314
 *    status = decodedble_c(tofchar(expr), buffer, &nmax_c)
 *    if status>0:
 *       if nmax==1:             # <<<<<<<<<<<<<<
 *          result = buffer[0]
 *       else:
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_nmax, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_5) {

      /* "gipsy.pyx":1315
 *    if status>0:
 *       if nmax==1:
 *          result = buffer[0]             # <<<<<<<<<<<<<<
 *       else:
 *          result = []
 */
      __pyx_t_3 = PyFloat_FromDouble((__pyx_v_buffer[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_v_result = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L7;
    }
    /*else*/ {

      /* "gipsy.pyx":1317
 *          result = buffer[0]
 *       else:
 *          result = []             # <<<<<<<<<<<<<<
 *          for i in xrange(status):
 *             result.append(buffer[i])
 */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __pyx_v_result = ((PyObject *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "gipsy.pyx":1318
 *       else:
 *          result = []
 *          for i in xrange(status):             # <<<<<<<<<<<<<<
 *             result.append(buffer[i])
 *       free(buffer)
 */
      __pyx_t_1 = __pyx_v_status;
      for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_1; __pyx_t_6+=1) {
        __pyx_v_i = __pyx_t_6;

        /* "gipsy.pyx":1319
 *          result = []
 *          for i in xrange(status):
 *             result.append(buffer[i])             # <<<<<<<<<<<<<<
 *       free(buffer)
 *       return result
 */
        __pyx_t_3 = PyFloat_FromDouble((__pyx_v_buffer[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __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;
      }
    }
    __pyx_L7:;

    /* "gipsy.pyx":1320
 *          for i in xrange(status):
 *             result.append(buffer[i])
 *       free(buffer)             # <<<<<<<<<<<<<<
 *       return result
 *    else:
 */
    free(__pyx_v_buffer);

    /* "gipsy.pyx":1321
 *             result.append(buffer[i])
 *       free(buffer)
 *       return result             # <<<<<<<<<<<<<<
 *    else:
 *       free(buffer)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_result);
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":1323
 *       return result
 *    else:
 *       free(buffer)             # <<<<<<<<<<<<<<
 *       status_c = status
 *       c_errmsg = newfchar(80)
 */
    free(__pyx_v_buffer);

    /* "gipsy.pyx":1324
 *    else:
 *       free(buffer)
 *       status_c = status             # <<<<<<<<<<<<<<
 *       c_errmsg = newfchar(80)
 *       dcderrstr_c(c_errmsg, &status_c)
 */
    __pyx_v_status_c = __pyx_v_status;

    /* "gipsy.pyx":1325
 *       free(buffer)
 *       status_c = status
 *       c_errmsg = newfchar(80)             # <<<<<<<<<<<<<<
 *       dcderrstr_c(c_errmsg, &status_c)
 *       errmsg = c_errmsg.a
 */
    __pyx_v_c_errmsg = __pyx_f_5gipsy_newfchar(__pyx_int_80);

    /* "gipsy.pyx":1326
 *       status_c = status
 *       c_errmsg = newfchar(80)
 *       dcderrstr_c(c_errmsg, &status_c)             # <<<<<<<<<<<<<<
 *       errmsg = c_errmsg.a
 *       errmsg = errmsg.rstrip()
 */
    dcderrstr_c(__pyx_v_c_errmsg, (&__pyx_v_status_c));

    /* "gipsy.pyx":1327
 *       c_errmsg = newfchar(80)
 *       dcderrstr_c(c_errmsg, &status_c)
 *       errmsg = c_errmsg.a             # <<<<<<<<<<<<<<
 *       errmsg = errmsg.rstrip()
 *       delfchar(c_errmsg)
 */
    __pyx_t_2 = PyBytes_FromString(__pyx_v_c_errmsg.a); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_v_errmsg = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "gipsy.pyx":1328
 *       dcderrstr_c(c_errmsg, &status_c)
 *       errmsg = c_errmsg.a
 *       errmsg = errmsg.rstrip()             # <<<<<<<<<<<<<<
 *       delfchar(c_errmsg)
 *       raise GipsyError(errmsg)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_errmsg, __pyx_n_s__rstrip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_errmsg);
    __pyx_v_errmsg = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":1329
 *       errmsg = c_errmsg.a
 *       errmsg = errmsg.rstrip()
 *       delfchar(c_errmsg)             # <<<<<<<<<<<<<<
 *       raise GipsyError(errmsg)
 * 
 */
    __pyx_t_3 = __pyx_f_5gipsy_delfchar(__pyx_v_c_errmsg); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":1330
 *       errmsg = errmsg.rstrip()
 *       delfchar(c_errmsg)
 *       raise GipsyError(errmsg)             # <<<<<<<<<<<<<<
 * 
 * def herconnect():
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_v_errmsg);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_errmsg);
    __Pyx_GIVEREF(__pyx_v_errmsg);
    __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  __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_7);
  __Pyx_AddTraceback("gipsy.decodefloat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_errmsg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1332
 *       raise GipsyError(errmsg)
 * 
 * def herconnect():             # <<<<<<<<<<<<<<
 *    "Get file descriptor for receiving Hermes events. See HerConnect.dc3"
 *    return HerConnect()
 */

static PyObject *__pyx_pf_5gipsy_32herconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_5gipsy_32herconnect[] = "Get file descriptor for receiving Hermes events. See HerConnect.dc3";
static PyMethodDef __pyx_mdef_5gipsy_32herconnect = {__Pyx_NAMESTR("herconnect"), (PyCFunction)__pyx_pf_5gipsy_32herconnect, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_5gipsy_32herconnect)};
static PyObject *__pyx_pf_5gipsy_32herconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("herconnect");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1334
 * def herconnect():
 *    "Get file descriptor for receiving Hermes events. See HerConnect.dc3"
 *    return HerConnect()             # <<<<<<<<<<<<<<
 * 
 * def eventmonitor(char *key=NULL, bool state=True):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(HerConnect()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.herconnect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1336
 *    return HerConnect()
 * 
 * def eventmonitor(char *key=NULL, bool state=True):             # <<<<<<<<<<<<<<
 *    return c_eventmonitor(key, state)
 * 
 */

static PyObject *__pyx_pf_5gipsy_33eventmonitor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_33eventmonitor = {__Pyx_NAMESTR("eventmonitor"), (PyCFunction)__pyx_pf_5gipsy_33eventmonitor, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_33eventmonitor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_key;
  bool __pyx_v_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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__state,0};
  __Pyx_RefNannySetupContext("eventmonitor");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__state);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "eventmonitor") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_key = PyBytes_AsString(values[0]); if (unlikely((!__pyx_v_key) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_key = ((char *)NULL);
    }
    if (values[1]) {
      __pyx_v_state = __Pyx_PyInt_from_py_bool(values[1]); if (unlikely((__pyx_v_state == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_state = ((bool)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("eventmonitor", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.eventmonitor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1337
 * 
 * def eventmonitor(char *key=NULL, bool state=True):
 *    return c_eventmonitor(key, state)             # <<<<<<<<<<<<<<
 * 
 * def hersignal(fd=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_bool(eventmonitor(__pyx_v_key, __pyx_v_state)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.eventmonitor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1339
 *    return c_eventmonitor(key, state)
 * 
 * def hersignal(fd=0):             # <<<<<<<<<<<<<<
 *    "Cause pending Hermes events to be processed. See HerSignal.dc3"
 *    HerSignal()
 */

static PyObject *__pyx_pf_5gipsy_34hersignal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_34hersignal[] = "Cause pending Hermes events to be processed. See HerSignal.dc3";
static PyMethodDef __pyx_mdef_5gipsy_34hersignal = {__Pyx_NAMESTR("hersignal"), (PyCFunction)__pyx_pf_5gipsy_34hersignal, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_34hersignal)};
static PyObject *__pyx_pf_5gipsy_34hersignal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fd = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fd,0};
  __Pyx_RefNannySetupContext("hersignal");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fd);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "hersignal") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_fd = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("hersignal", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.hersignal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1341
 * def hersignal(fd=0):
 *    "Cause pending Hermes events to be processed. See HerSignal.dc3"
 *    HerSignal()             # <<<<<<<<<<<<<<
 * 
 * def qtconnect():
 */
  HerSignal();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1343
 *    HerSignal()
 * 
 * def qtconnect():             # <<<<<<<<<<<<<<
 *    global gip_nfy
 *    if not has_pyqt4:
 */

static PyObject *__pyx_pf_5gipsy_35qtconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_35qtconnect = {__Pyx_NAMESTR("qtconnect"), (PyCFunction)__pyx_pf_5gipsy_35qtconnect, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_35qtconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_v_fd = 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;
  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("qtconnect");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1345
 * def qtconnect():
 *    global gip_nfy
 *    if not has_pyqt4:             # <<<<<<<<<<<<<<
 *       raise GipsyError("Cannot connect to PyQt4")
 *    fd = herconnect()
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_pyqt4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1346
 *    global gip_nfy
 *    if not has_pyqt4:
 *       raise GipsyError("Cannot connect to PyQt4")             # <<<<<<<<<<<<<<
 *    fd = herconnect()
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_85), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":1347
 *    if not has_pyqt4:
 *       raise GipsyError("Cannot connect to PyQt4")
 *    fd = herconnect()             # <<<<<<<<<<<<<<
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
 *    gip_nfy.connect(gip_nfy, QtCore.SIGNAL("activated(int)"), hersignal)
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__herconnect); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_fd = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1348
 *       raise GipsyError("Cannot connect to PyQt4")
 *    fd = herconnect()
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)             # <<<<<<<<<<<<<<
 *    gip_nfy.connect(gip_nfy, QtCore.SIGNAL("activated(int)"), hersignal)
 *    TimeCallback.cls = TimeCallback_QT4
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QSocketNotifier); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QSocketNotifier); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__Read); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_v_fd);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_fd);
  __Pyx_GIVEREF(__pyx_v_fd);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gip_nfy, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1349
 *    fd = herconnect()
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
 *    gip_nfy.connect(gip_nfy, QtCore.SIGNAL("activated(int)"), hersignal)             # <<<<<<<<<<<<<<
 *    TimeCallback.cls = TimeCallback_QT4
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gip_nfy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__connect); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gip_nfy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__SIGNAL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_87), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__hersignal); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1350
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
 *    gip_nfy.connect(gip_nfy, QtCore.SIGNAL("activated(int)"), hersignal)
 *    TimeCallback.cls = TimeCallback_QT4             # <<<<<<<<<<<<<<
 * 
 * def _gtkio(source, cb_condition):
 */
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback_QT4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (PyObject_SetAttr(__pyx_t_7, __pyx_n_s__cls, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  __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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("gipsy.qtconnect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_fd);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1352
 *    TimeCallback.cls = TimeCallback_QT4
 * 
 * def _gtkio(source, cb_condition):             # <<<<<<<<<<<<<<
 * #  Callback function for GTK io_add_watch()"
 *    hersignal()
 */

static PyObject *__pyx_pf_5gipsy_36_gtkio(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_36_gtkio = {__Pyx_NAMESTR("_gtkio"), (PyCFunction)__pyx_pf_5gipsy_36_gtkio, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_36_gtkio(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_source = 0;
  PyObject *__pyx_v_cb_condition = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__source,&__pyx_n_s__cb_condition,0};
  __Pyx_RefNannySetupContext("_gtkio");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__source);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cb_condition);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_gtkio", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_gtkio") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_source = values[0];
    __pyx_v_cb_condition = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_gtkio", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._gtkio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1354
 * def _gtkio(source, cb_condition):
 * #  Callback function for GTK io_add_watch()"
 *    hersignal()             # <<<<<<<<<<<<<<
 *    return True
 * def gtkconnect():
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__hersignal); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":1355
 * #  Callback function for GTK io_add_watch()"
 *    hersignal()
 *    return True             # <<<<<<<<<<<<<<
 * def gtkconnect():
 *    global gip_nfy
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy._gtkio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1356
 *    hersignal()
 *    return True
 * def gtkconnect():             # <<<<<<<<<<<<<<
 *    global gip_nfy
 *    if not has_gtk:
 */

static PyObject *__pyx_pf_5gipsy_37gtkconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_37gtkconnect = {__Pyx_NAMESTR("gtkconnect"), (PyCFunction)__pyx_pf_5gipsy_37gtkconnect, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_37gtkconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_v_fd = 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;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gtkconnect");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1358
 * def gtkconnect():
 *    global gip_nfy
 *    if not has_gtk:             # <<<<<<<<<<<<<<
 *       raise GipsyError("Cannot connect to GTK")
 *    fd = herconnect()
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_gtk); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1359
 *    global gip_nfy
 *    if not has_gtk:
 *       raise GipsyError("Cannot connect to GTK")             # <<<<<<<<<<<<<<
 *    fd = herconnect()
 *    gip_nfy = gobject.io_add_watch(fd, gobject.IO_IN, _gtkio)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_89), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":1360
 *    if not has_gtk:
 *       raise GipsyError("Cannot connect to GTK")
 *    fd = herconnect()             # <<<<<<<<<<<<<<
 *    gip_nfy = gobject.io_add_watch(fd, gobject.IO_IN, _gtkio)
 *    TimeCallback.cls = TimeCallback_GTK
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__herconnect); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_fd = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1361
 *       raise GipsyError("Cannot connect to GTK")
 *    fd = herconnect()
 *    gip_nfy = gobject.io_add_watch(fd, gobject.IO_IN, _gtkio)             # <<<<<<<<<<<<<<
 *    TimeCallback.cls = TimeCallback_GTK
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gobject); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__io_add_watch); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gobject); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__IO_IN); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___gtkio); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_v_fd);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_fd);
  __Pyx_GIVEREF(__pyx_v_fd);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_5 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gip_nfy, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1362
 *    fd = herconnect()
 *    gip_nfy = gobject.io_add_watch(fd, gobject.IO_IN, _gtkio)
 *    TimeCallback.cls = TimeCallback_GTK             # <<<<<<<<<<<<<<
 * 
 * def _tkio(fd, mask):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback_GTK); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetAttr(__pyx_t_6, __pyx_n_s__cls, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  __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_6);
  __Pyx_AddTraceback("gipsy.gtkconnect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_fd);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1364
 *    TimeCallback.cls = TimeCallback_GTK
 * 
 * def _tkio(fd, mask):             # <<<<<<<<<<<<<<
 * #  Callback function for Tk createfilehandler()
 *    hersignal()
 */

static PyObject *__pyx_pf_5gipsy_38_tkio(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_38_tkio = {__Pyx_NAMESTR("_tkio"), (PyCFunction)__pyx_pf_5gipsy_38_tkio, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_38_tkio(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fd = 0;
  PyObject *__pyx_v_mask = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fd,&__pyx_n_s__mask,0};
  __Pyx_RefNannySetupContext("_tkio");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fd);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mask);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_tkio", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_tkio") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_fd = values[0];
    __pyx_v_mask = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_tkio", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._tkio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1366
 * def _tkio(fd, mask):
 * #  Callback function for Tk createfilehandler()
 *    hersignal()             # <<<<<<<<<<<<<<
 * def tkconnect():
 *    global gip_nfy
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__hersignal); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1366; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy._tkio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1367
 * #  Callback function for Tk createfilehandler()
 *    hersignal()
 * def tkconnect():             # <<<<<<<<<<<<<<
 *    global gip_nfy
 *    if not has_tk:
 */

static PyObject *__pyx_pf_5gipsy_39tkconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_39tkconnect = {__Pyx_NAMESTR("tkconnect"), (PyCFunction)__pyx_pf_5gipsy_39tkconnect, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_39tkconnect(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_v_fd = 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;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tkconnect");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1369
 * def tkconnect():
 *    global gip_nfy
 *    if not has_tk:             # <<<<<<<<<<<<<<
 *       raise GipsyError("Cannot connect to Tk")
 *    fd = herconnect()
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_tk); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1370
 *    global gip_nfy
 *    if not has_tk:
 *       raise GipsyError("Cannot connect to Tk")             # <<<<<<<<<<<<<<
 *    fd = herconnect()
 *    tkinter.createfilehandler(fd, tkinter.READABLE, _tkio)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_91), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":1371
 *    if not has_tk:
 *       raise GipsyError("Cannot connect to Tk")
 *    fd = herconnect()             # <<<<<<<<<<<<<<
 *    tkinter.createfilehandler(fd, tkinter.READABLE, _tkio)
 *    TimeCallback.cls = TimeCallback_NotImpl
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__herconnect); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_fd = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1372
 *       raise GipsyError("Cannot connect to Tk")
 *    fd = herconnect()
 *    tkinter.createfilehandler(fd, tkinter.READABLE, _tkio)             # <<<<<<<<<<<<<<
 *    TimeCallback.cls = TimeCallback_NotImpl
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tkinter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__createfilehandler); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__tkinter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__READABLE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___tkio); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_v_fd);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_fd);
  __Pyx_GIVEREF(__pyx_v_fd);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_5 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1373
 *    fd = herconnect()
 *    tkinter.createfilehandler(fd, tkinter.READABLE, _tkio)
 *    TimeCallback.cls = TimeCallback_NotImpl             # <<<<<<<<<<<<<<
 * 
 * def mainloop():
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_92); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetAttr(__pyx_t_6, __pyx_n_s__cls, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  __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_6);
  __Pyx_AddTraceback("gipsy.tkconnect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_fd);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1375
 *    TimeCallback.cls = TimeCallback_NotImpl
 * 
 * def mainloop():             # <<<<<<<<<<<<<<
 *    with nogil:
 *       MainLoop()
 */

static PyObject *__pyx_pf_5gipsy_40mainloop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_40mainloop = {__Pyx_NAMESTR("mainloop"), (PyCFunction)__pyx_pf_5gipsy_40mainloop, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_40mainloop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mainloop");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1376
 * 
 * def mainloop():
 *    with nogil:             # <<<<<<<<<<<<<<
 *       MainLoop()
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save = NULL;
      #endif
      Py_UNBLOCK_THREADS
      /*try:*/ {

        /* "gipsy.pyx":1377
 * def mainloop():
 *    with nogil:
 *       MainLoop()             # <<<<<<<<<<<<<<
 * 
 * def myname():
 */
        MainLoop();
      }

      /* "gipsy.pyx":1376
 * 
 * def mainloop():
 *    with nogil:             # <<<<<<<<<<<<<<
 *       MainLoop()
 * 
 */
      /*finally:*/ {
        Py_BLOCK_THREADS
      }
  }

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1379
 *       MainLoop()
 * 
 * def myname():             # <<<<<<<<<<<<<<
 *    "Obtain current task name. See myname.dc2"
 *    cdef fchar c_result
 */

static PyObject *__pyx_pf_5gipsy_41myname(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_5gipsy_41myname[] = "Obtain current task name. See myname.dc2";
static PyMethodDef __pyx_mdef_5gipsy_41myname = {__Pyx_NAMESTR("myname"), (PyCFunction)__pyx_pf_5gipsy_41myname, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_5gipsy_41myname)};
static PyObject *__pyx_pf_5gipsy_41myname(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fchar __pyx_v_c_result;
  PyObject *__pyx_v_result = 0;
  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("myname");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1383
 *    cdef fchar c_result
 *    cdef bytes result
 *    c_result = newfchar(20)             # <<<<<<<<<<<<<<
 *    myname_c(c_result)
 *    result = c_result.a
 */
  __pyx_v_c_result = __pyx_f_5gipsy_newfchar(__pyx_int_20);

  /* "gipsy.pyx":1384
 *    cdef bytes result
 *    c_result = newfchar(20)
 *    myname_c(c_result)             # <<<<<<<<<<<<<<
 *    result = c_result.a
 *    result = result.rstrip()
 */
  myname_c(__pyx_v_c_result);

  /* "gipsy.pyx":1385
 *    c_result = newfchar(20)
 *    myname_c(c_result)
 *    result = c_result.a             # <<<<<<<<<<<<<<
 *    result = result.rstrip()
 *    delfchar(c_result)
 */
  __pyx_t_1 = PyBytes_FromString(__pyx_v_c_result.a); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1386
 *    myname_c(c_result)
 *    result = c_result.a
 *    result = result.rstrip()             # <<<<<<<<<<<<<<
 *    delfchar(c_result)
 *    return result
 */
  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_result), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_v_result));
  __pyx_v_result = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "gipsy.pyx":1387
 *    result = c_result.a
 *    result = result.rstrip()
 *    delfchar(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_t_2 = __pyx_f_5gipsy_delfchar(__pyx_v_c_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1388
 *    result = result.rstrip()
 *    delfchar(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def cubicspline(xus, yus, sampdist):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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("gipsy.myname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1390
 *    return result
 * 
 * def cubicspline(xus, yus, sampdist):             # <<<<<<<<<<<<<<
 *    cdef long xus_l, yus_l
 *    cdef float *xus0_c, *yus0_c, splg_c
 */

static PyObject *__pyx_pf_5gipsy_42cubicspline(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_42cubicspline = {__Pyx_NAMESTR("cubicspline"), (PyCFunction)__pyx_pf_5gipsy_42cubicspline, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_42cubicspline(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_xus = 0;
  PyObject *__pyx_v_yus = 0;
  PyObject *__pyx_v_sampdist = 0;
  long __pyx_v_xus_l;
  long __pyx_v_yus_l;
  float *__pyx_v_xus0_c;
  float *__pyx_v_yus0_c;
  float __pyx_v_splg_c;
  fint __pyx_v_nout_c;
  fint __pyx_v_i;
  PyObject *__pyx_v_xus_ptr = NULL;
  PyObject *__pyx_v_np_c = NULL;
  PyObject *__pyx_v_yus_ptr = NULL;
  PyObject *__pyx_v_xus0 = NULL;
  PyObject *__pyx_v_yus0 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_t_5;
  float __pyx_t_6;
  fint __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xus,&__pyx_n_s__yus,&__pyx_n_s__sampdist,0};
  __Pyx_RefNannySetupContext("cubicspline");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xus);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yus);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cubicspline", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sampdist);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cubicspline", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "cubicspline") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_xus = values[0];
    __pyx_v_yus = values[1];
    __pyx_v_sampdist = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cubicspline", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.cubicspline", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1394
 *    cdef float *xus0_c, *yus0_c, splg_c
 *    cdef fint nout_c, i
 *    xus_ptr = realptr(xus); xus_l = xus_ptr.ptr; np_c = xus_ptr.n             # <<<<<<<<<<<<<<
 *    yus_ptr = realptr(yus); yus_l = yus_ptr.ptr
 *    c_cubicspline(<float*>xus_l, <float*>yus_l, np_c, sampdist,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_xus);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_xus);
  __Pyx_GIVEREF(__pyx_v_xus);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_xus_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_xus_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_xus_l = __pyx_t_4;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_xus_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_np_c = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":1395
 *    cdef fint nout_c, i
 *    xus_ptr = realptr(xus); xus_l = xus_ptr.ptr; np_c = xus_ptr.n
 *    yus_ptr = realptr(yus); yus_l = yus_ptr.ptr             # <<<<<<<<<<<<<<
 *    c_cubicspline(<float*>xus_l, <float*>yus_l, np_c, sampdist,
 *                  &xus0_c, &yus0_c, &nout_c, &splg_c)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_yus);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_yus);
  __Pyx_GIVEREF(__pyx_v_yus);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_yus_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_yus_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_yus_l = __pyx_t_4;

  /* "gipsy.pyx":1396
 *    xus_ptr = realptr(xus); xus_l = xus_ptr.ptr; np_c = xus_ptr.n
 *    yus_ptr = realptr(yus); yus_l = yus_ptr.ptr
 *    c_cubicspline(<float*>xus_l, <float*>yus_l, np_c, sampdist,             # <<<<<<<<<<<<<<
 *                  &xus0_c, &yus0_c, &nout_c, &splg_c)
 *    xus0 = []
 */
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_v_np_c); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_sampdist); if (unlikely((__pyx_t_6 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1397
 *    yus_ptr = realptr(yus); yus_l = yus_ptr.ptr
 *    c_cubicspline(<float*>xus_l, <float*>yus_l, np_c, sampdist,
 *                  &xus0_c, &yus0_c, &nout_c, &splg_c)             # <<<<<<<<<<<<<<
 *    xus0 = []
 *    yus0 = []
 */
  cubicspline(((float *)__pyx_v_xus_l), ((float *)__pyx_v_yus_l), __pyx_t_5, __pyx_t_6, (&__pyx_v_xus0_c), (&__pyx_v_yus0_c), (&__pyx_v_nout_c), (&__pyx_v_splg_c));

  /* "gipsy.pyx":1398
 *    c_cubicspline(<float*>xus_l, <float*>yus_l, np_c, sampdist,
 *                  &xus0_c, &yus0_c, &nout_c, &splg_c)
 *    xus0 = []             # <<<<<<<<<<<<<<
 *    yus0 = []
 *    for i from 0 <= i < nout_c:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_xus0 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1399
 *                  &xus0_c, &yus0_c, &nout_c, &splg_c)
 *    xus0 = []
 *    yus0 = []             # <<<<<<<<<<<<<<
 *    for i from 0 <= i < nout_c:
 *       xus0.append(xus0_c[i])
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_yus0 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1400
 *    xus0 = []
 *    yus0 = []
 *    for i from 0 <= i < nout_c:             # <<<<<<<<<<<<<<
 *       xus0.append(xus0_c[i])
 *       yus0.append(yus0_c[i])
 */
  __pyx_t_7 = __pyx_v_nout_c;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) {

    /* "gipsy.pyx":1401
 *    yus0 = []
 *    for i from 0 <= i < nout_c:
 *       xus0.append(xus0_c[i])             # <<<<<<<<<<<<<<
 *       yus0.append(yus0_c[i])
 *    free(xus0_c)
 */
    if (unlikely(((PyObject *)__pyx_v_xus0) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_xus0_c[__pyx_v_i])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyList_Append(__pyx_v_xus0, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":1402
 *    for i from 0 <= i < nout_c:
 *       xus0.append(xus0_c[i])
 *       yus0.append(yus0_c[i])             # <<<<<<<<<<<<<<
 *    free(xus0_c)
 *    free(yus0_c)
 */
    if (unlikely(((PyObject *)__pyx_v_yus0) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_yus0_c[__pyx_v_i])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyList_Append(__pyx_v_yus0, __pyx_t_1); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "gipsy.pyx":1403
 *       xus0.append(xus0_c[i])
 *       yus0.append(yus0_c[i])
 *    free(xus0_c)             # <<<<<<<<<<<<<<
 *    free(yus0_c)
 *    return (xus0, yus0, splg_c)
 */
  free(__pyx_v_xus0_c);

  /* "gipsy.pyx":1404
 *       yus0.append(yus0_c[i])
 *    free(xus0_c)
 *    free(yus0_c)             # <<<<<<<<<<<<<<
 *    return (xus0, yus0, splg_c)
 * 
 */
  free(__pyx_v_yus0_c);

  /* "gipsy.pyx":1405
 *    free(xus0_c)
 *    free(yus0_c)
 *    return (xus0, yus0, splg_c)             # <<<<<<<<<<<<<<
 * 
 * def polymask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, polyX, polyY):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_splg_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(((PyObject *)__pyx_v_xus0));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_xus0));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_xus0));
  __Pyx_INCREF(((PyObject *)__pyx_v_yus0));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_yus0));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_yus0));
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy.cubicspline", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xus_ptr);
  __Pyx_XDECREF(__pyx_v_np_c);
  __Pyx_XDECREF(__pyx_v_yus_ptr);
  __Pyx_XDECREF(__pyx_v_xus0);
  __Pyx_XDECREF(__pyx_v_yus0);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1407
 *    return (xus0, yus0, splg_c)
 * 
 * def polymask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, polyX, polyY):             # <<<<<<<<<<<<<<
 *    cdef int np_c
 *    cdef long polyX_l, polyY_l
 */

static PyObject *__pyx_pf_5gipsy_43polymask(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_43polymask = {__Pyx_NAMESTR("polymask"), (PyCFunction)__pyx_pf_5gipsy_43polymask, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_43polymask(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_xlo_c;
  int __pyx_v_ylo_c;
  int __pyx_v_xhi_c;
  int __pyx_v_yhi_c;
  PyObject *__pyx_v_polyX = 0;
  PyObject *__pyx_v_polyY = 0;
  int __pyx_v_np_c;
  long __pyx_v_polyX_l;
  long __pyx_v_polyY_l;
  PyObject *__pyx_v_result_c = 0;
  PyObject *__pyx_v_polyX_ptr = NULL;
  PyObject *__pyx_v_polyY_ptr = NULL;
  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;
  long __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xlo_c,&__pyx_n_s__ylo_c,&__pyx_n_s__xhi_c,&__pyx_n_s__yhi_c,&__pyx_n_s__polyX,&__pyx_n_s__polyY,0};
  __Pyx_RefNannySetupContext("polymask");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xlo_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ylo_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("polymask", 1, 6, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xhi_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("polymask", 1, 6, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yhi_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("polymask", 1, 6, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__polyX);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("polymask", 1, 6, 6, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__polyY);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("polymask", 1, 6, 6, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "polymask") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_xlo_c = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_xlo_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ylo_c = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_ylo_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_xhi_c = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_xhi_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_yhi_c = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_yhi_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_polyX = values[4];
    __pyx_v_polyY = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("polymask", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.polymask", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1411
 *    cdef long polyX_l, polyY_l
 *    cdef object result_c
 *    polyX_ptr = realptr(polyX); polyX_l = polyX_ptr.ptr; np_c = polyX_ptr.n             # <<<<<<<<<<<<<<
 *    polyY_ptr = realptr(polyY); polyY_l = polyY_ptr.ptr; np_c = polyY_ptr.n
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_polyX);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_polyX);
  __Pyx_GIVEREF(__pyx_v_polyX);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_polyX_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_polyX_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_polyX_l = __pyx_t_4;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_polyX_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_np_c = __pyx_t_5;

  /* "gipsy.pyx":1412
 *    cdef object result_c
 *    polyX_ptr = realptr(polyX); polyX_l = polyX_ptr.ptr; np_c = polyX_ptr.n
 *    polyY_ptr = realptr(polyY); polyY_l = polyY_ptr.ptr; np_c = polyY_ptr.n             # <<<<<<<<<<<<<<
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 *    result_c = <object>result
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_polyY);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_polyY);
  __Pyx_GIVEREF(__pyx_v_polyY);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_polyY_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_polyY_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_polyY_l = __pyx_t_4;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_polyY_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_np_c = __pyx_t_5;

  /* "gipsy.pyx":1413
 *    polyX_ptr = realptr(polyX); polyX_l = polyX_ptr.ptr; np_c = polyX_ptr.n
 *    polyY_ptr = realptr(polyY); polyY_l = polyY_ptr.ptr; np_c = polyY_ptr.n
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)             # <<<<<<<<<<<<<<
 *    result_c = <object>result
 *    scanline(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromLong(((__pyx_v_yhi_c - __pyx_v_ylo_c) + 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyInt_FromLong(((__pyx_v_xhi_c - __pyx_v_xlo_c) + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_6));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
  __pyx_t_6 = 0;
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int32); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __pyx_v_result = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "gipsy.pyx":1414
 *    polyY_ptr = realptr(polyY); polyY_l = polyY_ptr.ptr; np_c = polyY_ptr.n
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 *    result_c = <object>result             # <<<<<<<<<<<<<<
 *    scanline(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 *             <float*>polyX_l, <float*>polyY_l, np_c)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_v_result_c = __pyx_v_result;

  /* "gipsy.pyx":1415
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 *    result_c = <object>result
 *    scanline(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,             # <<<<<<<<<<<<<<
 *             <float*>polyX_l, <float*>polyY_l, np_c)
 *    return result
 */
  if (!(likely(((__pyx_v_result_c) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_result_c, __pyx_ptype_7c_numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = __pyx_v_result_c;
  __Pyx_INCREF(__pyx_t_7);

  /* "gipsy.pyx":1416
 *    result_c = <object>result
 *    scanline(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 *             <float*>polyX_l, <float*>polyY_l, np_c)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  scanline(((int *)PyArray_DATA(((PyArrayObject *)__pyx_t_7))), __pyx_v_xlo_c, __pyx_v_ylo_c, __pyx_v_xhi_c, __pyx_v_yhi_c, ((float *)__pyx_v_polyX_l), ((float *)__pyx_v_polyY_l), __pyx_v_np_c);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "gipsy.pyx":1417
 *    scanline(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 *             <float*>polyX_l, <float*>polyY_l, np_c)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def ellipsemask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, ellpar):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_7);
  __Pyx_AddTraceback("gipsy.polymask", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result_c);
  __Pyx_XDECREF(__pyx_v_polyX_ptr);
  __Pyx_XDECREF(__pyx_v_polyY_ptr);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1419
 *    return result
 * 
 * def ellipsemask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, ellpar):             # <<<<<<<<<<<<<<
 *    cdef long ellpar_l
 *    cdef object result_c
 */

static PyObject *__pyx_pf_5gipsy_44ellipsemask(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_44ellipsemask = {__Pyx_NAMESTR("ellipsemask"), (PyCFunction)__pyx_pf_5gipsy_44ellipsemask, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_44ellipsemask(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_xlo_c;
  int __pyx_v_ylo_c;
  int __pyx_v_xhi_c;
  int __pyx_v_yhi_c;
  PyObject *__pyx_v_ellpar = 0;
  long __pyx_v_ellpar_l;
  PyObject *__pyx_v_result_c = 0;
  PyObject *__pyx_v_ellpar_ptr = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  long __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xlo_c,&__pyx_n_s__ylo_c,&__pyx_n_s__xhi_c,&__pyx_n_s__yhi_c,&__pyx_n_s__ellpar,0};
  __Pyx_RefNannySetupContext("ellipsemask");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xlo_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ylo_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ellipsemask", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xhi_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ellipsemask", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yhi_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ellipsemask", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ellpar);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ellipsemask", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ellipsemask") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_xlo_c = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_xlo_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ylo_c = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_ylo_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_xhi_c = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_xhi_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_yhi_c = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_yhi_c == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ellpar = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ellipsemask", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.ellipsemask", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1422
 *    cdef long ellpar_l
 *    cdef object result_c
 *    if len(ellpar)!=5:             # <<<<<<<<<<<<<<
 *       raise ValueError('Bad ellipse parameters')
 *    ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_ellpar); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (__pyx_t_1 != 5);
  if (__pyx_t_2) {

    /* "gipsy.pyx":1423
 *    cdef object result_c
 *    if len(ellpar)!=5:
 *       raise ValueError('Bad ellipse parameters')             # <<<<<<<<<<<<<<
 *    ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 */
    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_94), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1424
 *    if len(ellpar)!=5:
 *       raise ValueError('Bad ellipse parameters')
 *    ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr             # <<<<<<<<<<<<<<
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 *    result_c = <object>result
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_ellpar);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ellpar);
  __Pyx_GIVEREF(__pyx_v_ellpar);
  __Pyx_INCREF(__pyx_int_5);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_ellpar_ptr = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_ellpar_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_t_5); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_ellpar_l = __pyx_t_6;

  /* "gipsy.pyx":1425
 *       raise ValueError('Bad ellipse parameters')
 *    ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)             # <<<<<<<<<<<<<<
 *    result_c = <object>result
 *    ellipsefill(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromLong(((__pyx_v_yhi_c - __pyx_v_ylo_c) + 1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyInt_FromLong(((__pyx_v_xhi_c - __pyx_v_xlo_c) + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_5 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_7));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
  __pyx_t_7 = 0;
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__int32); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__dtype), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __pyx_v_result = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "gipsy.pyx":1426
 *    ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 *    result_c = <object>result             # <<<<<<<<<<<<<<
 *    ellipsefill(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 *                <float*>ellpar_l)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_v_result_c = __pyx_v_result;

  /* "gipsy.pyx":1427
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 *    result_c = <object>result
 *    ellipsefill(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,             # <<<<<<<<<<<<<<
 *                <float*>ellpar_l)
 *    return result
 */
  if (!(likely(((__pyx_v_result_c) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_result_c, __pyx_ptype_7c_numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = __pyx_v_result_c;
  __Pyx_INCREF(__pyx_t_8);

  /* "gipsy.pyx":1428
 *    result_c = <object>result
 *    ellipsefill(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 *                <float*>ellpar_l)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  ellipsefill(((int *)PyArray_DATA(((PyArrayObject *)__pyx_t_8))), __pyx_v_xlo_c, __pyx_v_ylo_c, __pyx_v_xhi_c, __pyx_v_yhi_c, ((float *)__pyx_v_ellpar_l));
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "gipsy.pyx":1429
 *    ellipsefill(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
 *                <float*>ellpar_l)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def evalexpr(expr, nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("gipsy.ellipsemask", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result_c);
  __Pyx_XDECREF(__pyx_v_ellpar_ptr);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1431
 *    return result
 * 
 * def evalexpr(expr, nmax=1):             # <<<<<<<<<<<<<<
 *    return decodefloat(expr, nmax)
 * 
 */

static PyObject *__pyx_pf_5gipsy_45evalexpr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_45evalexpr = {__Pyx_NAMESTR("evalexpr"), (PyCFunction)__pyx_pf_5gipsy_45evalexpr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_45evalexpr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_expr = 0;
  PyObject *__pyx_v_nmax = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__expr,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("evalexpr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__expr);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "evalexpr") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_expr = values[0];
    __pyx_v_nmax = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("evalexpr", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.evalexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1432
 * 
 * def evalexpr(expr, nmax=1):
 *    return decodefloat(expr, nmax)             # <<<<<<<<<<<<<<
 * 
 * def evalexpr_old(expr, fint nmax=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__decodefloat); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_expr);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_expr);
  __Pyx_GIVEREF(__pyx_v_expr);
  __Pyx_INCREF(__pyx_v_nmax);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_nmax);
  __Pyx_GIVEREF(__pyx_v_nmax);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.evalexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1434
 *    return decodefloat(expr, nmax)
 * 
 * def evalexpr_old(expr, fint nmax=1):             # <<<<<<<<<<<<<<
 *    cdef double *c_result
 *    cdef fint c_ierh
 */

static PyObject *__pyx_pf_5gipsy_46evalexpr_old(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_46evalexpr_old = {__Pyx_NAMESTR("evalexpr_old"), (PyCFunction)__pyx_pf_5gipsy_46evalexpr_old, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_46evalexpr_old(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_expr = 0;
  fint __pyx_v_nmax;
  double *__pyx_v_c_result;
  fint __pyx_v_c_ierh;
  fint __pyx_v_n;
  PyObject *__pyx_v_result = NULL;
  long __pyx_v_i;
  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;
  fint __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__expr,&__pyx_n_s__nmax,0};
  __Pyx_RefNannySetupContext("evalexpr_old");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__expr);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nmax);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "evalexpr_old") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_expr = values[0];
    if (values[1]) {
      __pyx_v_nmax = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_nmax == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_nmax = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("evalexpr_old", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.evalexpr_old", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1437
 *    cdef double *c_result
 *    cdef fint c_ierh
 *    c_result  = <double*>malloc(nmax*sizeof(double))             # <<<<<<<<<<<<<<
 *    n = dcddble_c(tofchar(expr), c_result, &nmax, &c_ierh)
 *    if c_ierh<0:
 */
  __pyx_v_c_result = ((double *)malloc((__pyx_v_nmax * (sizeof(double)))));

  /* "gipsy.pyx":1438
 *    cdef fint c_ierh
 *    c_result  = <double*>malloc(nmax*sizeof(double))
 *    n = dcddble_c(tofchar(expr), c_result, &nmax, &c_ierh)             # <<<<<<<<<<<<<<
 *    if c_ierh<0:
 *       raise GipsyError('Bad expression (code %d from herinp.dc2) "%s"' % (c_ierh, expr))
 */
  __pyx_v_n = dcddble_c(__pyx_f_5gipsy_tofchar(__pyx_v_expr), __pyx_v_c_result, (&__pyx_v_nmax), (&__pyx_v_c_ierh));

  /* "gipsy.pyx":1439
 *    c_result  = <double*>malloc(nmax*sizeof(double))
 *    n = dcddble_c(tofchar(expr), c_result, &nmax, &c_ierh)
 *    if c_ierh<0:             # <<<<<<<<<<<<<<
 *       raise GipsyError('Bad expression (code %d from herinp.dc2) "%s"' % (c_ierh, expr))
 *    if nmax==1:
 */
  __pyx_t_1 = (__pyx_v_c_ierh < 0);
  if (__pyx_t_1) {

    /* "gipsy.pyx":1440
 *    n = dcddble_c(tofchar(expr), c_result, &nmax, &c_ierh)
 *    if c_ierh<0:
 *       raise GipsyError('Bad expression (code %d from herinp.dc2) "%s"' % (c_ierh, expr))             # <<<<<<<<<<<<<<
 *    if nmax==1:
 *       result = c_result[0]
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_c_ierh); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_expr);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_expr);
    __Pyx_GIVEREF(__pyx_v_expr);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_95), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1441
 *    if c_ierh<0:
 *       raise GipsyError('Bad expression (code %d from herinp.dc2) "%s"' % (c_ierh, expr))
 *    if nmax==1:             # <<<<<<<<<<<<<<
 *       result = c_result[0]
 *    else:
 */
  __pyx_t_1 = (__pyx_v_nmax == 1);
  if (__pyx_t_1) {

    /* "gipsy.pyx":1442
 *       raise GipsyError('Bad expression (code %d from herinp.dc2) "%s"' % (c_ierh, expr))
 *    if nmax==1:
 *       result = c_result[0]             # <<<<<<<<<<<<<<
 *    else:
 *       result = []
 */
    __pyx_t_3 = PyFloat_FromDouble((__pyx_v_c_result[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_result = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L7;
  }
  /*else*/ {

    /* "gipsy.pyx":1444
 *       result = c_result[0]
 *    else:
 *       result = []             # <<<<<<<<<<<<<<
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __pyx_v_result = ((PyObject *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "gipsy.pyx":1445
 *    else:
 *       result = []
 *       for i from 0 <= i < n:             # <<<<<<<<<<<<<<
 *          result.append(c_result[i])
 *    free(c_result)
 */
    __pyx_t_5 = __pyx_v_n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {

      /* "gipsy.pyx":1446
 *       result = []
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])             # <<<<<<<<<<<<<<
 *    free(c_result)
 *    return result
 */
      __pyx_t_3 = PyFloat_FromDouble((__pyx_v_c_result[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_Append(__pyx_v_result, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __pyx_L7:;

  /* "gipsy.pyx":1447
 *       for i from 0 <= i < n:
 *          result.append(c_result[i])
 *    free(c_result)             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  free(__pyx_v_c_result);

  /* "gipsy.pyx":1448
 *          result.append(c_result[i])
 *    free(c_result)
 *    return result             # <<<<<<<<<<<<<<
 * 
 * def unitfactor(unit1, unit2):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.evalexpr_old", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1450
 *    return result
 * 
 * def unitfactor(unit1, unit2):             # <<<<<<<<<<<<<<
 *    cdef double c_result
 *    status = factor_c(tofchar(unit1), tofchar(unit2), &c_result)
 */

static PyObject *__pyx_pf_5gipsy_47unitfactor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_47unitfactor = {__Pyx_NAMESTR("unitfactor"), (PyCFunction)__pyx_pf_5gipsy_47unitfactor, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_47unitfactor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_unit1 = 0;
  PyObject *__pyx_v_unit2 = 0;
  double __pyx_v_c_result;
  fint __pyx_v_status;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__unit1,&__pyx_n_s__unit2,0};
  __Pyx_RefNannySetupContext("unitfactor");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unit1);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unit2);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("unitfactor", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "unitfactor") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_unit1 = values[0];
    __pyx_v_unit2 = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("unitfactor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.unitfactor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1452
 * def unitfactor(unit1, unit2):
 *    cdef double c_result
 *    status = factor_c(tofchar(unit1), tofchar(unit2), &c_result)             # <<<<<<<<<<<<<<
 *    if status!=0:
 *       raise GipsyError('Cannot convert "%s" to "%s" (%d)'
 */
  __pyx_v_status = factor_c(__pyx_f_5gipsy_tofchar(__pyx_v_unit1), __pyx_f_5gipsy_tofchar(__pyx_v_unit2), (&__pyx_v_c_result));

  /* "gipsy.pyx":1453
 *    cdef double c_result
 *    status = factor_c(tofchar(unit1), tofchar(unit2), &c_result)
 *    if status!=0:             # <<<<<<<<<<<<<<
 *       raise GipsyError('Cannot convert "%s" to "%s" (%d)'
 *                                                      % (unit1, unit2, status))
 */
  __pyx_t_1 = (__pyx_v_status != 0);
  if (__pyx_t_1) {

    /* "gipsy.pyx":1454
 *    status = factor_c(tofchar(unit1), tofchar(unit2), &c_result)
 *    if status!=0:
 *       raise GipsyError('Cannot convert "%s" to "%s" (%d)'             # <<<<<<<<<<<<<<
 *                                                      % (unit1, unit2, status))
 *    return c_result
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);

    /* "gipsy.pyx":1455
 *    if status!=0:
 *       raise GipsyError('Cannot convert "%s" to "%s" (%d)'
 *                                                      % (unit1, unit2, status))             # <<<<<<<<<<<<<<
 *    return c_result
 * 
 */
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_status); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __Pyx_INCREF(__pyx_v_unit1);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_unit1);
    __Pyx_GIVEREF(__pyx_v_unit1);
    __Pyx_INCREF(__pyx_v_unit2);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_unit2);
    __Pyx_GIVEREF(__pyx_v_unit2);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_96), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1456
 *       raise GipsyError('Cannot convert "%s" to "%s" (%d)'
 *                                                      % (unit1, unit2, status))
 *    return c_result             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_c_result); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.unitfactor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1462
 * #  --------------------------------------------------------------------------
 * class GdsError(GipsyError):
 *    def __init__(self, errno=None, msg='undefined error'):             # <<<<<<<<<<<<<<
 *       self.args  = (errno, msg)
 *       self.errno = errno
 */

static PyObject *__pyx_pf_5gipsy_8GdsError___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8GdsError___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_8GdsError___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8GdsError___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_errno = 0;
  PyObject *__pyx_v_msg = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__errno,&__pyx_n_s__msg,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_kp_s_97);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errno);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__msg);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_errno = values[1];
    __pyx_v_msg = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GdsError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1463
 * class GdsError(GipsyError):
 *    def __init__(self, errno=None, msg='undefined error'):
 *       self.args  = (errno, msg)             # <<<<<<<<<<<<<<
 *       self.errno = errno
 *       self.msg   = msg
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_errno);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_errno);
  __Pyx_GIVEREF(__pyx_v_errno);
  __Pyx_INCREF(__pyx_v_msg);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_msg);
  __Pyx_GIVEREF(__pyx_v_msg);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__args, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1464
 *    def __init__(self, errno=None, msg='undefined error'):
 *       self.args  = (errno, msg)
 *       self.errno = errno             # <<<<<<<<<<<<<<
 *       self.msg   = msg
 *    def __str__(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__errno, __pyx_v_errno) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1465
 *       self.args  = (errno, msg)
 *       self.errno = errno
 *       self.msg   = msg             # <<<<<<<<<<<<<<
 *    def __str__(self):
 *       return('%s (%s)' % (self.msg, self.errno))
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__msg, __pyx_v_msg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.GdsError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1466
 *       self.errno = errno
 *       self.msg   = msg
 *    def __str__(self):             # <<<<<<<<<<<<<<
 *       return('%s (%s)' % (self.msg, self.errno))
 * 
 */

static PyObject *__pyx_pf_5gipsy_8GdsError_1__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8GdsError_1__str__ = {__Pyx_NAMESTR("__str__"), (PyCFunction)__pyx_pf_5gipsy_8GdsError_1__str__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8GdsError_1__str__(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1467
 *       self.msg   = msg
 *    def __str__(self):
 *       return('%s (%s)' % (self.msg, self.errno))             # <<<<<<<<<<<<<<
 * 
 * def raiseGds(err):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__msg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__errno); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_98), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_r = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy.GdsError.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1469
 *       return('%s (%s)' % (self.msg, self.errno))
 * 
 * def raiseGds(err):             # <<<<<<<<<<<<<<
 *    cdef fint  err_c
 *    cdef fchar errstr_c
 */

static PyObject *__pyx_pf_5gipsy_48raiseGds(PyObject *__pyx_self, PyObject *__pyx_v_err); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_48raiseGds = {__Pyx_NAMESTR("raiseGds"), (PyCFunction)__pyx_pf_5gipsy_48raiseGds, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_48raiseGds(PyObject *__pyx_self, PyObject *__pyx_v_err) {
  fint __pyx_v_err_c;
  fchar __pyx_v_errstr_c;
  char *__pyx_v_errstr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  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("raiseGds");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1473
 *    cdef fchar errstr_c
 *    cdef bytes result
 *    err_c = err             # <<<<<<<<<<<<<<
 *    errstr_c = newfchar(80)
 *    gds_errstr_c(errstr_c, &err_c)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_err); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_err_c = __pyx_t_1;

  /* "gipsy.pyx":1474
 *    cdef bytes result
 *    err_c = err
 *    errstr_c = newfchar(80)             # <<<<<<<<<<<<<<
 *    gds_errstr_c(errstr_c, &err_c)
 *    errstr = errstr_c.a
 */
  __pyx_v_errstr_c = __pyx_f_5gipsy_newfchar(__pyx_int_80);

  /* "gipsy.pyx":1475
 *    err_c = err
 *    errstr_c = newfchar(80)
 *    gds_errstr_c(errstr_c, &err_c)             # <<<<<<<<<<<<<<
 *    errstr = errstr_c.a
 *    delfchar(errstr_c)
 */
  gds_errstr_c(__pyx_v_errstr_c, (&__pyx_v_err_c));

  /* "gipsy.pyx":1476
 *    errstr_c = newfchar(80)
 *    gds_errstr_c(errstr_c, &err_c)
 *    errstr = errstr_c.a             # <<<<<<<<<<<<<<
 *    delfchar(errstr_c)
 *    raise GdsError(err, errstr.rstrip())
 */
  __pyx_v_errstr = __pyx_v_errstr_c.a;

  /* "gipsy.pyx":1477
 *    gds_errstr_c(errstr_c, &err_c)
 *    errstr = errstr_c.a
 *    delfchar(errstr_c)             # <<<<<<<<<<<<<<
 *    raise GdsError(err, errstr.rstrip())
 * 
 */
  __pyx_t_2 = __pyx_f_5gipsy_delfchar(__pyx_v_errstr_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1478
 *    errstr = errstr_c.a
 *    delfchar(errstr_c)
 *    raise GdsError(err, errstr.rstrip())             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyBytes_FromString(__pyx_v_errstr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_3), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_err);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_err);
  __Pyx_GIVEREF(__pyx_v_err);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __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("gipsy.raiseGds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1499
 * class SetHeader(dict):
 * 
 *    def __init__(self, set):             # <<<<<<<<<<<<<<
 *       self.set = weakref.proxy(set)                    # "owning" set object
 * 
 */

static PyObject *__pyx_pf_5gipsy_9SetHeader___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9SetHeader___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_9SetHeader___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9SetHeader___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_set = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__set,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__set);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_set = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.SetHeader.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1500
 * 
 *    def __init__(self, set):
 *       self.set = weakref.proxy(set)                    # "owning" set object             # <<<<<<<<<<<<<<
 * 
 *    def has_key(self, key):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__weakref); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__proxy); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_set);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_set);
  __Pyx_GIVEREF(__pyx_v_set);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__set, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.SetHeader.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1502
 *       self.set = weakref.proxy(set)                    # "owning" set object
 * 
 *    def has_key(self, key):             # <<<<<<<<<<<<<<
 *       return key in self
 * 
 */

static PyObject *__pyx_pf_5gipsy_9SetHeader_1has_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9SetHeader_1has_key = {__Pyx_NAMESTR("has_key"), (PyCFunction)__pyx_pf_5gipsy_9SetHeader_1has_key, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9SetHeader_1has_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("has_key");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("has_key", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "has_key") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("has_key", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.SetHeader.has_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1503
 * 
 *    def has_key(self, key):
 *       return key in self             # <<<<<<<<<<<<<<
 * 
 *    def __contains__(self, key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PySequence_Contains(__pyx_v_self, __pyx_v_key))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy.SetHeader.has_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1505
 *       return key in self
 * 
 *    def __contains__(self, key):             # <<<<<<<<<<<<<<
 *       return dict.__contains__(self, gdskey(key)) or key in self.set
 * 
 */

static PyObject *__pyx_pf_5gipsy_9SetHeader_2__contains__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9SetHeader_2__contains__ = {__Pyx_NAMESTR("__contains__"), (PyCFunction)__pyx_pf_5gipsy_9SetHeader_2__contains__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9SetHeader_2__contains__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 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;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("__contains__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__contains__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__contains__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__contains__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.SetHeader.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1506
 * 
 *    def __contains__(self, key):
 *       return dict.__contains__(self, gdskey(key)) or key in self.set             # <<<<<<<<<<<<<<
 * 
 *    def __getitem__(self, key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(((PyObject *)((PyObject*)(&PyDict_Type))), __pyx_n_s____contains__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__gdskey); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = ((PySequence_Contains(__pyx_t_3, __pyx_v_key))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __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("gipsy.SetHeader.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1508
 *       return dict.__contains__(self, gdskey(key)) or key in self.set
 * 
 *    def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *       try:
 *          return super(SetHeader, self).__getitem__(gdskey(key))
 */

static PyObject *__pyx_pf_5gipsy_9SetHeader_3__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9SetHeader_3__getitem__ = {__Pyx_NAMESTR("__getitem__"), (PyCFunction)__pyx_pf_5gipsy_9SetHeader_3__getitem__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9SetHeader_3__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 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;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("__getitem__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__getitem__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.SetHeader.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1509
 * 
 *    def __getitem__(self, key):
 *       try:             # <<<<<<<<<<<<<<
 *          return super(SetHeader, self).__getitem__(gdskey(key))
 *       except:
 */
  {
    __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:*/ {

      /* "gipsy.pyx":1510
 *    def __getitem__(self, key):
 *       try:
 *          return super(SetHeader, self).__getitem__(gdskey(key))             # <<<<<<<<<<<<<<
 *       except:
 *          return self.set[key]
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__SetHeader); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s____getitem__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__gdskey); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __Pyx_INCREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_key);
      __Pyx_GIVEREF(__pyx_v_key);
      __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L10_try_return;
    }
    __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_L13_try_end;
    __pyx_L10_try_return:;
    __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_L0;
    __pyx_L6_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;

    /* "gipsy.pyx":1511
 *       try:
 *          return super(SetHeader, self).__getitem__(gdskey(key))
 *       except:             # <<<<<<<<<<<<<<
 *          return self.set[key]
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy.SetHeader.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);

      /* "gipsy.pyx":1512
 *          return super(SetHeader, self).__getitem__(gdskey(key))
 *       except:
 *          return self.set[key]             # <<<<<<<<<<<<<<
 * 
 *    def __setitem__(self, key, value):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = PyObject_GetItem(__pyx_t_4, __pyx_v_key); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L9_except_return;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L7_exception_handled;
    }
    __pyx_L8_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_L9_except_return:;
    __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_L0;
    __pyx_L7_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_L13_try_end:;
  }

  __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_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("gipsy.SetHeader.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1514
 *          return self.set[key]
 * 
 *    def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 *       super(SetHeader, self).__setitem__(gdskey(key), value)
 * 
 */

static PyObject *__pyx_pf_5gipsy_9SetHeader_4__setitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9SetHeader_4__setitem__ = {__Pyx_NAMESTR("__setitem__"), (PyCFunction)__pyx_pf_5gipsy_9SetHeader_4__setitem__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9SetHeader_4__setitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_value = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,&__pyx_n_s__value,0};
  __Pyx_RefNannySetupContext("__setitem__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__setitem__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
    __pyx_v_value = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.SetHeader.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1515
 * 
 *    def __setitem__(self, key, value):
 *       super(SetHeader, self).__setitem__(gdskey(key), value)             # <<<<<<<<<<<<<<
 * 
 *    def commit(self):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__SetHeader); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____setitem__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__gdskey); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_value);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_value);
  __Pyx_GIVEREF(__pyx_v_value);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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("gipsy.SetHeader.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1517
 *       super(SetHeader, self).__setitem__(gdskey(key), value)
 * 
 *    def commit(self):             # <<<<<<<<<<<<<<
 *       for key, value in super(SetHeader, self).items():
 *          self.set[key] = value
 */

static PyObject *__pyx_pf_5gipsy_9SetHeader_5commit(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9SetHeader_5commit = {__Pyx_NAMESTR("commit"), (PyCFunction)__pyx_pf_5gipsy_9SetHeader_5commit, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9SetHeader_5commit(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = 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 *);
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("commit");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1518
 * 
 *    def commit(self):
 *       for key, value in super(SetHeader, self).items():             # <<<<<<<<<<<<<<
 *          self.set[key] = value
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__SetHeader); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (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_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __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_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L8_unpacking_done:;
    }
    __Pyx_XDECREF(__pyx_v_key);
    __pyx_v_key = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_v_value);
    __pyx_v_value = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1519
 *    def commit(self):
 *       for key, value in super(SetHeader, self).items():
 *          self.set[key] = value             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_1, __pyx_v_key, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("gipsy.SetHeader.commit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1524
 * #                             Set Header utility function
 * #  --------------------------------------------------------------------------
 * def gdskey(key):             # <<<<<<<<<<<<<<
 *    try:
 *       if type(key) is types.StringType:
 */

static PyObject *__pyx_pf_5gipsy_49gdskey(PyObject *__pyx_self, PyObject *__pyx_v_key); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_49gdskey = {__Pyx_NAMESTR("gdskey"), (PyCFunction)__pyx_pf_5gipsy_49gdskey, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_49gdskey(PyObject *__pyx_self, PyObject *__pyx_v_key) {
  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 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gdskey");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1525
 * #  --------------------------------------------------------------------------
 * def gdskey(key):
 *    try:             # <<<<<<<<<<<<<<
 *       if type(key) is types.StringType:
 *          return key.upper()                            # bare header keyword
 */
  {
    __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:*/ {

      /* "gipsy.pyx":1526
 * def gdskey(key):
 *    try:
 *       if type(key) is types.StringType:             # <<<<<<<<<<<<<<
 *          return key.upper()                            # bare header keyword
 *       elif len(key)==2:
 */
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__StringType); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = (((PyObject *)Py_TYPE(__pyx_v_key)) == __pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_6) {

        /* "gipsy.pyx":1527
 *    try:
 *       if type(key) is types.StringType:
 *          return key.upper()                            # bare header keyword             # <<<<<<<<<<<<<<
 *       elif len(key)==2:
 *          return (key[0], key[1].upper())               # level + header keyword
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_key, __pyx_n_s__upper); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_r = __pyx_t_4;
        __pyx_t_4 = 0;
        goto __pyx_L9_try_return;
        goto __pyx_L13;
      }

      /* "gipsy.pyx":1528
 *       if type(key) is types.StringType:
 *          return key.upper()                            # bare header keyword
 *       elif len(key)==2:             # <<<<<<<<<<<<<<
 *          return (key[0], key[1].upper())               # level + header keyword
 *       else:
 */
      __pyx_t_7 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
      __pyx_t_6 = (__pyx_t_7 == 2);
      if (__pyx_t_6) {

        /* "gipsy.pyx":1529
 *          return key.upper()                            # bare header keyword
 *       elif len(key)==2:
 *          return (key[0], key[1].upper())               # level + header keyword             # <<<<<<<<<<<<<<
 *       else:
 *          raise Exception
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__upper); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_8));
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __pyx_t_4 = 0;
        __pyx_t_5 = 0;
        __pyx_r = ((PyObject *)__pyx_t_8);
        __pyx_t_8 = 0;
        goto __pyx_L9_try_return;
        goto __pyx_L13;
      }
      /*else*/ {

        /* "gipsy.pyx":1531
 *          return (key[0], key[1].upper())               # level + header keyword
 *       else:
 *          raise Exception             # <<<<<<<<<<<<<<
 *    except:
 *       raise GipsyError('invalid header key: %s' % str(key))
 */
        __Pyx_Raise(__pyx_builtin_Exception, 0, 0, 0);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
      }
      __pyx_L13:;
    }
    __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_L12_try_end;
    __pyx_L9_try_return:;
    __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_L0;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "gipsy.pyx":1532
 *       else:
 *          raise Exception
 *    except:             # <<<<<<<<<<<<<<
 *       raise GipsyError('invalid header key: %s' % str(key))
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy.gdskey", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_5, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);

      /* "gipsy.pyx":1533
 *          raise Exception
 *    except:
 *       raise GipsyError('invalid header key: %s' % str(key))             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
      __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      __Pyx_INCREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_key);
      __Pyx_GIVEREF(__pyx_v_key);
      __pyx_t_11 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
      __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_99), __pyx_t_11); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_11));
      PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_10));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_10));
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
      __Pyx_Raise(__pyx_t_10, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L6_exception_handled;
    }
    __pyx_L7_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_L6_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_L12_try_end:;
  }

  __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_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("gipsy.gdskey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1544
 * #  detect alternative header
 * #
 * def __alter_wcs(header):             # <<<<<<<<<<<<<<
 *    result = []
 *    for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
 */

static PyObject *__pyx_pf_5gipsy_50__alter_wcs(PyObject *__pyx_self, PyObject *__pyx_v_header); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_50__alter_wcs = {__Pyx_NAMESTR("__alter_wcs"), (PyCFunction)__pyx_pf_5gipsy_50__alter_wcs, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_50__alter_wcs(PyObject *__pyx_self, PyObject *__pyx_v_header) {
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *(*__pyx_t_2)(PyObject *);
  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;
  __Pyx_RefNannySetupContext("__alter_wcs");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1545
 * #
 * def __alter_wcs(header):
 *    result = []             # <<<<<<<<<<<<<<
 *    for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
 *       try:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1546
 * def __alter_wcs(header):
 *    result = []
 *    for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':             # <<<<<<<<<<<<<<
 *       try:
 *          header['CTYPE1'+c]
 */
  __pyx_t_1 = PyObject_GetIter(((PyObject *)__pyx_n_s_100)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = Py_TYPE(__pyx_t_1)->tp_iternext;
  for (;;) {
    {
      __pyx_t_3 = __pyx_t_2(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF(__pyx_v_c);
    __pyx_v_c = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":1547
 *    result = []
 *    for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
 *       try:             # <<<<<<<<<<<<<<
 *          header['CTYPE1'+c]
 *          result.append(c)
 */
    {
      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      /*try:*/ {

        /* "gipsy.pyx":1548
 *    for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
 *       try:
 *          header['CTYPE1'+c]             # <<<<<<<<<<<<<<
 *          result.append(c)
 *       except:
 */
        __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_n_s__CTYPE1), __pyx_v_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_7 = PyObject_GetItem(__pyx_v_header, __pyx_t_3); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "gipsy.pyx":1549
 *       try:
 *          header['CTYPE1'+c]
 *          result.append(c)             # <<<<<<<<<<<<<<
 *       except:
 *          pass
 */
        if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L7_error;} 
        }
        __pyx_t_8 = PyList_Append(__pyx_v_result, __pyx_v_c); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L7_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;
      goto __pyx_L14_try_end;
      __pyx_L7_error:;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "gipsy.pyx":1550
 *          header['CTYPE1'+c]
 *          result.append(c)
 *       except:             # <<<<<<<<<<<<<<
 *          pass
 *    return result
 */
      /*except:*/ {
        PyErr_Restore(0,0,0);
        goto __pyx_L8_exception_handled;
      }
      __pyx_L8_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      __pyx_L14_try_end:;
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1552
 *       except:
 *          pass
 *    return result             # <<<<<<<<<<<<<<
 * 
 * #  translate alternative to standard header element
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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_7);
  __Pyx_AddTraceback("gipsy.__alter_wcs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1556
 * #  translate alternative to standard header element
 * #
 * def __subst_key_wcs(header, key, a):             # <<<<<<<<<<<<<<
 *    try:
 *       del header[key]
 */

static PyObject *__pyx_pf_5gipsy_51__subst_key_wcs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_51__subst_key_wcs = {__Pyx_NAMESTR("__subst_key_wcs"), (PyCFunction)__pyx_pf_5gipsy_51__subst_key_wcs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_51__subst_key_wcs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_header = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_a = 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;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__header,&__pyx_n_s__key,&__pyx_n_s__a,0};
  __Pyx_RefNannySetupContext("__subst_key_wcs");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__header);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__subst_key_wcs", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__subst_key_wcs", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__subst_key_wcs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_header = values[0];
    __pyx_v_key = values[1];
    __pyx_v_a = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__subst_key_wcs", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.__subst_key_wcs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1557
 * #
 * def __subst_key_wcs(header, key, a):
 *    try:             # <<<<<<<<<<<<<<
 *       del header[key]
 *    except:
 */
  {
    __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:*/ {

      /* "gipsy.pyx":1558
 * def __subst_key_wcs(header, key, a):
 *    try:
 *       del header[key]             # <<<<<<<<<<<<<<
 *    except:
 *       pass
 */
      if (PyObject_DelItem(__pyx_v_header, __pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L6_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;
    goto __pyx_L13_try_end;
    __pyx_L6_error:;

    /* "gipsy.pyx":1559
 *    try:
 *       del header[key]
 *    except:             # <<<<<<<<<<<<<<
 *       pass
 *    try:
 */
    /*except:*/ {
      PyErr_Restore(0,0,0);
      goto __pyx_L7_exception_handled;
    }
    __pyx_L7_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_L13_try_end:;
  }

  /* "gipsy.pyx":1561
 *    except:
 *       pass
 *    try:             # <<<<<<<<<<<<<<
 *       header.update(key, header[key+a])
 *    except:
 */
  {
    __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:*/ {

      /* "gipsy.pyx":1562
 *       pass
 *    try:
 *       header.update(key, header[key+a])             # <<<<<<<<<<<<<<
 *    except:
 *       pass
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_header, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyNumber_Add(__pyx_v_key, __pyx_v_a); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_GetItem(__pyx_v_header, __pyx_t_5); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __Pyx_INCREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_key);
      __Pyx_GIVEREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __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_L21_try_end;
    __pyx_L14_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;

    /* "gipsy.pyx":1563
 *    try:
 *       header.update(key, header[key+a])
 *    except:             # <<<<<<<<<<<<<<
 *       pass
 * 
 */
    /*except:*/ {
      PyErr_Restore(0,0,0);
      goto __pyx_L15_exception_handled;
    }
    __pyx_L15_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_L21_try_end:;
  }

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1568
 * #  transform alternative to standard header
 * #
 * def __substitute_wcs(header, a):             # <<<<<<<<<<<<<<
 *    a = a[0].upper()
 *    if a==' ':
 */

static PyObject *__pyx_pf_5gipsy_52__substitute_wcs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_52__substitute_wcs = {__Pyx_NAMESTR("__substitute_wcs"), (PyCFunction)__pyx_pf_5gipsy_52__substitute_wcs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_52__substitute_wcs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_header = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_naxis = NULL;
  PyObject *__pyx_v_axis = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_j = NULL;
  long __pyx_v_m;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *(*__pyx_t_10)(PyObject *);
  long __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__header,&__pyx_n_s__a,0};
  __Pyx_RefNannySetupContext("__substitute_wcs");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__header);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__substitute_wcs", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1568; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__substitute_wcs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1568; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_header = values[0];
    __pyx_v_a = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__substitute_wcs", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1568; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.__substitute_wcs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_a);

  /* "gipsy.pyx":1569
 * #
 * def __substitute_wcs(header, a):
 *    a = a[0].upper()             # <<<<<<<<<<<<<<
 *    if a==' ':
 *       return
 */
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_a, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__upper); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_a);
  __pyx_v_a = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1570
 * def __substitute_wcs(header, a):
 *    a = a[0].upper()
 *    if a==' ':             # <<<<<<<<<<<<<<
 *       return
 *    naxis = header['NAXIS']
 */
  __pyx_t_3 = __Pyx_PyString_Equals(__pyx_v_a, ((PyObject *)__pyx_kp_s_14), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "gipsy.pyx":1571
 *    a = a[0].upper()
 *    if a==' ':
 *       return             # <<<<<<<<<<<<<<
 *    naxis = header['NAXIS']
 *    for axis in range(1, naxis+1):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1572
 *    if a==' ':
 *       return
 *    naxis = header['NAXIS']             # <<<<<<<<<<<<<<
 *    for axis in range(1, naxis+1):
 *       for name in ['CTYPE', 'CUNIT', 'CRVAL', 'CDELT', 'CRPIX', 'CNAME',
 */
  __pyx_t_1 = PyObject_GetItem(__pyx_v_header, ((PyObject *)__pyx_n_s__NAXIS)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_naxis = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1573
 *       return
 *    naxis = header['NAXIS']
 *    for axis in range(1, naxis+1):             # <<<<<<<<<<<<<<
 *       for name in ['CTYPE', 'CUNIT', 'CRVAL', 'CDELT', 'CRPIX', 'CNAME',
 *                    'CRDER', 'CSYER']:
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_naxis, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_axis);
    __pyx_v_axis = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":1574
 *    naxis = header['NAXIS']
 *    for axis in range(1, naxis+1):
 *       for name in ['CTYPE', 'CUNIT', 'CRVAL', 'CDELT', 'CRPIX', 'CNAME',             # <<<<<<<<<<<<<<
 *                    'CRDER', 'CSYER']:
 *          __subst_key_wcs(header, name+str(axis), a)
 */
    __pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CTYPE));
    PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__CTYPE));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CTYPE));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CUNIT));
    PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__CUNIT));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CUNIT));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CRVAL));
    PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_n_s__CRVAL));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CRVAL));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CDELT));
    PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_n_s__CDELT));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CDELT));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CRPIX));
    PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_n_s__CRPIX));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CRPIX));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CNAME));
    PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_n_s__CNAME));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CNAME));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CRDER));
    PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_n_s__CRDER));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CRDER));
    __Pyx_INCREF(((PyObject *)__pyx_n_s__CSYER));
    PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_n_s__CSYER));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CSYER));
    __pyx_t_6 = ((PyObject *)__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    for (;;) {
      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++;
      __Pyx_XDECREF(__pyx_v_name);
      __pyx_v_name = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":1576
 *       for name in ['CTYPE', 'CUNIT', 'CRVAL', 'CDELT', 'CRPIX', 'CNAME',
 *                    'CRDER', 'CSYER']:
 *          __subst_key_wcs(header, name+str(axis), a)             # <<<<<<<<<<<<<<
 * 
 *    for key in ['WCSAXES', 'RESTFRQ', 'RESTWAV', 'EQUINOX', 'RADESYS',
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __Pyx_INCREF(__pyx_v_axis);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_axis);
      __Pyx_GIVEREF(__pyx_v_axis);
      __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      __pyx_t_8 = PyNumber_Add(__pyx_v_name, __pyx_t_9); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":1578
 *          __subst_key_wcs(header, name+str(axis), a)
 * 
 *    for key in ['WCSAXES', 'RESTFRQ', 'RESTWAV', 'EQUINOX', 'RADESYS',             # <<<<<<<<<<<<<<
 *                'LONPOLE', 'LATPOLE', 'SPECSYS', 'SSYSOBS', 'SSYSSRC',
 *                'VELOSYS', 'ZSOURCE', 'VELANGL']:
 */
  __pyx_t_2 = PyList_New(13); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__WCSAXES));
  PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__WCSAXES));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__WCSAXES));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__RESTFRQ));
  PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s__RESTFRQ));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__RESTFRQ));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__RESTWAV));
  PyList_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_n_s__RESTWAV));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__RESTWAV));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__EQUINOX));
  PyList_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_n_s__EQUINOX));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__EQUINOX));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__RADESYS));
  PyList_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_n_s__RADESYS));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__RADESYS));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__LONPOLE));
  PyList_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_n_s__LONPOLE));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__LONPOLE));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__LATPOLE));
  PyList_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_n_s__LATPOLE));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__LATPOLE));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__SPECSYS));
  PyList_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_n_s__SPECSYS));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__SPECSYS));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__SSYSOBS));
  PyList_SET_ITEM(__pyx_t_2, 8, ((PyObject *)__pyx_n_s__SSYSOBS));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__SSYSOBS));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__SSYSSRC));
  PyList_SET_ITEM(__pyx_t_2, 9, ((PyObject *)__pyx_n_s__SSYSSRC));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__SSYSSRC));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__VELOSYS));
  PyList_SET_ITEM(__pyx_t_2, 10, ((PyObject *)__pyx_n_s__VELOSYS));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__VELOSYS));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__ZSOURCE));
  PyList_SET_ITEM(__pyx_t_2, 11, ((PyObject *)__pyx_n_s__ZSOURCE));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ZSOURCE));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__VELANGL));
  PyList_SET_ITEM(__pyx_t_2, 12, ((PyObject *)__pyx_n_s__VELANGL));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__VELANGL));
  __pyx_t_6 = ((PyObject *)__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    __Pyx_XDECREF(__pyx_v_key);
    __pyx_v_key = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":1581
 *                'LONPOLE', 'LATPOLE', 'SPECSYS', 'SSYSOBS', 'SSYSSRC',
 *                'VELOSYS', 'ZSOURCE', 'VELANGL']:
 *       __subst_key_wcs(header, key, a)             # <<<<<<<<<<<<<<
 * 
 *    for i in range(1, naxis+1):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_8));
    __Pyx_INCREF(__pyx_v_header);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_header);
    __Pyx_GIVEREF(__pyx_v_header);
    __Pyx_INCREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_key);
    __Pyx_GIVEREF(__pyx_v_key);
    __Pyx_INCREF(__pyx_v_a);
    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_a);
    __Pyx_GIVEREF(__pyx_v_a);
    __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1583
 *       __subst_key_wcs(header, key, a)
 * 
 *    for i in range(1, naxis+1):             # <<<<<<<<<<<<<<
 *       for j in range(1, naxis+1):
 *          __subst_key_wcs(header, 'PC%d_%d'    % (i,j), a)
 */
  __pyx_t_6 = PyNumber_Add(__pyx_v_naxis, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_9));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
  if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_9 = __pyx_t_6; __Pyx_INCREF(__pyx_t_9); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_5 = Py_TYPE(__pyx_t_9)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_9)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_9)) break;
      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_9)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++;
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_9);
      if (unlikely(!__pyx_t_6)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "gipsy.pyx":1584
 * 
 *    for i in range(1, naxis+1):
 *       for j in range(1, naxis+1):             # <<<<<<<<<<<<<<
 *          __subst_key_wcs(header, 'PC%d_%d'    % (i,j), a)
 *          __subst_key_wcs(header, 'PC%03d%03d' % (i,j), a)
 */
    __pyx_t_6 = PyNumber_Add(__pyx_v_naxis, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_8));
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
    if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_8 = __pyx_t_6; __Pyx_INCREF(__pyx_t_8); __pyx_t_7 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_8)) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_8)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++;
      } else if (PyTuple_CheckExact(__pyx_t_8)) {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++;
      } else {
        __pyx_t_6 = __pyx_t_10(__pyx_t_8);
        if (unlikely(!__pyx_t_6)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF(__pyx_v_j);
      __pyx_v_j = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "gipsy.pyx":1585
 *    for i in range(1, naxis+1):
 *       for j in range(1, naxis+1):
 *          __subst_key_wcs(header, 'PC%d_%d'    % (i,j), a)             # <<<<<<<<<<<<<<
 *          __subst_key_wcs(header, 'PC%03d%03d' % (i,j), a)
 *          __subst_key_wcs(header, 'CD%d_%d'    % (i,j), a)
 */
      __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      __Pyx_INCREF(__pyx_v_j);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_j);
      __Pyx_GIVEREF(__pyx_v_j);
      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_101), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_1));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":1586
 *       for j in range(1, naxis+1):
 *          __subst_key_wcs(header, 'PC%d_%d'    % (i,j), a)
 *          __subst_key_wcs(header, 'PC%03d%03d' % (i,j), a)             # <<<<<<<<<<<<<<
 *          __subst_key_wcs(header, 'CD%d_%d'    % (i,j), a)
 *          __subst_key_wcs(header, 'CD%03d%03d' % (i,j), a)
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      __Pyx_INCREF(__pyx_v_j);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_j);
      __Pyx_GIVEREF(__pyx_v_j);
      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_102), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_6));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "gipsy.pyx":1587
 *          __subst_key_wcs(header, 'PC%d_%d'    % (i,j), a)
 *          __subst_key_wcs(header, 'PC%03d%03d' % (i,j), a)
 *          __subst_key_wcs(header, 'CD%d_%d'    % (i,j), a)             # <<<<<<<<<<<<<<
 *          __subst_key_wcs(header, 'CD%03d%03d' % (i,j), a)
 * 
 */
      __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      __Pyx_INCREF(__pyx_v_j);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_j);
      __Pyx_GIVEREF(__pyx_v_j);
      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_103), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_1));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":1588
 *          __subst_key_wcs(header, 'PC%03d%03d' % (i,j), a)
 *          __subst_key_wcs(header, 'CD%d_%d'    % (i,j), a)
 *          __subst_key_wcs(header, 'CD%03d%03d' % (i,j), a)             # <<<<<<<<<<<<<<
 * 
 *    for i in range(1, naxis+1):
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      __Pyx_INCREF(__pyx_v_j);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_j);
      __Pyx_GIVEREF(__pyx_v_j);
      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_104), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_6));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "gipsy.pyx":1590
 *          __subst_key_wcs(header, 'CD%03d%03d' % (i,j), a)
 * 
 *    for i in range(1, naxis+1):             # <<<<<<<<<<<<<<
 *       for m in range(100):
 *          __subst_key_wcs(header, 'PV%d_%d' % (i, m), a)
 */
  __pyx_t_9 = PyNumber_Add(__pyx_v_naxis, __pyx_int_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_8));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
  if (PyList_CheckExact(__pyx_t_9) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = Py_TYPE(__pyx_t_8)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_8)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_8)) break;
      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_8)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
      __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++;
    } else {
      __pyx_t_9 = __pyx_t_5(__pyx_t_8);
      if (unlikely(!__pyx_t_9)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "gipsy.pyx":1591
 * 
 *    for i in range(1, naxis+1):
 *       for m in range(100):             # <<<<<<<<<<<<<<
 *          __subst_key_wcs(header, 'PV%d_%d' % (i, m), a)
 *          __subst_key_wcs(header, 'PS%d_%d' % (i, m), a)
 */
    for (__pyx_t_11 = 0; __pyx_t_11 < 100; __pyx_t_11+=1) {
      __pyx_v_m = __pyx_t_11;

      /* "gipsy.pyx":1592
 *    for i in range(1, naxis+1):
 *       for m in range(100):
 *          __subst_key_wcs(header, 'PV%d_%d' % (i, m), a)             # <<<<<<<<<<<<<<
 *          __subst_key_wcs(header, 'PS%d_%d' % (i, m), a)
 * 
 */
      __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = PyInt_FromLong(__pyx_v_m); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_105), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_6));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "gipsy.pyx":1593
 *       for m in range(100):
 *          __subst_key_wcs(header, 'PV%d_%d' % (i, m), a)
 *          __subst_key_wcs(header, 'PS%d_%d' % (i, m), a)             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s____subst_key_wcs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyInt_FromLong(__pyx_v_m); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __Pyx_INCREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_i);
      __Pyx_GIVEREF(__pyx_v_i);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_106), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __Pyx_INCREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_header);
      __Pyx_GIVEREF(__pyx_v_header);
      PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_t_2));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  __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_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("gipsy.__substitute_wcs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_naxis);
  __Pyx_XDECREF(__pyx_v_axis);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_j);
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1640
 *    fitsseqno = 0     #  FITS file sequence number for pseudo set name
 * 
 *    def __init__(self, setspec, create=False, write=False, gethdu=None,             # <<<<<<<<<<<<<<
 *                       getalt=None):
 * 
 */

static PyObject *__pyx_pf_5gipsy_3Set___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_3Set___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_setspec = 0;
  PyObject *__pyx_v_create = 0;
  PyObject *__pyx_v_write = 0;
  PyObject *__pyx_v_gethdu = 0;
  PyObject *__pyx_v_getalt = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_err_c2;
  fchar __pyx_v_handle_c;
  PyObject *__pyx_v_handle = 0;
  int __pyx_v_exists;
  PyObject *__pyx_v_hduname = NULL;
  PyObject *__pyx_v_subsets = NULL;
  PyObject *__pyx_v_filename = NULL;
  PyObject *__pyx_v_farg1 = NULL;
  PyObject *__pyx_v_farg2 = NULL;
  PyObject *__pyx_v_hdunum = NULL;
  PyObject *__pyx_v_altwcs = NULL;
  PyObject *__pyx_v_farg = NULL;
  PyObject *__pyx_v_hdulist = NULL;
  PyObject *__pyx_v_refs = NULL;
  PyObject *__pyx_v_hdu = NULL;
  PyObject *__pyx_v_xtn = NULL;
  PyObject *__pyx_v_header = NULL;
  PyObject *__pyx_v_done = NULL;
  PyObject *__pyx_v_axis = NULL;
  PyObject *__pyx_v_ctypei = NULL;
  PyObject *__pyx_v_crpixi = NULL;
  PyObject *__pyx_v_naxisi = NULL;
  PyObject *__pyx_v_ctype = NULL;
  PyObject *__pyx_v_crpix = NULL;
  PyObject *__pyx_v_card = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_image = 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;
  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)(PyObject *);
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  int __pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  Py_ssize_t __pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *(*__pyx_t_21)(PyObject *);
  int __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__setspec,&__pyx_n_s__create,&__pyx_n_s__write,&__pyx_n_s__gethdu,&__pyx_n_s__getalt,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[2] = __pyx_k_107;
    values[3] = __pyx_k_108;
    values[4] = ((PyObject *)Py_None);

    /* "gipsy.pyx":1641
 * 
 *    def __init__(self, setspec, create=False, write=False, gethdu=None,
 *                       getalt=None):             # <<<<<<<<<<<<<<
 * 
 * # setspec: Set, subset specification string e.g., "aurora freq 1 2 3".
 */
    values[5] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__setspec);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__create);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__write);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__gethdu);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__getalt);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_setspec = values[1];
    __pyx_v_create = values[2];
    __pyx_v_write = values[3];
    __pyx_v_gethdu = values[4];
    __pyx_v_getalt = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_write);

  /* "gipsy.pyx":1653
 *       cdef bytes handle
 * 
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       self.open   =  False
 *       self.fits   =  False
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":1654
 * 
 *       err_c = 0
 *       self.open   =  False             # <<<<<<<<<<<<<<
 *       self.fits   =  False
 *       self.level  = -1
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__open, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1655
 *       err_c = 0
 *       self.open   =  False
 *       self.fits   =  False             # <<<<<<<<<<<<<<
 *       self.level  = -1
 *       self.blank  = blankpixel
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__fits, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1656
 *       self.open   =  False
 *       self.fits   =  False
 *       self.level  = -1             # <<<<<<<<<<<<<<
 *       self.blank  = blankpixel
 *       self.hdunum = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__level, __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1657
 *       self.fits   =  False
 *       self.level  = -1
 *       self.blank  = blankpixel             # <<<<<<<<<<<<<<
 *       self.hdunum = None
 *       self.altwcs = None
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__blankpixel); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__blank, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1658
 *       self.level  = -1
 *       self.blank  = blankpixel
 *       self.hdunum = None             # <<<<<<<<<<<<<<
 *       self.altwcs = None
 *       self.alters = []
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__hdunum, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1659
 *       self.blank  = blankpixel
 *       self.hdunum = None
 *       self.altwcs = None             # <<<<<<<<<<<<<<
 *       self.alters = []
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__altwcs, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1660
 *       self.hdunum = None
 *       self.altwcs = None
 *       self.alters = []             # <<<<<<<<<<<<<<
 * 
 *       if create:                                     # ---  new set
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__alters, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":1662
 *       self.alters = []
 * 
 *       if create:                                     # ---  new set             # <<<<<<<<<<<<<<
 *          self.name = setspec
 *          gds_create_c(tofchar(self.name), &err_c)
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_create); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "gipsy.pyx":1663
 * 
 *       if create:                                     # ---  new set
 *          self.name = setspec             # <<<<<<<<<<<<<<
 *          gds_create_c(tofchar(self.name), &err_c)
 *          if err_c<0:
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__name, __pyx_v_setspec) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":1664
 *       if create:                                     # ---  new set
 *          self.name = setspec
 *          gds_create_c(tofchar(self.name), &err_c)             # <<<<<<<<<<<<<<
 *          if err_c<0:
 *             raiseGds(err_c)
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    gds_create_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":1665
 *          self.name = setspec
 *          gds_create_c(tofchar(self.name), &err_c)
 *          if err_c<0:             # <<<<<<<<<<<<<<
 *             raiseGds(err_c)
 *          write = True
 */
    __pyx_t_2 = (__pyx_v_err_c < 0);
    if (__pyx_t_2) {

      /* "gipsy.pyx":1666
 *          gds_create_c(tofchar(self.name), &err_c)
 *          if err_c<0:
 *             raiseGds(err_c)             # <<<<<<<<<<<<<<
 *          write = True
 *          self.subsets = [0]
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "gipsy.pyx":1667
 *          if err_c<0:
 *             raiseGds(err_c)
 *          write = True             # <<<<<<<<<<<<<<
 *          self.subsets = [0]
 *       else:                                          # ---  existing set
 */
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_v_write);
    __pyx_v_write = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":1668
 *             raiseGds(err_c)
 *          write = True
 *          self.subsets = [0]             # <<<<<<<<<<<<<<
 *       else:                                          # ---  existing set
 *          try:
 */
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_int_0);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__subsets, ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":1670
 *          self.subsets = [0]
 *       else:                                          # ---  existing set
 *          try:             # <<<<<<<<<<<<<<
 *             try:
 *                ###  warning: getsas() always closes the set
 */
    {
      __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      /*try:*/ {

        /* "gipsy.pyx":1671
 *       else:                                          # ---  existing set
 *          try:
 *             try:             # <<<<<<<<<<<<<<
 *                ###  warning: getsas() always closes the set
 *                #    invalidating the set handle.
 */
        {
          __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:*/ {

            /* "gipsy.pyx":1674
 *                ###  warning: getsas() always closes the set
 *                #    invalidating the set handle.
 *                self.name, self.subsets = getsas(setspec)             # <<<<<<<<<<<<<<
 *             except:
 *                self.name = setspec.split()[0]
 */
            __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__getsas); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_4));
            __Pyx_INCREF(__pyx_v_setspec);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_setspec);
            __Pyx_GIVEREF(__pyx_v_setspec);
            __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
            if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
              PyObject* sequence = __pyx_t_1;
              if (likely(PyTuple_CheckExact(sequence))) {
                if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
                  if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
                }
                __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
                __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
              } else {
                if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
                  if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
                }
                __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
                __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
              }
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            } else {
              Py_ssize_t index = -1;
              __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
              index = 0; __pyx_t_4 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_4)) goto __pyx_L24_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_4);
              index = 1; __pyx_t_3 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_3)) goto __pyx_L24_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_3);
              if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              goto __pyx_L25_unpacking_done;
              __pyx_L24_unpacking_failed:;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
              __pyx_L25_unpacking_done:;
            }
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__name, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__subsets, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1674; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __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_L23_try_end;
          __pyx_L16_error:;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "gipsy.pyx":1675
 *                #    invalidating the set handle.
 *                self.name, self.subsets = getsas(setspec)
 *             except:             # <<<<<<<<<<<<<<
 *                self.name = setspec.split()[0]
 *                err_c = 0
 */
          /*except:*/ {
            __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_GOTREF(__pyx_t_4);

            /* "gipsy.pyx":1676
 *                self.name, self.subsets = getsas(setspec)
 *             except:
 *                self.name = setspec.split()[0]             # <<<<<<<<<<<<<<
 *                err_c = 0
 *                if not gds_exist_c(tofchar(self.name), &err_c):
 */
            __pyx_t_11 = PyObject_GetAttr(__pyx_v_setspec, __pyx_n_s__split); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_13 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_13, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__name, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

            /* "gipsy.pyx":1677
 *             except:
 *                self.name = setspec.split()[0]
 *                err_c = 0             # <<<<<<<<<<<<<<
 *                if not gds_exist_c(tofchar(self.name), &err_c):
 *                   exists = False
 */
            __pyx_v_err_c = 0;

            /* "gipsy.pyx":1678
 *                self.name = setspec.split()[0]
 *                err_c = 0
 *                if not gds_exist_c(tofchar(self.name), &err_c):             # <<<<<<<<<<<<<<
 *                   exists = False
 *                   if err_c<0:
 */
            __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1678; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_2 = (!gds_exist_c(__pyx_f_5gipsy_tofchar(__pyx_t_11), (&__pyx_v_err_c)));
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_2) {

              /* "gipsy.pyx":1679
 *                err_c = 0
 *                if not gds_exist_c(tofchar(self.name), &err_c):
 *                   exists = False             # <<<<<<<<<<<<<<
 *                   if err_c<0:
 *                      err_c2 = err_c
 */
              __pyx_v_exists = 0;

              /* "gipsy.pyx":1680
 *                if not gds_exist_c(tofchar(self.name), &err_c):
 *                   exists = False
 *                   if err_c<0:             # <<<<<<<<<<<<<<
 *                      err_c2 = err_c
 *                      err_c = 0
 */
              __pyx_t_2 = (__pyx_v_err_c < 0);
              if (__pyx_t_2) {

                /* "gipsy.pyx":1681
 *                   exists = False
 *                   if err_c<0:
 *                      err_c2 = err_c             # <<<<<<<<<<<<<<
 *                      err_c = 0
 *                      raiseGds(err_c2)
 */
                __pyx_v_err_c2 = __pyx_v_err_c;

                /* "gipsy.pyx":1682
 *                   if err_c<0:
 *                      err_c2 = err_c
 *                      err_c = 0             # <<<<<<<<<<<<<<
 *                      raiseGds(err_c2)
 *                   else:
 */
                __pyx_v_err_c = 0;

                /* "gipsy.pyx":1683
 *                      err_c2 = err_c
 *                      err_c = 0
 *                      raiseGds(err_c2)             # <<<<<<<<<<<<<<
 *                   else:
 *                      raise GdsError(-5, "GDS -- set does not exist")
 */
                __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_13 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_14));
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13);
                __Pyx_GIVEREF(__pyx_t_13);
                __pyx_t_13 = 0;
                __pyx_t_13 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                goto __pyx_L29;
              }
              /*else*/ {

                /* "gipsy.pyx":1685
 *                      raiseGds(err_c2)
 *                   else:
 *                      raise GdsError(-5, "GDS -- set does not exist")             # <<<<<<<<<<<<<<
 *                else:
 *                   exists = True
 */
                __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
                __Pyx_GOTREF(__pyx_t_13);
                __pyx_t_14 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_k_tuple_110), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
                __Pyx_GOTREF(__pyx_t_14);
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_Raise(__pyx_t_14, 0, 0, 0);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
              }
              __pyx_L29:;
              goto __pyx_L28;
            }
            /*else*/ {

              /* "gipsy.pyx":1687
 *                      raise GdsError(-5, "GDS -- set does not exist")
 *                else:
 *                   exists = True             # <<<<<<<<<<<<<<
 *                   raise
 *          except:                                     # ---  FITS pseudo set
 */
              __pyx_v_exists = 1;

              /* "gipsy.pyx":1688
 *                else:
 *                   exists = True
 *                   raise             # <<<<<<<<<<<<<<
 *          except:                                     # ---  FITS pseudo set
 *             if has_pyfits and not exists:
 */
              __Pyx_GIVEREF(__pyx_t_1);
              __Pyx_GIVEREF(__pyx_t_3);
              __Pyx_GIVEREF(__pyx_t_4);
              __Pyx_ErrRestore(__pyx_t_1, __pyx_t_3, __pyx_t_4);
              __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; 
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L18_except_error;}
            }
            __pyx_L28:;
            __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;
            goto __pyx_L17_exception_handled;
          }
          __pyx_L18_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_L8_error;
          __pyx_L17_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_L23_try_end:;
        }
      }
      __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;
      goto __pyx_L15_try_end;
      __pyx_L8_error:;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "gipsy.pyx":1689
 *                   exists = True
 *                   raise
 *          except:                                     # ---  FITS pseudo set             # <<<<<<<<<<<<<<
 *             if has_pyfits and not exists:
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]
 */
      /*except:*/ {
        __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GOTREF(__pyx_t_1);

        /* "gipsy.pyx":1690
 *                   raise
 *          except:                                     # ---  FITS pseudo set
 *             if has_pyfits and not exists:             # <<<<<<<<<<<<<<
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]
 */
        __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_pyfits); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (__pyx_t_2) {
          __pyx_t_15 = (!__pyx_v_exists);
          __pyx_t_16 = __pyx_t_15;
        } else {
          __pyx_t_16 = __pyx_t_2;
        }
        if (__pyx_t_16) {

          /* "gipsy.pyx":1691
 *          except:                                     # ---  FITS pseudo set
 *             if has_pyfits and not exists:
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]             # <<<<<<<<<<<<<<
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]
 *                hdunum = None
 */
          __pyx_t_14 = PyObject_GetAttr(__pyx_v_setspec, __pyx_n_s__split); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_13 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_k_tuple_111), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyList_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_14));
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
          PyList_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_kp_s_75));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_75));
          __pyx_t_11 = PyNumber_Add(__pyx_t_13, ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PySequence_GetSlice(__pyx_t_11, 0, 2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) {
            PyObject* sequence = __pyx_t_14;
            if (likely(PyTuple_CheckExact(sequence))) {
              if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
                if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
            } else {
              if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
                if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
              __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
            }
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else {
            Py_ssize_t index = -1;
            __pyx_t_17 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_12 = Py_TYPE(__pyx_t_17)->tp_iternext;
            index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_17); if (unlikely(!__pyx_t_11)) goto __pyx_L33_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_11);
            index = 1; __pyx_t_13 = __pyx_t_12(__pyx_t_17); if (unlikely(!__pyx_t_13)) goto __pyx_L33_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_13);
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_17), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            goto __pyx_L34_unpacking_done;
            __pyx_L33_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
            if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __pyx_L34_unpacking_done:;
          }
          __pyx_v_hduname = __pyx_t_11;
          __pyx_t_11 = 0;
          __pyx_v_subsets = __pyx_t_13;
          __pyx_t_13 = 0;

          /* "gipsy.pyx":1692
 *             if has_pyfits and not exists:
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]             # <<<<<<<<<<<<<<
 *                hdunum = None
 *                altwcs = None
 */
          __pyx_t_14 = PyObject_GetAttr(__pyx_v_hduname, __pyx_n_s__split); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_13 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_k_tuple_113), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyList_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_14));
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
          PyList_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_kp_s_75));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_75));
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
          PyList_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_kp_s_75));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_75));
          __pyx_t_11 = PyNumber_Add(__pyx_t_13, ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PySequence_GetSlice(__pyx_t_11, 0, 3); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) {
            PyObject* sequence = __pyx_t_14;
            if (likely(PyTuple_CheckExact(sequence))) {
              if (unlikely(PyTuple_GET_SIZE(sequence) != 3)) {
                if (PyTuple_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
                else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
              __pyx_t_17 = PyTuple_GET_ITEM(sequence, 2); 
            } else {
              if (unlikely(PyList_GET_SIZE(sequence) != 3)) {
                if (PyList_GET_SIZE(sequence) > 3) __Pyx_RaiseTooManyValuesError(3);
                else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
              __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
              __pyx_t_17 = PyList_GET_ITEM(sequence, 2); 
            }
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else {
            Py_ssize_t index = -1;
            __pyx_t_18 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext;
            index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_11)) goto __pyx_L35_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_11);
            index = 1; __pyx_t_13 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_13)) goto __pyx_L35_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_13);
            index = 2; __pyx_t_17 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L35_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_17);
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_18), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            goto __pyx_L36_unpacking_done;
            __pyx_L35_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
            if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __pyx_L36_unpacking_done:;
          }
          __pyx_v_filename = __pyx_t_11;
          __pyx_t_11 = 0;
          __pyx_v_farg1 = __pyx_t_13;
          __pyx_t_13 = 0;
          __pyx_v_farg2 = __pyx_t_17;
          __pyx_t_17 = 0;

          /* "gipsy.pyx":1693
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]
 *                hdunum = None             # <<<<<<<<<<<<<<
 *                altwcs = None
 *                for farg in (farg1,farg2):
 */
          __Pyx_INCREF(Py_None);
          __pyx_v_hdunum = Py_None;

          /* "gipsy.pyx":1694
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]
 *                hdunum = None
 *                altwcs = None             # <<<<<<<<<<<<<<
 *                for farg in (farg1,farg2):
 *                   if farg:
 */
          __Pyx_INCREF(Py_None);
          __pyx_v_altwcs = Py_None;

          /* "gipsy.pyx":1695
 *                hdunum = None
 *                altwcs = None
 *                for farg in (farg1,farg2):             # <<<<<<<<<<<<<<
 *                   if farg:
 *                      try:
 */
          __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_14));
          __Pyx_INCREF(__pyx_v_farg1);
          PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_farg1);
          __Pyx_GIVEREF(__pyx_v_farg1);
          __Pyx_INCREF(__pyx_v_farg2);
          PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_farg2);
          __Pyx_GIVEREF(__pyx_v_farg2);
          __pyx_t_17 = ((PyObject *)__pyx_t_14); __Pyx_INCREF(__pyx_t_17); __pyx_t_19 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
          for (;;) {
            if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
            __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++;
            __Pyx_XDECREF(__pyx_v_farg);
            __pyx_v_farg = __pyx_t_14;
            __pyx_t_14 = 0;

            /* "gipsy.pyx":1696
 *                altwcs = None
 *                for farg in (farg1,farg2):
 *                   if farg:             # <<<<<<<<<<<<<<
 *                      try:
 *                         hdunum = int(farg)
 */
            __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_v_farg); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            if (__pyx_t_16) {

              /* "gipsy.pyx":1697
 *                for farg in (farg1,farg2):
 *                   if farg:
 *                      try:             # <<<<<<<<<<<<<<
 *                         hdunum = int(farg)
 *                      except:
 */
              {
                __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8);
                __Pyx_XGOTREF(__pyx_t_10);
                __Pyx_XGOTREF(__pyx_t_9);
                __Pyx_XGOTREF(__pyx_t_8);
                /*try:*/ {

                  /* "gipsy.pyx":1698
 *                   if farg:
 *                      try:
 *                         hdunum = int(farg)             # <<<<<<<<<<<<<<
 *                      except:
 *                         altwcs = farg.upper()
 */
                  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1698; __pyx_clineno = __LINE__; goto __pyx_L40_error;}
                  __Pyx_GOTREF(((PyObject *)__pyx_t_14));
                  __Pyx_INCREF(__pyx_v_farg);
                  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_farg);
                  __Pyx_GIVEREF(__pyx_v_farg);
                  __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1698; __pyx_clineno = __LINE__; goto __pyx_L40_error;}
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_v_hdunum);
                  __pyx_v_hdunum = __pyx_t_13;
                  __pyx_t_13 = 0;
                }
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                goto __pyx_L47_try_end;
                __pyx_L40_error:;
                __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;

                /* "gipsy.pyx":1699
 *                      try:
 *                         hdunum = int(farg)
 *                      except:             # <<<<<<<<<<<<<<
 *                         altwcs = farg.upper()
 *                if filename in self.fitsfiles:
 */
                /*except:*/ {
                  __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L42_except_error;}
                  __Pyx_GOTREF(__pyx_t_13);
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_GOTREF(__pyx_t_11);

                  /* "gipsy.pyx":1700
 *                         hdunum = int(farg)
 *                      except:
 *                         altwcs = farg.upper()             # <<<<<<<<<<<<<<
 *                if filename in self.fitsfiles:
 *                   hdulist, refs= self.fitsfiles[filename]
 */
                  __pyx_t_18 = PyObject_GetAttr(__pyx_v_farg, __pyx_n_s__upper); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L42_except_error;}
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_20 = PyObject_Call(__pyx_t_18, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L42_except_error;}
                  __Pyx_GOTREF(__pyx_t_20);
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_DECREF(__pyx_v_altwcs);
                  __pyx_v_altwcs = __pyx_t_20;
                  __pyx_t_20 = 0;
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                  goto __pyx_L41_exception_handled;
                }
                __pyx_L42_except_error:;
                __Pyx_XGIVEREF(__pyx_t_10);
                __Pyx_XGIVEREF(__pyx_t_9);
                __Pyx_XGIVEREF(__pyx_t_8);
                __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
                goto __pyx_L10_except_error;
                __pyx_L41_exception_handled:;
                __Pyx_XGIVEREF(__pyx_t_10);
                __Pyx_XGIVEREF(__pyx_t_9);
                __Pyx_XGIVEREF(__pyx_t_8);
                __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
                __pyx_L47_try_end:;
              }
              goto __pyx_L39;
            }
            __pyx_L39:;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

          /* "gipsy.pyx":1701
 *                      except:
 *                         altwcs = farg.upper()
 *                if filename in self.fitsfiles:             # <<<<<<<<<<<<<<
 *                   hdulist, refs= self.fitsfiles[filename]
 *                else:
 */
          __pyx_t_17 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsfiles); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1701; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_16 = ((PySequence_Contains(__pyx_t_17, __pyx_v_filename))); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1701; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (__pyx_t_16) {

            /* "gipsy.pyx":1702
 *                         altwcs = farg.upper()
 *                if filename in self.fitsfiles:
 *                   hdulist, refs= self.fitsfiles[filename]             # <<<<<<<<<<<<<<
 *                else:
 *                   try:
 */
            __pyx_t_17 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsfiles); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_11 = PyObject_GetItem(__pyx_t_17, __pyx_v_filename); if (!__pyx_t_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {
              PyObject* sequence = __pyx_t_11;
              if (likely(PyTuple_CheckExact(sequence))) {
                if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
                  if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                  else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                }
                __pyx_t_17 = PyTuple_GET_ITEM(sequence, 0); 
                __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
              } else {
                if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
                  if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                  else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                }
                __pyx_t_17 = PyList_GET_ITEM(sequence, 0); 
                __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
              }
              __Pyx_INCREF(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            } else {
              Py_ssize_t index = -1;
              __pyx_t_13 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_12 = Py_TYPE(__pyx_t_13)->tp_iternext;
              index = 0; __pyx_t_17 = __pyx_t_12(__pyx_t_13); if (unlikely(!__pyx_t_17)) goto __pyx_L51_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_17);
              index = 1; __pyx_t_14 = __pyx_t_12(__pyx_t_13); if (unlikely(!__pyx_t_14)) goto __pyx_L51_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_14);
              if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_13), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              goto __pyx_L52_unpacking_done;
              __pyx_L51_unpacking_failed:;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
              if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __pyx_L52_unpacking_done:;
            }
            __pyx_v_hdulist = __pyx_t_17;
            __pyx_t_17 = 0;
            __pyx_v_refs = __pyx_t_14;
            __pyx_t_14 = 0;
            goto __pyx_L50;
          }
          /*else*/ {

            /* "gipsy.pyx":1704
 *                   hdulist, refs= self.fitsfiles[filename]
 *                else:
 *                   try:             # <<<<<<<<<<<<<<
 *                      hdulist = pyfits.open(filename, memmap=True)
 *                      refs = 0
 */
            {
              __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:*/ {

                /* "gipsy.pyx":1705
 *                else:
 *                   try:
 *                      hdulist = pyfits.open(filename, memmap=True)             # <<<<<<<<<<<<<<
 *                      refs = 0
 *                   except:
 */
                __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__pyfits); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_14 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__open); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_GOTREF(__pyx_t_14);
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_11));
                __Pyx_INCREF(__pyx_v_filename);
                PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_filename);
                __Pyx_GIVEREF(__pyx_v_filename);
                __pyx_t_17 = PyDict_New(); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_17));
                __pyx_t_13 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_GOTREF(__pyx_t_13);
                if (PyDict_SetItem(__pyx_t_17, ((PyObject *)__pyx_n_s__memmap), __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __pyx_t_13 = PyEval_CallObjectWithKeywords(__pyx_t_14, ((PyObject *)__pyx_t_11), ((PyObject *)__pyx_t_17)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L53_error;}
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
                __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
                __pyx_v_hdulist = __pyx_t_13;
                __pyx_t_13 = 0;

                /* "gipsy.pyx":1706
 *                   try:
 *                      hdulist = pyfits.open(filename, memmap=True)
 *                      refs = 0             # <<<<<<<<<<<<<<
 *                   except:
 *                      raise GdsError(-5, "GDS -- set does not exist")
 */
                __Pyx_INCREF(__pyx_int_0);
                __pyx_v_refs = __pyx_int_0;
              }
              __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_L60_try_end;
              __pyx_L53_error:;
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;

              /* "gipsy.pyx":1707
 *                      hdulist = pyfits.open(filename, memmap=True)
 *                      refs = 0
 *                   except:             # <<<<<<<<<<<<<<
 *                      raise GdsError(-5, "GDS -- set does not exist")
 * 
 */
              /*except:*/ {
                __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_17, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1707; __pyx_clineno = __LINE__; goto __pyx_L55_except_error;}
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_GOTREF(__pyx_t_11);

                /* "gipsy.pyx":1708
 *                      refs = 0
 *                   except:
 *                      raise GdsError(-5, "GDS -- set does not exist")             # <<<<<<<<<<<<<<
 * 
 *                self.fitsfiles[filename] = (hdulist, refs+1)
 */
                __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L55_except_error;}
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_20 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_k_tuple_114), NULL); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L55_except_error;}
                __Pyx_GOTREF(__pyx_t_20);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_Raise(__pyx_t_20, 0, 0, 0);
                __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L55_except_error;}
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                goto __pyx_L54_exception_handled;
              }
              __pyx_L55_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_L10_except_error;
              __pyx_L54_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_L60_try_end:;
            }
          }
          __pyx_L50:;

          /* "gipsy.pyx":1710
 *                      raise GdsError(-5, "GDS -- set does not exist")
 * 
 *                self.fitsfiles[filename] = (hdulist, refs+1)             # <<<<<<<<<<<<<<
 *                self.hdulist = hdulist
 * 
 */
          __pyx_t_11 = PyNumber_Add(__pyx_v_refs, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1710; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1710; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_17));
          __Pyx_INCREF(__pyx_v_hdulist);
          PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_hdulist);
          __Pyx_GIVEREF(__pyx_v_hdulist);
          PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_11);
          __Pyx_GIVEREF(__pyx_t_11);
          __pyx_t_11 = 0;
          __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsfiles); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1710; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          if (PyObject_SetItem(__pyx_t_11, __pyx_v_filename, ((PyObject *)__pyx_t_17)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1710; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;

          /* "gipsy.pyx":1711
 * 
 *                self.fitsfiles[filename] = (hdulist, refs+1)
 *                self.hdulist = hdulist             # <<<<<<<<<<<<<<
 * 
 *                if hdunum is None:
 */
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__hdulist, __pyx_v_hdulist) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

          /* "gipsy.pyx":1713
 *                self.hdulist = hdulist
 * 
 *                if hdunum is None:             # <<<<<<<<<<<<<<
 *                   if len(hdulist)>1:
 *                      if gethdu is not None:
 */
          __pyx_t_16 = (__pyx_v_hdunum == Py_None);
          if (__pyx_t_16) {

            /* "gipsy.pyx":1714
 * 
 *                if hdunum is None:
 *                   if len(hdulist)>1:             # <<<<<<<<<<<<<<
 *                      if gethdu is not None:
 *                         hdunum = gethdu(hdulist)
 */
            __pyx_t_19 = PyObject_Length(__pyx_v_hdulist); if (unlikely(__pyx_t_19 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __pyx_t_16 = (__pyx_t_19 > 1);
            if (__pyx_t_16) {

              /* "gipsy.pyx":1715
 *                if hdunum is None:
 *                   if len(hdulist)>1:
 *                      if gethdu is not None:             # <<<<<<<<<<<<<<
 *                         hdunum = gethdu(hdulist)
 *                      else:
 */
              __pyx_t_16 = (__pyx_v_gethdu != Py_None);
              if (__pyx_t_16) {

                /* "gipsy.pyx":1716
 *                   if len(hdulist)>1:
 *                      if gethdu is not None:
 *                         hdunum = gethdu(hdulist)             # <<<<<<<<<<<<<<
 *                      else:
 *                         raise GdsError(-1, "%s: unspecified HDU" % filename)
 */
                __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_17));
                __Pyx_INCREF(__pyx_v_hdulist);
                PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_hdulist);
                __Pyx_GIVEREF(__pyx_v_hdulist);
                __pyx_t_11 = PyObject_Call(__pyx_v_gethdu, ((PyObject *)__pyx_t_17), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_v_hdunum);
                __pyx_v_hdunum = __pyx_t_11;
                __pyx_t_11 = 0;
                goto __pyx_L65;
              }
              /*else*/ {

                /* "gipsy.pyx":1718
 *                         hdunum = gethdu(hdulist)
 *                      else:
 *                         raise GdsError(-1, "%s: unspecified HDU" % filename)             # <<<<<<<<<<<<<<
 *                   else:
 *                      hdunum = 0
 */
                __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_17 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_115), __pyx_v_filename); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_17));
                __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_13));
                __Pyx_INCREF(__pyx_int_neg_1);
                PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_int_neg_1);
                __Pyx_GIVEREF(__pyx_int_neg_1);
                PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)__pyx_t_17));
                __Pyx_GIVEREF(((PyObject *)__pyx_t_17));
                __pyx_t_17 = 0;
                __pyx_t_17 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
                __Pyx_Raise(__pyx_t_17, 0, 0, 0);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_L65:;
              goto __pyx_L64;
            }
            /*else*/ {

              /* "gipsy.pyx":1720
 *                         raise GdsError(-1, "%s: unspecified HDU" % filename)
 *                   else:
 *                      hdunum = 0             # <<<<<<<<<<<<<<
 * 
 *                self.fitsname = filename
 */
              __Pyx_INCREF(__pyx_int_0);
              __Pyx_DECREF(__pyx_v_hdunum);
              __pyx_v_hdunum = __pyx_int_0;
            }
            __pyx_L64:;
            goto __pyx_L63;
          }
          __pyx_L63:;

          /* "gipsy.pyx":1722
 *                      hdunum = 0
 * 
 *                self.fitsname = filename             # <<<<<<<<<<<<<<
 *                self.hdunum   = hdunum
 *                try:
 */
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__fitsname, __pyx_v_filename) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

          /* "gipsy.pyx":1723
 * 
 *                self.fitsname = filename
 *                self.hdunum   = hdunum             # <<<<<<<<<<<<<<
 *                try:
 *                   hdu = hdulist[hdunum]
 */
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__hdunum, __pyx_v_hdunum) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1723; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

          /* "gipsy.pyx":1724
 *                self.fitsname = filename
 *                self.hdunum   = hdunum
 *                try:             # <<<<<<<<<<<<<<
 *                   hdu = hdulist[hdunum]
 *                except:
 */
          {
            __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_8);
            /*try:*/ {

              /* "gipsy.pyx":1725
 *                self.hdunum   = hdunum
 *                try:
 *                   hdu = hdulist[hdunum]             # <<<<<<<<<<<<<<
 *                except:
 *                   raise GdsError(-1, "%s: HDU %s does not exist"
 */
              __pyx_t_17 = PyObject_GetItem(__pyx_v_hdulist, __pyx_v_hdunum); if (!__pyx_t_17) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1725; __pyx_clineno = __LINE__; goto __pyx_L66_error;}
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_v_hdu = __pyx_t_17;
              __pyx_t_17 = 0;
            }
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            goto __pyx_L73_try_end;
            __pyx_L66_error:;
            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;

            /* "gipsy.pyx":1726
 *                try:
 *                   hdu = hdulist[hdunum]
 *                except:             # <<<<<<<<<<<<<<
 *                   raise GdsError(-1, "%s: HDU %s does not exist"
 *                                  % (filename, hdunum) )
 */
            /*except:*/ {
              __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_17, &__pyx_t_13, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_GOTREF(__pyx_t_13);
              __Pyx_GOTREF(__pyx_t_11);

              /* "gipsy.pyx":1727
 *                   hdu = hdulist[hdunum]
 *                except:
 *                   raise GdsError(-1, "%s: HDU %s does not exist"             # <<<<<<<<<<<<<<
 *                                  % (filename, hdunum) )
 *                if 'XTENSION' in hdu.header:
 */
              __pyx_t_20 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_GOTREF(__pyx_t_20);

              /* "gipsy.pyx":1728
 *                except:
 *                   raise GdsError(-1, "%s: HDU %s does not exist"
 *                                  % (filename, hdunum) )             # <<<<<<<<<<<<<<
 *                if 'XTENSION' in hdu.header:
 *                   xtn = hdu.header['XTENSION']
 */
              __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1728; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_GOTREF(((PyObject *)__pyx_t_14));
              __Pyx_INCREF(__pyx_v_filename);
              PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_filename);
              __Pyx_GIVEREF(__pyx_v_filename);
              __Pyx_INCREF(__pyx_v_hdunum);
              PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_hdunum);
              __Pyx_GIVEREF(__pyx_v_hdunum);
              __pyx_t_18 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_116), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1728; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_GOTREF(((PyObject *)__pyx_t_18));
              __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
              __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_GOTREF(((PyObject *)__pyx_t_14));
              __Pyx_INCREF(__pyx_int_neg_1);
              PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_int_neg_1);
              __Pyx_GIVEREF(__pyx_int_neg_1);
              PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_t_18));
              __Pyx_GIVEREF(((PyObject *)__pyx_t_18));
              __pyx_t_18 = 0;
              __pyx_t_18 = PyObject_Call(__pyx_t_20, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
              __Pyx_Raise(__pyx_t_18, 0, 0, 0);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L68_except_error;}
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              goto __pyx_L67_exception_handled;
            }
            __pyx_L68_except_error:;
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_8);
            __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
            goto __pyx_L10_except_error;
            __pyx_L67_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_8);
            __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
            __pyx_L73_try_end:;
          }

          /* "gipsy.pyx":1729
 *                   raise GdsError(-1, "%s: HDU %s does not exist"
 *                                  % (filename, hdunum) )
 *                if 'XTENSION' in hdu.header:             # <<<<<<<<<<<<<<
 *                   xtn = hdu.header['XTENSION']
 *                   if xtn!='IMAGE':
 */
          __pyx_t_11 = PyObject_GetAttr(__pyx_v_hdu, __pyx_n_s__header); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_16 = ((PySequence_Contains(__pyx_t_11, ((PyObject *)__pyx_n_s__XTENSION)))); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_16) {

            /* "gipsy.pyx":1730
 *                                  % (filename, hdunum) )
 *                if 'XTENSION' in hdu.header:
 *                   xtn = hdu.header['XTENSION']             # <<<<<<<<<<<<<<
 *                   if xtn!='IMAGE':
 *                      raise GdsError(-1, "%s: HDU %s has EXTENSION=%s"
 */
            __pyx_t_11 = PyObject_GetAttr(__pyx_v_hdu, __pyx_n_s__header); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_13 = PyObject_GetItem(__pyx_t_11, ((PyObject *)__pyx_n_s__XTENSION)); if (!__pyx_t_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_v_xtn = __pyx_t_13;
            __pyx_t_13 = 0;

            /* "gipsy.pyx":1731
 *                if 'XTENSION' in hdu.header:
 *                   xtn = hdu.header['XTENSION']
 *                   if xtn!='IMAGE':             # <<<<<<<<<<<<<<
 *                      raise GdsError(-1, "%s: HDU %s has EXTENSION=%s"
 *                                     % (filename, hdunum, xtn) )
 */
            __pyx_t_16 = __Pyx_PyString_Equals(__pyx_v_xtn, ((PyObject *)__pyx_n_s__IMAGE), Py_NE); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            if (__pyx_t_16) {

              /* "gipsy.pyx":1732
 *                   xtn = hdu.header['XTENSION']
 *                   if xtn!='IMAGE':
 *                      raise GdsError(-1, "%s: HDU %s has EXTENSION=%s"             # <<<<<<<<<<<<<<
 *                                     % (filename, hdunum, xtn) )
 *                header = hdu.header.copy()
 */
              __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_GOTREF(__pyx_t_13);

              /* "gipsy.pyx":1733
 *                   if xtn!='IMAGE':
 *                      raise GdsError(-1, "%s: HDU %s has EXTENSION=%s"
 *                                     % (filename, hdunum, xtn) )             # <<<<<<<<<<<<<<
 *                header = hdu.header.copy()
 * 
 */
              __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_GOTREF(((PyObject *)__pyx_t_11));
              __Pyx_INCREF(__pyx_v_filename);
              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_filename);
              __Pyx_GIVEREF(__pyx_v_filename);
              __Pyx_INCREF(__pyx_v_hdunum);
              PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_hdunum);
              __Pyx_GIVEREF(__pyx_v_hdunum);
              __Pyx_INCREF(__pyx_v_xtn);
              PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_v_xtn);
              __Pyx_GIVEREF(__pyx_v_xtn);
              __pyx_t_17 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_117), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1733; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_GOTREF(((PyObject *)__pyx_t_17));
              __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
              __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_GOTREF(((PyObject *)__pyx_t_11));
              __Pyx_INCREF(__pyx_int_neg_1);
              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_neg_1);
              __Pyx_GIVEREF(__pyx_int_neg_1);
              PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)__pyx_t_17));
              __Pyx_GIVEREF(((PyObject *)__pyx_t_17));
              __pyx_t_17 = 0;
              __pyx_t_17 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
              __Pyx_Raise(__pyx_t_17, 0, 0, 0);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              goto __pyx_L77;
            }
            __pyx_L77:;
            goto __pyx_L76;
          }
          __pyx_L76:;

          /* "gipsy.pyx":1734
 *                      raise GdsError(-1, "%s: HDU %s has EXTENSION=%s"
 *                                     % (filename, hdunum, xtn) )
 *                header = hdu.header.copy()             # <<<<<<<<<<<<<<
 * 
 *                self.alters = __alter_wcs(header)            # alternative WCS?
 */
          __pyx_t_17 = PyObject_GetAttr(__pyx_v_hdu, __pyx_n_s__header); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1734; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = PyObject_GetAttr(__pyx_t_17, __pyx_n_s__copy); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1734; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1734; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_v_header = __pyx_t_17;
          __pyx_t_17 = 0;

          /* "gipsy.pyx":1736
 *                header = hdu.header.copy()
 * 
 *                self.alters = __alter_wcs(header)            # alternative WCS?             # <<<<<<<<<<<<<<
 *                if altwcs:
 *                   self.altwcs = altwcs
 */
          __pyx_t_17 = __Pyx_GetName(__pyx_m, __pyx_n_s____alter_wcs); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_11));
          __Pyx_INCREF(__pyx_v_header);
          PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_header);
          __Pyx_GIVEREF(__pyx_v_header);
          __pyx_t_13 = PyObject_Call(__pyx_t_17, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__alters, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1736; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "gipsy.pyx":1737
 * 
 *                self.alters = __alter_wcs(header)            # alternative WCS?
 *                if altwcs:             # <<<<<<<<<<<<<<
 *                   self.altwcs = altwcs
 *                elif self.alters and getalt:
 */
          __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_v_altwcs); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          if (__pyx_t_16) {

            /* "gipsy.pyx":1738
 *                self.alters = __alter_wcs(header)            # alternative WCS?
 *                if altwcs:
 *                   self.altwcs = altwcs             # <<<<<<<<<<<<<<
 *                elif self.alters and getalt:
 *                   self.altwcs = getalt(self.alters, header).upper()
 */
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__altwcs, __pyx_v_altwcs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1738; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            goto __pyx_L78;
          }

          /* "gipsy.pyx":1739
 *                if altwcs:
 *                   self.altwcs = altwcs
 *                elif self.alters and getalt:             # <<<<<<<<<<<<<<
 *                   self.altwcs = getalt(self.alters, header).upper()
 *                if self.altwcs in self.alters:
 */
          __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__alters); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_16 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_16) {
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_getalt); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1739; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __pyx_t_15 = __pyx_t_2;
          } else {
            __pyx_t_15 = __pyx_t_16;
          }
          if (__pyx_t_15) {

            /* "gipsy.pyx":1740
 *                   self.altwcs = altwcs
 *                elif self.alters and getalt:
 *                   self.altwcs = getalt(self.alters, header).upper()             # <<<<<<<<<<<<<<
 *                if self.altwcs in self.alters:
 *                   __substitute_wcs(header, self.altwcs)
 */
            __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__alters); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
            __Pyx_GIVEREF(__pyx_t_13);
            __Pyx_INCREF(__pyx_v_header);
            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_header);
            __Pyx_GIVEREF(__pyx_v_header);
            __pyx_t_13 = 0;
            __pyx_t_13 = PyObject_Call(__pyx_v_getalt, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
            __pyx_t_11 = PyObject_GetAttr(__pyx_t_13, __pyx_n_s__upper); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __pyx_t_13 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__altwcs, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1740; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            goto __pyx_L78;
          }
          __pyx_L78:;

          /* "gipsy.pyx":1741
 *                elif self.alters and getalt:
 *                   self.altwcs = getalt(self.alters, header).upper()
 *                if self.altwcs in self.alters:             # <<<<<<<<<<<<<<
 *                   __substitute_wcs(header, self.altwcs)
 *                elif self.altwcs:
 */
          __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__altwcs); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__alters); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_15 = ((PySequence_Contains(__pyx_t_11, __pyx_t_13))); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1741; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_15) {

            /* "gipsy.pyx":1742
 *                   self.altwcs = getalt(self.alters, header).upper()
 *                if self.altwcs in self.alters:
 *                   __substitute_wcs(header, self.altwcs)             # <<<<<<<<<<<<<<
 *                elif self.altwcs:
 *                   raise GdsError(-1, "%s: non-existing alternative WCS '%s'" %
 */
            __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s____substitute_wcs); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__altwcs); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_17));
            __Pyx_INCREF(__pyx_v_header);
            PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_header);
            __Pyx_GIVEREF(__pyx_v_header);
            PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_13);
            __Pyx_GIVEREF(__pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_13 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_17), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1742; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            goto __pyx_L79;
          }

          /* "gipsy.pyx":1743
 *                if self.altwcs in self.alters:
 *                   __substitute_wcs(header, self.altwcs)
 *                elif self.altwcs:             # <<<<<<<<<<<<<<
 *                   raise GdsError(-1, "%s: non-existing alternative WCS '%s'" %
 *                                       (filename, altwcs))
 */
          __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__altwcs); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_15) {

            /* "gipsy.pyx":1744
 *                   __substitute_wcs(header, self.altwcs)
 *                elif self.altwcs:
 *                   raise GdsError(-1, "%s: non-existing alternative WCS '%s'" %             # <<<<<<<<<<<<<<
 *                                       (filename, altwcs))
 * 
 */
            __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);

            /* "gipsy.pyx":1745
 *                elif self.altwcs:
 *                   raise GdsError(-1, "%s: non-existing alternative WCS '%s'" %
 *                                       (filename, altwcs))             # <<<<<<<<<<<<<<
 * 
 *                self.name = '_tmp_%d_%d' % (os.getpid(), self.fitsseqno)
 */
            __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_17));
            __Pyx_INCREF(__pyx_v_filename);
            PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_v_filename);
            __Pyx_GIVEREF(__pyx_v_filename);
            __Pyx_INCREF(__pyx_v_altwcs);
            PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_v_altwcs);
            __Pyx_GIVEREF(__pyx_v_altwcs);
            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_118), ((PyObject *)__pyx_t_17)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
            __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_17));
            __Pyx_INCREF(__pyx_int_neg_1);
            PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_int_neg_1);
            __Pyx_GIVEREF(__pyx_int_neg_1);
            PyTuple_SET_ITEM(__pyx_t_17, 1, ((PyObject *)__pyx_t_11));
            __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
            __pyx_t_11 = 0;
            __pyx_t_11 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_17), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
            __Pyx_Raise(__pyx_t_11, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            goto __pyx_L79;
          }
          __pyx_L79:;

          /* "gipsy.pyx":1747
 *                                       (filename, altwcs))
 * 
 *                self.name = '_tmp_%d_%d' % (os.getpid(), self.fitsseqno)             # <<<<<<<<<<<<<<
 *                Set.fitsseqno += 1
 *                gds_create_c(tofchar(self.name), &err_c)
 */
          __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_17 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__getpid); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = PyObject_Call(__pyx_t_17, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsseqno); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_13));
          PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11);
          __Pyx_GIVEREF(__pyx_t_11);
          PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_17);
          __Pyx_GIVEREF(__pyx_t_17);
          __pyx_t_11 = 0;
          __pyx_t_17 = 0;
          __pyx_t_17 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_119), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_17));
          __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__name, ((PyObject *)__pyx_t_17)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;

          /* "gipsy.pyx":1748
 * 
 *                self.name = '_tmp_%d_%d' % (os.getpid(), self.fitsseqno)
 *                Set.fitsseqno += 1             # <<<<<<<<<<<<<<
 *                gds_create_c(tofchar(self.name), &err_c)
 *                if err_c<0:
 */
          __pyx_t_17 = __Pyx_GetName(__pyx_m, __pyx_n_s__Set); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_13 = PyObject_GetAttr(__pyx_t_17, __pyx_n_s__fitsseqno); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_int_1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__Set); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          if (PyObject_SetAttr(__pyx_t_13, __pyx_n_s__fitsseqno, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "gipsy.pyx":1749
 *                self.name = '_tmp_%d_%d' % (os.getpid(), self.fitsseqno)
 *                Set.fitsseqno += 1
 *                gds_create_c(tofchar(self.name), &err_c)             # <<<<<<<<<<<<<<
 *                if err_c<0:
 *                   raiseGds(err_c)
 */
          __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1749; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          gds_create_c(__pyx_f_5gipsy_tofchar(__pyx_t_13), (&__pyx_v_err_c));
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "gipsy.pyx":1750
 *                Set.fitsseqno += 1
 *                gds_create_c(tofchar(self.name), &err_c)
 *                if err_c<0:             # <<<<<<<<<<<<<<
 *                   raiseGds(err_c)
 *                handle_c = newfchar(20)
 */
          __pyx_t_15 = (__pyx_v_err_c < 0);
          if (__pyx_t_15) {

            /* "gipsy.pyx":1751
 *                gds_create_c(tofchar(self.name), &err_c)
 *                if err_c<0:
 *                   raiseGds(err_c)             # <<<<<<<<<<<<<<
 *                handle_c = newfchar(20)
 *                gds_handle_c(handle_c, tofchar(self.name), &err_c)
 */
            __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_17 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_17);
            __Pyx_GIVEREF(__pyx_t_17);
            __pyx_t_17 = 0;
            __pyx_t_17 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            goto __pyx_L80;
          }
          __pyx_L80:;

          /* "gipsy.pyx":1752
 *                if err_c<0:
 *                   raiseGds(err_c)
 *                handle_c = newfchar(20)             # <<<<<<<<<<<<<<
 *                gds_handle_c(handle_c, tofchar(self.name), &err_c)
 *                handle = handle_c.a
 */
          __pyx_v_handle_c = __pyx_f_5gipsy_newfchar(__pyx_int_20);

          /* "gipsy.pyx":1753
 *                   raiseGds(err_c)
 *                handle_c = newfchar(20)
 *                gds_handle_c(handle_c, tofchar(self.name), &err_c)             # <<<<<<<<<<<<<<
 *                handle = handle_c.a
 *                self.spec    = setspec
 */
          __pyx_t_17 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          gds_handle_c(__pyx_v_handle_c, __pyx_f_5gipsy_tofchar(__pyx_t_17), (&__pyx_v_err_c));
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

          /* "gipsy.pyx":1754
 *                handle_c = newfchar(20)
 *                gds_handle_c(handle_c, tofchar(self.name), &err_c)
 *                handle = handle_c.a             # <<<<<<<<<<<<<<
 *                self.spec    = setspec
 *                self.handle  = handle
 */
          __pyx_t_17 = PyBytes_FromString(__pyx_v_handle_c.a); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1754; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_17));
          __pyx_v_handle = __pyx_t_17;
          __pyx_t_17 = 0;

          /* "gipsy.pyx":1755
 *                gds_handle_c(handle_c, tofchar(self.name), &err_c)
 *                handle = handle_c.a
 *                self.spec    = setspec             # <<<<<<<<<<<<<<
 *                self.handle  = handle
 *                self.open    = True
 */
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__spec, __pyx_v_setspec) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1755; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

          /* "gipsy.pyx":1756
 *                handle = handle_c.a
 *                self.spec    = setspec
 *                self.handle  = handle             # <<<<<<<<<<<<<<
 *                self.open    = True
 *                self.wmode   = True
 */
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__handle, ((PyObject *)__pyx_v_handle)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1756; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

          /* "gipsy.pyx":1757
 *                self.spec    = setspec
 *                self.handle  = handle
 *                self.open    = True             # <<<<<<<<<<<<<<
 *                self.wmode   = True
 *                delfchar(handle_c)
 */
          __pyx_t_17 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__open, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

          /* "gipsy.pyx":1758
 *                self.handle  = handle
 *                self.open    = True
 *                self.wmode   = True             # <<<<<<<<<<<<<<
 *                delfchar(handle_c)
 *                write = False
 */
          __pyx_t_17 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1758; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__wmode, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1758; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

          /* "gipsy.pyx":1759
 *                self.open    = True
 *                self.wmode   = True
 *                delfchar(handle_c)             # <<<<<<<<<<<<<<
 *                write = False
 *                done = ['NAXIS']
 */
          __pyx_t_17 = __pyx_f_5gipsy_delfchar(__pyx_v_handle_c); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1759; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

          /* "gipsy.pyx":1760
 *                self.wmode   = True
 *                delfchar(handle_c)
 *                write = False             # <<<<<<<<<<<<<<
 *                done = ['NAXIS']
 *                for axis in range(1,header['NAXIS']+1):
 */
          __pyx_t_17 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_v_write);
          __pyx_v_write = __pyx_t_17;
          __pyx_t_17 = 0;

          /* "gipsy.pyx":1761
 *                delfchar(handle_c)
 *                write = False
 *                done = ['NAXIS']             # <<<<<<<<<<<<<<
 *                for axis in range(1,header['NAXIS']+1):
 *                   ctypei = 'CTYPE%d' % axis
 */
          __pyx_t_17 = PyList_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_17));
          __Pyx_INCREF(((PyObject *)__pyx_n_s__NAXIS));
          PyList_SET_ITEM(__pyx_t_17, 0, ((PyObject *)__pyx_n_s__NAXIS));
          __Pyx_GIVEREF(((PyObject *)__pyx_n_s__NAXIS));
          __pyx_v_done = __pyx_t_17;
          __pyx_t_17 = 0;

          /* "gipsy.pyx":1762
 *                write = False
 *                done = ['NAXIS']
 *                for axis in range(1,header['NAXIS']+1):             # <<<<<<<<<<<<<<
 *                   ctypei = 'CTYPE%d' % axis
 *                   crpixi = 'CRPIX%d' % axis
 */
          __pyx_t_17 = PyObject_GetItem(__pyx_v_header, ((PyObject *)__pyx_n_s__NAXIS)); if (!__pyx_t_17) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = PyNumber_Add(__pyx_t_17, __pyx_int_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_17));
          __Pyx_INCREF(__pyx_int_1);
          PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_int_1);
          __Pyx_GIVEREF(__pyx_int_1);
          PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_11);
          __Pyx_GIVEREF(__pyx_t_11);
          __pyx_t_11 = 0;
          __pyx_t_11 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_17), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
          if (PyList_CheckExact(__pyx_t_11) || PyTuple_CheckExact(__pyx_t_11)) {
            __pyx_t_17 = __pyx_t_11; __Pyx_INCREF(__pyx_t_17); __pyx_t_19 = 0;
            __pyx_t_21 = NULL;
          } else {
            __pyx_t_19 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_21 = Py_TYPE(__pyx_t_17)->tp_iternext;
          }
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          for (;;) {
            if (PyList_CheckExact(__pyx_t_17)) {
              if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_17)) break;
              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_19); __Pyx_INCREF(__pyx_t_11); __pyx_t_19++;
            } else if (PyTuple_CheckExact(__pyx_t_17)) {
              if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_19); __Pyx_INCREF(__pyx_t_11); __pyx_t_19++;
            } else {
              __pyx_t_11 = __pyx_t_21(__pyx_t_17);
              if (unlikely(!__pyx_t_11)) {
                if (PyErr_Occurred()) {
                  if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
                  else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_11);
            }
            __Pyx_XDECREF(__pyx_v_axis);
            __pyx_v_axis = __pyx_t_11;
            __pyx_t_11 = 0;

            /* "gipsy.pyx":1763
 *                done = ['NAXIS']
 *                for axis in range(1,header['NAXIS']+1):
 *                   ctypei = 'CTYPE%d' % axis             # <<<<<<<<<<<<<<
 *                   crpixi = 'CRPIX%d' % axis
 *                   naxisi = 'NAXIS%d' % axis
 */
            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_120), __pyx_v_axis); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            __Pyx_XDECREF(__pyx_v_ctypei);
            __pyx_v_ctypei = ((PyObject *)__pyx_t_11);
            __pyx_t_11 = 0;

            /* "gipsy.pyx":1764
 *                for axis in range(1,header['NAXIS']+1):
 *                   ctypei = 'CTYPE%d' % axis
 *                   crpixi = 'CRPIX%d' % axis             # <<<<<<<<<<<<<<
 *                   naxisi = 'NAXIS%d' % axis
 *                   try:
 */
            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_121), __pyx_v_axis); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1764; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            __Pyx_XDECREF(__pyx_v_crpixi);
            __pyx_v_crpixi = ((PyObject *)__pyx_t_11);
            __pyx_t_11 = 0;

            /* "gipsy.pyx":1765
 *                   ctypei = 'CTYPE%d' % axis
 *                   crpixi = 'CRPIX%d' % axis
 *                   naxisi = 'NAXIS%d' % axis             # <<<<<<<<<<<<<<
 *                   try:
 *                      ctype = header[ctypei]
 */
            __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_122), __pyx_v_axis); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1765; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            __Pyx_XDECREF(__pyx_v_naxisi);
            __pyx_v_naxisi = ((PyObject *)__pyx_t_11);
            __pyx_t_11 = 0;

            /* "gipsy.pyx":1766
 *                   crpixi = 'CRPIX%d' % axis
 *                   naxisi = 'NAXIS%d' % axis
 *                   try:             # <<<<<<<<<<<<<<
 *                      ctype = header[ctypei]
 *                      if ctype==' ':
 */
            {
              __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:*/ {

                /* "gipsy.pyx":1767
 *                   naxisi = 'NAXIS%d' % axis
 *                   try:
 *                      ctype = header[ctypei]             # <<<<<<<<<<<<<<
 *                      if ctype==' ':
 *                         raise Exception
 */
                __pyx_t_11 = PyObject_GetItem(__pyx_v_header, __pyx_v_ctypei); if (!__pyx_t_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1767; __pyx_clineno = __LINE__; goto __pyx_L83_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_XDECREF(__pyx_v_ctype);
                __pyx_v_ctype = __pyx_t_11;
                __pyx_t_11 = 0;

                /* "gipsy.pyx":1768
 *                   try:
 *                      ctype = header[ctypei]
 *                      if ctype==' ':             # <<<<<<<<<<<<<<
 *                         raise Exception
 *                   except:
 */
                __pyx_t_15 = __Pyx_PyString_Equals(__pyx_v_ctype, ((PyObject *)__pyx_kp_s_14), Py_EQ); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1768; __pyx_clineno = __LINE__; goto __pyx_L83_error;}
                if (__pyx_t_15) {

                  /* "gipsy.pyx":1769
 *                      ctype = header[ctypei]
 *                      if ctype==' ':
 *                         raise Exception             # <<<<<<<<<<<<<<
 *                   except:
 *                      ctype = 'X%d' % axis
 */
                  __Pyx_Raise(__pyx_builtin_Exception, 0, 0, 0);
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1769; __pyx_clineno = __LINE__; goto __pyx_L83_error;}
                  goto __pyx_L91;
                }
                __pyx_L91:;
              }
              __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_L90_try_end;
              __pyx_L83_error:;
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;

              /* "gipsy.pyx":1770
 *                      if ctype==' ':
 *                         raise Exception
 *                   except:             # <<<<<<<<<<<<<<
 *                      ctype = 'X%d' % axis
 *                   try:
 */
              /*except:*/ {
                __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_13, &__pyx_t_18) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L85_except_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_GOTREF(__pyx_t_18);

                /* "gipsy.pyx":1771
 *                         raise Exception
 *                   except:
 *                      ctype = 'X%d' % axis             # <<<<<<<<<<<<<<
 *                   try:
 *                      crpix = header[crpixi]
 */
                __pyx_t_14 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_123), __pyx_v_axis); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1771; __pyx_clineno = __LINE__; goto __pyx_L85_except_error;}
                __Pyx_GOTREF(((PyObject *)__pyx_t_14));
                __Pyx_XDECREF(__pyx_v_ctype);
                __pyx_v_ctype = ((PyObject *)__pyx_t_14);
                __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                goto __pyx_L84_exception_handled;
              }
              __pyx_L85_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_L10_except_error;
              __pyx_L84_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_L90_try_end:;
            }

            /* "gipsy.pyx":1772
 *                   except:
 *                      ctype = 'X%d' % axis
 *                   try:             # <<<<<<<<<<<<<<
 *                      crpix = header[crpixi]
 *                   except:
 */
            {
              __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_10);
              __Pyx_XGOTREF(__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_8);
              /*try:*/ {

                /* "gipsy.pyx":1773
 *                      ctype = 'X%d' % axis
 *                   try:
 *                      crpix = header[crpixi]             # <<<<<<<<<<<<<<
 *                   except:
 *                      crpix = 0.0
 */
                __pyx_t_18 = PyObject_GetItem(__pyx_v_header, __pyx_v_crpixi); if (!__pyx_t_18) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L94_error;}
                __Pyx_GOTREF(__pyx_t_18);
                __Pyx_XDECREF(__pyx_v_crpix);
                __pyx_v_crpix = __pyx_t_18;
                __pyx_t_18 = 0;
              }
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              goto __pyx_L101_try_end;
              __pyx_L94_error:;
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;

              /* "gipsy.pyx":1774
 *                   try:
 *                      crpix = header[crpixi]
 *                   except:             # <<<<<<<<<<<<<<
 *                      crpix = 0.0
 *                   self.extend(ctype, crpix, header[naxisi])
 */
              /*except:*/ {
                __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_13, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L96_except_error;}
                __Pyx_GOTREF(__pyx_t_18);
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_GOTREF(__pyx_t_11);

                /* "gipsy.pyx":1775
 *                      crpix = header[crpixi]
 *                   except:
 *                      crpix = 0.0             # <<<<<<<<<<<<<<
 *                   self.extend(ctype, crpix, header[naxisi])
 *                   done.append(ctypei)
 */
                __pyx_t_14 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L96_except_error;}
                __Pyx_GOTREF(__pyx_t_14);
                __Pyx_XDECREF(__pyx_v_crpix);
                __pyx_v_crpix = __pyx_t_14;
                __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                goto __pyx_L95_exception_handled;
              }
              __pyx_L96_except_error:;
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
              goto __pyx_L10_except_error;
              __pyx_L95_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
              __pyx_L101_try_end:;
            }

            /* "gipsy.pyx":1776
 *                   except:
 *                      crpix = 0.0
 *                   self.extend(ctype, crpix, header[naxisi])             # <<<<<<<<<<<<<<
 *                   done.append(ctypei)
 *                   done.append(crpixi)
 */
            __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__extend); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_13 = PyObject_GetItem(__pyx_v_header, __pyx_v_naxisi); if (!__pyx_t_13) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_18 = PyTuple_New(3); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_18));
            __Pyx_INCREF(__pyx_v_ctype);
            PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_v_ctype);
            __Pyx_GIVEREF(__pyx_v_ctype);
            __Pyx_INCREF(__pyx_v_crpix);
            PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_v_crpix);
            __Pyx_GIVEREF(__pyx_v_crpix);
            PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_13);
            __Pyx_GIVEREF(__pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_13 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_18), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_18)); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

            /* "gipsy.pyx":1777
 *                      crpix = 0.0
 *                   self.extend(ctype, crpix, header[naxisi])
 *                   done.append(ctypei)             # <<<<<<<<<<<<<<
 *                   done.append(crpixi)
 *                   done.append(naxisi)
 */
            if (unlikely(((PyObject *)__pyx_v_done) == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} 
            }
            __pyx_t_22 = PyList_Append(__pyx_v_done, __pyx_v_ctypei); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

            /* "gipsy.pyx":1778
 *                   self.extend(ctype, crpix, header[naxisi])
 *                   done.append(ctypei)
 *                   done.append(crpixi)             # <<<<<<<<<<<<<<
 *                   done.append(naxisi)
 *                   self['CRVAL%d' % axis] = 0.0
 */
            if (unlikely(((PyObject *)__pyx_v_done) == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1778; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} 
            }
            __pyx_t_22 = PyList_Append(__pyx_v_done, __pyx_v_crpixi); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1778; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

            /* "gipsy.pyx":1779
 *                   done.append(ctypei)
 *                   done.append(crpixi)
 *                   done.append(naxisi)             # <<<<<<<<<<<<<<
 *                   self['CRVAL%d' % axis] = 0.0
 *                for card in header.ascard:
 */
            if (unlikely(((PyObject *)__pyx_v_done) == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1779; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;} 
            }
            __pyx_t_22 = PyList_Append(__pyx_v_done, __pyx_v_naxisi); if (unlikely(__pyx_t_22 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1779; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

            /* "gipsy.pyx":1780
 *                   done.append(crpixi)
 *                   done.append(naxisi)
 *                   self['CRVAL%d' % axis] = 0.0             # <<<<<<<<<<<<<<
 *                for card in header.ascard:
 *                   try:
 */
            __pyx_t_13 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_18 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_124), __pyx_v_axis); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_18));
            if (PyObject_SetItem(__pyx_v_self, ((PyObject *)__pyx_t_18), __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_DECREF(((PyObject *)__pyx_t_18)); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

          /* "gipsy.pyx":1781
 *                   done.append(naxisi)
 *                   self['CRVAL%d' % axis] = 0.0
 *                for card in header.ascard:             # <<<<<<<<<<<<<<
 *                   try:
 *                      key = card.key
 */
          __pyx_t_17 = PyObject_GetAttr(__pyx_v_header, __pyx_n_s__ascard); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          if (PyList_CheckExact(__pyx_t_17) || PyTuple_CheckExact(__pyx_t_17)) {
            __pyx_t_13 = __pyx_t_17; __Pyx_INCREF(__pyx_t_13); __pyx_t_19 = 0;
            __pyx_t_21 = NULL;
          } else {
            __pyx_t_19 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_21 = Py_TYPE(__pyx_t_13)->tp_iternext;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          for (;;) {
            if (PyList_CheckExact(__pyx_t_13)) {
              if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_13)) break;
              __pyx_t_17 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_19); __Pyx_INCREF(__pyx_t_17); __pyx_t_19++;
            } else if (PyTuple_CheckExact(__pyx_t_13)) {
              if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
              __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_19); __Pyx_INCREF(__pyx_t_17); __pyx_t_19++;
            } else {
              __pyx_t_17 = __pyx_t_21(__pyx_t_13);
              if (unlikely(!__pyx_t_17)) {
                if (PyErr_Occurred()) {
                  if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
                  else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1781; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_17);
            }
            __Pyx_XDECREF(__pyx_v_card);
            __pyx_v_card = __pyx_t_17;
            __pyx_t_17 = 0;

            /* "gipsy.pyx":1782
 *                   self['CRVAL%d' % axis] = 0.0
 *                for card in header.ascard:
 *                   try:             # <<<<<<<<<<<<<<
 *                      key = card.key
 *                      if key not in done:
 */
            {
              __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:*/ {

                /* "gipsy.pyx":1783
 *                for card in header.ascard:
 *                   try:
 *                      key = card.key             # <<<<<<<<<<<<<<
 *                      if key not in done:
 *                         if key=='HISTORY':
 */
                __pyx_t_17 = PyObject_GetAttr(__pyx_v_card, __pyx_n_s__key); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1783; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_XDECREF(__pyx_v_key);
                __pyx_v_key = __pyx_t_17;
                __pyx_t_17 = 0;

                /* "gipsy.pyx":1784
 *                   try:
 *                      key = card.key
 *                      if key not in done:             # <<<<<<<<<<<<<<
 *                         if key=='HISTORY':
 *                            self.whistory(card.value)
 */
                __pyx_t_15 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_done), __pyx_v_key))); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1784; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                if (__pyx_t_15) {

                  /* "gipsy.pyx":1785
 *                      key = card.key
 *                      if key not in done:
 *                         if key=='HISTORY':             # <<<<<<<<<<<<<<
 *                            self.whistory(card.value)
 *                         elif key=='COMMENT':
 */
                  __pyx_t_15 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__HISTORY), Py_EQ); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1785; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                  if (__pyx_t_15) {

                    /* "gipsy.pyx":1786
 *                      if key not in done:
 *                         if key=='HISTORY':
 *                            self.whistory(card.value)             # <<<<<<<<<<<<<<
 *                         elif key=='COMMENT':
 *                            self.wcomment(card.value)
 */
                    __pyx_t_17 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__whistory); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_17);
                    __pyx_t_18 = PyObject_GetAttr(__pyx_v_card, __pyx_n_s__value); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_18);
                    __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(((PyObject *)__pyx_t_11));
                    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_18);
                    __Pyx_GIVEREF(__pyx_t_18);
                    __pyx_t_18 = 0;
                    __pyx_t_18 = PyObject_Call(__pyx_t_17, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_18);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                    __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                    goto __pyx_L115;
                  }

                  /* "gipsy.pyx":1787
 *                         if key=='HISTORY':
 *                            self.whistory(card.value)
 *                         elif key=='COMMENT':             # <<<<<<<<<<<<<<
 *                            self.wcomment(card.value)
 *                         else:
 */
                  __pyx_t_15 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__COMMENT), Py_EQ); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                  if (__pyx_t_15) {

                    /* "gipsy.pyx":1788
 *                            self.whistory(card.value)
 *                         elif key=='COMMENT':
 *                            self.wcomment(card.value)             # <<<<<<<<<<<<<<
 *                         else:
 *                            self[key] = header[key]
 */
                    __pyx_t_18 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__wcomment); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_18);
                    __pyx_t_11 = PyObject_GetAttr(__pyx_v_card, __pyx_n_s__value); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_11);
                    __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(((PyObject *)__pyx_t_17));
                    PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11);
                    __Pyx_GIVEREF(__pyx_t_11);
                    __pyx_t_11 = 0;
                    __pyx_t_11 = PyObject_Call(__pyx_t_18, ((PyObject *)__pyx_t_17), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_11);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                    __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
                    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                    goto __pyx_L115;
                  }
                  /*else*/ {

                    /* "gipsy.pyx":1790
 *                            self.wcomment(card.value)
 *                         else:
 *                            self[key] = header[key]             # <<<<<<<<<<<<<<
 *                   except:
 *                      pass
 */
                    __pyx_t_11 = PyObject_GetItem(__pyx_v_header, __pyx_v_key); if (!__pyx_t_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1790; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_GOTREF(__pyx_t_11);
                    if (PyObject_SetItem(__pyx_v_self, __pyx_v_key, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1790; __pyx_clineno = __LINE__; goto __pyx_L106_error;}
                    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                  }
                  __pyx_L115:;
                  goto __pyx_L114;
                }
                __pyx_L114:;
              }
              __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_L113_try_end;
              __pyx_L106_error:;
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;

              /* "gipsy.pyx":1791
 *                         else:
 *                            self[key] = header[key]
 *                   except:             # <<<<<<<<<<<<<<
 *                      pass
 *                self.name, self.subsets = getsas(self.name + ' ' + subsets)
 */
              /*except:*/ {
                PyErr_Restore(0,0,0);
                goto __pyx_L107_exception_handled;
              }
              __pyx_L107_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_L113_try_end:;
            }
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "gipsy.pyx":1793
 *                   except:
 *                      pass
 *                self.name, self.subsets = getsas(self.name + ' ' + subsets)             # <<<<<<<<<<<<<<
 * ##               self.image = hdu.data ### move to 'image' __getattr__
 *                self.fits  = True
 */
          __pyx_t_13 = __Pyx_GetName(__pyx_m, __pyx_n_s__getsas); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_17 = PyNumber_Add(__pyx_t_11, ((PyObject *)__pyx_kp_s_14)); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = PyNumber_Add(__pyx_t_17, __pyx_v_subsets); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyTuple_New(1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_17));
          PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11);
          __Pyx_GIVEREF(__pyx_t_11);
          __pyx_t_11 = 0;
          __pyx_t_11 = PyObject_Call(__pyx_t_13, ((PyObject *)__pyx_t_17), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_17)); __pyx_t_17 = 0;
          if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {
            PyObject* sequence = __pyx_t_11;
            if (likely(PyTuple_CheckExact(sequence))) {
              if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
                if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_t_17 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
            } else {
              if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
                if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
                else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
              }
              __pyx_t_17 = PyList_GET_ITEM(sequence, 0); 
              __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
            }
            __Pyx_INCREF(__pyx_t_17);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          } else {
            Py_ssize_t index = -1;
            __pyx_t_18 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext;
            index = 0; __pyx_t_17 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L116_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_17);
            index = 1; __pyx_t_13 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_13)) goto __pyx_L116_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_13);
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_18), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            goto __pyx_L117_unpacking_done;
            __pyx_L116_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
            if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __pyx_L117_unpacking_done:;
          }
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__name, __pyx_t_17) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__subsets, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

          /* "gipsy.pyx":1795
 *                self.name, self.subsets = getsas(self.name + ' ' + subsets)
 * ##               self.image = hdu.data ### move to 'image' __getattr__
 *                self.fits  = True             # <<<<<<<<<<<<<<
 *                self.blank = numpy.NaN
 *             else:
 */
          __pyx_t_11 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1795; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__fits, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1795; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

          /* "gipsy.pyx":1796
 * ##               self.image = hdu.data ### move to 'image' __getattr__
 *                self.fits  = True
 *                self.blank = numpy.NaN             # <<<<<<<<<<<<<<
 *             else:
 *                raise
 */
          __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_13 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__NaN); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__blank, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          goto __pyx_L32;
        }
        /*else*/ {

          /* "gipsy.pyx":1798
 *                self.blank = numpy.NaN
 *             else:
 *                raise             # <<<<<<<<<<<<<<
 *       handle_c = newfchar(20)
 *       gds_handle_c(handle_c, tofchar(self.name), &err_c)
 */
          __Pyx_GIVEREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_1);
          __Pyx_ErrRestore(__pyx_t_4, __pyx_t_3, __pyx_t_1);
          __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0; 
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1798; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
        }
        __pyx_L32:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L9_exception_handled;
      }
      __pyx_L10_except_error:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      goto __pyx_L1_error;
      __pyx_L9_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      __pyx_L15_try_end:;
    }
  }
  __pyx_L6:;

  /* "gipsy.pyx":1799
 *             else:
 *                raise
 *       handle_c = newfchar(20)             # <<<<<<<<<<<<<<
 *       gds_handle_c(handle_c, tofchar(self.name), &err_c)
 * 
 */
  __pyx_v_handle_c = __pyx_f_5gipsy_newfchar(__pyx_int_20);

  /* "gipsy.pyx":1800
 *                raise
 *       handle_c = newfchar(20)
 *       gds_handle_c(handle_c, tofchar(self.name), &err_c)             # <<<<<<<<<<<<<<
 * 
 * ###  dcdset(), called from getsas(), closes the set, making the set handle
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  gds_handle_c(__pyx_v_handle_c, __pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1807
 * 
 * #      handle = handle_c.a
 *       handle = self.name             # name instead of handle ###             # <<<<<<<<<<<<<<
 *       delfchar(handle_c)
 *       if err_c<0:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_XDECREF(((PyObject *)__pyx_v_handle));
  __pyx_v_handle = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "gipsy.pyx":1808
 * #      handle = handle_c.a
 *       handle = self.name             # name instead of handle ###
 *       delfchar(handle_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_1 = __pyx_f_5gipsy_delfchar(__pyx_v_handle_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1809
 *       handle = self.name             # name instead of handle ###
 *       delfchar(handle_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       try:
 */
  __pyx_t_15 = (__pyx_v_err_c < 0);
  if (__pyx_t_15) {

    /* "gipsy.pyx":1810
 *       delfchar(handle_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       try:
 *          image, refs= self.handles[handle]
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L118;
  }
  __pyx_L118:;

  /* "gipsy.pyx":1811
 *       if err_c<0:
 *          raiseGds(err_c)
 *       try:             # <<<<<<<<<<<<<<
 *          image, refs= self.handles[handle]
 *          self.handles[handle] = image, refs+1
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "gipsy.pyx":1812
 *          raiseGds(err_c)
 *       try:
 *          image, refs= self.handles[handle]             # <<<<<<<<<<<<<<
 *          self.handles[handle] = image, refs+1
 *          if image is not None:
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_GetItem(__pyx_t_3, ((PyObject *)__pyx_v_handle)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        if (likely(PyTuple_CheckExact(sequence))) {
          if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
            if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
            else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
          }
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
            if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
            else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
          }
          __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_13 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_13)->tp_iternext;
        index = 0; __pyx_t_3 = __pyx_t_12(__pyx_t_13); if (unlikely(!__pyx_t_3)) goto __pyx_L127_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_3);
        index = 1; __pyx_t_1 = __pyx_t_12(__pyx_t_13); if (unlikely(!__pyx_t_1)) goto __pyx_L127_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_13), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        goto __pyx_L128_unpacking_done;
        __pyx_L127_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
        if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
        __pyx_L128_unpacking_done:;
      }
      __pyx_v_image = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_v_refs);
      __pyx_v_refs = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":1813
 *       try:
 *          image, refs= self.handles[handle]
 *          self.handles[handle] = image, refs+1             # <<<<<<<<<<<<<<
 *          if image is not None:
 *             self.image = image
 */
      __pyx_t_4 = PyNumber_Add(__pyx_v_refs, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_image);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_image);
      __Pyx_GIVEREF(__pyx_v_image);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
      __Pyx_GOTREF(__pyx_t_4);
      if (PyObject_SetItem(__pyx_t_4, ((PyObject *)__pyx_v_handle), ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

      /* "gipsy.pyx":1814
 *          image, refs= self.handles[handle]
 *          self.handles[handle] = image, refs+1
 *          if image is not None:             # <<<<<<<<<<<<<<
 *             self.image = image
 *       except:
 */
      __pyx_t_15 = (__pyx_v_image != Py_None);
      if (__pyx_t_15) {

        /* "gipsy.pyx":1815
 *          self.handles[handle] = image, refs+1
 *          if image is not None:
 *             self.image = image             # <<<<<<<<<<<<<<
 *       except:
 *          self.handles[handle] = None, 1
 */
        if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__image, __pyx_v_image) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L119_error;}
        goto __pyx_L129;
      }
      __pyx_L129:;
    }
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L126_try_end;
    __pyx_L119_error:;
    __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":1816
 *          if image is not None:
 *             self.image = image
 *       except:             # <<<<<<<<<<<<<<
 *          self.handles[handle] = None, 1
 *       self.spec    = setspec
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L121_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_3);

      /* "gipsy.pyx":1817
 *             self.image = image
 *       except:
 *          self.handles[handle] = None, 1             # <<<<<<<<<<<<<<
 *       self.spec    = setspec
 *       self.handle  = handle
 */
      __pyx_t_13 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L121_except_error;}
      __Pyx_GOTREF(__pyx_t_13);
      if (PyObject_SetItem(__pyx_t_13, ((PyObject *)__pyx_v_handle), ((PyObject *)__pyx_k_tuple_125)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L121_except_error;}
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __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;
      goto __pyx_L120_exception_handled;
    }
    __pyx_L121_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L120_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
    __pyx_L126_try_end:;
  }

  /* "gipsy.pyx":1818
 *       except:
 *          self.handles[handle] = None, 1
 *       self.spec    = setspec             # <<<<<<<<<<<<<<
 *       self.handle  = handle
 *       self.open    = True
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__spec, __pyx_v_setspec) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1819
 *          self.handles[handle] = None, 1
 *       self.spec    = setspec
 *       self.handle  = handle             # <<<<<<<<<<<<<<
 *       self.open    = True
 *       self.create  = create
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__handle, ((PyObject *)__pyx_v_handle)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1820
 *       self.spec    = setspec
 *       self.handle  = handle
 *       self.open    = True             # <<<<<<<<<<<<<<
 *       self.create  = create
 *       self.wmode   = write
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__open, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":1821
 *       self.handle  = handle
 *       self.open    = True
 *       self.create  = create             # <<<<<<<<<<<<<<
 *       self.wmode   = write
 *       self.boxspec = ''
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__create, __pyx_v_create) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1822
 *       self.open    = True
 *       self.create  = create
 *       self.wmode   = write             # <<<<<<<<<<<<<<
 *       self.boxspec = ''
 *       self.header = SetHeader(self)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__wmode, __pyx_v_write) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1823
 *       self.create  = create
 *       self.wmode   = write
 *       self.boxspec = ''             # <<<<<<<<<<<<<<
 *       self.header = SetHeader(self)
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__boxspec, ((PyObject *)__pyx_kp_s_75)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1824
 *       self.wmode   = write
 *       self.boxspec = ''
 *       self.header = SetHeader(self)             # <<<<<<<<<<<<<<
 * 
 *    def __del__(self):
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__SetHeader); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__header, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __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_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("gipsy.Set.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_handle);
  __Pyx_XDECREF(__pyx_v_hduname);
  __Pyx_XDECREF(__pyx_v_subsets);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_XDECREF(__pyx_v_farg1);
  __Pyx_XDECREF(__pyx_v_farg2);
  __Pyx_XDECREF(__pyx_v_hdunum);
  __Pyx_XDECREF(__pyx_v_altwcs);
  __Pyx_XDECREF(__pyx_v_farg);
  __Pyx_XDECREF(__pyx_v_hdulist);
  __Pyx_XDECREF(__pyx_v_refs);
  __Pyx_XDECREF(__pyx_v_hdu);
  __Pyx_XDECREF(__pyx_v_xtn);
  __Pyx_XDECREF(__pyx_v_header);
  __Pyx_XDECREF(__pyx_v_done);
  __Pyx_XDECREF(__pyx_v_axis);
  __Pyx_XDECREF(__pyx_v_ctypei);
  __Pyx_XDECREF(__pyx_v_crpixi);
  __Pyx_XDECREF(__pyx_v_naxisi);
  __Pyx_XDECREF(__pyx_v_ctype);
  __Pyx_XDECREF(__pyx_v_crpix);
  __Pyx_XDECREF(__pyx_v_card);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_image);
  __Pyx_XDECREF(__pyx_v_write);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1826
 *       self.header = SetHeader(self)
 * 
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       if self.open:
 *          try:
 */

static PyObject *__pyx_pf_5gipsy_3Set_1__del__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_1__del__ = {__Pyx_NAMESTR("__del__"), (PyCFunction)__pyx_pf_5gipsy_3Set_1__del__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_1__del__(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;
  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("__del__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1827
 * 
 *    def __del__(self):
 *       if self.open:             # <<<<<<<<<<<<<<
 *          try:
 *             self.close()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":1828
 *    def __del__(self):
 *       if self.open:
 *          try:             # <<<<<<<<<<<<<<
 *             self.close()
 *          except:
 */
    {
      __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:*/ {

        /* "gipsy.pyx":1829
 *       if self.open:
 *          try:
 *             self.close()             # <<<<<<<<<<<<<<
 *          except:
 *             pass
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__close); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1829; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1829; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __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_L13_try_end;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "gipsy.pyx":1830
 *          try:
 *             self.close()
 *          except:             # <<<<<<<<<<<<<<
 *             pass
 * 
 */
      /*except:*/ {
        PyErr_Restore(0,0,0);
        goto __pyx_L7_exception_handled;
      }
      __pyx_L7_exception_handled:;
      __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);
      __pyx_L13_try_end:;
    }
    goto __pyx_L5;
  }
  __pyx_L5:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("gipsy.Set.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1834
 * 
 * # Programmed attributes:
 *    def __getattr__(self, name):             # <<<<<<<<<<<<<<
 *       cdef fint err_c
 * 
 */

static PyObject *__pyx_pf_5gipsy_3Set_2__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_2__getattr__ = {__Pyx_NAMESTR("__getattr__"), (PyCFunction)__pyx_pf_5gipsy_3Set_2__getattr__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_2__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  fint __pyx_v_err_c;
  PyObject *__pyx_v_image = NULL;
  PyObject *__pyx_v_refs = NULL;
  PyObject *__pyx_v_imagearray = NULL;
  PyObject *__pyx_v_lo = NULL;
  PyObject *__pyx_v_hi = NULL;
  PyObject *__pyx_v_err = NULL;
  fint __pyx_v_ftype;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_open_mode = NULL;
  PyObject *__pyx_v_shape = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_imagefile = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_axnum = 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;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *(*__pyx_t_10)(PyObject *);
  Py_ssize_t __pyx_t_11;
  PyObject *(*__pyx_t_12)(PyObject *);
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,0};
  __Pyx_RefNannySetupContext("__getattr__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__getattr__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1837
 *       cdef fint err_c
 * 
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       if not self.open:
 *          raise GdsError(-1, "Invalid set object")
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":1838
 * 
 *       err_c = 0
 *       if not self.open:             # <<<<<<<<<<<<<<
 *          raise GdsError(-1, "Invalid set object")
 *       if name=='naxis':
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__open); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1839
 *       err_c = 0
 *       if not self.open:
 *          raise GdsError(-1, "Invalid set object")             # <<<<<<<<<<<<<<
 *       if name=='naxis':
 *          return self.ndims(0)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_127), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1840
 *       if not self.open:
 *          raise GdsError(-1, "Invalid set object")
 *       if name=='naxis':             # <<<<<<<<<<<<<<
 *          return self.ndims(0)
 *       elif name=='image':
 */
  __pyx_t_3 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__naxis), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "gipsy.pyx":1841
 *          raise GdsError(-1, "Invalid set object")
 *       if name=='naxis':
 *          return self.ndims(0)             # <<<<<<<<<<<<<<
 *       elif name=='image':
 *          try:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ndims); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_128), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1842
 *       if name=='naxis':
 *          return self.ndims(0)
 *       elif name=='image':             # <<<<<<<<<<<<<<
 *          try:
 *             image, refs = self.handles[self.handle]
 */
  __pyx_t_3 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__image), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "gipsy.pyx":1843
 *          return self.ndims(0)
 *       elif name=='image':
 *          try:             # <<<<<<<<<<<<<<
 *             image, refs = self.handles[self.handle]
 *             if image is not None:
 */
    {
      __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      /*try:*/ {

        /* "gipsy.pyx":1844
 *       elif name=='image':
 *          try:
 *             image, refs = self.handles[self.handle]             # <<<<<<<<<<<<<<
 *             if image is not None:
 *                self.__dict__[name] = image
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_8 = PyObject_GetItem(__pyx_t_1, __pyx_t_4); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
          PyObject* sequence = __pyx_t_8;
          if (likely(PyTuple_CheckExact(sequence))) {
            if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
              if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
              else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
            }
            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
              if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
              else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
            }
            __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
          index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L16_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_4);
          index = 1; __pyx_t_1 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L16_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_1);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          goto __pyx_L17_unpacking_done;
          __pyx_L16_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
          if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1844; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __pyx_L17_unpacking_done:;
        }
        __pyx_v_image = __pyx_t_4;
        __pyx_t_4 = 0;
        __pyx_v_refs = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "gipsy.pyx":1845
 *          try:
 *             image, refs = self.handles[self.handle]
 *             if image is not None:             # <<<<<<<<<<<<<<
 *                self.__dict__[name] = image
 *                return image
 */
        __pyx_t_3 = (__pyx_v_image != Py_None);
        if (__pyx_t_3) {

          /* "gipsy.pyx":1846
 *             image, refs = self.handles[self.handle]
 *             if image is not None:
 *                self.__dict__[name] = image             # <<<<<<<<<<<<<<
 *                return image
 *          except:
 */
          __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_8);
          if (PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_image) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "gipsy.pyx":1847
 *             if image is not None:
 *                self.__dict__[name] = image
 *                return image             # <<<<<<<<<<<<<<
 *          except:
 *             pass
 */
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_image);
          __pyx_r = __pyx_v_image;
          goto __pyx_L12_try_return;
          goto __pyx_L18;
        }
        __pyx_L18:;
      }
      __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;
      goto __pyx_L15_try_end;
      __pyx_L12_try_return:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      goto __pyx_L0;
      __pyx_L8_error:;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "gipsy.pyx":1848
 *                self.__dict__[name] = image
 *                return image
 *          except:             # <<<<<<<<<<<<<<
 *             pass
 *          if self.fits:
 */
      /*except:*/ {
        PyErr_Restore(0,0,0);
        goto __pyx_L9_exception_handled;
      }
      __pyx_L9_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      __pyx_L15_try_end:;
    }

    /* "gipsy.pyx":1850
 *          except:
 *             pass
 *          if self.fits:             # <<<<<<<<<<<<<<
 *             imagearray = self.hdulist[self.hdunum].data
 *          else:
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fits); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_3) {

      /* "gipsy.pyx":1851
 *             pass
 *          if self.fits:
 *             imagearray = self.hdulist[self.hdunum].data             # <<<<<<<<<<<<<<
 *          else:
 *             lo, hi = self.range(0)
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hdulist); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hdunum); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyObject_GetItem(__pyx_t_8, __pyx_t_1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_imagearray = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L19;
    }
    /*else*/ {

      /* "gipsy.pyx":1853
 *             imagearray = self.hdulist[self.hdunum].data
 *          else:
 *             lo, hi = self.range(0)             # <<<<<<<<<<<<<<
 *             err = [0]
 *             ftype  = gds_ftype_c(tofchar(self.name), &err_c)
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_129), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        if (likely(PyTuple_CheckExact(sequence))) {
          if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
            if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
            else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
            if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
            else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_9 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
        index = 0; __pyx_t_1 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L20_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L20_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L21_unpacking_done;
        __pyx_L20_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
        if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_L21_unpacking_done:;
      }
      __pyx_v_lo = __pyx_t_1;
      __pyx_t_1 = 0;
      __pyx_v_hi = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "gipsy.pyx":1854
 *          else:
 *             lo, hi = self.range(0)
 *             err = [0]             # <<<<<<<<<<<<<<
 *             ftype  = gds_ftype_c(tofchar(self.name), &err_c)
 *             if ftype==0 or ftype==5:
 */
      __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      __Pyx_INCREF(__pyx_int_0);
      PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      __pyx_v_err = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "gipsy.pyx":1855
 *             lo, hi = self.range(0)
 *             err = [0]
 *             ftype  = gds_ftype_c(tofchar(self.name), &err_c)             # <<<<<<<<<<<<<<
 *             if ftype==0 or ftype==5:
 *                dtype = '>f4'
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ftype = gds_ftype_c(__pyx_f_5gipsy_tofchar(__pyx_t_4), (&__pyx_v_err_c));
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "gipsy.pyx":1856
 *             err = [0]
 *             ftype  = gds_ftype_c(tofchar(self.name), &err_c)
 *             if ftype==0 or ftype==5:             # <<<<<<<<<<<<<<
 *                dtype = '>f4'
 *             else:
 */
      switch (__pyx_v_ftype) {
        case 0:
        case 5:

        /* "gipsy.pyx":1857
 *             ftype  = gds_ftype_c(tofchar(self.name), &err_c)
 *             if ftype==0 or ftype==5:
 *                dtype = '>f4'             # <<<<<<<<<<<<<<
 *             else:
 *                dtype = '<f4'
 */
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_46));
        __pyx_v_dtype = ((PyObject *)__pyx_kp_s_46);
        break;
        default:

        /* "gipsy.pyx":1859
 *                dtype = '>f4'
 *             else:
 *                dtype = '<f4'             # <<<<<<<<<<<<<<
 *             if not self.wmode:
 *                open_mode = 'c'
 */
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_42));
        __pyx_v_dtype = ((PyObject *)__pyx_kp_s_42);
        break;
      }

      /* "gipsy.pyx":1860
 *             else:
 *                dtype = '<f4'
 *             if not self.wmode:             # <<<<<<<<<<<<<<
 *                open_mode = 'c'
 *             else:
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__wmode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_2 = (!__pyx_t_3);
      if (__pyx_t_2) {

        /* "gipsy.pyx":1861
 *                dtype = '<f4'
 *             if not self.wmode:
 *                open_mode = 'c'             # <<<<<<<<<<<<<<
 *             else:
 *                open_mode = "r+"
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__c));
        __pyx_v_open_mode = ((PyObject *)__pyx_n_s__c);
        goto __pyx_L22;
      }
      /*else*/ {

        /* "gipsy.pyx":1863
 *                open_mode = 'c'
 *             else:
 *                open_mode = "r+"             # <<<<<<<<<<<<<<
 *             shape = []
 *             for i in range(self.naxis):
 */
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_130));
        __pyx_v_open_mode = ((PyObject *)__pyx_kp_s_130);
      }
      __pyx_L22:;

      /* "gipsy.pyx":1864
 *             else:
 *                open_mode = "r+"
 *             shape = []             # <<<<<<<<<<<<<<
 *             for i in range(self.naxis):
 *                shape.insert(0, self.grid(i, hi)-self.grid(i, lo)+1)
 */
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      __pyx_v_shape = ((PyObject *)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "gipsy.pyx":1865
 *                open_mode = "r+"
 *             shape = []
 *             for i in range(self.naxis):             # <<<<<<<<<<<<<<
 *                shape.insert(0, self.grid(i, hi)-self.grid(i, lo)+1)
 *             shape=tuple(shape)
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
        __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_12 = Py_TYPE(__pyx_t_8)->tp_iternext;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (PyList_CheckExact(__pyx_t_8)) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_8)) break;
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++;
        } else if (PyTuple_CheckExact(__pyx_t_8)) {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++;
        } else {
          __pyx_t_4 = __pyx_t_12(__pyx_t_8);
          if (unlikely(!__pyx_t_4)) {
            if (PyErr_Occurred()) {
              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
              else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF(__pyx_v_i);
        __pyx_v_i = __pyx_t_4;
        __pyx_t_4 = 0;

        /* "gipsy.pyx":1866
 *             shape = []
 *             for i in range(self.naxis):
 *                shape.insert(0, self.grid(i, hi)-self.grid(i, lo)+1)             # <<<<<<<<<<<<<<
 *             shape=tuple(shape)
 *             imagefile = self.name + ".image"
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_shape, __pyx_n_s__insert); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_9));
        __Pyx_INCREF(__pyx_v_i);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_i);
        __Pyx_GIVEREF(__pyx_v_i);
        __Pyx_INCREF(__pyx_v_hi);
        PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_hi);
        __Pyx_GIVEREF(__pyx_v_hi);
        __pyx_t_13 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
        __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grid); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __Pyx_INCREF(__pyx_v_i);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_i);
        __Pyx_GIVEREF(__pyx_v_i);
        __Pyx_INCREF(__pyx_v_lo);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_lo);
        __Pyx_GIVEREF(__pyx_v_lo);
        __pyx_t_14 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_Subtract(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __Pyx_INCREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14);
        __Pyx_GIVEREF(__pyx_t_14);
        __pyx_t_14 = 0;
        __pyx_t_14 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "gipsy.pyx":1867
 *             for i in range(self.naxis):
 *                shape.insert(0, self.grid(i, hi)-self.grid(i, lo)+1)
 *             shape=tuple(shape)             # <<<<<<<<<<<<<<
 *             imagefile = self.name + ".image"
 *             try:
 */
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __Pyx_INCREF(__pyx_v_shape);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_shape);
      __Pyx_GIVEREF(__pyx_v_shape);
      __pyx_t_14 = PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_shape);
      __pyx_v_shape = __pyx_t_14;
      __pyx_t_14 = 0;

      /* "gipsy.pyx":1868
 *                shape.insert(0, self.grid(i, hi)-self.grid(i, lo)+1)
 *             shape=tuple(shape)
 *             imagefile = self.name + ".image"             # <<<<<<<<<<<<<<
 *             try:
 *                imagearray = numpy.memmap(imagefile, dtype=dtype, mode=open_mode,
 */
      __pyx_t_14 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_8 = PyNumber_Add(__pyx_t_14, ((PyObject *)__pyx_kp_s_131)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_v_imagefile = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "gipsy.pyx":1869
 *             shape=tuple(shape)
 *             imagefile = self.name + ".image"
 *             try:             # <<<<<<<<<<<<<<
 *                imagearray = numpy.memmap(imagefile, dtype=dtype, mode=open_mode,
 *                                          shape=shape)
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_5);
        /*try:*/ {

          /* "gipsy.pyx":1870
 *             imagefile = self.name + ".image"
 *             try:
 *                imagearray = numpy.memmap(imagefile, dtype=dtype, mode=open_mode,             # <<<<<<<<<<<<<<
 *                                          shape=shape)
 *             except:
 */
          __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_14 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__memmap); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_8));
          __Pyx_INCREF(__pyx_v_imagefile);
          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_imagefile);
          __Pyx_GIVEREF(__pyx_v_imagefile);
          __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_1));
          if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_v_dtype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__mode), __pyx_v_open_mode) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}

          /* "gipsy.pyx":1871
 *             try:
 *                imagearray = numpy.memmap(imagefile, dtype=dtype, mode=open_mode,
 *                                          shape=shape)             # <<<<<<<<<<<<<<
 *             except:
 *                if open_mode=="r+":
 */
          if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__shape), __pyx_v_shape) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_14, ((PyObject *)__pyx_t_8), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1870; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
          __pyx_v_imagearray = __pyx_t_4;
          __pyx_t_4 = 0;
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L32_try_end;
        __pyx_L25_error:;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "gipsy.pyx":1872
 *                imagearray = numpy.memmap(imagefile, dtype=dtype, mode=open_mode,
 *                                          shape=shape)
 *             except:             # <<<<<<<<<<<<<<
 *                if open_mode=="r+":
 *                   imagearray = numpy.memmap(imagefile, dtype=dtype, mode='w+',
 */
        /*except:*/ {
          __Pyx_AddTraceback("gipsy.Set.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1872; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GOTREF(__pyx_t_8);

          /* "gipsy.pyx":1873
 *                                          shape=shape)
 *             except:
 *                if open_mode=="r+":             # <<<<<<<<<<<<<<
 *                   imagearray = numpy.memmap(imagefile, dtype=dtype, mode='w+',
 *                                             shape=shape)
 */
          __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_open_mode, ((PyObject *)__pyx_kp_s_130), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1873; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
          if (__pyx_t_2) {

            /* "gipsy.pyx":1874
 *             except:
 *                if open_mode=="r+":
 *                   imagearray = numpy.memmap(imagefile, dtype=dtype, mode='w+',             # <<<<<<<<<<<<<<
 *                                             shape=shape)
 *                else:
 */
            __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_13 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__memmap); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_14));
            __Pyx_INCREF(__pyx_v_imagefile);
            PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_imagefile);
            __Pyx_GIVEREF(__pyx_v_imagefile);
            __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_9));
            if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__dtype), __pyx_v_dtype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_kp_s_132)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}

            /* "gipsy.pyx":1875
 *                if open_mode=="r+":
 *                   imagearray = numpy.memmap(imagefile, dtype=dtype, mode='w+',
 *                                             shape=shape)             # <<<<<<<<<<<<<<
 *                else:
 *                   raise GipsyError("cannot open image for set %s" % self.name)
 */
            if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__shape), __pyx_v_shape) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __pyx_t_15 = PyEval_CallObjectWithKeywords(__pyx_t_13, ((PyObject *)__pyx_t_14), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_v_imagearray);
            __pyx_v_imagearray = __pyx_t_15;
            __pyx_t_15 = 0;
            goto __pyx_L35;
          }
          /*else*/ {

            /* "gipsy.pyx":1877
 *                                             shape=shape)
 *                else:
 *                   raise GipsyError("cannot open image for set %s" % self.name)             # <<<<<<<<<<<<<<
 *          self.__dict__[name] = imagearray
 *          self.handles[self.handle] = imagearray, refs
 */
            __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_14 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_133), __pyx_t_9); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_14));
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_9));
            PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_t_14));
            __Pyx_GIVEREF(((PyObject *)__pyx_t_14));
            __pyx_t_14 = 0;
            __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
            __Pyx_Raise(__pyx_t_14, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
          }
          __pyx_L35:;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          goto __pyx_L26_exception_handled;
        }
        __pyx_L27_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
        goto __pyx_L1_error;
        __pyx_L26_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
        __pyx_L32_try_end:;
      }
    }
    __pyx_L19:;

    /* "gipsy.pyx":1878
 *                else:
 *                   raise GipsyError("cannot open image for set %s" % self.name)
 *          self.__dict__[name] = imagearray             # <<<<<<<<<<<<<<
 *          self.handles[self.handle] = imagearray, refs
 *          return imagearray
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    if (PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_imagearray) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_v_refs)) { __Pyx_RaiseUnboundLocalError("refs"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":1879
 *                   raise GipsyError("cannot open image for set %s" % self.name)
 *          self.__dict__[name] = imagearray
 *          self.handles[self.handle] = imagearray, refs             # <<<<<<<<<<<<<<
 *          return imagearray
 *       elif name=='axnames':
 */
    __Pyx_GOTREF(((PyObject *)__pyx_t_8));
    __Pyx_INCREF(__pyx_v_imagearray);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_imagearray);
    __Pyx_GIVEREF(__pyx_v_imagearray);
    __Pyx_INCREF(__pyx_v_refs);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_refs);
    __Pyx_GIVEREF(__pyx_v_refs);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyObject_SetItem(__pyx_t_1, __pyx_t_4, ((PyObject *)__pyx_t_8)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;

    /* "gipsy.pyx":1880
 *          self.__dict__[name] = imagearray
 *          self.handles[self.handle] = imagearray, refs
 *          return imagearray             # <<<<<<<<<<<<<<
 *       elif name=='axnames':
 *          result = []
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_imagearray);
    __pyx_r = __pyx_v_imagearray;
    goto __pyx_L0;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1881
 *          self.handles[self.handle] = imagearray, refs
 *          return imagearray
 *       elif name=='axnames':             # <<<<<<<<<<<<<<
 *          result = []
 *          for axnum in range(self.naxis):
 */
  __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__axnames), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "gipsy.pyx":1882
 *          return imagearray
 *       elif name=='axnames':
 *          result = []             # <<<<<<<<<<<<<<
 *          for axnum in range(self.naxis):
 *             result.append(self.axname(axnum))
 */
    __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_8));
    __pyx_v_result = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "gipsy.pyx":1883
 *       elif name=='axnames':
 *          result = []
 *          for axnum in range(self.naxis):             # <<<<<<<<<<<<<<
 *             result.append(self.axname(axnum))
 *          return result
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    if (PyList_CheckExact(__pyx_t_8) || PyTuple_CheckExact(__pyx_t_8)) {
      __pyx_t_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_4)) {
        if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++;
      } else if (PyTuple_CheckExact(__pyx_t_4)) {
        if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++;
      } else {
        __pyx_t_8 = __pyx_t_12(__pyx_t_4);
        if (unlikely(!__pyx_t_8)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_XDECREF(__pyx_v_axnum);
      __pyx_v_axnum = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "gipsy.pyx":1884
 *          result = []
 *          for axnum in range(self.naxis):
 *             result.append(self.axname(axnum))             # <<<<<<<<<<<<<<
 *          return result
 *       elif name=='blo' or name=='bhi':
 */
      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axname); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_axnum);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_axnum);
      __Pyx_GIVEREF(__pyx_v_axnum);
      __pyx_t_14 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_t_16 = PyList_Append(__pyx_v_result, __pyx_t_14); if (unlikely(__pyx_t_16 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "gipsy.pyx":1885
 *          for axnum in range(self.naxis):
 *             result.append(self.axname(axnum))
 *          return result             # <<<<<<<<<<<<<<
 *       elif name=='blo' or name=='bhi':
 *          self.setbox('')
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_result));
    __pyx_r = ((PyObject *)__pyx_v_result);
    goto __pyx_L0;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1886
 *             result.append(self.axname(axnum))
 *          return result
 *       elif name=='blo' or name=='bhi':             # <<<<<<<<<<<<<<
 *          self.setbox('')
 *          return self.__dict__[name]
 */
  __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__blo), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!__pyx_t_2) {
    __pyx_t_3 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__bhi), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_17 = __pyx_t_3;
  } else {
    __pyx_t_17 = __pyx_t_2;
  }
  if (__pyx_t_17) {

    /* "gipsy.pyx":1887
 *          return result
 *       elif name=='blo' or name=='bhi':
 *          self.setbox('')             # <<<<<<<<<<<<<<
 *          return self.__dict__[name]
 *       elif name=='slo':
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__setbox); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_134), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "gipsy.pyx":1888
 *       elif name=='blo' or name=='bhi':
 *          self.setbox('')
 *          return self.__dict__[name]             # <<<<<<<<<<<<<<
 *       elif name=='slo':
 *          lo, hi = self.range(0)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_14 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_4 = PyObject_GetItem(__pyx_t_14, __pyx_v_name); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1889
 *          self.setbox('')
 *          return self.__dict__[name]
 *       elif name=='slo':             # <<<<<<<<<<<<<<
 *          lo, hi = self.range(0)
 *          return self.grids(lo)
 */
  __pyx_t_17 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__slo), Py_EQ); if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_17) {

    /* "gipsy.pyx":1890
 *          return self.__dict__[name]
 *       elif name=='slo':
 *          lo, hi = self.range(0)             # <<<<<<<<<<<<<<
 *          return self.grids(lo)
 *       elif name=='shi':
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_135), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) {
      PyObject* sequence = __pyx_t_14;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L38_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_1 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L39_unpacking_done;
      __pyx_L38_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L39_unpacking_done:;
    }
    __pyx_v_lo = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_hi = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":1891
 *       elif name=='slo':
 *          lo, hi = self.range(0)
 *          return self.grids(lo)             # <<<<<<<<<<<<<<
 *       elif name=='shi':
 *          lo, hi = self.range(0)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_14 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_v_lo);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_lo);
    __Pyx_GIVEREF(__pyx_v_lo);
    __pyx_t_4 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1892
 *          lo, hi = self.range(0)
 *          return self.grids(lo)
 *       elif name=='shi':             # <<<<<<<<<<<<<<
 *          lo, hi = self.range(0)
 *          return self.grids(hi)
 */
  __pyx_t_17 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__shi), Py_EQ); if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_17) {

    /* "gipsy.pyx":1893
 *          return self.grids(lo)
 *       elif name=='shi':
 *          lo, hi = self.range(0)             # <<<<<<<<<<<<<<
 *          return self.grids(hi)
 *       elif name=='ncoords':
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_136), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L40_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_14 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_14)) goto __pyx_L40_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_14);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L41_unpacking_done;
      __pyx_L40_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L41_unpacking_done:;
    }
    __pyx_v_lo = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_hi = __pyx_t_14;
    __pyx_t_14 = 0;

    /* "gipsy.pyx":1894
 *       elif name=='shi':
 *          lo, hi = self.range(0)
 *          return self.grids(hi)             # <<<<<<<<<<<<<<
 *       elif name=='ncoords':
 *          return ncoords_c(tofchar(self.name))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_14));
    __Pyx_INCREF(__pyx_v_hi);
    PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_hi);
    __Pyx_GIVEREF(__pyx_v_hi);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1895
 *          lo, hi = self.range(0)
 *          return self.grids(hi)
 *       elif name=='ncoords':             # <<<<<<<<<<<<<<
 *          return ncoords_c(tofchar(self.name))
 *       else:
 */
  __pyx_t_17 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__ncoords), Py_EQ); if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_17) {

    /* "gipsy.pyx":1896
 *          return self.grids(hi)
 *       elif name=='ncoords':
 *          return ncoords_c(tofchar(self.name))             # <<<<<<<<<<<<<<
 *       else:
 *          raise AttributeError("No attribute %s" % name)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_to_py_fint(ncoords_c(__pyx_f_5gipsy_tofchar(__pyx_t_4))); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_14;
    __pyx_t_14 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  /*else*/ {

    /* "gipsy.pyx":1898
 *          return ncoords_c(tofchar(self.name))
 *       else:
 *          raise AttributeError("No attribute %s" % name)             # <<<<<<<<<<<<<<
 * 
 *    def __str__(self):
 */
    __pyx_t_14 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_137), __pyx_v_name); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_14));
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_14));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_14));
    __pyx_t_14 = 0;
    __pyx_t_14 = PyObject_Call(__pyx_builtin_AttributeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_14, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L7:;

  __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_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("gipsy.Set.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_image);
  __Pyx_XDECREF(__pyx_v_refs);
  __Pyx_XDECREF(__pyx_v_imagearray);
  __Pyx_XDECREF(__pyx_v_lo);
  __Pyx_XDECREF(__pyx_v_hi);
  __Pyx_XDECREF(__pyx_v_err);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_open_mode);
  __Pyx_XDECREF(__pyx_v_shape);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_imagefile);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_axnum);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1900
 *          raise AttributeError("No attribute %s" % name)
 * 
 *    def __str__(self):             # <<<<<<<<<<<<<<
 *       return "GDS set %s, open= %s" % (self.name, str(self.open))
 * 
 */

static PyObject *__pyx_pf_5gipsy_3Set_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_3__str__ = {__Pyx_NAMESTR("__str__"), (PyCFunction)__pyx_pf_5gipsy_3Set_3__str__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_3__str__(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1901
 * 
 *    def __str__(self):
 *       return "GDS set %s, open= %s" % (self.name, str(self.open))             # <<<<<<<<<<<<<<
 * 
 *    def __repr__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__open); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_138), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_r = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1903
 *       return "GDS set %s, open= %s" % (self.name, str(self.open))
 * 
 *    def __repr__(self):             # <<<<<<<<<<<<<<
 *       return "Set(\"%s\")" % self.spec
 * 
 */

static PyObject *__pyx_pf_5gipsy_3Set_4__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_4__repr__ = {__Pyx_NAMESTR("__repr__"), (PyCFunction)__pyx_pf_5gipsy_3Set_4__repr__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_4__repr__(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("__repr__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":1904
 * 
 *    def __repr__(self):
 *       return "Set(\"%s\")" % self.spec             # <<<<<<<<<<<<<<
 * 
 *    def __getitem__(self, key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__spec); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_139), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1906
 *       return "Set(\"%s\")" % self.spec
 * 
 *    def __getitem__(self, key):             # <<<<<<<<<<<<<<
 * 
 * # Obtain header or column data using the indexing and slicing syntax.
 */

static PyObject *__pyx_pf_5gipsy_3Set_5__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_5__getitem__ = {__Pyx_NAMESTR("__getitem__"), (PyCFunction)__pyx_pf_5gipsy_3Set_5__getitem__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_5__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_level = NULL;
  PyObject *__pyx_v_table = NULL;
  PyObject *__pyx_v_column = NULL;
  PyObject *__pyx_v_rows = NULL;
  PyObject *__pyx_v_start = NULL;
  PyObject *__pyx_v_nitems = 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;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("__getitem__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__getitem__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1920
 * #   e = s['EPOCH']
 * 
 *       if type(key) is types.StringType:             # <<<<<<<<<<<<<<
 *          return self.__rhead(key, 0)
 *       if len(key)==2:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_key)) == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":1921
 * 
 *       if type(key) is types.StringType:
 *          return self.__rhead(key, 0)             # <<<<<<<<<<<<<<
 *       if len(key)==2:
 *          return self.__rhead(key[1], key[0])
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____rhead); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key);
    __Pyx_GIVEREF(__pyx_v_key);
    __Pyx_INCREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":1922
 *       if type(key) is types.StringType:
 *          return self.__rhead(key, 0)
 *       if len(key)==2:             # <<<<<<<<<<<<<<
 *          return self.__rhead(key[1], key[0])
 *       elif len(key)>2:
 */
  __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_5 == 2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1923
 *          return self.__rhead(key, 0)
 *       if len(key)==2:
 *          return self.__rhead(key[1], key[0])             # <<<<<<<<<<<<<<
 *       elif len(key)>2:
 *          if len(key)==3:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____rhead); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }

  /* "gipsy.pyx":1924
 *       if len(key)==2:
 *          return self.__rhead(key[1], key[0])
 *       elif len(key)>2:             # <<<<<<<<<<<<<<
 *          if len(key)==3:
 *             level  = 0
 */
  __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_5 > 2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1925
 *          return self.__rhead(key[1], key[0])
 *       elif len(key)>2:
 *          if len(key)==3:             # <<<<<<<<<<<<<<
 *             level  = 0
 *             table  = key[0]
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_5 == 3);
    if (__pyx_t_3) {

      /* "gipsy.pyx":1926
 *       elif len(key)>2:
 *          if len(key)==3:
 *             level  = 0             # <<<<<<<<<<<<<<
 *             table  = key[0]
 *             column = key[1]
 */
      __Pyx_INCREF(__pyx_int_0);
      __pyx_v_level = __pyx_int_0;

      /* "gipsy.pyx":1927
 *          if len(key)==3:
 *             level  = 0
 *             table  = key[0]             # <<<<<<<<<<<<<<
 *             column = key[1]
 *             rows   = key[2]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_table = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1928
 *             level  = 0
 *             table  = key[0]
 *             column = key[1]             # <<<<<<<<<<<<<<
 *             rows   = key[2]
 *          elif len(key)==4:
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_column = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1929
 *             table  = key[0]
 *             column = key[1]
 *             rows   = key[2]             # <<<<<<<<<<<<<<
 *          elif len(key)==4:
 *             level  = key[0]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_rows = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L8;
    }

    /* "gipsy.pyx":1930
 *             column = key[1]
 *             rows   = key[2]
 *          elif len(key)==4:             # <<<<<<<<<<<<<<
 *             level  = key[0]
 *             table  = key[1]
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_5 == 4);
    if (__pyx_t_3) {

      /* "gipsy.pyx":1931
 *             rows   = key[2]
 *          elif len(key)==4:
 *             level  = key[0]             # <<<<<<<<<<<<<<
 *             table  = key[1]
 *             column = key[2]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_level = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1932
 *          elif len(key)==4:
 *             level  = key[0]
 *             table  = key[1]             # <<<<<<<<<<<<<<
 *             column = key[2]
 *             rows   = key[3]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_table = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1933
 *             level  = key[0]
 *             table  = key[1]
 *             column = key[2]             # <<<<<<<<<<<<<<
 *             rows   = key[3]
 *          else:
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_column = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1934
 *             table  = key[1]
 *             column = key[2]
 *             rows   = key[3]             # <<<<<<<<<<<<<<
 *          else:
 *             raise GipsyError("error using indexing operator")
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_rows = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L8;
    }
    /*else*/ {

      /* "gipsy.pyx":1936
 *             rows   = key[3]
 *          else:
 *             raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 *          if type(rows)==types.IntType:
 *             return self.__rcol(table, column, subset=level, item=rows, nitems=1)
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_141), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L8:;

    /* "gipsy.pyx":1937
 *          else:
 *             raise GipsyError("error using indexing operator")
 *          if type(rows)==types.IntType:             # <<<<<<<<<<<<<<
 *             return self.__rcol(table, column, subset=level, item=rows, nitems=1)
 *          else:
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__IntType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_rows)), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_3) {

      /* "gipsy.pyx":1938
 *             raise GipsyError("error using indexing operator")
 *          if type(rows)==types.IntType:
 *             return self.__rcol(table, column, subset=level, item=rows, nitems=1)             # <<<<<<<<<<<<<<
 *          else:
 *             if rows.step:
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____rcol); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_table);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_table);
      __Pyx_GIVEREF(__pyx_v_table);
      __Pyx_INCREF(__pyx_v_column);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_column);
      __Pyx_GIVEREF(__pyx_v_column);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__subset), __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__item), __pyx_v_rows) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__nitems), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
      goto __pyx_L9;
    }
    /*else*/ {

      /* "gipsy.pyx":1940
 *             return self.__rcol(table, column, subset=level, item=rows, nitems=1)
 *          else:
 *             if rows.step:             # <<<<<<<<<<<<<<
 *                raise GipsyError("strided column access not yet implemented")
 *             start  = 0
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_3) {

        /* "gipsy.pyx":1941
 *          else:
 *             if rows.step:
 *                raise GipsyError("strided column access not yet implemented")             # <<<<<<<<<<<<<<
 *             start  = 0
 *             nitems = None
 */
        __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_143), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L10;
      }
      __pyx_L10:;

      /* "gipsy.pyx":1942
 *             if rows.step:
 *                raise GipsyError("strided column access not yet implemented")
 *             start  = 0             # <<<<<<<<<<<<<<
 *             nitems = None
 *             if rows.start: start  = rows.start
 */
      __Pyx_INCREF(__pyx_int_0);
      __pyx_v_start = __pyx_int_0;

      /* "gipsy.pyx":1943
 *                raise GipsyError("strided column access not yet implemented")
 *             start  = 0
 *             nitems = None             # <<<<<<<<<<<<<<
 *             if rows.start: start  = rows.start
 *             if rows.stop:  nitems = rows.stop-start
 */
      __Pyx_INCREF(Py_None);
      __pyx_v_nitems = Py_None;

      /* "gipsy.pyx":1944
 *             start  = 0
 *             nitems = None
 *             if rows.start: start  = rows.start             # <<<<<<<<<<<<<<
 *             if rows.stop:  nitems = rows.stop-start
 *             return self.__rcol(table, column, subset=level, item=start, nitems=nitems)
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_3) {
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_v_start);
        __pyx_v_start = __pyx_t_4;
        __pyx_t_4 = 0;
        goto __pyx_L11;
      }
      __pyx_L11:;

      /* "gipsy.pyx":1945
 *             nitems = None
 *             if rows.start: start  = rows.start
 *             if rows.stop:  nitems = rows.stop-start             # <<<<<<<<<<<<<<
 *             return self.__rcol(table, column, subset=level, item=start, nitems=nitems)
 *       else:
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__stop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_3) {
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__stop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyNumber_Subtract(__pyx_t_4, __pyx_v_start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_v_nitems);
        __pyx_v_nitems = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L12;
      }
      __pyx_L12:;

      /* "gipsy.pyx":1946
 *             if rows.start: start  = rows.start
 *             if rows.stop:  nitems = rows.stop-start
 *             return self.__rcol(table, column, subset=level, item=start, nitems=nitems)             # <<<<<<<<<<<<<<
 *       else:
 *          raise GipsyError("error using indexing operator")
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____rcol); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      __Pyx_INCREF(__pyx_v_table);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_table);
      __Pyx_GIVEREF(__pyx_v_table);
      __Pyx_INCREF(__pyx_v_column);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_column);
      __Pyx_GIVEREF(__pyx_v_column);
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__subset), __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__item), __pyx_v_start) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__nitems), __pyx_v_nitems) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L0;
    }
    __pyx_L9:;
    goto __pyx_L7;
  }
  /*else*/ {

    /* "gipsy.pyx":1948
 *             return self.__rcol(table, column, subset=level, item=start, nitems=nitems)
 *       else:
 *          raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 * 
 *    def __setitem__(self, key, value):
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_144), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L7:;

  __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("gipsy.Set.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_level);
  __Pyx_XDECREF(__pyx_v_table);
  __Pyx_XDECREF(__pyx_v_column);
  __Pyx_XDECREF(__pyx_v_rows);
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1950
 *          raise GipsyError("error using indexing operator")
 * 
 *    def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 * 
 * # Write header or column data using the indexing and slicing syntax.
 */

static PyObject *__pyx_pf_5gipsy_3Set_6__setitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_6__setitem__ = {__Pyx_NAMESTR("__setitem__"), (PyCFunction)__pyx_pf_5gipsy_3Set_6__setitem__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_6__setitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_level = NULL;
  PyObject *__pyx_v_table = NULL;
  PyObject *__pyx_v_column = NULL;
  PyObject *__pyx_v_rows = NULL;
  PyObject *__pyx_v_start = NULL;
  PyObject *__pyx_v_nitems = 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;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,&__pyx_n_s__value,0};
  __Pyx_RefNannySetupContext("__setitem__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__setitem__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
    __pyx_v_value = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":1969
 * # no exception is raised.
 * 
 *       if type(key) is types.StringType:             # <<<<<<<<<<<<<<
 *          self.__whead(key, 0, value)
 *       elif len(key)==2:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_key)) == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":1970
 * 
 *       if type(key) is types.StringType:
 *          self.__whead(key, 0, value)             # <<<<<<<<<<<<<<
 *       elif len(key)==2:
 *          self.__whead(key[1], key[0], value)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____whead); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key);
    __Pyx_GIVEREF(__pyx_v_key);
    __Pyx_INCREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    __Pyx_INCREF(__pyx_v_value);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_value);
    __Pyx_GIVEREF(__pyx_v_value);
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":1971
 *       if type(key) is types.StringType:
 *          self.__whead(key, 0, value)
 *       elif len(key)==2:             # <<<<<<<<<<<<<<
 *          self.__whead(key[1], key[0], value)
 *       elif len(key)>2:
 */
  __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_5 == 2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1972
 *          self.__whead(key, 0, value)
 *       elif len(key)==2:
 *          self.__whead(key[1], key[0], value)             # <<<<<<<<<<<<<<
 *       elif len(key)>2:
 *          if len(key)==3:
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____whead); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_value);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_value);
    __Pyx_GIVEREF(__pyx_v_value);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":1973
 *       elif len(key)==2:
 *          self.__whead(key[1], key[0], value)
 *       elif len(key)>2:             # <<<<<<<<<<<<<<
 *          if len(key)==3:
 *             level  = 0
 */
  __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_5 > 2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":1974
 *          self.__whead(key[1], key[0], value)
 *       elif len(key)>2:
 *          if len(key)==3:             # <<<<<<<<<<<<<<
 *             level  = 0
 *             table  = key[0]
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_5 == 3);
    if (__pyx_t_3) {

      /* "gipsy.pyx":1975
 *       elif len(key)>2:
 *          if len(key)==3:
 *             level  = 0             # <<<<<<<<<<<<<<
 *             table  = key[0]
 *             column = key[1]
 */
      __Pyx_INCREF(__pyx_int_0);
      __pyx_v_level = __pyx_int_0;

      /* "gipsy.pyx":1976
 *          if len(key)==3:
 *             level  = 0
 *             table  = key[0]             # <<<<<<<<<<<<<<
 *             column = key[1]
 *             rows   = key[2]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_table = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1977
 *             level  = 0
 *             table  = key[0]
 *             column = key[1]             # <<<<<<<<<<<<<<
 *             rows   = key[2]
 *          elif len(key)==4:
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_column = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1978
 *             table  = key[0]
 *             column = key[1]
 *             rows   = key[2]             # <<<<<<<<<<<<<<
 *          elif len(key)==4:
 *             level  = key[0]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_rows = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L7;
    }

    /* "gipsy.pyx":1979
 *             column = key[1]
 *             rows   = key[2]
 *          elif len(key)==4:             # <<<<<<<<<<<<<<
 *             level  = key[0]
 *             table  = key[1]
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_5 == 4);
    if (__pyx_t_3) {

      /* "gipsy.pyx":1980
 *             rows   = key[2]
 *          elif len(key)==4:
 *             level  = key[0]             # <<<<<<<<<<<<<<
 *             table  = key[1]
 *             column = key[2]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_level = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1981
 *          elif len(key)==4:
 *             level  = key[0]
 *             table  = key[1]             # <<<<<<<<<<<<<<
 *             column = key[2]
 *             rows   = key[3]
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_table = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1982
 *             level  = key[0]
 *             table  = key[1]
 *             column = key[2]             # <<<<<<<<<<<<<<
 *             rows   = key[3]
 *          else:
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_column = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":1983
 *             table  = key[1]
 *             column = key[2]
 *             rows   = key[3]             # <<<<<<<<<<<<<<
 *          else:
 *             raise GipsyError("error using indexing operator")
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 3, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_v_rows = __pyx_t_2;
      __pyx_t_2 = 0;
      goto __pyx_L7;
    }
    /*else*/ {

      /* "gipsy.pyx":1985
 *             rows   = key[3]
 *          else:
 *             raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 *          if type(rows)==types.IntType:
 *             self.__wcol(table, column, value, subset=level, item=rows, nitems=1)
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_145), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L7:;

    /* "gipsy.pyx":1986
 *          else:
 *             raise GipsyError("error using indexing operator")
 *          if type(rows)==types.IntType:             # <<<<<<<<<<<<<<
 *             self.__wcol(table, column, value, subset=level, item=rows, nitems=1)
 *          else:
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__IntType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_rows)), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_3) {

      /* "gipsy.pyx":1987
 *             raise GipsyError("error using indexing operator")
 *          if type(rows)==types.IntType:
 *             self.__wcol(table, column, value, subset=level, item=rows, nitems=1)             # <<<<<<<<<<<<<<
 *          else:
 *             if rows.step:
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcol); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_table);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_table);
      __Pyx_GIVEREF(__pyx_v_table);
      __Pyx_INCREF(__pyx_v_column);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_column);
      __Pyx_GIVEREF(__pyx_v_column);
      __Pyx_INCREF(__pyx_v_value);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_value);
      __Pyx_GIVEREF(__pyx_v_value);
      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__subset), __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__item), __pyx_v_rows) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__nitems), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1987; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L8;
    }
    /*else*/ {

      /* "gipsy.pyx":1989
 *             self.__wcol(table, column, value, subset=level, item=rows, nitems=1)
 *          else:
 *             if rows.step:             # <<<<<<<<<<<<<<
 *                raise GipsyError("strided column access not yet implemented")
 *             start  = 0
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_3) {

        /* "gipsy.pyx":1990
 *          else:
 *             if rows.step:
 *                raise GipsyError("strided column access not yet implemented")             # <<<<<<<<<<<<<<
 *             start  = 0
 *             nitems = None
 */
        __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_146), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L9;
      }
      __pyx_L9:;

      /* "gipsy.pyx":1991
 *             if rows.step:
 *                raise GipsyError("strided column access not yet implemented")
 *             start  = 0             # <<<<<<<<<<<<<<
 *             nitems = None
 *             if rows.start: start  = rows.start
 */
      __Pyx_INCREF(__pyx_int_0);
      __pyx_v_start = __pyx_int_0;

      /* "gipsy.pyx":1992
 *                raise GipsyError("strided column access not yet implemented")
 *             start  = 0
 *             nitems = None             # <<<<<<<<<<<<<<
 *             if rows.start: start  = rows.start
 *             if rows.stop:  nitems = rows.stop-start
 */
      __Pyx_INCREF(Py_None);
      __pyx_v_nitems = Py_None;

      /* "gipsy.pyx":1993
 *             start  = 0
 *             nitems = None
 *             if rows.start: start  = rows.start             # <<<<<<<<<<<<<<
 *             if rows.stop:  nitems = rows.stop-start
 *             self.__wcol(table, column, value, subset=level, item=start, nitems=nitems)
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_3) {
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__start); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_v_start);
        __pyx_v_start = __pyx_t_4;
        __pyx_t_4 = 0;
        goto __pyx_L10;
      }
      __pyx_L10:;

      /* "gipsy.pyx":1994
 *             nitems = None
 *             if rows.start: start  = rows.start
 *             if rows.stop:  nitems = rows.stop-start             # <<<<<<<<<<<<<<
 *             self.__wcol(table, column, value, subset=level, item=start, nitems=nitems)
 *       else:
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__stop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_3) {
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_rows, __pyx_n_s__stop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyNumber_Subtract(__pyx_t_4, __pyx_v_start); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1994; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_v_nitems);
        __pyx_v_nitems = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L11;
      }
      __pyx_L11:;

      /* "gipsy.pyx":1995
 *             if rows.start: start  = rows.start
 *             if rows.stop:  nitems = rows.stop-start
 *             self.__wcol(table, column, value, subset=level, item=start, nitems=nitems)             # <<<<<<<<<<<<<<
 *       else:
 *          raise GipsyError("error using indexing operator")
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcol); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      __Pyx_INCREF(__pyx_v_table);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_table);
      __Pyx_GIVEREF(__pyx_v_table);
      __Pyx_INCREF(__pyx_v_column);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_column);
      __Pyx_GIVEREF(__pyx_v_column);
      __Pyx_INCREF(__pyx_v_value);
      PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_value);
      __Pyx_GIVEREF(__pyx_v_value);
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__subset), __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__item), __pyx_v_start) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__nitems), __pyx_v_nitems) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L8:;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":1997
 *             self.__wcol(table, column, value, subset=level, item=start, nitems=nitems)
 *       else:
 *          raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 * 
 *    def __delitem__(self, key):
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_147), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  __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("gipsy.Set.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_level);
  __Pyx_XDECREF(__pyx_v_table);
  __Pyx_XDECREF(__pyx_v_column);
  __Pyx_XDECREF(__pyx_v_rows);
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":1999
 *          raise GipsyError("error using indexing operator")
 * 
 *    def __delitem__(self, key):             # <<<<<<<<<<<<<<
 * 
 * # Delete header item. Examples:
 */

static PyObject *__pyx_pf_5gipsy_3Set_7__delitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_7__delitem__ = {__Pyx_NAMESTR("__delitem__"), (PyCFunction)__pyx_pf_5gipsy_3Set_7__delitem__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_7__delitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  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;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("__delitem__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__delitem__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__delitem__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__delitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2006
 * # If the item does not exist, an exception is raised.
 * 
 *       if type(key) is types.StringType:             # <<<<<<<<<<<<<<
 *          self.__delhead(key)
 *       elif len(key)==2:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_key)) == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":2007
 * 
 *       if type(key) is types.StringType:
 *          self.__delhead(key)             # <<<<<<<<<<<<<<
 *       elif len(key)==2:
 *          self.__delhead(key[1], key[0])
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____delhead); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key);
    __Pyx_GIVEREF(__pyx_v_key);
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":2008
 *       if type(key) is types.StringType:
 *          self.__delhead(key)
 *       elif len(key)==2:             # <<<<<<<<<<<<<<
 *          self.__delhead(key[1], key[0])
 *       else:
 */
  __pyx_t_5 = PyObject_Length(__pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = (__pyx_t_5 == 2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2009
 *          self.__delhead(key)
 *       elif len(key)==2:
 *          self.__delhead(key[1], key[0])             # <<<<<<<<<<<<<<
 *       else:
 *          raise GdsError(-1, "error deleting header item")
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____delhead); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_key, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2011
 *          self.__delhead(key[1], key[0])
 *       else:
 *          raise GdsError(-1, "error deleting header item")             # <<<<<<<<<<<<<<
 * 
 *    def __wcheck(self):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_149), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  __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("gipsy.Set.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2013
 *          raise GdsError(-1, "error deleting header item")
 * 
 *    def __wcheck(self):             # <<<<<<<<<<<<<<
 *       if not self.wmode:
 *          raise GdsError(-1, "set opened read-only")
 */

static PyObject *__pyx_pf_5gipsy_3Set_8__wcheck(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_8__wcheck = {__Pyx_NAMESTR("__wcheck"), (PyCFunction)__pyx_pf_5gipsy_3Set_8__wcheck, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_8__wcheck(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__wcheck");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":2014
 * 
 *    def __wcheck(self):
 *       if not self.wmode:             # <<<<<<<<<<<<<<
 *          raise GdsError(-1, "set opened read-only")
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__wmode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2015
 *    def __wcheck(self):
 *       if not self.wmode:
 *          raise GdsError(-1, "set opened read-only")             # <<<<<<<<<<<<<<
 * 
 *    def update(self):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_151), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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_AddTraceback("gipsy.Set.__wcheck", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2017
 *          raise GdsError(-1, "set opened read-only")
 * 
 *    def update(self):             # <<<<<<<<<<<<<<
 *       "Flush image data to set"
 *       if self.wmode:
 */

static PyObject *__pyx_pf_5gipsy_3Set_9update(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_3Set_9update[] = "Flush image data to set";
static PyMethodDef __pyx_mdef_5gipsy_3Set_9update = {__Pyx_NAMESTR("update"), (PyCFunction)__pyx_pf_5gipsy_3Set_9update, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_9update)};
static PyObject *__pyx_pf_5gipsy_3Set_9update(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_image = 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;
  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("update");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":2019
 *    def update(self):
 *       "Flush image data to set"
 *       if self.wmode:             # <<<<<<<<<<<<<<
 *          try:
 *             image = self.__dict__['image']
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__wmode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":2020
 *       "Flush image data to set"
 *       if self.wmode:
 *          try:             # <<<<<<<<<<<<<<
 *             image = self.__dict__['image']
 *             image.flush()
 */
    {
      __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:*/ {

        /* "gipsy.pyx":2021
 *       if self.wmode:
 *          try:
 *             image = self.__dict__['image']             # <<<<<<<<<<<<<<
 *             image.flush()
 *          except:
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2021; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__image)); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2021; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_image = __pyx_t_6;
        __pyx_t_6 = 0;

        /* "gipsy.pyx":2022
 *          try:
 *             image = self.__dict__['image']
 *             image.flush()             # <<<<<<<<<<<<<<
 *          except:
 *             pass
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_image, __pyx_n_s__flush); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __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_L13_try_end;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":2023
 *             image = self.__dict__['image']
 *             image.flush()
 *          except:             # <<<<<<<<<<<<<<
 *             pass
 *       else:
 */
      /*except:*/ {
        PyErr_Restore(0,0,0);
        goto __pyx_L7_exception_handled;
      }
      __pyx_L7_exception_handled:;
      __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);
      __pyx_L13_try_end:;
    }
    goto __pyx_L5;
  }
  /*else*/ {

    /* "gipsy.pyx":2026
 *             pass
 *       else:
 *          raise GdsError(-1, "set %s opened read-only" % self.name)             # <<<<<<<<<<<<<<
 * 
 *    def has_key(self, key):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_152), __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_neg_1);
    __Pyx_GIVEREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_7));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
    __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L5:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("gipsy.Set.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_image);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2028
 *          raise GdsError(-1, "set %s opened read-only" % self.name)
 * 
 *    def has_key(self, key):             # <<<<<<<<<<<<<<
 *       return key in self
 * 
 */

static PyObject *__pyx_pf_5gipsy_3Set_10has_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_10has_key = {__Pyx_NAMESTR("has_key"), (PyCFunction)__pyx_pf_5gipsy_3Set_10has_key, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_10has_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("has_key");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("has_key", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "has_key") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("has_key", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.has_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2029
 * 
 *    def has_key(self, key):
 *       return key in self             # <<<<<<<<<<<<<<
 * 
 *    def __contains__(self, key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PySequence_Contains(__pyx_v_self, __pyx_v_key))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy.Set.has_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2031
 *       return key in self
 * 
 *    def __contains__(self, key):             # <<<<<<<<<<<<<<
 *       try:
 *          self[key]
 */

static PyObject *__pyx_pf_5gipsy_3Set_11__contains__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_11__contains__ = {__Pyx_NAMESTR("__contains__"), (PyCFunction)__pyx_pf_5gipsy_3Set_11__contains__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_11__contains__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 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;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("__contains__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__contains__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__contains__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__contains__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2032
 * 
 *    def __contains__(self, key):
 *       try:             # <<<<<<<<<<<<<<
 *          self[key]
 *          return True
 */
  {
    __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:*/ {

      /* "gipsy.pyx":2033
 *    def __contains__(self, key):
 *       try:
 *          self[key]             # <<<<<<<<<<<<<<
 *          return True
 *       except:
 */
      __pyx_t_4 = PyObject_GetItem(__pyx_v_self, __pyx_v_key); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2033; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "gipsy.pyx":2034
 *       try:
 *          self[key]
 *          return True             # <<<<<<<<<<<<<<
 *       except:
 *          return False
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2034; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L10_try_return;
    }
    __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_L13_try_end;
    __pyx_L10_try_return:;
    __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_L0;
    __pyx_L6_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "gipsy.pyx":2035
 *          self[key]
 *          return True
 *       except:             # <<<<<<<<<<<<<<
 *          return False
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy.Set.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2035; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "gipsy.pyx":2036
 *          return True
 *       except:
 *          return False             # <<<<<<<<<<<<<<
 * 
 *    def keys(self, level=0):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2036; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_except_return;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7_exception_handled;
    }
    __pyx_L8_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_L9_except_return:;
    __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_L0;
    __pyx_L7_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_L13_try_end:;
  }

  __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_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("gipsy.Set.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2038
 *          return False
 * 
 *    def keys(self, level=0):             # <<<<<<<<<<<<<<
 *       cdef fint level_c, index_c=0, err_c=0
 *       cdef fint *levptr_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_12keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_12keys = {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pf_5gipsy_3Set_12keys, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_12keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_level = 0;
  fint __pyx_v_level_c;
  fint __pyx_v_index_c;
  fint __pyx_v_err_c;
  fint *__pyx_v_levptr_c;
  fchar __pyx_v_c_result;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  fint __pyx_t_2;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("keys");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "keys") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_level = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("keys", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2039
 * 
 *    def keys(self, level=0):
 *       cdef fint level_c, index_c=0, err_c=0             # <<<<<<<<<<<<<<
 *       cdef fint *levptr_c
 *       cdef fchar c_result
 */
  __pyx_v_index_c = 0;
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2043
 *       cdef fchar c_result
 *       cdef bytes key
 *       c_result = newfchar(20)             # <<<<<<<<<<<<<<
 *       if level is None:
 *          levptr_c = NULL
 */
  __pyx_v_c_result = __pyx_f_5gipsy_newfchar(__pyx_int_20);

  /* "gipsy.pyx":2044
 *       cdef bytes key
 *       c_result = newfchar(20)
 *       if level is None:             # <<<<<<<<<<<<<<
 *          levptr_c = NULL
 *       else:
 */
  __pyx_t_1 = (__pyx_v_level == Py_None);
  if (__pyx_t_1) {

    /* "gipsy.pyx":2045
 *       c_result = newfchar(20)
 *       if level is None:
 *          levptr_c = NULL             # <<<<<<<<<<<<<<
 *       else:
 *          level_c = level
 */
    __pyx_v_levptr_c = NULL;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2047
 *          levptr_c = NULL
 *       else:
 *          level_c = level             # <<<<<<<<<<<<<<
 *          levptr_c = &level_c
 *       result = []
 */
    __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_level_c = __pyx_t_2;

    /* "gipsy.pyx":2048
 *       else:
 *          level_c = level
 *          levptr_c = &level_c             # <<<<<<<<<<<<<<
 *       result = []
 *       while True:
 */
    __pyx_v_levptr_c = (&__pyx_v_level_c);
  }
  __pyx_L6:;

  /* "gipsy.pyx":2049
 *          level_c = level
 *          levptr_c = &level_c
 *       result = []             # <<<<<<<<<<<<<<
 *       while True:
 *          gdsd_find_c(c_result, tofchar(self.handle), levptr_c, &index_c, &err_c)
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2050
 *          levptr_c = &level_c
 *       result = []
 *       while True:             # <<<<<<<<<<<<<<
 *          gdsd_find_c(c_result, tofchar(self.handle), levptr_c, &index_c, &err_c)
 *          if err_c<0:
 */
  while (1) {
    if (!1) break;

    /* "gipsy.pyx":2051
 *       result = []
 *       while True:
 *          gdsd_find_c(c_result, tofchar(self.handle), levptr_c, &index_c, &err_c)             # <<<<<<<<<<<<<<
 *          if err_c<0:
 *             raiseGds(err_c)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    gdsd_find_c(__pyx_v_c_result, __pyx_f_5gipsy_tofchar(__pyx_t_3), __pyx_v_levptr_c, (&__pyx_v_index_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2052
 *       while True:
 *          gdsd_find_c(c_result, tofchar(self.handle), levptr_c, &index_c, &err_c)
 *          if err_c<0:             # <<<<<<<<<<<<<<
 *             raiseGds(err_c)
 *          if index_c==0:
 */
    __pyx_t_1 = (__pyx_v_err_c < 0);
    if (__pyx_t_1) {

      /* "gipsy.pyx":2053
 *          gdsd_find_c(c_result, tofchar(self.handle), levptr_c, &index_c, &err_c)
 *          if err_c<0:
 *             raiseGds(err_c)             # <<<<<<<<<<<<<<
 *          if index_c==0:
 *             break
 */
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L9;
    }
    __pyx_L9:;

    /* "gipsy.pyx":2054
 *          if err_c<0:
 *             raiseGds(err_c)
 *          if index_c==0:             # <<<<<<<<<<<<<<
 *             break
 *          key = c_result.a
 */
    __pyx_t_1 = (__pyx_v_index_c == 0);
    if (__pyx_t_1) {

      /* "gipsy.pyx":2055
 *             raiseGds(err_c)
 *          if index_c==0:
 *             break             # <<<<<<<<<<<<<<
 *          key = c_result.a
 *          if level is None:
 */
      goto __pyx_L8_break;
      goto __pyx_L10;
    }
    __pyx_L10:;

    /* "gipsy.pyx":2056
 *          if index_c==0:
 *             break
 *          key = c_result.a             # <<<<<<<<<<<<<<
 *          if level is None:
 *             result.append((err_c, key.rstrip()))
 */
    __pyx_t_4 = PyBytes_FromString(__pyx_v_c_result.a); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __Pyx_XDECREF(((PyObject *)__pyx_v_key));
    __pyx_v_key = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2057
 *             break
 *          key = c_result.a
 *          if level is None:             # <<<<<<<<<<<<<<
 *             result.append((err_c, key.rstrip()))
 *          else:
 */
    __pyx_t_1 = (__pyx_v_level == Py_None);
    if (__pyx_t_1) {

      /* "gipsy.pyx":2058
 *          key = c_result.a
 *          if level is None:
 *             result.append((err_c, key.rstrip()))             # <<<<<<<<<<<<<<
 *          else:
 *             result.append(key.rstrip())
 */
      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_key), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_4 = 0;
      __pyx_t_3 = 0;
      __pyx_t_6 = PyList_Append(__pyx_v_result, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      goto __pyx_L11;
    }
    /*else*/ {

      /* "gipsy.pyx":2060
 *             result.append((err_c, key.rstrip()))
 *          else:
 *             result.append(key.rstrip())             # <<<<<<<<<<<<<<
 *       delfchar(c_result)
 *       return result
 */
      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_key), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = PyList_Append(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_L11:;
  }
  __pyx_L8_break:;

  /* "gipsy.pyx":2061
 *          else:
 *             result.append(key.rstrip())
 *       delfchar(c_result)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
  __pyx_t_3 = __pyx_f_5gipsy_delfchar(__pyx_v_c_result); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2061; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":2062
 *             result.append(key.rstrip())
 *       delfchar(c_result)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def items(self, level=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.Set.keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2064
 *       return result
 * 
 *    def items(self, level=0):             # <<<<<<<<<<<<<<
 *       result = []
 *       for key in self.keys(level):
 */

static PyObject *__pyx_pf_5gipsy_3Set_13items(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_13items = {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pf_5gipsy_3Set_13items, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_13items(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("items");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "items") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_level = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("items", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.items", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2065
 * 
 *    def items(self, level=0):
 *       result = []             # <<<<<<<<<<<<<<
 *       for key in self.keys(level):
 *          try:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2066
 *    def items(self, level=0):
 *       result = []
 *       for key in self.keys(level):             # <<<<<<<<<<<<<<
 *          try:
 *             result.append((key, self[key]))
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__keys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF(__pyx_v_key);
    __pyx_v_key = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2067
 *       result = []
 *       for key in self.keys(level):
 *          try:             # <<<<<<<<<<<<<<
 *             result.append((key, self[key]))
 *          except:
 */
    {
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "gipsy.pyx":2068
 *       for key in self.keys(level):
 *          try:
 *             result.append((key, self[key]))             # <<<<<<<<<<<<<<
 *          except:
 *             pass  # may be a table, history or comment
 */
        if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L8_error;} 
        }
        __pyx_t_3 = PyObject_GetItem(__pyx_v_self, __pyx_v_key); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __Pyx_INCREF(__pyx_v_key);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key);
        __Pyx_GIVEREF(__pyx_v_key);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_9 = PyList_Append(__pyx_v_result, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      }
      __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;
      goto __pyx_L15_try_end;
      __pyx_L8_error:;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":2069
 *          try:
 *             result.append((key, self[key]))
 *          except:             # <<<<<<<<<<<<<<
 *             pass  # may be a table, history or comment
 *       return result
 */
      /*except:*/ {
        PyErr_Restore(0,0,0);
        goto __pyx_L9_exception_handled;
      }
      __pyx_L9_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      __pyx_L15_try_end:;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2071
 *          except:
 *             pass  # may be a table, history or comment
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def read(self, key, fint level_c=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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("gipsy.Set.items", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2073
 *       return result
 * 
 *    def read(self, key, fint level_c=0):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0
 *       cdef long data_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_14read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_14read = {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pf_5gipsy_3Set_14read, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_14read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  fint __pyx_v_level_c;
  fint __pyx_v_err_c;
  long __pyx_v_data_c;
  fchar __pyx_v_handle;
  fchar __pyx_v_key_c;
  fint __pyx_v_size;
  PyObject *__pyx_v_result = 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;
  long __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,&__pyx_n_s__level_c,0};
  __Pyx_RefNannySetupContext("read");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("read", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level_c);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "read") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
    if (values[2]) {
      __pyx_v_level_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_level_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_level_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("read", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2074
 * 
 *    def read(self, key, fint level_c=0):
 *       cdef fint err_c=0             # <<<<<<<<<<<<<<
 *       cdef long data_c
 *       cdef fchar handle = tofchar(self.handle)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2076
 *       cdef fint err_c=0
 *       cdef long data_c
 *       cdef fchar handle = tofchar(self.handle)             # <<<<<<<<<<<<<<
 *       cdef fchar key_c = tofchar(key)
 *       size = gdsd_length_c(handle, key_c, &level_c, &err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle = __pyx_f_5gipsy_tofchar(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2077
 *       cdef long data_c
 *       cdef fchar handle = tofchar(self.handle)
 *       cdef fchar key_c = tofchar(key)             # <<<<<<<<<<<<<<
 *       size = gdsd_length_c(handle, key_c, &level_c, &err_c)
 *       if err_c<0:
 */
  __pyx_v_key_c = __pyx_f_5gipsy_tofchar(__pyx_v_key);

  /* "gipsy.pyx":2078
 *       cdef fchar handle = tofchar(self.handle)
 *       cdef fchar key_c = tofchar(key)
 *       size = gdsd_length_c(handle, key_c, &level_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_v_size = gdsd_length_c(__pyx_v_handle, __pyx_v_key_c, (&__pyx_v_level_c), (&__pyx_v_err_c));

  /* "gipsy.pyx":2079
 *       cdef fchar key_c = tofchar(key)
 *       size = gdsd_length_c(handle, key_c, &level_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       result = Buffer(size)
 */
  __pyx_t_2 = (__pyx_v_err_c < 0);
  if (__pyx_t_2) {

    /* "gipsy.pyx":2080
 *       size = gdsd_length_c(handle, key_c, &level_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       result = Buffer(size)
 *       data_c = result.content
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2081
 *       if err_c<0:
 *          raiseGds(err_c)
 *       result = Buffer(size)             # <<<<<<<<<<<<<<
 *       data_c = result.content
 *       err_c  = 0
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Buffer); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2082
 *          raiseGds(err_c)
 *       result = Buffer(size)
 *       data_c = result.content             # <<<<<<<<<<<<<<
 *       err_c  = 0
 *       gdsd_read_c(handle, key_c, &level_c, <char*>data_c, NULL, NULL, NULL,
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_result, __pyx_n_s__content); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_AsLong(__pyx_t_4); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_data_c = __pyx_t_5;

  /* "gipsy.pyx":2083
 *       result = Buffer(size)
 *       data_c = result.content
 *       err_c  = 0             # <<<<<<<<<<<<<<
 *       gdsd_read_c(handle, key_c, &level_c, <char*>data_c, NULL, NULL, NULL,
 *                   &err_c)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2085
 *       err_c  = 0
 *       gdsd_read_c(handle, key_c, &level_c, <char*>data_c, NULL, NULL, NULL,
 *                   &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gdsd_read_c(__pyx_v_handle, __pyx_v_key_c, (&__pyx_v_level_c), ((char *)__pyx_v_data_c), NULL, NULL, NULL, (&__pyx_v_err_c));

  /* "gipsy.pyx":2086
 *       gdsd_read_c(handle, key_c, &level_c, <char*>data_c, NULL, NULL, NULL,
 *                   &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return result
 */
  __pyx_t_2 = (__pyx_v_err_c < 0);
  if (__pyx_t_2) {

    /* "gipsy.pyx":2087
 *                   &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":2088
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def write(self, key, fint level_c, buffer):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.Set.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2090
 *       return result
 * 
 *    def write(self, key, fint level_c, buffer):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0, size_c
 *       cdef long data_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_15write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_15write = {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pf_5gipsy_3Set_15write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_15write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  fint __pyx_v_level_c;
  PyObject *__pyx_v_buffer = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_size_c;
  long __pyx_v_data_c;
  fchar __pyx_v_handle;
  fchar __pyx_v_key_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  long __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,&__pyx_n_s__level_c,&__pyx_n_s__buffer,0};
  __Pyx_RefNannySetupContext("write");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("write", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("write", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__buffer);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("write", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "write") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
    __pyx_v_level_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_level_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_buffer = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("write", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2091
 * 
 *    def write(self, key, fint level_c, buffer):
 *       cdef fint err_c=0, size_c             # <<<<<<<<<<<<<<
 *       cdef long data_c
 *       cdef fchar handle = tofchar(self.handle)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2093
 *       cdef fint err_c=0, size_c
 *       cdef long data_c
 *       cdef fchar handle = tofchar(self.handle)             # <<<<<<<<<<<<<<
 *       cdef fchar key_c = tofchar(key)
 *       self.__wcheck()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle = __pyx_f_5gipsy_tofchar(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2094
 *       cdef long data_c
 *       cdef fchar handle = tofchar(self.handle)
 *       cdef fchar key_c = tofchar(key)             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       size_c = len(buffer)
 */
  __pyx_v_key_c = __pyx_f_5gipsy_tofchar(__pyx_v_key);

  /* "gipsy.pyx":2095
 *       cdef fchar handle = tofchar(self.handle)
 *       cdef fchar key_c = tofchar(key)
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       size_c = len(buffer)
 *       data_c = buffer.content
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2096
 *       cdef fchar key_c = tofchar(key)
 *       self.__wcheck()
 *       size_c = len(buffer)             # <<<<<<<<<<<<<<
 *       data_c = buffer.content
 *       gdsd_write_c(handle, key_c, &level_c, <char*>data_c, &size_c, NULL, NULL,
 */
  __pyx_t_3 = PyObject_Length(__pyx_v_buffer); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_size_c = __pyx_t_3;

  /* "gipsy.pyx":2097
 *       self.__wcheck()
 *       size_c = len(buffer)
 *       data_c = buffer.content             # <<<<<<<<<<<<<<
 *       gdsd_write_c(handle, key_c, &level_c, <char*>data_c, &size_c, NULL, NULL,
 *                    &err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_buffer, __pyx_n_s__content); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_data_c = __pyx_t_4;

  /* "gipsy.pyx":2099
 *       data_c = buffer.content
 *       gdsd_write_c(handle, key_c, &level_c, <char*>data_c, &size_c, NULL, NULL,
 *                    &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gdsd_write_c(__pyx_v_handle, __pyx_v_key_c, (&__pyx_v_level_c), ((char *)__pyx_v_data_c), (&__pyx_v_size_c), NULL, NULL, (&__pyx_v_err_c));

  /* "gipsy.pyx":2100
 *       gdsd_write_c(handle, key_c, &level_c, <char*>data_c, &size_c, NULL, NULL,
 *                    &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_5 = (__pyx_v_err_c < 0);
  if (__pyx_t_5) {

    /* "gipsy.pyx":2101
 *                    &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def close(self):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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_6);
  __Pyx_AddTraceback("gipsy.Set.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2103
 *          raiseGds(err_c)
 * 
 *    def close(self):             # <<<<<<<<<<<<<<
 *       "Close set"
 *       cdef fint err_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_16close(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_3Set_16close[] = "Close set";
static PyMethodDef __pyx_mdef_5gipsy_3Set_16close = {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pf_5gipsy_3Set_16close, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_16close)};
static PyObject *__pyx_pf_5gipsy_3Set_16close(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  fint __pyx_v_err_c;
  PyObject *__pyx_v_hdulist = NULL;
  PyObject *__pyx_v_refs = NULL;
  PyObject *__pyx_v_image = NULL;
  PyObject *__pyx_v_attr = 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;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":2106
 *       "Close set"
 *       cdef fint err_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       if self.fits:
 *          hdulist, refs = self.fitsfiles[self.fitsname]
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2107
 *       cdef fint err_c
 *       err_c = 0
 *       if self.fits:             # <<<<<<<<<<<<<<
 *          hdulist, refs = self.fitsfiles[self.fitsname]
 *          refs -= 1
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fits); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":2108
 *       err_c = 0
 *       if self.fits:
 *          hdulist, refs = self.fitsfiles[self.fitsname]             # <<<<<<<<<<<<<<
 *          refs -= 1
 *          if refs>0:
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsfiles); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsname); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
      PyObject* sequence = __pyx_t_4;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __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;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L7_unpacking_done:;
    }
    __pyx_v_hdulist = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_refs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2109
 *       if self.fits:
 *          hdulist, refs = self.fitsfiles[self.fitsname]
 *          refs -= 1             # <<<<<<<<<<<<<<
 *          if refs>0:
 *             self.fitsfiles[self.fitsname] = hdulist, refs
 */
    __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_v_refs, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_v_refs);
    __pyx_v_refs = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2110
 *          hdulist, refs = self.fitsfiles[self.fitsname]
 *          refs -= 1
 *          if refs>0:             # <<<<<<<<<<<<<<
 *             self.fitsfiles[self.fitsname] = hdulist, refs
 *          else:
 */
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_refs, __pyx_int_0, Py_GT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_2) {

      /* "gipsy.pyx":2111
 *          refs -= 1
 *          if refs>0:
 *             self.fitsfiles[self.fitsname] = hdulist, refs             # <<<<<<<<<<<<<<
 *          else:
 *             del self.fitsfiles[self.fitsname]
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      __Pyx_INCREF(__pyx_v_hdulist);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_hdulist);
      __Pyx_GIVEREF(__pyx_v_hdulist);
      __Pyx_INCREF(__pyx_v_refs);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_refs);
      __Pyx_GIVEREF(__pyx_v_refs);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsfiles); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsname); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyObject_SetItem(__pyx_t_1, __pyx_t_3, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      goto __pyx_L8;
    }
    /*else*/ {

      /* "gipsy.pyx":2113
 *             self.fitsfiles[self.fitsname] = hdulist, refs
 *          else:
 *             del self.fitsfiles[self.fitsname]             # <<<<<<<<<<<<<<
 *             hdulist.close()
 *       else:
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsfiles); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__fitsname); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyObject_DelItem(__pyx_t_4, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "gipsy.pyx":2114
 *          else:
 *             del self.fitsfiles[self.fitsname]
 *             hdulist.close()             # <<<<<<<<<<<<<<
 *       else:
 *          image, refs = self.handles[self.handle]
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_hdulist, __pyx_n_s__close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_L8:;
    goto __pyx_L5;
  }
  /*else*/ {

    /* "gipsy.pyx":2116
 *             hdulist.close()
 *       else:
 *          image, refs = self.handles[self.handle]             # <<<<<<<<<<<<<<
 *          refs -= 1
 *          if refs<=0:
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetItem(__pyx_t_4, __pyx_t_3); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L10_unpacking_done;
      __pyx_L9_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L10_unpacking_done:;
    }
    __pyx_v_image = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_refs = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2117
 *       else:
 *          image, refs = self.handles[self.handle]
 *          refs -= 1             # <<<<<<<<<<<<<<
 *          if refs<=0:
 *             try:
 */
    __pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_v_refs, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_refs);
    __pyx_v_refs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2118
 *          image, refs = self.handles[self.handle]
 *          refs -= 1
 *          if refs<=0:             # <<<<<<<<<<<<<<
 *             try:
 *                image.flush()
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_refs, __pyx_int_0, Py_LE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {

      /* "gipsy.pyx":2119
 *          refs -= 1
 *          if refs<=0:
 *             try:             # <<<<<<<<<<<<<<
 *                image.flush()
 *                image.close()
 */
      {
        __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:*/ {

          /* "gipsy.pyx":2120
 *          if refs<=0:
 *             try:
 *                image.flush()             # <<<<<<<<<<<<<<
 *                image.close()
 *             except:
 */
          __pyx_t_1 = PyObject_GetAttr(__pyx_v_image, __pyx_n_s__flush); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2120; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2120; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

          /* "gipsy.pyx":2121
 *             try:
 *                image.flush()
 *                image.close()             # <<<<<<<<<<<<<<
 *             except:
 *                pass
 */
          __pyx_t_4 = PyObject_GetAttr(__pyx_v_image, __pyx_n_s__close); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2121; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
        __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_L19_try_end;
        __pyx_L12_error:;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "gipsy.pyx":2122
 *                image.flush()
 *                image.close()
 *             except:             # <<<<<<<<<<<<<<
 *                pass
 *             gds_close_c(tofchar(self.handle), &err_c)
 */
        /*except:*/ {
          PyErr_Restore(0,0,0);
          goto __pyx_L13_exception_handled;
        }
        __pyx_L13_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_L19_try_end:;
      }

      /* "gipsy.pyx":2124
 *             except:
 *                pass
 *             gds_close_c(tofchar(self.handle), &err_c)             # <<<<<<<<<<<<<<
 *             del self.handles[self.handle]
 *          else:
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      gds_close_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_err_c));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":2125
 *                pass
 *             gds_close_c(tofchar(self.handle), &err_c)
 *             del self.handles[self.handle]             # <<<<<<<<<<<<<<
 *          else:
 *             self.handles[self.handle] = image, refs
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      if (PyObject_DelItem(__pyx_t_1, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L11;
    }
    /*else*/ {

      /* "gipsy.pyx":2127
 *             del self.handles[self.handle]
 *          else:
 *             self.handles[self.handle] = image, refs             # <<<<<<<<<<<<<<
 * 
 *       if err_c<0:
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
      __Pyx_INCREF(__pyx_v_image);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_image);
      __Pyx_GIVEREF(__pyx_v_image);
      __Pyx_INCREF(__pyx_v_refs);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_refs);
      __Pyx_GIVEREF(__pyx_v_refs);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handles); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyObject_SetItem(__pyx_t_1, __pyx_t_3, ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    }
    __pyx_L11:;
  }
  __pyx_L5:;

  /* "gipsy.pyx":2129
 *             self.handles[self.handle] = image, refs
 * 
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       for attr in self.__dict__.keys():
 */
  __pyx_t_2 = (__pyx_v_err_c < 0);
  if (__pyx_t_2) {

    /* "gipsy.pyx":2130
 * 
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       for attr in self.__dict__.keys():
 *          del self.__dict__[attr]
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L20;
  }
  __pyx_L20:;

  /* "gipsy.pyx":2131
 *       if err_c<0:
 *          raiseGds(err_c)
 *       for attr in self.__dict__.keys():             # <<<<<<<<<<<<<<
 *          del self.__dict__[attr]
 *       try:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__keys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
    } else if (PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
    } else {
      __pyx_t_3 = __pyx_t_11(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF(__pyx_v_attr);
    __pyx_v_attr = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2132
 *          raiseGds(err_c)
 *       for attr in self.__dict__.keys():
 *          del self.__dict__[attr]             # <<<<<<<<<<<<<<
 *       try:
 *          del self.__dict__['image']
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }if (PyObject_DelItem(__pyx_t_3, __pyx_v_attr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2133
 *       for attr in self.__dict__.keys():
 *          del self.__dict__[attr]
 *       try:             # <<<<<<<<<<<<<<
 *          del self.__dict__['image']
 *       except:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {

      /* "gipsy.pyx":2134
 *          del self.__dict__[attr]
 *       try:
 *          del self.__dict__['image']             # <<<<<<<<<<<<<<
 *       except:
 *          pass
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L23_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_DelItem(__pyx_t_1, ((PyObject *)__pyx_n_s__image)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L23_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L30_try_end;
    __pyx_L23_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":2135
 *       try:
 *          del self.__dict__['image']
 *       except:             # <<<<<<<<<<<<<<
 *          pass
 *       self.open = False
 */
    /*except:*/ {
      PyErr_Restore(0,0,0);
      goto __pyx_L24_exception_handled;
    }
    __pyx_L24_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
    __pyx_L30_try_end:;
  }

  /* "gipsy.pyx":2137
 *       except:
 *          pass
 *       self.open = False             # <<<<<<<<<<<<<<
 * 
 *    def delete(self):
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__open, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __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_AddTraceback("gipsy.Set.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_hdulist);
  __Pyx_XDECREF(__pyx_v_refs);
  __Pyx_XDECREF(__pyx_v_image);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2139
 *       self.open = False
 * 
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       "Delete set. See gds_delete.dc2"
 *       cdef fint err_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_17delete(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_3Set_17delete[] = "Delete set. See gds_delete.dc2";
static PyMethodDef __pyx_mdef_5gipsy_3Set_17delete = {__Pyx_NAMESTR("delete"), (PyCFunction)__pyx_pf_5gipsy_3Set_17delete, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_17delete)};
static PyObject *__pyx_pf_5gipsy_3Set_17delete(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  fint __pyx_v_err_c;
  PyObject *__pyx_v_name = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("delete");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":2142
 *       "Delete set. See gds_delete.dc2"
 *       cdef fint err_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       name = self.name
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2143
 *       cdef fint err_c
 *       err_c = 0
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       name = self.name
 *       self.close()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2143; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2144
 *       err_c = 0
 *       self.__wcheck()
 *       name = self.name             # <<<<<<<<<<<<<<
 *       self.close()
 *       gds_delete_c(tofchar(name), &err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2145
 *       self.__wcheck()
 *       name = self.name
 *       self.close()             # <<<<<<<<<<<<<<
 *       gds_delete_c(tofchar(name), &err_c)
 *       if err_c<0:
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2145; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2146
 *       name = self.name
 *       self.close()
 *       gds_delete_c(tofchar(name), &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gds_delete_c(__pyx_f_5gipsy_tofchar(__pyx_v_name), (&__pyx_v_err_c));

  /* "gipsy.pyx":2147
 *       self.close()
 *       gds_delete_c(tofchar(name), &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2148
 *       gds_delete_c(tofchar(name), &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def copy(self, outset):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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("gipsy.Set.delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2150
 *          raiseGds(err_c)
 * 
 *    def copy(self, outset):             # <<<<<<<<<<<<<<
 * 
 * # Make a copy of the current set. Subset and -box specifications
 */

static PyObject *__pyx_pf_5gipsy_3Set_18copy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_18copy = {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pf_5gipsy_3Set_18copy, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_18copy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_outset = 0;
  PyObject *__pyx_v_parts = NULL;
  PyObject *__pyx_v_newspec = 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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__outset,0};
  __Pyx_RefNannySetupContext("copy");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outset);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("copy", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "copy") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_outset = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("copy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2155
 * # are taken into account.
 * 
 *       xeq("COPY INSET=%s BOX=%s OUTSET=%s" % (self.spec, self.boxspec, outset) )             # <<<<<<<<<<<<<<
 * # xeq() is used here because deputy() failures also cause caller to
 * # fail. When xeq fails, it raises an exception which can be caught.
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__xeq); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__spec); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__boxspec); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_outset);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_outset);
  __Pyx_GIVEREF(__pyx_v_outset);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_153), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":2159
 * # fail. When xeq fails, it raises an exception which can be caught.
 * # May be changed later.
 *       parts = self.spec.split()             # <<<<<<<<<<<<<<
 *       parts[0] = outset
 *       newspec = ' '.join(parts)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__spec); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__split); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_parts = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2160
 * # May be changed later.
 *       parts = self.spec.split()
 *       parts[0] = outset             # <<<<<<<<<<<<<<
 *       newspec = ' '.join(parts)
 *       return Set(newspec, write=True)
 */
  if (__Pyx_SetItemInt(__pyx_v_parts, 0, __pyx_v_outset, sizeof(long), PyInt_FromLong) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":2161
 *       parts = self.spec.split()
 *       parts[0] = outset
 *       newspec = ' '.join(parts)             # <<<<<<<<<<<<<<
 *       return Set(newspec, write=True)
 * 
 */
  __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_kp_s_14), __pyx_n_s__join); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_parts);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_parts);
  __Pyx_GIVEREF(__pyx_v_parts);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_newspec = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2162
 *       parts[0] = outset
 *       newspec = ' '.join(parts)
 *       return Set(newspec, write=True)             # <<<<<<<<<<<<<<
 * 
 *    def extend(self, axname, origin, size):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Set); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_newspec);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_newspec);
  __Pyx_GIVEREF(__pyx_v_newspec);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__write), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_parts);
  __Pyx_XDECREF(__pyx_v_newspec);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2164
 *       return Set(newspec, write=True)
 * 
 *    def extend(self, axname, origin, size):             # <<<<<<<<<<<<<<
 *       "Add or extend axis. See gds_extend.dc2"
 *       cdef double origin_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_19extend(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_19extend[] = "Add or extend axis. See gds_extend.dc2";
static PyMethodDef __pyx_mdef_5gipsy_3Set_19extend = {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pf_5gipsy_3Set_19extend, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_19extend)};
static PyObject *__pyx_pf_5gipsy_3Set_19extend(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_axname = 0;
  PyObject *__pyx_v_origin = 0;
  PyObject *__pyx_v_size = 0;
  double __pyx_v_origin_c;
  fint __pyx_v_size_c;
  fint __pyx_v_err_c;
  fint *__pyx_v_sizeptr_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  fint __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__axname,&__pyx_n_s__origin,&__pyx_n_s__size,0};
  __Pyx_RefNannySetupContext("extend");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("extend", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__origin);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("extend", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("extend", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "extend") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_axname = values[1];
    __pyx_v_origin = values[2];
    __pyx_v_size = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("extend", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.extend", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2169
 *       cdef fint   size_c, err_c
 *       cdef fint *sizeptr_c
 *       origin_c = origin             # <<<<<<<<<<<<<<
 *       if size==None:
 *          sizeptr_c = NULL
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_origin); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_origin_c = __pyx_t_1;

  /* "gipsy.pyx":2170
 *       cdef fint *sizeptr_c
 *       origin_c = origin
 *       if size==None:             # <<<<<<<<<<<<<<
 *          sizeptr_c = NULL
 *       else:
 */
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_size, Py_None, Py_EQ); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":2171
 *       origin_c = origin
 *       if size==None:
 *          sizeptr_c = NULL             # <<<<<<<<<<<<<<
 *       else:
 *          size_c   = size
 */
    __pyx_v_sizeptr_c = NULL;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2173
 *          sizeptr_c = NULL
 *       else:
 *          size_c   = size             # <<<<<<<<<<<<<<
 *          sizeptr_c = &size_c
 *       err_c = 0
 */
    __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_size); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_size_c = __pyx_t_4;

    /* "gipsy.pyx":2174
 *       else:
 *          size_c   = size
 *          sizeptr_c = &size_c             # <<<<<<<<<<<<<<
 *       err_c = 0
 *       self.__wcheck()
 */
    __pyx_v_sizeptr_c = (&__pyx_v_size_c);
  }
  __pyx_L6:;

  /* "gipsy.pyx":2175
 *          size_c   = size
 *          sizeptr_c = &size_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       gds_extend_c(tofchar(self.handle), tofchar(axname),
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2176
 *          sizeptr_c = &size_c
 *       err_c = 0
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       gds_extend_c(tofchar(self.handle), tofchar(axname),
 *                          &origin_c, sizeptr_c, &err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2176; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2177
 *       err_c = 0
 *       self.__wcheck()
 *       gds_extend_c(tofchar(self.handle), tofchar(axname),             # <<<<<<<<<<<<<<
 *                          &origin_c, sizeptr_c, &err_c)
 *       if err_c<0:
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);

  /* "gipsy.pyx":2178
 *       self.__wcheck()
 *       gds_extend_c(tofchar(self.handle), tofchar(axname),
 *                          &origin_c, sizeptr_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gds_extend_c(__pyx_f_5gipsy_tofchar(__pyx_t_5), __pyx_f_5gipsy_tofchar(__pyx_v_axname), (&__pyx_v_origin_c), __pyx_v_sizeptr_c, (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2179
 *       gds_extend_c(tofchar(self.handle), tofchar(axname),
 *                          &origin_c, sizeptr_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2180
 *                          &origin_c, sizeptr_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def axnum(self, axname):
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("gipsy.Set.extend", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2182
 *          raiseGds(err_c)
 * 
 *    def axnum(self, axname):             # <<<<<<<<<<<<<<
 * 
 * # Get number of an axis given the name.
 */

static PyObject *__pyx_pf_5gipsy_3Set_20axnum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_20axnum = {__Pyx_NAMESTR("axnum"), (PyCFunction)__pyx_pf_5gipsy_3Set_20axnum, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_20axnum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_axname = 0;
  fint __pyx_v_err_c;
  PyObject *__pyx_v_result = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__axname,0};
  __Pyx_RefNannySetupContext("axnum");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("axnum", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "axnum") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_axname = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("axnum", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.axnum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2189
 * 
 *       cdef fint err_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       result = gdsc_axnum_c(tofchar(self.handle), tofchar(axname), &err_c)
 *       if err_c<0:
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2190
 *       cdef fint err_c
 *       err_c = 0
 *       result = gdsc_axnum_c(tofchar(self.handle), tofchar(axname), &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(gdsc_axnum_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), __pyx_f_5gipsy_tofchar(__pyx_v_axname), (&__pyx_v_err_c))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2191
 *       err_c = 0
 *       result = gdsc_axnum_c(tofchar(self.handle), tofchar(axname), &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return result-1
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2192
 *       result = gdsc_axnum_c(tofchar(self.handle), tofchar(axname), &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return result-1
 * 
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2193
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return result-1             # <<<<<<<<<<<<<<
 * 
 *    def axname(self, axnum):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyNumber_Subtract(__pyx_v_result, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.axnum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2195
 *       return result-1
 * 
 *    def axname(self, axnum):             # <<<<<<<<<<<<<<
 * 
 * # Get name of an axis given the axis number.
 */

static PyObject *__pyx_pf_5gipsy_3Set_21axname(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_21axname = {__Pyx_NAMESTR("axname"), (PyCFunction)__pyx_pf_5gipsy_3Set_21axname, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_21axname(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_axnum = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_axnum1_c;
  fchar __pyx_v_name_c;
  PyObject *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  fint __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__axnum,0};
  __Pyx_RefNannySetupContext("axname");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axnum);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("axname", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "axname") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_axnum = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("axname", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.axname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2204
 *       cdef fchar name_c
 *       cdef bytes result
 *       axnum1_c = axnum+1             # <<<<<<<<<<<<<<
 *       name_c = newfchar(80)
 *       err_c = 0
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_t_1); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_axnum1_c = __pyx_t_2;

  /* "gipsy.pyx":2205
 *       cdef bytes result
 *       axnum1_c = axnum+1
 *       name_c = newfchar(80)             # <<<<<<<<<<<<<<
 *       err_c = 0
 *       gdsc_name_c(name_c, tofchar(self.handle), &axnum1_c, &err_c)
 */
  __pyx_v_name_c = __pyx_f_5gipsy_newfchar(__pyx_int_80);

  /* "gipsy.pyx":2206
 *       axnum1_c = axnum+1
 *       name_c = newfchar(80)
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       gdsc_name_c(name_c, tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2207
 *       name_c = newfchar(80)
 *       err_c = 0
 *       gdsc_name_c(name_c, tofchar(self.handle), &axnum1_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  gdsc_name_c(__pyx_v_name_c, __pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_axnum1_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2208
 *       err_c = 0
 *       gdsc_name_c(name_c, tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       result = name_c.a
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2209
 *       gdsc_name_c(name_c, tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       result = name_c.a
 *       result = result.rstrip()
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2210
 *       if err_c<0:
 *          raiseGds(err_c)
 *       result = name_c.a             # <<<<<<<<<<<<<<
 *       result = result.rstrip()
 *       delfchar(name_c)
 */
  __pyx_t_4 = PyBytes_FromString(__pyx_v_name_c.a); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_v_result = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2211
 *          raiseGds(err_c)
 *       result = name_c.a
 *       result = result.rstrip()             # <<<<<<<<<<<<<<
 *       delfchar(name_c)
 *       return result
 */
  __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_result), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __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)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_v_result));
  __pyx_v_result = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "gipsy.pyx":2212
 *       result = name_c.a
 *       result = result.rstrip()
 *       delfchar(name_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
  __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_name_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2213
 *       result = result.rstrip()
 *       delfchar(name_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def axorigin(self, axnum):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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("gipsy.Set.axname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2215
 *       return result
 * 
 *    def axorigin(self, axnum):             # <<<<<<<<<<<<<<
 * 
 * # Get the origin of axis number axnum.
 */

static PyObject *__pyx_pf_5gipsy_3Set_22axorigin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_22axorigin = {__Pyx_NAMESTR("axorigin"), (PyCFunction)__pyx_pf_5gipsy_3Set_22axorigin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_22axorigin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_axnum = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_axnum1_c;
  double __pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  fint __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__axnum,0};
  __Pyx_RefNannySetupContext("axorigin");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axnum);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("axorigin", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "axorigin") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_axnum = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("axorigin", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.axorigin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2222
 * 
 *       cdef fint  err_c, axnum1_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       axnum1_c = axnum+1
 *       result = gdsc_origin_c(tofchar(self.handle), &axnum1_c, &err_c)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2223
 *       cdef fint  err_c, axnum1_c
 *       err_c = 0
 *       axnum1_c = axnum+1             # <<<<<<<<<<<<<<
 *       result = gdsc_origin_c(tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_t_1); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_axnum1_c = __pyx_t_2;

  /* "gipsy.pyx":2224
 *       err_c = 0
 *       axnum1_c = axnum+1
 *       result = gdsc_origin_c(tofchar(self.handle), &axnum1_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = gdsc_origin_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_axnum1_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2225
 *       axnum1_c = axnum+1
 *       result = gdsc_origin_c(tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2226
 *       result = gdsc_origin_c(tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2227
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def axsize(self, axnum):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.axorigin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2229
 *       return result
 * 
 *    def axsize(self, axnum):             # <<<<<<<<<<<<<<
 * 
 * # Get the length of axis number axnum.
 */

static PyObject *__pyx_pf_5gipsy_3Set_23axsize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_23axsize = {__Pyx_NAMESTR("axsize"), (PyCFunction)__pyx_pf_5gipsy_3Set_23axsize, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_23axsize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_axnum = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_axnum1_c;
  fint __pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  fint __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__axnum,0};
  __Pyx_RefNannySetupContext("axsize");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axnum);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("axsize", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "axsize") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_axnum = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("axsize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.axsize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2236
 * 
 *       cdef fint  err_c, axnum1_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       axnum1_c = axnum+1
 *       result = gdsc_size_c(tofchar(self.handle), &axnum1_c, &err_c)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2237
 *       cdef fint  err_c, axnum1_c
 *       err_c = 0
 *       axnum1_c = axnum+1             # <<<<<<<<<<<<<<
 *       result = gdsc_size_c(tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_t_1); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_axnum1_c = __pyx_t_2;

  /* "gipsy.pyx":2238
 *       err_c = 0
 *       axnum1_c = axnum+1
 *       result = gdsc_size_c(tofchar(self.handle), &axnum1_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = gdsc_size_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_axnum1_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2239
 *       axnum1_c = axnum+1
 *       result = gdsc_size_c(tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2240
 *       result = gdsc_size_c(tofchar(self.handle), &axnum1_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2241
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def range(self, subset):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.axsize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2243
 *       return result
 * 
 *    def range(self, subset):             # <<<<<<<<<<<<<<
 * #
 * # Get the range (as a 2-tuple) of a subset given as a coordinate word.
 */

static PyObject *__pyx_pf_5gipsy_3Set_24range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_24range = {__Pyx_NAMESTR("range"), (PyCFunction)__pyx_pf_5gipsy_3Set_24range, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_24range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_subset = 0;
  fint __pyx_v_subset_c;
  fint __pyx_v_low_c;
  fint __pyx_v_upp_c;
  fint __pyx_v_err_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__subset,0};
  __Pyx_RefNannySetupContext("range");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("range", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "range") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_subset = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("range", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2249
 * #
 *       cdef fint subset_c, low_c, upp_c, err_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       subset_c = subset
 *       gdsc_range_c(tofchar(self.handle), &subset_c, &low_c, &upp_c, &err_c)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2250
 *       cdef fint subset_c, low_c, upp_c, err_c
 *       err_c = 0
 *       subset_c = subset             # <<<<<<<<<<<<<<
 *       gdsc_range_c(tofchar(self.handle), &subset_c, &low_c, &upp_c, &err_c)
 *       if err_c<0:
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_subset); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_subset_c = __pyx_t_1;

  /* "gipsy.pyx":2251
 *       err_c = 0
 *       subset_c = subset
 *       gdsc_range_c(tofchar(self.handle), &subset_c, &low_c, &upp_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  gdsc_range_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), (&__pyx_v_subset_c), (&__pyx_v_low_c), (&__pyx_v_upp_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2252
 *       subset_c = subset
 *       gdsc_range_c(tofchar(self.handle), &subset_c, &low_c, &upp_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return (low_c, upp_c)
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2253
 *       gdsc_range_c(tofchar(self.handle), &subset_c, &low_c, &upp_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return (low_c, upp_c)
 * 
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2254
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return (low_c, upp_c)             # <<<<<<<<<<<<<<
 * 
 *    def grid(self, axnum, cword):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_low_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_upp_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_r = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.Set.range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2256
 *       return (low_c, upp_c)
 * 
 *    def grid(self, axnum, cword):             # <<<<<<<<<<<<<<
 * 
 * # Extract a grid value from a coordinate word.
 */

static PyObject *__pyx_pf_5gipsy_3Set_25grid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_25grid = {__Pyx_NAMESTR("grid"), (PyCFunction)__pyx_pf_5gipsy_3Set_25grid, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_25grid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_axnum = 0;
  PyObject *__pyx_v_cword = 0;
  fint __pyx_v_axnum1_c;
  fint __pyx_v_cword_c;
  fint __pyx_v_err_c;
  fint __pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  fint __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__axnum,&__pyx_n_s__cword,0};
  __Pyx_RefNannySetupContext("grid");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axnum);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("grid", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2256; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cword);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("grid", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2256; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "grid") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2256; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_axnum = values[1];
    __pyx_v_cword = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("grid", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2256; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.grid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2262
 * 
 *       cdef fint axnum1_c, cword_c, err_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       axnum1_c = axnum+1
 *       cword_c = cword
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2263
 *       cdef fint axnum1_c, cword_c, err_c
 *       err_c = 0
 *       axnum1_c = axnum+1             # <<<<<<<<<<<<<<
 *       cword_c = cword
 *       result = gdsc_grid_c(tofchar(self.handle), &axnum1_c, &cword_c, &err_c)
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_t_1); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_axnum1_c = __pyx_t_2;

  /* "gipsy.pyx":2264
 *       err_c = 0
 *       axnum1_c = axnum+1
 *       cword_c = cword             # <<<<<<<<<<<<<<
 *       result = gdsc_grid_c(tofchar(self.handle), &axnum1_c, &cword_c, &err_c)
 *       if err_c==-19:
 */
  __pyx_t_2 = __Pyx_PyInt_from_py_fint(__pyx_v_cword); if (unlikely((__pyx_t_2 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_cword_c = __pyx_t_2;

  /* "gipsy.pyx":2265
 *       axnum1_c = axnum+1
 *       cword_c = cword
 *       result = gdsc_grid_c(tofchar(self.handle), &axnum1_c, &cword_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c==-19:
 *          return None
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = gdsc_grid_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_axnum1_c), (&__pyx_v_cword_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2266
 *       cword_c = cword
 *       result = gdsc_grid_c(tofchar(self.handle), &axnum1_c, &cword_c, &err_c)
 *       if err_c==-19:             # <<<<<<<<<<<<<<
 *          return None
 *       if err_c<0:
 */
  __pyx_t_3 = (__pyx_v_err_c == -19);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2267
 *       result = gdsc_grid_c(tofchar(self.handle), &axnum1_c, &cword_c, &err_c)
 *       if err_c==-19:
 *          return None             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2268
 *       if err_c==-19:
 *          return None
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2269
 *          return None
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "gipsy.pyx":2270
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def grids(self, cword):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.grid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2272
 *       return result
 * 
 *    def grids(self, cword):             # <<<<<<<<<<<<<<
 *       "Extract all grid values from a coordinate word."
 *       result = []
 */

static PyObject *__pyx_pf_5gipsy_3Set_26grids(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_26grids[] = "Extract all grid values from a coordinate word.";
static PyMethodDef __pyx_mdef_5gipsy_3Set_26grids = {__Pyx_NAMESTR("grids"), (PyCFunction)__pyx_pf_5gipsy_3Set_26grids, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_26grids)};
static PyObject *__pyx_pf_5gipsy_3Set_26grids(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_cword = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_axnum = 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 *);
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__cword,0};
  __Pyx_RefNannySetupContext("grids");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("grids", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "grids") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_cword = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("grids", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.grids", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2274
 *    def grids(self, cword):
 *       "Extract all grid values from a coordinate word."
 *       result = []             # <<<<<<<<<<<<<<
 *       for axnum in range(self.naxis):
 *          result.append(self.grid(axnum, cword))
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2275
 *       "Extract all grid values from a coordinate word."
 *       result = []
 *       for axnum in range(self.naxis):             # <<<<<<<<<<<<<<
 *          result.append(self.grid(axnum, cword))
 *       return result
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (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_filename = __pyx_f[0]; __pyx_lineno = 2275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_axnum);
    __pyx_v_axnum = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2276
 *       result = []
 *       for axnum in range(self.naxis):
 *          result.append(self.grid(axnum, cword))             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __Pyx_INCREF(__pyx_v_axnum);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_axnum);
    __Pyx_GIVEREF(__pyx_v_axnum);
    __Pyx_INCREF(__pyx_v_cword);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_cword);
    __Pyx_GIVEREF(__pyx_v_cword);
    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_7 = PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2277
 *       for axnum in range(self.naxis):
 *          result.append(self.grid(axnum, cword))
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def word(self, grids, cword=0, axnum=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("gipsy.Set.grids", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_axnum);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2279
 *       return result
 * 
 *    def word(self, grids, cword=0, axnum=None):             # <<<<<<<<<<<<<<
 *       cdef fint cword_c=cword, grid_c, axnum_c, err_c=0
 *       if axnum is None:
 */

static PyObject *__pyx_pf_5gipsy_3Set_27word(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_27word = {__Pyx_NAMESTR("word"), (PyCFunction)__pyx_pf_5gipsy_3Set_27word, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_27word(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_grids = 0;
  PyObject *__pyx_v_cword = 0;
  PyObject *__pyx_v_axnum = 0;
  fint __pyx_v_cword_c;
  fint __pyx_v_grid_c;
  fint __pyx_v_axnum_c;
  fint __pyx_v_err_c;
  PyObject *__pyx_v_grid = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__grids,&__pyx_n_s__cword,&__pyx_n_s__axnum,0};
  __Pyx_RefNannySetupContext("word");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__grids);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("word", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cword);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axnum);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "word") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_grids = values[1];
    __pyx_v_cword = values[2];
    __pyx_v_axnum = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("word", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.word", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_axnum);

  /* "gipsy.pyx":2280
 * 
 *    def word(self, grids, cword=0, axnum=None):
 *       cdef fint cword_c=cword, grid_c, axnum_c, err_c=0             # <<<<<<<<<<<<<<
 *       if axnum is None:
 *          for axnum, grid in enumerate(grids):
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_cword); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_cword_c = __pyx_t_1;
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2281
 *    def word(self, grids, cword=0, axnum=None):
 *       cdef fint cword_c=cword, grid_c, axnum_c, err_c=0
 *       if axnum is None:             # <<<<<<<<<<<<<<
 *          for axnum, grid in enumerate(grids):
 *             if grid is not None:
 */
  __pyx_t_2 = (__pyx_v_axnum == Py_None);
  if (__pyx_t_2) {

    /* "gipsy.pyx":2282
 *       cdef fint cword_c=cword, grid_c, axnum_c, err_c=0
 *       if axnum is None:
 *          for axnum, grid in enumerate(grids):             # <<<<<<<<<<<<<<
 *             if grid is not None:
 *                grid_c = grid
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_3 = __pyx_int_0;
    if (PyList_CheckExact(__pyx_v_grids) || PyTuple_CheckExact(__pyx_v_grids)) {
      __pyx_t_4 = __pyx_v_grids; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_grids); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
      } else if (PyTuple_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
      } else {
        __pyx_t_7 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_7)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF(__pyx_v_grid);
      __pyx_v_grid = __pyx_t_7;
      __pyx_t_7 = 0;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_v_axnum);
      __pyx_v_axnum = __pyx_t_3;
      __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_3 = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "gipsy.pyx":2283
 *       if axnum is None:
 *          for axnum, grid in enumerate(grids):
 *             if grid is not None:             # <<<<<<<<<<<<<<
 *                grid_c = grid
 *                axnum_c = axnum+1
 */
      __pyx_t_2 = (__pyx_v_grid != Py_None);
      if (__pyx_t_2) {

        /* "gipsy.pyx":2284
 *          for axnum, grid in enumerate(grids):
 *             if grid is not None:
 *                grid_c = grid             # <<<<<<<<<<<<<<
 *                axnum_c = axnum+1
 *                cword_c = gdsc_word_c(tofchar(self.handle),
 */
        __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_grid); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_v_grid_c = __pyx_t_1;

        /* "gipsy.pyx":2285
 *             if grid is not None:
 *                grid_c = grid
 *                axnum_c = axnum+1             # <<<<<<<<<<<<<<
 *                cword_c = gdsc_word_c(tofchar(self.handle),
 *                                      &axnum_c, &grid_c, &cword_c, &err_c)
 */
        __pyx_t_7 = PyNumber_Add(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_t_7); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_axnum_c = __pyx_t_1;

        /* "gipsy.pyx":2286
 *                grid_c = grid
 *                axnum_c = axnum+1
 *                cword_c = gdsc_word_c(tofchar(self.handle),             # <<<<<<<<<<<<<<
 *                                      &axnum_c, &grid_c, &cword_c, &err_c)
 *                if err_c:
 */
        __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);

        /* "gipsy.pyx":2287
 *                axnum_c = axnum+1
 *                cword_c = gdsc_word_c(tofchar(self.handle),
 *                                      &axnum_c, &grid_c, &cword_c, &err_c)             # <<<<<<<<<<<<<<
 *                if err_c:
 *                   raiseGds(err_c)
 */
        __pyx_v_cword_c = gdsc_word_c(__pyx_f_5gipsy_tofchar(__pyx_t_7), (&__pyx_v_axnum_c), (&__pyx_v_grid_c), (&__pyx_v_cword_c), (&__pyx_v_err_c));
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "gipsy.pyx":2288
 *                cword_c = gdsc_word_c(tofchar(self.handle),
 *                                      &axnum_c, &grid_c, &cword_c, &err_c)
 *                if err_c:             # <<<<<<<<<<<<<<
 *                   raiseGds(err_c)
 *       else:
 */
        if (__pyx_v_err_c) {

          /* "gipsy.pyx":2289
 *                                      &axnum_c, &grid_c, &cword_c, &err_c)
 *                if err_c:
 *                   raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       else:
 *          grid_c = grids
 */
          __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_9));
          PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          __pyx_t_8 = 0;
          __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          goto __pyx_L10;
        }
        __pyx_L10:;
        goto __pyx_L9;
      }
      __pyx_L9:;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2291
 *                   raiseGds(err_c)
 *       else:
 *          grid_c = grids             # <<<<<<<<<<<<<<
 *          axnum_c = axnum+1
 *          cword_c = gdsc_word_c(tofchar(self.handle),
 */
    __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_grids); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_grid_c = __pyx_t_1;

    /* "gipsy.pyx":2292
 *       else:
 *          grid_c = grids
 *          axnum_c = axnum+1             # <<<<<<<<<<<<<<
 *          cword_c = gdsc_word_c(tofchar(self.handle),
 *                                &axnum_c, &grid_c, &cword_c, &err_c)
 */
    __pyx_t_3 = PyNumber_Add(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_axnum_c = __pyx_t_1;

    /* "gipsy.pyx":2293
 *          grid_c = grids
 *          axnum_c = axnum+1
 *          cword_c = gdsc_word_c(tofchar(self.handle),             # <<<<<<<<<<<<<<
 *                                &axnum_c, &grid_c, &cword_c, &err_c)
 *          if err_c:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "gipsy.pyx":2294
 *          axnum_c = axnum+1
 *          cword_c = gdsc_word_c(tofchar(self.handle),
 *                                &axnum_c, &grid_c, &cword_c, &err_c)             # <<<<<<<<<<<<<<
 *          if err_c:
 *             raiseGds(err_c)
 */
    __pyx_v_cword_c = gdsc_word_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_axnum_c), (&__pyx_v_grid_c), (&__pyx_v_cword_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2295
 *          cword_c = gdsc_word_c(tofchar(self.handle),
 *                                &axnum_c, &grid_c, &cword_c, &err_c)
 *          if err_c:             # <<<<<<<<<<<<<<
 *             raiseGds(err_c)
 *       return cword_c
 */
    if (__pyx_v_err_c) {

      /* "gipsy.pyx":2296
 *                                &axnum_c, &grid_c, &cword_c, &err_c)
 *          if err_c:
 *             raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return cword_c
 * 
 */
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L11;
    }
    __pyx_L11:;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2297
 *          if err_c:
 *             raiseGds(err_c)
 *       return cword_c             # <<<<<<<<<<<<<<
 * 
 *    def ndims(self, level=0, subset=False):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_cword_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("gipsy.Set.word", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_grid);
  __Pyx_XDECREF(__pyx_v_axnum);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2299
 *       return cword_c
 * 
 *    def ndims(self, level=0, subset=False):             # <<<<<<<<<<<<<<
 * 
 * # Obtain the dimensionality of a coordinate word.
 */

static PyObject *__pyx_pf_5gipsy_3Set_28ndims(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_28ndims = {__Pyx_NAMESTR("ndims"), (PyCFunction)__pyx_pf_5gipsy_3Set_28ndims, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_28ndims(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_subset = 0;
  fint __pyx_v_level_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  fint __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__level,&__pyx_n_s__subset,0};
  __Pyx_RefNannySetupContext("ndims");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = __pyx_k_154;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ndims") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2299; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_level = values[1];
    __pyx_v_subset = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ndims", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2299; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.ndims", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2307
 * 
 *       cdef fint level_c
 *       if subset:             # <<<<<<<<<<<<<<
 *          level_c = self.subsets[0]
 *       else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_subset); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":2308
 *       cdef fint level_c
 *       if subset:
 *          level_c = self.subsets[0]             # <<<<<<<<<<<<<<
 *       else:
 *          level_c = level
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_level_c = __pyx_t_4;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2310
 *          level_c = self.subsets[0]
 *       else:
 *          level_c = level             # <<<<<<<<<<<<<<
 *       return gdsc_ndims_c(tofchar(self.handle), &level_c)
 * 
 */
    __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_level_c = __pyx_t_4;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2311
 *       else:
 *          level_c = level
 *       return gdsc_ndims_c(tofchar(self.handle), &level_c)             # <<<<<<<<<<<<<<
 * 
 *    def type(self, name, level=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(gdsc_ndims_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_level_c))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2311; __pyx_clineno = __LINE__; goto __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;

  __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_AddTraceback("gipsy.Set.ndims", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2313
 *       return gdsc_ndims_c(tofchar(self.handle), &level_c)
 * 
 *    def type(self, name, level=0):             # <<<<<<<<<<<<<<
 * 
 * # Obtain FITS descriptor item type.
 */

static PyObject *__pyx_pf_5gipsy_3Set_29type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_29type = {__Pyx_NAMESTR("type"), (PyCFunction)__pyx_pf_5gipsy_3Set_29type, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_29type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_level = 0;
  fint __pyx_v_level_c;
  fint __pyx_v_err_c;
  fchar __pyx_v_result_c;
  char *__pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("type");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("type", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "type") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_level = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("type", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2320
 *       cdef fint  level_c, err_c
 *       cdef fchar result_c
 *       result_c = newfchar(80)             # <<<<<<<<<<<<<<
 *       level_c = level
 *       err_c = 0
 */
  __pyx_v_result_c = __pyx_f_5gipsy_newfchar(__pyx_int_80);

  /* "gipsy.pyx":2321
 *       cdef fchar result_c
 *       result_c = newfchar(80)
 *       level_c = level             # <<<<<<<<<<<<<<
 *       err_c = 0
 *       gdsd_type_c(result_c, tofchar(self.handle), tofchar(name),
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_1;

  /* "gipsy.pyx":2322
 *       result_c = newfchar(80)
 *       level_c = level
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       gdsd_type_c(result_c, tofchar(self.handle), tofchar(name),
 *                   &level_c, &err_c)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2323
 *       level_c = level
 *       err_c = 0
 *       gdsd_type_c(result_c, tofchar(self.handle), tofchar(name),             # <<<<<<<<<<<<<<
 *                   &level_c, &err_c)
 *       if err_c<0:
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "gipsy.pyx":2324
 *       err_c = 0
 *       gdsd_type_c(result_c, tofchar(self.handle), tofchar(name),
 *                   &level_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gdsd_type_c(__pyx_v_result_c, __pyx_f_5gipsy_tofchar(__pyx_t_2), __pyx_f_5gipsy_tofchar(__pyx_v_name), (&__pyx_v_level_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2325
 *       gdsd_type_c(result_c, tofchar(self.handle), tofchar(name),
 *                   &level_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       else:
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2326
 *                   &level_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       else:
 *          self.level = err_c
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2328
 *          raiseGds(err_c)
 *       else:
 *          self.level = err_c             # <<<<<<<<<<<<<<
 *       result = result_c.a
 *       return result.rstrip()
 */
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__level, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2329
 *       else:
 *          self.level = err_c
 *       result = result_c.a             # <<<<<<<<<<<<<<
 *       return result.rstrip()
 * 
 */
  __pyx_v_result = __pyx_v_result_c.a;

  /* "gipsy.pyx":2330
 *          self.level = err_c
 *       result = result_c.a
 *       return result.rstrip()             # <<<<<<<<<<<<<<
 * 
 *    def __rhead(self, name, level=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyBytes_FromString(__pyx_v_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_t_4), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.Set.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2332
 *       return result.rstrip()
 * 
 *    def __rhead(self, name, level=0):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fchar handle_c, name_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_30__rhead(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_30__rhead[] = "(internal method)";
static PyMethodDef __pyx_mdef_5gipsy_3Set_30__rhead = {__Pyx_NAMESTR("__rhead"), (PyCFunction)__pyx_pf_5gipsy_3Set_30__rhead, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_30__rhead)};
static PyObject *__pyx_pf_5gipsy_3Set_30__rhead(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_level = 0;
  fchar __pyx_v_handle_c;
  fchar __pyx_v_name_c;
  fint __pyx_v_level_c;
  fint __pyx_v_err_c;
  float __pyx_v_real_c;
  double __pyx_v_dble_c;
  fint __pyx_v_int_c;
  bool __pyx_v_log_c;
  fchar __pyx_v_char_c;
  PyObject *__pyx_v_result = 0;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_e = 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;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  fint __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("__rhead");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__rhead", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__rhead") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_level = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__rhead", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__rhead", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_name);

  /* "gipsy.pyx":2342
 *       cdef fchar char_c
 *       cdef object result
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       name = name.upper()
 *       try:
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2343
 *       cdef object result
 *       err_c = 0
 *       name = name.upper()             # <<<<<<<<<<<<<<
 *       try:
 *          t = self.type(name, level)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_name);
  __pyx_v_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2344
 *       err_c = 0
 *       name = name.upper()
 *       try:             # <<<<<<<<<<<<<<
 *          t = self.type(name, level)
 *       except GdsError, e:
 */
  {
    __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:*/ {

      /* "gipsy.pyx":2345
 *       name = name.upper()
 *       try:
 *          t = self.type(name, level)             # <<<<<<<<<<<<<<
 *       except GdsError, e:
 *          if e.errno != -3:
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __Pyx_INCREF(__pyx_v_level);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_level);
      __Pyx_GIVEREF(__pyx_v_level);
      __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_v_t = __pyx_t_6;
      __pyx_t_6 = 0;
    }
    __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_L13_try_end;
    __pyx_L6_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "gipsy.pyx":2346
 *       try:
 *          t = self.type(name, level)
 *       except GdsError, e:             # <<<<<<<<<<<<<<
 *          if e.errno != -3:
 *             raise
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2346; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {
      __Pyx_AddTraceback("gipsy.Set.__rhead", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2346; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_v_e = __pyx_t_1;

      /* "gipsy.pyx":2347
 *          t = self.type(name, level)
 *       except GdsError, e:
 *          if e.errno != -3:             # <<<<<<<<<<<<<<
 *             raise
 *          raise KeyError("'%s', level %d" % (name, level))
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_e, __pyx_n_s__errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_int_neg_3, Py_NE); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (__pyx_t_10) {

        /* "gipsy.pyx":2348
 *       except GdsError, e:
 *          if e.errno != -3:
 *             raise             # <<<<<<<<<<<<<<
 *          raise KeyError("'%s', level %d" % (name, level))
 *       handle_c = tofchar(self.handle)
 */
        __Pyx_GIVEREF(__pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_ErrRestore(__pyx_t_6, __pyx_t_1, __pyx_t_2);
        __pyx_t_6 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; 
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2348; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
        goto __pyx_L16;
      }
      __pyx_L16:;

      /* "gipsy.pyx":2349
 *          if e.errno != -3:
 *             raise
 *          raise KeyError("'%s', level %d" % (name, level))             # <<<<<<<<<<<<<<
 *       handle_c = tofchar(self.handle)
 *       name_c = tofchar(name)
 */
      __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __Pyx_INCREF(__pyx_v_level);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_level);
      __Pyx_GIVEREF(__pyx_v_level);
      __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_155), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_t_8));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_8));
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L7_exception_handled;
    }
    __pyx_L8_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_exception_handled:;
    __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);
    __pyx_L13_try_end:;
  }

  /* "gipsy.pyx":2350
 *             raise
 *          raise KeyError("'%s', level %d" % (name, level))
 *       handle_c = tofchar(self.handle)             # <<<<<<<<<<<<<<
 *       name_c = tofchar(name)
 *       level_c = level
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_handle_c = __pyx_f_5gipsy_tofchar(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2351
 *          raise KeyError("'%s', level %d" % (name, level))
 *       handle_c = tofchar(self.handle)
 *       name_c = tofchar(name)             # <<<<<<<<<<<<<<
 *       level_c = level
 *       if t=='REAL':
 */
  __pyx_v_name_c = __pyx_f_5gipsy_tofchar(__pyx_v_name);

  /* "gipsy.pyx":2352
 *       handle_c = tofchar(self.handle)
 *       name_c = tofchar(name)
 *       level_c = level             # <<<<<<<<<<<<<<
 *       if t=='REAL':
 *          gdsd_rreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 */
  __pyx_t_11 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_11 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_11;

  /* "gipsy.pyx":2353
 *       name_c = tofchar(name)
 *       level_c = level
 *       if t=='REAL':             # <<<<<<<<<<<<<<
 *          gdsd_rreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 *          result = real_c
 */
  __pyx_t_10 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__REAL), Py_EQ); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_10) {

    /* "gipsy.pyx":2354
 *       level_c = level
 *       if t=='REAL':
 *          gdsd_rreal_c(handle_c, name_c, &level_c, &real_c, &err_c)             # <<<<<<<<<<<<<<
 *          result = real_c
 *       elif t=='DBLE':
 */
    gdsd_rreal_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_real_c), (&__pyx_v_err_c));

    /* "gipsy.pyx":2355
 *       if t=='REAL':
 *          gdsd_rreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 *          result = real_c             # <<<<<<<<<<<<<<
 *       elif t=='DBLE':
 *          gdsd_rdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 */
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_real_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L17;
  }

  /* "gipsy.pyx":2356
 *          gdsd_rreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 *          result = real_c
 *       elif t=='DBLE':             # <<<<<<<<<<<<<<
 *          gdsd_rdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 *          result = dble_c
 */
  __pyx_t_10 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__DBLE), Py_EQ); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_10) {

    /* "gipsy.pyx":2357
 *          result = real_c
 *       elif t=='DBLE':
 *          gdsd_rdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)             # <<<<<<<<<<<<<<
 *          result = dble_c
 *       elif t=='INT':
 */
    gdsd_rdble_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_dble_c), (&__pyx_v_err_c));

    /* "gipsy.pyx":2358
 *       elif t=='DBLE':
 *          gdsd_rdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 *          result = dble_c             # <<<<<<<<<<<<<<
 *       elif t=='INT':
 *          gdsd_rint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 */
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dble_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L17;
  }

  /* "gipsy.pyx":2359
 *          gdsd_rdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 *          result = dble_c
 *       elif t=='INT':             # <<<<<<<<<<<<<<
 *          gdsd_rint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 *          result = int_c
 */
  __pyx_t_10 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__INT), Py_EQ); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_10) {

    /* "gipsy.pyx":2360
 *          result = dble_c
 *       elif t=='INT':
 *          gdsd_rint_c(handle_c, name_c, &level_c, &int_c, &err_c)             # <<<<<<<<<<<<<<
 *          result = int_c
 *       elif t=='LOG':
 */
    gdsd_rint_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_int_c), (&__pyx_v_err_c));

    /* "gipsy.pyx":2361
 *       elif t=='INT':
 *          gdsd_rint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 *          result = int_c             # <<<<<<<<<<<<<<
 *       elif t=='LOG':
 *          gdsd_rlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 */
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_int_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L17;
  }

  /* "gipsy.pyx":2362
 *          gdsd_rint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 *          result = int_c
 *       elif t=='LOG':             # <<<<<<<<<<<<<<
 *          gdsd_rlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 *          result = log_c!=0
 */
  __pyx_t_10 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__LOG), Py_EQ); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_10) {

    /* "gipsy.pyx":2363
 *          result = int_c
 *       elif t=='LOG':
 *          gdsd_rlog_c(handle_c, name_c, &level_c, &log_c, &err_c)             # <<<<<<<<<<<<<<
 *          result = log_c!=0
 *       elif t=='CHAR':
 */
    gdsd_rlog_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_log_c), (&__pyx_v_err_c));

    /* "gipsy.pyx":2364
 *       elif t=='LOG':
 *          gdsd_rlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 *          result = log_c!=0             # <<<<<<<<<<<<<<
 *       elif t=='CHAR':
 *          char_c = newfchar(80)
 */
    __pyx_t_2 = __Pyx_PyBool_FromLong((__pyx_v_log_c != 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_result = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L17;
  }

  /* "gipsy.pyx":2365
 *          gdsd_rlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 *          result = log_c!=0
 *       elif t=='CHAR':             # <<<<<<<<<<<<<<
 *          char_c = newfchar(80)
 *          gdsd_rchar_c(handle_c, name_c, &level_c, char_c, &err_c)
 */
  __pyx_t_10 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__CHAR), Py_EQ); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_10) {

    /* "gipsy.pyx":2366
 *          result = log_c!=0
 *       elif t=='CHAR':
 *          char_c = newfchar(80)             # <<<<<<<<<<<<<<
 *          gdsd_rchar_c(handle_c, name_c, &level_c, char_c, &err_c)
 *          result = char_c.a
 */
    __pyx_v_char_c = __pyx_f_5gipsy_newfchar(__pyx_int_80);

    /* "gipsy.pyx":2367
 *       elif t=='CHAR':
 *          char_c = newfchar(80)
 *          gdsd_rchar_c(handle_c, name_c, &level_c, char_c, &err_c)             # <<<<<<<<<<<<<<
 *          result = char_c.a
 *          result = result.rstrip()
 */
    gdsd_rchar_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), __pyx_v_char_c, (&__pyx_v_err_c));

    /* "gipsy.pyx":2368
 *          char_c = newfchar(80)
 *          gdsd_rchar_c(handle_c, name_c, &level_c, char_c, &err_c)
 *          result = char_c.a             # <<<<<<<<<<<<<<
 *          result = result.rstrip()
 *          delfchar(char_c)
 */
    __pyx_t_2 = PyBytes_FromString(__pyx_v_char_c.a); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_v_result = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2369
 *          gdsd_rchar_c(handle_c, name_c, &level_c, char_c, &err_c)
 *          result = char_c.a
 *          result = result.rstrip()             # <<<<<<<<<<<<<<
 *          delfchar(char_c)
 *          result = result
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_result, __pyx_n_s__rstrip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_result);
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2370
 *          result = char_c.a
 *          result = result.rstrip()
 *          delfchar(char_c)             # <<<<<<<<<<<<<<
 *          result = result
 *       else:
 */
    __pyx_t_1 = __pyx_f_5gipsy_delfchar(__pyx_v_char_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":2371
 *          result = result.rstrip()
 *          delfchar(char_c)
 *          result = result             # <<<<<<<<<<<<<<
 *       else:
 *          raise GdsError(-1, "Unknown type in item %s" % name)
 */
    __Pyx_INCREF(__pyx_v_result);
    __Pyx_DECREF(__pyx_v_result);
    __pyx_v_result = __pyx_v_result;
    goto __pyx_L17;
  }
  /*else*/ {

    /* "gipsy.pyx":2373
 *          result = result
 *       else:
 *          raise GdsError(-1, "Unknown type in item %s" % name)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raise KeyError("'%s', level %d" % (name, level))
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_156), __pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_neg_1);
    __Pyx_GIVEREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_2));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L17:;

  /* "gipsy.pyx":2374
 *       else:
 *          raise GdsError(-1, "Unknown type in item %s" % name)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raise KeyError("'%s', level %d" % (name, level))
 *       else:
 */
  __pyx_t_10 = (__pyx_v_err_c < 0);
  if (__pyx_t_10) {

    /* "gipsy.pyx":2375
 *          raise GdsError(-1, "Unknown type in item %s" % name)
 *       if err_c<0:
 *          raise KeyError("'%s', level %d" % (name, level))             # <<<<<<<<<<<<<<
 *       else:
 *          self.level = err_c
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_level);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_level);
    __Pyx_GIVEREF(__pyx_v_level);
    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_155), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_6));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L18;
  }
  /*else*/ {

    /* "gipsy.pyx":2377
 *          raise KeyError("'%s', level %d" % (name, level))
 *       else:
 *          self.level = err_c             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    __pyx_t_6 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__level, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_L18:;

  /* "gipsy.pyx":2378
 *       else:
 *          self.level = err_c
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def __whead(self, name, level, value, kind=""):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("gipsy.Set.__rhead", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2380
 *       return result
 * 
 *    def __whead(self, name, level, value, kind=""):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fchar handle_c, name_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_31__whead(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_31__whead[] = "(internal method)";
static PyMethodDef __pyx_mdef_5gipsy_3Set_31__whead = {__Pyx_NAMESTR("__whead"), (PyCFunction)__pyx_pf_5gipsy_3Set_31__whead, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_31__whead)};
static PyObject *__pyx_pf_5gipsy_3Set_31__whead(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_kind = 0;
  fchar __pyx_v_handle_c;
  fchar __pyx_v_name_c;
  fint __pyx_v_level_c;
  fint __pyx_v_err_c;
  float __pyx_v_real_c;
  double __pyx_v_dble_c;
  fint __pyx_v_int_c;
  bool __pyx_v_log_c;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_axnum = NULL;
  long __pyx_v_err;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  fint __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __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;
  double __pyx_t_13;
  float __pyx_t_14;
  bool __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__level,&__pyx_n_s__value,&__pyx_n_s__kind,0};
  __Pyx_RefNannySetupContext("__whead");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[4] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__whead", 0, 4, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__whead", 0, 4, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__whead", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__kind);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__whead") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_level = values[2];
    __pyx_v_value = values[3];
    __pyx_v_kind = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__whead", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__whead", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_INCREF(__pyx_v_value);
  __Pyx_INCREF(__pyx_v_kind);

  /* "gipsy.pyx":2389
 *       cdef bool  log_c
 *       cdef fchar char_c
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       name = name.upper()
 *       t = type(value)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2389; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2390
 *       cdef fchar char_c
 *       self.__wcheck()
 *       name = name.upper()             # <<<<<<<<<<<<<<
 *       t = type(value)
 *       handle_c = tofchar(self.handle)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__upper); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_name);
  __pyx_v_name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2391
 *       self.__wcheck()
 *       name = name.upper()
 *       t = type(value)             # <<<<<<<<<<<<<<
 *       handle_c = tofchar(self.handle)
 *       name_c = tofchar(name)
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_value)));
  __pyx_v_t = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_value)));

  /* "gipsy.pyx":2392
 *       name = name.upper()
 *       t = type(value)
 *       handle_c = tofchar(self.handle)             # <<<<<<<<<<<<<<
 *       name_c = tofchar(name)
 *       level_c = level
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle_c = __pyx_f_5gipsy_tofchar(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2393
 *       t = type(value)
 *       handle_c = tofchar(self.handle)
 *       name_c = tofchar(name)             # <<<<<<<<<<<<<<
 *       level_c = level
 *       err_c = 0
 */
  __pyx_v_name_c = __pyx_f_5gipsy_tofchar(__pyx_v_name);

  /* "gipsy.pyx":2394
 *       handle_c = tofchar(self.handle)
 *       name_c = tofchar(name)
 *       level_c = level             # <<<<<<<<<<<<<<
 *       err_c = 0
 * #                                             check validity of special item
 */
  __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_3;

  /* "gipsy.pyx":2395
 *       name_c = tofchar(name)
 *       level_c = level
 *       err_c = 0             # <<<<<<<<<<<<<<
 * #                                             check validity of special item
 *       if name[:5] in ['CTYPE', 'CRVAL', 'CDELT', 'CRPIX', 'CROTA',
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2397
 *       err_c = 0
 * #                                             check validity of special item
 *       if name[:5] in ['CTYPE', 'CRVAL', 'CDELT', 'CRPIX', 'CROTA',             # <<<<<<<<<<<<<<
 *                       'DTYPE', 'DRVAL', 'DDELT', 'DRPIX', 'DROTA', 'NAXIS']:
 *          if name[:5]=='NAXIS':
 */
  __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_name, 0, 5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__CTYPE), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!((int)__pyx_t_4)) {
    __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__CRVAL), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = ((int)__pyx_t_5);
  } else {
    __pyx_t_6 = ((int)__pyx_t_4);
  }
  if (!__pyx_t_6) {
    __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__CDELT), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = ((int)__pyx_t_4);
  } else {
    __pyx_t_5 = __pyx_t_6;
  }
  if (!__pyx_t_5) {
    __pyx_t_6 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__CRPIX), Py_EQ); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = ((int)__pyx_t_6);
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (!__pyx_t_4) {
    __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__CROTA), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = ((int)__pyx_t_5);
  } else {
    __pyx_t_6 = __pyx_t_4;
  }
  if (!__pyx_t_6) {
    __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__DTYPE), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = ((int)__pyx_t_4);
  } else {
    __pyx_t_5 = __pyx_t_6;
  }
  if (!__pyx_t_5) {
    __pyx_t_6 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__DRVAL), Py_EQ); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = ((int)__pyx_t_6);
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (!__pyx_t_4) {
    __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__DDELT), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = ((int)__pyx_t_5);
  } else {
    __pyx_t_6 = __pyx_t_4;
  }
  if (!__pyx_t_6) {
    __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__DRPIX), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = ((int)__pyx_t_4);
  } else {
    __pyx_t_5 = __pyx_t_6;
  }
  if (!__pyx_t_5) {
    __pyx_t_6 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__DROTA), Py_EQ); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = ((int)__pyx_t_6);
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (!__pyx_t_4) {
    __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__NAXIS), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_6 = ((int)__pyx_t_5);
  } else {
    __pyx_t_6 = __pyx_t_4;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __pyx_t_6;
  if (__pyx_t_4) {

    /* "gipsy.pyx":2399
 *       if name[:5] in ['CTYPE', 'CRVAL', 'CDELT', 'CRPIX', 'CROTA',
 *                       'DTYPE', 'DRVAL', 'DDELT', 'DRPIX', 'DROTA', 'NAXIS']:
 *          if name[:5]=='NAXIS':             # <<<<<<<<<<<<<<
 *             raise GdsError(-1, 'cannot change NAXIS items')
 *          if level:
 */
    __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_name, 0, 5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__NAXIS), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_4) {

      /* "gipsy.pyx":2400
 *                       'DTYPE', 'DRVAL', 'DDELT', 'DRPIX', 'DROTA', 'NAXIS']:
 *          if name[:5]=='NAXIS':
 *             raise GdsError(-1, 'cannot change NAXIS items')             # <<<<<<<<<<<<<<
 *          if level:
 *             raise GdsError(-1, 'special headers on top level only')
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_158), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2400; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 2400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L7;
    }
    __pyx_L7:;

    /* "gipsy.pyx":2401
 *          if name[:5]=='NAXIS':
 *             raise GdsError(-1, 'cannot change NAXIS items')
 *          if level:             # <<<<<<<<<<<<<<
 *             raise GdsError(-1, 'special headers on top level only')
 *          try:
 */
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_level); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_4) {

      /* "gipsy.pyx":2402
 *             raise GdsError(-1, 'cannot change NAXIS items')
 *          if level:
 *             raise GdsError(-1, 'special headers on top level only')             # <<<<<<<<<<<<<<
 *          try:
 *             axnum = int(name[5:])
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_160), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2402; __pyx_clineno = __LINE__; goto __pyx_L1_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_filename = __pyx_f[0]; __pyx_lineno = 2402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L8;
    }
    __pyx_L8:;

    /* "gipsy.pyx":2403
 *          if level:
 *             raise GdsError(-1, 'special headers on top level only')
 *          try:             # <<<<<<<<<<<<<<
 *             axnum = int(name[5:])
 *          except:
 */
    {
      __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:*/ {

        /* "gipsy.pyx":2404
 *             raise GdsError(-1, 'special headers on top level only')
 *          try:
 *             axnum = int(name[5:])             # <<<<<<<<<<<<<<
 *          except:
 *             axnum = None
 */
        __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_name, 5, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2404; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2404; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_2));
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2404; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
        __pyx_v_axnum = __pyx_t_1;
        __pyx_t_1 = 0;
      }
      __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_L16_try_end;
      __pyx_L9_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":2405
 *          try:
 *             axnum = int(name[5:])
 *          except:             # <<<<<<<<<<<<<<
 *             axnum = None
 *          if axnum is not None and axnum<1:
 */
      /*except:*/ {
        __Pyx_AddTraceback("gipsy.Set.__whead", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2405; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_t_10);

        /* "gipsy.pyx":2406
 *             axnum = int(name[5:])
 *          except:
 *             axnum = None             # <<<<<<<<<<<<<<
 *          if axnum is not None and axnum<1:
 *             raise GdsError(-1, 'number must be greater than 1')
 */
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF(__pyx_v_axnum);
        __pyx_v_axnum = Py_None;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L10_exception_handled;
      }
      __pyx_L11_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_L10_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_L16_try_end:;
    }

    /* "gipsy.pyx":2407
 *          except:
 *             axnum = None
 *          if axnum is not None and axnum<1:             # <<<<<<<<<<<<<<
 *             raise GdsError(-1, 'number must be greater than 1')
 *          if axnum is not None and axnum>self.naxis:
 */
    __pyx_t_4 = (__pyx_v_axnum != Py_None);
    if (__pyx_t_4) {
      __pyx_t_10 = PyObject_RichCompare(__pyx_v_axnum, __pyx_int_1, Py_LT); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_5 = __pyx_t_6;
    } else {
      __pyx_t_5 = __pyx_t_4;
    }
    if (__pyx_t_5) {

      /* "gipsy.pyx":2408
 *             axnum = None
 *          if axnum is not None and axnum<1:
 *             raise GdsError(-1, 'number must be greater than 1')             # <<<<<<<<<<<<<<
 *          if axnum is not None and axnum>self.naxis:
 *             try:
 */
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_k_tuple_162), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L19;
    }
    __pyx_L19:;

    /* "gipsy.pyx":2409
 *          if axnum is not None and axnum<1:
 *             raise GdsError(-1, 'number must be greater than 1')
 *          if axnum is not None and axnum>self.naxis:             # <<<<<<<<<<<<<<
 *             try:
 *                self[name]
 */
    __pyx_t_5 = (__pyx_v_axnum != Py_None);
    if (__pyx_t_5) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyObject_RichCompare(__pyx_v_axnum, __pyx_t_2, Py_GT); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_6 = __pyx_t_4;
    } else {
      __pyx_t_6 = __pyx_t_5;
    }
    if (__pyx_t_6) {

      /* "gipsy.pyx":2410
 *             raise GdsError(-1, 'number must be greater than 1')
 *          if axnum is not None and axnum>self.naxis:
 *             try:             # <<<<<<<<<<<<<<
 *                self[name]
 *             except:
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_7);
        /*try:*/ {

          /* "gipsy.pyx":2411
 *          if axnum is not None and axnum>self.naxis:
 *             try:
 *                self[name]             # <<<<<<<<<<<<<<
 *             except:
 *                raise GdsError(-1, 'number greater than set dimension')
 */
          __pyx_t_10 = PyObject_GetItem(__pyx_v_self, __pyx_v_name); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L28_try_end;
        __pyx_L21_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "gipsy.pyx":2412
 *             try:
 *                self[name]
 *             except:             # <<<<<<<<<<<<<<
 *                raise GdsError(-1, 'number greater than set dimension')
 *          if name[:5] in ['CTYPE', 'DTYPE']:
 */
        /*except:*/ {
          __Pyx_AddTraceback("gipsy.Set.__whead", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_2, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2412; __pyx_clineno = __LINE__; goto __pyx_L23_except_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_GOTREF(__pyx_t_1);

          /* "gipsy.pyx":2413
 *                self[name]
 *             except:
 *                raise GdsError(-1, 'number greater than set dimension')             # <<<<<<<<<<<<<<
 *          if name[:5] in ['CTYPE', 'DTYPE']:
 *             if t is not types.StringType:
 */
          __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2413; __pyx_clineno = __LINE__; goto __pyx_L23_except_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_164), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2413; __pyx_clineno = __LINE__; goto __pyx_L23_except_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_Raise(__pyx_t_12, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2413; __pyx_clineno = __LINE__; goto __pyx_L23_except_error;}
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L22_exception_handled;
        }
        __pyx_L23_except_error:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
        goto __pyx_L1_error;
        __pyx_L22_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
        __pyx_L28_try_end:;
      }
      goto __pyx_L20;
    }
    __pyx_L20:;

    /* "gipsy.pyx":2414
 *             except:
 *                raise GdsError(-1, 'number greater than set dimension')
 *          if name[:5] in ['CTYPE', 'DTYPE']:             # <<<<<<<<<<<<<<
 *             if t is not types.StringType:
 *                raise GdsError(-1, 'incorrect type for %s' % name)
 */
    __pyx_t_1 = __Pyx_PySequence_GetSlice(__pyx_v_name, 0, 5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__CTYPE), Py_EQ); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!((int)__pyx_t_6)) {
      __pyx_t_5 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__DTYPE), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_4 = ((int)__pyx_t_5);
    } else {
      __pyx_t_4 = ((int)__pyx_t_6);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = __pyx_t_4;
    if (__pyx_t_6) {

      /* "gipsy.pyx":2415
 *                raise GdsError(-1, 'number greater than set dimension')
 *          if name[:5] in ['CTYPE', 'DTYPE']:
 *             if t is not types.StringType:             # <<<<<<<<<<<<<<
 *                raise GdsError(-1, 'incorrect type for %s' % name)
 *          elif t is not types.FloatType and t is not types.IntType:
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = (__pyx_v_t != ((PyObject*)__pyx_t_2));
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_6) {

        /* "gipsy.pyx":2416
 *          if name[:5] in ['CTYPE', 'DTYPE']:
 *             if t is not types.StringType:
 *                raise GdsError(-1, 'incorrect type for %s' % name)             # <<<<<<<<<<<<<<
 *          elif t is not types.FloatType and t is not types.IntType:
 *             raise GdsError(-1, 'incorrect type for %s' % name)
 */
        __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_165), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_10));
        __Pyx_INCREF(__pyx_int_neg_1);
        PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_neg_1);
        __Pyx_GIVEREF(__pyx_int_neg_1);
        PyTuple_SET_ITEM(__pyx_t_10, 1, ((PyObject *)__pyx_t_1));
        __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_1, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L32;
      }
      __pyx_L32:;
      goto __pyx_L31;
    }

    /* "gipsy.pyx":2417
 *             if t is not types.StringType:
 *                raise GdsError(-1, 'incorrect type for %s' % name)
 *          elif t is not types.FloatType and t is not types.IntType:             # <<<<<<<<<<<<<<
 *             raise GdsError(-1, 'incorrect type for %s' % name)
 *          else:
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__FloatType); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = (__pyx_v_t != ((PyObject*)__pyx_t_10));
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (__pyx_t_6) {
      __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__IntType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_4 = (__pyx_v_t != ((PyObject*)__pyx_t_1));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = __pyx_t_4;
    } else {
      __pyx_t_5 = __pyx_t_6;
    }
    if (__pyx_t_5) {

      /* "gipsy.pyx":2418
 *                raise GdsError(-1, 'incorrect type for %s' % name)
 *          elif t is not types.FloatType and t is not types.IntType:
 *             raise GdsError(-1, 'incorrect type for %s' % name)             # <<<<<<<<<<<<<<
 *          else:
 *             value = float(value)
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_165), __pyx_v_name); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_int_neg_1);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_neg_1);
      __Pyx_GIVEREF(__pyx_int_neg_1);
      PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_t_10));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_10));
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_10, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L31;
    }
    /*else*/ {

      /* "gipsy.pyx":2420
 *             raise GdsError(-1, 'incorrect type for %s' % name)
 *          else:
 *             value = float(value)             # <<<<<<<<<<<<<<
 *             t = type(value)
 *             kind  = 'DBLE'
 */
      __pyx_t_13 = __Pyx_PyObject_AsDouble(__pyx_v_value); if (unlikely(__pyx_t_13 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_10 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_v_value);
      __pyx_v_value = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "gipsy.pyx":2421
 *          else:
 *             value = float(value)
 *             t = type(value)             # <<<<<<<<<<<<<<
 *             kind  = 'DBLE'
 *       if t is types.FloatType and kind.upper()=='REAL':
 */
      __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_value)));
      __Pyx_DECREF(((PyObject *)__pyx_v_t));
      __pyx_v_t = ((PyObject*)((PyObject *)Py_TYPE(__pyx_v_value)));

      /* "gipsy.pyx":2422
 *             value = float(value)
 *             t = type(value)
 *             kind  = 'DBLE'             # <<<<<<<<<<<<<<
 *       if t is types.FloatType and kind.upper()=='REAL':
 *          real_c = value
 */
      __Pyx_INCREF(((PyObject *)__pyx_n_s__DBLE));
      __Pyx_DECREF(__pyx_v_kind);
      __pyx_v_kind = ((PyObject *)__pyx_n_s__DBLE);
    }
    __pyx_L31:;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2423
 *             t = type(value)
 *             kind  = 'DBLE'
 *       if t is types.FloatType and kind.upper()=='REAL':             # <<<<<<<<<<<<<<
 *          real_c = value
 *          gdsd_wreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 */
  __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__FloatType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_5 = (__pyx_v_t == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_kind, __pyx_n_s__upper); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyString_Equals(__pyx_t_10, ((PyObject *)__pyx_n_s__REAL), Py_EQ); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_4 = __pyx_t_6;
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (__pyx_t_4) {

    /* "gipsy.pyx":2424
 *             kind  = 'DBLE'
 *       if t is types.FloatType and kind.upper()=='REAL':
 *          real_c = value             # <<<<<<<<<<<<<<
 *          gdsd_wreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 *       elif t is types.FloatType:
 */
    __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_14 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_real_c = __pyx_t_14;

    /* "gipsy.pyx":2425
 *       if t is types.FloatType and kind.upper()=='REAL':
 *          real_c = value
 *          gdsd_wreal_c(handle_c, name_c, &level_c, &real_c, &err_c)             # <<<<<<<<<<<<<<
 *       elif t is types.FloatType:
 *          dble_c = value
 */
    gdsd_wreal_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_real_c), (&__pyx_v_err_c));
    goto __pyx_L33;
  }

  /* "gipsy.pyx":2426
 *          real_c = value
 *          gdsd_wreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 *       elif t is types.FloatType:             # <<<<<<<<<<<<<<
 *          dble_c = value
 *          gdsd_wdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 */
  __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__FloatType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_4 = (__pyx_v_t == ((PyObject*)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_4) {

    /* "gipsy.pyx":2427
 *          gdsd_wreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
 *       elif t is types.FloatType:
 *          dble_c = value             # <<<<<<<<<<<<<<
 *          gdsd_wdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 *          if name[:5]=='CRPIX' and axnum is not None:
 */
    __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_dble_c = __pyx_t_13;

    /* "gipsy.pyx":2428
 *       elif t is types.FloatType:
 *          dble_c = value
 *          gdsd_wdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)             # <<<<<<<<<<<<<<
 *          if name[:5]=='CRPIX' and axnum is not None:
 *             self.extend(self.axname(axnum-1), value, None)
 */
    gdsd_wdble_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_dble_c), (&__pyx_v_err_c));

    /* "gipsy.pyx":2429
 *          dble_c = value
 *          gdsd_wdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 *          if name[:5]=='CRPIX' and axnum is not None:             # <<<<<<<<<<<<<<
 *             self.extend(self.axname(axnum-1), value, None)
 *       elif t is types.IntType and kind.upper()=='LOG' or t is types.BooleanType:
 */
    __pyx_t_2 = __Pyx_PySequence_GetSlice(__pyx_v_name, 0, 5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__CRPIX), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {
      if (unlikely(!__pyx_v_axnum)) { __Pyx_RaiseUnboundLocalError("axnum"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2429; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }__pyx_t_5 = (__pyx_v_axnum != Py_None);
      __pyx_t_6 = __pyx_t_5;
    } else {
      __pyx_t_6 = __pyx_t_4;
    }
    if (__pyx_t_6) {

      /* "gipsy.pyx":2430
 *          gdsd_wdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
 *          if name[:5]=='CRPIX' and axnum is not None:
 *             self.extend(self.axname(axnum-1), value, None)             # <<<<<<<<<<<<<<
 *       elif t is types.IntType and kind.upper()=='LOG' or t is types.BooleanType:
 *          log_c = value
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__extend); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axname); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_axnum, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_12));
      PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
      __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_12));
      PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_value);
      PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_value);
      __Pyx_GIVEREF(__pyx_v_value);
      __Pyx_INCREF(Py_None);
      PyTuple_SET_ITEM(__pyx_t_12, 2, Py_None);
      __Pyx_GIVEREF(Py_None);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L34;
    }
    __pyx_L34:;
    goto __pyx_L33;
  }

  /* "gipsy.pyx":2431
 *          if name[:5]=='CRPIX' and axnum is not None:
 *             self.extend(self.axname(axnum-1), value, None)
 *       elif t is types.IntType and kind.upper()=='LOG' or t is types.BooleanType:             # <<<<<<<<<<<<<<
 *          log_c = value
 *          gdsd_wlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__IntType); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (__pyx_v_t == ((PyObject*)__pyx_t_12));
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__pyx_t_6) {
    __pyx_t_12 = PyObject_GetAttr(__pyx_v_kind, __pyx_n_s__upper); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_1 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_4 = __Pyx_PyString_Equals(__pyx_t_1, ((PyObject *)__pyx_n_s__LOG), Py_EQ); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_6;
  }
  if (!__pyx_t_5) {
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__BooleanType); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = (__pyx_v_t == ((PyObject*)__pyx_t_12));
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_4 = __pyx_t_6;
  } else {
    __pyx_t_4 = __pyx_t_5;
  }
  if (__pyx_t_4) {

    /* "gipsy.pyx":2432
 *             self.extend(self.axname(axnum-1), value, None)
 *       elif t is types.IntType and kind.upper()=='LOG' or t is types.BooleanType:
 *          log_c = value             # <<<<<<<<<<<<<<
 *          gdsd_wlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 *       elif t is types.IntType:
 */
    __pyx_t_15 = __Pyx_PyInt_from_py_bool(__pyx_v_value); if (unlikely((__pyx_t_15 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_log_c = __pyx_t_15;

    /* "gipsy.pyx":2433
 *       elif t is types.IntType and kind.upper()=='LOG' or t is types.BooleanType:
 *          log_c = value
 *          gdsd_wlog_c(handle_c, name_c, &level_c, &log_c, &err_c)             # <<<<<<<<<<<<<<
 *       elif t is types.IntType:
 *          int_c = value
 */
    gdsd_wlog_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_log_c), (&__pyx_v_err_c));
    goto __pyx_L33;
  }

  /* "gipsy.pyx":2434
 *          log_c = value
 *          gdsd_wlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 *       elif t is types.IntType:             # <<<<<<<<<<<<<<
 *          int_c = value
 *          gdsd_wint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 */
  __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__IntType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_4 = (__pyx_v_t == ((PyObject*)__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "gipsy.pyx":2435
 *          gdsd_wlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
 *       elif t is types.IntType:
 *          int_c = value             # <<<<<<<<<<<<<<
 *          gdsd_wint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 *       elif t is types.StringType:
 */
    __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_v_value); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_int_c = __pyx_t_3;

    /* "gipsy.pyx":2436
 *       elif t is types.IntType:
 *          int_c = value
 *          gdsd_wint_c(handle_c, name_c, &level_c, &int_c, &err_c)             # <<<<<<<<<<<<<<
 *       elif t is types.StringType:
 *          gdsd_wchar_c(handle_c, name_c, &level_c, tofchar(value), &err_c)
 */
    gdsd_wint_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), (&__pyx_v_int_c), (&__pyx_v_err_c));
    goto __pyx_L33;
  }

  /* "gipsy.pyx":2437
 *          int_c = value
 *          gdsd_wint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 *       elif t is types.StringType:             # <<<<<<<<<<<<<<
 *          gdsd_wchar_c(handle_c, name_c, &level_c, tofchar(value), &err_c)
 *       elif t is types.NoneType:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__StringType); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = (__pyx_v_t == ((PyObject*)__pyx_t_12));
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__pyx_t_4) {

    /* "gipsy.pyx":2438
 *          gdsd_wint_c(handle_c, name_c, &level_c, &int_c, &err_c)
 *       elif t is types.StringType:
 *          gdsd_wchar_c(handle_c, name_c, &level_c, tofchar(value), &err_c)             # <<<<<<<<<<<<<<
 *       elif t is types.NoneType:
 *          try:
 */
    gdsd_wchar_c(__pyx_v_handle_c, __pyx_v_name_c, (&__pyx_v_level_c), __pyx_f_5gipsy_tofchar(__pyx_v_value), (&__pyx_v_err_c));
    goto __pyx_L33;
  }

  /* "gipsy.pyx":2439
 *       elif t is types.StringType:
 *          gdsd_wchar_c(handle_c, name_c, &level_c, tofchar(value), &err_c)
 *       elif t is types.NoneType:             # <<<<<<<<<<<<<<
 *          try:
 *             self.__delhead(name, level)
 */
  __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__NoneType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_4 = (__pyx_v_t == ((PyObject*)__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "gipsy.pyx":2440
 *          gdsd_wchar_c(handle_c, name_c, &level_c, tofchar(value), &err_c)
 *       elif t is types.NoneType:
 *          try:             # <<<<<<<<<<<<<<
 *             self.__delhead(name, level)
 *          except GdsError:
 */
    {
      __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:*/ {

        /* "gipsy.pyx":2441
 *       elif t is types.NoneType:
 *          try:
 *             self.__delhead(name, level)             # <<<<<<<<<<<<<<
 *          except GdsError:
 *             pass
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____delhead); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2441; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2441; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_12));
        __Pyx_INCREF(__pyx_v_name);
        PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_name);
        __Pyx_GIVEREF(__pyx_v_name);
        __Pyx_INCREF(__pyx_v_level);
        PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_level);
        __Pyx_GIVEREF(__pyx_v_level);
        __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2441; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __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_L42_try_end;
      __pyx_L35_error:;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "gipsy.pyx":2442
 *          try:
 *             self.__delhead(name, level)
 *          except GdsError:             # <<<<<<<<<<<<<<
 *             pass
 *          err = 0                                   # never fail (?)
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2442; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_16 = PyErr_ExceptionMatches(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_16) {
        PyErr_Restore(0,0,0);
        goto __pyx_L36_exception_handled;
      }
      __pyx_L37_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_L36_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_L42_try_end:;
    }

    /* "gipsy.pyx":2444
 *          except GdsError:
 *             pass
 *          err = 0                                   # never fail (?)             # <<<<<<<<<<<<<<
 *       else:
 *          raise GdsError(-1, "%s unsupported for item %s" % (str(t), name) )
 */
    __pyx_v_err = 0;
    goto __pyx_L33;
  }
  /*else*/ {

    /* "gipsy.pyx":2446
 *          err = 0                                   # never fail (?)
 *       else:
 *          raise GdsError(-1, "%s unsupported for item %s" % (str(t), name) )             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_12));
    __Pyx_INCREF(((PyObject *)__pyx_v_t));
    PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_v_t));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_t));
    __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
    __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_12));
    PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_166), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
    __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_12));
    __Pyx_INCREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_neg_1);
    __Pyx_GIVEREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)__pyx_t_1));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L33:;

  /* "gipsy.pyx":2447
 *       else:
 *          raise GdsError(-1, "%s unsupported for item %s" % (str(t), name) )
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_4 = (__pyx_v_err_c < 0);
  if (__pyx_t_4) {

    /* "gipsy.pyx":2448
 *          raise GdsError(-1, "%s unsupported for item %s" % (str(t), name) )
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def __delhead(self, name, level=0):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_12);
    __pyx_t_12 = 0;
    __pyx_t_12 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L43;
  }
  __pyx_L43:;

  __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_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("gipsy.Set.__whead", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_axnum);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_kind);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2450
 *          raiseGds(err_c)
 * 
 *    def __delhead(self, name, level=0):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fint level_c, err_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_32__delhead(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_32__delhead[] = "(internal method)";
static PyMethodDef __pyx_mdef_5gipsy_3Set_32__delhead = {__Pyx_NAMESTR("__delhead"), (PyCFunction)__pyx_pf_5gipsy_3Set_32__delhead, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_32__delhead)};
static PyObject *__pyx_pf_5gipsy_3Set_32__delhead(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_level = 0;
  fint __pyx_v_level_c;
  fint __pyx_v_err_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("__delhead");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__delhead", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__delhead") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_level = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__delhead", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__delhead", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_name);

  /* "gipsy.pyx":2453
 *       "(internal method)"
 *       cdef fint level_c, err_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       level_c = level
 *       name = name.upper()
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2454
 *       cdef fint level_c, err_c
 *       err_c = 0
 *       level_c = level             # <<<<<<<<<<<<<<
 *       name = name.upper()
 *       self.__wcheck()
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_1;

  /* "gipsy.pyx":2455
 *       err_c = 0
 *       level_c = level
 *       name = name.upper()             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       gdsd_delete_c(tofchar(self.handle), tofchar(name), &level_c, &err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__upper); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_name);
  __pyx_v_name = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2456
 *       level_c = level
 *       name = name.upper()
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       gdsd_delete_c(tofchar(self.handle), tofchar(name), &level_c, &err_c)
 *       if err_c<0:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2456; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2457
 *       name = name.upper()
 *       self.__wcheck()
 *       gdsd_delete_c(tofchar(self.handle), tofchar(name), &level_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  gdsd_delete_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), __pyx_f_5gipsy_tofchar(__pyx_v_name), (&__pyx_v_level_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2458
 *       self.__wcheck()
 *       gdsd_delete_c(tofchar(self.handle), tofchar(name), &level_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_4 = (__pyx_v_err_c < 0);
  if (__pyx_t_4) {

    /* "gipsy.pyx":2459
 *       gdsd_delete_c(tofchar(self.handle), tofchar(name), &level_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def tablis(self, nitems=100):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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_AddTraceback("gipsy.Set.__delhead", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2461
 *          raiseGds(err_c)
 * 
 *    def tablis(self, nitems=100):             # <<<<<<<<<<<<<<
 *       "Get all tables in a set. Returns a list with tuples (name, level)"
 *       cdef fint nitems_c=nitems, err_c=0, nfound_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_33tablis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_33tablis[] = "Get all tables in a set. Returns a list with tuples (name, level)";
static PyMethodDef __pyx_mdef_5gipsy_3Set_33tablis = {__Pyx_NAMESTR("tablis"), (PyCFunction)__pyx_pf_5gipsy_3Set_33tablis, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_33tablis)};
static PyObject *__pyx_pf_5gipsy_3Set_33tablis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_nitems = 0;
  fint __pyx_v_nitems_c;
  fint __pyx_v_err_c;
  fint __pyx_v_nfound_c;
  fchar __pyx_v_tnames_c;
  PyObject *__pyx_v_tabnames = 0;
  fint *__pyx_v_subsets_c;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_tab = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  Py_ssize_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__nitems,0};
  __Pyx_RefNannySetupContext("tablis");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_100);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "tablis") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_nitems = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tablis", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.tablis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2463
 *    def tablis(self, nitems=100):
 *       "Get all tables in a set. Returns a list with tuples (name, level)"
 *       cdef fint nitems_c=nitems, err_c=0, nfound_c             # <<<<<<<<<<<<<<
 *       cdef fchar tnames_c
 *       cdef bytes tabnames
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nitems); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nitems_c = __pyx_t_1;
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2466
 *       cdef fchar tnames_c
 *       cdef bytes tabnames
 *       cdef fint *subsets_c=<fint*>malloc(nitems*sizeof(fint))             # <<<<<<<<<<<<<<
 *       tnames_c = newfchar(nitems*8)
 *       tnames_c.l = 8                          # "character*8 tnames_c[nitems]"
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(fint))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_nitems, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsSize_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_subsets_c = ((fint *)malloc(__pyx_t_4));

  /* "gipsy.pyx":2467
 *       cdef bytes tabnames
 *       cdef fint *subsets_c=<fint*>malloc(nitems*sizeof(fint))
 *       tnames_c = newfchar(nitems*8)             # <<<<<<<<<<<<<<
 *       tnames_c.l = 8                          # "character*8 tnames_c[nitems]"
 *       gdsa_tablis_c(tofchar(self.name), subsets_c, tnames_c, &nitems_c,
 */
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_nitems, __pyx_int_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_tnames_c = __pyx_f_5gipsy_newfchar(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":2468
 *       cdef fint *subsets_c=<fint*>malloc(nitems*sizeof(fint))
 *       tnames_c = newfchar(nitems*8)
 *       tnames_c.l = 8                          # "character*8 tnames_c[nitems]"             # <<<<<<<<<<<<<<
 *       gdsa_tablis_c(tofchar(self.name), subsets_c, tnames_c, &nitems_c,
 *                     &nfound_c, &err_c)
 */
  __pyx_v_tnames_c.l = 8;

  /* "gipsy.pyx":2469
 *       tnames_c = newfchar(nitems*8)
 *       tnames_c.l = 8                          # "character*8 tnames_c[nitems]"
 *       gdsa_tablis_c(tofchar(self.name), subsets_c, tnames_c, &nitems_c,             # <<<<<<<<<<<<<<
 *                     &nfound_c, &err_c)
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "gipsy.pyx":2470
 *       tnames_c.l = 8                          # "character*8 tnames_c[nitems]"
 *       gdsa_tablis_c(tofchar(self.name), subsets_c, tnames_c, &nitems_c,
 *                     &nfound_c, &err_c)             # <<<<<<<<<<<<<<
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 *       if err_c<0:
 */
  gdsa_tablis_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), __pyx_v_subsets_c, __pyx_v_tnames_c, (&__pyx_v_nitems_c), (&__pyx_v_nfound_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":2472
 *                     &nfound_c, &err_c)
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          free(subsets_c)
 *          delfchar(tnames_c)
 */
  __pyx_t_5 = (__pyx_v_err_c < 0);
  if (__pyx_t_5) {

    /* "gipsy.pyx":2473
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 *       if err_c<0:
 *          free(subsets_c)             # <<<<<<<<<<<<<<
 *          delfchar(tnames_c)
 *          raiseGds(err_c)
 */
    free(__pyx_v_subsets_c);

    /* "gipsy.pyx":2474
 *       if err_c<0:
 *          free(subsets_c)
 *          delfchar(tnames_c)             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
    __pyx_t_3 = __pyx_f_5gipsy_delfchar(__pyx_v_tnames_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2475
 *          free(subsets_c)
 *          delfchar(tnames_c)
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *       tabnames = tnames_c.a
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2477
 *          raiseGds(err_c)
 * 
 *       tabnames = tnames_c.a             # <<<<<<<<<<<<<<
 *       result = []
 *       for tab in range(nfound_c):
 */
  __pyx_t_2 = PyBytes_FromString(__pyx_v_tnames_c.a); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_tabnames = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2478
 * 
 *       tabnames = tnames_c.a
 *       result = []             # <<<<<<<<<<<<<<
 *       for tab in range(nfound_c):
 *          result.append((tabnames[tab*8:(tab+1)*8].rstrip(), subsets_c[tab]))
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2479
 *       tabnames = tnames_c.a
 *       result = []
 *       for tab in range(nfound_c):             # <<<<<<<<<<<<<<
 *          result.append((tabnames[tab*8:(tab+1)*8].rstrip(), subsets_c[tab]))
 *       free(subsets_c)
 */
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_nfound_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_6)) {
      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++;
    } else if (PyTuple_CheckExact(__pyx_t_6)) {
      if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++;
    } else {
      __pyx_t_2 = __pyx_t_8(__pyx_t_6);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_tab);
    __pyx_v_tab = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2480
 *       result = []
 *       for tab in range(nfound_c):
 *          result.append((tabnames[tab*8:(tab+1)*8].rstrip(), subsets_c[tab]))             # <<<<<<<<<<<<<<
 *       free(subsets_c)
 *       delfchar(tnames_c)
 */
    if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_2 = PyNumber_Multiply(__pyx_v_tab, __pyx_int_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_v_tab, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_int_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_tabnames), __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_t_3), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_tab); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = __Pyx_PyInt_to_py_fint((__pyx_v_subsets_c[__pyx_t_10])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_11));
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_12 = PyList_Append(__pyx_v_result, ((PyObject *)__pyx_t_11)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2481
 *       for tab in range(nfound_c):
 *          result.append((tabnames[tab*8:(tab+1)*8].rstrip(), subsets_c[tab]))
 *       free(subsets_c)             # <<<<<<<<<<<<<<
 *       delfchar(tnames_c)
 *       return result
 */
  free(__pyx_v_subsets_c);

  /* "gipsy.pyx":2482
 *          result.append((tabnames[tab*8:(tab+1)*8].rstrip(), subsets_c[tab]))
 *       free(subsets_c)
 *       delfchar(tnames_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
  __pyx_t_6 = __pyx_f_5gipsy_delfchar(__pyx_v_tnames_c); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2483
 *       free(subsets_c)
 *       delfchar(tnames_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def tabinq(self, tname, subset=0, nitems=100):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("gipsy.Set.tablis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tabnames);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_tab);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2485
 *       return result
 * 
 *    def tabinq(self, tname, subset=0, nitems=100):             # <<<<<<<<<<<<<<
 *       "Get the column names in a table. See gdsa_tabinq.dc2"
 *       cdef fint subset_c, nitems_c, err_c, nfound_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_34tabinq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_34tabinq[] = "Get the column names in a table. See gdsa_tabinq.dc2";
static PyMethodDef __pyx_mdef_5gipsy_3Set_34tabinq = {__Pyx_NAMESTR("tabinq"), (PyCFunction)__pyx_pf_5gipsy_3Set_34tabinq, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_34tabinq)};
static PyObject *__pyx_pf_5gipsy_3Set_34tabinq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  PyObject *__pyx_v_subset = 0;
  PyObject *__pyx_v_nitems = 0;
  fint __pyx_v_subset_c;
  fint __pyx_v_nitems_c;
  fint __pyx_v_err_c;
  fint __pyx_v_nfound_c;
  fchar __pyx_v_cnames_c;
  PyObject *__pyx_v_colnames = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_col = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  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;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__subset,&__pyx_n_s__nitems,0};
  __Pyx_RefNannySetupContext("tabinq");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)__pyx_int_100);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("tabinq", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "tabinq") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    __pyx_v_subset = values[2];
    __pyx_v_nitems = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tabinq", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.tabinq", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2490
 *       cdef fchar cnames_c
 *       cdef bytes colnames
 *       err_c    = 0             # <<<<<<<<<<<<<<
 *       subset_c = subset
 *       nitems_c = nitems
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2491
 *       cdef bytes colnames
 *       err_c    = 0
 *       subset_c = subset             # <<<<<<<<<<<<<<
 *       nitems_c = nitems
 *       cnames_c = newfchar(nitems*8)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_subset); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_subset_c = __pyx_t_1;

  /* "gipsy.pyx":2492
 *       err_c    = 0
 *       subset_c = subset
 *       nitems_c = nitems             # <<<<<<<<<<<<<<
 *       cnames_c = newfchar(nitems*8)
 *       cnames_c.l = 8                           # "character*8 cnames_c[nitems]"
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nitems); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nitems_c = __pyx_t_1;

  /* "gipsy.pyx":2493
 *       subset_c = subset
 *       nitems_c = nitems
 *       cnames_c = newfchar(nitems*8)             # <<<<<<<<<<<<<<
 *       cnames_c.l = 8                           # "character*8 cnames_c[nitems]"
 *       gdsa_tabinq_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nitems, __pyx_int_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_cnames_c = __pyx_f_5gipsy_newfchar(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2494
 *       nitems_c = nitems
 *       cnames_c = newfchar(nitems*8)
 *       cnames_c.l = 8                           # "character*8 cnames_c[nitems]"             # <<<<<<<<<<<<<<
 *       gdsa_tabinq_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     cnames_c, &nitems_c, &nfound_c, &err_c)
 */
  __pyx_v_cnames_c.l = 8;

  /* "gipsy.pyx":2495
 *       cnames_c = newfchar(nitems*8)
 *       cnames_c.l = 8                           # "character*8 cnames_c[nitems]"
 *       gdsa_tabinq_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                     cnames_c, &nitems_c, &nfound_c, &err_c)
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "gipsy.pyx":2496
 *       cnames_c.l = 8                           # "character*8 cnames_c[nitems]"
 *       gdsa_tabinq_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     cnames_c, &nitems_c, &nfound_c, &err_c)             # <<<<<<<<<<<<<<
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 *       if err_c<0:
 */
  gdsa_tabinq_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_v_cnames_c, (&__pyx_v_nitems_c), (&__pyx_v_nfound_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2498
 *                     cnames_c, &nitems_c, &nfound_c, &err_c)
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          delfchar(cnames_c)
 *          raiseGds(err_c)
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2499
 *       # name instead of handle because gds_exist_c() expects name. to be fixed.
 *       if err_c<0:
 *          delfchar(cnames_c)             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       colnames = cnames_c.a
 */
    __pyx_t_2 = __pyx_f_5gipsy_delfchar(__pyx_v_cnames_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "gipsy.pyx":2500
 *       if err_c<0:
 *          delfchar(cnames_c)
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       colnames = cnames_c.a
 *       result = []
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2501
 *          delfchar(cnames_c)
 *          raiseGds(err_c)
 *       colnames = cnames_c.a             # <<<<<<<<<<<<<<
 *       result = []
 *       for col in range(nfound_c):
 */
  __pyx_t_4 = PyBytes_FromString(__pyx_v_cnames_c.a); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_v_colnames = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2502
 *          raiseGds(err_c)
 *       colnames = cnames_c.a
 *       result = []             # <<<<<<<<<<<<<<
 *       for col in range(nfound_c):
 *          result.append(colnames[col*8:(col+1)*8].rstrip())
 */
  __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_v_result = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2503
 *       colnames = cnames_c.a
 *       result = []
 *       for col in range(nfound_c):             # <<<<<<<<<<<<<<
 *          result.append(colnames[col*8:(col+1)*8].rstrip())
 *       delfchar(cnames_c)
 */
  __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_nfound_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_5)) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++;
    } else if (PyTuple_CheckExact(__pyx_t_5)) {
      if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++;
    } else {
      __pyx_t_4 = __pyx_t_7(__pyx_t_5);
      if (unlikely(!__pyx_t_4)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF(__pyx_v_col);
    __pyx_v_col = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2504
 *       result = []
 *       for col in range(nfound_c):
 *          result.append(colnames[col*8:(col+1)*8].rstrip())             # <<<<<<<<<<<<<<
 *       delfchar(cnames_c)
 *       return result
 */
    if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_4 = PyNumber_Multiply(__pyx_v_col, __pyx_int_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Add(__pyx_v_col, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_int_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_colnames), __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_t_2), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_10 = PyList_Append(__pyx_v_result, __pyx_t_2); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2505
 *       for col in range(nfound_c):
 *          result.append(colnames[col*8:(col+1)*8].rstrip())
 *       delfchar(cnames_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
  __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_cnames_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2506
 *          result.append(colnames[col*8:(col+1)*8].rstrip())
 *       delfchar(cnames_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def crecol(self, tname, cname, ctype, subset=0, colcomm=" ", cunits=" "):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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_AddTraceback("gipsy.Set.tabinq", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_colnames);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_col);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2508
 *       return result
 * 
 *    def crecol(self, tname, cname, ctype, subset=0, colcomm=" ", cunits=" "):             # <<<<<<<<<<<<<<
 *       "Create a table column. See gdsa_crecol.dc2"
 *       cdef fint err_c, subset_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_35crecol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_35crecol[] = "Create a table column. See gdsa_crecol.dc2";
static PyMethodDef __pyx_mdef_5gipsy_3Set_35crecol = {__Pyx_NAMESTR("crecol"), (PyCFunction)__pyx_pf_5gipsy_3Set_35crecol, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_35crecol)};
static PyObject *__pyx_pf_5gipsy_3Set_35crecol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  PyObject *__pyx_v_cname = 0;
  PyObject *__pyx_v_ctype = 0;
  PyObject *__pyx_v_subset = 0;
  PyObject *__pyx_v_colcomm = 0;
  PyObject *__pyx_v_cunits = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_subset_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__cname,&__pyx_n_s__ctype,&__pyx_n_s__subset,&__pyx_n_s__colcomm,&__pyx_n_s__cunits,0};
  __Pyx_RefNannySetupContext("crecol");
  __pyx_self = __pyx_self;
  {
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[4] = ((PyObject *)__pyx_int_0);
    values[5] = ((PyObject *)__pyx_kp_s_14);
    values[6] = ((PyObject *)__pyx_kp_s_14);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("crecol", 0, 4, 7, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cname);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("crecol", 0, 4, 7, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ctype);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("crecol", 0, 4, 7, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__colcomm);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cunits);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "crecol") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    __pyx_v_cname = values[2];
    __pyx_v_ctype = values[3];
    __pyx_v_subset = values[4];
    __pyx_v_colcomm = values[5];
    __pyx_v_cunits = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("crecol", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.crecol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2511
 *       "Create a table column. See gdsa_crecol.dc2"
 *       cdef fint err_c, subset_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       subset_c = subset
 *       self.__wcheck()
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2512
 *       cdef fint err_c, subset_c
 *       err_c = 0
 *       subset_c = subset             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       gdsa_crecol_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_subset); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_subset_c = __pyx_t_1;

  /* "gipsy.pyx":2513
 *       err_c = 0
 *       subset_c = subset
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       gdsa_crecol_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     tofchar(cname), tofchar(ctype), tofchar(colcomm),
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2513; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2514
 *       subset_c = subset
 *       self.__wcheck()
 *       gdsa_crecol_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                     tofchar(cname), tofchar(ctype), tofchar(colcomm),
 *                     tofchar(cunits), &err_c)   # requires name, not handle
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "gipsy.pyx":2516
 *       gdsa_crecol_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     tofchar(cname), tofchar(ctype), tofchar(colcomm),
 *                     tofchar(cunits), &err_c)   # requires name, not handle             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gdsa_crecol_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_f_5gipsy_tofchar(__pyx_v_ctype), __pyx_f_5gipsy_tofchar(__pyx_v_colcomm), __pyx_f_5gipsy_tofchar(__pyx_v_cunits), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":2517
 *                     tofchar(cname), tofchar(ctype), tofchar(colcomm),
 *                     tofchar(cunits), &err_c)   # requires name, not handle
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_4 = (__pyx_v_err_c < 0);
  if (__pyx_t_4) {

    /* "gipsy.pyx":2518
 *                     tofchar(cunits), &err_c)   # requires name, not handle
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def delcol(self, tname, cname, subset=0):
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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_AddTraceback("gipsy.Set.crecol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2520
 *          raiseGds(err_c)
 * 
 *    def delcol(self, tname, cname, subset=0):             # <<<<<<<<<<<<<<
 *       "Delete a table column. See gdsa_delcol.dc2"
 *       cdef fint err_c, subset_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_36delcol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_36delcol[] = "Delete a table column. See gdsa_delcol.dc2";
static PyMethodDef __pyx_mdef_5gipsy_3Set_36delcol = {__Pyx_NAMESTR("delcol"), (PyCFunction)__pyx_pf_5gipsy_3Set_36delcol, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_36delcol)};
static PyObject *__pyx_pf_5gipsy_3Set_36delcol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  PyObject *__pyx_v_cname = 0;
  PyObject *__pyx_v_subset = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_subset_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__cname,&__pyx_n_s__subset,0};
  __Pyx_RefNannySetupContext("delcol");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delcol", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cname);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delcol", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "delcol") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    __pyx_v_cname = values[2];
    __pyx_v_subset = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("delcol", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.delcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2523
 *       "Delete a table column. See gdsa_delcol.dc2"
 *       cdef fint err_c, subset_c
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       subset_c = subset
 *       self.__wcheck()
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2524
 *       cdef fint err_c, subset_c
 *       err_c = 0
 *       subset_c = subset             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       gdsa_delcol_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_subset); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_subset_c = __pyx_t_1;

  /* "gipsy.pyx":2525
 *       err_c = 0
 *       subset_c = subset
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       gdsa_delcol_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     tofchar(cname), &err_c) # requires name, not handle
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2526
 *       subset_c = subset
 *       self.__wcheck()
 *       gdsa_delcol_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                     tofchar(cname), &err_c) # requires name, not handle
 *       if err_c<0:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "gipsy.pyx":2527
 *       self.__wcheck()
 *       gdsa_delcol_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     tofchar(cname), &err_c) # requires name, not handle             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)                         # also when column is empty!
 */
  gdsa_delcol_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":2528
 *       gdsa_delcol_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                     tofchar(cname), &err_c) # requires name, not handle
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)                         # also when column is empty!
 * 
 */
  __pyx_t_4 = (__pyx_v_err_c < 0);
  if (__pyx_t_4) {

    /* "gipsy.pyx":2529
 *                     tofchar(cname), &err_c) # requires name, not handle
 *       if err_c<0:
 *          raiseGds(err_c)                         # also when column is empty!             # <<<<<<<<<<<<<<
 * 
 *    def colinq(self, tname, cname, level=0):
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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_AddTraceback("gipsy.Set.delcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2531
 *          raiseGds(err_c)                         # also when column is empty!
 * 
 *    def colinq(self, tname, cname, level=0):             # <<<<<<<<<<<<<<
 * 
 * # Give information about a column in a table.
 */

static PyObject *__pyx_pf_5gipsy_3Set_37colinq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_37colinq = {__Pyx_NAMESTR("colinq"), (PyCFunction)__pyx_pf_5gipsy_3Set_37colinq, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_37colinq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  PyObject *__pyx_v_cname = 0;
  PyObject *__pyx_v_level = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_level_c;
  fint __pyx_v_nrows_c;
  fchar __pyx_v_ctype_c;
  fchar __pyx_v_colcomm_c;
  fchar __pyx_v_cunits_c;
  PyObject *__pyx_v_ctype = 0;
  PyObject *__pyx_v_colcomm = 0;
  PyObject *__pyx_v_cunits = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__cname,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("colinq");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("colinq", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cname);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("colinq", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "colinq") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    __pyx_v_cname = values[2];
    __pyx_v_level = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("colinq", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.colinq", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2541
 *       cdef bytes ctype, colcomm, cunits
 * 
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       level_c = level
 *       ctype_c = newfchar(10)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2542
 * 
 *       err_c = 0
 *       level_c = level             # <<<<<<<<<<<<<<
 *       ctype_c = newfchar(10)
 *       colcomm_c = newfchar(80)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_1;

  /* "gipsy.pyx":2543
 *       err_c = 0
 *       level_c = level
 *       ctype_c = newfchar(10)             # <<<<<<<<<<<<<<
 *       colcomm_c = newfchar(80)
 *       cunits_c = newfchar(10)
 */
  __pyx_v_ctype_c = __pyx_f_5gipsy_newfchar(__pyx_int_10);

  /* "gipsy.pyx":2544
 *       level_c = level
 *       ctype_c = newfchar(10)
 *       colcomm_c = newfchar(80)             # <<<<<<<<<<<<<<
 *       cunits_c = newfchar(10)
 *       gdsa_colinq_c(tofchar(self.name), &level_c, tofchar(tname),
 */
  __pyx_v_colcomm_c = __pyx_f_5gipsy_newfchar(__pyx_int_80);

  /* "gipsy.pyx":2545
 *       ctype_c = newfchar(10)
 *       colcomm_c = newfchar(80)
 *       cunits_c = newfchar(10)             # <<<<<<<<<<<<<<
 *       gdsa_colinq_c(tofchar(self.name), &level_c, tofchar(tname),
 *                             tofchar(cname),
 */
  __pyx_v_cunits_c = __pyx_f_5gipsy_newfchar(__pyx_int_10);

  /* "gipsy.pyx":2546
 *       colcomm_c = newfchar(80)
 *       cunits_c = newfchar(10)
 *       gdsa_colinq_c(tofchar(self.name), &level_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                             tofchar(cname),
 *                             ctype_c, colcomm_c, cunits_c, &nrows_c, &err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "gipsy.pyx":2548
 *       gdsa_colinq_c(tofchar(self.name), &level_c, tofchar(tname),
 *                             tofchar(cname),
 *                             ctype_c, colcomm_c, cunits_c, &nrows_c, &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  gdsa_colinq_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), (&__pyx_v_level_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_ctype_c, __pyx_v_colcomm_c, __pyx_v_cunits_c, (&__pyx_v_nrows_c), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2549
 *                             tofchar(cname),
 *                             ctype_c, colcomm_c, cunits_c, &nrows_c, &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       ctype = ctype_c.a
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2550
 *                             ctype_c, colcomm_c, cunits_c, &nrows_c, &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       ctype = ctype_c.a
 *       ctype = ctype.rstrip()
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2551
 *       if err_c<0:
 *          raiseGds(err_c)
 *       ctype = ctype_c.a             # <<<<<<<<<<<<<<
 *       ctype = ctype.rstrip()
 *       colcomm = colcomm_c.a
 */
  __pyx_t_4 = PyBytes_FromString(__pyx_v_ctype_c.a); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_v_ctype = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2552
 *          raiseGds(err_c)
 *       ctype = ctype_c.a
 *       ctype = ctype.rstrip()             # <<<<<<<<<<<<<<
 *       colcomm = colcomm_c.a
 *       colcomm = colcomm.rstrip()
 */
  __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_ctype), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__; goto __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)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_v_ctype));
  __pyx_v_ctype = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "gipsy.pyx":2553
 *       ctype = ctype_c.a
 *       ctype = ctype.rstrip()
 *       colcomm = colcomm_c.a             # <<<<<<<<<<<<<<
 *       colcomm = colcomm.rstrip()
 *       cunits = cunits_c.a
 */
  __pyx_t_5 = PyBytes_FromString(__pyx_v_colcomm_c.a); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_colcomm = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":2554
 *       ctype = ctype.rstrip()
 *       colcomm = colcomm_c.a
 *       colcomm = colcomm.rstrip()             # <<<<<<<<<<<<<<
 *       cunits = cunits_c.a
 *       cunits = cunits.rstrip()
 */
  __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_colcomm), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __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_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_v_colcomm));
  __pyx_v_colcomm = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2555
 *       colcomm = colcomm_c.a
 *       colcomm = colcomm.rstrip()
 *       cunits = cunits_c.a             # <<<<<<<<<<<<<<
 *       cunits = cunits.rstrip()
 *       delfchar(cunits_c)
 */
  __pyx_t_4 = PyBytes_FromString(__pyx_v_cunits_c.a); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_v_cunits = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2556
 *       colcomm = colcomm.rstrip()
 *       cunits = cunits_c.a
 *       cunits = cunits.rstrip()             # <<<<<<<<<<<<<<
 *       delfchar(cunits_c)
 *       delfchar(colcomm_c)
 */
  __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_cunits), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__; goto __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)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_v_cunits));
  __pyx_v_cunits = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "gipsy.pyx":2557
 *       cunits = cunits_c.a
 *       cunits = cunits.rstrip()
 *       delfchar(cunits_c)             # <<<<<<<<<<<<<<
 *       delfchar(colcomm_c)
 *       delfchar(ctype_c)
 */
  __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_cunits_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2558
 *       cunits = cunits.rstrip()
 *       delfchar(cunits_c)
 *       delfchar(colcomm_c)             # <<<<<<<<<<<<<<
 *       delfchar(ctype_c)
 *       return (ctype, colcomm, cunits, nrows_c)
 */
  __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_colcomm_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2559
 *       delfchar(cunits_c)
 *       delfchar(colcomm_c)
 *       delfchar(ctype_c)             # <<<<<<<<<<<<<<
 *       return (ctype, colcomm, cunits, nrows_c)
 * 
 */
  __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_ctype_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":2560
 *       delfchar(colcomm_c)
 *       delfchar(ctype_c)
 *       return (ctype, colcomm, cunits, nrows_c)             # <<<<<<<<<<<<<<
 * 
 *    def __rcol(self, tname, cname, subset=0, item=0, nitems=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_nrows_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(((PyObject *)__pyx_v_ctype));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_ctype));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_ctype));
  __Pyx_INCREF(((PyObject *)__pyx_v_colcomm));
  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_colcomm));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_colcomm));
  __Pyx_INCREF(((PyObject *)__pyx_v_cunits));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_cunits));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_cunits));
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_r = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.Set.colinq", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctype);
  __Pyx_XDECREF(__pyx_v_colcomm);
  __Pyx_XDECREF(__pyx_v_cunits);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2562
 *       return (ctype, colcomm, cunits, nrows_c)
 * 
 *    def __rcol(self, tname, cname, subset=0, item=0, nitems=None):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fint err_c, subset_c, item1_c, nitems_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_38__rcol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_38__rcol[] = "(internal method)";
static PyMethodDef __pyx_mdef_5gipsy_3Set_38__rcol = {__Pyx_NAMESTR("__rcol"), (PyCFunction)__pyx_pf_5gipsy_3Set_38__rcol, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_38__rcol)};
static PyObject *__pyx_pf_5gipsy_3Set_38__rcol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  PyObject *__pyx_v_cname = 0;
  PyObject *__pyx_v_subset = 0;
  PyObject *__pyx_v_item = 0;
  PyObject *__pyx_v_nitems = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_subset_c;
  fint __pyx_v_item1_c;
  fint __pyx_v_nitems_c;
  float *__pyx_v_fresult_c;
  double *__pyx_v_dresult_c;
  fint *__pyx_v_iresult_c;
  bool *__pyx_v_bresult_c;
  fchar __pyx_v_cresult_c;
  PyObject *__pyx_v_items = 0;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_n = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_width = 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)(PyObject *);
  fint __pyx_t_8;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  Py_ssize_t __pyx_t_12;
  Py_ssize_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__cname,&__pyx_n_s__subset,&__pyx_n_s__item,&__pyx_n_s__nitems,0};
  __Pyx_RefNannySetupContext("__rcol");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_int_0);
    values[5] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__rcol", 0, 3, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cname);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__rcol", 0, 3, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__item);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__rcol") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    __pyx_v_cname = values[2];
    __pyx_v_subset = values[3];
    __pyx_v_item = values[4];
    __pyx_v_nitems = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__rcol", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__rcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2571
 *       cdef fchar  cresult_c
 *       cdef bytes  items
 *       (t, x, x, n) = self.colinq(tname, cname, subset)             # <<<<<<<<<<<<<<
 *       err_c = 0
 *       subset_c = subset
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__colinq); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_tname);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tname);
  __Pyx_GIVEREF(__pyx_v_tname);
  __Pyx_INCREF(__pyx_v_cname);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_cname);
  __Pyx_GIVEREF(__pyx_v_cname);
  __Pyx_INCREF(__pyx_v_subset);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_subset);
  __Pyx_GIVEREF(__pyx_v_subset);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
    PyObject* sequence = __pyx_t_3;
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) {
        if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 4)) {
        if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 3); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_1 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 2; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    index = 3; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L7_unpacking_done;
    __pyx_L6_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L7_unpacking_done:;
  }
  __pyx_v_t = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_x = __pyx_t_1;
  __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_x);
  __pyx_v_x = __pyx_t_4;
  __pyx_t_4 = 0;
  __pyx_v_n = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":2572
 *       cdef bytes  items
 *       (t, x, x, n) = self.colinq(tname, cname, subset)
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       subset_c = subset
 *       item1_c  = item+1
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2573
 *       (t, x, x, n) = self.colinq(tname, cname, subset)
 *       err_c = 0
 *       subset_c = subset             # <<<<<<<<<<<<<<
 *       item1_c  = item+1
 *       if nitems==None:
 */
  __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_v_subset); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_subset_c = __pyx_t_8;

  /* "gipsy.pyx":2574
 *       err_c = 0
 *       subset_c = subset
 *       item1_c  = item+1             # <<<<<<<<<<<<<<
 *       if nitems==None:
 *          nitems_c = n-item
 */
  __pyx_t_3 = PyNumber_Add(__pyx_v_item, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_item1_c = __pyx_t_8;

  /* "gipsy.pyx":2575
 *       subset_c = subset
 *       item1_c  = item+1
 *       if nitems==None:             # <<<<<<<<<<<<<<
 *          nitems_c = n-item
 *       else:
 */
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_nitems, Py_None, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_9) {

    /* "gipsy.pyx":2576
 *       item1_c  = item+1
 *       if nitems==None:
 *          nitems_c = n-item             # <<<<<<<<<<<<<<
 *       else:
 *          nitems_c = nitems
 */
    __pyx_t_3 = PyNumber_Subtract(__pyx_v_n, __pyx_v_item); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_nitems_c = __pyx_t_8;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "gipsy.pyx":2578
 *          nitems_c = n-item
 *       else:
 *          nitems_c = nitems             # <<<<<<<<<<<<<<
 *       result = range(nitems_c)
 *       if t=='REAL':
 */
    __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_v_nitems); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_nitems_c = __pyx_t_8;
  }
  __pyx_L8:;

  /* "gipsy.pyx":2579
 *       else:
 *          nitems_c = nitems
 *       result = range(nitems_c)             # <<<<<<<<<<<<<<
 *       if t=='REAL':
 *          fresult_c = <float*>malloc(nitems_c*sizeof(float))
 */
  __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2580
 *          nitems_c = nitems
 *       result = range(nitems_c)
 *       if t=='REAL':             # <<<<<<<<<<<<<<
 *          fresult_c = <float*>malloc(nitems_c*sizeof(float))
 *          gdsa_rcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__REAL), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2581
 *       result = range(nitems_c)
 *       if t=='REAL':
 *          fresult_c = <float*>malloc(nitems_c*sizeof(float))             # <<<<<<<<<<<<<<
 *          gdsa_rcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), fresult_c, &item1_c,
 */
    __pyx_v_fresult_c = ((float *)malloc((__pyx_v_nitems_c * (sizeof(float)))));

    /* "gipsy.pyx":2582
 *       if t=='REAL':
 *          fresult_c = <float*>malloc(nitems_c*sizeof(float))
 *          gdsa_rcreal_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), fresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "gipsy.pyx":2584
 *          gdsa_rcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), fresult_c, &item1_c,
 *                        &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *          for i in range(nitems_c): result[i] = fresult_c[i]
 *          free(fresult_c)
 */
    gdsa_rcreal_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_fresult_c, (&__pyx_v_item1_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2585
 *                        tofchar(cname), fresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = fresult_c[i]             # <<<<<<<<<<<<<<
 *          free(fresult_c)
 *       elif t=='DBLE':
 */
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_5)) {
        if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
      } else if (PyTuple_CheckExact(__pyx_t_5)) {
        if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
      } else {
        __pyx_t_3 = __pyx_t_11(__pyx_t_5);
        if (unlikely(!__pyx_t_3)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_3;
      __pyx_t_3 = 0;
      __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = PyFloat_FromDouble((__pyx_v_fresult_c[__pyx_t_12])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyObject_SetItem(__pyx_v_result, __pyx_v_i, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":2586
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = fresult_c[i]
 *          free(fresult_c)             # <<<<<<<<<<<<<<
 *       elif t=='DBLE':
 *          dresult_c = <double*>malloc(nitems_c*sizeof(double))
 */
    free(__pyx_v_fresult_c);
    goto __pyx_L9;
  }

  /* "gipsy.pyx":2587
 *          for i in range(nitems_c): result[i] = fresult_c[i]
 *          free(fresult_c)
 *       elif t=='DBLE':             # <<<<<<<<<<<<<<
 *          dresult_c = <double*>malloc(nitems_c*sizeof(double))
 *          gdsa_rcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__DBLE), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2588
 *          free(fresult_c)
 *       elif t=='DBLE':
 *          dresult_c = <double*>malloc(nitems_c*sizeof(double))             # <<<<<<<<<<<<<<
 *          gdsa_rcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), dresult_c, &item1_c,
 */
    __pyx_v_dresult_c = ((double *)malloc((__pyx_v_nitems_c * (sizeof(double)))));

    /* "gipsy.pyx":2589
 *       elif t=='DBLE':
 *          dresult_c = <double*>malloc(nitems_c*sizeof(double))
 *          gdsa_rcdble_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), dresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "gipsy.pyx":2591
 *          gdsa_rcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), dresult_c, &item1_c,
 *                        &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *          for i in range(nitems_c): result[i] = dresult_c[i]
 *          free(dresult_c)
 */
    gdsa_rcdble_c(__pyx_f_5gipsy_tofchar(__pyx_t_5), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_dresult_c, (&__pyx_v_item1_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":2592
 *                        tofchar(cname), dresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = dresult_c[i]             # <<<<<<<<<<<<<<
 *          free(dresult_c)
 *       elif t=='INT':
 */
    __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_3)) {
        if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++;
      } else if (PyTuple_CheckExact(__pyx_t_3)) {
        if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++;
      } else {
        __pyx_t_5 = __pyx_t_11(__pyx_t_3);
        if (unlikely(!__pyx_t_5)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_5;
      __pyx_t_5 = 0;
      __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = PyFloat_FromDouble((__pyx_v_dresult_c[__pyx_t_12])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyObject_SetItem(__pyx_v_result, __pyx_v_i, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2593
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = dresult_c[i]
 *          free(dresult_c)             # <<<<<<<<<<<<<<
 *       elif t=='INT':
 *          iresult_c = <fint*>malloc(nitems_c*sizeof(fint))
 */
    free(__pyx_v_dresult_c);
    goto __pyx_L9;
  }

  /* "gipsy.pyx":2594
 *          for i in range(nitems_c): result[i] = dresult_c[i]
 *          free(dresult_c)
 *       elif t=='INT':             # <<<<<<<<<<<<<<
 *          iresult_c = <fint*>malloc(nitems_c*sizeof(fint))
 *          gdsa_rcint_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__INT), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2595
 *          free(dresult_c)
 *       elif t=='INT':
 *          iresult_c = <fint*>malloc(nitems_c*sizeof(fint))             # <<<<<<<<<<<<<<
 *          gdsa_rcint_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), iresult_c, &item1_c,
 */
    __pyx_v_iresult_c = ((fint *)malloc((__pyx_v_nitems_c * (sizeof(fint)))));

    /* "gipsy.pyx":2596
 *       elif t=='INT':
 *          iresult_c = <fint*>malloc(nitems_c*sizeof(fint))
 *          gdsa_rcint_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), iresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "gipsy.pyx":2598
 *          gdsa_rcint_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), iresult_c, &item1_c,
 *                        &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *          for i in range(nitems_c): result[i] = iresult_c[i]
 *          free(iresult_c)
 */
    gdsa_rcint_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_iresult_c, (&__pyx_v_item1_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2599
 *                        tofchar(cname), iresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = iresult_c[i]             # <<<<<<<<<<<<<<
 *          free(iresult_c)
 *       elif t=='LOG':
 */
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_5)) {
        if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
      } else if (PyTuple_CheckExact(__pyx_t_5)) {
        if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
      } else {
        __pyx_t_3 = __pyx_t_11(__pyx_t_5);
        if (unlikely(!__pyx_t_3)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_3;
      __pyx_t_3 = 0;
      __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_3 = __Pyx_PyInt_to_py_fint((__pyx_v_iresult_c[__pyx_t_12])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyObject_SetItem(__pyx_v_result, __pyx_v_i, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":2600
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = iresult_c[i]
 *          free(iresult_c)             # <<<<<<<<<<<<<<
 *       elif t=='LOG':
 *          bresult_c = <bool*>malloc(nitems_c*sizeof(bool))
 */
    free(__pyx_v_iresult_c);
    goto __pyx_L9;
  }

  /* "gipsy.pyx":2601
 *          for i in range(nitems_c): result[i] = iresult_c[i]
 *          free(iresult_c)
 *       elif t=='LOG':             # <<<<<<<<<<<<<<
 *          bresult_c = <bool*>malloc(nitems_c*sizeof(bool))
 *          gdsa_rclog_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__LOG), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2602
 *          free(iresult_c)
 *       elif t=='LOG':
 *          bresult_c = <bool*>malloc(nitems_c*sizeof(bool))             # <<<<<<<<<<<<<<
 *          gdsa_rclog_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), bresult_c, &item1_c,
 */
    __pyx_v_bresult_c = ((bool *)malloc((__pyx_v_nitems_c * (sizeof(bool)))));

    /* "gipsy.pyx":2603
 *       elif t=='LOG':
 *          bresult_c = <bool*>malloc(nitems_c*sizeof(bool))
 *          gdsa_rclog_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), bresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "gipsy.pyx":2605
 *          gdsa_rclog_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), bresult_c, &item1_c,
 *                        &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *          for i in range(nitems_c): result[i] = bresult_c[i]
 *          free(bresult_c)
 */
    gdsa_rclog_c(__pyx_f_5gipsy_tofchar(__pyx_t_5), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_bresult_c, (&__pyx_v_item1_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":2606
 *                        tofchar(cname), bresult_c, &item1_c,
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = bresult_c[i]             # <<<<<<<<<<<<<<
 *          free(bresult_c)
 *       elif t.startswith('CHAR'):
 */
    __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_3)) {
        if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++;
      } else if (PyTuple_CheckExact(__pyx_t_3)) {
        if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++;
      } else {
        __pyx_t_5 = __pyx_t_11(__pyx_t_3);
        if (unlikely(!__pyx_t_5)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_5;
      __pyx_t_5 = 0;
      __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __Pyx_PyInt_to_py_bool((__pyx_v_bresult_c[__pyx_t_12])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyObject_SetItem(__pyx_v_result, __pyx_v_i, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2607
 *                        &nitems_c, &err_c)
 *          for i in range(nitems_c): result[i] = bresult_c[i]
 *          free(bresult_c)             # <<<<<<<<<<<<<<
 *       elif t.startswith('CHAR'):
 *          width = int(t[4:])
 */
    free(__pyx_v_bresult_c);
    goto __pyx_L9;
  }

  /* "gipsy.pyx":2608
 *          for i in range(nitems_c): result[i] = bresult_c[i]
 *          free(bresult_c)
 *       elif t.startswith('CHAR'):             # <<<<<<<<<<<<<<
 *          width = int(t[4:])
 *          cresult_c = newfchar(width*nitems_c)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_t, __pyx_n_s__startswith); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_167), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_9) {

    /* "gipsy.pyx":2609
 *          free(bresult_c)
 *       elif t.startswith('CHAR'):
 *          width = int(t[4:])             # <<<<<<<<<<<<<<
 *          cresult_c = newfchar(width*nitems_c)
 *          cresult_c.l = width          # "character*(width) cresult_c[nitems_c]"
 */
    __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_v_t, 4, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __pyx_v_width = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":2610
 *       elif t.startswith('CHAR'):
 *          width = int(t[4:])
 *          cresult_c = newfchar(width*nitems_c)             # <<<<<<<<<<<<<<
 *          cresult_c.l = width          # "character*(width) cresult_c[nitems_c]"
 *          gdsa_rcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
    __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyNumber_Multiply(__pyx_v_width, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_cresult_c = __pyx_f_5gipsy_newfchar(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2611
 *          width = int(t[4:])
 *          cresult_c = newfchar(width*nitems_c)
 *          cresult_c.l = width          # "character*(width) cresult_c[nitems_c]"             # <<<<<<<<<<<<<<
 *          gdsa_rcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), cresult_c, &item1_c, &nitems_c, &err_c)
 */
    __pyx_t_8 = __Pyx_PyInt_from_py_fint(__pyx_v_width); if (unlikely((__pyx_t_8 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cresult_c.l = __pyx_t_8;

    /* "gipsy.pyx":2612
 *          cresult_c = newfchar(width*nitems_c)
 *          cresult_c.l = width          # "character*(width) cresult_c[nitems_c]"
 *          gdsa_rcchar_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), cresult_c, &item1_c, &nitems_c, &err_c)
 *          if err_c>=0:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);

    /* "gipsy.pyx":2613
 *          cresult_c.l = width          # "character*(width) cresult_c[nitems_c]"
 *          gdsa_rcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), cresult_c, &item1_c, &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *          if err_c>=0:
 *             items = cresult_c.a
 */
    gdsa_rcchar_c(__pyx_f_5gipsy_tofchar(__pyx_t_3), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_cresult_c, (&__pyx_v_item1_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2614
 *          gdsa_rcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), cresult_c, &item1_c, &nitems_c, &err_c)
 *          if err_c>=0:             # <<<<<<<<<<<<<<
 *             items = cresult_c.a
 *             for i in range(nitems_c):
 */
    __pyx_t_9 = (__pyx_v_err_c >= 0);
    if (__pyx_t_9) {

      /* "gipsy.pyx":2615
 *                        tofchar(cname), cresult_c, &item1_c, &nitems_c, &err_c)
 *          if err_c>=0:
 *             items = cresult_c.a             # <<<<<<<<<<<<<<
 *             for i in range(nitems_c):
 *                result[i] = items[i*width:(i+1)*width].rstrip()
 */
      __pyx_t_3 = PyBytes_FromString(__pyx_v_cresult_c.a); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __pyx_v_items = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "gipsy.pyx":2616
 *          if err_c>=0:
 *             items = cresult_c.a
 *             for i in range(nitems_c):             # <<<<<<<<<<<<<<
 *                result[i] = items[i*width:(i+1)*width].rstrip()
 *             delfchar(cresult_c)
 */
      __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nitems_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
        __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (PyList_CheckExact(__pyx_t_5)) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
        } else if (PyTuple_CheckExact(__pyx_t_5)) {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++;
        } else {
          __pyx_t_3 = __pyx_t_11(__pyx_t_5);
          if (unlikely(!__pyx_t_3)) {
            if (PyErr_Occurred()) {
              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
              else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_XDECREF(__pyx_v_i);
        __pyx_v_i = __pyx_t_3;
        __pyx_t_3 = 0;

        /* "gipsy.pyx":2617
 *             items = cresult_c.a
 *             for i in range(nitems_c):
 *                result[i] = items[i*width:(i+1)*width].rstrip()             # <<<<<<<<<<<<<<
 *             delfchar(cresult_c)
 *       else:
 */
        __pyx_t_3 = PyNumber_Multiply(__pyx_v_i, __pyx_v_width); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_width); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_items), __pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_4));
        __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_t_4), __pyx_n_s__rstrip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
        __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (PyObject_SetItem(__pyx_v_result, __pyx_v_i, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "gipsy.pyx":2618
 *             for i in range(nitems_c):
 *                result[i] = items[i*width:(i+1)*width].rstrip()
 *             delfchar(cresult_c)             # <<<<<<<<<<<<<<
 *       else:
 *          raiseGds(-1)
 */
      __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_cresult_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L18;
    }
    __pyx_L18:;
    goto __pyx_L9;
  }
  /*else*/ {

    /* "gipsy.pyx":2620
 *             delfchar(cresult_c)
 *       else:
 *          raiseGds(-1)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_168), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __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;
  }
  __pyx_L9:;

  /* "gipsy.pyx":2621
 *       else:
 *          raiseGds(-1)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 *       return result
 */
  __pyx_t_9 = (__pyx_v_err_c < 0);
  if (__pyx_t_9) {

    /* "gipsy.pyx":2622
 *          raiseGds(-1)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L21;
  }
  __pyx_L21:;

  /* "gipsy.pyx":2623
 *       if err_c<0:
 *          raiseGds(err_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def __wcol(self, tname, cname, data, subset=0, item=-1, nitems=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("gipsy.Set.__rcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_width);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2625
 *       return result
 * 
 *    def __wcol(self, tname, cname, data, subset=0, item=-1, nitems=None):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fint err_c, subset_c, item_c, nitems_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_39__wcol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_39__wcol[] = "(internal method)";
static PyMethodDef __pyx_mdef_5gipsy_3Set_39__wcol = {__Pyx_NAMESTR("__wcol"), (PyCFunction)__pyx_pf_5gipsy_3Set_39__wcol, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_39__wcol)};
static PyObject *__pyx_pf_5gipsy_3Set_39__wcol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  PyObject *__pyx_v_cname = 0;
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_subset = 0;
  PyObject *__pyx_v_item = 0;
  PyObject *__pyx_v_nitems = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_subset_c;
  fint __pyx_v_item_c;
  fint __pyx_v_nitems_c;
  fchar __pyx_v_chararr_c;
  long __pyx_v_pointer_c;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_pointer = NULL;
  PyObject *__pyx_v_width = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  fint __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  long __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__cname,&__pyx_n_s__data,&__pyx_n_s__subset,&__pyx_n_s__item,&__pyx_n_s__nitems,0};
  __Pyx_RefNannySetupContext("__wcol");
  __pyx_self = __pyx_self;
  {
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[4] = ((PyObject *)__pyx_int_0);
    values[5] = ((PyObject *)__pyx_int_neg_1);
    values[6] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__wcol", 0, 4, 7, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cname);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__wcol", 0, 4, 7, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__wcol", 0, 4, 7, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__item);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nitems);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__wcol") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    __pyx_v_cname = values[2];
    __pyx_v_data = values[3];
    __pyx_v_subset = values[4];
    __pyx_v_item = values[5];
    __pyx_v_nitems = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__wcol", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.__wcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_item);
  __Pyx_INCREF(__pyx_v_nitems);

  /* "gipsy.pyx":2634
 *       cdef fchar  chararr_c
 *       cdef long   pointer_c
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       err_c = 0
 *       subset_c = subset
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2634; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2635
 *       cdef long   pointer_c
 *       self.__wcheck()
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       subset_c = subset
 *       (t, x, x, x) = self.colinq(tname, cname, subset)
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2636
 *       self.__wcheck()
 *       err_c = 0
 *       subset_c = subset             # <<<<<<<<<<<<<<
 *       (t, x, x, x) = self.colinq(tname, cname, subset)
 *       if nitems==None:
 */
  __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_v_subset); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_subset_c = __pyx_t_3;

  /* "gipsy.pyx":2637
 *       err_c = 0
 *       subset_c = subset
 *       (t, x, x, x) = self.colinq(tname, cname, subset)             # <<<<<<<<<<<<<<
 *       if nitems==None:
 *          try:
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__colinq); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_tname);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tname);
  __Pyx_GIVEREF(__pyx_v_tname);
  __Pyx_INCREF(__pyx_v_cname);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_cname);
  __Pyx_GIVEREF(__pyx_v_cname);
  __Pyx_INCREF(__pyx_v_subset);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_subset);
  __Pyx_GIVEREF(__pyx_v_subset);
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
    PyObject* sequence = __pyx_t_4;
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 4)) {
        if (PyTuple_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 4)) {
        if (PyList_GET_SIZE(sequence) > 4) __Pyx_RaiseTooManyValuesError(4);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 3); 
    }
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
    index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __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 = 2; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 3; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __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;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L7_unpacking_done:;
  }
  __pyx_v_t = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_v_x = __pyx_t_2;
  __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_x);
  __pyx_v_x = __pyx_t_5;
  __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_x);
  __pyx_v_x = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "gipsy.pyx":2638
 *       subset_c = subset
 *       (t, x, x, x) = self.colinq(tname, cname, subset)
 *       if nitems==None:             # <<<<<<<<<<<<<<
 *          try:
 *             nitems = len(data)
 */
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_nitems, Py_None, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_9) {

    /* "gipsy.pyx":2639
 *       (t, x, x, x) = self.colinq(tname, cname, subset)
 *       if nitems==None:
 *          try:             # <<<<<<<<<<<<<<
 *             nitems = len(data)
 *          except:
 */
    {
      __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      /*try:*/ {

        /* "gipsy.pyx":2640
 *       if nitems==None:
 *          try:
 *             nitems = len(data)             # <<<<<<<<<<<<<<
 *          except:
 *             nitems = 1
 */
        __pyx_t_13 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_v_nitems);
        __pyx_v_nitems = __pyx_t_4;
        __pyx_t_4 = 0;
      }
      __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;
      goto __pyx_L16_try_end;
      __pyx_L9_error:;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "gipsy.pyx":2641
 *          try:
 *             nitems = len(data)
 *          except:             # <<<<<<<<<<<<<<
 *             nitems = 1
 *       nitems_c = nitems
 */
      /*except:*/ {
        __Pyx_AddTraceback("gipsy.Set.__wcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2641; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GOTREF(__pyx_t_5);

        /* "gipsy.pyx":2642
 *             nitems = len(data)
 *          except:
 *             nitems = 1             # <<<<<<<<<<<<<<
 *       nitems_c = nitems
 *       if item==-1: item = 0
 */
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_DECREF(__pyx_v_nitems);
        __pyx_v_nitems = __pyx_int_1;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L10_exception_handled;
      }
      __pyx_L11_except_error:;
      __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);
      goto __pyx_L1_error;
      __pyx_L10_exception_handled:;
      __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_L16_try_end:;
    }
    goto __pyx_L8;
  }
  __pyx_L8:;

  /* "gipsy.pyx":2643
 *          except:
 *             nitems = 1
 *       nitems_c = nitems             # <<<<<<<<<<<<<<
 *       if item==-1: item = 0
 *       else:        item = item+1
 */
  __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_v_nitems); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nitems_c = __pyx_t_3;

  /* "gipsy.pyx":2644
 *             nitems = 1
 *       nitems_c = nitems
 *       if item==-1: item = 0             # <<<<<<<<<<<<<<
 *       else:        item = item+1
 *       item_c = item
 */
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_item, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_9) {
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF(__pyx_v_item);
    __pyx_v_item = __pyx_int_0;
    goto __pyx_L19;
  }
  /*else*/ {

    /* "gipsy.pyx":2645
 *       nitems_c = nitems
 *       if item==-1: item = 0
 *       else:        item = item+1             # <<<<<<<<<<<<<<
 *       item_c = item
 *       if t=='REAL':
 */
    __pyx_t_5 = PyNumber_Add(__pyx_v_item, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_v_item);
    __pyx_v_item = __pyx_t_5;
    __pyx_t_5 = 0;
  }
  __pyx_L19:;

  /* "gipsy.pyx":2646
 *       if item==-1: item = 0
 *       else:        item = item+1
 *       item_c = item             # <<<<<<<<<<<<<<
 *       if t=='REAL':
 *          pointer = realptr(data, nitems)
 */
  __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_v_item); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_item_c = __pyx_t_3;

  /* "gipsy.pyx":2647
 *       else:        item = item+1
 *       item_c = item
 *       if t=='REAL':             # <<<<<<<<<<<<<<
 *          pointer = realptr(data, nitems)
 *          pointer_c = pointer.ptr
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__REAL), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2648
 *       item_c = item
 *       if t=='REAL':
 *          pointer = realptr(data, nitems)             # <<<<<<<<<<<<<<
 *          pointer_c = pointer.ptr
 *          gdsa_wcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_v_data);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
    __Pyx_GIVEREF(__pyx_v_data);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_pointer = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2649
 *       if t=='REAL':
 *          pointer = realptr(data, nitems)
 *          pointer_c = pointer.ptr             # <<<<<<<<<<<<<<
 *          gdsa_wcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), <float*>pointer_c, &item_c,
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_pointer, __pyx_n_s__ptr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_AsLong(__pyx_t_4); if (unlikely((__pyx_t_14 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pointer_c = __pyx_t_14;

    /* "gipsy.pyx":2650
 *          pointer = realptr(data, nitems)
 *          pointer_c = pointer.ptr
 *          gdsa_wcreal_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), <float*>pointer_c, &item_c,
 *                        &nitems_c, &err_c)
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "gipsy.pyx":2652
 *          gdsa_wcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), <float*>pointer_c, &item_c,
 *                        &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *       elif t=='DBLE':
 *          pointer = dbleptr(data, nitems)
 */
    gdsa_wcreal_c(__pyx_f_5gipsy_tofchar(__pyx_t_4), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), ((float *)__pyx_v_pointer_c), (&__pyx_v_item_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L20;
  }

  /* "gipsy.pyx":2653
 *                        tofchar(cname), <float*>pointer_c, &item_c,
 *                        &nitems_c, &err_c)
 *       elif t=='DBLE':             # <<<<<<<<<<<<<<
 *          pointer = dbleptr(data, nitems)
 *          pointer_c = pointer.ptr
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__DBLE), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2654
 *                        &nitems_c, &err_c)
 *       elif t=='DBLE':
 *          pointer = dbleptr(data, nitems)             # <<<<<<<<<<<<<<
 *          pointer_c = pointer.ptr
 *          gdsa_wcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__dbleptr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_v_data);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
    __Pyx_GIVEREF(__pyx_v_data);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_pointer = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":2655
 *       elif t=='DBLE':
 *          pointer = dbleptr(data, nitems)
 *          pointer_c = pointer.ptr             # <<<<<<<<<<<<<<
 *          gdsa_wcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), <double*>pointer_c, &item_c,
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pointer, __pyx_n_s__ptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_14 = __Pyx_PyInt_AsLong(__pyx_t_5); if (unlikely((__pyx_t_14 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_pointer_c = __pyx_t_14;

    /* "gipsy.pyx":2656
 *          pointer = dbleptr(data, nitems)
 *          pointer_c = pointer.ptr
 *          gdsa_wcdble_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), <double*>pointer_c, &item_c,
 *                        &nitems_c, &err_c)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "gipsy.pyx":2658
 *          gdsa_wcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), <double*>pointer_c, &item_c,
 *                        &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *       elif t=='INT':
 *          pointer = fintptr(data, nitems)
 */
    gdsa_wcdble_c(__pyx_f_5gipsy_tofchar(__pyx_t_5), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), ((double *)__pyx_v_pointer_c), (&__pyx_v_item_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L20;
  }

  /* "gipsy.pyx":2659
 *                        tofchar(cname), <double*>pointer_c, &item_c,
 *                        &nitems_c, &err_c)
 *       elif t=='INT':             # <<<<<<<<<<<<<<
 *          pointer = fintptr(data, nitems)
 *          pointer_c = pointer.ptr
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__INT), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2660
 *                        &nitems_c, &err_c)
 *       elif t=='INT':
 *          pointer = fintptr(data, nitems)             # <<<<<<<<<<<<<<
 *          pointer_c = pointer.ptr
 *          gdsa_wcint_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__fintptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_v_data);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
    __Pyx_GIVEREF(__pyx_v_data);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_pointer = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2661
 *       elif t=='INT':
 *          pointer = fintptr(data, nitems)
 *          pointer_c = pointer.ptr             # <<<<<<<<<<<<<<
 *          gdsa_wcint_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                       tofchar(cname), <fint*>pointer_c, &item_c,
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_pointer, __pyx_n_s__ptr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_AsLong(__pyx_t_4); if (unlikely((__pyx_t_14 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pointer_c = __pyx_t_14;

    /* "gipsy.pyx":2662
 *          pointer = fintptr(data, nitems)
 *          pointer_c = pointer.ptr
 *          gdsa_wcint_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                       tofchar(cname), <fint*>pointer_c, &item_c,
 *                       &nitems_c, &err_c)
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);

    /* "gipsy.pyx":2664
 *          gdsa_wcint_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                       tofchar(cname), <fint*>pointer_c, &item_c,
 *                       &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *       elif t=='LOG':
 *          pointer = boolptr(data, nitems)
 */
    gdsa_wcint_c(__pyx_f_5gipsy_tofchar(__pyx_t_4), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), ((fint *)__pyx_v_pointer_c), (&__pyx_v_item_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L20;
  }

  /* "gipsy.pyx":2665
 *                       tofchar(cname), <fint*>pointer_c, &item_c,
 *                       &nitems_c, &err_c)
 *       elif t=='LOG':             # <<<<<<<<<<<<<<
 *          pointer = boolptr(data, nitems)
 *          pointer_c = pointer.ptr
 */
  __pyx_t_9 = __Pyx_PyString_Equals(__pyx_v_t, ((PyObject *)__pyx_n_s__LOG), Py_EQ); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_9) {

    /* "gipsy.pyx":2666
 *                       &nitems_c, &err_c)
 *       elif t=='LOG':
 *          pointer = boolptr(data, nitems)             # <<<<<<<<<<<<<<
 *          pointer_c = pointer.ptr
 *          gdsa_wclog_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__boolptr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_v_data);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
    __Pyx_GIVEREF(__pyx_v_data);
    __Pyx_INCREF(__pyx_v_nitems);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_nitems);
    __Pyx_GIVEREF(__pyx_v_nitems);
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_pointer = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":2667
 *       elif t=='LOG':
 *          pointer = boolptr(data, nitems)
 *          pointer_c = pointer.ptr             # <<<<<<<<<<<<<<
 *          gdsa_wclog_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                       tofchar(cname), <bool*>pointer_c, &item_c,
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pointer, __pyx_n_s__ptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_14 = __Pyx_PyInt_AsLong(__pyx_t_5); if (unlikely((__pyx_t_14 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_pointer_c = __pyx_t_14;

    /* "gipsy.pyx":2668
 *          pointer = boolptr(data, nitems)
 *          pointer_c = pointer.ptr
 *          gdsa_wclog_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                       tofchar(cname), <bool*>pointer_c, &item_c,
 *                       &nitems_c, &err_c)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "gipsy.pyx":2670
 *          gdsa_wclog_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                       tofchar(cname), <bool*>pointer_c, &item_c,
 *                       &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *       else:
 *          width = int(t[4:])
 */
    gdsa_wclog_c(__pyx_f_5gipsy_tofchar(__pyx_t_5), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), ((bool *)__pyx_v_pointer_c), (&__pyx_v_item_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L20;
  }
  /*else*/ {

    /* "gipsy.pyx":2672
 *                       &nitems_c, &err_c)
 *       else:
 *          width = int(t[4:])             # <<<<<<<<<<<<<<
 *          chararr_c = chardata(data, width, nitems)
 *          gdsa_wcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 */
    __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_v_t, 4, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_v_width = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":2673
 *       else:
 *          width = int(t[4:])
 *          chararr_c = chardata(data, width, nitems)             # <<<<<<<<<<<<<<
 *          gdsa_wcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), chararr_c, &item_c, &nitems_c, &err_c)
 */
    __pyx_v_chararr_c = __pyx_f_5gipsy_chardata(__pyx_v_data, __pyx_v_width, __pyx_v_nitems);

    /* "gipsy.pyx":2674
 *          width = int(t[4:])
 *          chararr_c = chardata(data, width, nitems)
 *          gdsa_wcchar_c(tofchar(self.name), &subset_c, tofchar(tname),             # <<<<<<<<<<<<<<
 *                        tofchar(cname), chararr_c, &item_c, &nitems_c, &err_c)
 *          delfchar(chararr_c)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);

    /* "gipsy.pyx":2675
 *          chararr_c = chardata(data, width, nitems)
 *          gdsa_wcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), chararr_c, &item_c, &nitems_c, &err_c)             # <<<<<<<<<<<<<<
 *          delfchar(chararr_c)
 *       if err_c<0:
 */
    gdsa_wcchar_c(__pyx_f_5gipsy_tofchar(__pyx_t_5), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), __pyx_f_5gipsy_tofchar(__pyx_v_cname), __pyx_v_chararr_c, (&__pyx_v_item_c), (&__pyx_v_nitems_c), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":2676
 *          gdsa_wcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
 *                        tofchar(cname), chararr_c, &item_c, &nitems_c, &err_c)
 *          delfchar(chararr_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
    __pyx_t_5 = __pyx_f_5gipsy_delfchar(__pyx_v_chararr_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_L20:;

  /* "gipsy.pyx":2677
 *                        tofchar(cname), chararr_c, &item_c, &nitems_c, &err_c)
 *          delfchar(chararr_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_9 = (__pyx_v_err_c < 0);
  if (__pyx_t_9) {

    /* "gipsy.pyx":2678
 *          delfchar(chararr_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def deltab(self, tname, fint subset_c=0):
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L21;
  }
  __pyx_L21:;

  __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_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("gipsy.Set.__wcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_pointer);
  __Pyx_XDECREF(__pyx_v_width);
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XDECREF(__pyx_v_nitems);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2680
 *          raiseGds(err_c)
 * 
 *    def deltab(self, tname, fint subset_c=0):             # <<<<<<<<<<<<<<
 *       "Delete a table. See gdsa_deltab.dc2"
 *       cdef fint err_c
 */

static PyObject *__pyx_pf_5gipsy_3Set_40deltab(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_3Set_40deltab[] = "Delete a table. See gdsa_deltab.dc2";
static PyMethodDef __pyx_mdef_5gipsy_3Set_40deltab = {__Pyx_NAMESTR("deltab"), (PyCFunction)__pyx_pf_5gipsy_3Set_40deltab, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_3Set_40deltab)};
static PyObject *__pyx_pf_5gipsy_3Set_40deltab(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_tname = 0;
  fint __pyx_v_subset_c;
  fint __pyx_v_err_c;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__tname,&__pyx_n_s__subset_c,0};
  __Pyx_RefNannySetupContext("deltab");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tname);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("deltab", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset_c);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "deltab") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_tname = values[1];
    if (values[2]) {
      __pyx_v_subset_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_subset_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_subset_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("deltab", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.deltab", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2683
 *       "Delete a table. See gdsa_deltab.dc2"
 *       cdef fint err_c
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       err_c = 0
 *       gdsa_deltab_c(tofchar(self.name), &subset_c, tofchar(tname), &err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2683; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2684
 *       cdef fint err_c
 *       self.__wcheck()
 *       err_c = 0             # <<<<<<<<<<<<<<
 *       gdsa_deltab_c(tofchar(self.name), &subset_c, tofchar(tname), &err_c)
 *       if err_c<0:
 */
  __pyx_v_err_c = 0;

  /* "gipsy.pyx":2685
 *       self.__wcheck()
 *       err_c = 0
 *       gdsa_deltab_c(tofchar(self.name), &subset_c, tofchar(tname), &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  gdsa_deltab_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), (&__pyx_v_subset_c), __pyx_f_5gipsy_tofchar(__pyx_v_tname), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2686
 *       err_c = 0
 *       gdsa_deltab_c(tofchar(self.name), &subset_c, tofchar(tname), &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2687
 *       gdsa_deltab_c(tofchar(self.name), &subset_c, tofchar(tname), &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def subimage(self, level, box=True):
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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("gipsy.Set.deltab", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2689
 *          raiseGds(err_c)
 * 
 *    def subimage(self, level, box=True):             # <<<<<<<<<<<<<<
 * 
 * # Obtain a numpy sub-array corresponding
 */

static PyObject *__pyx_pf_5gipsy_3Set_41subimage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_41subimage = {__Pyx_NAMESTR("subimage"), (PyCFunction)__pyx_pf_5gipsy_3Set_41subimage, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_41subimage(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_box = 0;
  PyObject *__pyx_v_image = NULL;
  PyObject *__pyx_v_setlo = NULL;
  PyObject *__pyx_v_sethi = NULL;
  PyObject *__pyx_v_sublo = NULL;
  PyObject *__pyx_v_subhi = NULL;
  PyObject *__pyx_v_axperm = NULL;
  PyObject *__pyx_v_subax = NULL;
  PyObject *__pyx_v_plak = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_j = NULL;
  PyObject *__pyx_v_inxst = NULL;
  PyObject *__pyx_v_inxlo = NULL;
  PyObject *__pyx_v_inxhi = NULL;
  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)(PyObject *);
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__level,&__pyx_n_s__box,0};
  __Pyx_RefNannySetupContext("subimage");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = __pyx_k_169;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("subimage", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__box);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "subimage") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_level = values[1];
    __pyx_v_box = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("subimage", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.subimage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2694
 * # to the subset level.
 * 
 *       image = self.image             # <<<<<<<<<<<<<<
 *       setlo, sethi = self.range(0)
 *       sublo, subhi = self.range(level)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__image); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_image = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2695
 * 
 *       image = self.image
 *       setlo, sethi = self.range(0)             # <<<<<<<<<<<<<<
 *       sublo, subhi = self.range(level)
 *       axperm = self.axperm('inside')
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_170), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
    PyObject* sequence = __pyx_t_2;
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
        if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L7_unpacking_done;
    __pyx_L6_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L7_unpacking_done:;
  }
  __pyx_v_setlo = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_v_sethi = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2696
 *       image = self.image
 *       setlo, sethi = self.range(0)
 *       sublo, subhi = self.range(level)             # <<<<<<<<<<<<<<
 *       axperm = self.axperm('inside')
 *       subax = 0
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
        if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __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);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L9_unpacking_done;
    __pyx_L8_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L9_unpacking_done:;
  }
  __pyx_v_sublo = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_subhi = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2697
 *       setlo, sethi = self.range(0)
 *       sublo, subhi = self.range(level)
 *       axperm = self.axperm('inside')             # <<<<<<<<<<<<<<
 *       subax = 0
 *       plak = []
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axperm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_171), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_axperm = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2698
 *       sublo, subhi = self.range(level)
 *       axperm = self.axperm('inside')
 *       subax = 0             # <<<<<<<<<<<<<<
 *       plak = []
 *       for i in range(self.naxis):
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_subax = __pyx_int_0;

  /* "gipsy.pyx":2699
 *       axperm = self.axperm('inside')
 *       subax = 0
 *       plak = []             # <<<<<<<<<<<<<<
 *       for i in range(self.naxis):
 *          j = self.naxis-i-1
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_plak = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2700
 *       subax = 0
 *       plak = []
 *       for i in range(self.naxis):             # <<<<<<<<<<<<<<
 *          j = self.naxis-i-1
 *          inxst = self.grid(j,setlo)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __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_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++;
    } else if (PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++;
    } else {
      __pyx_t_2 = __pyx_t_7(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2701
 *       plak = []
 *       for i in range(self.naxis):
 *          j = self.naxis-i-1             # <<<<<<<<<<<<<<
 *          inxst = self.grid(j,setlo)
 *          if box and j in axperm:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2701; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2701; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2701; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_v_j);
    __pyx_v_j = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2702
 *       for i in range(self.naxis):
 *          j = self.naxis-i-1
 *          inxst = self.grid(j,setlo)             # <<<<<<<<<<<<<<
 *          if box and j in axperm:
 *             inxlo = self.blo[-subax-1] - inxst
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_v_j);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_j);
    __Pyx_GIVEREF(__pyx_v_j);
    __Pyx_INCREF(__pyx_v_setlo);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_setlo);
    __Pyx_GIVEREF(__pyx_v_setlo);
    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_v_inxst);
    __pyx_v_inxst = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2703
 *          j = self.naxis-i-1
 *          inxst = self.grid(j,setlo)
 *          if box and j in axperm:             # <<<<<<<<<<<<<<
 *             inxlo = self.blo[-subax-1] - inxst
 *             inxhi = self.bhi[-subax-1] - inxst
 */
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_box); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_8) {
      __pyx_t_9 = ((PySequence_Contains(__pyx_v_axperm, __pyx_v_j))); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_10 = __pyx_t_9;
    } else {
      __pyx_t_10 = __pyx_t_8;
    }
    if (__pyx_t_10) {

      /* "gipsy.pyx":2704
 *          inxst = self.grid(j,setlo)
 *          if box and j in axperm:
 *             inxlo = self.blo[-subax-1] - inxst             # <<<<<<<<<<<<<<
 *             inxhi = self.bhi[-subax-1] - inxst
 *             subax = subax + 1
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__blo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyNumber_Negative(__pyx_v_subax); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_GetItem(__pyx_t_4, __pyx_t_2); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_v_inxst); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_v_inxlo);
      __pyx_v_inxlo = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2705
 *          if box and j in axperm:
 *             inxlo = self.blo[-subax-1] - inxst
 *             inxhi = self.bhi[-subax-1] - inxst             # <<<<<<<<<<<<<<
 *             subax = subax + 1
 *          else:
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__bhi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyNumber_Negative(__pyx_v_subax); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyNumber_Subtract(__pyx_t_3, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_GetItem(__pyx_t_2, __pyx_t_4); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Subtract(__pyx_t_3, __pyx_v_inxst); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_v_inxhi);
      __pyx_v_inxhi = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "gipsy.pyx":2706
 *             inxlo = self.blo[-subax-1] - inxst
 *             inxhi = self.bhi[-subax-1] - inxst
 *             subax = subax + 1             # <<<<<<<<<<<<<<
 *          else:
 *             inxlo = self.grid(j, sublo) - inxst
 */
      __pyx_t_4 = PyNumber_Add(__pyx_v_subax, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_v_subax);
      __pyx_v_subax = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L12;
    }
    /*else*/ {

      /* "gipsy.pyx":2708
 *             subax = subax + 1
 *          else:
 *             inxlo = self.grid(j, sublo) - inxst             # <<<<<<<<<<<<<<
 *             inxhi = self.grid(j, subhi) - inxst
 *          plak.append(slice(inxlo, inxhi+1))
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grid); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_INCREF(__pyx_v_j);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_j);
      __Pyx_GIVEREF(__pyx_v_j);
      __Pyx_INCREF(__pyx_v_sublo);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_sublo);
      __Pyx_GIVEREF(__pyx_v_sublo);
      __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_v_inxst); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_v_inxlo);
      __pyx_v_inxlo = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "gipsy.pyx":2709
 *          else:
 *             inxlo = self.grid(j, sublo) - inxst
 *             inxhi = self.grid(j, subhi) - inxst             # <<<<<<<<<<<<<<
 *          plak.append(slice(inxlo, inxhi+1))
 * 
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grid); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_j);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_j);
      __Pyx_GIVEREF(__pyx_v_j);
      __Pyx_INCREF(__pyx_v_subhi);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_subhi);
      __Pyx_GIVEREF(__pyx_v_subhi);
      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_4, __pyx_v_inxst); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_v_inxhi);
      __pyx_v_inxhi = __pyx_t_2;
      __pyx_t_2 = 0;
    }
    __pyx_L12:;

    /* "gipsy.pyx":2710
 *             inxlo = self.grid(j, sublo) - inxst
 *             inxhi = self.grid(j, subhi) - inxst
 *          plak.append(slice(inxlo, inxhi+1))             # <<<<<<<<<<<<<<
 * 
 *       result = image[plak].squeeze()
 */
    if (unlikely(((PyObject *)__pyx_v_plak) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2710; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_2 = PyNumber_Add(__pyx_v_inxhi, __pyx_int_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __Pyx_INCREF(__pyx_v_inxlo);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_inxlo);
    __Pyx_GIVEREF(__pyx_v_inxlo);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PySlice_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_11 = PyList_Append(__pyx_v_plak, __pyx_t_2); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2712
 *          plak.append(slice(inxlo, inxhi+1))
 * 
 *       result = image[plak].squeeze()             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
  __pyx_t_1 = PyObject_GetItem(__pyx_v_image, ((PyObject *)__pyx_v_plak)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__squeeze); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2713
 * 
 *       result = image[plak].squeeze()
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def axperm(self, mode=''):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.Set.subimage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_image);
  __Pyx_XDECREF(__pyx_v_setlo);
  __Pyx_XDECREF(__pyx_v_sethi);
  __Pyx_XDECREF(__pyx_v_sublo);
  __Pyx_XDECREF(__pyx_v_subhi);
  __Pyx_XDECREF(__pyx_v_axperm);
  __Pyx_XDECREF(__pyx_v_subax);
  __Pyx_XDECREF(__pyx_v_plak);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_j);
  __Pyx_XDECREF(__pyx_v_inxst);
  __Pyx_XDECREF(__pyx_v_inxlo);
  __Pyx_XDECREF(__pyx_v_inxhi);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2715
 *       return result
 * 
 *    def axperm(self, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Obtain a list with the axis permutations of the set, subset
 */

static PyObject *__pyx_pf_5gipsy_3Set_42axperm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_42axperm = {__Pyx_NAMESTR("axperm"), (PyCFunction)__pyx_pf_5gipsy_3Set_42axperm, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_42axperm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_mode = 0;
  PyObject *__pyx_v_naxis = NULL;
  PyObject *__pyx_v_axes = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_sample = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_i = NULL;
  Py_ssize_t __pyx_v_indim;
  PyObject *__pyx_v_parts = NULL;
  PyObject *__pyx_v_part = NULL;
  PyObject *__pyx_v_axname = 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 *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("axperm");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "axperm") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_mode = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("axperm", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.axperm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2722
 * # if mode=='outside', only the axis permutation outside the subset.
 * 
 *       naxis = self.naxis             # <<<<<<<<<<<<<<
 * #      axes = map(lambda s x: x.upper(), self.axnames) ### changed into:
 *       axes = []
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_naxis = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2724
 *       naxis = self.naxis
 * #      axes = map(lambda s x: x.upper(), self.axnames) ### changed into:
 *       axes = []             # <<<<<<<<<<<<<<
 *       for x in self.axnames:
 *          axes.append(x.upper())
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_axes = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2725
 * #      axes = map(lambda s x: x.upper(), self.axnames) ### changed into:
 *       axes = []
 *       for x in self.axnames:             # <<<<<<<<<<<<<<
 *          axes.append(x.upper())
 * #                                                      ### (end)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnames); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (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_filename = __pyx_f[0]; __pyx_lineno = 2725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_x);
    __pyx_v_x = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2726
 *       axes = []
 *       for x in self.axnames:
 *          axes.append(x.upper())             # <<<<<<<<<<<<<<
 * #                                                      ### (end)
 *       sample = self.grids(self.subsets[0])
 */
    if (unlikely(((PyObject *)__pyx_v_axes) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = PyList_Append(__pyx_v_axes, __pyx_t_5); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2728
 *          axes.append(x.upper())
 * #                                                      ### (end)
 *       sample = self.grids(self.subsets[0])             # <<<<<<<<<<<<<<
 * 
 *       result = []
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_5, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __pyx_v_sample = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2730
 *       sample = self.grids(self.subsets[0])
 * 
 *       result = []             # <<<<<<<<<<<<<<
 * 
 *       ###  axis numbers of the subsets --
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2733
 * 
 *       ###  axis numbers of the subsets --
 *       for i in range(naxis):             # <<<<<<<<<<<<<<
 *          if sample[i] is None:
 *             result.append(i)
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_naxis);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_naxis);
  __Pyx_GIVEREF(__pyx_v_naxis);
  __pyx_t_5 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":2734
 *       ###  axis numbers of the subsets --
 *       for i in range(naxis):
 *          if sample[i] is None:             # <<<<<<<<<<<<<<
 *             result.append(i)
 * 
 */
    __pyx_t_5 = PyObject_GetItem(__pyx_v_sample, __pyx_v_i); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = (__pyx_t_5 == Py_None);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {

      /* "gipsy.pyx":2735
 *       for i in range(naxis):
 *          if sample[i] is None:
 *             result.append(i)             # <<<<<<<<<<<<<<
 * 
 *       if mode.lower()=='inside': return result
 */
      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2735; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_6 = PyList_Append(__pyx_v_result, __pyx_v_i); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L10;
    }
    __pyx_L10:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2737
 *             result.append(i)
 * 
 *       if mode.lower()=='inside': return result             # <<<<<<<<<<<<<<
 * 
 *       indim = len(result)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_mode, __pyx_n_s__lower); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __Pyx_PyString_Equals(__pyx_t_5, ((PyObject *)__pyx_n_s__inside), Py_EQ); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_7) {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_result));
    __pyx_r = ((PyObject *)__pyx_v_result);
    goto __pyx_L0;
    goto __pyx_L11;
  }
  __pyx_L11:;

  /* "gipsy.pyx":2739
 *       if mode.lower()=='inside': return result
 * 
 *       indim = len(result)             # <<<<<<<<<<<<<<
 * #      parts = map(lambda x: x.upper(), self.spec.split()) ### changed into:
 *       parts = []
 */
  if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2739; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_3 = PyList_GET_SIZE(((PyObject *)__pyx_v_result)); 
  __pyx_v_indim = __pyx_t_3;

  /* "gipsy.pyx":2741
 *       indim = len(result)
 * #      parts = map(lambda x: x.upper(), self.spec.split()) ### changed into:
 *       parts = []             # <<<<<<<<<<<<<<
 *       for x in self.spec.split():
 *          parts.append(x.upper())
 */
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_parts = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":2742
 * #      parts = map(lambda x: x.upper(), self.spec.split()) ### changed into:
 *       parts = []
 *       for x in self.spec.split():             # <<<<<<<<<<<<<<
 *          parts.append(x.upper())
 * #                                                          ### end
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__spec); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++;
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF(__pyx_v_x);
    __pyx_v_x = __pyx_t_5;
    __pyx_t_5 = 0;

    /* "gipsy.pyx":2743
 *       parts = []
 *       for x in self.spec.split():
 *          parts.append(x.upper())             # <<<<<<<<<<<<<<
 * #                                                          ### end
 * 
 */
    if (unlikely(((PyObject *)__pyx_v_parts) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2743; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__upper); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = PyList_Append(__pyx_v_parts, __pyx_t_2); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2747
 * 
 *       ###  axis numbers outside the subsets --
 *       for part in parts[1:]:             # <<<<<<<<<<<<<<
 *          for axname in axes:
 *             if part==axname[:len(part)]:
 */
  __pyx_t_1 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_parts), 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (unlikely(((PyObject *)__pyx_t_1) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2747; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_2 = ((PyObject *)__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  for (;;) {
    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
    __Pyx_XDECREF(__pyx_v_part);
    __pyx_v_part = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2748
 *       ###  axis numbers outside the subsets --
 *       for part in parts[1:]:
 *          for axname in axes:             # <<<<<<<<<<<<<<
 *             if part==axname[:len(part)]:
 *                result.append(self.axnum(axname))
 */
    if (unlikely(((PyObject *)__pyx_v_axes) == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2748; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_1 = ((PyObject *)__pyx_v_axes); __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++;
      __Pyx_XDECREF(__pyx_v_axname);
      __pyx_v_axname = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "gipsy.pyx":2749
 *       for part in parts[1:]:
 *          for axname in axes:
 *             if part==axname[:len(part)]:             # <<<<<<<<<<<<<<
 *                result.append(self.axnum(axname))
 * 
 */
      __pyx_t_9 = PyObject_Length(__pyx_v_part); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __Pyx_PySequence_GetSlice(__pyx_v_axname, 0, __pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = PyObject_RichCompare(__pyx_v_part, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_7) {

        /* "gipsy.pyx":2750
 *          for axname in axes:
 *             if part==axname[:len(part)]:
 *                result.append(self.axnum(axname))             # <<<<<<<<<<<<<<
 * 
 *       ###  implied last axis --
 */
        if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2750; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
        }
        __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_5));
        __Pyx_INCREF(__pyx_v_axname);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_axname);
        __Pyx_GIVEREF(__pyx_v_axname);
        __pyx_t_11 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
        __pyx_t_6 = PyList_Append(__pyx_v_result, __pyx_t_11); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L18;
      }
      __pyx_L18:;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2753
 * 
 *       ###  implied last axis --
 *       if len(result)<naxis:             # <<<<<<<<<<<<<<
 *          for i in range(naxis):
 *             if i not in result:
 */
  if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_3 = PyList_GET_SIZE(((PyObject *)__pyx_v_result)); 
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_naxis, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_7) {

    /* "gipsy.pyx":2754
 *       ###  implied last axis --
 *       if len(result)<naxis:
 *          for i in range(naxis):             # <<<<<<<<<<<<<<
 *             if i not in result:
 *                result.append(i)
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_v_naxis);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_naxis);
    __Pyx_GIVEREF(__pyx_v_naxis);
    __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_1)) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
      } else if (PyTuple_CheckExact(__pyx_t_1)) {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
      } else {
        __pyx_t_2 = __pyx_t_4(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2755
 *       if len(result)<naxis:
 *          for i in range(naxis):
 *             if i not in result:             # <<<<<<<<<<<<<<
 *                result.append(i)
 *                break
 */
      __pyx_t_7 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_result), __pyx_v_i))); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_7) {

        /* "gipsy.pyx":2756
 *          for i in range(naxis):
 *             if i not in result:
 *                result.append(i)             # <<<<<<<<<<<<<<
 *                break
 * 
 */
        if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
        }
        __pyx_t_6 = PyList_Append(__pyx_v_result, __pyx_v_i); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "gipsy.pyx":2757
 *             if i not in result:
 *                result.append(i)
 *                break             # <<<<<<<<<<<<<<
 * 
 *       if mode.lower()=='outside': return result[indim:]
 */
        goto __pyx_L21_break;
        goto __pyx_L22;
      }
      __pyx_L22:;
    }
    __pyx_L21_break:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L19;
  }
  __pyx_L19:;

  /* "gipsy.pyx":2759
 *                break
 * 
 *       if mode.lower()=='outside': return result[indim:]             # <<<<<<<<<<<<<<
 * 
 *       return result
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_mode, __pyx_n_s__lower); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__outside), Py_EQ); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_7) {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PySequence_GetSlice(((PyObject *)__pyx_v_result), __pyx_v_indim, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_r = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
    goto __pyx_L23;
  }
  __pyx_L23:;

  /* "gipsy.pyx":2761
 *       if mode.lower()=='outside': return result[indim:]
 * 
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def tophys(self, grids=None, level=0, mode=''):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("gipsy.Set.axperm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_naxis);
  __Pyx_XDECREF(__pyx_v_axes);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_sample);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_parts);
  __Pyx_XDECREF(__pyx_v_part);
  __Pyx_XDECREF(__pyx_v_axname);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2763
 *       return result
 * 
 *    def tophys(self, grids=None, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Coordinate transformation. See method cotrans().
 */

static PyObject *__pyx_pf_5gipsy_3Set_43tophys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_43tophys = {__Pyx_NAMESTR("tophys"), (PyCFunction)__pyx_pf_5gipsy_3Set_43tophys, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_43tophys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_grids = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_mode = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__grids,&__pyx_n_s__level,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("tophys");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__grids);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "tophys") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2763; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_grids = values[1];
    __pyx_v_level = values[2];
    __pyx_v_mode = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tophys", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2763; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.tophys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2768
 * # grid coordinates -> physical coordinates
 * 
 *       return self.cotrans(1, grids, level, mode)             # <<<<<<<<<<<<<<
 * 
 *    def togrid(self, phys=None, level=0, mode=''):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cotrans); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_INCREF(__pyx_v_grids);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_grids);
  __Pyx_GIVEREF(__pyx_v_grids);
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __Pyx_INCREF(__pyx_v_mode);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_mode);
  __Pyx_GIVEREF(__pyx_v_mode);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.tophys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2770
 *       return self.cotrans(1, grids, level, mode)
 * 
 *    def togrid(self, phys=None, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Coordinate transformation. See method cotrans().
 */

static PyObject *__pyx_pf_5gipsy_3Set_44togrid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_44togrid = {__Pyx_NAMESTR("togrid"), (PyCFunction)__pyx_pf_5gipsy_3Set_44togrid, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_44togrid(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_phys = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_mode = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__phys,&__pyx_n_s__level,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("togrid");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_int_0);
    values[3] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__phys);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "togrid") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_phys = values[1];
    __pyx_v_level = values[2];
    __pyx_v_mode = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("togrid", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.togrid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2775
 * # physical coordinates -> grid coordinates
 * 
 *       return self.cotrans(0, phys, level, mode)             # <<<<<<<<<<<<<<
 * 
 *    def cotrans(self, direction, coords=None, level=0, mode=''):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cotrans); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_INCREF(__pyx_v_phys);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_phys);
  __Pyx_GIVEREF(__pyx_v_phys);
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __Pyx_INCREF(__pyx_v_mode);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_mode);
  __Pyx_GIVEREF(__pyx_v_mode);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.Set.togrid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2777
 *       return self.cotrans(0, phys, level, mode)
 * 
 *    def cotrans(self, direction, coords=None, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Coordinate transformation. See cotrans.dc2.
 */

static PyObject *__pyx_pf_5gipsy_3Set_45cotrans(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_45cotrans = {__Pyx_NAMESTR("cotrans"), (PyCFunction)__pyx_pf_5gipsy_3Set_45cotrans, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_45cotrans(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_direction = 0;
  PyObject *__pyx_v_coords = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_mode = 0;
  fint __pyx_v_level_c;
  fint __pyx_v_direction_c;
  long __pyx_v_coords_l;
  double *__pyx_v_result_c;
  PyObject *__pyx_v_ndims = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_grids = NULL;
  PyObject *__pyx_v_low = NULL;
  PyObject *__pyx_v_upp = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_coords_ptr = NULL;
  PyObject *__pyx_v_err = NULL;
  PyObject *__pyx_v_axsel = NULL;
  PyObject *__pyx_v_newres = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  fint __pyx_t_10;
  long __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__direction,&__pyx_n_s__coords,&__pyx_n_s__level,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("cotrans");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[2] = ((PyObject *)Py_None);
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__direction);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("cotrans", 0, 2, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2777; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__coords);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "cotrans") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2777; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_direction = values[1];
    __pyx_v_coords = values[2];
    __pyx_v_level = values[3];
    __pyx_v_mode = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cotrans", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2777; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.cotrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_coords);
  __Pyx_INCREF(__pyx_v_mode);

  /* "gipsy.pyx":2796
 *       cdef long coords_l
 *       cdef double *result_c
 *       ndims = self.ndims()             # <<<<<<<<<<<<<<
 *       result_c = <double*>malloc(self.ncoords*sizeof(double))
 *       result = [0.0]*ndims
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ndims = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2797
 *       cdef double *result_c
 *       ndims = self.ndims()
 *       result_c = <double*>malloc(self.ncoords*sizeof(double))             # <<<<<<<<<<<<<<
 *       result = [0.0]*ndims
 *       mode = mode.lower()
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ncoords); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t((sizeof(double))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__; goto __pyx_L1_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_4 = __Pyx_PyInt_AsSize_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result_c = ((double *)malloc(__pyx_t_4));

  /* "gipsy.pyx":2798
 *       ndims = self.ndims()
 *       result_c = <double*>malloc(self.ncoords*sizeof(double))
 *       result = [0.0]*ndims             # <<<<<<<<<<<<<<
 *       mode = mode.lower()
 *       grids = self.grids(level)
 */
  __pyx_t_3 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(((PyObject *)__pyx_t_1), __pyx_v_ndims); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2799
 *       result_c = <double*>malloc(self.ncoords*sizeof(double))
 *       result = [0.0]*ndims
 *       mode = mode.lower()             # <<<<<<<<<<<<<<
 *       grids = self.grids(level)
 *       if coords is None:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_mode, __pyx_n_s__lower); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_mode);
  __pyx_v_mode = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2800
 *       result = [0.0]*ndims
 *       mode = mode.lower()
 *       grids = self.grids(level)             # <<<<<<<<<<<<<<
 *       if coords is None:
 *          low, upp = self.range(level)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_grids = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2801
 *       mode = mode.lower()
 *       grids = self.grids(level)
 *       if coords is None:             # <<<<<<<<<<<<<<
 *          low, upp = self.range(level)
 *          low = self.grids(low)
 */
  __pyx_t_5 = (__pyx_v_coords == Py_None);
  if (__pyx_t_5) {

    /* "gipsy.pyx":2802
 *       grids = self.grids(level)
 *       if coords is None:
 *          low, upp = self.range(level)             # <<<<<<<<<<<<<<
 *          low = self.grids(low)
 *          if direction==0: low = self.cotrans(1, low, 0)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_v_level);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
    __Pyx_GIVEREF(__pyx_v_level);
    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __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);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); 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_6); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L8_unpacking_done:;
    }
    __pyx_v_low = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_upp = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2803
 *       if coords is None:
 *          low, upp = self.range(level)
 *          low = self.grids(low)             # <<<<<<<<<<<<<<
 *          if direction==0: low = self.cotrans(1, low, 0)
 *          coords = []
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_v_low);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_low);
    __Pyx_GIVEREF(__pyx_v_low);
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_low);
    __pyx_v_low = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2804
 *          low, upp = self.range(level)
 *          low = self.grids(low)
 *          if direction==0: low = self.cotrans(1, low, 0)             # <<<<<<<<<<<<<<
 *          coords = []
 *          for i in range(ndims):
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_direction, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_5) {
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cotrans); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_int_1);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1);
      __Pyx_GIVEREF(__pyx_int_1);
      __Pyx_INCREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      __Pyx_INCREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_low);
      __pyx_v_low = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L9;
    }
    __pyx_L9:;

    /* "gipsy.pyx":2805
 *          low = self.grids(low)
 *          if direction==0: low = self.cotrans(1, low, 0)
 *          coords = []             # <<<<<<<<<<<<<<
 *          for i in range(ndims):
 *             if grids[i] is None: coords.append(low[i])
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_DECREF(__pyx_v_coords);
    __pyx_v_coords = ((PyObject *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2806
 *          if direction==0: low = self.cotrans(1, low, 0)
 *          coords = []
 *          for i in range(ndims):             # <<<<<<<<<<<<<<
 *             if grids[i] is None: coords.append(low[i])
 *       level_c = level
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_v_ndims);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_ndims);
    __Pyx_GIVEREF(__pyx_v_ndims);
    __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __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_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_1)) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;
      } else if (PyTuple_CheckExact(__pyx_t_1)) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;
      } else {
        __pyx_t_2 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2807
 *          coords = []
 *          for i in range(ndims):
 *             if grids[i] is None: coords.append(low[i])             # <<<<<<<<<<<<<<
 *       level_c = level
 *       direction_c = direction
 */
      __pyx_t_2 = PyObject_GetItem(__pyx_v_grids, __pyx_v_i); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = (__pyx_t_2 == Py_None);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_5) {
        __pyx_t_2 = PyObject_GetItem(__pyx_v_low, __pyx_v_i); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_Append(__pyx_v_coords, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2807; __pyx_clineno = __LINE__; goto __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;
        goto __pyx_L12;
      }
      __pyx_L12:;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2808
 *          for i in range(ndims):
 *             if grids[i] is None: coords.append(low[i])
 *       level_c = level             # <<<<<<<<<<<<<<
 *       direction_c = direction
 *       coords_ptr = dbleptr(coords); coords_l = coords_ptr.ptr
 */
  __pyx_t_10 = __Pyx_PyInt_from_py_fint(__pyx_v_level); if (unlikely((__pyx_t_10 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_level_c = __pyx_t_10;

  /* "gipsy.pyx":2809
 *             if grids[i] is None: coords.append(low[i])
 *       level_c = level
 *       direction_c = direction             # <<<<<<<<<<<<<<
 *       coords_ptr = dbleptr(coords); coords_l = coords_ptr.ptr
 *       err = cotrans_c(tofchar(self.name), &level_c,
 */
  __pyx_t_10 = __Pyx_PyInt_from_py_fint(__pyx_v_direction); if (unlikely((__pyx_t_10 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_direction_c = __pyx_t_10;

  /* "gipsy.pyx":2810
 *       level_c = level
 *       direction_c = direction
 *       coords_ptr = dbleptr(coords); coords_l = coords_ptr.ptr             # <<<<<<<<<<<<<<
 *       err = cotrans_c(tofchar(self.name), &level_c,
 *                       <double*>coords_l, result_c, &direction_c)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__dbleptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_coords);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_coords);
  __Pyx_GIVEREF(__pyx_v_coords);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_coords_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_coords_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_11 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_coords_l = __pyx_t_11;

  /* "gipsy.pyx":2811
 *       direction_c = direction
 *       coords_ptr = dbleptr(coords); coords_l = coords_ptr.ptr
 *       err = cotrans_c(tofchar(self.name), &level_c,             # <<<<<<<<<<<<<<
 *                       <double*>coords_l, result_c, &direction_c)
 *       if err!=0: raise GdsError(-1, "cotrans error %d" % err)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "gipsy.pyx":2812
 *       coords_ptr = dbleptr(coords); coords_l = coords_ptr.ptr
 *       err = cotrans_c(tofchar(self.name), &level_c,
 *                       <double*>coords_l, result_c, &direction_c)             # <<<<<<<<<<<<<<
 *       if err!=0: raise GdsError(-1, "cotrans error %d" % err)
 *       for i in range(ndims):
 */
  __pyx_t_3 = __Pyx_PyInt_to_py_fint(cotrans_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), (&__pyx_v_level_c), ((double *)__pyx_v_coords_l), __pyx_v_result_c, (&__pyx_v_direction_c))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_err = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2813
 *       err = cotrans_c(tofchar(self.name), &level_c,
 *                       <double*>coords_l, result_c, &direction_c)
 *       if err!=0: raise GdsError(-1, "cotrans error %d" % err)             # <<<<<<<<<<<<<<
 *       for i in range(ndims):
 *          result[i] = result_c[i]
 */
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_err, __pyx_int_0, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_172), __pyx_v_err); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_INCREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_neg_1);
    __Pyx_GIVEREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_t_2));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L13;
  }
  __pyx_L13:;

  /* "gipsy.pyx":2814
 *                       <double*>coords_l, result_c, &direction_c)
 *       if err!=0: raise GdsError(-1, "cotrans error %d" % err)
 *       for i in range(ndims):             # <<<<<<<<<<<<<<
 *          result[i] = result_c[i]
 *       free(result_c)
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_ndims);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ndims);
  __Pyx_GIVEREF(__pyx_v_ndims);
  __pyx_t_1 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
    } else {
      __pyx_t_1 = __pyx_t_9(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2815
 *       if err!=0: raise GdsError(-1, "cotrans error %d" % err)
 *       for i in range(ndims):
 *          result[i] = result_c[i]             # <<<<<<<<<<<<<<
 *       free(result_c)
 *       if mode=='inside':
 */
    __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_result_c[__pyx_t_12])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_v_result, __pyx_v_i, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2816
 *       for i in range(ndims):
 *          result[i] = result_c[i]
 *       free(result_c)             # <<<<<<<<<<<<<<
 *       if mode=='inside':
 *          axsel = []
 */
  free(__pyx_v_result_c);

  /* "gipsy.pyx":2817
 *          result[i] = result_c[i]
 *       free(result_c)
 *       if mode=='inside':             # <<<<<<<<<<<<<<
 *          axsel = []
 *          for i in range(ndims):
 */
  __pyx_t_5 = __Pyx_PyString_Equals(__pyx_v_mode, ((PyObject *)__pyx_n_s__inside), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "gipsy.pyx":2818
 *       free(result_c)
 *       if mode=='inside':
 *          axsel = []             # <<<<<<<<<<<<<<
 *          for i in range(ndims):
 *             if grids[i] is None: axsel.append(i)
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_v_axsel = ((PyObject *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2819
 *       if mode=='inside':
 *          axsel = []
 *          for i in range(ndims):             # <<<<<<<<<<<<<<
 *             if grids[i] is None: axsel.append(i)
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_INCREF(__pyx_v_ndims);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ndims);
    __Pyx_GIVEREF(__pyx_v_ndims);
    __pyx_t_1 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_2)) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
      } else if (PyTuple_CheckExact(__pyx_t_2)) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
      } else {
        __pyx_t_1 = __pyx_t_9(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2820
 *          axsel = []
 *          for i in range(ndims):
 *             if grids[i] is None: axsel.append(i)             # <<<<<<<<<<<<<<
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 *          newres = []
 */
      __pyx_t_1 = PyObject_GetItem(__pyx_v_grids, __pyx_v_i); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = (__pyx_t_1 == Py_None);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_5) {
        __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_axsel, __pyx_v_i); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L19;
      }
      __pyx_L19:;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "gipsy.pyx":2822
 *             if grids[i] is None: axsel.append(i)
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 *          newres = []             # <<<<<<<<<<<<<<
 *          for x in axsel:
 *             newres.append(result[x])
 */
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __pyx_v_newres = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "gipsy.pyx":2823
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 *          newres = []
 *          for x in axsel:             # <<<<<<<<<<<<<<
 *             newres.append(result[x])
 *          result = newres
 */
    if (PyList_CheckExact(__pyx_v_axsel) || PyTuple_CheckExact(__pyx_v_axsel)) {
      __pyx_t_2 = __pyx_v_axsel; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_axsel); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_2)) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
      } else if (PyTuple_CheckExact(__pyx_t_2)) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
      } else {
        __pyx_t_1 = __pyx_t_9(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF(__pyx_v_x);
      __pyx_v_x = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2824
 *          newres = []
 *          for x in axsel:
 *             newres.append(result[x])             # <<<<<<<<<<<<<<
 *          result = newres
 * #                                                    ### (end)
 */
      if (unlikely(((PyObject *)__pyx_v_newres) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2824; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_1 = PyObject_GetItem(__pyx_v_result, __pyx_v_x); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = PyList_Append(__pyx_v_newres, __pyx_t_1); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "gipsy.pyx":2825
 *          for x in axsel:
 *             newres.append(result[x])
 *          result = newres             # <<<<<<<<<<<<<<
 * #                                                    ### (end)
 *       elif mode=='outside':
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_newres));
    __Pyx_DECREF(__pyx_v_result);
    __pyx_v_result = ((PyObject *)__pyx_v_newres);
    goto __pyx_L16;
  }

  /* "gipsy.pyx":2827
 *          result = newres
 * #                                                    ### (end)
 *       elif mode=='outside':             # <<<<<<<<<<<<<<
 *          if level in self.subsets:
 *             axsel = self.axperm('outside')
 */
  __pyx_t_5 = __Pyx_PyString_Equals(__pyx_v_mode, ((PyObject *)__pyx_n_s__outside), Py_EQ); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {

    /* "gipsy.pyx":2828
 * #                                                    ### (end)
 *       elif mode=='outside':
 *          if level in self.subsets:             # <<<<<<<<<<<<<<
 *             axsel = self.axperm('outside')
 *          else:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = ((PySequence_Contains(__pyx_t_2, __pyx_v_level))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_5) {

      /* "gipsy.pyx":2829
 *       elif mode=='outside':
 *          if level in self.subsets:
 *             axsel = self.axperm('outside')             # <<<<<<<<<<<<<<
 *          else:
 *             axsel = []
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axperm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_173), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_v_axsel = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L22;
    }
    /*else*/ {

      /* "gipsy.pyx":2831
 *             axsel = self.axperm('outside')
 *          else:
 *             axsel = []             # <<<<<<<<<<<<<<
 *             for i in range(ndims):
 *                if grids[i] is not None: axsel.append(i)
 */
      __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __pyx_v_axsel = ((PyObject *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2832
 *          else:
 *             axsel = []
 *             for i in range(ndims):             # <<<<<<<<<<<<<<
 *                if grids[i] is not None: axsel.append(i)
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 */
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_ndims);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_ndims);
      __Pyx_GIVEREF(__pyx_v_ndims);
      __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_1 = __pyx_t_2; __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_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (PyList_CheckExact(__pyx_t_1)) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;
        } else if (PyTuple_CheckExact(__pyx_t_1)) {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;
        } else {
          __pyx_t_2 = __pyx_t_9(__pyx_t_1);
          if (unlikely(!__pyx_t_2)) {
            if (PyErr_Occurred()) {
              if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
              else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF(__pyx_v_i);
        __pyx_v_i = __pyx_t_2;
        __pyx_t_2 = 0;

        /* "gipsy.pyx":2833
 *             axsel = []
 *             for i in range(ndims):
 *                if grids[i] is not None: axsel.append(i)             # <<<<<<<<<<<<<<
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 *          newres = []
 */
        __pyx_t_2 = PyObject_GetItem(__pyx_v_grids, __pyx_v_i); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = (__pyx_t_2 != Py_None);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_5) {
          __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_axsel, __pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L25;
        }
        __pyx_L25:;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L22:;

    /* "gipsy.pyx":2835
 *                if grids[i] is not None: axsel.append(i)
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 *          newres = []             # <<<<<<<<<<<<<<
 *          for x in axsel:
 *             newres.append(result[x])
 */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __pyx_v_newres = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2836
 * #         result = map(lambda x: result[x], axsel)   ### changed into:
 *          newres = []
 *          for x in axsel:             # <<<<<<<<<<<<<<
 *             newres.append(result[x])
 *          result = newres
 */
    if (PyList_CheckExact(__pyx_v_axsel) || PyTuple_CheckExact(__pyx_v_axsel)) {
      __pyx_t_1 = __pyx_v_axsel; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_axsel); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_1)) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;
      } else if (PyTuple_CheckExact(__pyx_t_1)) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++;
      } else {
        __pyx_t_2 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_x);
      __pyx_v_x = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2837
 *          newres = []
 *          for x in axsel:
 *             newres.append(result[x])             # <<<<<<<<<<<<<<
 *          result = newres
 * 
 */
      if (unlikely(((PyObject *)__pyx_v_newres) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2837; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_2 = PyObject_GetItem(__pyx_v_result, __pyx_v_x); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_13 = PyList_Append(__pyx_v_newres, __pyx_t_2); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":2838
 *          for x in axsel:
 *             newres.append(result[x])
 *          result = newres             # <<<<<<<<<<<<<<
 * 
 *       return result
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_newres));
    __Pyx_DECREF(__pyx_v_result);
    __pyx_v_result = ((PyObject *)__pyx_v_newres);
    goto __pyx_L16;
  }
  __pyx_L16:;

  /* "gipsy.pyx":2840
 *          result = newres
 * 
 *       return result             # <<<<<<<<<<<<<<
 * 
 *    def setbox(self, boxspec):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.Set.cotrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ndims);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_grids);
  __Pyx_XDECREF(__pyx_v_low);
  __Pyx_XDECREF(__pyx_v_upp);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_coords_ptr);
  __Pyx_XDECREF(__pyx_v_err);
  __Pyx_XDECREF(__pyx_v_axsel);
  __Pyx_XDECREF(__pyx_v_newres);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_coords);
  __Pyx_XDECREF(__pyx_v_mode);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2842
 *       return result
 * 
 *    def setbox(self, boxspec):             # <<<<<<<<<<<<<<
 * 
 * # Apply a box specification string.
 */

static PyObject *__pyx_pf_5gipsy_3Set_46setbox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_46setbox = {__Pyx_NAMESTR("setbox"), (PyCFunction)__pyx_pf_5gipsy_3Set_46setbox, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_46setbox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_boxspec = 0;
  double *__pyx_v_pos_c;
  fint __pyx_v_level_c;
  fint __pyx_v_zero_c;
  PyObject *__pyx_v_ndims = NULL;
  PyObject *__pyx_v_bhi = NULL;
  PyObject *__pyx_v_blo = NULL;
  PyObject *__pyx_v_status = NULL;
  PyObject *__pyx_v_clo = NULL;
  PyObject *__pyx_v_chi = NULL;
  PyObject *__pyx_v_axperm = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_v_l = NULL;
  PyObject *__pyx_v_u = NULL;
  PyObject *__pyx_v_slo = NULL;
  PyObject *__pyx_v_shi = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  fint __pyx_t_4;
  size_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  Py_ssize_t __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__boxspec,0};
  __Pyx_RefNannySetupContext("setbox");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__boxspec);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setbox", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2842; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setbox") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2842; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_boxspec = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setbox", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2842; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.setbox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2849
 *       cdef double *pos_c
 *       cdef fint   option_c, level_c, zero_c
 *       zero_c = 0             # <<<<<<<<<<<<<<
 *       ndims = self.ndims(self.subsets[0])
 *       level_c = self.subsets[0]
 */
  __pyx_v_zero_c = 0;

  /* "gipsy.pyx":2850
 *       cdef fint   option_c, level_c, zero_c
 *       zero_c = 0
 *       ndims = self.ndims(self.subsets[0])             # <<<<<<<<<<<<<<
 *       level_c = self.subsets[0]
 *       pos_c = <double*>malloc(2*ndims*sizeof(double))
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_ndims = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2851
 *       zero_c = 0
 *       ndims = self.ndims(self.subsets[0])
 *       level_c = self.subsets[0]             # <<<<<<<<<<<<<<
 *       pos_c = <double*>malloc(2*ndims*sizeof(double))
 *       bhi = [0.0]*ndims
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_from_py_fint(__pyx_t_2); if (unlikely((__pyx_t_4 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_level_c = __pyx_t_4;

  /* "gipsy.pyx":2852
 *       ndims = self.ndims(self.subsets[0])
 *       level_c = self.subsets[0]
 *       pos_c = <double*>malloc(2*ndims*sizeof(double))             # <<<<<<<<<<<<<<
 *       bhi = [0.0]*ndims
 *       blo = [0.0]*ndims
 */
  __pyx_t_2 = PyNumber_Multiply(__pyx_int_2, __pyx_v_ndims); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(double))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_pos_c = ((double *)malloc(__pyx_t_5));

  /* "gipsy.pyx":2853
 *       level_c = self.subsets[0]
 *       pos_c = <double*>malloc(2*ndims*sizeof(double))
 *       bhi = [0.0]*ndims             # <<<<<<<<<<<<<<
 *       blo = [0.0]*ndims
 *       status = dcdpos_c(tofchar(self.name), &level_c, tofchar(boxspec),
 */
  __pyx_t_1 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_t_3), __pyx_v_ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_bhi = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2854
 *       pos_c = <double*>malloc(2*ndims*sizeof(double))
 *       bhi = [0.0]*ndims
 *       blo = [0.0]*ndims             # <<<<<<<<<<<<<<
 *       status = dcdpos_c(tofchar(self.name), &level_c, tofchar(boxspec),
 *                         pos_c, &zero_c)
 */
  __pyx_t_1 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_t_3), __pyx_v_ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_blo = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2855
 *       bhi = [0.0]*ndims
 *       blo = [0.0]*ndims
 *       status = dcdpos_c(tofchar(self.name), &level_c, tofchar(boxspec),             # <<<<<<<<<<<<<<
 *                         pos_c, &zero_c)
 *       if status==0:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "gipsy.pyx":2856
 *       blo = [0.0]*ndims
 *       status = dcdpos_c(tofchar(self.name), &level_c, tofchar(boxspec),
 *                         pos_c, &zero_c)             # <<<<<<<<<<<<<<
 *       if status==0:
 *          clo, chi = self.range(level_c)
 */
  __pyx_t_3 = __Pyx_PyInt_to_py_fint(dcdpos_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_level_c), __pyx_f_5gipsy_tofchar(__pyx_v_boxspec), __pyx_v_pos_c, (&__pyx_v_zero_c))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_status = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":2857
 *       status = dcdpos_c(tofchar(self.name), &level_c, tofchar(boxspec),
 *                         pos_c, &zero_c)
 *       if status==0:             # <<<<<<<<<<<<<<
 *          clo, chi = self.range(level_c)
 *          axperm = self.axperm('inside')
 */
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_status, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "gipsy.pyx":2858
 *                         pos_c, &zero_c)
 *       if status==0:
 *          clo, chi = self.range(level_c)             # <<<<<<<<<<<<<<
 *          axperm = self.axperm('inside')
 *          blo = []
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__range); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_level_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
          if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
          if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __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);
      __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_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
      index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L7_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_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L8_unpacking_done:;
    }
    __pyx_v_clo = __pyx_t_2;
    __pyx_t_2 = 0;
    __pyx_v_chi = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2859
 *       if status==0:
 *          clo, chi = self.range(level_c)
 *          axperm = self.axperm('inside')             # <<<<<<<<<<<<<<
 *          blo = []
 *          for x in axperm:
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axperm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_174), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_axperm = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2860
 *          clo, chi = self.range(level_c)
 *          axperm = self.axperm('inside')
 *          blo = []             # <<<<<<<<<<<<<<
 *          for x in axperm:
 *             blo.append(self.grids(clo)[x])
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_DECREF(__pyx_v_blo);
    __pyx_v_blo = ((PyObject *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2861
 *          axperm = self.axperm('inside')
 *          blo = []
 *          for x in axperm:             # <<<<<<<<<<<<<<
 *             blo.append(self.grids(clo)[x])
 *          bhi = []
 */
    if (PyList_CheckExact(__pyx_v_axperm) || PyTuple_CheckExact(__pyx_v_axperm)) {
      __pyx_t_3 = __pyx_v_axperm; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_axperm); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++;
      } else if (PyTuple_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++;
      } else {
        __pyx_t_1 = __pyx_t_10(__pyx_t_3);
        if (unlikely(!__pyx_t_1)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF(__pyx_v_x);
      __pyx_v_x = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2862
 *          blo = []
 *          for x in axperm:
 *             blo.append(self.grids(clo)[x])             # <<<<<<<<<<<<<<
 *          bhi = []
 *          for x in axperm:
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_clo);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_clo);
      __Pyx_GIVEREF(__pyx_v_clo);
      __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetItem(__pyx_t_7, __pyx_v_x); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_Append(__pyx_v_blo, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":2863
 *          for x in axperm:
 *             blo.append(self.grids(clo)[x])
 *          bhi = []             # <<<<<<<<<<<<<<
 *          for x in axperm:
 *             bhi.append(self.grids(chi)[x])
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_DECREF(__pyx_v_bhi);
    __pyx_v_bhi = ((PyObject *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2864
 *             blo.append(self.grids(clo)[x])
 *          bhi = []
 *          for x in axperm:             # <<<<<<<<<<<<<<
 *             bhi.append(self.grids(chi)[x])
 * 
 */
    if (PyList_CheckExact(__pyx_v_axperm) || PyTuple_CheckExact(__pyx_v_axperm)) {
      __pyx_t_3 = __pyx_v_axperm; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_axperm); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
    }
    for (;;) {
      if (PyList_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++;
      } else if (PyTuple_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++;
      } else {
        __pyx_t_7 = __pyx_t_10(__pyx_t_3);
        if (unlikely(!__pyx_t_7)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF(__pyx_v_x);
      __pyx_v_x = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "gipsy.pyx":2865
 *          bhi = []
 *          for x in axperm:
 *             bhi.append(self.grids(chi)[x])             # <<<<<<<<<<<<<<
 * 
 *       elif status==3:
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __Pyx_INCREF(__pyx_v_chi);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_chi);
      __Pyx_GIVEREF(__pyx_v_chi);
      __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_v_x); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_bhi, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __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;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":2867
 *             bhi.append(self.grids(chi)[x])
 * 
 *       elif status==3:             # <<<<<<<<<<<<<<
 *          for i in range(ndims):
 *             c = int(round(pos_c[i]))
 */
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_status, __pyx_int_3, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "gipsy.pyx":2868
 * 
 *       elif status==3:
 *          for i in range(ndims):             # <<<<<<<<<<<<<<
 *             c = int(round(pos_c[i]))
 *             s = int(round(pos_c[i+ndims]))
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_v_ndims);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ndims);
    __Pyx_GIVEREF(__pyx_v_ndims);
    __pyx_t_1 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++;
      } else if (PyTuple_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++;
      } else {
        __pyx_t_1 = __pyx_t_10(__pyx_t_3);
        if (unlikely(!__pyx_t_1)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2869
 *       elif status==3:
 *          for i in range(ndims):
 *             c = int(round(pos_c[i]))             # <<<<<<<<<<<<<<
 *             s = int(round(pos_c[i+ndims]))
 *             if s<1: s = 1
 */
      __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = PyFloat_FromDouble((__pyx_v_pos_c[__pyx_t_11])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_v_c);
      __pyx_v_c = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2870
 *          for i in range(ndims):
 *             c = int(round(pos_c[i]))
 *             s = int(round(pos_c[i+ndims]))             # <<<<<<<<<<<<<<
 *             if s<1: s = 1
 *             bhi[i] = c + s/2
 */
      __pyx_t_1 = PyNumber_Add(__pyx_v_i, __pyx_v_ndims); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyFloat_FromDouble((__pyx_v_pos_c[__pyx_t_11])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_v_s);
      __pyx_v_s = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "gipsy.pyx":2871
 *             c = int(round(pos_c[i]))
 *             s = int(round(pos_c[i+ndims]))
 *             if s<1: s = 1             # <<<<<<<<<<<<<<
 *             bhi[i] = c + s/2
 *             blo[i] = bhi[i] + 1 - s;
 */
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_s, __pyx_int_1, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_6) {
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_DECREF(__pyx_v_s);
        __pyx_v_s = __pyx_int_1;
        goto __pyx_L15;
      }
      __pyx_L15:;

      /* "gipsy.pyx":2872
 *             s = int(round(pos_c[i+ndims]))
 *             if s<1: s = 1
 *             bhi[i] = c + s/2             # <<<<<<<<<<<<<<
 *             blo[i] = bhi[i] + 1 - s;
 *       elif status==4:
 */
      __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_v_s, __pyx_int_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_Add(__pyx_v_c, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyObject_SetItem(__pyx_v_bhi, __pyx_v_i, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "gipsy.pyx":2873
 *             if s<1: s = 1
 *             bhi[i] = c + s/2
 *             blo[i] = bhi[i] + 1 - s;             # <<<<<<<<<<<<<<
 *       elif status==4:
 *          for i in range(ndims):
 */
      __pyx_t_2 = PyObject_GetItem(__pyx_v_bhi, __pyx_v_i); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyObject_SetItem(__pyx_v_blo, __pyx_v_i, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":2874
 *             bhi[i] = c + s/2
 *             blo[i] = bhi[i] + 1 - s;
 *       elif status==4:             # <<<<<<<<<<<<<<
 *          for i in range(ndims):
 *             l = int(round(pos_c[i]))
 */
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_status, __pyx_int_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "gipsy.pyx":2875
 *             blo[i] = bhi[i] + 1 - s;
 *       elif status==4:
 *          for i in range(ndims):             # <<<<<<<<<<<<<<
 *             l = int(round(pos_c[i]))
 *             u = int(round(pos_c[i+ndims]))
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_INCREF(__pyx_v_ndims);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ndims);
    __Pyx_GIVEREF(__pyx_v_ndims);
    __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++;
      } else if (PyTuple_CheckExact(__pyx_t_3)) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++;
      } else {
        __pyx_t_2 = __pyx_t_10(__pyx_t_3);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2876
 *       elif status==4:
 *          for i in range(ndims):
 *             l = int(round(pos_c[i]))             # <<<<<<<<<<<<<<
 *             u = int(round(pos_c[i+ndims]))
 *             if l>u:
 */
      __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_2 = PyFloat_FromDouble((__pyx_v_pos_c[__pyx_t_11])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_v_l);
      __pyx_v_l = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2877
 *          for i in range(ndims):
 *             l = int(round(pos_c[i]))
 *             u = int(round(pos_c[i+ndims]))             # <<<<<<<<<<<<<<
 *             if l>u:
 *                blo[i] = u
 */
      __pyx_t_2 = PyNumber_Add(__pyx_v_i, __pyx_v_ndims); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyFloat_FromDouble((__pyx_v_pos_c[__pyx_t_11])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_builtin_round, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_v_u);
      __pyx_v_u = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2878
 *             l = int(round(pos_c[i]))
 *             u = int(round(pos_c[i+ndims]))
 *             if l>u:             # <<<<<<<<<<<<<<
 *                blo[i] = u
 *                bhi[i] = l
 */
      __pyx_t_2 = PyObject_RichCompare(__pyx_v_l, __pyx_v_u, Py_GT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_6) {

        /* "gipsy.pyx":2879
 *             u = int(round(pos_c[i+ndims]))
 *             if l>u:
 *                blo[i] = u             # <<<<<<<<<<<<<<
 *                bhi[i] = l
 *             else:
 */
        if (PyObject_SetItem(__pyx_v_blo, __pyx_v_i, __pyx_v_u) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "gipsy.pyx":2880
 *             if l>u:
 *                blo[i] = u
 *                bhi[i] = l             # <<<<<<<<<<<<<<
 *             else:
 *                blo[i] = l
 */
        if (PyObject_SetItem(__pyx_v_bhi, __pyx_v_i, __pyx_v_l) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L18;
      }
      /*else*/ {

        /* "gipsy.pyx":2882
 *                bhi[i] = l
 *             else:
 *                blo[i] = l             # <<<<<<<<<<<<<<
 *                bhi[i] = u
 *       else:
 */
        if (PyObject_SetItem(__pyx_v_blo, __pyx_v_i, __pyx_v_l) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

        /* "gipsy.pyx":2883
 *             else:
 *                blo[i] = l
 *                bhi[i] = u             # <<<<<<<<<<<<<<
 *       else:
 *          free(pos_c)
 */
        if (PyObject_SetItem(__pyx_v_bhi, __pyx_v_i, __pyx_v_u) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_L18:;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2885
 *                bhi[i] = u
 *       else:
 *          free(pos_c)             # <<<<<<<<<<<<<<
 *          raise GipsyError, "dcdpos error %d" % status
 * 
 */
    free(__pyx_v_pos_c);

    /* "gipsy.pyx":2886
 *       else:
 *          free(pos_c)
 *          raise GipsyError, "dcdpos error %d" % status             # <<<<<<<<<<<<<<
 * 
 *       for i in range(ndims):
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_175), __pyx_v_status); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_t_2), 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  /* "gipsy.pyx":2888
 *          raise GipsyError, "dcdpos error %d" % status
 * 
 *       for i in range(ndims):             # <<<<<<<<<<<<<<
 *          axperm = self.axperm('inside')
 *          slo    = self.slo
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_ndims);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ndims);
  __Pyx_GIVEREF(__pyx_v_ndims);
  __pyx_t_3 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = Py_TYPE(__pyx_t_2)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_2)) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else if (PyTuple_CheckExact(__pyx_t_2)) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else {
      __pyx_t_3 = __pyx_t_10(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "gipsy.pyx":2889
 * 
 *       for i in range(ndims):
 *          axperm = self.axperm('inside')             # <<<<<<<<<<<<<<
 *          slo    = self.slo
 *          shi    = self.shi
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axperm); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_176), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_v_axperm);
    __pyx_v_axperm = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2890
 *       for i in range(ndims):
 *          axperm = self.axperm('inside')
 *          slo    = self.slo             # <<<<<<<<<<<<<<
 *          shi    = self.shi
 *          if blo[i]<slo[axperm[i]] or bhi[i]>shi[axperm[i]]:
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__slo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_v_slo);
    __pyx_v_slo = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2891
 *          axperm = self.axperm('inside')
 *          slo    = self.slo
 *          shi    = self.shi             # <<<<<<<<<<<<<<
 *          if blo[i]<slo[axperm[i]] or bhi[i]>shi[axperm[i]]:
 *             raise GdsError(-1, 'box outside set')
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__shi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_v_shi);
    __pyx_v_shi = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":2892
 *          slo    = self.slo
 *          shi    = self.shi
 *          if blo[i]<slo[axperm[i]] or bhi[i]>shi[axperm[i]]:             # <<<<<<<<<<<<<<
 *             raise GdsError(-1, 'box outside set')
 * 
 */
    __pyx_t_1 = PyObject_GetItem(__pyx_v_blo, __pyx_v_i); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetItem(__pyx_v_axperm, __pyx_v_i); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetItem(__pyx_v_slo, __pyx_t_3); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __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_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!__pyx_t_6) {
      __pyx_t_3 = PyObject_GetItem(__pyx_v_bhi, __pyx_v_i); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PyObject_GetItem(__pyx_v_axperm, __pyx_v_i); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetItem(__pyx_v_shi, __pyx_t_7); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_13 = __pyx_t_12;
    } else {
      __pyx_t_13 = __pyx_t_6;
    }
    if (__pyx_t_13) {

      /* "gipsy.pyx":2893
 *          shi    = self.shi
 *          if blo[i]<slo[axperm[i]] or bhi[i]>shi[axperm[i]]:
 *             raise GdsError(-1, 'box outside set')             # <<<<<<<<<<<<<<
 * 
 *       free(pos_c)
 */
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_178), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_Raise(__pyx_t_1, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L21;
    }
    __pyx_L21:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2895
 *             raise GdsError(-1, 'box outside set')
 * 
 *       free(pos_c)             # <<<<<<<<<<<<<<
 *       self.blo = blo
 *       self.bhi = bhi
 */
  free(__pyx_v_pos_c);

  /* "gipsy.pyx":2896
 * 
 *       free(pos_c)
 *       self.blo = blo             # <<<<<<<<<<<<<<
 *       self.bhi = bhi
 *       self.boxspec = boxspec
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__blo, __pyx_v_blo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":2897
 *       free(pos_c)
 *       self.blo = blo
 *       self.bhi = bhi             # <<<<<<<<<<<<<<
 *       self.boxspec = boxspec
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__bhi, __pyx_v_bhi) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":2898
 *       self.blo = blo
 *       self.bhi = bhi
 *       self.boxspec = boxspec             # <<<<<<<<<<<<<<
 * 
 *    def wminmax(self, level=0):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__boxspec, __pyx_v_boxspec) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __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_AddTraceback("gipsy.Set.setbox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ndims);
  __Pyx_XDECREF(__pyx_v_bhi);
  __Pyx_XDECREF(__pyx_v_blo);
  __Pyx_XDECREF(__pyx_v_status);
  __Pyx_XDECREF(__pyx_v_clo);
  __Pyx_XDECREF(__pyx_v_chi);
  __Pyx_XDECREF(__pyx_v_axperm);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XDECREF(__pyx_v_u);
  __Pyx_XDECREF(__pyx_v_slo);
  __Pyx_XDECREF(__pyx_v_shi);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2900
 *       self.boxspec = boxspec
 * 
 *    def wminmax(self, level=0):             # <<<<<<<<<<<<<<
 * 
 * # Update the subset's DATAMIN, DATAMAX and NBLANK.
 */

static PyObject *__pyx_pf_5gipsy_3Set_47wminmax(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_47wminmax = {__Pyx_NAMESTR("wminmax"), (PyCFunction)__pyx_pf_5gipsy_3Set_47wminmax, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_47wminmax(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_subsetimage = NULL;
  PyObject *__pyx_v_mnmx = NULL;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__level,0};
  __Pyx_RefNannySetupContext("wminmax");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "wminmax") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_level = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wminmax", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.wminmax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2904
 * # Update the subset's DATAMIN, DATAMAX and NBLANK.
 * 
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       subsetimage = self.subimage(level, False)
 *       mnmx = minmax3(subsetimage)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2905
 * 
 *       self.__wcheck()
 *       subsetimage = self.subimage(level, False)             # <<<<<<<<<<<<<<
 *       mnmx = minmax3(subsetimage)
 *       self[level, 'DATAMIN'] = mnmx[0]
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subimage); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_subsetimage = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":2906
 *       self.__wcheck()
 *       subsetimage = self.subimage(level, False)
 *       mnmx = minmax3(subsetimage)             # <<<<<<<<<<<<<<
 *       self[level, 'DATAMIN'] = mnmx[0]
 *       self[level, 'DATAMAX'] = mnmx[1]
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__minmax3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_subsetimage);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_subsetimage);
  __Pyx_GIVEREF(__pyx_v_subsetimage);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_mnmx = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2907
 *       subsetimage = self.subimage(level, False)
 *       mnmx = minmax3(subsetimage)
 *       self[level, 'DATAMIN'] = mnmx[0]             # <<<<<<<<<<<<<<
 *       self[level, 'DATAMAX'] = mnmx[1]
 *       self[level, 'NBLANK']  = mnmx[2]
 */
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_mnmx, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__DATAMIN));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__DATAMIN));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__DATAMIN));
  if (PyObject_SetItem(__pyx_v_self, ((PyObject *)__pyx_t_3), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2908
 *       mnmx = minmax3(subsetimage)
 *       self[level, 'DATAMIN'] = mnmx[0]
 *       self[level, 'DATAMAX'] = mnmx[1]             # <<<<<<<<<<<<<<
 *       self[level, 'NBLANK']  = mnmx[2]
 * 
 */
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_mnmx, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__DATAMAX));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__DATAMAX));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__DATAMAX));
  if (PyObject_SetItem(__pyx_v_self, ((PyObject *)__pyx_t_3), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":2909
 *       self[level, 'DATAMIN'] = mnmx[0]
 *       self[level, 'DATAMAX'] = mnmx[1]
 *       self[level, 'NBLANK']  = mnmx[2]             # <<<<<<<<<<<<<<
 * 
 *    def whistory(self, history=''):
 */
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_mnmx, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__NBLANK));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__NBLANK));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__NBLANK));
  if (PyObject_SetItem(__pyx_v_self, ((PyObject *)__pyx_t_3), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __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("gipsy.Set.wminmax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_subsetimage);
  __Pyx_XDECREF(__pyx_v_mnmx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2911
 *       self[level, 'NBLANK']  = mnmx[2]
 * 
 *    def whistory(self, history=''):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()
 */

static PyObject *__pyx_pf_5gipsy_3Set_48whistory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_48whistory = {__Pyx_NAMESTR("whistory"), (PyCFunction)__pyx_pf_5gipsy_3Set_48whistory, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_48whistory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_history = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_level_c;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__history,0};
  __Pyx_RefNannySetupContext("whistory");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__history);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "whistory") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2911; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_history = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("whistory", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2911; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.whistory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2912
 * 
 *    def whistory(self, history=''):
 *       cdef fint err_c=0, level_c=0             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       if history:
 */
  __pyx_v_err_c = 0;
  __pyx_v_level_c = 0;

  /* "gipsy.pyx":2913
 *    def whistory(self, history=''):
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       if history:
 *          gdsd_wvar_c(tofchar(self.handle), tofchar('HISTORY'), &level_c,
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2913; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2914
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()
 *       if history:             # <<<<<<<<<<<<<<
 *          gdsd_wvar_c(tofchar(self.handle), tofchar('HISTORY'), &level_c,
 *                      tofchar(history), &err_c)
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_history); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "gipsy.pyx":2915
 *       self.__wcheck()
 *       if history:
 *          gdsd_wvar_c(tofchar(self.handle), tofchar('HISTORY'), &level_c,             # <<<<<<<<<<<<<<
 *                      tofchar(history), &err_c)
 *       else:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = ((PyObject *)__pyx_n_s__HISTORY);
    __Pyx_INCREF(__pyx_t_1);

    /* "gipsy.pyx":2916
 *       if history:
 *          gdsd_wvar_c(tofchar(self.handle), tofchar('HISTORY'), &level_c,
 *                      tofchar(history), &err_c)             # <<<<<<<<<<<<<<
 *       else:
 *          gdsd_history_c(tofchar(self.handle), &err_c)
 */
    gdsd_wvar_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), __pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_level_c), __pyx_f_5gipsy_tofchar(__pyx_v_history), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2918
 *                      tofchar(history), &err_c)
 *       else:
 *          gdsd_history_c(tofchar(self.handle), &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    gdsd_history_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_err_c));
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2919
 *       else:
 *          gdsd_history_c(tofchar(self.handle), &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *          raiseGds(err_c)
 * 
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2920
 *          gdsd_history_c(tofchar(self.handle), &err_c)
 *       if err_c<0:
 *          raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 *    def wcomment(self, comment):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  __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("gipsy.Set.whistory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2922
 *          raiseGds(err_c)
 * 
 *    def wcomment(self, comment):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()
 */

static PyObject *__pyx_pf_5gipsy_3Set_49wcomment(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_49wcomment = {__Pyx_NAMESTR("wcomment"), (PyCFunction)__pyx_pf_5gipsy_3Set_49wcomment, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_49wcomment(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_comment = 0;
  fint __pyx_v_err_c;
  fint __pyx_v_level_c;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__comment,0};
  __Pyx_RefNannySetupContext("wcomment");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__comment);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("wcomment", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "wcomment") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_comment = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wcomment", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.wcomment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":2923
 * 
 *    def wcomment(self, comment):
 *       cdef fint err_c=0, level_c=0             # <<<<<<<<<<<<<<
 *       self.__wcheck()
 *       gdsd_wvar_c(tofchar(self.handle), tofchar('COMMENT'), &level_c,
 */
  __pyx_v_err_c = 0;
  __pyx_v_level_c = 0;

  /* "gipsy.pyx":2924
 *    def wcomment(self, comment):
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()             # <<<<<<<<<<<<<<
 *       gdsd_wvar_c(tofchar(self.handle), tofchar('COMMENT'), &level_c,
 *                   tofchar(comment), &err_c)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____wcheck); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":2925
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()
 *       gdsd_wvar_c(tofchar(self.handle), tofchar('COMMENT'), &level_c,             # <<<<<<<<<<<<<<
 *                   tofchar(comment), &err_c)
 *       if err_c<0:
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__handle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = ((PyObject *)__pyx_n_s__COMMENT);
  __Pyx_INCREF(__pyx_t_1);

  /* "gipsy.pyx":2926
 *       self.__wcheck()
 *       gdsd_wvar_c(tofchar(self.handle), tofchar('COMMENT'), &level_c,
 *                   tofchar(comment), &err_c)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *           raiseGds(err_c)
 */
  gdsd_wvar_c(__pyx_f_5gipsy_tofchar(__pyx_t_2), __pyx_f_5gipsy_tofchar(__pyx_t_1), (&__pyx_v_level_c), __pyx_f_5gipsy_tofchar(__pyx_v_comment), (&__pyx_v_err_c));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":2927
 *       gdsd_wvar_c(tofchar(self.handle), tofchar('COMMENT'), &level_c,
 *                   tofchar(comment), &err_c)
 *       if err_c<0:             # <<<<<<<<<<<<<<
 *           raiseGds(err_c)
 * 
 */
  __pyx_t_3 = (__pyx_v_err_c < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":2928
 *                   tofchar(comment), &err_c)
 *       if err_c<0:
 *           raiseGds(err_c)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__raiseGds); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_err_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  __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("gipsy.Set.wcomment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2931
 * 
 * 
 *    def axes(self, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Obtain a list of Axis objects.
 */

static PyObject *__pyx_pf_5gipsy_3Set_50axes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_3Set_50axes = {__Pyx_NAMESTR("axes"), (PyCFunction)__pyx_pf_5gipsy_3Set_50axes, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_3Set_50axes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_level = 0;
  PyObject *__pyx_v_mode = 0;
  int __pyx_v_any;
  PyObject *__pyx_v_grids = NULL;
  PyObject *__pyx_v_ndims = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_axsel = 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;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__level,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("axes");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_kp_s_75);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "axes") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2931; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_level = values[1];
    __pyx_v_mode = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("axes", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2931; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Set.axes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_level);

  /* "gipsy.pyx":2952
 * #    mode = 'outside' : only the axes outside the subset.
 * 
 *       if type(level) is types.BooleanType:             # <<<<<<<<<<<<<<
 *          any = True
 *          if level: level = self.subsets[0]
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__BooleanType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_level)) == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":2953
 * 
 *       if type(level) is types.BooleanType:
 *          any = True             # <<<<<<<<<<<<<<
 *          if level: level = self.subsets[0]
 *          else:     level = 0
 */
    __pyx_v_any = 1;

    /* "gipsy.pyx":2954
 *       if type(level) is types.BooleanType:
 *          any = True
 *          if level: level = self.subsets[0]             # <<<<<<<<<<<<<<
 *          else:     level = 0
 *       else:
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_level); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_level);
      __pyx_v_level = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7;
    }
    /*else*/ {

      /* "gipsy.pyx":2955
 *          any = True
 *          if level: level = self.subsets[0]
 *          else:     level = 0             # <<<<<<<<<<<<<<
 *       else:
 *          any = False
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF(__pyx_v_level);
      __pyx_v_level = __pyx_int_0;
    }
    __pyx_L7:;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":2957
 *          else:     level = 0
 *       else:
 *          any = False             # <<<<<<<<<<<<<<
 *       grids = self.grids(level)
 *       ndims = self.ndims()
 */
    __pyx_v_any = 0;
  }
  __pyx_L6:;

  /* "gipsy.pyx":2958
 *       else:
 *          any = False
 *       grids = self.grids(level)             # <<<<<<<<<<<<<<
 *       ndims = self.ndims()
 *       result = []
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__grids); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_level);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_level);
  __Pyx_GIVEREF(__pyx_v_level);
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_grids = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "gipsy.pyx":2959
 *          any = False
 *       grids = self.grids(level)
 *       ndims = self.ndims()             # <<<<<<<<<<<<<<
 *       result = []
 *       if mode != 'outside':
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ndims); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_ndims = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2960
 *       grids = self.grids(level)
 *       ndims = self.ndims()
 *       result = []             # <<<<<<<<<<<<<<
 *       if mode != 'outside':
 *          for i in range(self.naxis):
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":2961
 *       ndims = self.ndims()
 *       result = []
 *       if mode != 'outside':             # <<<<<<<<<<<<<<
 *          for i in range(self.naxis):
 *             if grids[i] is None:
 */
  __pyx_t_3 = __Pyx_PyString_Equals(__pyx_v_mode, ((PyObject *)__pyx_n_s__outside), Py_NE); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "gipsy.pyx":2962
 *       result = []
 *       if mode != 'outside':
 *          for i in range(self.naxis):             # <<<<<<<<<<<<<<
 *             if grids[i] is None:
 *                result.append(Axis(self, i, level))
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__naxis); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++;
      } else if (PyTuple_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++;
      } else {
        __pyx_t_2 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2963
 *       if mode != 'outside':
 *          for i in range(self.naxis):
 *             if grids[i] is None:             # <<<<<<<<<<<<<<
 *                result.append(Axis(self, i, level))
 *          if mode=='inside':
 */
      __pyx_t_2 = PyObject_GetItem(__pyx_v_grids, __pyx_v_i); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2963; __pyx_clineno = __LINE__; goto __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) {

        /* "gipsy.pyx":2964
 *          for i in range(self.naxis):
 *             if grids[i] is None:
 *                result.append(Axis(self, i, level))             # <<<<<<<<<<<<<<
 *          if mode=='inside':
 *             return result
 */
        if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
        }
        __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__Axis); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __Pyx_INCREF(__pyx_v_self);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
        __Pyx_GIVEREF(__pyx_v_self);
        __Pyx_INCREF(__pyx_v_i);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_i);
        __Pyx_GIVEREF(__pyx_v_i);
        __Pyx_INCREF(__pyx_v_level);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_level);
        __Pyx_GIVEREF(__pyx_v_level);
        __pyx_t_7 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
        __pyx_t_8 = PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L11;
      }
      __pyx_L11:;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "gipsy.pyx":2965
 *             if grids[i] is None:
 *                result.append(Axis(self, i, level))
 *          if mode=='inside':             # <<<<<<<<<<<<<<
 *             return result
 *       if level in self.subsets:
 */
    __pyx_t_3 = __Pyx_PyString_Equals(__pyx_v_mode, ((PyObject *)__pyx_n_s__inside), Py_EQ); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "gipsy.pyx":2966
 *                result.append(Axis(self, i, level))
 *          if mode=='inside':
 *             return result             # <<<<<<<<<<<<<<
 *       if level in self.subsets:
 *          axsel = self.axperm('outside')
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(((PyObject *)__pyx_v_result));
      __pyx_r = ((PyObject *)__pyx_v_result);
      goto __pyx_L0;
      goto __pyx_L12;
    }
    __pyx_L12:;
    goto __pyx_L8;
  }
  __pyx_L8:;

  /* "gipsy.pyx":2967
 *          if mode=='inside':
 *             return result
 *       if level in self.subsets:             # <<<<<<<<<<<<<<
 *          axsel = self.axperm('outside')
 *          for i in range(len(axsel)):
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subsets); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_4, __pyx_v_level))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_3) {

    /* "gipsy.pyx":2968
 *             return result
 *       if level in self.subsets:
 *          axsel = self.axperm('outside')             # <<<<<<<<<<<<<<
 *          for i in range(len(axsel)):
 *             result.append(Axis(self, axsel[i], level, any))
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axperm); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_179), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_axsel = __pyx_t_7;
    __pyx_t_7 = 0;

    /* "gipsy.pyx":2969
 *       if level in self.subsets:
 *          axsel = self.axperm('outside')
 *          for i in range(len(axsel)):             # <<<<<<<<<<<<<<
 *             result.append(Axis(self, axsel[i], level, any))
 *       else:
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_axsel); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    if (PyList_CheckExact(__pyx_t_7) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
      } else if (PyTuple_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++;
      } else {
        __pyx_t_7 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_7)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "gipsy.pyx":2970
 *          axsel = self.axperm('outside')
 *          for i in range(len(axsel)):
 *             result.append(Axis(self, axsel[i], level, any))             # <<<<<<<<<<<<<<
 *       else:
 *          axsel = []
 */
      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__Axis); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetItem(__pyx_v_axsel, __pyx_v_i); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_any); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = PyTuple_New(4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __Pyx_INCREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_level);
      PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_level);
      __Pyx_GIVEREF(__pyx_v_level);
      PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_1 = 0;
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __pyx_t_8 = PyList_Append(__pyx_v_result, __pyx_t_2); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L13;
  }
  /*else*/ {

    /* "gipsy.pyx":2972
 *             result.append(Axis(self, axsel[i], level, any))
 *       else:
 *          axsel = []             # <<<<<<<<<<<<<<
 *          for i in range(ndims):
 *             if grids[i] is not None:
 */
    __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_v_axsel = ((PyObject *)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "gipsy.pyx":2973
 *       else:
 *          axsel = []
 *          for i in range(ndims):             # <<<<<<<<<<<<<<
 *             if grids[i] is not None:
 *                axsel.append(i)
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __Pyx_INCREF(__pyx_v_ndims);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ndims);
    __Pyx_GIVEREF(__pyx_v_ndims);
    __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++;
      } else if (PyTuple_CheckExact(__pyx_t_4)) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++;
      } else {
        __pyx_t_2 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_2)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_2;
      __pyx_t_2 = 0;

      /* "gipsy.pyx":2974
 *          axsel = []
 *          for i in range(ndims):
 *             if grids[i] is not None:             # <<<<<<<<<<<<<<
 *                axsel.append(i)
 *          for i in range(len(axsel)):
 */
      __pyx_t_2 = PyObject_GetItem(__pyx_v_grids, __pyx_v_i); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2974; __pyx_clineno = __LINE__; goto __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) {

        /* "gipsy.pyx":2975
 *          for i in range(ndims):
 *             if grids[i] is not None:
 *                axsel.append(i)             # <<<<<<<<<<<<<<
 *          for i in range(len(axsel)):
 *             result.append(Axis(self, axsel[i], level, any))
 */
        __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_axsel, __pyx_v_i); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L18;
      }
      __pyx_L18:;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "gipsy.pyx":2976
 *             if grids[i] is not None:
 *                axsel.append(i)
 *          for i in range(len(axsel)):             # <<<<<<<<<<<<<<
 *             result.append(Axis(self, axsel[i], level, any))
 *       return result
 */
    __pyx_t_5 = PyObject_Length(__pyx_v_axsel); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_t_2)) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
      } else if (PyTuple_CheckExact(__pyx_t_2)) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
      } else {
        __pyx_t_4 = __pyx_t_6(__pyx_t_2);
        if (unlikely(!__pyx_t_4)) {
          if (PyErr_Occurred()) {
            if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF(__pyx_v_i);
      __pyx_v_i = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "gipsy.pyx":2977
 *                axsel.append(i)
 *          for i in range(len(axsel)):
 *             result.append(Axis(self, axsel[i], level, any))             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
      if (unlikely(((PyObject *)__pyx_v_result) == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__Axis); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = PyObject_GetItem(__pyx_v_axsel, __pyx_v_i); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_any); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __Pyx_INCREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_level);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_level);
      __Pyx_GIVEREF(__pyx_v_level);
      PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_9 = 0;
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __pyx_t_8 = PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L13:;

  /* "gipsy.pyx":2978
 *          for i in range(len(axsel)):
 *             result.append(Axis(self, axsel[i], level, any))
 *       return result             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  __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_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("gipsy.Set.axes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_grids);
  __Pyx_XDECREF(__pyx_v_ndims);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_axsel);
  __Pyx_XDECREF(__pyx_v_level);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":2984
 * #  --------------------------------------------------------------------------
 * 
 * def getsas(setspec):             # <<<<<<<<<<<<<<
 * 
 * # Obtain set, subset information, given a string.
 */

static PyObject *__pyx_pf_5gipsy_53getsas(PyObject *__pyx_self, PyObject *__pyx_v_setspec); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_53getsas = {__Pyx_NAMESTR("getsas"), (PyCFunction)__pyx_pf_5gipsy_53getsas, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_53getsas(PyObject *__pyx_self, PyObject *__pyx_v_setspec) {
  dcdset_struct *__pyx_v_result;
  PyObject *__pyx_v_errors = NULL;
  fint __pyx_v_code;
  PyObject *__pyx_v_setname = NULL;
  PyObject *__pyx_v_subsets = NULL;
  fint __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  fint __pyx_t_7;
  fint __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getsas");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":2993
 * 
 *    cdef dcdset_struct *result
 *    errors = {             # <<<<<<<<<<<<<<
 *        -1:  "Input string longer than internal buffer.",
 *        -2:  "Empty input string.",
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_1, ((PyObject *)__pyx_kp_s_180)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_2, ((PyObject *)__pyx_kp_s_181)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_3, ((PyObject *)__pyx_kp_s_182)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_4, ((PyObject *)__pyx_kp_s_183)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_5, ((PyObject *)__pyx_kp_s_184)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_6, ((PyObject *)__pyx_kp_s_185)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_7, ((PyObject *)__pyx_kp_s_186)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_8, ((PyObject *)__pyx_kp_s_187)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_9, ((PyObject *)__pyx_kp_s_188)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_10, ((PyObject *)__pyx_kp_s_189)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_11, ((PyObject *)__pyx_kp_s_190)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_12, ((PyObject *)__pyx_kp_s_191)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_13, ((PyObject *)__pyx_kp_s_192)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_14, ((PyObject *)__pyx_kp_s_193)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_15, ((PyObject *)__pyx_kp_s_194)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_neg_16, ((PyObject *)__pyx_kp_s_195)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_errors = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "gipsy.pyx":3011
 *       -16:  "Could not allocate memory for storing subset levels."
 *    }
 *    result = dcdset(setspec)             # <<<<<<<<<<<<<<
 *    code = result.status
 *    if code<0:
 */
  __pyx_t_2 = PyBytes_AsString(__pyx_v_setspec); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_result = dcdset(__pyx_t_2);

  /* "gipsy.pyx":3012
 *    }
 *    result = dcdset(setspec)
 *    code = result.status             # <<<<<<<<<<<<<<
 *    if code<0:
 *       raise GdsError(-1, "dcdset code %d (%s)" % (code, errors[code]))
 */
  __pyx_v_code = __pyx_v_result->status;

  /* "gipsy.pyx":3013
 *    result = dcdset(setspec)
 *    code = result.status
 *    if code<0:             # <<<<<<<<<<<<<<
 *       raise GdsError(-1, "dcdset code %d (%s)" % (code, errors[code]))
 *    setname = result.setname
 */
  __pyx_t_3 = (__pyx_v_code < 0);
  if (__pyx_t_3) {

    /* "gipsy.pyx":3014
 *    code = result.status
 *    if code<0:
 *       raise GdsError(-1, "dcdset code %d (%s)" % (code, errors[code]))             # <<<<<<<<<<<<<<
 *    setname = result.setname
 *    subsets = []
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_to_py_fint(__pyx_v_code); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_GetItemInt(((PyObject *)__pyx_v_errors), __pyx_v_code, sizeof(fint), __Pyx_PyInt_to_py_fint); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_196), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_neg_1);
    __Pyx_GIVEREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_5));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "gipsy.pyx":3015
 *    if code<0:
 *       raise GdsError(-1, "dcdset code %d (%s)" % (code, errors[code]))
 *    setname = result.setname             # <<<<<<<<<<<<<<
 *    subsets = []
 *    for i in range(code):
 */
  __pyx_t_5 = PyBytes_FromString(__pyx_v_result->setname); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_setname = ((PyObject *)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "gipsy.pyx":3016
 *       raise GdsError(-1, "dcdset code %d (%s)" % (code, errors[code]))
 *    setname = result.setname
 *    subsets = []             # <<<<<<<<<<<<<<
 *    for i in range(code):
 *       subsets.append(result.subsets[i])
 */
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_v_subsets = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "gipsy.pyx":3017
 *    setname = result.setname
 *    subsets = []
 *    for i in range(code):             # <<<<<<<<<<<<<<
 *       subsets.append(result.subsets[i])
 *    return (setname, subsets)
 */
  __pyx_t_7 = __pyx_v_code;
  for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
    __pyx_v_i = __pyx_t_8;

    /* "gipsy.pyx":3018
 *    subsets = []
 *    for i in range(code):
 *       subsets.append(result.subsets[i])             # <<<<<<<<<<<<<<
 *    return (setname, subsets)
 * 
 */
    if (unlikely(((PyObject *)__pyx_v_subsets) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_5 = __Pyx_PyInt_to_py_fint((__pyx_v_result->subsets[__pyx_v_i])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = PyList_Append(__pyx_v_subsets, __pyx_t_5); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3018; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }

  /* "gipsy.pyx":3019
 *    for i in range(code):
 *       subsets.append(result.subsets[i])
 *    return (setname, subsets)             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_v_setname);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_setname);
  __Pyx_GIVEREF(__pyx_v_setname);
  __Pyx_INCREF(((PyObject *)__pyx_v_subsets));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_subsets));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_subsets));
  __pyx_r = ((PyObject *)__pyx_t_5);
  __pyx_t_5 = 0;
  goto __pyx_L0;

  __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_6);
  __Pyx_AddTraceback("gipsy.getsas", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_errors);
  __Pyx_XDECREF(__pyx_v_setname);
  __Pyx_XDECREF(__pyx_v_subsets);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3106
 *    ]
 * 
 *    def __init__(self, set, axnum, subset=0, any=False):             # <<<<<<<<<<<<<<
 *       self.set    = set
 *       self.axnum  = axnum
 */

static PyObject *__pyx_pf_5gipsy_4Axis___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_4Axis___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_4Axis___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_4Axis___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_set = 0;
  PyObject *__pyx_v_axnum = 0;
  PyObject *__pyx_v_subset = 0;
  PyObject *__pyx_v_any = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__set,&__pyx_n_s__axnum,&__pyx_n_s__subset,&__pyx_n_s__any,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_0);
    values[4] = __pyx_k_197;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__set);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axnum);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__subset);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__any);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_set = values[1];
    __pyx_v_axnum = values[2];
    __pyx_v_subset = values[3];
    __pyx_v_any = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Axis.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":3107
 * 
 *    def __init__(self, set, axnum, subset=0, any=False):
 *       self.set    = set             # <<<<<<<<<<<<<<
 *       self.axnum  = axnum
 *       self.subset = subset
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__set, __pyx_v_set) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3108
 *    def __init__(self, set, axnum, subset=0, any=False):
 *       self.set    = set
 *       self.axnum  = axnum             # <<<<<<<<<<<<<<
 *       self.subset = subset
 *       self.any    = any
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__axnum, __pyx_v_axnum) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3109
 *       self.set    = set
 *       self.axnum  = axnum
 *       self.subset = subset             # <<<<<<<<<<<<<<
 *       self.any    = any
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__subset, __pyx_v_subset) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3110
 *       self.axnum  = axnum
 *       self.subset = subset
 *       self.any    = any             # <<<<<<<<<<<<<<
 * 
 *    def __getattr__(self, key):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__any, __pyx_v_any) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("gipsy.Axis.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3112
 *       self.any    = any
 * 
 *    def __getattr__(self, key):             # <<<<<<<<<<<<<<
 *       if key=='name':
 *          self.__dict__[key] = self.ctype.split('-')[0]
 */

static PyObject *__pyx_pf_5gipsy_4Axis_1__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_4Axis_1__getattr__ = {__Pyx_NAMESTR("__getattr__"), (PyCFunction)__pyx_pf_5gipsy_4Axis_1__getattr__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_4Axis_1__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_boxnum = NULL;
  PyObject *__pyx_v_pos = 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;
  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;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("__getattr__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3112; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__getattr__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3112; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3112; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.Axis.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":3113
 * 
 *    def __getattr__(self, key):
 *       if key=='name':             # <<<<<<<<<<<<<<
 *          self.__dict__[key] = self.ctype.split('-')[0]
 *       elif key== 'slo':
 */
  __pyx_t_1 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__name), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":3114
 *    def __getattr__(self, key):
 *       if key=='name':
 *          self.__dict__[key] = self.ctype.split('-')[0]             # <<<<<<<<<<<<<<
 *       elif key== 'slo':
 *          return self.set.slo[self.axnum]
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ctype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_199), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    if (PyObject_SetItem(__pyx_t_2, __pyx_v_key, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":3115
 *       if key=='name':
 *          self.__dict__[key] = self.ctype.split('-')[0]
 *       elif key== 'slo':             # <<<<<<<<<<<<<<
 *          return self.set.slo[self.axnum]
 *       elif key=='shi':
 */
  __pyx_t_1 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__slo), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":3116
 *          self.__dict__[key] = self.ctype.split('-')[0]
 *       elif key== 'slo':
 *          return self.set.slo[self.axnum]             # <<<<<<<<<<<<<<
 *       elif key=='shi':
 *          return self.set.shi[self.axnum]
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__slo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":3117
 *       elif key== 'slo':
 *          return self.set.slo[self.axnum]
 *       elif key=='shi':             # <<<<<<<<<<<<<<
 *          return self.set.shi[self.axnum]
 *       elif key=='blo':
 */
  __pyx_t_1 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__shi), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":3118
 *          return self.set.slo[self.axnum]
 *       elif key=='shi':
 *          return self.set.shi[self.axnum]             # <<<<<<<<<<<<<<
 *       elif key=='blo':
 *          if self.subset in self.set.subsets:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__shi); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetItem(__pyx_t_3, __pyx_t_4); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3118; __pyx_clineno = __LINE__; goto __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_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":3119
 *       elif key=='shi':
 *          return self.set.shi[self.axnum]
 *       elif key=='blo':             # <<<<<<<<<<<<<<
 *          if self.subset in self.set.subsets:
 *             try:
 */
  __pyx_t_1 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__blo), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":3120
 *          return self.set.shi[self.axnum]
 *       elif key=='blo':
 *          if self.subset in self.set.subsets:             # <<<<<<<<<<<<<<
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subset); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__subsets); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = ((PySequence_Contains(__pyx_t_3, __pyx_t_2))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_1) {

      /* "gipsy.pyx":3121
 *       elif key=='blo':
 *          if self.subset in self.set.subsets:
 *             try:             # <<<<<<<<<<<<<<
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 *                return self.set.blo[boxnum]
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        /*try:*/ {

          /* "gipsy.pyx":3122
 *          if self.subset in self.set.subsets:
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)             # <<<<<<<<<<<<<<
 *                return self.set.blo[boxnum]
 *             except:
 */
          __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__axperm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_200), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__index); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_4));
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_3);
          __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
          __pyx_v_boxnum = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "gipsy.pyx":3123
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 *                return self.set.blo[boxnum]             # <<<<<<<<<<<<<<
 *             except:
 *                if self.any:
 */
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__blo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_GetItem(__pyx_t_4, __pyx_v_boxnum); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __pyx_L8_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_L12_try_return;
        }
        __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;
        goto __pyx_L15_try_end;
        __pyx_L12_try_return:;
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
        goto __pyx_L0;
        __pyx_L8_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "gipsy.pyx":3124
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 *                return self.set.blo[boxnum]
 *             except:             # <<<<<<<<<<<<<<
 *                if self.any:
 *                   raise GdsError(-1, "only inside axes have blo")
 */
        /*except:*/ {
          __Pyx_AddTraceback("gipsy.Axis.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GOTREF(__pyx_t_2);

          /* "gipsy.pyx":3125
 *                return self.set.blo[boxnum]
 *             except:
 *                if self.any:             # <<<<<<<<<<<<<<
 *                   raise GdsError(-1, "only inside axes have blo")
 *                else:
 */
          __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__any); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_1) {

            /* "gipsy.pyx":3126
 *             except:
 *                if self.any:
 *                   raise GdsError(-1, "only inside axes have blo")             # <<<<<<<<<<<<<<
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)
 */
            __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_202), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_Raise(__pyx_t_9, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            goto __pyx_L18;
          }
          /*else*/ {

            /* "gipsy.pyx":3128
 *                   raise GdsError(-1, "only inside axes have blo")
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)             # <<<<<<<<<<<<<<
 *                   self.bhi = pos
 *                   self.__dict__[key] = pos
 */
            __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_8 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__grid); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subset); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_11));
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
            __Pyx_GIVEREF(__pyx_t_9);
            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_10);
            __Pyx_GIVEREF(__pyx_t_10);
            __pyx_t_9 = 0;
            __pyx_t_10 = 0;
            __pyx_t_10 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
            __pyx_v_pos = __pyx_t_10;
            __pyx_t_10 = 0;

            /* "gipsy.pyx":3129
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)
 *                   self.bhi = pos             # <<<<<<<<<<<<<<
 *                   self.__dict__[key] = pos
 *          else:
 */
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__bhi, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3129; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}

            /* "gipsy.pyx":3130
 *                   pos = self.set.grid(self.axnum, self.subset)
 *                   self.bhi = pos
 *                   self.__dict__[key] = pos             # <<<<<<<<<<<<<<
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")
 */
            __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_GOTREF(__pyx_t_10);
            if (PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          __pyx_L18:;
          __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;
          goto __pyx_L9_exception_handled;
        }
        __pyx_L10_except_error:;
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
        goto __pyx_L1_error;
        __pyx_L9_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
        __pyx_L15_try_end:;
      }
      goto __pyx_L7;
    }
    /*else*/ {

      /* "gipsy.pyx":3132
 *                   self.__dict__[key] = pos
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")             # <<<<<<<<<<<<<<
 *       elif key=='bhi':
 *          if self.subset in self.set.subsets:
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_204), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L7:;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":3133
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")
 *       elif key=='bhi':             # <<<<<<<<<<<<<<
 *          if self.subset in self.set.subsets:
 *             try:
 */
  __pyx_t_1 = __Pyx_PyString_Equals(__pyx_v_key, ((PyObject *)__pyx_n_s__bhi), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "gipsy.pyx":3134
 *             raise GdsError(-1, "incompatibe box and subset")
 *       elif key=='bhi':
 *          if self.subset in self.set.subsets:             # <<<<<<<<<<<<<<
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subset); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__subsets); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = ((PySequence_Contains(__pyx_t_3, __pyx_t_4))); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__; goto __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) {

      /* "gipsy.pyx":3135
 *       elif key=='bhi':
 *          if self.subset in self.set.subsets:
 *             try:             # <<<<<<<<<<<<<<
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 *                return self.set.bhi[boxnum]
 */
      {
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_5);
        /*try:*/ {

          /* "gipsy.pyx":3136
 *          if self.subset in self.set.subsets:
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)             # <<<<<<<<<<<<<<
 *                return self.set.bhi[boxnum]
 *             except:
 */
          __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__axperm); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_205), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__index); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(((PyObject *)__pyx_t_2));
          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_3);
          __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
          __pyx_v_boxnum = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "gipsy.pyx":3137
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 *                return self.set.bhi[boxnum]             # <<<<<<<<<<<<<<
 *             except:
 *                if self.any:
 */
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__bhi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_GetItem(__pyx_t_2, __pyx_v_boxnum); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L20_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_L24_try_return;
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L27_try_end;
        __pyx_L24_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
        goto __pyx_L0;
        __pyx_L20_error:;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "gipsy.pyx":3138
 *                boxnum = self.set.axperm('inside').index(self.axnum)
 *                return self.set.bhi[boxnum]
 *             except:             # <<<<<<<<<<<<<<
 *                if self.any:
 *                   raise GdsError(-1, "only inside axes have bhi")
 */
        /*except:*/ {
          __Pyx_AddTraceback("gipsy.Axis.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_GOTREF(__pyx_t_4);

          /* "gipsy.pyx":3139
 *                return self.set.bhi[boxnum]
 *             except:
 *                if self.any:             # <<<<<<<<<<<<<<
 *                   raise GdsError(-1, "only inside axes have bhi")
 *                else:
 */
          __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__any); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_1) {

            /* "gipsy.pyx":3140
 *             except:
 *                if self.any:
 *                   raise GdsError(-1, "only inside axes have bhi")             # <<<<<<<<<<<<<<
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)
 */
            __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3140; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_11 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_k_tuple_207), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3140; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_Raise(__pyx_t_11, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3140; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            goto __pyx_L30;
          }
          /*else*/ {

            /* "gipsy.pyx":3142
 *                   raise GdsError(-1, "only inside axes have bhi")
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)             # <<<<<<<<<<<<<<
 *                   self.blo = pos
 *                   self.__dict__[key] = pos
 */
            __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_10 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__grid); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__subset); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_9));
            PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_11);
            __Pyx_GIVEREF(__pyx_t_11);
            PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8);
            __Pyx_GIVEREF(__pyx_t_8);
            __pyx_t_11 = 0;
            __pyx_t_8 = 0;
            __pyx_t_8 = PyObject_Call(__pyx_t_10, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
            __pyx_v_pos = __pyx_t_8;
            __pyx_t_8 = 0;

            /* "gipsy.pyx":3143
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)
 *                   self.blo = pos             # <<<<<<<<<<<<<<
 *                   self.__dict__[key] = pos
 *          else:
 */
            if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__blo, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}

            /* "gipsy.pyx":3144
 *                   pos = self.set.grid(self.axnum, self.subset)
 *                   self.blo = pos
 *                   self.__dict__[key] = pos             # <<<<<<<<<<<<<<
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")
 */
            __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_GOTREF(__pyx_t_8);
            if (PyObject_SetItem(__pyx_t_8, __pyx_v_key, __pyx_v_pos) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          }
          __pyx_L30:;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L21_exception_handled;
        }
        __pyx_L22_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
        goto __pyx_L1_error;
        __pyx_L21_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
        __pyx_L27_try_end:;
      }
      goto __pyx_L19;
    }
    /*else*/ {

      /* "gipsy.pyx":3146
 *                   self.__dict__[key] = pos
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")             # <<<<<<<<<<<<<<
 *       elif key in ['ctype', 'crpix', 'crval', 'cdelt']:
 *          self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]
 */
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__GdsError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_208), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3146; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L19:;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":3147
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")
 *       elif key in ['ctype', 'crpix', 'crval', 'cdelt']:             # <<<<<<<<<<<<<<
 *          self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]
 *       elif key in ['axtype', 'skysys', 'prosys', 'velsys', 'cunit', 'dunit']:
 */
  __Pyx_INCREF(__pyx_v_key);
  __pyx_t_2 = __pyx_v_key;
  __pyx_t_1 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__ctype), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!((int)__pyx_t_1)) {
    __pyx_t_12 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__crpix), Py_EQ); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_13 = ((int)__pyx_t_12);
  } else {
    __pyx_t_13 = ((int)__pyx_t_1);
  }
  if (!__pyx_t_13) {
    __pyx_t_1 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__crval), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_12 = ((int)__pyx_t_1);
  } else {
    __pyx_t_12 = __pyx_t_13;
  }
  if (!__pyx_t_12) {
    __pyx_t_13 = __Pyx_PyString_Equals(__pyx_t_2, ((PyObject *)__pyx_n_s__cdelt), Py_EQ); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = ((int)__pyx_t_13);
  } else {
    __pyx_t_1 = __pyx_t_12;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_12 = __pyx_t_1;
  if (__pyx_t_12) {

    /* "gipsy.pyx":3148
 *             raise GdsError(-1, "incompatibe box and subset")
 *       elif key in ['ctype', 'crpix', 'crval', 'cdelt']:
 *          self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]             # <<<<<<<<<<<<<<
 *       elif key in ['axtype', 'skysys', 'prosys', 'velsys', 'cunit', 'dunit']:
 *          self.__axtype()
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__set); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__axnum); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __Pyx_INCREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
    __Pyx_GIVEREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_209), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_GetItem(__pyx_t_2, ((PyObject *)__pyx_t_3)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyObject_SetItem(__pyx_t_3, __pyx_v_key, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }

  /* "gipsy.pyx":3149
 *       elif key in ['ctype', 'crpix', 'crval', 'cdelt']:
 *          self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]
 *       elif key in ['axtype', 'skysys', 'prosys', 'velsys', 'cunit', 'dunit']:             # <<<<<<<<<<<<<<
 *          self.__axtype()
 *       else:
 */
  __Pyx_INCREF(__pyx_v_key);
  __pyx_t_4 = __pyx_v_key;
  __pyx_t_12 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_n_s__axtype), Py_EQ); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (!((int)__pyx_t_12)) {
    __pyx_t_1 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_n_s__skysys), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_13 = ((int)__pyx_t_1);
  } else {
    __pyx_t_13 = ((int)__pyx_t_12);
  }
  if (!__pyx_t_13) {
    __pyx_t_12 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_n_s__prosys), Py_EQ); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = ((int)__pyx_t_12);
  } else {
    __pyx_t_1 = __pyx_t_13;
  }
  if (!__pyx_t_1) {
    __pyx_t_13 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_n_s__velsys), Py_EQ); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_12 = ((int)__pyx_t_13);
  } else {
    __pyx_t_12 = __pyx_t_1;
  }
  if (!__pyx_t_12) {
    __pyx_t_1 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_n_s__cunit), Py_EQ); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_13 = ((int)__pyx_t_1);
  } else {
    __pyx_t_13 = __pyx_t_12;
  }
  if (!__pyx_t_13) {
    __pyx_t_12 = __Pyx_PyString_Equals(__pyx_t_4, ((PyObject *)__pyx_n_s__dunit), Py_EQ); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = ((int)__pyx_t_12);
  } else {
    __pyx_t_1 = __pyx_t_13;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_13 = __pyx_t_1;
  if (__pyx_t_13) {

    /* "gipsy.pyx":3150
 *          self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]
 *       elif key in ['axtype', 'skysys', 'prosys', 'velsys', 'cunit', 'dunit']:
 *          self.__axtype()             # <<<<<<<<<<<<<<
 *       else:
 *          raise AttributeError("No attribute %s" % key)
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____axtype); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3150; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":3152
 *          self.__axtype()
 *       else:
 *          raise AttributeError("No attribute %s" % key)             # <<<<<<<<<<<<<<
 * 
 *       return self.__dict__[key]
 */
    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_137), __pyx_v_key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_builtin_AttributeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  /* "gipsy.pyx":3154
 *          raise AttributeError("No attribute %s" % key)
 * 
 *       return self.__dict__[key]             # <<<<<<<<<<<<<<
 * 
 *    def __axtype(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_v_key); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("gipsy.Axis.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_boxnum);
  __Pyx_XDECREF(__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3156
 *       return self.__dict__[key]
 * 
 *    def __axtype(self):             # <<<<<<<<<<<<<<
 *       cdef fint skysys_c, prosys_c, velsys_c
 *       cunit  = '          '
 */

static PyObject *__pyx_pf_5gipsy_4Axis_2__axtype(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_4Axis_2__axtype = {__Pyx_NAMESTR("__axtype"), (PyCFunction)__pyx_pf_5gipsy_4Axis_2__axtype, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_4Axis_2__axtype(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  fint __pyx_v_skysys_c;
  fint __pyx_v_prosys_c;
  fint __pyx_v_velsys_c;
  PyObject *__pyx_v_cunit = NULL;
  PyObject *__pyx_v_dunit = NULL;
  fint __pyx_v_axtype;
  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("__axtype");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3158
 *    def __axtype(self):
 *       cdef fint skysys_c, prosys_c, velsys_c
 *       cunit  = '          '             # <<<<<<<<<<<<<<
 *       dunit  = '          '
 *       axtype = axtype_c(tofchar(self.ctype), tofchar(cunit), tofchar(dunit),
 */
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_210));
  __pyx_v_cunit = ((PyObject *)__pyx_kp_s_210);

  /* "gipsy.pyx":3159
 *       cdef fint skysys_c, prosys_c, velsys_c
 *       cunit  = '          '
 *       dunit  = '          '             # <<<<<<<<<<<<<<
 *       axtype = axtype_c(tofchar(self.ctype), tofchar(cunit), tofchar(dunit),
 *                         &skysys_c, &prosys_c, &velsys_c)
 */
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_210));
  __pyx_v_dunit = ((PyObject *)__pyx_kp_s_210);

  /* "gipsy.pyx":3160
 *       cunit  = '          '
 *       dunit  = '          '
 *       axtype = axtype_c(tofchar(self.ctype), tofchar(cunit), tofchar(dunit),             # <<<<<<<<<<<<<<
 *                         &skysys_c, &prosys_c, &velsys_c)
 *       self.cunit  = cunit.rstrip()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ctype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);

  /* "gipsy.pyx":3161
 *       dunit  = '          '
 *       axtype = axtype_c(tofchar(self.ctype), tofchar(cunit), tofchar(dunit),
 *                         &skysys_c, &prosys_c, &velsys_c)             # <<<<<<<<<<<<<<
 *       self.cunit  = cunit.rstrip()
 *       self.dunit  = dunit.rstrip()
 */
  __pyx_v_axtype = axtype_c(__pyx_f_5gipsy_tofchar(__pyx_t_1), __pyx_f_5gipsy_tofchar(__pyx_v_cunit), __pyx_f_5gipsy_tofchar(__pyx_v_dunit), (&__pyx_v_skysys_c), (&__pyx_v_prosys_c), (&__pyx_v_velsys_c));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3162
 *       axtype = axtype_c(tofchar(self.ctype), tofchar(cunit), tofchar(dunit),
 *                         &skysys_c, &prosys_c, &velsys_c)
 *       self.cunit  = cunit.rstrip()             # <<<<<<<<<<<<<<
 *       self.dunit  = dunit.rstrip()
 *       self.axtype = (axtype, self.__axtypes[axtype])
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_cunit, __pyx_n_s__rstrip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__cunit, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":3163
 *                         &skysys_c, &prosys_c, &velsys_c)
 *       self.cunit  = cunit.rstrip()
 *       self.dunit  = dunit.rstrip()             # <<<<<<<<<<<<<<
 *       self.axtype = (axtype, self.__axtypes[axtype])
 *       self.skysys = self.__skysystems[skysys_c]
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_dunit, __pyx_n_s__rstrip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__dunit, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3164
 *       self.cunit  = cunit.rstrip()
 *       self.dunit  = dunit.rstrip()
 *       self.axtype = (axtype, self.__axtypes[axtype])             # <<<<<<<<<<<<<<
 *       self.skysys = self.__skysystems[skysys_c]
 *       self.prosys = self.__prosystems[prosys_c]
 */
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_axtype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____axtypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_axtype, sizeof(fint), __Pyx_PyInt_to_py_fint); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__axtype, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;

  /* "gipsy.pyx":3165
 *       self.dunit  = dunit.rstrip()
 *       self.axtype = (axtype, self.__axtypes[axtype])
 *       self.skysys = self.__skysystems[skysys_c]             # <<<<<<<<<<<<<<
 *       self.prosys = self.__prosystems[prosys_c]
 *       self.velsys = self.__velsystems[velsys_c]
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____skysystems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_skysys_c, sizeof(fint), __Pyx_PyInt_to_py_fint); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__skysys, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":3166
 *       self.axtype = (axtype, self.__axtypes[axtype])
 *       self.skysys = self.__skysystems[skysys_c]
 *       self.prosys = self.__prosystems[prosys_c]             # <<<<<<<<<<<<<<
 *       self.velsys = self.__velsystems[velsys_c]
 * 
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____prosystems); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_prosys_c, sizeof(fint), __Pyx_PyInt_to_py_fint); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__prosys, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "gipsy.pyx":3167
 *       self.skysys = self.__skysystems[skysys_c]
 *       self.prosys = self.__prosystems[prosys_c]
 *       self.velsys = self.__velsystems[velsys_c]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____velsystems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_velsys_c, sizeof(fint), __Pyx_PyInt_to_py_fint); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__velsys, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __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("gipsy.Axis.__axtype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cunit);
  __Pyx_XDECREF(__pyx_v_dunit);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3176
 * #  as lambda functions are not (yet?) available, define these functions:
 * #
 * def qtlink_gettext(key):             # <<<<<<<<<<<<<<
 *    return usertext(key, default=1, defval='')
 * 
 */

static PyObject *__pyx_pf_5gipsy_54qtlink_gettext(PyObject *__pyx_self, PyObject *__pyx_v_key); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_54qtlink_gettext = {__Pyx_NAMESTR("qtlink_gettext"), (PyCFunction)__pyx_pf_5gipsy_54qtlink_gettext, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_54qtlink_gettext(PyObject *__pyx_self, PyObject *__pyx_v_key) {
  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("qtlink_gettext");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3177
 * #
 * def qtlink_gettext(key):
 *    return usertext(key, default=1, defval='')             # <<<<<<<<<<<<<<
 * 
 * def qtlink_getlog(key):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__default), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__defval), ((PyObject *)__pyx_kp_s_75)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.qtlink_gettext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3179
 *    return usertext(key, default=1, defval='')
 * 
 * def qtlink_getlog(key):             # <<<<<<<<<<<<<<
 *    return userlog(key, default=1, defval=False)
 * 
 */

static PyObject *__pyx_pf_5gipsy_55qtlink_getlog(PyObject *__pyx_self, PyObject *__pyx_v_key); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_55qtlink_getlog = {__Pyx_NAMESTR("qtlink_getlog"), (PyCFunction)__pyx_pf_5gipsy_55qtlink_getlog, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_55qtlink_getlog(PyObject *__pyx_self, PyObject *__pyx_v_key) {
  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("qtlink_getlog");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3180
 * 
 * def qtlink_getlog(key):
 *    return userlog(key, default=1, defval=False)             # <<<<<<<<<<<<<<
 * 
 * def qlink_buttontext(widget):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__userlog); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__default), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__defval), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.qtlink_getlog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3182
 *    return userlog(key, default=1, defval=False)
 * 
 * def qlink_buttontext(widget):             # <<<<<<<<<<<<<<
 *    return ['N','Y'][QtGui.QAbstractButton.isChecked(widget)]
 * 
 */

static PyObject *__pyx_pf_5gipsy_56qlink_buttontext(PyObject *__pyx_self, PyObject *__pyx_v_widget); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_56qlink_buttontext = {__Pyx_NAMESTR("qlink_buttontext"), (PyCFunction)__pyx_pf_5gipsy_56qlink_buttontext, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_56qlink_buttontext(PyObject *__pyx_self, PyObject *__pyx_v_widget) {
  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("qlink_buttontext");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3183
 * 
 * def qlink_buttontext(widget):
 *    return ['N','Y'][QtGui.QAbstractButton.isChecked(widget)]             # <<<<<<<<<<<<<<
 * 
 * def qtlink_spinboxtext(widget):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__N));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__N));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__N));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__Y));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__Y));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Y));
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__QAbstractButton); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__isChecked); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_widget);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_widget);
  __Pyx_GIVEREF(__pyx_v_widget);
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_t_1), __pyx_t_4); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.qlink_buttontext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3185
 *    return ['N','Y'][QtGui.QAbstractButton.isChecked(widget)]
 * 
 * def qtlink_spinboxtext(widget):             # <<<<<<<<<<<<<<
 *    return str(QtGui.QSpinBox.value(widget))
 * 
 */

static PyObject *__pyx_pf_5gipsy_57qtlink_spinboxtext(PyObject *__pyx_self, PyObject *__pyx_v_widget); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_57qtlink_spinboxtext = {__Pyx_NAMESTR("qtlink_spinboxtext"), (PyCFunction)__pyx_pf_5gipsy_57qtlink_spinboxtext, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_57qtlink_spinboxtext(PyObject *__pyx_self, PyObject *__pyx_v_widget) {
  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("qtlink_spinboxtext");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3186
 * 
 * def qtlink_spinboxtext(widget):
 *    return str(QtGui.QSpinBox.value(widget))             # <<<<<<<<<<<<<<
 * 
 * def qtlink_dspinboxtext(widget):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QSpinBox); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_widget);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_widget);
  __Pyx_GIVEREF(__pyx_v_widget);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.qtlink_spinboxtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3188
 *    return str(QtGui.QSpinBox.value(widget))
 * 
 * def qtlink_dspinboxtext(widget):             # <<<<<<<<<<<<<<
 *    return str(QtGui.QDoubleSpinBox.value(widget))
 * 
 */

static PyObject *__pyx_pf_5gipsy_58qtlink_dspinboxtext(PyObject *__pyx_self, PyObject *__pyx_v_widget); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_58qtlink_dspinboxtext = {__Pyx_NAMESTR("qtlink_dspinboxtext"), (PyCFunction)__pyx_pf_5gipsy_58qtlink_dspinboxtext, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_58qtlink_dspinboxtext(PyObject *__pyx_self, PyObject *__pyx_v_widget) {
  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("qtlink_dspinboxtext");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3189
 * 
 * def qtlink_dspinboxtext(widget):
 *    return str(QtGui.QDoubleSpinBox.value(widget))             # <<<<<<<<<<<<<<
 * 
 * def qtlink_slidertext(widget):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QDoubleSpinBox); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_widget);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_widget);
  __Pyx_GIVEREF(__pyx_v_widget);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.qtlink_dspinboxtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3191
 *    return str(QtGui.QDoubleSpinBox.value(widget))
 * 
 * def qtlink_slidertext(widget):             # <<<<<<<<<<<<<<
 *    return str(QtGui.QAbstractSlider.value(widget))
 * 
 */

static PyObject *__pyx_pf_5gipsy_59qtlink_slidertext(PyObject *__pyx_self, PyObject *__pyx_v_widget); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_59qtlink_slidertext = {__Pyx_NAMESTR("qtlink_slidertext"), (PyCFunction)__pyx_pf_5gipsy_59qtlink_slidertext, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_59qtlink_slidertext(PyObject *__pyx_self, PyObject *__pyx_v_widget) {
  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("qtlink_slidertext");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3192
 * 
 * def qtlink_slidertext(widget):
 *    return str(QtGui.QAbstractSlider.value(widget))             # <<<<<<<<<<<<<<
 * 
 * class QtLink(object):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QAbstractSlider); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_widget);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_widget);
  __Pyx_GIVEREF(__pyx_v_widget);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.qtlink_slidertext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3242
 *                   ]
 * 
 *    def __init__(self, key, widget,             # <<<<<<<<<<<<<<
 *                       signal=None, keyval=None, widgetval=None, setval=None,
 *                       compare=True):
 */

static PyObject *__pyx_pf_5gipsy_6QtLink___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6QtLink___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_6QtLink___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6QtLink___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_widget = 0;
  PyObject *__pyx_v_signal = 0;
  PyObject *__pyx_v_keyval = 0;
  PyObject *__pyx_v_widgetval = 0;
  PyObject *__pyx_v_setval = 0;
  PyObject *__pyx_v_compare = 0;
  PyObject *__pyx_v_w_class = NULL;
  PyObject *__pyx_v_w_signal = NULL;
  PyObject *__pyx_v_k_getval = NULL;
  PyObject *__pyx_v_w_setval = NULL;
  PyObject *__pyx_v_w_getval = 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;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  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)(PyObject *);
  int __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,&__pyx_n_s__widget,&__pyx_n_s__signal,&__pyx_n_s__keyval,&__pyx_n_s__widgetval,&__pyx_n_s__setval,&__pyx_n_s__compare,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[8] = {0,0,0,0,0,0,0,0};

    /* "gipsy.pyx":3243
 * 
 *    def __init__(self, key, widget,
 *                       signal=None, keyval=None, widgetval=None, setval=None,             # <<<<<<<<<<<<<<
 *                       compare=True):
 *       if not has_pyqt4:
 */
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)Py_None);
    values[5] = ((PyObject *)Py_None);
    values[6] = ((PyObject *)Py_None);
    values[7] = __pyx_k_211;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__widget);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__signal);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyval);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__widgetval);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__setval);
          if (value) { values[6] = value; kw_args--; }
        }
        case  7:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__compare);
          if (value) { values[7] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
    __pyx_v_widget = values[2];
    __pyx_v_signal = values[3];
    __pyx_v_keyval = values[4];
    __pyx_v_widgetval = values[5];
    __pyx_v_setval = values[6];
    __pyx_v_compare = values[7];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.QtLink.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":3245
 *                       signal=None, keyval=None, widgetval=None, setval=None,
 *                       compare=True):
 *       if not has_pyqt4:             # <<<<<<<<<<<<<<
 *          raise GipsyError("Cannot connect to PyQt4")
 *       self.w_signal = 'None'
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_pyqt4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "gipsy.pyx":3246
 *                       compare=True):
 *       if not has_pyqt4:
 *          raise GipsyError("Cannot connect to PyQt4")             # <<<<<<<<<<<<<<
 *       self.w_signal = 'None'
 *       self.k_getval = None
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_212), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "gipsy.pyx":3247
 *       if not has_pyqt4:
 *          raise GipsyError("Cannot connect to PyQt4")
 *       self.w_signal = 'None'             # <<<<<<<<<<<<<<
 *       self.k_getval = None
 *       self.w_setval = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_signal, ((PyObject *)__pyx_n_s__None)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3248
 *          raise GipsyError("Cannot connect to PyQt4")
 *       self.w_signal = 'None'
 *       self.k_getval = None             # <<<<<<<<<<<<<<
 *       self.w_setval = None
 *       self.w_getval = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__k_getval, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3249
 *       self.w_signal = 'None'
 *       self.k_getval = None
 *       self.w_setval = None             # <<<<<<<<<<<<<<
 *       self.w_getval = None
 *       for w_class, w_signal, k_getval, w_setval, w_getval in self.protocols:
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_setval, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3250
 *       self.k_getval = None
 *       self.w_setval = None
 *       self.w_getval = None             # <<<<<<<<<<<<<<
 *       for w_class, w_signal, k_getval, w_setval, w_getval in self.protocols:
 *          if isinstance(widget, w_class):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_getval, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3251
 *       self.w_setval = None
 *       self.w_getval = None
 *       for w_class, w_signal, k_getval, w_setval, w_getval in self.protocols:             # <<<<<<<<<<<<<<
 *          if isinstance(widget, w_class):
 *             self.w_signal = w_signal
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__protocols); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
    } else if (PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
    } else {
      __pyx_t_4 = __pyx_t_6(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
      PyObject* sequence = __pyx_t_4;
      if (likely(PyTuple_CheckExact(sequence))) {
        if (unlikely(PyTuple_GET_SIZE(sequence) != 5)) {
          if (PyTuple_GET_SIZE(sequence) > 5) __Pyx_RaiseTooManyValuesError(5);
          else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); 
        __pyx_t_10 = PyTuple_GET_ITEM(sequence, 3); 
        __pyx_t_11 = PyTuple_GET_ITEM(sequence, 4); 
      } else {
        if (unlikely(PyList_GET_SIZE(sequence) != 5)) {
          if (PyList_GET_SIZE(sequence) > 5) __Pyx_RaiseTooManyValuesError(5);
          else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_9 = PyList_GET_ITEM(sequence, 2); 
        __pyx_t_10 = PyList_GET_ITEM(sequence, 3); 
        __pyx_t_11 = PyList_GET_ITEM(sequence, 4); 
      }
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext;
      index = 0; __pyx_t_7 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_7)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      index = 1; __pyx_t_8 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_8)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_8);
      index = 2; __pyx_t_9 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_9);
      index = 3; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_10);
      index = 4; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L9_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_11);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L10_unpacking_done;
      __pyx_L9_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
      if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_L10_unpacking_done:;
    }
    __Pyx_XDECREF(__pyx_v_w_class);
    __pyx_v_w_class = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_v_w_signal);
    __pyx_v_w_signal = __pyx_t_8;
    __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_v_k_getval);
    __pyx_v_k_getval = __pyx_t_9;
    __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_v_w_setval);
    __pyx_v_w_setval = __pyx_t_10;
    __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_v_w_getval);
    __pyx_v_w_getval = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "gipsy.pyx":3252
 *       self.w_getval = None
 *       for w_class, w_signal, k_getval, w_setval, w_getval in self.protocols:
 *          if isinstance(widget, w_class):             # <<<<<<<<<<<<<<
 *             self.w_signal = w_signal
 *             self.k_getval = k_getval
 */
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_widget, __pyx_v_w_class); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {

      /* "gipsy.pyx":3253
 *       for w_class, w_signal, k_getval, w_setval, w_getval in self.protocols:
 *          if isinstance(widget, w_class):
 *             self.w_signal = w_signal             # <<<<<<<<<<<<<<
 *             self.k_getval = k_getval
 *             self.w_setval = w_setval
 */
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_signal, __pyx_v_w_signal) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "gipsy.pyx":3254
 *          if isinstance(widget, w_class):
 *             self.w_signal = w_signal
 *             self.k_getval = k_getval             # <<<<<<<<<<<<<<
 *             self.w_setval = w_setval
 *             self.w_getval = w_getval
 */
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__k_getval, __pyx_v_k_getval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "gipsy.pyx":3255
 *             self.w_signal = w_signal
 *             self.k_getval = k_getval
 *             self.w_setval = w_setval             # <<<<<<<<<<<<<<
 *             self.w_getval = w_getval
 *       if keyval is not None:
 */
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_setval, __pyx_v_w_setval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

      /* "gipsy.pyx":3256
 *             self.k_getval = k_getval
 *             self.w_setval = w_setval
 *             self.w_getval = w_getval             # <<<<<<<<<<<<<<
 *       if keyval is not None:
 *          self.k_getval = keyval
 */
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_getval, __pyx_v_w_getval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      goto __pyx_L11;
    }
    __pyx_L11:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3257
 *             self.w_setval = w_setval
 *             self.w_getval = w_getval
 *       if keyval is not None:             # <<<<<<<<<<<<<<
 *          self.k_getval = keyval
 *       if widgetval is not None:
 */
  __pyx_t_3 = (__pyx_v_keyval != Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":3258
 *             self.w_getval = w_getval
 *       if keyval is not None:
 *          self.k_getval = keyval             # <<<<<<<<<<<<<<
 *       if widgetval is not None:
 *          self.w_getval = widgetval
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__k_getval, __pyx_v_keyval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L12;
  }
  __pyx_L12:;

  /* "gipsy.pyx":3259
 *       if keyval is not None:
 *          self.k_getval = keyval
 *       if widgetval is not None:             # <<<<<<<<<<<<<<
 *          self.w_getval = widgetval
 *       if setval is not None:
 */
  __pyx_t_3 = (__pyx_v_widgetval != Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":3260
 *          self.k_getval = keyval
 *       if widgetval is not None:
 *          self.w_getval = widgetval             # <<<<<<<<<<<<<<
 *       if setval is not None:
 *          self.w_setval = setval
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_getval, __pyx_v_widgetval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L13;
  }
  __pyx_L13:;

  /* "gipsy.pyx":3261
 *       if widgetval is not None:
 *          self.w_getval = widgetval
 *       if setval is not None:             # <<<<<<<<<<<<<<
 *          self.w_setval = setval
 *       if signal is not None:
 */
  __pyx_t_3 = (__pyx_v_setval != Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":3262
 *          self.w_getval = widgetval
 *       if setval is not None:
 *          self.w_setval = setval             # <<<<<<<<<<<<<<
 *       if signal is not None:
 *          self.w_signal = signal
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_setval, __pyx_v_setval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L14;
  }
  __pyx_L14:;

  /* "gipsy.pyx":3263
 *       if setval is not None:
 *          self.w_setval = setval
 *       if signal is not None:             # <<<<<<<<<<<<<<
 *          self.w_signal = signal
 *       if self.k_getval is None or self.w_setval is None:
 */
  __pyx_t_3 = (__pyx_v_signal != Py_None);
  if (__pyx_t_3) {

    /* "gipsy.pyx":3264
 *          self.w_setval = setval
 *       if signal is not None:
 *          self.w_signal = signal             # <<<<<<<<<<<<<<
 *       if self.k_getval is None or self.w_setval is None:
 *          raise Exception, 'unsupported widget: %s' % type(widget)
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__w_signal, __pyx_v_signal) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L15;
  }
  __pyx_L15:;

  /* "gipsy.pyx":3265
 *       if signal is not None:
 *          self.w_signal = signal
 *       if self.k_getval is None or self.w_setval is None:             # <<<<<<<<<<<<<<
 *          raise Exception, 'unsupported widget: %s' % type(widget)
 *       self.key    = key
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__k_getval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!__pyx_t_3) {
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__w_setval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __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;
    __pyx_t_14 = __pyx_t_2;
  } else {
    __pyx_t_14 = __pyx_t_3;
  }
  if (__pyx_t_14) {

    /* "gipsy.pyx":3266
 *          self.w_signal = signal
 *       if self.k_getval is None or self.w_setval is None:
 *          raise Exception, 'unsupported widget: %s' % type(widget)             # <<<<<<<<<<<<<<
 *       self.key    = key
 *       self.widget = widget
 */
    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_213), ((PyObject *)Py_TYPE(__pyx_v_widget))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_Raise(__pyx_builtin_Exception, ((PyObject *)__pyx_t_1), 0, 0);
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L16;
  }
  __pyx_L16:;

  /* "gipsy.pyx":3267
 *       if self.k_getval is None or self.w_setval is None:
 *          raise Exception, 'unsupported widget: %s' % type(widget)
 *       self.key    = key             # <<<<<<<<<<<<<<
 *       self.widget = widget
 *       self.compare = compare
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__key, __pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3268
 *          raise Exception, 'unsupported widget: %s' % type(widget)
 *       self.key    = key
 *       self.widget = widget             # <<<<<<<<<<<<<<
 *       self.compare = compare
 *       self.block  = False
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__widget, __pyx_v_widget) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3269
 *       self.key    = key
 *       self.widget = widget
 *       self.compare = compare             # <<<<<<<<<<<<<<
 *       self.block  = False
 *       self.keyproc = KeyCallback(self.key_read, key)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__compare, __pyx_v_compare) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":3270
 *       self.widget = widget
 *       self.compare = compare
 *       self.block  = False             # <<<<<<<<<<<<<<
 *       self.keyproc = KeyCallback(self.key_read, key)
 *       self.rejproc = KeyCallback(self.key_reject, key,
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__block, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3271
 *       self.compare = compare
 *       self.block  = False
 *       self.keyproc = KeyCallback(self.key_read, key)             # <<<<<<<<<<<<<<
 *       self.rejproc = KeyCallback(self.key_reject, key,
 *                                        mask=KeyCallback.KEYREJECT)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key_read); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_11));
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__keyproc, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":3272
 *       self.block  = False
 *       self.keyproc = KeyCallback(self.key_read, key)
 *       self.rejproc = KeyCallback(self.key_reject, key,             # <<<<<<<<<<<<<<
 *                                        mask=KeyCallback.KEYREJECT)
 *       try:
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key_reject); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_11);
  __Pyx_INCREF(__pyx_v_key);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_key);
  __Pyx_GIVEREF(__pyx_v_key);
  __pyx_t_11 = 0;
  __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_11));

  /* "gipsy.pyx":3273
 *       self.keyproc = KeyCallback(self.key_read, key)
 *       self.rejproc = KeyCallback(self.key_reject, key,
 *                                        mask=KeyCallback.KEYREJECT)             # <<<<<<<<<<<<<<
 *       try:
 *          usertext(key)
 */
  __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__KeyCallback); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__KEYREJECT); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_11, ((PyObject *)__pyx_n_s__mask), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;

  /* "gipsy.pyx":3272
 *       self.block  = False
 *       self.keyproc = KeyCallback(self.key_read, key)
 *       self.rejproc = KeyCallback(self.key_reject, key,             # <<<<<<<<<<<<<<
 *                                        mask=KeyCallback.KEYREJECT)
 *       try:
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__rejproc, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "gipsy.pyx":3274
 *       self.rejproc = KeyCallback(self.key_reject, key,
 *                                        mask=KeyCallback.KEYREJECT)
 *       try:             # <<<<<<<<<<<<<<
 *          usertext(key)
 *          self.key_read(self.keyproc)
 */
  {
    __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:*/ {

      /* "gipsy.pyx":3275
 *                                        mask=KeyCallback.KEYREJECT)
 *       try:
 *          usertext(key)             # <<<<<<<<<<<<<<
 *          self.key_read(self.keyproc)
 *       except:
 */
      __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_11));
      __Pyx_INCREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_key);
      __Pyx_GIVEREF(__pyx_v_key);
      __pyx_t_1 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_11), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":3276
 *       try:
 *          usertext(key)
 *          self.key_read(self.keyproc)             # <<<<<<<<<<<<<<
 *       except:
 *          pass
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key_read); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__keyproc); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      __pyx_t_11 = 0;
      __pyx_t_11 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    }
    __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_L24_try_end;
    __pyx_L17_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;

    /* "gipsy.pyx":3277
 *          usertext(key)
 *          self.key_read(self.keyproc)
 *       except:             # <<<<<<<<<<<<<<
 *          pass
 *       widget.connect(widget, QtCore.SIGNAL(self.w_signal), self.sig_handler)
 */
    /*except:*/ {
      PyErr_Restore(0,0,0);
      goto __pyx_L18_exception_handled;
    }
    __pyx_L18_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_L24_try_end:;
  }

  /* "gipsy.pyx":3279
 *       except:
 *          pass
 *       widget.connect(widget, QtCore.SIGNAL(self.w_signal), self.sig_handler)             # <<<<<<<<<<<<<<
 * 
 *    def close(self):
 */
  __pyx_t_11 = PyObject_GetAttr(__pyx_v_widget, __pyx_n_s__connect); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__SIGNAL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__w_signal); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__sig_handler); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_widget);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_widget);
  __Pyx_GIVEREF(__pyx_v_widget);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_9 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("gipsy.QtLink.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_w_class);
  __Pyx_XDECREF(__pyx_v_w_signal);
  __Pyx_XDECREF(__pyx_v_k_getval);
  __Pyx_XDECREF(__pyx_v_w_setval);
  __Pyx_XDECREF(__pyx_v_w_getval);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3281
 *       widget.connect(widget, QtCore.SIGNAL(self.w_signal), self.sig_handler)
 * 
 *    def close(self):             # <<<<<<<<<<<<<<
 *       if self.keyproc:
 *          self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),
 */

static PyObject *__pyx_pf_5gipsy_6QtLink_1close(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6QtLink_1close = {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pf_5gipsy_6QtLink_1close, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6QtLink_1close(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;
  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("close");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3282
 * 
 *    def close(self):
 *       if self.keyproc:             # <<<<<<<<<<<<<<
 *          self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),
 *                                 self.sig_handler)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__keyproc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":3283
 *    def close(self):
 *       if self.keyproc:
 *          self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),             # <<<<<<<<<<<<<<
 *                                 self.sig_handler)
 *          self.widget = None
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__widget); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__disconnect); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__widget); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__SIGNAL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__w_signal); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

    /* "gipsy.pyx":3284
 *       if self.keyproc:
 *          self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),
 *                                 self.sig_handler)             # <<<<<<<<<<<<<<
 *          self.widget = None
 *          self.keyproc.deschedule()
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__sig_handler); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_1 = 0;
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "gipsy.pyx":3285
 *          self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),
 *                                 self.sig_handler)
 *          self.widget = None             # <<<<<<<<<<<<<<
 *          self.keyproc.deschedule()
 *          self.keyproc = None
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__widget, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":3286
 *                                 self.sig_handler)
 *          self.widget = None
 *          self.keyproc.deschedule()             # <<<<<<<<<<<<<<
 *          self.keyproc = None
 *          self.rejproc.deschedule()
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__keyproc); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3286; __pyx_clineno = __LINE__; goto __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;

    /* "gipsy.pyx":3287
 *          self.widget = None
 *          self.keyproc.deschedule()
 *          self.keyproc = None             # <<<<<<<<<<<<<<
 *          self.rejproc.deschedule()
 *          self.rejproc = None
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__keyproc, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":3288
 *          self.keyproc.deschedule()
 *          self.keyproc = None
 *          self.rejproc.deschedule()             # <<<<<<<<<<<<<<
 *          self.rejproc = None
 * 
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rejproc); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3288; __pyx_clineno = __LINE__; goto __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;

    /* "gipsy.pyx":3289
 *          self.keyproc = None
 *          self.rejproc.deschedule()
 *          self.rejproc = None             # <<<<<<<<<<<<<<
 * 
 *    def __del__(self):
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__rejproc, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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_6);
  __Pyx_AddTraceback("gipsy.QtLink.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3291
 *          self.rejproc = None
 * 
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       self.close()
 * 
 */

static PyObject *__pyx_pf_5gipsy_6QtLink_2__del__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6QtLink_2__del__ = {__Pyx_NAMESTR("__del__"), (PyCFunction)__pyx_pf_5gipsy_6QtLink_2__del__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6QtLink_2__del__(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("__del__");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3292
 * 
 *    def __del__(self):
 *       self.close()             # <<<<<<<<<<<<<<
 * 
 *    def key_read(self, cbobj):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__close); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.QtLink.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3294
 *       self.close()
 * 
 *    def key_read(self, cbobj):             # <<<<<<<<<<<<<<
 *       if self.block:
 *          self.block = False
 */

static PyObject *__pyx_pf_5gipsy_6QtLink_3key_read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6QtLink_3key_read = {__Pyx_NAMESTR("key_read"), (PyCFunction)__pyx_pf_5gipsy_6QtLink_3key_read, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6QtLink_3key_read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_cbobj = 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;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__cbobj,0};
  __Pyx_RefNannySetupContext("key_read");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cbobj);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("key_read", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "key_read") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_cbobj = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("key_read", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.QtLink.key_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":3295
 * 
 *    def key_read(self, cbobj):
 *       if self.block:             # <<<<<<<<<<<<<<
 *          self.block = False
 *       else:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__block); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "gipsy.pyx":3296
 *    def key_read(self, cbobj):
 *       if self.block:
 *          self.block = False             # <<<<<<<<<<<<<<
 *       else:
 *          self.curval = usertext(cbobj.key)
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__block, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "gipsy.pyx":3298
 *          self.block = False
 *       else:
 *          self.curval = usertext(cbobj.key)             # <<<<<<<<<<<<<<
 *          self.w_setval(self.widget, self.k_getval(cbobj.key))
 * 
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_cbobj, __pyx_n_s__key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__curval, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "gipsy.pyx":3299
 *       else:
 *          self.curval = usertext(cbobj.key)
 *          self.w_setval(self.widget, self.k_getval(cbobj.key))             # <<<<<<<<<<<<<<
 * 
 *    def key_reject(self, cbobj):
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__w_setval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__widget); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__k_getval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_cbobj, __pyx_n_s__key); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_L6:;

  __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_6);
  __Pyx_AddTraceback("gipsy.QtLink.key_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3301
 *          self.w_setval(self.widget, self.k_getval(cbobj.key))
 * 
 *    def key_reject(self, cbobj):             # <<<<<<<<<<<<<<
 *       QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')
 * 
 */

static PyObject *__pyx_pf_5gipsy_6QtLink_4key_reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6QtLink_4key_reject = {__Pyx_NAMESTR("key_reject"), (PyCFunction)__pyx_pf_5gipsy_6QtLink_4key_reject, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6QtLink_4key_reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_cbobj = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__cbobj,0};
  __Pyx_RefNannySetupContext("key_reject");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cbobj);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("key_reject", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "key_reject") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_cbobj = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("key_reject", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.QtLink.key_reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":3302
 * 
 *    def key_reject(self, cbobj):
 *       QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')             # <<<<<<<<<<<<<<
 * 
 *    def sig_handler(self):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtMessage); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__widget); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__usertext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__default), __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_k_tuple_215), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_kp_s_214), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_4, ((PyObject *)__pyx_kp_s_216)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.QtLink.key_reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3304
 *       QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')
 * 
 *    def sig_handler(self):             # <<<<<<<<<<<<<<
 *       newval = str(self.w_getval(self.widget))
 *       if (not self.compare) or (newval!=self.curval):
 */

static PyObject *__pyx_pf_5gipsy_6QtLink_5sig_handler(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6QtLink_5sig_handler = {__Pyx_NAMESTR("sig_handler"), (PyCFunction)__pyx_pf_5gipsy_6QtLink_5sig_handler, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6QtLink_5sig_handler(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_newval = 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("sig_handler");
  __pyx_self = __pyx_self;

  /* "gipsy.pyx":3305
 * 
 *    def sig_handler(self):
 *       newval = str(self.w_getval(self.widget))             # <<<<<<<<<<<<<<
 *       if (not self.compare) or (newval!=self.curval):
 *          wkey(self.key+newval)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__w_getval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__widget); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_newval = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":3306
 *    def sig_handler(self):
 *       newval = str(self.w_getval(self.widget))
 *       if (not self.compare) or (newval!=self.curval):             # <<<<<<<<<<<<<<
 *          wkey(self.key+newval)
 *          self.curval = newval
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__compare); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = (!__pyx_t_4);
  if (!__pyx_t_5) {
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__curval); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_newval, __pyx_t_2, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __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_filename = __pyx_f[0]; __pyx_lineno = 3306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __pyx_t_4;
  } else {
    __pyx_t_6 = __pyx_t_5;
  }
  if (__pyx_t_6) {

    /* "gipsy.pyx":3307
 *       newval = str(self.w_getval(self.widget))
 *       if (not self.compare) or (newval!=self.curval):
 *          wkey(self.key+newval)             # <<<<<<<<<<<<<<
 *          self.curval = newval
 *          self.block = True
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__wkey); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_v_newval); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3307; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":3308
 *       if (not self.compare) or (newval!=self.curval):
 *          wkey(self.key+newval)
 *          self.curval = newval             # <<<<<<<<<<<<<<
 *          self.block = True
 * 
 */
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__curval, __pyx_v_newval) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "gipsy.pyx":3309
 *          wkey(self.key+newval)
 *          self.curval = newval
 *          self.block = True             # <<<<<<<<<<<<<<
 * 
 * if has_pyqt4:
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__block, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;

  __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("gipsy.QtLink.sig_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_newval);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "gipsy.pyx":3314
 * 
 *    class QtMessage(QtGui.QWidget):
 *       def __init__(self, parent, message, delay=3.0, fgcolor='red',             # <<<<<<<<<<<<<<
 *                    bgcolor='white'):
 *          QtGui.QWidget.__init__(self, parent)
 */

static PyObject *__pyx_pf_5gipsy_9QtMessage___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_9QtMessage___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_9QtMessage___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_9QtMessage___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_parent = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_delay = 0;
  PyObject *__pyx_v_fgcolor = 0;
  PyObject *__pyx_v_bgcolor = 0;
  PyObject *__pyx_v_widget = NULL;
  PyObject *__pyx_v_layout = NULL;
  PyObject *__pyx_v_label = 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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__parent,&__pyx_n_s__message,&__pyx_n_s__delay,&__pyx_n_s__fgcolor,&__pyx_n_s__bgcolor,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[3] = __pyx_k_217;
    values[4] = ((PyObject *)__pyx_n_s__red);
    values[5] = ((PyObject *)__pyx_n_s__white);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__parent);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delay);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fgcolor);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bgcolor);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_parent = values[1];
    __pyx_v_message = values[2];
    __pyx_v_delay = values[3];
    __pyx_v_fgcolor = values[4];
    __pyx_v_bgcolor = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.QtMessage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "gipsy.pyx":3316
 *       def __init__(self, parent, message, delay=3.0, fgcolor='red',
 *                    bgcolor='white'):
 *          QtGui.QWidget.__init__(self, parent)             # <<<<<<<<<<<<<<
 *          self.setStyleSheet("QLabel { color: %s; background-color: %s }" %
 *                                     (        fgcolor,              bgcolor) )
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QWidget); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __Pyx_INCREF(__pyx_v_parent);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_parent);
  __Pyx_GIVEREF(__pyx_v_parent);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":3317
 *                    bgcolor='white'):
 *          QtGui.QWidget.__init__(self, parent)
 *          self.setStyleSheet("QLabel { color: %s; background-color: %s }" %             # <<<<<<<<<<<<<<
 *                                     (        fgcolor,              bgcolor) )
 * 
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__setStyleSheet); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "gipsy.pyx":3318
 *          QtGui.QWidget.__init__(self, parent)
 *          self.setStyleSheet("QLabel { color: %s; background-color: %s }" %
 *                                     (        fgcolor,              bgcolor) )             # <<<<<<<<<<<<<<
 * 
 *          widget = parent
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_fgcolor);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fgcolor);
  __Pyx_GIVEREF(__pyx_v_fgcolor);
  __Pyx_INCREF(__pyx_v_bgcolor);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_bgcolor);
  __Pyx_GIVEREF(__pyx_v_bgcolor);
  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_218), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3320
 *                                     (        fgcolor,              bgcolor) )
 * 
 *          widget = parent             # <<<<<<<<<<<<<<
 *          layout = QtGui.QGridLayout(self)
 *          label = QtGui.QLabel(message)
 */
  __Pyx_INCREF(__pyx_v_parent);
  __pyx_v_widget = __pyx_v_parent;

  /* "gipsy.pyx":3321
 * 
 *          widget = parent
 *          layout = QtGui.QGridLayout(self)             # <<<<<<<<<<<<<<
 *          label = QtGui.QLabel(message)
 *          label.setFrameShape(QtGui.QFrame.Box)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QGridLayout); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3321; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_layout = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "gipsy.pyx":3322
 *          widget = parent
 *          layout = QtGui.QGridLayout(self)
 *          label = QtGui.QLabel(message)             # <<<<<<<<<<<<<<
 *          label.setFrameShape(QtGui.QFrame.Box)
 *          label.setAutoFillBackground(True)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__QLabel); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_message);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_message);
  __Pyx_GIVEREF(__pyx_v_message);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_label = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "gipsy.pyx":3323
 *          layout = QtGui.QGridLayout(self)
 *          label = QtGui.QLabel(message)
 *          label.setFrameShape(QtGui.QFrame.Box)             # <<<<<<<<<<<<<<
 *          label.setAutoFillBackground(True)
 *          layout.addWidget(label)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_label, __pyx_n_s__setFrameShape); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__QFrame); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__Box); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":3324
 *          label = QtGui.QLabel(message)
 *          label.setFrameShape(QtGui.QFrame.Box)
 *          label.setAutoFillBackground(True)             # <<<<<<<<<<<<<<
 *          layout.addWidget(label)
 * 
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_label, __pyx_n_s_219); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3325
 *          label.setFrameShape(QtGui.QFrame.Box)
 *          label.setAutoFillBackground(True)
 *          layout.addWidget(label)             # <<<<<<<<<<<<<<
 * 
 *          # adjust the margins or you will get an invisible, unintended border
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_layout, __pyx_n_s__addWidget); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_label);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_label);
  __Pyx_GIVEREF(__pyx_v_label);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "gipsy.pyx":3328
 * 
 *          # adjust the margins or you will get an invisible, unintended border
 *          layout.setContentsMargins(0, 0, 0, 0)             # <<<<<<<<<<<<<<
 * 
 *          # need to set the layout
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_layout, __pyx_n_s__setContentsMargins); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_220), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3328; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":3331
 * 
 *          # need to set the layout
 *          self.setLayout(layout)             # <<<<<<<<<<<<<<
 *          self.adjustSize()
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__setLayout); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_layout);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_layout);
  __Pyx_GIVEREF(__pyx_v_layout);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3332
 *          # need to set the layout
 *          self.setLayout(layout)
 *          self.adjustSize()             # <<<<<<<<<<<<<<
 * 
 *          # tag this widget as a popup
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__adjustSize); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3332; __pyx_clineno = __LINE__; goto __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;

  /* "gipsy.pyx":3335
 * 
 *          # tag this widget as a popup
 *          self.setWindowFlags(QtCore.Qt.Popup)             # <<<<<<<<<<<<<<
 * 
 *          self.move(widget.mapToGlobal(widget.rect().bottomLeft()))
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__setWindowFlags); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__Qt); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__Popup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3337
 *          self.setWindowFlags(QtCore.Qt.Popup)
 * 
 *          self.move(widget.mapToGlobal(widget.rect().bottomLeft()))             # <<<<<<<<<<<<<<
 *          QtCore.QTimer.singleShot(1000*delay, self, QtCore.SLOT('hide()'))
 *          self.show()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__move); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_widget, __pyx_n_s__mapToGlobal); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_widget, __pyx_n_s__rect); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__bottomLeft); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "gipsy.pyx":3338
 * 
 *          self.move(widget.mapToGlobal(widget.rect().bottomLeft()))
 *          QtCore.QTimer.singleShot(1000*delay, self, QtCore.SLOT('hide()'))             # <<<<<<<<<<<<<<
 *          self.show()
 * 
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__QTimer); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__singleShot); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_int_1000, __pyx_v_delay); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__SLOT); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_222), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3339
 *          self.move(widget.mapToGlobal(widget.rect().bottomLeft()))
 *          QtCore.QTimer.singleShot(1000*delay, self, QtCore.SLOT('hide()'))
 *          self.show()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__show); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3339; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.QtMessage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_widget);
  __Pyx_XDECREF(__pyx_v_layout);
  __Pyx_XDECREF(__pyx_v_label);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":67
 * #    container - element containing the current element
 * 
 *    def __getattr__(self, name):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */

static PyObject *__pyx_pf_5gipsy_8_Element___getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8_Element___getattr__ = {__Pyx_NAMESTR("__getattr__"), (PyCFunction)__pyx_pf_5gipsy_8_Element___getattr__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8_Element___getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  ident __pyx_v_hook;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,0};
  __Pyx_RefNannySetupContext("__getattr__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__getattr__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":69
 *    def __getattr__(self, name):
 *       cdef ident hook
 *       hook = toident(self.hook)             # <<<<<<<<<<<<<<
 *       if name=='width':
 *          return GgiWidth(hook)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hook = __pyx_f_5gipsy_toident(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":70
 *       cdef ident hook
 *       hook = toident(self.hook)
 *       if name=='width':             # <<<<<<<<<<<<<<
 *          return GgiWidth(hook)
 *       elif name=='height':
 */
  __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__width), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":71
 *       hook = toident(self.hook)
 *       if name=='width':
 *          return GgiWidth(hook)             # <<<<<<<<<<<<<<
 *       elif name=='height':
 *          return GgiHeight(hook)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyInt_FromLong(GgiWidth(__pyx_v_hook)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":72
 *       if name=='width':
 *          return GgiWidth(hook)
 *       elif name=='height':             # <<<<<<<<<<<<<<
 *          return GgiHeight(hook)
 *       elif name=='realized':
 */
  __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__height), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":73
 *          return GgiWidth(hook)
 *       elif name=='height':
 *          return GgiHeight(hook)             # <<<<<<<<<<<<<<
 *       elif name=='realized':
 *          return GgiIsRealized(hook)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyInt_FromLong(GgiHeight(__pyx_v_hook)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":74
 *       elif name=='height':
 *          return GgiHeight(hook)
 *       elif name=='realized':             # <<<<<<<<<<<<<<
 *          return GgiIsRealized(hook)
 *       else:
 */
  __pyx_t_2 = __Pyx_PyString_Equals(__pyx_v_name, ((PyObject *)__pyx_n_s__realized), Py_EQ); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":75
 *          return GgiHeight(hook)
 *       elif name=='realized':
 *          return GgiIsRealized(hook)             # <<<<<<<<<<<<<<
 *       else:
 *          raise AttributeError, "No attribute %s" % name
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyInt_to_py_bool(GgiIsRealized(__pyx_v_hook)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":77
 *          return GgiIsRealized(hook)
 *       else:
 *          raise AttributeError, "No attribute %s" % name             # <<<<<<<<<<<<<<
 *    def setPosition(self, xfrom, xid, yfrom, yid):
 * 
 */
    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_137), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_t_1), 0, 0);
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L6:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":78
 *       else:
 *          raise AttributeError, "No attribute %s" % name
 *    def setPosition(self, xfrom, xid, yfrom, yid):             # <<<<<<<<<<<<<<
 * 
 * # Position an element relative to other elements
 */

static PyObject *__pyx_pf_5gipsy_8_Element_1setPosition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8_Element_1setPosition = {__Pyx_NAMESTR("setPosition"), (PyCFunction)__pyx_pf_5gipsy_8_Element_1setPosition, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8_Element_1setPosition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_xfrom = 0;
  PyObject *__pyx_v_xid = 0;
  PyObject *__pyx_v_yfrom = 0;
  PyObject *__pyx_v_yid = 0;
  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;
  int __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__xfrom,&__pyx_n_s__xid,&__pyx_n_s__yfrom,&__pyx_n_s__yid,0};
  __Pyx_RefNannySetupContext("setPosition");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xfrom);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setPosition", 1, 5, 5, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xid);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setPosition", 1, 5, 5, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yfrom);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setPosition", 1, 5, 5, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yid);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setPosition", 1, 5, 5, 4); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setPosition") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_self = values[0];
    __pyx_v_xfrom = values[1];
    __pyx_v_xid = values[2];
    __pyx_v_yfrom = values[3];
    __pyx_v_yid = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setPosition", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.setPosition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_xid);
  __Pyx_INCREF(__pyx_v_yid);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":89
 * #   yid    - other element or None (border)
 * 
 *       if not xid: xid = GgiBase.base             # <<<<<<<<<<<<<<
 *       if not yid: yid = GgiBase.base
 *       if (xid != GgiBase.base and xid.container != self.container) or \
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_xid); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiBase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__base); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_xid);
    __pyx_v_xid = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":90
 * 
 *       if not xid: xid = GgiBase.base
 *       if not yid: yid = GgiBase.base             # <<<<<<<<<<<<<<
 *       if (xid != GgiBase.base and xid.container != self.container) or \
 *          (yid != GgiBase.base and yid.container != self.container):
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_yid); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = (!__pyx_t_2);
  if (__pyx_t_1) {
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiBase); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__base); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_yid);
    __pyx_v_yid = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":91
 *       if not xid: xid = GgiBase.base
 *       if not yid: yid = GgiBase.base
 *       if (xid != GgiBase.base and xid.container != self.container) or \             # <<<<<<<<<<<<<<
 *          (yid != GgiBase.base and yid.container != self.container):
 *          raise GgiError, "container mismatch"
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiBase); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__base); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_xid, __pyx_t_4, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_1) {
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_xid, __pyx_n_s__container); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__container); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_NE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_filename = __pyx_f[1]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = __pyx_t_2;
  } else {
    __pyx_t_6 = __pyx_t_1;
  }
  if (!__pyx_t_6) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":92
 *       if not yid: yid = GgiBase.base
 *       if (xid != GgiBase.base and xid.container != self.container) or \
 *          (yid != GgiBase.base and yid.container != self.container):             # <<<<<<<<<<<<<<
 *          raise GgiError, "container mismatch"
 *       GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiBase); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__base); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_RichCompare(__pyx_v_yid, __pyx_t_4, Py_NE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_1) {
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_yid, __pyx_n_s__container); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__container); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_7 = __pyx_t_2;
    } else {
      __pyx_t_7 = __pyx_t_1;
    }
    __pyx_t_1 = __pyx_t_7;
  } else {
    __pyx_t_1 = __pyx_t_6;
  }
  if (__pyx_t_1) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":93
 *       if (xid != GgiBase.base and xid.container != self.container) or \
 *          (yid != GgiBase.base and yid.container != self.container):
 *          raise GgiError, "container mismatch"             # <<<<<<<<<<<<<<
 *       GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))
 *       return self
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_s_223), 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L8;
  }
  __pyx_L8:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":94
 *          (yid != GgiBase.base and yid.container != self.container):
 *          raise GgiError, "container mismatch"
 *       GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))             # <<<<<<<<<<<<<<
 *       return self
 *    def setLabel(self, text, width=0):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_v_xfrom); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_xid, __pyx_n_s__hook); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_v_yfrom); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_yid, __pyx_n_s__hook); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  GgiSetPosition(__pyx_f_5gipsy_toident(__pyx_t_3), __pyx_t_8, __pyx_f_5gipsy_toident(__pyx_t_4), __pyx_t_9, __pyx_f_5gipsy_toident(__pyx_t_5));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":95
 *          raise GgiError, "container mismatch"
 *       GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))
 *       return self             # <<<<<<<<<<<<<<
 *    def setLabel(self, text, width=0):
 *       "Set an element's label: GgiSetLabel.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy._Element.setPosition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xid);
  __Pyx_XDECREF(__pyx_v_yid);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":96
 *       GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))
 *       return self
 *    def setLabel(self, text, width=0):             # <<<<<<<<<<<<<<
 *       "Set an element's label: GgiSetLabel.dc2"
 *       GgiSetLabel(toident(self.hook), text, width)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_2setLabel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_8_Element_2setLabel[] = "Set an element's label: GgiSetLabel.dc2";
static PyMethodDef __pyx_mdef_5gipsy_8_Element_2setLabel = {__Pyx_NAMESTR("setLabel"), (PyCFunction)__pyx_pf_5gipsy_8_Element_2setLabel, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_8_Element_2setLabel)};
static PyObject *__pyx_pf_5gipsy_8_Element_2setLabel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_text = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__text,&__pyx_n_s__width,0};
  __Pyx_RefNannySetupContext("setLabel");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setLabel", 0, 2, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setLabel") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_text = values[1];
    __pyx_v_width = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setLabel", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.setLabel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":98
 *    def setLabel(self, text, width=0):
 *       "Set an element's label: GgiSetLabel.dc2"
 *       GgiSetLabel(toident(self.hook), text, width)             # <<<<<<<<<<<<<<
 *       return self
 *    def alignLabel(self, alignment):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyBytes_AsString(__pyx_v_text); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_width); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiSetLabel(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":99
 *       "Set an element's label: GgiSetLabel.dc2"
 *       GgiSetLabel(toident(self.hook), text, width)
 *       return self             # <<<<<<<<<<<<<<
 *    def alignLabel(self, alignment):
 *       "Set an element's label's alignment: GgiAlignLabel.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.setLabel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":100
 *       GgiSetLabel(toident(self.hook), text, width)
 *       return self
 *    def alignLabel(self, alignment):             # <<<<<<<<<<<<<<
 *       "Set an element's label's alignment: GgiAlignLabel.dc2"
 *       GgiAlignLabel(toident(self.hook), alignment)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_3alignLabel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_8_Element_3alignLabel[] = "Set an element's label's alignment: GgiAlignLabel.dc2";
static PyMethodDef __pyx_mdef_5gipsy_8_Element_3alignLabel = {__Pyx_NAMESTR("alignLabel"), (PyCFunction)__pyx_pf_5gipsy_8_Element_3alignLabel, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_8_Element_3alignLabel)};
static PyObject *__pyx_pf_5gipsy_8_Element_3alignLabel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_alignment = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  ggiAlign __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__alignment,0};
  __Pyx_RefNannySetupContext("alignLabel");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__alignment);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("alignLabel", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "alignLabel") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_alignment = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("alignLabel", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.alignLabel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":102
 *    def alignLabel(self, alignment):
 *       "Set an element's label's alignment: GgiAlignLabel.dc2"
 *       GgiAlignLabel(toident(self.hook), alignment)             # <<<<<<<<<<<<<<
 *       return self
 *    def active(self, state):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((ggiAlign)PyInt_AsLong(__pyx_v_alignment)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiAlignLabel(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":103
 *       "Set an element's label's alignment: GgiAlignLabel.dc2"
 *       GgiAlignLabel(toident(self.hook), alignment)
 *       return self             # <<<<<<<<<<<<<<
 *    def active(self, state):
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.alignLabel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":104
 *       GgiAlignLabel(toident(self.hook), alignment)
 *       return self
 *    def active(self, state):             # <<<<<<<<<<<<<<
 * 
 * # Activate (state=True) or deactivate (state=False) an element.
 */

static PyObject *__pyx_pf_5gipsy_8_Element_4active(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8_Element_4active = {__Pyx_NAMESTR("active"), (PyCFunction)__pyx_pf_5gipsy_8_Element_4active, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8_Element_4active(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_state = 0;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__state,0};
  __Pyx_RefNannySetupContext("active");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__state);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("active", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "active") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_state = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("active", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.active", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":109
 * # See: GgiActivate.dc2 and GgiDeactivate.dc2.
 * 
 *       if state:             # <<<<<<<<<<<<<<
 *          GgiActivate(toident(self.hook))
 *       else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_state); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":110
 * 
 *       if state:
 *          GgiActivate(toident(self.hook))             # <<<<<<<<<<<<<<
 *       else:
 *          GgiDeactivate(toident(self.hook))
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    GgiActivate(__pyx_f_5gipsy_toident(__pyx_t_2));
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":112
 *          GgiActivate(toident(self.hook))
 *       else:
 *          GgiDeactivate(toident(self.hook))             # <<<<<<<<<<<<<<
 *       return self
 *    def setKeyword(self, key):
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    GgiDeactivate(__pyx_f_5gipsy_toident(__pyx_t_2));
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":113
 *       else:
 *          GgiDeactivate(toident(self.hook))
 *       return self             # <<<<<<<<<<<<<<
 *    def setKeyword(self, key):
 *       "Modify an element's user input keyword: GgiSetKeyword.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy._Element.active", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":114
 *          GgiDeactivate(toident(self.hook))
 *       return self
 *    def setKeyword(self, key):             # <<<<<<<<<<<<<<
 *       "Modify an element's user input keyword: GgiSetKeyword.dc2"
 *       GgiSetKeyword(toident(self.hook), key)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_5setKeyword(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_8_Element_5setKeyword[] = "Modify an element's user input keyword: GgiSetKeyword.dc2";
static PyMethodDef __pyx_mdef_5gipsy_8_Element_5setKeyword = {__Pyx_NAMESTR("setKeyword"), (PyCFunction)__pyx_pf_5gipsy_8_Element_5setKeyword, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_8_Element_5setKeyword)};
static PyObject *__pyx_pf_5gipsy_8_Element_5setKeyword(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,0};
  __Pyx_RefNannySetupContext("setKeyword");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setKeyword", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setKeyword") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setKeyword", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.setKeyword", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":116
 *    def setKeyword(self, key):
 *       "Modify an element's user input keyword: GgiSetKeyword.dc2"
 *       GgiSetKeyword(toident(self.hook), key)             # <<<<<<<<<<<<<<
 *       return self
 *    def helpText(self, message):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyBytes_AsString(__pyx_v_key); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiSetKeyword(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":117
 *       "Modify an element's user input keyword: GgiSetKeyword.dc2"
 *       GgiSetKeyword(toident(self.hook), key)
 *       return self             # <<<<<<<<<<<<<<
 *    def helpText(self, message):
 *       "Modify the element's help text: GgiHelpText.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.setKeyword", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":118
 *       GgiSetKeyword(toident(self.hook), key)
 *       return self
 *    def helpText(self, message):             # <<<<<<<<<<<<<<
 *       "Modify the element's help text: GgiHelpText.dc2"
 *       GgiHelpText(toident(self.hook), message)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_6helpText(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_8_Element_6helpText[] = "Modify the element's help text: GgiHelpText.dc2";
static PyMethodDef __pyx_mdef_5gipsy_8_Element_6helpText = {__Pyx_NAMESTR("helpText"), (PyCFunction)__pyx_pf_5gipsy_8_Element_6helpText, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_8_Element_6helpText)};
static PyObject *__pyx_pf_5gipsy_8_Element_6helpText(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("helpText");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("helpText", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "helpText") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_message = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("helpText", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.helpText", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":120
 *    def helpText(self, message):
 *       "Modify the element's help text: GgiHelpText.dc2"
 *       GgiHelpText(toident(self.hook), message)             # <<<<<<<<<<<<<<
 *       return self
 *    def delete(self):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiHelpText(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":121
 *       "Modify the element's help text: GgiHelpText.dc2"
 *       GgiHelpText(toident(self.hook), message)
 *       return self             # <<<<<<<<<<<<<<
 *    def delete(self):
 *       cdef ident hook
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.helpText", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":122
 *       GgiHelpText(toident(self.hook), message)
 *       return self
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_7delete(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8_Element_7delete = {__Pyx_NAMESTR("delete"), (PyCFunction)__pyx_pf_5gipsy_8_Element_7delete, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8_Element_7delete(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  ident __pyx_v_hook;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("delete");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":124
 *    def delete(self):
 *       cdef ident hook
 *       hook = toident(self.hook)             # <<<<<<<<<<<<<<
 *       "Delete an element: GgiDelete.dc2"
 *       GgiDelete(&hook)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hook = __pyx_f_5gipsy_toident(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":126
 *       hook = toident(self.hook)
 *       "Delete an element: GgiDelete.dc2"
 *       GgiDelete(&hook)             # <<<<<<<<<<<<<<
 *       del self.hook
 *    def openMpeg(self, filename):
 */
  GgiDelete((&__pyx_v_hook));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":127
 *       "Delete an element: GgiDelete.dc2"
 *       GgiDelete(&hook)
 *       del self.hook             # <<<<<<<<<<<<<<
 *    def openMpeg(self, filename):
 *       "Start recording an MPEG movie on this element"
 */
  if (PyObject_DelAttr(__pyx_v_self, __pyx_n_s__hook) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":128
 *       GgiDelete(&hook)
 *       del self.hook
 *    def openMpeg(self, filename):             # <<<<<<<<<<<<<<
 *       "Start recording an MPEG movie on this element"
 *       cdef ident hook
 */

static PyObject *__pyx_pf_5gipsy_8_Element_8openMpeg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_8_Element_8openMpeg[] = "Start recording an MPEG movie on this element";
static PyMethodDef __pyx_mdef_5gipsy_8_Element_8openMpeg = {__Pyx_NAMESTR("openMpeg"), (PyCFunction)__pyx_pf_5gipsy_8_Element_8openMpeg, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_8_Element_8openMpeg)};
static PyObject *__pyx_pf_5gipsy_8_Element_8openMpeg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_filename = 0;
  ident __pyx_v_hook;
  char *__pyx_v_filename_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__filename,0};
  __Pyx_RefNannySetupContext("openMpeg");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("openMpeg", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "openMpeg") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_filename = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("openMpeg", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Element.openMpeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":132
 *       cdef ident hook
 *       cdef char *filename_c
 *       filename_c = filename             # <<<<<<<<<<<<<<
 *       hook = toident(self.hook)
 *       if self.hook==0:
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_filename); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_filename_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":133
 *       cdef char *filename_c
 *       filename_c = filename
 *       hook = toident(self.hook)             # <<<<<<<<<<<<<<
 *       if self.hook==0:
 *          raise GgiError, "cannot open MPEG recorder on base object"
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_hook = __pyx_f_5gipsy_toident(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":134
 *       filename_c = filename
 *       hook = toident(self.hook)
 *       if self.hook==0:             # <<<<<<<<<<<<<<
 *          raise GgiError, "cannot open MPEG recorder on base object"
 *       if GgiMpeg(hook, 13, filename_c):
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __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_filename = __pyx_f[1]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":135
 *       hook = toident(self.hook)
 *       if self.hook==0:
 *          raise GgiError, "cannot open MPEG recorder on base object"             # <<<<<<<<<<<<<<
 *       if GgiMpeg(hook, 13, filename_c):
 *          raise GgiError, "cannot open MPEG recorder"
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_s_224), 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":136
 *       if self.hook==0:
 *          raise GgiError, "cannot open MPEG recorder on base object"
 *       if GgiMpeg(hook, 13, filename_c):             # <<<<<<<<<<<<<<
 *          raise GgiError, "cannot open MPEG recorder"
 *    def recordMpeg(self):
 */
  __pyx_t_5 = GgiMpeg(__pyx_v_hook, 13, __pyx_v_filename_c);
  if (__pyx_t_5) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":137
 *          raise GgiError, "cannot open MPEG recorder on base object"
 *       if GgiMpeg(hook, 13, filename_c):
 *          raise GgiError, "cannot open MPEG recorder"             # <<<<<<<<<<<<<<
 *    def recordMpeg(self):
 *       cdef ident hook
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_s_225), 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L7;
  }
  __pyx_L7:;

  __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_AddTraceback("gipsy._Element.openMpeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":138
 *       if GgiMpeg(hook, 13, filename_c):
 *          raise GgiError, "cannot open MPEG recorder"
 *    def recordMpeg(self):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_9recordMpeg(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8_Element_9recordMpeg = {__Pyx_NAMESTR("recordMpeg"), (PyCFunction)__pyx_pf_5gipsy_8_Element_9recordMpeg, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8_Element_9recordMpeg(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  ident __pyx_v_hook;
  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("recordMpeg");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":140
 *    def recordMpeg(self):
 *       cdef ident hook
 *       hook = toident(self.hook)             # <<<<<<<<<<<<<<
 *       "Record a frame for an MPEG movie"
 *       if GgiMpeg(hook, 14):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hook = __pyx_f_5gipsy_toident(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":142
 *       hook = toident(self.hook)
 *       "Record a frame for an MPEG movie"
 *       if GgiMpeg(hook, 14):             # <<<<<<<<<<<<<<
 *          raise GgiError, "cannot record MPEG frame"
 *    def closeMpeg(self):
 */
  __pyx_t_2 = GgiMpeg(__pyx_v_hook, 14);
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":143
 *       "Record a frame for an MPEG movie"
 *       if GgiMpeg(hook, 14):
 *          raise GgiError, "cannot record MPEG frame"             # <<<<<<<<<<<<<<
 *    def closeMpeg(self):
 *       cdef ident hook
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_s_226), 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.recordMpeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":144
 *       if GgiMpeg(hook, 14):
 *          raise GgiError, "cannot record MPEG frame"
 *    def closeMpeg(self):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */

static PyObject *__pyx_pf_5gipsy_8_Element_10closeMpeg(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_8_Element_10closeMpeg = {__Pyx_NAMESTR("closeMpeg"), (PyCFunction)__pyx_pf_5gipsy_8_Element_10closeMpeg, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_8_Element_10closeMpeg(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  ident __pyx_v_hook;
  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("closeMpeg");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":146
 *    def closeMpeg(self):
 *       cdef ident hook
 *       hook = toident(self.hook)             # <<<<<<<<<<<<<<
 *       "Construct MPEG movie from recorded frames"
 *       if GgiMpeg(hook, 15):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_hook = __pyx_f_5gipsy_toident(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":148
 *       hook = toident(self.hook)
 *       "Construct MPEG movie from recorded frames"
 *       if GgiMpeg(hook, 15):             # <<<<<<<<<<<<<<
 *          raise GgiError, "cannot construct MPEG movie"
 * 
 */
  __pyx_t_2 = GgiMpeg(__pyx_v_hook, 15);
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":149
 *       "Construct MPEG movie from recorded frames"
 *       if GgiMpeg(hook, 15):
 *          raise GgiError, "cannot construct MPEG movie"             # <<<<<<<<<<<<<<
 * 
 * class _Container(_Element):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_s_227), 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Element.closeMpeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":157
 * # the container can contain.
 * 
 *    def Logo(self):             # <<<<<<<<<<<<<<
 *       "Create the GIPSY logo element: GgiLogo.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_Logo(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_10_Container_Logo[] = "Create the GIPSY logo element: GgiLogo.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_Logo = {__Pyx_NAMESTR("Logo"), (PyCFunction)__pyx_pf_5gipsy_10_Container_Logo, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_Logo)};
static PyObject *__pyx_pf_5gipsy_10_Container_Logo(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_result = NULL;
  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("Logo");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":159
 *    def Logo(self):
 *       "Create the GIPSY logo element: GgiLogo.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":160
 *       "Create the GIPSY logo element: GgiLogo.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiLogo(NULL, 0, 0)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":161
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiLogo(NULL, 0, 0)
 *       return result
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":162
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiLogo(NULL, 0, 0)             # <<<<<<<<<<<<<<
 *       return result
 *    def Label(self, text):
 */
  __pyx_t_2 = PyInt_FromLong(((long)GgiLogo(NULL, 0, 0))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":163
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiLogo(NULL, 0, 0)
 *       return result             # <<<<<<<<<<<<<<
 *    def Label(self, text):
 *       "Create a Label element: GgiLabel.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Logo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":164
 *       result.hook = <long>GgiLogo(NULL, 0, 0)
 *       return result
 *    def Label(self, text):             # <<<<<<<<<<<<<<
 *       "Create a Label element: GgiLabel.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_1Label(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_1Label[] = "Create a Label element: GgiLabel.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_1Label = {__Pyx_NAMESTR("Label"), (PyCFunction)__pyx_pf_5gipsy_10_Container_1Label, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_1Label)};
static PyObject *__pyx_pf_5gipsy_10_Container_1Label(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_text = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__text,0};
  __Pyx_RefNannySetupContext("Label");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Label", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Label") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_text = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Label", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Label", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":166
 *    def Label(self, text):
 *       "Create a Label element: GgiLabel.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":167
 *       "Create a Label element: GgiLabel.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiLabel(text)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":168
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiLabel(text)
 *       return result
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":169
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiLabel(text)             # <<<<<<<<<<<<<<
 *       return result
 *    def Button(self, keyword, message):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_text); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiLabel(__pyx_t_3))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":170
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiLabel(text)
 *       return result             # <<<<<<<<<<<<<<
 *    def Button(self, keyword, message):
 *       "Create a Button: GgiButton.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Label", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":171
 *       result.hook = <long>GgiLabel(text)
 *       return result
 *    def Button(self, keyword, message):             # <<<<<<<<<<<<<<
 *       "Create a Button: GgiButton.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_2Button(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_2Button[] = "Create a Button: GgiButton.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_2Button = {__Pyx_NAMESTR("Button"), (PyCFunction)__pyx_pf_5gipsy_10_Container_2Button, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_2Button)};
static PyObject *__pyx_pf_5gipsy_10_Container_2Button(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("Button");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Button", 1, 3, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Button", 1, 3, 3, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Button") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Button", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Button", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":173
 *    def Button(self, keyword, message):
 *       "Create a Button: GgiButton.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":174
 *       "Create a Button: GgiButton.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":175
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiButton(keyword, message)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":176
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiButton(keyword, message)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":177
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiButton(keyword, message)             # <<<<<<<<<<<<<<
 *       return result
 *    def TextField(self, keyword, message, size):
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiButton(__pyx_t_4, __pyx_t_5))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":178
 *       if message is None: message = ''
 *       result.hook = <long>GgiButton(keyword, message)
 *       return result             # <<<<<<<<<<<<<<
 *    def TextField(self, keyword, message, size):
 *       "Create a Textfield: GgiTextField.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Button", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":179
 *       result.hook = <long>GgiButton(keyword, message)
 *       return result
 *    def TextField(self, keyword, message, size):             # <<<<<<<<<<<<<<
 *       "Create a Textfield: GgiTextField.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_3TextField(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_3TextField[] = "Create a Textfield: GgiTextField.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_3TextField = {__Pyx_NAMESTR("TextField"), (PyCFunction)__pyx_pf_5gipsy_10_Container_3TextField, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_3TextField)};
static PyObject *__pyx_pf_5gipsy_10_Container_3TextField(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_size = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__size,0};
  __Pyx_RefNannySetupContext("TextField");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TextField", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TextField", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TextField", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "TextField") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
    __pyx_v_size = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TextField", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.TextField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":181
 *    def TextField(self, keyword, message, size):
 *       "Create a Textfield: GgiTextField.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":182
 *       "Create a Textfield: GgiTextField.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":183
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiTextField(keyword, message, size)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":184
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiTextField(keyword, message, size)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":185
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiTextField(keyword, message, size)             # <<<<<<<<<<<<<<
 *       return result
 *    def Menu(self, keyword, message, labels):
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_size); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiTextField(__pyx_t_4, __pyx_t_5, __pyx_t_6))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":186
 *       if message is None: message = ''
 *       result.hook = <long>GgiTextField(keyword, message, size)
 *       return result             # <<<<<<<<<<<<<<
 *    def Menu(self, keyword, message, labels):
 *       "Create a Menu: GgiMenu.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.TextField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":187
 *       result.hook = <long>GgiTextField(keyword, message, size)
 *       return result
 *    def Menu(self, keyword, message, labels):             # <<<<<<<<<<<<<<
 *       "Create a Menu: GgiMenu.dc2"
 *       result = _Menu()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_4Menu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_4Menu[] = "Create a Menu: GgiMenu.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_4Menu = {__Pyx_NAMESTR("Menu"), (PyCFunction)__pyx_pf_5gipsy_10_Container_4Menu, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_4Menu)};
static PyObject *__pyx_pf_5gipsy_10_Container_4Menu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_labels = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__labels,0};
  __Pyx_RefNannySetupContext("Menu");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Menu", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Menu", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__labels);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Menu", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Menu") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
    __pyx_v_labels = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Menu", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Menu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":189
 *    def Menu(self, keyword, message, labels):
 *       "Create a Menu: GgiMenu.dc2"
 *       result = _Menu()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Menu); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":190
 *       "Create a Menu: GgiMenu.dc2"
 *       result = _Menu()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":191
 *       result = _Menu()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiMenu(keyword, message, charlist(labels))
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":192
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiMenu(keyword, message, charlist(labels))
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":193
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiMenu(keyword, message, charlist(labels))             # <<<<<<<<<<<<<<
 *       return result
 *    def HelpMenu(self, keyword, label, message, labels, documents):
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiMenu(__pyx_t_4, __pyx_t_5, __pyx_f_5gipsy_charlist(__pyx_v_labels)))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":194
 *       if message is None: message = ''
 *       result.hook = <long>GgiMenu(keyword, message, charlist(labels))
 *       return result             # <<<<<<<<<<<<<<
 *    def HelpMenu(self, keyword, label, message, labels, documents):
 *       "Create a Help Menu: GgiHelpMenu.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Menu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":195
 *       result.hook = <long>GgiMenu(keyword, message, charlist(labels))
 *       return result
 *    def HelpMenu(self, keyword, label, message, labels, documents):             # <<<<<<<<<<<<<<
 *       "Create a Help Menu: GgiHelpMenu.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_5HelpMenu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_5HelpMenu[] = "Create a Help Menu: GgiHelpMenu.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_5HelpMenu = {__Pyx_NAMESTR("HelpMenu"), (PyCFunction)__pyx_pf_5gipsy_10_Container_5HelpMenu, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_5HelpMenu)};
static PyObject *__pyx_pf_5gipsy_10_Container_5HelpMenu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_label = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_labels = 0;
  PyObject *__pyx_v_documents = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  char *__pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__label,&__pyx_n_s__message,&__pyx_n_s__labels,&__pyx_n_s__documents,0};
  __Pyx_RefNannySetupContext("HelpMenu");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HelpMenu", 1, 6, 6, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__label);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HelpMenu", 1, 6, 6, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HelpMenu", 1, 6, 6, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__labels);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HelpMenu", 1, 6, 6, 4); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__documents);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HelpMenu", 1, 6, 6, 5); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "HelpMenu") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_label = values[2];
    __pyx_v_message = values[3];
    __pyx_v_labels = values[4];
    __pyx_v_documents = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("HelpMenu", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.HelpMenu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":197
 *    def HelpMenu(self, keyword, label, message, labels, documents):
 *       "Create a Help Menu: GgiHelpMenu.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":198
 *       "Create a Help Menu: GgiHelpMenu.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":199
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiHelpMenu(keyword, label, message,
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":200
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiHelpMenu(keyword, label, message,
 *                                      charlist(labels), charlist(documents))
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":201
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiHelpMenu(keyword, label, message,             # <<<<<<<<<<<<<<
 *                                      charlist(labels), charlist(documents))
 *       return result
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_label); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":202
 *       if message is None: message = ''
 *       result.hook = <long>GgiHelpMenu(keyword, label, message,
 *                                      charlist(labels), charlist(documents))             # <<<<<<<<<<<<<<
 *       return result
 *    def TextMenu(self, keyword, message, labels):
 */
  __pyx_t_2 = PyInt_FromLong(((long)GgiHelpMenu(__pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_f_5gipsy_charlist(__pyx_v_labels), __pyx_f_5gipsy_charlist(__pyx_v_documents)))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":201
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiHelpMenu(keyword, label, message,             # <<<<<<<<<<<<<<
 *                                      charlist(labels), charlist(documents))
 *       return result
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":203
 *       result.hook = <long>GgiHelpMenu(keyword, label, message,
 *                                      charlist(labels), charlist(documents))
 *       return result             # <<<<<<<<<<<<<<
 *    def TextMenu(self, keyword, message, labels):
 *       "Create a Text Menu: GgiTextMenu.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.HelpMenu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":204
 *                                      charlist(labels), charlist(documents))
 *       return result
 *    def TextMenu(self, keyword, message, labels):             # <<<<<<<<<<<<<<
 *       "Create a Text Menu: GgiTextMenu.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_6TextMenu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_6TextMenu[] = "Create a Text Menu: GgiTextMenu.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_6TextMenu = {__Pyx_NAMESTR("TextMenu"), (PyCFunction)__pyx_pf_5gipsy_10_Container_6TextMenu, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_6TextMenu)};
static PyObject *__pyx_pf_5gipsy_10_Container_6TextMenu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_labels = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__labels,0};
  __Pyx_RefNannySetupContext("TextMenu");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TextMenu", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TextMenu", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__labels);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("TextMenu", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "TextMenu") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
    __pyx_v_labels = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("TextMenu", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.TextMenu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":206
 *    def TextMenu(self, keyword, message, labels):
 *       "Create a Text Menu: GgiTextMenu.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":207
 *       "Create a Text Menu: GgiTextMenu.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":208
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":209
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":210
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))             # <<<<<<<<<<<<<<
 *       return result
 *    def List(self, keyword, labels, defcol=1):
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiTextMenu(__pyx_t_4, __pyx_t_5, __pyx_f_5gipsy_charlist(__pyx_v_labels)))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":211
 *       if message is None: message = ''
 *       result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))
 *       return result             # <<<<<<<<<<<<<<
 *    def List(self, keyword, labels, defcol=1):
 *       "Create a List element: GgiList.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.TextMenu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":212
 *       result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))
 *       return result
 *    def List(self, keyword, labels, defcol=1):             # <<<<<<<<<<<<<<
 *       "Create a List element: GgiList.dc2"
 *       result = _List()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_7List(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_7List[] = "Create a List element: GgiList.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_7List = {__Pyx_NAMESTR("List"), (PyCFunction)__pyx_pf_5gipsy_10_Container_7List, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_7List)};
static PyObject *__pyx_pf_5gipsy_10_Container_7List(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_labels = 0;
  PyObject *__pyx_v_defcol = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__labels,&__pyx_n_s__defcol,0};
  __Pyx_RefNannySetupContext("List");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("List", 0, 3, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__labels);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("List", 0, 3, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__defcol);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "List") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_labels = values[2];
    __pyx_v_defcol = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("List", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.List", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":214
 *    def List(self, keyword, labels, defcol=1):
 *       "Create a List element: GgiList.dc2"
 *       result = _List()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___List); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":215
 *       "Create a List element: GgiList.dc2"
 *       result = _List()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiList(keyword, defcol, charlist(labels))
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":216
 *       result = _List()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiList(keyword, defcol, charlist(labels))
 *       return result
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":217
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiList(keyword, defcol, charlist(labels))             # <<<<<<<<<<<<<<
 *       return result
 *    def Gauge(self, keyword, message, length, left, right):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_defcol); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiList(__pyx_t_3, __pyx_t_4, __pyx_f_5gipsy_charlist(__pyx_v_labels)))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":218
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiList(keyword, defcol, charlist(labels))
 *       return result             # <<<<<<<<<<<<<<
 *    def Gauge(self, keyword, message, length, left, right):
 *       "Create a Gauge element: GgiGauge.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.List", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":219
 *       result.hook = <long>GgiList(keyword, defcol, charlist(labels))
 *       return result
 *    def Gauge(self, keyword, message, length, left, right):             # <<<<<<<<<<<<<<
 *       "Create a Gauge element: GgiGauge.dc2"
 *       result = _Analog()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_8Gauge(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_8Gauge[] = "Create a Gauge element: GgiGauge.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_8Gauge = {__Pyx_NAMESTR("Gauge"), (PyCFunction)__pyx_pf_5gipsy_10_Container_8Gauge, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_8Gauge)};
static PyObject *__pyx_pf_5gipsy_10_Container_8Gauge(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_length = 0;
  PyObject *__pyx_v_left = 0;
  PyObject *__pyx_v_right = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_t_6;
  float __pyx_t_7;
  float __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__length,&__pyx_n_s__left,&__pyx_n_s__right,0};
  __Pyx_RefNannySetupContext("Gauge");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Gauge", 1, 6, 6, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Gauge", 1, 6, 6, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__length);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Gauge", 1, 6, 6, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__left);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Gauge", 1, 6, 6, 4); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__right);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Gauge", 1, 6, 6, 5); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Gauge") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
    __pyx_v_length = values[3];
    __pyx_v_left = values[4];
    __pyx_v_right = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Gauge", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Gauge", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":221
 *    def Gauge(self, keyword, message, length, left, right):
 *       "Create a Gauge element: GgiGauge.dc2"
 *       result = _Analog()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Analog); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":222
 *       "Create a Gauge element: GgiGauge.dc2"
 *       result = _Analog()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":223
 *       result = _Analog()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiGauge(keyword, message, length, left, right)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":224
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiGauge(keyword, message, length, left, right)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":225
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiGauge(keyword, message, length, left, right)             # <<<<<<<<<<<<<<
 *       return result
 *    def Dial(self, keyword,
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_length); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_left); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_v_right); if (unlikely((__pyx_t_8 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiGauge(__pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":226
 *       if message is None: message = ''
 *       result.hook = <long>GgiGauge(keyword, message, length, left, right)
 *       return result             # <<<<<<<<<<<<<<
 *    def Dial(self, keyword,
 *                   message,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Gauge", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":227
 *       result.hook = <long>GgiGauge(keyword, message, length, left, right)
 *       return result
 *    def Dial(self, keyword,             # <<<<<<<<<<<<<<
 *                   message,
 *                   radius,
 */

static PyObject *__pyx_pf_5gipsy_10_Container_9Dial(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_9Dial[] = "Create a Dial: GgiDial.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_9Dial = {__Pyx_NAMESTR("Dial"), (PyCFunction)__pyx_pf_5gipsy_10_Container_9Dial, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_9Dial)};
static PyObject *__pyx_pf_5gipsy_10_Container_9Dial(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_radius = 0;
  PyObject *__pyx_v_min_angle = 0;
  PyObject *__pyx_v_max_angle = 0;
  PyObject *__pyx_v_intervals = 0;
  PyObject *__pyx_v_arrow_width = 0;
  PyObject *__pyx_v_inner_length = 0;
  PyObject *__pyx_v_outer_length = 0;
  PyObject *__pyx_v_min_val = 0;
  PyObject *__pyx_v_max_val = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  float __pyx_t_10;
  float __pyx_t_11;
  float __pyx_t_12;
  float __pyx_t_13;
  float __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__radius,&__pyx_n_s__min_angle,&__pyx_n_s__max_angle,&__pyx_n_s__intervals,&__pyx_n_s__arrow_width,&__pyx_n_s__inner_length,&__pyx_n_s__outer_length,&__pyx_n_s__min_val,&__pyx_n_s__max_val,0};
  __Pyx_RefNannySetupContext("Dial");
  __pyx_self = __pyx_self;
  {
    PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radius);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__min_angle);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 4); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_angle);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 5); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intervals);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 6); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__arrow_width);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 7); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__inner_length);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 8); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outer_length);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 9); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 10:
        values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__min_val);
        if (likely(values[10])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 10); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 11:
        values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_val);
        if (likely(values[11])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, 11); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Dial") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
    __pyx_v_radius = values[3];
    __pyx_v_min_angle = values[4];
    __pyx_v_max_angle = values[5];
    __pyx_v_intervals = values[6];
    __pyx_v_arrow_width = values[7];
    __pyx_v_inner_length = values[8];
    __pyx_v_outer_length = values[9];
    __pyx_v_min_val = values[10];
    __pyx_v_max_val = values[11];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Dial", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Dial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":239
 *                   max_val ):
 *       "Create a Dial: GgiDial.dc2"
 *       result = _Analog()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Analog); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":240
 *       "Create a Dial: GgiDial.dc2"
 *       result = _Analog()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":241
 *       result = _Analog()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiDial(keyword,
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":242
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiDial(keyword,
 *                                    message,
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":243
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiDial(keyword,             # <<<<<<<<<<<<<<
 *                                    message,
 *                                    radius,
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":244
 *       if message is None: message = ''
 *       result.hook = <long>GgiDial(keyword,
 *                                    message,             # <<<<<<<<<<<<<<
 *                                    radius,
 *                                    min_angle,
 */
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":245
 *       result.hook = <long>GgiDial(keyword,
 *                                    message,
 *                                    radius,             # <<<<<<<<<<<<<<
 *                                    min_angle,
 *                                    max_angle,
 */
  __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_radius); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":246
 *                                    message,
 *                                    radius,
 *                                    min_angle,             # <<<<<<<<<<<<<<
 *                                    max_angle,
 *                                    intervals,
 */
  __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_v_min_angle); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":247
 *                                    radius,
 *                                    min_angle,
 *                                    max_angle,             # <<<<<<<<<<<<<<
 *                                    intervals,
 *                                    arrow_width,
 */
  __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_v_max_angle); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":248
 *                                    min_angle,
 *                                    max_angle,
 *                                    intervals,             # <<<<<<<<<<<<<<
 *                                    arrow_width,
 *                                    inner_length,
 */
  __pyx_t_9 = __Pyx_PyInt_AsInt(__pyx_v_intervals); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":249
 *                                    max_angle,
 *                                    intervals,
 *                                    arrow_width,             # <<<<<<<<<<<<<<
 *                                    inner_length,
 *                                    outer_length,
 */
  __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_v_arrow_width); if (unlikely((__pyx_t_10 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":250
 *                                    intervals,
 *                                    arrow_width,
 *                                    inner_length,             # <<<<<<<<<<<<<<
 *                                    outer_length,
 *                                    min_val,
 */
  __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_v_inner_length); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":251
 *                                    arrow_width,
 *                                    inner_length,
 *                                    outer_length,             # <<<<<<<<<<<<<<
 *                                    min_val,
 *                                    max_val )
 */
  __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_v_outer_length); if (unlikely((__pyx_t_12 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":252
 *                                    inner_length,
 *                                    outer_length,
 *                                    min_val,             # <<<<<<<<<<<<<<
 *                                    max_val )
 *       return result
 */
  __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_min_val); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":253
 *                                    outer_length,
 *                                    min_val,
 *                                    max_val )             # <<<<<<<<<<<<<<
 *       return result
 *    def Progress(self, keyword, message, length):
 */
  __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_v_max_val); if (unlikely((__pyx_t_14 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiDial(__pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, __pyx_t_9, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13, __pyx_t_14))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":243
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiDial(keyword,             # <<<<<<<<<<<<<<
 *                                    message,
 *                                    radius,
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":254
 *                                    min_val,
 *                                    max_val )
 *       return result             # <<<<<<<<<<<<<<
 *    def Progress(self, keyword, message, length):
 *       "Create a Progress Bar: GgiProgress.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Dial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":255
 *                                    max_val )
 *       return result
 *    def Progress(self, keyword, message, length):             # <<<<<<<<<<<<<<
 *       "Create a Progress Bar: GgiProgress.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_10Progress(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_10Progress[] = "Create a Progress Bar: GgiProgress.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_10Progress = {__Pyx_NAMESTR("Progress"), (PyCFunction)__pyx_pf_5gipsy_10_Container_10Progress, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_10Progress)};
static PyObject *__pyx_pf_5gipsy_10_Container_10Progress(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_length = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,&__pyx_n_s__length,0};
  __Pyx_RefNannySetupContext("Progress");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Progress", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Progress", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__length);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Progress", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Progress") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
    __pyx_v_length = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Progress", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":257
 *    def Progress(self, keyword, message, length):
 *       "Create a Progress Bar: GgiProgress.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":258
 *       "Create a Progress Bar: GgiProgress.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":259
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiProgress(keyword, message, length)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":260
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiProgress(keyword, message, length)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":261
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiProgress(keyword, message, length)             # <<<<<<<<<<<<<<
 *       return result
 *    def Form(self, name, border=0):
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_length); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiProgress(__pyx_t_4, __pyx_t_5, __pyx_t_6))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":262
 *       if message is None: message = ''
 *       result.hook = <long>GgiProgress(keyword, message, length)
 *       return result             # <<<<<<<<<<<<<<
 *    def Form(self, name, border=0):
 *       "Create a Form element: GgiForm.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":263
 *       result.hook = <long>GgiProgress(keyword, message, length)
 *       return result
 *    def Form(self, name, border=0):             # <<<<<<<<<<<<<<
 *       "Create a Form element: GgiForm.dc2"
 *       result = _Container()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_11Form(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_11Form[] = "Create a Form element: GgiForm.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_11Form = {__Pyx_NAMESTR("Form"), (PyCFunction)__pyx_pf_5gipsy_10_Container_11Form, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_11Form)};
static PyObject *__pyx_pf_5gipsy_10_Container_11Form(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_border = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__border,0};
  __Pyx_RefNannySetupContext("Form");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Form", 0, 2, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__border);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Form") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_border = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Form", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Form", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":265
 *    def Form(self, name, border=0):
 *       "Create a Form element: GgiForm.dc2"
 *       result = _Container()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Container); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":266
 *       "Create a Form element: GgiForm.dc2"
 *       result = _Container()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiForm(name, border)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":267
 *       result = _Container()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiForm(name, border)
 *       return result
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":268
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiForm(name, border)             # <<<<<<<<<<<<<<
 *       return result
 *    def Viewport(self, keyword, width, height):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_border); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiForm(__pyx_t_3, __pyx_t_4))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":269
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiForm(name, border)
 *       return result             # <<<<<<<<<<<<<<
 *    def Viewport(self, keyword, width, height):
 *       "Create a Viewport: GgiViewport.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Form", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":270
 *       result.hook = <long>GgiForm(name, border)
 *       return result
 *    def Viewport(self, keyword, width, height):             # <<<<<<<<<<<<<<
 *       "Create a Viewport: GgiViewport.dc2"
 *       result = _Container()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_12Viewport(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_12Viewport[] = "Create a Viewport: GgiViewport.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_12Viewport = {__Pyx_NAMESTR("Viewport"), (PyCFunction)__pyx_pf_5gipsy_10_Container_12Viewport, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_12Viewport)};
static PyObject *__pyx_pf_5gipsy_10_Container_12Viewport(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__width,&__pyx_n_s__height,0};
  __Pyx_RefNannySetupContext("Viewport");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Viewport", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Viewport", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__height);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Viewport", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Viewport") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_width = values[2];
    __pyx_v_height = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Viewport", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Viewport", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":272
 *    def Viewport(self, keyword, width, height):
 *       "Create a Viewport: GgiViewport.dc2"
 *       result = _Container()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Container); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":273
 *       "Create a Viewport: GgiViewport.dc2"
 *       result = _Container()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiViewport(keyword, width, height)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":274
 *       result = _Container()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiViewport(keyword, width, height)
 *       return result
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":275
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiViewport(keyword, width, height)             # <<<<<<<<<<<<<<
 *       return result
 *    def ColorMenu(self, keyword, message):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_width); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_v_height); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiViewport(__pyx_t_3, __pyx_t_4, __pyx_t_5))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":276
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiViewport(keyword, width, height)
 *       return result             # <<<<<<<<<<<<<<
 *    def ColorMenu(self, keyword, message):
 *       "Create a Color Menu: GgiColorMenu.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Viewport", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":277
 *       result.hook = <long>GgiViewport(keyword, width, height)
 *       return result
 *    def ColorMenu(self, keyword, message):             # <<<<<<<<<<<<<<
 *       "Create a Color Menu: GgiColorMenu.dc2"
 *       result = _Element()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_13ColorMenu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_13ColorMenu[] = "Create a Color Menu: GgiColorMenu.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_13ColorMenu = {__Pyx_NAMESTR("ColorMenu"), (PyCFunction)__pyx_pf_5gipsy_10_Container_13ColorMenu, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_13ColorMenu)};
static PyObject *__pyx_pf_5gipsy_10_Container_13ColorMenu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("ColorMenu");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ColorMenu", 1, 3, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ColorMenu", 1, 3, 3, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ColorMenu") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ColorMenu", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.ColorMenu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_message);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":279
 *    def ColorMenu(self, keyword, message):
 *       "Create a Color Menu: GgiColorMenu.dc2"
 *       result = _Element()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":280
 *       "Create a Color Menu: GgiColorMenu.dc2"
 *       result = _Element()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":281
 *       result = _Element()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       if message is None: message = ''
 *       result.hook = <long>GgiColorMenu(keyword, message)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":282
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiColorMenu(keyword, message)
 *       return result
 */
  __pyx_t_3 = (__pyx_v_message == Py_None);
  if (__pyx_t_3) {
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
    __Pyx_DECREF(__pyx_v_message);
    __pyx_v_message = ((PyObject *)__pyx_kp_s_75);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":283
 *       GgiUseShell(toident(self.hook))
 *       if message is None: message = ''
 *       result.hook = <long>GgiColorMenu(keyword, message)             # <<<<<<<<<<<<<<
 *       return result
 *    def PlotField(self, name, width, height):
 */
  __pyx_t_4 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiColorMenu(__pyx_t_4, __pyx_t_5))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":284
 *       if message is None: message = ''
 *       result.hook = <long>GgiColorMenu(keyword, message)
 *       return result             # <<<<<<<<<<<<<<
 *    def PlotField(self, name, width, height):
 *       "Create a Plotfield: GgiPlotField.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.ColorMenu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":285
 *       result.hook = <long>GgiColorMenu(keyword, message)
 *       return result
 *    def PlotField(self, name, width, height):             # <<<<<<<<<<<<<<
 *       "Create a Plotfield: GgiPlotField.dc2"
 *       result = _PlotField()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_14PlotField(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_14PlotField[] = "Create a Plotfield: GgiPlotField.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_14PlotField = {__Pyx_NAMESTR("PlotField"), (PyCFunction)__pyx_pf_5gipsy_10_Container_14PlotField, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_14PlotField)};
static PyObject *__pyx_pf_5gipsy_10_Container_14PlotField(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__width,&__pyx_n_s__height,0};
  __Pyx_RefNannySetupContext("PlotField");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PlotField", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PlotField", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__height);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PlotField", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "PlotField") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_width = values[2];
    __pyx_v_height = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PlotField", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.PlotField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":287
 *    def PlotField(self, name, width, height):
 *       "Create a Plotfield: GgiPlotField.dc2"
 *       result = _PlotField()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___PlotField); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":288
 *       "Create a Plotfield: GgiPlotField.dc2"
 *       result = _PlotField()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiPlotField(name, width, height)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":289
 *       result = _PlotField()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiPlotField(name, width, height)
 *       result.name = name
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":290
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiPlotField(name, width, height)             # <<<<<<<<<<<<<<
 *       result.name = name
 *       return result
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_width); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_v_height); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiPlotField(__pyx_t_3, __pyx_t_4, __pyx_t_5))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":291
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiPlotField(name, width, height)
 *       result.name = name             # <<<<<<<<<<<<<<
 *       return result
 *    def Editor(self, keyword, width, height, mode, contents, size):
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__name, __pyx_v_name) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":292
 *       result.hook = <long>GgiPlotField(name, width, height)
 *       result.name = name
 *       return result             # <<<<<<<<<<<<<<
 *    def Editor(self, keyword, width, height, mode, contents, size):
 *       "Create a Text Editor: GgiEditor.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.PlotField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":293
 *       result.name = name
 *       return result
 *    def Editor(self, keyword, width, height, mode, contents, size):             # <<<<<<<<<<<<<<
 *       "Create a Text Editor: GgiEditor.dc2"
 *       result = _Editor()
 */

static PyObject *__pyx_pf_5gipsy_10_Container_15Editor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_15Editor[] = "Create a Text Editor: GgiEditor.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_15Editor = {__Pyx_NAMESTR("Editor"), (PyCFunction)__pyx_pf_5gipsy_10_Container_15Editor, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_15Editor)};
static PyObject *__pyx_pf_5gipsy_10_Container_15Editor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_mode = 0;
  PyObject *__pyx_v_contents = 0;
  PyObject *__pyx_v_size = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  char *__pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__width,&__pyx_n_s__height,&__pyx_n_s__mode,&__pyx_n_s__contents,&__pyx_n_s__size,0};
  __Pyx_RefNannySetupContext("Editor");
  __pyx_self = __pyx_self;
  {
    PyObject* values[7] = {0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__height);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, 4); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__contents);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, 5); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__size);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, 6); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Editor") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_width = values[2];
    __pyx_v_height = values[3];
    __pyx_v_mode = values[4];
    __pyx_v_contents = values[5];
    __pyx_v_size = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Editor", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.Editor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":295
 *    def Editor(self, keyword, width, height, mode, contents, size):
 *       "Create a Text Editor: GgiEditor.dc2"
 *       result = _Editor()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Editor); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":296
 *       "Create a Text Editor: GgiEditor.dc2"
 *       result = _Editor()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":297
 *       result = _Editor()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)
 *       return result
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_2));
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":298
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)             # <<<<<<<<<<<<<<
 *       return result
 *    def ColorEditor(self, ci, nc, bl=0):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_width); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_v_height); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_v_mode); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_7 = PyBytes_AsString(__pyx_v_contents); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = __Pyx_PyInt_AsInt(__pyx_v_size); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiEditor(__pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":299
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)
 *       return result             # <<<<<<<<<<<<<<
 *    def ColorEditor(self, ci, nc, bl=0):
 *       "Create plot color editor: GgiPlotColorEditor.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy._Container.Editor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":300
 *       result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)
 *       return result
 *    def ColorEditor(self, ci, nc, bl=0):             # <<<<<<<<<<<<<<
 *       "Create plot color editor: GgiPlotColorEditor.dc2"
 *       cdef int ci_c, nc_c, bl_c
 */

static PyObject *__pyx_pf_5gipsy_10_Container_16ColorEditor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_Container_16ColorEditor[] = "Create plot color editor: GgiPlotColorEditor.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_Container_16ColorEditor = {__Pyx_NAMESTR("ColorEditor"), (PyCFunction)__pyx_pf_5gipsy_10_Container_16ColorEditor, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_Container_16ColorEditor)};
static PyObject *__pyx_pf_5gipsy_10_Container_16ColorEditor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_ci = 0;
  PyObject *__pyx_v_nc = 0;
  PyObject *__pyx_v_bl = 0;
  int __pyx_v_ci_c;
  int __pyx_v_nc_c;
  int __pyx_v_bl_c;
  PyObject *__pyx_v_result = NULL;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__ci,&__pyx_n_s__nc,&__pyx_n_s__bl,0};
  __Pyx_RefNannySetupContext("ColorEditor");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)__pyx_int_0);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ci);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ColorEditor", 0, 3, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ColorEditor", 0, 3, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bl);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ColorEditor") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_ci = values[1];
    __pyx_v_nc = values[2];
    __pyx_v_bl = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ColorEditor", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.ColorEditor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":303
 *       "Create plot color editor: GgiPlotColorEditor.dc2"
 *       cdef int ci_c, nc_c, bl_c
 *       ci_c = ci             # <<<<<<<<<<<<<<
 *       nc_c = nc
 *       bl_c = bl
 */
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_ci); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_ci_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":304
 *       cdef int ci_c, nc_c, bl_c
 *       ci_c = ci
 *       nc_c = nc             # <<<<<<<<<<<<<<
 *       bl_c = bl
 *       result = _ColorEditor()
 */
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_nc); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nc_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":305
 *       ci_c = ci
 *       nc_c = nc
 *       bl_c = bl             # <<<<<<<<<<<<<<
 *       result = _ColorEditor()
 *       result.container = self
 */
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_bl); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_bl_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":306
 *       nc_c = nc
 *       bl_c = bl
 *       result = _ColorEditor()             # <<<<<<<<<<<<<<
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___ColorEditor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":307
 *       bl_c = bl
 *       result = _ColorEditor()
 *       result.container = self             # <<<<<<<<<<<<<<
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__container, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":308
 *       result = _ColorEditor()
 *       result.container = self
 *       GgiUseShell(toident(self.hook))             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)
 *       return result
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  GgiUseShell(__pyx_f_5gipsy_toident(__pyx_t_3));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":309
 *       result.container = self
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)             # <<<<<<<<<<<<<<
 *       return result
 *    def VtkField(self, name, width, height):
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiCreate); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyInt_FromLong(((long)GgiPlotColorEditor(__pyx_t_1, __pyx_v_ci_c, __pyx_v_nc_c, __pyx_v_bl_c))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":310
 *       GgiUseShell(toident(self.hook))
 *       result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)
 *       return result             # <<<<<<<<<<<<<<
 *    def VtkField(self, name, width, height):
 *       global _VtkField
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_AddTraceback("gipsy._Container.ColorEditor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":311
 *       result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)
 *       return result
 *    def VtkField(self, name, width, height):             # <<<<<<<<<<<<<<
 *       global _VtkField
 *       try:
 */

static PyObject *__pyx_pf_5gipsy_10_Container_17VtkField(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_Container_17VtkField = {__Pyx_NAMESTR("VtkField"), (PyCFunction)__pyx_pf_5gipsy_10_Container_17VtkField, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_Container_17VtkField(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_height = 0;
  PyObject *__pyx_v_ggivtk = 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;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__width,&__pyx_n_s__height,0};
  __Pyx_RefNannySetupContext("VtkField");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("VtkField", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("VtkField", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__height);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("VtkField", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "VtkField") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_width = values[2];
    __pyx_v_height = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("VtkField", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Container.VtkField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":313
 *    def VtkField(self, name, width, height):
 *       global _VtkField
 *       try:             # <<<<<<<<<<<<<<
 *          import ggivtk
 *          return ggivtk.VtkField(self, name, width, height)
 */
  {
    __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:*/ {

      /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":314
 *       global _VtkField
 *       try:
 *          import ggivtk             # <<<<<<<<<<<<<<
 *          return ggivtk.VtkField(self, name, width, height)
 *       except:
 */
      __pyx_t_4 = __Pyx_Import(((PyObject *)__pyx_n_s__ggivtk), 0, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ggivtk = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":315
 *       try:
 *          import ggivtk
 *          return ggivtk.VtkField(self, name, width, height)             # <<<<<<<<<<<<<<
 *       except:
 *          import ggivtk
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_ggivtk, __pyx_n_s__VtkField); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __Pyx_INCREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __Pyx_INCREF(__pyx_v_width);
      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_width);
      __Pyx_GIVEREF(__pyx_v_width);
      __Pyx_INCREF(__pyx_v_height);
      PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_v_height);
      __Pyx_GIVEREF(__pyx_v_height);
      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L10_try_return;
    }
    __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_L13_try_end;
    __pyx_L10_try_return:;
    __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_L0;
    __pyx_L6_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;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":316
 *          import ggivtk
 *          return ggivtk.VtkField(self, name, width, height)
 *       except:             # <<<<<<<<<<<<<<
 *          import ggivtk
 *          _VtkField = ggivtk._VtkField                # class
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy._Container.VtkField", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);

      /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":317
 *          return ggivtk.VtkField(self, name, width, height)
 *       except:
 *          import ggivtk             # <<<<<<<<<<<<<<
 *          _VtkField = ggivtk._VtkField                # class
 *          return ggivtk.VtkField(self, name, width, height)
 */
      __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s__ggivtk), 0, -1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_XDECREF(__pyx_v_ggivtk);
      __pyx_v_ggivtk = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":318
 *       except:
 *          import ggivtk
 *          _VtkField = ggivtk._VtkField                # class             # <<<<<<<<<<<<<<
 *          return ggivtk.VtkField(self, name, width, height)
 * 
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_ggivtk, __pyx_n_s___VtkField); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s___VtkField, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":319
 *          import ggivtk
 *          _VtkField = ggivtk._VtkField                # class
 *          return ggivtk.VtkField(self, name, width, height)             # <<<<<<<<<<<<<<
 * 
 * def dorealize(cb):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_ggivtk, __pyx_n_s__VtkField); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __Pyx_INCREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __Pyx_INCREF(__pyx_v_width);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_width);
      __Pyx_GIVEREF(__pyx_v_width);
      __Pyx_INCREF(__pyx_v_height);
      PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_v_height);
      __Pyx_GIVEREF(__pyx_v_height);
      __pyx_t_9 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_except_return;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7_exception_handled;
    }
    __pyx_L8_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_L9_except_return:;
    __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_L0;
    __pyx_L7_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_L13_try_end:;
  }

  __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_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("gipsy._Container.VtkField", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ggivtk);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":321
 *          return ggivtk.VtkField(self, name, width, height)
 * 
 * def dorealize(cb):             # <<<<<<<<<<<<<<
 *    cb.base.realize()
 *    cb.base.realized = True
 */

static PyObject *__pyx_pf_5gipsy_60dorealize(PyObject *__pyx_self, PyObject *__pyx_v_cb); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_60dorealize = {__Pyx_NAMESTR("dorealize"), (PyCFunction)__pyx_pf_5gipsy_60dorealize, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_60dorealize(PyObject *__pyx_self, PyObject *__pyx_v_cb) {
  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("dorealize");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":322
 * 
 * def dorealize(cb):
 *    cb.base.realize()             # <<<<<<<<<<<<<<
 *    cb.base.realized = True
 *    cb.deschedule()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__base); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__realize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __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;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":323
 * def dorealize(cb):
 *    cb.base.realize()
 *    cb.base.realized = True             # <<<<<<<<<<<<<<
 *    cb.deschedule()
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__base); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_t_2, __pyx_n_s__realized, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":324
 *    cb.base.realize()
 *    cb.base.realized = True
 *    cb.deschedule()             # <<<<<<<<<<<<<<
 * 
 * class GgiBase(_Container):
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_cb, __pyx_n_s__deschedule); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __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;

  __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("gipsy.dorealize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":335
 * # It defines factory methods for a number of special element types.
 * 
 *    def __init__(self, display=None, resources=None):             # <<<<<<<<<<<<<<
 * 
 * #    display   - X11 display, e.g. 'kapteyn:0.0' (see GgiSetDisplay.dc2)
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_7GgiBase___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_display = 0;
  PyObject *__pyx_v_resources = 0;
  ident __pyx_v_dummy;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__display,&__pyx_n_s__resources,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__display);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__resources);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_display = values[1];
    __pyx_v_resources = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":340
 * #    resources - X Toolkit fallback resources (see GgiSetResources.dc2)
 * 
 *       self.container = None             # <<<<<<<<<<<<<<
 *       self.hook = 0
 *       self.realized = False
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__container, Py_None) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":341
 * 
 *       self.container = None
 *       self.hook = 0             # <<<<<<<<<<<<<<
 *       self.realized = False
 *       cdef ident dummy
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__hook, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":342
 *       self.container = None
 *       self.hook = 0
 *       self.realized = False             # <<<<<<<<<<<<<<
 *       cdef ident dummy
 *       if display:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__realized, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":344
 *       self.realized = False
 *       cdef ident dummy
 *       if display:             # <<<<<<<<<<<<<<
 *          GgiSetDisplay(display)
 *       GgiAutoLayout(False)
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_display); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":345
 *       cdef ident dummy
 *       if display:
 *          GgiSetDisplay(display)             # <<<<<<<<<<<<<<
 *       GgiAutoLayout(False)
 *       GgiPostponeRealize(True)
 */
    __pyx_t_3 = PyBytes_AsString(__pyx_v_display); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    GgiSetDisplay(__pyx_t_3);
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":346
 *       if display:
 *          GgiSetDisplay(display)
 *       GgiAutoLayout(False)             # <<<<<<<<<<<<<<
 *       GgiPostponeRealize(True)
 *       if resources:
 */
  GgiAutoLayout(0);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":347
 *          GgiSetDisplay(display)
 *       GgiAutoLayout(False)
 *       GgiPostponeRealize(True)             # <<<<<<<<<<<<<<
 *       if resources:
 *          GgiSetResources(charlist(resources))
 */
  GgiPostponeRealize(1);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":348
 *       GgiAutoLayout(False)
 *       GgiPostponeRealize(True)
 *       if resources:             # <<<<<<<<<<<<<<
 *          GgiSetResources(charlist(resources))
 *       dummy = GgiCanvas("DUMMY", 2, 2)
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_resources); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":349
 *       GgiPostponeRealize(True)
 *       if resources:
 *          GgiSetResources(charlist(resources))             # <<<<<<<<<<<<<<
 *       dummy = GgiCanvas("DUMMY", 2, 2)
 *       GgiDelete(&dummy) # enable Ggi callbacks
 */
    GgiSetResources(__pyx_f_5gipsy_charlist(__pyx_v_resources));
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":350
 *       if resources:
 *          GgiSetResources(charlist(resources))
 *       dummy = GgiCanvas("DUMMY", 2, 2)             # <<<<<<<<<<<<<<
 *       GgiDelete(&dummy) # enable Ggi callbacks
 *       TimeCallback(dorealize, 0.0, base=self)
 */
  __pyx_v_dummy = GgiCanvas(__pyx_k__DUMMY, 2, 2);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":351
 *          GgiSetResources(charlist(resources))
 *       dummy = GgiCanvas("DUMMY", 2, 2)
 *       GgiDelete(&dummy) # enable Ggi callbacks             # <<<<<<<<<<<<<<
 *       TimeCallback(dorealize, 0.0, base=self)
 *       GgiBase.base = self
 */
  GgiDelete((&__pyx_v_dummy));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":352
 *       dummy = GgiCanvas("DUMMY", 2, 2)
 *       GgiDelete(&dummy) # enable Ggi callbacks
 *       TimeCallback(dorealize, 0.0, base=self)             # <<<<<<<<<<<<<<
 *       GgiBase.base = self
 *    def realize(self):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__dorealize); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__base), __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":353
 *       GgiDelete(&dummy) # enable Ggi callbacks
 *       TimeCallback(dorealize, 0.0, base=self)
 *       GgiBase.base = self             # <<<<<<<<<<<<<<
 *    def realize(self):
 *       "Realize widgets created before"
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiBase); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__base, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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_6);
  __Pyx_AddTraceback("gipsy.GgiBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":354
 *       TimeCallback(dorealize, 0.0, base=self)
 *       GgiBase.base = self
 *    def realize(self):             # <<<<<<<<<<<<<<
 *       "Realize widgets created before"
 *       if not self.realized: GgiRealize()
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_1realize(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_1realize[] = "Realize widgets created before";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_1realize = {__Pyx_NAMESTR("realize"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_1realize, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_1realize)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_1realize(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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("realize");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":356
 *    def realize(self):
 *       "Realize widgets created before"
 *       if not self.realized: GgiRealize()             # <<<<<<<<<<<<<<
 *    def handleEvents(self):
 *       "Handle pending events"
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__realized); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
    GgiRealize();
    goto __pyx_L5;
  }
  __pyx_L5:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.GgiBase.realize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":357
 *       "Realize widgets created before"
 *       if not self.realized: GgiRealize()
 *    def handleEvents(self):             # <<<<<<<<<<<<<<
 *       "Handle pending events"
 *       return GgiHandleEvents()
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_2handleEvents(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_2handleEvents[] = "Handle pending events";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_2handleEvents = {__Pyx_NAMESTR("handleEvents"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_2handleEvents, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_2handleEvents)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_2handleEvents(PyObject *__pyx_self, 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("handleEvents");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":359
 *    def handleEvents(self):
 *       "Handle pending events"
 *       return GgiHandleEvents()             # <<<<<<<<<<<<<<
 *    def Shell(self, name):
 *       "Create Shell pop-up element: GgiShell.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyInt_FromLong(GgiHandleEvents()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.GgiBase.handleEvents", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":360
 *       "Handle pending events"
 *       return GgiHandleEvents()
 *    def Shell(self, name):             # <<<<<<<<<<<<<<
 *       "Create Shell pop-up element: GgiShell.dc2"
 *       result = _Shell()
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_3Shell(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_3Shell[] = "Create Shell pop-up element: GgiShell.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_3Shell = {__Pyx_NAMESTR("Shell"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_3Shell, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_3Shell)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_3Shell(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,0};
  __Pyx_RefNannySetupContext("Shell");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Shell", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Shell") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Shell", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.Shell", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":362
 *    def Shell(self, name):
 *       "Create Shell pop-up element: GgiShell.dc2"
 *       result = _Shell()             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiShell(name)
 *       return result
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Shell); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":363
 *       "Create Shell pop-up element: GgiShell.dc2"
 *       result = _Shell()
 *       result.hook = <long>GgiShell(name)             # <<<<<<<<<<<<<<
 *       return result
 *    def Dialog(self, name):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiShell(__pyx_t_3))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":364
 *       result = _Shell()
 *       result.hook = <long>GgiShell(name)
 *       return result             # <<<<<<<<<<<<<<
 *    def Dialog(self, name):
 *       "Create Dialog element: GgiDialog.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.GgiBase.Shell", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":365
 *       result.hook = <long>GgiShell(name)
 *       return result
 *    def Dialog(self, name):             # <<<<<<<<<<<<<<
 *       "Create Dialog element: GgiDialog.dc2"
 *       result = _Shell()
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_4Dialog(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_4Dialog[] = "Create Dialog element: GgiDialog.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_4Dialog = {__Pyx_NAMESTR("Dialog"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_4Dialog, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_4Dialog)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_4Dialog(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,0};
  __Pyx_RefNannySetupContext("Dialog");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Dialog", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Dialog") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Dialog", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.Dialog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":367
 *    def Dialog(self, name):
 *       "Create Dialog element: GgiDialog.dc2"
 *       result = _Shell()             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiDialog(name)
 *       return result
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Shell); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":368
 *       "Create Dialog element: GgiDialog.dc2"
 *       result = _Shell()
 *       result.hook = <long>GgiDialog(name)             # <<<<<<<<<<<<<<
 *       return result
 *    def Prompter(self, keyword, message):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(((long)GgiDialog(__pyx_t_3))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":369
 *       result = _Shell()
 *       result.hook = <long>GgiDialog(name)
 *       return result             # <<<<<<<<<<<<<<
 *    def Prompter(self, keyword, message):
 *       "Create a Prompter element: GgiPrompter.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.GgiBase.Dialog", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":370
 *       result.hook = <long>GgiDialog(name)
 *       return result
 *    def Prompter(self, keyword, message):             # <<<<<<<<<<<<<<
 *       "Create a Prompter element: GgiPrompter.dc2"
 *       result = _Prompter()
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_5Prompter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_5Prompter[] = "Create a Prompter element: GgiPrompter.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_5Prompter = {__Pyx_NAMESTR("Prompter"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_5Prompter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_5Prompter)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_5Prompter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_keyword = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  char *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__keyword,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("Prompter");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keyword);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Prompter", 1, 3, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Prompter", 1, 3, 3, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Prompter") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_keyword = values[1];
    __pyx_v_message = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Prompter", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.Prompter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":372
 *    def Prompter(self, keyword, message):
 *       "Create a Prompter element: GgiPrompter.dc2"
 *       result = _Prompter()             # <<<<<<<<<<<<<<
 *       GgiPrompter(keyword, message)
 *       return result
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Prompter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":373
 *       "Create a Prompter element: GgiPrompter.dc2"
 *       result = _Prompter()
 *       GgiPrompter(keyword, message)             # <<<<<<<<<<<<<<
 *       return result
 *    def PlotPrompter(self, filekeydir, devkey, message):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_keyword); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiPrompter(__pyx_t_3, __pyx_t_4);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":374
 *       result = _Prompter()
 *       GgiPrompter(keyword, message)
 *       return result             # <<<<<<<<<<<<<<
 *    def PlotPrompter(self, filekeydir, devkey, message):
 *       "Create a Plot Prompter element: GgiPlotPrompter.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.GgiBase.Prompter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":375
 *       GgiPrompter(keyword, message)
 *       return result
 *    def PlotPrompter(self, filekeydir, devkey, message):             # <<<<<<<<<<<<<<
 *       "Create a Plot Prompter element: GgiPlotPrompter.dc2"
 *       result = _Prompter()
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_6PlotPrompter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_6PlotPrompter[] = "Create a Plot Prompter element: GgiPlotPrompter.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_6PlotPrompter = {__Pyx_NAMESTR("PlotPrompter"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_6PlotPrompter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_6PlotPrompter)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_6PlotPrompter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_filekeydir = 0;
  PyObject *__pyx_v_devkey = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  char *__pyx_t_3;
  char *__pyx_t_4;
  char *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__filekeydir,&__pyx_n_s__devkey,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("PlotPrompter");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filekeydir);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PlotPrompter", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__devkey);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PlotPrompter", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PlotPrompter", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "PlotPrompter") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_filekeydir = values[1];
    __pyx_v_devkey = values[2];
    __pyx_v_message = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PlotPrompter", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.PlotPrompter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":377
 *    def PlotPrompter(self, filekeydir, devkey, message):
 *       "Create a Plot Prompter element: GgiPlotPrompter.dc2"
 *       result = _Prompter()             # <<<<<<<<<<<<<<
 *       GgiPlotPrompter(filekeydir, devkey, message)
 *       return result
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___Prompter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":378
 *       "Create a Plot Prompter element: GgiPlotPrompter.dc2"
 *       result = _Prompter()
 *       GgiPlotPrompter(filekeydir, devkey, message)             # <<<<<<<<<<<<<<
 *       return result
 *    def verify(self, message, truelabel, falselabel):
 */
  __pyx_t_3 = PyBytes_AsString(__pyx_v_filekeydir); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyBytes_AsString(__pyx_v_devkey); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiPlotPrompter(__pyx_t_3, __pyx_t_4, __pyx_t_5);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":379
 *       result = _Prompter()
 *       GgiPlotPrompter(filekeydir, devkey, message)
 *       return result             # <<<<<<<<<<<<<<
 *    def verify(self, message, truelabel, falselabel):
 *       "Ask the user a question: GgiVerify.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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("gipsy.GgiBase.PlotPrompter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":380
 *       GgiPlotPrompter(filekeydir, devkey, message)
 *       return result
 *    def verify(self, message, truelabel, falselabel):             # <<<<<<<<<<<<<<
 *       "Ask the user a question: GgiVerify.dc2"
 *       return GgiVerify(message, truelabel, falselabel)
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_7verify(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_7verify[] = "Ask the user a question: GgiVerify.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_7verify = {__Pyx_NAMESTR("verify"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_7verify, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_7verify)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_7verify(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_truelabel = 0;
  PyObject *__pyx_v_falselabel = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  char *__pyx_t_2;
  char *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__message,&__pyx_n_s__truelabel,&__pyx_n_s__falselabel,0};
  __Pyx_RefNannySetupContext("verify");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("verify", 1, 4, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__truelabel);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("verify", 1, 4, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__falselabel);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("verify", 1, 4, 4, 3); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "verify") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_message = values[1];
    __pyx_v_truelabel = values[2];
    __pyx_v_falselabel = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("verify", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.verify", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":382
 *    def verify(self, message, truelabel, falselabel):
 *       "Ask the user a question: GgiVerify.dc2"
 *       return GgiVerify(message, truelabel, falselabel)             # <<<<<<<<<<<<<<
 *    def FileBrowser(self, key, message, converter=None):
 *       "File browser: GgiFileBrowser.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyBytes_AsString(__pyx_v_truelabel); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = PyBytes_AsString(__pyx_v_falselabel); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = __Pyx_PyInt_to_py_bool(GgiVerify(__pyx_t_1, __pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("gipsy.GgiBase.verify", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":383
 *       "Ask the user a question: GgiVerify.dc2"
 *       return GgiVerify(message, truelabel, falselabel)
 *    def FileBrowser(self, key, message, converter=None):             # <<<<<<<<<<<<<<
 *       "File browser: GgiFileBrowser.dc2"
 *       global cvt_name, cvt_detail
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_8FileBrowser(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_8FileBrowser[] = "File browser: GgiFileBrowser.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_8FileBrowser = {__Pyx_NAMESTR("FileBrowser"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_8FileBrowser, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_8FileBrowser)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_8FileBrowser(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_v_converter = 0;
  char *__pyx_v_key_c;
  char *__pyx_v_message_c;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__key,&__pyx_n_s__message,&__pyx_n_s__converter,0};
  __Pyx_RefNannySetupContext("FileBrowser");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("FileBrowser", 0, 3, 4, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("FileBrowser", 0, 3, 4, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__converter);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "FileBrowser") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
    __pyx_v_message = values[2];
    __pyx_v_converter = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("FileBrowser", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.FileBrowser", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":387
 *       global cvt_name, cvt_detail
 *       cdef char *key_c, *message_c
 *       key_c = key             # <<<<<<<<<<<<<<
 *       message_c = message
 *       result = _FileBrowser()
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_key); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_key_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":388
 *       cdef char *key_c, *message_c
 *       key_c = key
 *       message_c = message             # <<<<<<<<<<<<<<
 *       result = _FileBrowser()
 *       result.converter = converter
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_message_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":389
 *       key_c = key
 *       message_c = message
 *       result = _FileBrowser()             # <<<<<<<<<<<<<<
 *       result.converter = converter
 *       result.detail = None
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___FileBrowser); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":390
 *       message_c = message
 *       result = _FileBrowser()
 *       result.converter = converter             # <<<<<<<<<<<<<<
 *       result.detail = None
 *       cvt_name = result.converter       ### See comment near cvt_name_c()
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__converter, __pyx_v_converter) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":391
 *       result = _FileBrowser()
 *       result.converter = converter
 *       result.detail = None             # <<<<<<<<<<<<<<
 *       cvt_name = result.converter       ### See comment near cvt_name_c()
 *       cvt_detail = result.detail
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__detail, Py_None) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":392
 *       result.converter = converter
 *       result.detail = None
 *       cvt_name = result.converter       ### See comment near cvt_name_c()             # <<<<<<<<<<<<<<
 *       cvt_detail = result.detail
 *       result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_result, __pyx_n_s__converter); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cvt_name, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":393
 *       result.detail = None
 *       cvt_name = result.converter       ### See comment near cvt_name_c()
 *       cvt_detail = result.detail             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,
 *                                          cvt_name_c)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_result, __pyx_n_s__detail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cvt_detail, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":394
 *       cvt_name = result.converter       ### See comment near cvt_name_c()
 *       cvt_detail = result.detail
 *       result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,             # <<<<<<<<<<<<<<
 *                                          cvt_name_c)
 *       return result
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiCreate); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":395
 *       cvt_detail = result.detail
 *       result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,
 *                                          cvt_name_c)             # <<<<<<<<<<<<<<
 *       return result
 *    def Inset(self, namekey, insetkey, boxkey=None, message="Input set/subset"):
 */
  __pyx_t_3 = PyInt_FromLong(((long)GgiFileBrowser(__pyx_t_4, __pyx_v_key_c, __pyx_v_message_c, __pyx_f_5gipsy_cvt_name_c))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":394
 *       cvt_name = result.converter       ### See comment near cvt_name_c()
 *       cvt_detail = result.detail
 *       result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,             # <<<<<<<<<<<<<<
 *                                          cvt_name_c)
 *       return result
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":396
 *       result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,
 *                                          cvt_name_c)
 *       return result             # <<<<<<<<<<<<<<
 *    def Inset(self, namekey, insetkey, boxkey=None, message="Input set/subset"):
 *       "Input set and box composer: GgiInset.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __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_AddTraceback("gipsy.GgiBase.FileBrowser", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":397
 *                                          cvt_name_c)
 *       return result
 *    def Inset(self, namekey, insetkey, boxkey=None, message="Input set/subset"):             # <<<<<<<<<<<<<<
 *       "Input set and box composer: GgiInset.dc2"
 *       cdef char *namekey_c, *insetkey_c, *boxkey_c, *message_c
 */

static PyObject *__pyx_pf_5gipsy_7GgiBase_9Inset(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7GgiBase_9Inset[] = "Input set and box composer: GgiInset.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7GgiBase_9Inset = {__Pyx_NAMESTR("Inset"), (PyCFunction)__pyx_pf_5gipsy_7GgiBase_9Inset, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7GgiBase_9Inset)};
static PyObject *__pyx_pf_5gipsy_7GgiBase_9Inset(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_namekey = 0;
  PyObject *__pyx_v_insetkey = 0;
  PyObject *__pyx_v_boxkey = 0;
  PyObject *__pyx_v_message = 0;
  char *__pyx_v_namekey_c;
  char *__pyx_v_insetkey_c;
  char *__pyx_v_boxkey_c;
  char *__pyx_v_message_c;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__namekey,&__pyx_n_s__insetkey,&__pyx_n_s__boxkey,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("Inset");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)__pyx_kp_s_228);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__namekey);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Inset", 0, 3, 5, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__insetkey);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Inset", 0, 3, 5, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__boxkey);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "Inset") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_namekey = values[1];
    __pyx_v_insetkey = values[2];
    __pyx_v_boxkey = values[3];
    __pyx_v_message = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Inset", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.GgiBase.Inset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":400
 *       "Input set and box composer: GgiInset.dc2"
 *       cdef char *namekey_c, *insetkey_c, *boxkey_c, *message_c
 *       namekey_c = namekey             # <<<<<<<<<<<<<<
 *       insetkey_c = insetkey
 *       if boxkey is None: boxkey_c = NULL
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_namekey); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_namekey_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":401
 *       cdef char *namekey_c, *insetkey_c, *boxkey_c, *message_c
 *       namekey_c = namekey
 *       insetkey_c = insetkey             # <<<<<<<<<<<<<<
 *       if boxkey is None: boxkey_c = NULL
 *       else: boxkey_c = boxkey
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_insetkey); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_insetkey_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":402
 *       namekey_c = namekey
 *       insetkey_c = insetkey
 *       if boxkey is None: boxkey_c = NULL             # <<<<<<<<<<<<<<
 *       else: boxkey_c = boxkey
 *       message_c = message
 */
  __pyx_t_2 = (__pyx_v_boxkey == Py_None);
  if (__pyx_t_2) {
    __pyx_v_boxkey_c = NULL;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":403
 *       insetkey_c = insetkey
 *       if boxkey is None: boxkey_c = NULL
 *       else: boxkey_c = boxkey             # <<<<<<<<<<<<<<
 *       message_c = message
 *       result = _Inset()
 */
    __pyx_t_1 = PyBytes_AsString(__pyx_v_boxkey); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_boxkey_c = __pyx_t_1;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":404
 *       if boxkey is None: boxkey_c = NULL
 *       else: boxkey_c = boxkey
 *       message_c = message             # <<<<<<<<<<<<<<
 *       result = _Inset()
 *       result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_message_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":405
 *       else: boxkey_c = boxkey
 *       message_c = message
 *       result = _Inset()             # <<<<<<<<<<<<<<
 *       result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,
 *                                    message_c)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___Inset); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":406
 *       message_c = message
 *       result = _Inset()
 *       result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,             # <<<<<<<<<<<<<<
 *                                    message_c)
 *       return result
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiCreate); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":407
 *       result = _Inset()
 *       result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,
 *                                    message_c)             # <<<<<<<<<<<<<<
 *       return result
 * 
 */
  __pyx_t_4 = PyInt_FromLong(((long)GgiInset(__pyx_t_5, __pyx_v_namekey_c, __pyx_v_insetkey_c, __pyx_v_boxkey_c, __pyx_v_message_c))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":406
 *       message_c = message
 *       result = _Inset()
 *       result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,             # <<<<<<<<<<<<<<
 *                                    message_c)
 *       return result
 */
  if (PyObject_SetAttr(__pyx_v_result, __pyx_n_s__hook, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":408
 *       result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,
 *                                    message_c)
 *       return result             # <<<<<<<<<<<<<<
 * 
 * class _PopUp(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("gipsy.GgiBase.Inset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":412
 * class _PopUp(_Element):
 *    "Abstract class of pop-up elements"
 *    def show(self, visible):             # <<<<<<<<<<<<<<
 *       "Pop element up or down, depending on 'visible' being True or False."
 *       GgiShowShell(toident(self.hook), visible)
 */

static PyObject *__pyx_pf_5gipsy_6_PopUp_show(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_6_PopUp_show[] = "Pop element up or down, depending on 'visible' being True or False.";
static PyMethodDef __pyx_mdef_5gipsy_6_PopUp_show = {__Pyx_NAMESTR("show"), (PyCFunction)__pyx_pf_5gipsy_6_PopUp_show, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_6_PopUp_show)};
static PyObject *__pyx_pf_5gipsy_6_PopUp_show(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_visible = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  bool __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__visible,0};
  __Pyx_RefNannySetupContext("show");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__visible);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("show", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "show") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_visible = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("show", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PopUp.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":414
 *    def show(self, visible):
 *       "Pop element up or down, depending on 'visible' being True or False."
 *       GgiShowShell(toident(self.hook), visible)             # <<<<<<<<<<<<<<
 * 
 * class _Shell(_Container, _PopUp):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_from_py_bool(__pyx_v_visible); if (unlikely((__pyx_t_2 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiShowShell(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._PopUp.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":422
 * class _Analog(_Element):
 *    "Abstract class of analog valuators"
 *    def setCircular(self, mode):             # <<<<<<<<<<<<<<
 *       "'mode' is True or False: GgiSetCircular.dc2"
 *       GgiSetCircular(toident(self.hook), mode)
 */

static PyObject *__pyx_pf_5gipsy_7_Analog_setCircular(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7_Analog_setCircular[] = "'mode' is True or False: GgiSetCircular.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7_Analog_setCircular = {__Pyx_NAMESTR("setCircular"), (PyCFunction)__pyx_pf_5gipsy_7_Analog_setCircular, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7_Analog_setCircular)};
static PyObject *__pyx_pf_5gipsy_7_Analog_setCircular(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_mode = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  bool __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("setCircular");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setCircular", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setCircular") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_mode = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setCircular", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Analog.setCircular", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":424
 *    def setCircular(self, mode):
 *       "'mode' is True or False: GgiSetCircular.dc2"
 *       GgiSetCircular(toident(self.hook), mode)             # <<<<<<<<<<<<<<
 *       return self
 *    def setFormat(self, fstring):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_from_py_bool(__pyx_v_mode); if (unlikely((__pyx_t_2 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiSetCircular(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":425
 *       "'mode' is True or False: GgiSetCircular.dc2"
 *       GgiSetCircular(toident(self.hook), mode)
 *       return self             # <<<<<<<<<<<<<<
 *    def setFormat(self, fstring):
 *       "Set format string: GgiSetFormat.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Analog.setCircular", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":426
 *       GgiSetCircular(toident(self.hook), mode)
 *       return self
 *    def setFormat(self, fstring):             # <<<<<<<<<<<<<<
 *       "Set format string: GgiSetFormat.dc2"
 *       GgiSetFormat(toident(self.hook), fstring)
 */

static PyObject *__pyx_pf_5gipsy_7_Analog_1setFormat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7_Analog_1setFormat[] = "Set format string: GgiSetFormat.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7_Analog_1setFormat = {__Pyx_NAMESTR("setFormat"), (PyCFunction)__pyx_pf_5gipsy_7_Analog_1setFormat, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7_Analog_1setFormat)};
static PyObject *__pyx_pf_5gipsy_7_Analog_1setFormat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_fstring = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__fstring,0};
  __Pyx_RefNannySetupContext("setFormat");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fstring);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setFormat", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setFormat") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_fstring = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setFormat", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Analog.setFormat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":428
 *    def setFormat(self, fstring):
 *       "Set format string: GgiSetFormat.dc2"
 *       GgiSetFormat(toident(self.hook), fstring)             # <<<<<<<<<<<<<<
 *       return self
 *    def setRange(self, lowval, highval):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyBytes_AsString(__pyx_v_fstring); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiSetFormat(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":429
 *       "Set format string: GgiSetFormat.dc2"
 *       GgiSetFormat(toident(self.hook), fstring)
 *       return self             # <<<<<<<<<<<<<<
 *    def setRange(self, lowval, highval):
 *       "Set valuator range: GgiSetRange.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Analog.setFormat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":430
 *       GgiSetFormat(toident(self.hook), fstring)
 *       return self
 *    def setRange(self, lowval, highval):             # <<<<<<<<<<<<<<
 *       "Set valuator range: GgiSetRange.dc2"
 *       GgiSetRange(toident(self.hook), lowval, highval)
 */

static PyObject *__pyx_pf_5gipsy_7_Analog_2setRange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_7_Analog_2setRange[] = "Set valuator range: GgiSetRange.dc2";
static PyMethodDef __pyx_mdef_5gipsy_7_Analog_2setRange = {__Pyx_NAMESTR("setRange"), (PyCFunction)__pyx_pf_5gipsy_7_Analog_2setRange, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_7_Analog_2setRange)};
static PyObject *__pyx_pf_5gipsy_7_Analog_2setRange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_lowval = 0;
  PyObject *__pyx_v_highval = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  float __pyx_t_2;
  float __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__lowval,&__pyx_n_s__highval,0};
  __Pyx_RefNannySetupContext("setRange");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lowval);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setRange", 1, 3, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__highval);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setRange", 1, 3, 3, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setRange") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_lowval = values[1];
    __pyx_v_highval = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setRange", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Analog.setRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":432
 *    def setRange(self, lowval, highval):
 *       "Set valuator range: GgiSetRange.dc2"
 *       GgiSetRange(toident(self.hook), lowval, highval)             # <<<<<<<<<<<<<<
 *       return self
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_lowval); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_highval); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiSetRange(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":433
 *       "Set valuator range: GgiSetRange.dc2"
 *       GgiSetRange(toident(self.hook), lowval, highval)
 *       return self             # <<<<<<<<<<<<<<
 * 
 * class _Prompter(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Analog.setRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":437
 * class _Prompter(_Element):
 *    "Prompter: GgiPrompter.dc2"
 *    def reject(self, message):             # <<<<<<<<<<<<<<
 *       "reject user's response"
 *       GgiPrompter("AGAIN", message)
 */

static PyObject *__pyx_pf_5gipsy_9_Prompter_reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_9_Prompter_reject[] = "reject user's response";
static PyMethodDef __pyx_mdef_5gipsy_9_Prompter_reject = {__Pyx_NAMESTR("reject"), (PyCFunction)__pyx_pf_5gipsy_9_Prompter_reject, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_9_Prompter_reject)};
static PyObject *__pyx_pf_5gipsy_9_Prompter_reject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_message = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__message,0};
  __Pyx_RefNannySetupContext("reject");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("reject", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "reject") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_message = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("reject", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Prompter.reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":439
 *    def reject(self, message):
 *       "reject user's response"
 *       GgiPrompter("AGAIN", message)             # <<<<<<<<<<<<<<
 *    def accept(self):
 *       "accept user's response"
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_message); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiPrompter(__pyx_k__AGAIN, __pyx_t_1);

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("gipsy._Prompter.reject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":440
 *       "reject user's response"
 *       GgiPrompter("AGAIN", message)
 *    def accept(self):             # <<<<<<<<<<<<<<
 *       "accept user's response"
 *       GgiPrompter("ACCEPT", "")
 */

static PyObject *__pyx_pf_5gipsy_9_Prompter_1accept(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_9_Prompter_1accept[] = "accept user's response";
static PyMethodDef __pyx_mdef_5gipsy_9_Prompter_1accept = {__Pyx_NAMESTR("accept"), (PyCFunction)__pyx_pf_5gipsy_9_Prompter_1accept, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_9_Prompter_1accept)};
static PyObject *__pyx_pf_5gipsy_9_Prompter_1accept(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("accept");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":442
 *    def accept(self):
 *       "accept user's response"
 *       GgiPrompter("ACCEPT", "")             # <<<<<<<<<<<<<<
 * 
 * class _PlotField(_Element):
 */
  GgiPrompter(__pyx_k__ACCEPT, __pyx_k_75);

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":454
 *    ncolors = 16
 * 
 *    def __init__(self):             # <<<<<<<<<<<<<<
 *       self.nframes  = 0
 *       self.pgid     = 0
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField___init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField___init__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_PlotField___init__(PyObject *__pyx_self, 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("__init__");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":455
 * 
 *    def __init__(self):
 *       self.nframes  = 0             # <<<<<<<<<<<<<<
 *       self.pgid     = 0
 *       self.xormode  = False
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__nframes, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":456
 *    def __init__(self):
 *       self.nframes  = 0
 *       self.pgid     = 0             # <<<<<<<<<<<<<<
 *       self.xormode  = False
 *       self.callback = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__pgid, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":457
 *       self.nframes  = 0
 *       self.pgid     = 0
 *       self.xormode  = False             # <<<<<<<<<<<<<<
 *       self.callback = None
 *    def open(self):
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__xormode, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":458
 *       self.pgid     = 0
 *       self.xormode  = False
 *       self.callback = None             # <<<<<<<<<<<<<<
 *    def open(self):
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__callback, Py_None) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._PlotField.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":459
 *       self.xormode  = False
 *       self.callback = None
 *    def open(self):             # <<<<<<<<<<<<<<
 * 
 * # Open plotfield and return PGPLOT plot device identifier.
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_1open(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_1open = {__Pyx_NAMESTR("open"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_1open, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_1open(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("open");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":464
 * # See also pgopen.dc2.
 * 
 *       self.pgid = pgopen_c(tofchar(self.name))             # <<<<<<<<<<<<<<
 *       return self.pgid
 *    def xor(self, mode):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(pgopen_c(__pyx_f_5gipsy_tofchar(__pyx_t_1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__pgid, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":465
 * 
 *       self.pgid = pgopen_c(tofchar(self.name))
 *       return self.pgid             # <<<<<<<<<<<<<<
 *    def xor(self, mode):
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pgid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy._PlotField.open", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":466
 *       self.pgid = pgopen_c(tofchar(self.name))
 *       return self.pgid
 *    def xor(self, mode):             # <<<<<<<<<<<<<<
 * 
 * # mode  - True or False for non-destructive plotting.
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_2xor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_2xor = {__Pyx_NAMESTR("xor"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_2xor, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_2xor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_mode = 0;
  fint __pyx_v_id_c;
  fint __pyx_v_pgid_c;
  bool __pyx_v_mode_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  fint __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__mode,0};
  __Pyx_RefNannySetupContext("xor");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("xor", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "xor") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_mode = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("xor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PlotField.xor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":472
 *       cdef fint id_c, pgid_c
 *       cdef bool mode_c
 *       mode_c = mode             # <<<<<<<<<<<<<<
 *       pgid_c = self.pgid
 *       pgqid_c(&id_c)
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_bool(__pyx_v_mode); if (unlikely((__pyx_t_1 == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_mode_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":473
 *       cdef bool mode_c
 *       mode_c = mode
 *       pgid_c = self.pgid             # <<<<<<<<<<<<<<
 *       pgqid_c(&id_c)
 *       pgslct_c(&pgid_c)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pgid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_from_py_fint(__pyx_t_2); if (unlikely((__pyx_t_3 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_pgid_c = __pyx_t_3;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":474
 *       mode_c = mode
 *       pgid_c = self.pgid
 *       pgqid_c(&id_c)             # <<<<<<<<<<<<<<
 *       pgslct_c(&pgid_c)
 *       GgiPlotXor(mode_c)
 */
  pgqid_c((&__pyx_v_id_c));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":475
 *       pgid_c = self.pgid
 *       pgqid_c(&id_c)
 *       pgslct_c(&pgid_c)             # <<<<<<<<<<<<<<
 *       GgiPlotXor(mode_c)
 *       self.xormode = mode
 */
  pgslct_c((&__pyx_v_pgid_c));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":476
 *       pgqid_c(&id_c)
 *       pgslct_c(&pgid_c)
 *       GgiPlotXor(mode_c)             # <<<<<<<<<<<<<<
 *       self.xormode = mode
 *       if id_c:
 */
  GgiPlotXor(__pyx_v_mode_c);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":477
 *       pgslct_c(&pgid_c)
 *       GgiPlotXor(mode_c)
 *       self.xormode = mode             # <<<<<<<<<<<<<<
 *       if id_c:
 *          pgslct_c(&id_c)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__xormode, __pyx_v_mode) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":478
 *       GgiPlotXor(mode_c)
 *       self.xormode = mode
 *       if id_c:             # <<<<<<<<<<<<<<
 *          pgslct_c(&id_c)
 *    def CursorCallback(self, proc, schedule=True, **attr):
 */
  if (__pyx_v_id_c) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":479
 *       self.xormode = mode
 *       if id_c:
 *          pgslct_c(&id_c)             # <<<<<<<<<<<<<<
 *    def CursorCallback(self, proc, schedule=True, **attr):
 * 
 */
    pgslct_c((&__pyx_v_id_c));
    goto __pyx_L6;
  }
  __pyx_L6:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy._PlotField.xor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":480
 *       if id_c:
 *          pgslct_c(&id_c)
 *    def CursorCallback(self, proc, schedule=True, **attr):             # <<<<<<<<<<<<<<
 * 
 * # Create a cursor callback object.
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_3CursorCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_3CursorCallback = {__Pyx_NAMESTR("CursorCallback"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_3CursorCallback, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_3CursorCallback(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__schedule,0};
  __Pyx_RefNannySetupContext("CursorCallback");
  __pyx_self = __pyx_self;
  __pyx_v_attr = PyDict_New(); if (unlikely(!__pyx_v_attr)) return NULL;
  __Pyx_GOTREF(__pyx_v_attr);
  {
    PyObject* values[3] = {0,0,0};
    values[2] = __pyx_k_229;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("CursorCallback", 0, 2, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_attr, values, PyTuple_GET_SIZE(__pyx_args), "CursorCallback") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_schedule = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("CursorCallback", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_attr); __pyx_v_attr = 0;
  __Pyx_AddTraceback("gipsy._PlotField.CursorCallback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":489
 * # See also: _CursorCallback's docstrings.
 * 
 *       return _CursorCallback(proc, self, schedule, attr)             # <<<<<<<<<<<<<<
 *    def frames(self, requested):
 *       "Obtain pixmaps e.g. for movie loops: GgiPlotFrames.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___CursorCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_proc);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_proc);
  __Pyx_GIVEREF(__pyx_v_proc);
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  __Pyx_INCREF(__pyx_v_schedule);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_schedule);
  __Pyx_GIVEREF(__pyx_v_schedule);
  __Pyx_INCREF(((PyObject *)__pyx_v_attr));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_attr));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_attr));
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy._PlotField.CursorCallback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":490
 * 
 *       return _CursorCallback(proc, self, schedule, attr)
 *    def frames(self, requested):             # <<<<<<<<<<<<<<
 *       "Obtain pixmaps e.g. for movie loops: GgiPlotFrames.dc2"
 *       self.nframes = GgiPlotFrames(toident(self.hook), requested)
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_4frames(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_PlotField_4frames[] = "Obtain pixmaps e.g. for movie loops: GgiPlotFrames.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_4frames = {__Pyx_NAMESTR("frames"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_4frames, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_PlotField_4frames)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_4frames(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_requested = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__requested,0};
  __Pyx_RefNannySetupContext("frames");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requested);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("frames", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "frames") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_requested = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("frames", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PlotField.frames", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":492
 *    def frames(self, requested):
 *       "Obtain pixmaps e.g. for movie loops: GgiPlotFrames.dc2"
 *       self.nframes = GgiPlotFrames(toident(self.hook), requested)             # <<<<<<<<<<<<<<
 *       # !! seems to work only after the plotfield has been drawn to !!
 *       if self.nframes != requested:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_requested); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = PyInt_FromLong(GgiPlotFrames(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__nframes, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":494
 *       self.nframes = GgiPlotFrames(toident(self.hook), requested)
 *       # !! seems to work only after the plotfield has been drawn to !!
 *       if self.nframes != requested:             # <<<<<<<<<<<<<<
 *          raise GgiError, "PlotField frame allocation failure"
 *       return self
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__nframes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_v_requested, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":495
 *       # !! seems to work only after the plotfield has been drawn to !!
 *       if self.nframes != requested:
 *          raise GgiError, "PlotField frame allocation failure"             # <<<<<<<<<<<<<<
 *       return self
 *    def record(self, frame):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_s_230), 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":496
 *       if self.nframes != requested:
 *          raise GgiError, "PlotField frame allocation failure"
 *       return self             # <<<<<<<<<<<<<<
 *    def record(self, frame):
 *       "Store a plot window in a pixmap: GgiPlotRecord.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __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("gipsy._PlotField.frames", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":497
 *          raise GgiError, "PlotField frame allocation failure"
 *       return self
 *    def record(self, frame):             # <<<<<<<<<<<<<<
 *       "Store a plot window in a pixmap: GgiPlotRecord.dc2"
 *       GgiPlotRecord(toident(self.hook), frame)
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_5record(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_PlotField_5record[] = "Store a plot window in a pixmap: GgiPlotRecord.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_5record = {__Pyx_NAMESTR("record"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_5record, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_PlotField_5record)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_5record(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_frame = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__frame,0};
  __Pyx_RefNannySetupContext("record");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__frame);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("record", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "record") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_frame = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("record", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PlotField.record", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":499
 *    def record(self, frame):
 *       "Store a plot window in a pixmap: GgiPlotRecord.dc2"
 *       GgiPlotRecord(toident(self.hook), frame)             # <<<<<<<<<<<<<<
 *       return self
 *    def show(self, frame):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_frame); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiPlotRecord(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":500
 *       "Store a plot window in a pixmap: GgiPlotRecord.dc2"
 *       GgiPlotRecord(toident(self.hook), frame)
 *       return self             # <<<<<<<<<<<<<<
 *    def show(self, frame):
 *       "Recall a plot from a pixmap: GgiPlotShow.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._PlotField.record", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":501
 *       GgiPlotRecord(toident(self.hook), frame)
 *       return self
 *    def show(self, frame):             # <<<<<<<<<<<<<<
 *       "Recall a plot from a pixmap: GgiPlotShow.dc2"
 *       GgiPlotShow(toident(self.hook), frame)
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_6show(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_PlotField_6show[] = "Recall a plot from a pixmap: GgiPlotShow.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_6show = {__Pyx_NAMESTR("show"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_6show, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_PlotField_6show)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_6show(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_frame = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__frame,0};
  __Pyx_RefNannySetupContext("show");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__frame);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("show", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "show") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_frame = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("show", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PlotField.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":503
 *    def show(self, frame):
 *       "Recall a plot from a pixmap: GgiPlotShow.dc2"
 *       GgiPlotShow(toident(self.hook), frame)             # <<<<<<<<<<<<<<
 *       return self
 *    def colors(self, requested, master=True):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_frame); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiPlotShow(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":504
 *       "Recall a plot from a pixmap: GgiPlotShow.dc2"
 *       GgiPlotShow(toident(self.hook), frame)
 *       return self             # <<<<<<<<<<<<<<
 *    def colors(self, requested, master=True):
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._PlotField.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":505
 *       GgiPlotShow(toident(self.hook), frame)
 *       return self
 *    def colors(self, requested, master=True):             # <<<<<<<<<<<<<<
 * 
 * # Increase number of available colors. If master=True (the default)
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_7colors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_7colors = {__Pyx_NAMESTR("colors"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_7colors, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_7colors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_requested = 0;
  PyObject *__pyx_v_master = 0;
  PyObject *__pyx_v_id = 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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__requested,&__pyx_n_s__master,0};
  __Pyx_RefNannySetupContext("colors");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    values[2] = __pyx_k_231;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requested);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("colors", 0, 2, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__master);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "colors") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_requested = values[1];
    __pyx_v_master = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("colors", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PlotField.colors", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":512
 * # plotfield. See GgiPlotColors.dc2.
 * 
 *       if master:             # <<<<<<<<<<<<<<
 *          id = 0
 *       else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_master); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":513
 * 
 *       if master:
 *          id = 0             # <<<<<<<<<<<<<<
 *       else:
 *          id = self.hook
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_id = __pyx_int_0;
    goto __pyx_L6;
  }
  /*else*/ {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":515
 *          id = 0
 *       else:
 *          id = self.hook             # <<<<<<<<<<<<<<
 *       _PlotField.ncolors = GgiPlotColors(toident(id), requested)
 *       if _PlotField.ncolors != requested:
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_id = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":516
 *       else:
 *          id = self.hook
 *       _PlotField.ncolors = GgiPlotColors(toident(id), requested)             # <<<<<<<<<<<<<<
 *       if _PlotField.ncolors != requested:
 *          raise GgiError, "PlotField color allocation failure"
 */
  __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_requested); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyInt_FromLong(GgiPlotColors(__pyx_f_5gipsy_toident(__pyx_v_id), __pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___PlotField); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__ncolors, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":517
 *          id = self.hook
 *       _PlotField.ncolors = GgiPlotColors(toident(id), requested)
 *       if _PlotField.ncolors != requested:             # <<<<<<<<<<<<<<
 *          raise GgiError, "PlotField color allocation failure"
 *       return self
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___PlotField); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__ncolors); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_v_requested, Py_NE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_1) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":518
 *       _PlotField.ncolors = GgiPlotColors(toident(id), requested)
 *       if _PlotField.ncolors != requested:
 *          raise GgiError, "PlotField color allocation failure"             # <<<<<<<<<<<<<<
 *       return self
 *    def mapColors(self, *spans):
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_s_232), 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":519
 *       if _PlotField.ncolors != requested:
 *          raise GgiError, "PlotField color allocation failure"
 *       return self             # <<<<<<<<<<<<<<
 *    def mapColors(self, *spans):
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __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_AddTraceback("gipsy._PlotField.colors", __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;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":520
 *          raise GgiError, "PlotField color allocation failure"
 *       return self
 *    def mapColors(self, *spans):             # <<<<<<<<<<<<<<
 * 
 * # Build a plotfield-specific color table from spans in the master
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_8mapColors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_8mapColors = {__Pyx_NAMESTR("mapColors"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_8mapColors, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_8mapColors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_spans = 0;
  int __pyx_v_ci_c[10];
  int __pyx_v_nc_c[10];
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_span = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  Py_ssize_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,0};
  __Pyx_RefNannySetupContext("mapColors");
  __pyx_self = __pyx_self;
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_spans = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args));
    if (unlikely(!__pyx_v_spans)) {
      __Pyx_RefNannyFinishContext();
      return NULL;
    }
    __Pyx_GOTREF(__pyx_v_spans);
  } else {
    __pyx_v_spans = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        default:
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "mapColors") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("mapColors", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_spans); __pyx_v_spans = 0;
  __Pyx_AddTraceback("gipsy._PlotField.mapColors", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":532
 * 
 *       cdef int ci_c[10], nc_c[10]
 *       if len(spans)>10:             # <<<<<<<<<<<<<<
 *          raise GgiError, "Too many color spans"
 *       i  = 0
 */
  if (unlikely(((PyObject *)__pyx_v_spans) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_spans)); 
  __pyx_t_2 = (__pyx_t_1 > 10);
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":533
 *       cdef int ci_c[10], nc_c[10]
 *       if len(spans)>10:
 *          raise GgiError, "Too many color spans"             # <<<<<<<<<<<<<<
 *       i  = 0
 *       for span in spans:
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_s_233), 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":534
 *       if len(spans)>10:
 *          raise GgiError, "Too many color spans"
 *       i  = 0             # <<<<<<<<<<<<<<
 *       for span in spans:
 *          ci_c[i] = span[0]
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_i = __pyx_int_0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":535
 *          raise GgiError, "Too many color spans"
 *       i  = 0
 *       for span in spans:             # <<<<<<<<<<<<<<
 *          ci_c[i] = span[0]
 *          nc_c[i] = span[1]
 */
  if (unlikely(((PyObject *)__pyx_v_spans) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_3 = ((PyObject *)__pyx_v_spans); __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0;
  for (;;) {
    if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
    __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++;
    __Pyx_XDECREF(__pyx_v_span);
    __pyx_v_span = __pyx_t_4;
    __pyx_t_4 = 0;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":536
 *       i  = 0
 *       for span in spans:
 *          ci_c[i] = span[0]             # <<<<<<<<<<<<<<
 *          nc_c[i] = span[1]
 *          i = i+1
 */
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_span, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_ci_c[__pyx_t_6]) = __pyx_t_5;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":537
 *       for span in spans:
 *          ci_c[i] = span[0]
 *          nc_c[i] = span[1]             # <<<<<<<<<<<<<<
 *          i = i+1
 *       ci_c[i] = -1
 */
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_span, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    (__pyx_v_nc_c[__pyx_t_6]) = __pyx_t_5;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":538
 *          ci_c[i] = span[0]
 *          nc_c[i] = span[1]
 *          i = i+1             # <<<<<<<<<<<<<<
 *       ci_c[i] = -1
 *       GgiPlotMapColors(toident(self.hook),
 */
    __pyx_t_4 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":539
 *          nc_c[i] = span[1]
 *          i = i+1
 *       ci_c[i] = -1             # <<<<<<<<<<<<<<
 *       GgiPlotMapColors(toident(self.hook),
 *                        ci_c[0], nc_c[0],
 */
  __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  (__pyx_v_ci_c[__pyx_t_1]) = -1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":540
 *          i = i+1
 *       ci_c[i] = -1
 *       GgiPlotMapColors(toident(self.hook),             # <<<<<<<<<<<<<<
 *                        ci_c[0], nc_c[0],
 *                        ci_c[1], nc_c[1],
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":550
 *                        ci_c[7], nc_c[7],
 *                        ci_c[8], nc_c[8],
 *                        ci_c[9], nc_c[9])             # <<<<<<<<<<<<<<
 *       return self
 *    def export(self, name=None):
 */
  GgiPlotMapColors(__pyx_f_5gipsy_toident(__pyx_t_3), (__pyx_v_ci_c[0]), (__pyx_v_nc_c[0]), (__pyx_v_ci_c[1]), (__pyx_v_nc_c[1]), (__pyx_v_ci_c[2]), (__pyx_v_nc_c[2]), (__pyx_v_ci_c[3]), (__pyx_v_nc_c[3]), (__pyx_v_ci_c[4]), (__pyx_v_nc_c[4]), (__pyx_v_ci_c[5]), (__pyx_v_nc_c[5]), (__pyx_v_ci_c[6]), (__pyx_v_nc_c[6]), (__pyx_v_ci_c[7]), (__pyx_v_nc_c[7]), (__pyx_v_ci_c[8]), (__pyx_v_nc_c[8]), (__pyx_v_ci_c[9]), (__pyx_v_nc_c[9]));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":551
 *                        ci_c[8], nc_c[8],
 *                        ci_c[9], nc_c[9])
 *       return self             # <<<<<<<<<<<<<<
 *    def export(self, name=None):
 *       "Export plotfield to other tasks. See GgiPlotExport.dc2"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("gipsy._PlotField.mapColors", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_spans);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_span);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":552
 *                        ci_c[9], nc_c[9])
 *       return self
 *    def export(self, name=None):             # <<<<<<<<<<<<<<
 *       "Export plotfield to other tasks. See GgiPlotExport.dc2"
 *       if name==None:
 */

static PyObject *__pyx_pf_5gipsy_10_PlotField_9export(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_10_PlotField_9export[] = "Export plotfield to other tasks. See GgiPlotExport.dc2";
static PyMethodDef __pyx_mdef_5gipsy_10_PlotField_9export = {__Pyx_NAMESTR("export"), (PyCFunction)__pyx_pf_5gipsy_10_PlotField_9export, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_10_PlotField_9export)};
static PyObject *__pyx_pf_5gipsy_10_PlotField_9export(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,0};
  __Pyx_RefNannySetupContext("export");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "export") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("export", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._PlotField.export", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_name);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":554
 *    def export(self, name=None):
 *       "Export plotfield to other tasks. See GgiPlotExport.dc2"
 *       if name==None:             # <<<<<<<<<<<<<<
 *          name = self.name
 *       GgiPlotExport(toident(self.hook), name)
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_name, Py_None, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":555
 *       "Export plotfield to other tasks. See GgiPlotExport.dc2"
 *       if name==None:
 *          name = self.name             # <<<<<<<<<<<<<<
 *       GgiPlotExport(toident(self.hook), name)
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":556
 *       if name==None:
 *          name = self.name
 *       GgiPlotExport(toident(self.hook), name)             # <<<<<<<<<<<<<<
 * 
 * class _Editor(_Element):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyBytes_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiPlotExport(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._PlotField.export", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":559
 * 
 * class _Editor(_Element):
 *    def source(self):             # <<<<<<<<<<<<<<
 *       return GgiEditorSource(toident(self.hook))
 *    def save(self):
 */

static PyObject *__pyx_pf_5gipsy_7_Editor_source(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_7_Editor_source = {__Pyx_NAMESTR("source"), (PyCFunction)__pyx_pf_5gipsy_7_Editor_source, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_7_Editor_source(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("source");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":560
 * class _Editor(_Element):
 *    def source(self):
 *       return GgiEditorSource(toident(self.hook))             # <<<<<<<<<<<<<<
 *    def save(self):
 *       GgiEditorSave(toident(self.hook))
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyBytes_FromString(GgiEditorSource(__pyx_f_5gipsy_toident(__pyx_t_1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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("gipsy._Editor.source", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":561
 *    def source(self):
 *       return GgiEditorSource(toident(self.hook))
 *    def save(self):             # <<<<<<<<<<<<<<
 *       GgiEditorSave(toident(self.hook))
 *       return self
 */

static PyObject *__pyx_pf_5gipsy_7_Editor_1save(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_7_Editor_1save = {__Pyx_NAMESTR("save"), (PyCFunction)__pyx_pf_5gipsy_7_Editor_1save, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_7_Editor_1save(PyObject *__pyx_self, 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("save");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":562
 *       return GgiEditorSource(toident(self.hook))
 *    def save(self):
 *       GgiEditorSave(toident(self.hook))             # <<<<<<<<<<<<<<
 *       return self
 *    def search(self, direction):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiEditorSave(__pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":563
 *    def save(self):
 *       GgiEditorSave(toident(self.hook))
 *       return self             # <<<<<<<<<<<<<<
 *    def search(self, direction):
 *       GgiEditorSearch(toident(self.hook), direction)
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Editor.save", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":564
 *       GgiEditorSave(toident(self.hook))
 *       return self
 *    def search(self, direction):             # <<<<<<<<<<<<<<
 *       GgiEditorSearch(toident(self.hook), direction)
 *       return self
 */

static PyObject *__pyx_pf_5gipsy_7_Editor_2search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_7_Editor_2search = {__Pyx_NAMESTR("search"), (PyCFunction)__pyx_pf_5gipsy_7_Editor_2search, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_7_Editor_2search(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_direction = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__direction,0};
  __Pyx_RefNannySetupContext("search");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__direction);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "search") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_direction = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("search", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Editor.search", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":565
 *       return self
 *    def search(self, direction):
 *       GgiEditorSearch(toident(self.hook), direction)             # <<<<<<<<<<<<<<
 *       return self
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_direction); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  GgiEditorSearch(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":566
 *    def search(self, direction):
 *       GgiEditorSearch(toident(self.hook), direction)
 *       return self             # <<<<<<<<<<<<<<
 * 
 * class _ColorEditor(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Editor.search", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":569
 * 
 * class _ColorEditor(_Element):
 *    def limits(self, float v1_c, float v2_c):             # <<<<<<<<<<<<<<
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 *       return self
 */

static PyObject *__pyx_pf_5gipsy_12_ColorEditor_limits(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12_ColorEditor_limits = {__Pyx_NAMESTR("limits"), (PyCFunction)__pyx_pf_5gipsy_12_ColorEditor_limits, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12_ColorEditor_limits(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  float __pyx_v_v1_c;
  float __pyx_v_v2_c;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__v1_c,&__pyx_n_s__v2_c,0};
  __Pyx_RefNannySetupContext("limits");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__v1_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("limits", 1, 3, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__v2_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("limits", 1, 3, 3, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "limits") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_v1_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_v1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_v2_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_v2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("limits", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._ColorEditor.limits", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":570
 * class _ColorEditor(_Element):
 *    def limits(self, float v1_c, float v2_c):
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)             # <<<<<<<<<<<<<<
 *       return self
 *    def units(self, unts):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiLimits); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiPlotColorEditor(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1), __pyx_v_v1_c, __pyx_v_v2_c);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":571
 *    def limits(self, float v1_c, float v2_c):
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 *       return self             # <<<<<<<<<<<<<<
 *    def units(self, unts):
 *       cdef char *unts_c
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._ColorEditor.limits", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":572
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 *       return self
 *    def units(self, unts):             # <<<<<<<<<<<<<<
 *       cdef char *unts_c
 *       unts_c = unts
 */

static PyObject *__pyx_pf_5gipsy_12_ColorEditor_1units(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12_ColorEditor_1units = {__Pyx_NAMESTR("units"), (PyCFunction)__pyx_pf_5gipsy_12_ColorEditor_1units, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12_ColorEditor_1units(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_unts = 0;
  char *__pyx_v_unts_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__unts,0};
  __Pyx_RefNannySetupContext("units");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unts);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("units", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "units") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_unts = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("units", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._ColorEditor.units", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":574
 *    def units(self, unts):
 *       cdef char *unts_c
 *       unts_c = unts             # <<<<<<<<<<<<<<
 *       GgiPlotColorEditor(ggiUnits, toident(self.hook), unts_c)
 *       return self
 */
  __pyx_t_1 = PyBytes_AsString(__pyx_v_unts); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_unts_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":575
 *       cdef char *unts_c
 *       unts_c = unts
 *       GgiPlotColorEditor(ggiUnits, toident(self.hook), unts_c)             # <<<<<<<<<<<<<<
 *       return self
 *    def apply(self):
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiUnits); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiPlotColorEditor(__pyx_t_3, __pyx_f_5gipsy_toident(__pyx_t_2), __pyx_v_unts_c);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":576
 *       unts_c = unts
 *       GgiPlotColorEditor(ggiUnits, toident(self.hook), unts_c)
 *       return self             # <<<<<<<<<<<<<<
 *    def apply(self):
 *       GgiPlotColorEditor(ggiApply, toident(self.hook))
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy._ColorEditor.units", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":577
 *       GgiPlotColorEditor(ggiUnits, toident(self.hook), unts_c)
 *       return self
 *    def apply(self):             # <<<<<<<<<<<<<<
 *       GgiPlotColorEditor(ggiApply, toident(self.hook))
 *    def getmap(self, nc):
 */

static PyObject *__pyx_pf_5gipsy_12_ColorEditor_2apply(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12_ColorEditor_2apply = {__Pyx_NAMESTR("apply"), (PyCFunction)__pyx_pf_5gipsy_12_ColorEditor_2apply, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12_ColorEditor_2apply(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("apply");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":578
 *       return self
 *    def apply(self):
 *       GgiPlotColorEditor(ggiApply, toident(self.hook))             # <<<<<<<<<<<<<<
 *    def getmap(self, nc):
 *       cdef int nc_c
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiApply); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiPlotColorEditor(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._ColorEditor.apply", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":579
 *    def apply(self):
 *       GgiPlotColorEditor(ggiApply, toident(self.hook))
 *    def getmap(self, nc):             # <<<<<<<<<<<<<<
 *       cdef int nc_c
 *       cdef float *reds_c, *greens_c, *blues_c, bred_c, bgreen_c, bblue_c
 */

static PyObject *__pyx_pf_5gipsy_12_ColorEditor_3getmap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12_ColorEditor_3getmap = {__Pyx_NAMESTR("getmap"), (PyCFunction)__pyx_pf_5gipsy_12_ColorEditor_3getmap, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12_ColorEditor_3getmap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_nc = 0;
  int __pyx_v_nc_c;
  float *__pyx_v_reds_c;
  float *__pyx_v_greens_c;
  float *__pyx_v_blues_c;
  float __pyx_v_bred_c;
  float __pyx_v_bgreen_c;
  float __pyx_v_bblue_c;
  PyObject *__pyx_v_reds = NULL;
  PyObject *__pyx_v_greens = NULL;
  PyObject *__pyx_v_blues = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__nc,0};
  __Pyx_RefNannySetupContext("getmap");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("getmap", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "getmap") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_nc = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("getmap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._ColorEditor.getmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":582
 *       cdef int nc_c
 *       cdef float *reds_c, *greens_c, *blues_c, bred_c, bgreen_c, bblue_c
 *       nc_c     = nc             # <<<<<<<<<<<<<<
 *       reds_c   = <float*>malloc(nc*sizeof(float))
 *       greens_c = <float*>malloc(nc*sizeof(float))
 */
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_nc); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nc_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":583
 *       cdef float *reds_c, *greens_c, *blues_c, bred_c, bgreen_c, bblue_c
 *       nc_c     = nc
 *       reds_c   = <float*>malloc(nc*sizeof(float))             # <<<<<<<<<<<<<<
 *       greens_c = <float*>malloc(nc*sizeof(float))
 *       blues_c  = <float*>malloc(nc*sizeof(float))
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(float))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_nc, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsSize_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_reds_c = ((float *)malloc(__pyx_t_4));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":584
 *       nc_c     = nc
 *       reds_c   = <float*>malloc(nc*sizeof(float))
 *       greens_c = <float*>malloc(nc*sizeof(float))             # <<<<<<<<<<<<<<
 *       blues_c  = <float*>malloc(nc*sizeof(float))
 *       GgiPlotColorEditor(ggiGetMap, toident(self.hook), nc_c,
 */
  __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(float))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Multiply(__pyx_v_nc, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsSize_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_greens_c = ((float *)malloc(__pyx_t_4));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":585
 *       reds_c   = <float*>malloc(nc*sizeof(float))
 *       greens_c = <float*>malloc(nc*sizeof(float))
 *       blues_c  = <float*>malloc(nc*sizeof(float))             # <<<<<<<<<<<<<<
 *       GgiPlotColorEditor(ggiGetMap, toident(self.hook), nc_c,
 *                           reds_c,   greens_c,  blues_c,
 */
  __pyx_t_2 = __Pyx_PyInt_FromSize_t((sizeof(float))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_nc, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsSize_t(__pyx_t_3); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_blues_c = ((float *)malloc(__pyx_t_4));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":586
 *       greens_c = <float*>malloc(nc*sizeof(float))
 *       blues_c  = <float*>malloc(nc*sizeof(float))
 *       GgiPlotColorEditor(ggiGetMap, toident(self.hook), nc_c,             # <<<<<<<<<<<<<<
 *                           reds_c,   greens_c,  blues_c,
 *                          &bred_c, &bgreen_c, &bblue_c)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiGetMap); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":588
 *       GgiPlotColorEditor(ggiGetMap, toident(self.hook), nc_c,
 *                           reds_c,   greens_c,  blues_c,
 *                          &bred_c, &bgreen_c, &bblue_c)             # <<<<<<<<<<<<<<
 *       reds   = []
 *       greens = []
 */
  GgiPlotColorEditor(__pyx_t_1, __pyx_f_5gipsy_toident(__pyx_t_3), __pyx_v_nc_c, __pyx_v_reds_c, __pyx_v_greens_c, __pyx_v_blues_c, (&__pyx_v_bred_c), (&__pyx_v_bgreen_c), (&__pyx_v_bblue_c));
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":589
 *                           reds_c,   greens_c,  blues_c,
 *                          &bred_c, &bgreen_c, &bblue_c)
 *       reds   = []             # <<<<<<<<<<<<<<
 *       greens = []
 *       blues  = []
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_v_reds = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":590
 *                          &bred_c, &bgreen_c, &bblue_c)
 *       reds   = []
 *       greens = []             # <<<<<<<<<<<<<<
 *       blues  = []
 *       for i in range(nc):
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_v_greens = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":591
 *       reds   = []
 *       greens = []
 *       blues  = []             # <<<<<<<<<<<<<<
 *       for i in range(nc):
 *          reds.append(reds_c[i])
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_v_blues = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":592
 *       greens = []
 *       blues  = []
 *       for i in range(nc):             # <<<<<<<<<<<<<<
 *          reds.append(reds_c[i])
 *          greens.append(greens_c[i])
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_nc);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_nc);
  __Pyx_GIVEREF(__pyx_v_nc);
  __pyx_t_2 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_3)) {
      if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++;
    } else if (PyTuple_CheckExact(__pyx_t_3)) {
      if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++;
    } else {
      __pyx_t_2 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[1]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_i);
    __pyx_v_i = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":593
 *       blues  = []
 *       for i in range(nc):
 *          reds.append(reds_c[i])             # <<<<<<<<<<<<<<
 *          greens.append(greens_c[i])
 *          blues.append(blues_c[i])
 */
    if (unlikely(((PyObject *)__pyx_v_reds) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = PyFloat_FromDouble((__pyx_v_reds_c[__pyx_t_7])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = PyList_Append(__pyx_v_reds, __pyx_t_2); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":594
 *       for i in range(nc):
 *          reds.append(reds_c[i])
 *          greens.append(greens_c[i])             # <<<<<<<<<<<<<<
 *          blues.append(blues_c[i])
 *       return (reds, greens, blues, bred_c, bgreen_c, bblue_c)
 */
    if (unlikely(((PyObject *)__pyx_v_greens) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = PyFloat_FromDouble((__pyx_v_greens_c[__pyx_t_7])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = PyList_Append(__pyx_v_greens, __pyx_t_2); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":595
 *          reds.append(reds_c[i])
 *          greens.append(greens_c[i])
 *          blues.append(blues_c[i])             # <<<<<<<<<<<<<<
 *       return (reds, greens, blues, bred_c, bgreen_c, bblue_c)
 * 
 */
    if (unlikely(((PyObject *)__pyx_v_blues) == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append"); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
    }
    __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = PyFloat_FromDouble((__pyx_v_blues_c[__pyx_t_7])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = PyList_Append(__pyx_v_blues, __pyx_t_2); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":596
 *          greens.append(greens_c[i])
 *          blues.append(blues_c[i])
 *       return (reds, greens, blues, bred_c, bgreen_c, bblue_c)             # <<<<<<<<<<<<<<
 * 
 * class _Inset(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_bred_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_bgreen_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_bblue_c); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyTuple_New(6); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_10));
  __Pyx_INCREF(((PyObject *)__pyx_v_reds));
  PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_v_reds));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_reds));
  __Pyx_INCREF(((PyObject *)__pyx_v_greens));
  PyTuple_SET_ITEM(__pyx_t_10, 1, ((PyObject *)__pyx_v_greens));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_greens));
  __Pyx_INCREF(((PyObject *)__pyx_v_blues));
  PyTuple_SET_ITEM(__pyx_t_10, 2, ((PyObject *)__pyx_v_blues));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_blues));
  PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_10, 5, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_9 = 0;
  __pyx_r = ((PyObject *)__pyx_t_10);
  __pyx_t_10 = 0;
  goto __pyx_L0;

  __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_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("gipsy._ColorEditor.getmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_reds);
  __Pyx_XDECREF(__pyx_v_greens);
  __Pyx_XDECREF(__pyx_v_blues);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":599
 * 
 * class _Inset(_Element):
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       "delete the GUI element"
 *       GgiInset(ggiDelete, toident(self.hook))
 */

static PyObject *__pyx_pf_5gipsy_6_Inset_delete(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_6_Inset_delete[] = "delete the GUI element";
static PyMethodDef __pyx_mdef_5gipsy_6_Inset_delete = {__Pyx_NAMESTR("delete"), (PyCFunction)__pyx_pf_5gipsy_6_Inset_delete, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_6_Inset_delete)};
static PyObject *__pyx_pf_5gipsy_6_Inset_delete(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("delete");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":601
 *    def delete(self):
 *       "delete the GUI element"
 *       GgiInset(ggiDelete, toident(self.hook))             # <<<<<<<<<<<<<<
 *       del self.hook
 *    def ndims(self, ndims):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiDelete); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiInset(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":602
 *       "delete the GUI element"
 *       GgiInset(ggiDelete, toident(self.hook))
 *       del self.hook             # <<<<<<<<<<<<<<
 *    def ndims(self, ndims):
 *       cdef int ndims_c
 */
  if (PyObject_DelAttr(__pyx_v_self, __pyx_n_s__hook) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Inset.delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":603
 *       GgiInset(ggiDelete, toident(self.hook))
 *       del self.hook
 *    def ndims(self, ndims):             # <<<<<<<<<<<<<<
 *       cdef int ndims_c
 *       ndims_c = ndims
 */

static PyObject *__pyx_pf_5gipsy_6_Inset_1ndims(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_6_Inset_1ndims = {__Pyx_NAMESTR("ndims"), (PyCFunction)__pyx_pf_5gipsy_6_Inset_1ndims, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_6_Inset_1ndims(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_ndims = 0;
  int __pyx_v_ndims_c;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__ndims,0};
  __Pyx_RefNannySetupContext("ndims");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ndims);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ndims", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "ndims") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_ndims = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ndims", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Inset.ndims", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":605
 *    def ndims(self, ndims):
 *       cdef int ndims_c
 *       ndims_c = ndims             # <<<<<<<<<<<<<<
 *       "set default number of dimensions"
 *       GgiInset(ggiNdims, toident(self.hook), ndims_c);
 */
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_v_ndims); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_ndims_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":607
 *       ndims_c = ndims
 *       "set default number of dimensions"
 *       GgiInset(ggiNdims, toident(self.hook), ndims_c);             # <<<<<<<<<<<<<<
 *       return self
 *    def closeOnOK(self):
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiNdims); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  GgiInset(__pyx_t_1, __pyx_f_5gipsy_toident(__pyx_t_2), __pyx_v_ndims_c);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":608
 *       "set default number of dimensions"
 *       GgiInset(ggiNdims, toident(self.hook), ndims_c);
 *       return self             # <<<<<<<<<<<<<<
 *    def closeOnOK(self):
 *       "close when selection is made"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("gipsy._Inset.ndims", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":609
 *       GgiInset(ggiNdims, toident(self.hook), ndims_c);
 *       return self
 *    def closeOnOK(self):             # <<<<<<<<<<<<<<
 *       "close when selection is made"
 *       GgiInset(ggiCloseOnOK, toident(self.hook))
 */

static PyObject *__pyx_pf_5gipsy_6_Inset_2closeOnOK(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_6_Inset_2closeOnOK[] = "close when selection is made";
static PyMethodDef __pyx_mdef_5gipsy_6_Inset_2closeOnOK = {__Pyx_NAMESTR("closeOnOK"), (PyCFunction)__pyx_pf_5gipsy_6_Inset_2closeOnOK, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_6_Inset_2closeOnOK)};
static PyObject *__pyx_pf_5gipsy_6_Inset_2closeOnOK(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("closeOnOK");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":611
 *    def closeOnOK(self):
 *       "close when selection is made"
 *       GgiInset(ggiCloseOnOK, toident(self.hook))             # <<<<<<<<<<<<<<
 *       return self
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiCloseOnOK); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiInset(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":612
 *       "close when selection is made"
 *       GgiInset(ggiCloseOnOK, toident(self.hook))
 *       return self             # <<<<<<<<<<<<<<
 * 
 * class _FileBrowser(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Inset.closeOnOK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":615
 * 
 * class _FileBrowser(_Element):
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       "delete the GUI element"
 *       GgiFileBrowser(ggiDelete, toident(self.hook))
 */

static PyObject *__pyx_pf_5gipsy_12_FileBrowser_delete(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_12_FileBrowser_delete[] = "delete the GUI element";
static PyMethodDef __pyx_mdef_5gipsy_12_FileBrowser_delete = {__Pyx_NAMESTR("delete"), (PyCFunction)__pyx_pf_5gipsy_12_FileBrowser_delete, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_12_FileBrowser_delete)};
static PyObject *__pyx_pf_5gipsy_12_FileBrowser_delete(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("delete");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":617
 *    def delete(self):
 *       "delete the GUI element"
 *       GgiFileBrowser(ggiDelete, toident(self.hook))             # <<<<<<<<<<<<<<
 *       del self.hook
 *    def nowait(self):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiDelete); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiFileBrowser(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":618
 *       "delete the GUI element"
 *       GgiFileBrowser(ggiDelete, toident(self.hook))
 *       del self.hook             # <<<<<<<<<<<<<<
 *    def nowait(self):
 *       "accept selection without pressing OK button"
 */
  if (PyObject_DelAttr(__pyx_v_self, __pyx_n_s__hook) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._FileBrowser.delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":619
 *       GgiFileBrowser(ggiDelete, toident(self.hook))
 *       del self.hook
 *    def nowait(self):             # <<<<<<<<<<<<<<
 *       "accept selection without pressing OK button"
 *       GgiFileBrowser(ggiNowait, toident(self.hook))
 */

static PyObject *__pyx_pf_5gipsy_12_FileBrowser_1nowait(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_12_FileBrowser_1nowait[] = "accept selection without pressing OK button";
static PyMethodDef __pyx_mdef_5gipsy_12_FileBrowser_1nowait = {__Pyx_NAMESTR("nowait"), (PyCFunction)__pyx_pf_5gipsy_12_FileBrowser_1nowait, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_12_FileBrowser_1nowait)};
static PyObject *__pyx_pf_5gipsy_12_FileBrowser_1nowait(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("nowait");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":621
 *    def nowait(self):
 *       "accept selection without pressing OK button"
 *       GgiFileBrowser(ggiNowait, toident(self.hook))             # <<<<<<<<<<<<<<
 *       return self
 *    def closeOnOK(self):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiNowait); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiFileBrowser(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":622
 *       "accept selection without pressing OK button"
 *       GgiFileBrowser(ggiNowait, toident(self.hook))
 *       return self             # <<<<<<<<<<<<<<
 *    def closeOnOK(self):
 *       "close when selection is made"
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._FileBrowser.nowait", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":623
 *       GgiFileBrowser(ggiNowait, toident(self.hook))
 *       return self
 *    def closeOnOK(self):             # <<<<<<<<<<<<<<
 *       "close when selection is made"
 *       GgiFileBrowser(ggiCloseOnOK, toident(self.hook))
 */

static PyObject *__pyx_pf_5gipsy_12_FileBrowser_2closeOnOK(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_12_FileBrowser_2closeOnOK[] = "close when selection is made";
static PyMethodDef __pyx_mdef_5gipsy_12_FileBrowser_2closeOnOK = {__Pyx_NAMESTR("closeOnOK"), (PyCFunction)__pyx_pf_5gipsy_12_FileBrowser_2closeOnOK, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_12_FileBrowser_2closeOnOK)};
static PyObject *__pyx_pf_5gipsy_12_FileBrowser_2closeOnOK(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("closeOnOK");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":625
 *    def closeOnOK(self):
 *       "close when selection is made"
 *       GgiFileBrowser(ggiCloseOnOK, toident(self.hook))             # <<<<<<<<<<<<<<
 *       return self
 *    def fileInfo(self, detail):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiCloseOnOK); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiFileBrowser(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":626
 *       "close when selection is made"
 *       GgiFileBrowser(ggiCloseOnOK, toident(self.hook))
 *       return self             # <<<<<<<<<<<<<<
 *    def fileInfo(self, detail):
 *       global cvt_detail
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._FileBrowser.closeOnOK", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":627
 *       GgiFileBrowser(ggiCloseOnOK, toident(self.hook))
 *       return self
 *    def fileInfo(self, detail):             # <<<<<<<<<<<<<<
 *       global cvt_detail
 *       self.detail = detail
 */

static PyObject *__pyx_pf_5gipsy_12_FileBrowser_3fileInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_12_FileBrowser_3fileInfo = {__Pyx_NAMESTR("fileInfo"), (PyCFunction)__pyx_pf_5gipsy_12_FileBrowser_3fileInfo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_12_FileBrowser_3fileInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_detail = 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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__detail,0};
  __Pyx_RefNannySetupContext("fileInfo");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__detail);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fileInfo", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "fileInfo") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_detail = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fileInfo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._FileBrowser.fileInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":629
 *    def fileInfo(self, detail):
 *       global cvt_detail
 *       self.detail = detail             # <<<<<<<<<<<<<<
 *       GgiFileBrowser(ggiFileInfo, toident(self.hook), cvt_detail_c)
 *       cvt_detail = self.detail
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__detail, __pyx_v_detail) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":630
 *       global cvt_detail
 *       self.detail = detail
 *       GgiFileBrowser(ggiFileInfo, toident(self.hook), cvt_detail_c)             # <<<<<<<<<<<<<<
 *       cvt_detail = self.detail
 *       return self
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__ggiFileInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiFileBrowser(__pyx_t_2, __pyx_f_5gipsy_toident(__pyx_t_1), __pyx_f_5gipsy_cvt_detail_c);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":631
 *       self.detail = detail
 *       GgiFileBrowser(ggiFileInfo, toident(self.hook), cvt_detail_c)
 *       cvt_detail = self.detail             # <<<<<<<<<<<<<<
 *       return self
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__detail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cvt_detail, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":632
 *       GgiFileBrowser(ggiFileInfo, toident(self.hook), cvt_detail_c)
 *       cvt_detail = self.detail
 *       return self             # <<<<<<<<<<<<<<
 * 
 * class _Menu(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._FileBrowser.fileInfo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":635
 * 
 * class _Menu(_Element):
 *    def setLabels(self, labs):             # <<<<<<<<<<<<<<
 *       "Modify the menu's label strings"
 *       GgiMenuLabels(toident(self.hook), charlist(labs))
 */

static PyObject *__pyx_pf_5gipsy_5_Menu_setLabels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_5_Menu_setLabels[] = "Modify the menu's label strings";
static PyMethodDef __pyx_mdef_5gipsy_5_Menu_setLabels = {__Pyx_NAMESTR("setLabels"), (PyCFunction)__pyx_pf_5gipsy_5_Menu_setLabels, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_5_Menu_setLabels)};
static PyObject *__pyx_pf_5gipsy_5_Menu_setLabels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_labs = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__labs,0};
  __Pyx_RefNannySetupContext("setLabels");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__labs);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setLabels", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setLabels") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_labs = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setLabels", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._Menu.setLabels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":637
 *    def setLabels(self, labs):
 *       "Modify the menu's label strings"
 *       GgiMenuLabels(toident(self.hook), charlist(labs))             # <<<<<<<<<<<<<<
 *       return self
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiMenuLabels(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_f_5gipsy_charlist(__pyx_v_labs));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":638
 *       "Modify the menu's label strings"
 *       GgiMenuLabels(toident(self.hook), charlist(labs))
 *       return self             # <<<<<<<<<<<<<<
 * 
 * class _List(_Element):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._Menu.setLabels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":641
 * 
 * class _List(_Element):
 *    def setLabels(self, labs):             # <<<<<<<<<<<<<<
 *       "Modify the list's label strings"
 *       GgiListLabels(toident(self.hook), charlist(labs))
 */

static PyObject *__pyx_pf_5gipsy_5_List_setLabels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5gipsy_5_List_setLabels[] = "Modify the list's label strings";
static PyMethodDef __pyx_mdef_5gipsy_5_List_setLabels = {__Pyx_NAMESTR("setLabels"), (PyCFunction)__pyx_pf_5gipsy_5_List_setLabels, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_5gipsy_5_List_setLabels)};
static PyObject *__pyx_pf_5gipsy_5_List_setLabels(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_labs = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__labs,0};
  __Pyx_RefNannySetupContext("setLabels");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__labs);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setLabels", 1, 2, 2, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "setLabels") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_labs = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setLabels", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._List.setLabels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":643
 *    def setLabels(self, labs):
 *       "Modify the list's label strings"
 *       GgiListLabels(toident(self.hook), charlist(labs))             # <<<<<<<<<<<<<<
 *       return self
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  GgiListLabels(__pyx_f_5gipsy_toident(__pyx_t_1), __pyx_f_5gipsy_charlist(__pyx_v_labs));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":644
 *       "Modify the list's label strings"
 *       GgiListLabels(toident(self.hook), charlist(labs))
 *       return self             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._List.setLabels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":666
 * #    ...       -  extra attributes defined by user via dictionary 'attr'.
 * 
 *    def __init__(self, proc, plotfield, schedule=True, attr={}):             # <<<<<<<<<<<<<<
 * 
 * # proc     - function to be called upon a cursor event.
 */

static PyObject *__pyx_pf_5gipsy_15_CursorCallback___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_15_CursorCallback___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_5gipsy_15_CursorCallback___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_15_CursorCallback___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_proc = 0;
  PyObject *__pyx_v_plotfield = 0;
  PyObject *__pyx_v_schedule = 0;
  PyObject *__pyx_v_attr = 0;
  PyObject *__pyx_v_name = 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 *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__proc,&__pyx_n_s__plotfield,&__pyx_n_s__schedule,&__pyx_n_s__attr,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    values[3] = __pyx_k_234;
    values[4] = __pyx_k_235;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__proc);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__plotfield);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__schedule);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attr);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_proc = values[1];
    __pyx_v_plotfield = values[2];
    __pyx_v_schedule = values[3];
    __pyx_v_attr = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy._CursorCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":672
 * # attr     - keyword arguments defining extra attributes
 * 
 *       self.proc      = proc             # <<<<<<<<<<<<<<
 *       self.plotfield = plotfield
 *       for name in attr.keys():
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__proc, __pyx_v_proc) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":673
 * 
 *       self.proc      = proc
 *       self.plotfield = plotfield             # <<<<<<<<<<<<<<
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__plotfield, __pyx_v_plotfield) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":674
 *       self.proc      = proc
 *       self.plotfield = plotfield
 *       for name in attr.keys():             # <<<<<<<<<<<<<<
 *          self.__dict__[name] = attr[name]
 *       self.__id   = 0
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_attr, __pyx_n_s__keys); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_t_1)) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
    } else if (PyTuple_CheckExact(__pyx_t_1)) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++;
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        if (PyErr_Occurred()) {
          if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
          else {__pyx_filename = __pyx_f[1]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":675
 *       self.plotfield = plotfield
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]             # <<<<<<<<<<<<<<
 *       self.__id   = 0
 *       self.active = False
 */
    __pyx_t_2 = PyObject_GetItem(__pyx_v_attr, __pyx_v_name); if (!__pyx_t_2) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____dict__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyObject_SetItem(__pyx_t_5, __pyx_v_name, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":676
 *       for name in attr.keys():
 *          self.__dict__[name] = attr[name]
 *       self.__id   = 0             # <<<<<<<<<<<<<<
 *       self.active = False
 *       if schedule: self.schedule()
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":677
 *          self.__dict__[name] = attr[name]
 *       self.__id   = 0
 *       self.active = False             # <<<<<<<<<<<<<<
 *       if schedule: self.schedule()
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":678
 *       self.__id   = 0
 *       self.active = False
 *       if schedule: self.schedule()             # <<<<<<<<<<<<<<
 * 
 *    def schedule(self):
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_schedule); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_6) {
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__schedule); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __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;
    goto __pyx_L8;
  }
  __pyx_L8:;

  __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_5);
  __Pyx_AddTraceback("gipsy._CursorCallback.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":680
 *       if schedule: self.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       "activate the callback object"
 *       if self.plotfield.callback:
 */

static PyObject *__pyx_pf_5gipsy_15_CursorCallback_1schedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_15_CursorCallback_1schedule[] = "activate the callback object";
static PyMethodDef __pyx_mdef_5gipsy_15_CursorCallback_1schedule = {__Pyx_NAMESTR("schedule"), (PyCFunction)__pyx_pf_5gipsy_15_CursorCallback_1schedule, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_15_CursorCallback_1schedule)};
static PyObject *__pyx_pf_5gipsy_15_CursorCallback_1schedule(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_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":682
 *    def schedule(self):
 *       "activate the callback object"
 *       if self.plotfield.callback:             # <<<<<<<<<<<<<<
 *          raise GgiError, "Another callback is active for plotter %s" % self.plotfield.name
 *       if self.__id:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__plotfield); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__callback); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[1]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":683
 *       "activate the callback object"
 *       if self.plotfield.callback:
 *          raise GgiError, "Another callback is active for plotter %s" % self.plotfield.name             # <<<<<<<<<<<<<<
 *       if self.__id:
 *          raise GipsyError, "Callback object already active"
 */
    __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__GgiError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__plotfield); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_236), __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_t_1), 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":684
 *       if self.plotfield.callback:
 *          raise GgiError, "Another callback is active for plotter %s" % self.plotfield.name
 *       if self.__id:             # <<<<<<<<<<<<<<
 *          raise GipsyError, "Callback object already active"
 *       self.__arg = (self, self.proc)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":685
 *          raise GgiError, "Another callback is active for plotter %s" % self.plotfield.name
 *       if self.__id:
 *          raise GipsyError, "Callback object already active"             # <<<<<<<<<<<<<<
 *       self.__arg = (self, self.proc)
 *       self.__id = <long>ScheduleGgiPlotCursor(cursorproc_c,
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_s_18), 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":686
 *       if self.__id:
 *          raise GipsyError, "Callback object already active"
 *       self.__arg = (self, self.proc)             # <<<<<<<<<<<<<<
 *       self.__id = <long>ScheduleGgiPlotCursor(cursorproc_c,
 *                                               toident(self.plotfield.hook),
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__proc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____arg, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":688
 *       self.__arg = (self, self.proc)
 *       self.__id = <long>ScheduleGgiPlotCursor(cursorproc_c,
 *                                               toident(self.plotfield.hook),             # <<<<<<<<<<<<<<
 *                                               <void*>self.__arg)
 *       self.active = True
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__plotfield); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__hook); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":689
 *       self.__id = <long>ScheduleGgiPlotCursor(cursorproc_c,
 *                                               toident(self.plotfield.hook),
 *                                               <void*>self.__arg)             # <<<<<<<<<<<<<<
 *       self.active = True
 *       self.plotfield.callback = self
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____arg); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyInt_FromLong(((long)ScheduleGgiPlotCursor(__pyx_f_5gipsy_cursorproc_c, __pyx_f_5gipsy_toident(__pyx_t_1), ((void *)__pyx_t_2)))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":687
 *          raise GipsyError, "Callback object already active"
 *       self.__arg = (self, self.proc)
 *       self.__id = <long>ScheduleGgiPlotCursor(cursorproc_c,             # <<<<<<<<<<<<<<
 *                                               toident(self.plotfield.hook),
 *                                               <void*>self.__arg)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":690
 *                                               toident(self.plotfield.hook),
 *                                               <void*>self.__arg)
 *       self.active = True             # <<<<<<<<<<<<<<
 *       self.plotfield.callback = self
 * 
 */
  __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":691
 *                                               <void*>self.__arg)
 *       self.active = True
 *       self.plotfield.callback = self             # <<<<<<<<<<<<<<
 * 
 *    def deschedule(self):
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__plotfield); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__callback, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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("gipsy._CursorCallback.schedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":693
 *       self.plotfield.callback = self
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       "deactivate the callback object"
 *       cdef ident id_c
 */

static PyObject *__pyx_pf_5gipsy_15_CursorCallback_2deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_5gipsy_15_CursorCallback_2deschedule[] = "deactivate the callback object";
static PyMethodDef __pyx_mdef_5gipsy_15_CursorCallback_2deschedule = {__Pyx_NAMESTR("deschedule"), (PyCFunction)__pyx_pf_5gipsy_15_CursorCallback_2deschedule, METH_O, __Pyx_DOCSTR(__pyx_doc_5gipsy_15_CursorCallback_2deschedule)};
static PyObject *__pyx_pf_5gipsy_15_CursorCallback_2deschedule(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  ident __pyx_v_id_c;
  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("deschedule");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":696
 *       "deactivate the callback object"
 *       cdef ident id_c
 *       if not self.__id:             # <<<<<<<<<<<<<<
 *          raise GipsyError, "Callback object inactive"
 *       id_c = toident(self.__id)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":697
 *       cdef ident id_c
 *       if not self.__id:
 *          raise GipsyError, "Callback object inactive"             # <<<<<<<<<<<<<<
 *       id_c = toident(self.__id)
 *       DescheduleGgiPlotCursor(&id_c)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_s_20), 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L5;
  }
  __pyx_L5:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":698
 *       if not self.__id:
 *          raise GipsyError, "Callback object inactive"
 *       id_c = toident(self.__id)             # <<<<<<<<<<<<<<
 *       DescheduleGgiPlotCursor(&id_c)
 *       del self.__arg
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____id); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_id_c = __pyx_f_5gipsy_toident(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":699
 *          raise GipsyError, "Callback object inactive"
 *       id_c = toident(self.__id)
 *       DescheduleGgiPlotCursor(&id_c)             # <<<<<<<<<<<<<<
 *       del self.__arg
 *       self.__id = 0
 */
  DescheduleGgiPlotCursor((&__pyx_v_id_c));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":700
 *       id_c = toident(self.__id)
 *       DescheduleGgiPlotCursor(&id_c)
 *       del self.__arg             # <<<<<<<<<<<<<<
 *       self.__id = 0
 *       self.active = False
 */
  if (PyObject_DelAttr(__pyx_v_self, __pyx_n_s____arg) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":701
 *       DescheduleGgiPlotCursor(&id_c)
 *       del self.__arg
 *       self.__id = 0             # <<<<<<<<<<<<<<
 *       self.active = False
 *       self.plotfield.callback = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s____id, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 701; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":702
 *       del self.__arg
 *       self.__id = 0
 *       self.active = False             # <<<<<<<<<<<<<<
 *       self.plotfield.callback = None
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__active, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":703
 *       self.__id = 0
 *       self.active = False
 *       self.plotfield.callback = None             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__plotfield); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_t_1, __pyx_n_s__callback, Py_None) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy._CursorCallback.deschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":708
 * #                               cursorproc_c
 * #  --------------------------------------------------------------------------
 * cdef void cursorproc_c(ident id, GgiPlotInfo info, void *arg) with gil:             # <<<<<<<<<<<<<<
 *    (cbobj, cbproc) = <object>arg
 *    cbobj.x      = info.x
 */

static void __pyx_f_5gipsy_cursorproc_c(ident __pyx_v_id, GgiPlotInfo __pyx_v_info, void *__pyx_v_arg) {
  PyObject *__pyx_v_cbobj = NULL;
  PyObject *__pyx_v_cbproc = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("cursorproc_c");

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":709
 * #  --------------------------------------------------------------------------
 * cdef void cursorproc_c(ident id, GgiPlotInfo info, void *arg) with gil:
 *    (cbobj, cbproc) = <object>arg             # <<<<<<<<<<<<<<
 *    cbobj.x      = info.x
 *    cbobj.y      = info.y
 */
  if ((likely(PyTuple_CheckExact(((PyObject *)__pyx_v_arg)))) || (PyList_CheckExact(((PyObject *)__pyx_v_arg)))) {
    PyObject* sequence = ((PyObject *)__pyx_v_arg);
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
        if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_2);
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(((PyObject *)__pyx_v_arg)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_cbobj = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_v_cbproc = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":710
 * cdef void cursorproc_c(ident id, GgiPlotInfo info, void *arg) with gil:
 *    (cbobj, cbproc) = <object>arg
 *    cbobj.x      = info.x             # <<<<<<<<<<<<<<
 *    cbobj.y      = info.y
 *    cbobj.button = info.button
 */
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_info->x); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_cbobj, __pyx_n_s__x, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":711
 *    (cbobj, cbproc) = <object>arg
 *    cbobj.x      = info.x
 *    cbobj.y      = info.y             # <<<<<<<<<<<<<<
 *    cbobj.button = info.button
 *    cbobj.state  = info.state
 */
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_info->y); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_cbobj, __pyx_n_s__y, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":712
 *    cbobj.x      = info.x
 *    cbobj.y      = info.y
 *    cbobj.button = info.button             # <<<<<<<<<<<<<<
 *    cbobj.state  = info.state
 *    cbobj.key    = chr(info.key&255)
 */
  __pyx_t_2 = PyInt_FromLong(__pyx_v_info->button); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_cbobj, __pyx_n_s__button, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":713
 *    cbobj.y      = info.y
 *    cbobj.button = info.button
 *    cbobj.state  = info.state             # <<<<<<<<<<<<<<
 *    cbobj.key    = chr(info.key&255)
 *    cbproc(cbobj)
 */
  __pyx_t_2 = PyInt_FromLong(__pyx_v_info->state); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_v_cbobj, __pyx_n_s__state, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":714
 *    cbobj.button = info.button
 *    cbobj.state  = info.state
 *    cbobj.key    = chr(info.key&255)             # <<<<<<<<<<<<<<
 *    cbproc(cbobj)
 * 
 */
  __pyx_t_2 = PyInt_FromLong((__pyx_v_info->key & 255)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_chr, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_cbobj, __pyx_n_s__key, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":715
 *    cbobj.state  = info.state
 *    cbobj.key    = chr(info.key&255)
 *    cbproc(cbobj)             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_cbobj);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_cbobj);
  __Pyx_GIVEREF(__pyx_v_cbobj);
  __pyx_t_1 = PyObject_Call(__pyx_v_cbproc, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("gipsy.cursorproc_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cbobj);
  __Pyx_XDECREF(__pyx_v_cbproc);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":729
 * #  this information.
 * #
 * cdef char *cvt_name_c(char *name):             # <<<<<<<<<<<<<<
 *    global cvt_name
 *    cdef char *result_c
 */

static char *__pyx_f_5gipsy_cvt_name_c(char *__pyx_v_name) {
  char *__pyx_v_result_c;
  PyObject *__pyx_v_result = NULL;
  char *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  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("cvt_name_c");

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":732
 *    global cvt_name
 *    cdef char *result_c
 *    if cvt_name is None: return name             # <<<<<<<<<<<<<<
 *    result = cvt_name(name)
 *    if result is None:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__cvt_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __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) {
    __pyx_r = __pyx_v_name;
    goto __pyx_L0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":733
 *    cdef char *result_c
 *    if cvt_name is None: return name
 *    result = cvt_name(name)             # <<<<<<<<<<<<<<
 *    if result is None:
 *       result_c = NULL
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__cvt_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":734
 *    if cvt_name is None: return name
 *    result = cvt_name(name)
 *    if result is None:             # <<<<<<<<<<<<<<
 *       result_c = NULL
 *    else:
 */
  __pyx_t_2 = (__pyx_v_result == Py_None);
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":735
 *    result = cvt_name(name)
 *    if result is None:
 *       result_c = NULL             # <<<<<<<<<<<<<<
 *    else:
 *       result_c = result
 */
    __pyx_v_result_c = NULL;
    goto __pyx_L4;
  }
  /*else*/ {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":737
 *       result_c = NULL
 *    else:
 *       result_c = result             # <<<<<<<<<<<<<<
 *    return result_c
 * 
 */
    __pyx_t_5 = PyBytes_AsString(__pyx_v_result); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_result_c = __pyx_t_5;
  }
  __pyx_L4:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":738
 *    else:
 *       result_c = result
 *    return result_c             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_r = __pyx_v_result_c;
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("gipsy.cvt_name_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":744
 * #  --------------------------------------------------------------------------
 * #
 * cdef char *cvt_detail_c(char *name):             # <<<<<<<<<<<<<<
 *    global cvt_detail
 *    cdef char *result_c
 */

static char *__pyx_f_5gipsy_cvt_detail_c(char *__pyx_v_name) {
  char *__pyx_v_result_c;
  PyObject *__pyx_v_result = NULL;
  char *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  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("cvt_detail_c");

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":747
 *    global cvt_detail
 *    cdef char *result_c
 *    if cvt_detail is None: return name             # <<<<<<<<<<<<<<
 *    result = cvt_detail(name)
 *    if result is None:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__cvt_detail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __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) {
    __pyx_r = __pyx_v_name;
    goto __pyx_L0;
    goto __pyx_L3;
  }
  __pyx_L3:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":748
 *    cdef char *result_c
 *    if cvt_detail is None: return name
 *    result = cvt_detail(name)             # <<<<<<<<<<<<<<
 *    if result is None:
 *       result_c = NULL
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__cvt_detail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":749
 *    if cvt_detail is None: return name
 *    result = cvt_detail(name)
 *    if result is None:             # <<<<<<<<<<<<<<
 *       result_c = NULL
 *    else:
 */
  __pyx_t_2 = (__pyx_v_result == Py_None);
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":750
 *    result = cvt_detail(name)
 *    if result is None:
 *       result_c = NULL             # <<<<<<<<<<<<<<
 *    else:
 *       result_c = result
 */
    __pyx_v_result_c = NULL;
    goto __pyx_L4;
  }
  /*else*/ {

    /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":752
 *       result_c = NULL
 *    else:
 *       result_c = result             # <<<<<<<<<<<<<<
 *    return result_c
 */
    __pyx_t_5 = PyBytes_AsString(__pyx_v_result); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_result_c = __pyx_t_5;
  }
  __pyx_L4:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":753
 *    else:
 *       result_c = result
 *    return result_c             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_result_c;
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("gipsy.cvt_detail_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":1
 * cdef void lininterp (float min, float max, int npts, float *v):             # <<<<<<<<<<<<<<
 *    cdef int i, npts_c
 *    cdef float step, lev
 */

static void __pyx_f_5gipsy_lininterp(float __pyx_v_min, float __pyx_v_max, int __pyx_v_npts, float *__pyx_v_v) {
  int __pyx_v_i;
  float __pyx_v_step;
  float __pyx_v_lev;
  __Pyx_RefNannyDeclarations
  float __pyx_t_1;
  long __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lininterp");

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":5
 *    cdef float step, lev
 * 
 *    step = (max-min) / (npts-1)             # <<<<<<<<<<<<<<
 *    lev = min
 *    for i from 0 <= i < npts:
 */
  __pyx_t_1 = (__pyx_v_max - __pyx_v_min);
  __pyx_t_2 = (__pyx_v_npts - 1);
  if (unlikely(__pyx_t_2 == 0)) {
    PyErr_Format(PyExc_ZeroDivisionError, "float division");
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_v_step = (__pyx_t_1 / __pyx_t_2);

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":6
 * 
 *    step = (max-min) / (npts-1)
 *    lev = min             # <<<<<<<<<<<<<<
 *    for i from 0 <= i < npts:
 *       v[i] = lev
 */
  __pyx_v_lev = __pyx_v_min;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":7
 *    step = (max-min) / (npts-1)
 *    lev = min
 *    for i from 0 <= i < npts:             # <<<<<<<<<<<<<<
 *       v[i] = lev
 *       lev  = lev + step
 */
  __pyx_t_3 = __pyx_v_npts;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":8
 *    lev = min
 *    for i from 0 <= i < npts:
 *       v[i] = lev             # <<<<<<<<<<<<<<
 *       lev  = lev + step
 * 
 */
    (__pyx_v_v[__pyx_v_i]) = __pyx_v_lev;

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":9
 *    for i from 0 <= i < npts:
 *       v[i] = lev
 *       lev  = lev + step             # <<<<<<<<<<<<<<
 * 
 * def pgqinf(item):
 */
    __pyx_v_lev = (__pyx_v_lev + __pyx_v_step);
  }

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("gipsy.lininterp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":11
 *       lev  = lev + step
 * 
 * def pgqinf(item):             # <<<<<<<<<<<<<<
 *    cdef fchar value_c
 *    cdef fint  length_c
 */

static PyObject *__pyx_pf_5gipsy_61pgqinf(PyObject *__pyx_self, PyObject *__pyx_v_item); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_61pgqinf = {__Pyx_NAMESTR("pgqinf"), (PyCFunction)__pyx_pf_5gipsy_61pgqinf, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_61pgqinf(PyObject *__pyx_self, PyObject *__pyx_v_item) {
  fchar __pyx_v_value_c;
  fint __pyx_v_length_c;
  char *__pyx_v_value;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgqinf");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":14
 *    cdef fchar value_c
 *    cdef fint  length_c
 *    value_c = newfchar(80) # should be long enough...             # <<<<<<<<<<<<<<
 *    pgqinf_c(tofchar(item), value_c, &length_c)
 *    value_c.a[length_c] = 0
 */
  __pyx_v_value_c = __pyx_f_5gipsy_newfchar(__pyx_int_80);

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":15
 *    cdef fint  length_c
 *    value_c = newfchar(80) # should be long enough...
 *    pgqinf_c(tofchar(item), value_c, &length_c)             # <<<<<<<<<<<<<<
 *    value_c.a[length_c] = 0
 *    value = value_c.a
 */
  pgqinf_c(__pyx_f_5gipsy_tofchar(__pyx_v_item), __pyx_v_value_c, (&__pyx_v_length_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":16
 *    value_c = newfchar(80) # should be long enough...
 *    pgqinf_c(tofchar(item), value_c, &length_c)
 *    value_c.a[length_c] = 0             # <<<<<<<<<<<<<<
 *    value = value_c.a
 *    delfchar(value_c)
 */
  (__pyx_v_value_c.a[__pyx_v_length_c]) = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":17
 *    pgqinf_c(tofchar(item), value_c, &length_c)
 *    value_c.a[length_c] = 0
 *    value = value_c.a             # <<<<<<<<<<<<<<
 *    delfchar(value_c)
 *    return value
 */
  __pyx_v_value = __pyx_v_value_c.a;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":18
 *    value_c.a[length_c] = 0
 *    value = value_c.a
 *    delfchar(value_c)             # <<<<<<<<<<<<<<
 *    return value
 * 
 */
  __pyx_t_1 = __pyx_f_5gipsy_delfchar(__pyx_v_value_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":19
 *    value = value_c.a
 *    delfchar(value_c)
 *    return value             # <<<<<<<<<<<<<<
 * 
 * def pgpoly(x, y):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyBytes_FromString(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqinf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":21
 *    return value
 * 
 * def pgpoly(x, y):             # <<<<<<<<<<<<<<
 *    cdef long x_l, y_l
 *    cdef fint  n_c
 */

static PyObject *__pyx_pf_5gipsy_62pgpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_62pgpoly = {__Pyx_NAMESTR("pgpoly"), (PyCFunction)__pyx_pf_5gipsy_62pgpoly, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_62pgpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  long __pyx_v_x_l;
  long __pyx_v_y_l;
  fint __pyx_v_n_c;
  Py_ssize_t __pyx_v_n;
  PyObject *__pyx_v_xp = NULL;
  PyObject *__pyx_v_yp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  long __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,&__pyx_n_s__y,0};
  __Pyx_RefNannySetupContext("pgpoly");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgpoly", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgpoly") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgpoly", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgpoly", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":24
 *    cdef long x_l, y_l
 *    cdef fint  n_c
 *    n = len(x)             # <<<<<<<<<<<<<<
 *    if n!=len(y):
 *       raise GipsyError, "unequal list lengths"
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_n = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":25
 *    cdef fint  n_c
 *    n = len(x)
 *    if n!=len(y):             # <<<<<<<<<<<<<<
 *       raise GipsyError, "unequal list lengths"
 *    xp = realptr(x, n)
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (__pyx_v_n != __pyx_t_1);
  if (__pyx_t_2) {

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":26
 *    n = len(x)
 *    if n!=len(y):
 *       raise GipsyError, "unequal list lengths"             # <<<<<<<<<<<<<<
 *    xp = realptr(x, n)
 *    yp = realptr(y, n)
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_s_237), 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":27
 *    if n!=len(y):
 *       raise GipsyError, "unequal list lengths"
 *    xp = realptr(x, n)             # <<<<<<<<<<<<<<
 *    yp = realptr(y, n)
 *    x_l = xp.ptr
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_x);
  __Pyx_GIVEREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __pyx_v_xp = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":28
 *       raise GipsyError, "unequal list lengths"
 *    xp = realptr(x, n)
 *    yp = realptr(y, n)             # <<<<<<<<<<<<<<
 *    x_l = xp.ptr
 *    y_l = yp.ptr
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_y);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_y);
  __Pyx_GIVEREF(__pyx_v_y);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_yp = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":29
 *    xp = realptr(x, n)
 *    yp = realptr(y, n)
 *    x_l = xp.ptr             # <<<<<<<<<<<<<<
 *    y_l = yp.ptr
 *    n_c = n
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_xp, __pyx_n_s__ptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_t_5); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_x_l = __pyx_t_6;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":30
 *    yp = realptr(y, n)
 *    x_l = xp.ptr
 *    y_l = yp.ptr             # <<<<<<<<<<<<<<
 *    n_c = n
 *    pgpoly_c(&n_c, <float*>x_l, <float*>y_l)
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_yp, __pyx_n_s__ptr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_t_5); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_y_l = __pyx_t_6;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":31
 *    x_l = xp.ptr
 *    y_l = yp.ptr
 *    n_c = n             # <<<<<<<<<<<<<<
 *    pgpoly_c(&n_c, <float*>x_l, <float*>y_l)
 * 
 */
  __pyx_v_n_c = __pyx_v_n;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":32
 *    y_l = yp.ptr
 *    n_c = n
 *    pgpoly_c(&n_c, <float*>x_l, <float*>y_l)             # <<<<<<<<<<<<<<
 * 
 * def pgqvp(fint units_c):
 */
  pgpoly_c((&__pyx_v_n_c), ((float *)__pyx_v_x_l), ((float *)__pyx_v_y_l));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.pgpoly", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xp);
  __Pyx_XDECREF(__pyx_v_yp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":34
 *    pgpoly_c(&n_c, <float*>x_l, <float*>y_l)
 * 
 * def pgqvp(fint units_c):             # <<<<<<<<<<<<<<
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvp_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
 */

static PyObject *__pyx_pf_5gipsy_63pgqvp(PyObject *__pyx_self, PyObject *__pyx_arg_units_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_63pgqvp = {__Pyx_NAMESTR("pgqvp"), (PyCFunction)__pyx_pf_5gipsy_63pgqvp, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_63pgqvp(PyObject *__pyx_self, PyObject *__pyx_arg_units_c) {
  fint __pyx_v_units_c;
  float __pyx_v_x1_c;
  float __pyx_v_x2_c;
  float __pyx_v_y1_c;
  float __pyx_v_y2_c;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgqvp");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_units_c); {
    __pyx_v_units_c = __Pyx_PyInt_from_py_fint(__pyx_arg_units_c); if (unlikely((__pyx_v_units_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgqvp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":36
 * def pgqvp(fint units_c):
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvp_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)             # <<<<<<<<<<<<<<
 *    return (x1_c, x2_c, y1_c, y2_c)
 * 
 */
  pgqvp_c((&__pyx_v_units_c), (&__pyx_v_x1_c), (&__pyx_v_x2_c), (&__pyx_v_y1_c), (&__pyx_v_y2_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":37
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvp_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
 *    return (x1_c, x2_c, y1_c, y2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqvsz(fint units_c):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x1_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_x2_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y1_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_y2_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = ((PyObject *)__pyx_t_5);
  __pyx_t_5 = 0;
  goto __pyx_L0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.pgqvp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":39
 *    return (x1_c, x2_c, y1_c, y2_c)
 * 
 * def pgqvsz(fint units_c):             # <<<<<<<<<<<<<<
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvsz_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
 */

static PyObject *__pyx_pf_5gipsy_64pgqvsz(PyObject *__pyx_self, PyObject *__pyx_arg_units_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_64pgqvsz = {__Pyx_NAMESTR("pgqvsz"), (PyCFunction)__pyx_pf_5gipsy_64pgqvsz, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_64pgqvsz(PyObject *__pyx_self, PyObject *__pyx_arg_units_c) {
  fint __pyx_v_units_c;
  float __pyx_v_x1_c;
  float __pyx_v_x2_c;
  float __pyx_v_y1_c;
  float __pyx_v_y2_c;
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgqvsz");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_units_c); {
    __pyx_v_units_c = __Pyx_PyInt_from_py_fint(__pyx_arg_units_c); if (unlikely((__pyx_v_units_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgqvsz", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":41
 * def pgqvsz(fint units_c):
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvsz_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)             # <<<<<<<<<<<<<<
 *    return (x1_c, x2_c, y1_c, y2_c)
 * 
 */
  pgqvsz_c((&__pyx_v_units_c), (&__pyx_v_x1_c), (&__pyx_v_x2_c), (&__pyx_v_y1_c), (&__pyx_v_y2_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":42
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvsz_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
 *    return (x1_c, x2_c, y1_c, y2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsclp(fint state_c):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x1_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_x2_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y1_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_y2_c); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = ((PyObject *)__pyx_t_5);
  __pyx_t_5 = 0;
  goto __pyx_L0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.pgqvsz", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":44
 *    return (x1_c, x2_c, y1_c, y2_c)
 * 
 * def pgsclp(fint state_c):             # <<<<<<<<<<<<<<
 *    pgsclp_c(&state_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_65pgsclp(PyObject *__pyx_self, PyObject *__pyx_arg_state_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_65pgsclp = {__Pyx_NAMESTR("pgsclp"), (PyCFunction)__pyx_pf_5gipsy_65pgsclp, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_65pgsclp(PyObject *__pyx_self, PyObject *__pyx_arg_state_c) {
  fint __pyx_v_state_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgsclp");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_state_c); {
    __pyx_v_state_c = __Pyx_PyInt_from_py_fint(__pyx_arg_state_c); if (unlikely((__pyx_v_state_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsclp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":45
 * 
 * def pgsclp(fint state_c):
 *    pgsclp_c(&state_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqclp():
 */
  pgsclp_c((&__pyx_v_state_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":47
 *    pgsclp_c(&state_c)
 * 
 * def pgqclp():             # <<<<<<<<<<<<<<
 *    cdef fint state_c
 *    pgqclp_c(&state_c)
 */

static PyObject *__pyx_pf_5gipsy_66pgqclp(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_66pgqclp = {__Pyx_NAMESTR("pgqclp"), (PyCFunction)__pyx_pf_5gipsy_66pgqclp, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_66pgqclp(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_state_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("pgqclp");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":49
 * def pgqclp():
 *    cdef fint state_c
 *    pgqclp_c(&state_c)             # <<<<<<<<<<<<<<
 *    return state_c
 * 
 */
  pgqclp_c((&__pyx_v_state_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":50
 *    cdef fint state_c
 *    pgqclp_c(&state_c)
 *    return state_c             # <<<<<<<<<<<<<<
 * 
 * def pgqtxt(float x_c, float y_c, float angle_c, float just_c, text):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_state_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqclp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":52
 *    return state_c
 * 
 * def pgqtxt(float x_c, float y_c, float angle_c, float just_c, text):             # <<<<<<<<<<<<<<
 *    cdef float xbox_c[4], ybox_c[4]
 *    pgqtxt_c(&x_c, &y_c, &angle_c, &just_c, tofchar(text), xbox_c, ybox_c)
 */

static PyObject *__pyx_pf_5gipsy_67pgqtxt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_67pgqtxt = {__Pyx_NAMESTR("pgqtxt"), (PyCFunction)__pyx_pf_5gipsy_67pgqtxt, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_67pgqtxt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  float __pyx_v_angle_c;
  float __pyx_v_just_c;
  PyObject *__pyx_v_text = 0;
  float __pyx_v_xbox_c[4];
  float __pyx_v_ybox_c[4];
  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;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x_c,&__pyx_n_s__y_c,&__pyx_n_s__angle_c,&__pyx_n_s__just_c,&__pyx_n_s__text,0};
  __Pyx_RefNannySetupContext("pgqtxt");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgqtxt", 1, 5, 5, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__angle_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgqtxt", 1, 5, 5, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__just_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgqtxt", 1, 5, 5, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgqtxt", 1, 5, 5, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgqtxt") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_angle_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_angle_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_just_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_just_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_text = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgqtxt", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgqtxt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":54
 * def pgqtxt(float x_c, float y_c, float angle_c, float just_c, text):
 *    cdef float xbox_c[4], ybox_c[4]
 *    pgqtxt_c(&x_c, &y_c, &angle_c, &just_c, tofchar(text), xbox_c, ybox_c)             # <<<<<<<<<<<<<<
 *    result = ( ( xbox_c[0], ybox_c[0] ),
 *               ( xbox_c[1], ybox_c[1] ),
 */
  pgqtxt_c((&__pyx_v_x_c), (&__pyx_v_y_c), (&__pyx_v_angle_c), (&__pyx_v_just_c), __pyx_f_5gipsy_tofchar(__pyx_v_text), __pyx_v_xbox_c, __pyx_v_ybox_c);

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":55
 *    cdef float xbox_c[4], ybox_c[4]
 *    pgqtxt_c(&x_c, &y_c, &angle_c, &just_c, tofchar(text), xbox_c, ybox_c)
 *    result = ( ( xbox_c[0], ybox_c[0] ),             # <<<<<<<<<<<<<<
 *               ( xbox_c[1], ybox_c[1] ),
 *               ( xbox_c[2], ybox_c[2] ),
 */
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_xbox_c[0])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_ybox_c[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":56
 *    pgqtxt_c(&x_c, &y_c, &angle_c, &just_c, tofchar(text), xbox_c, ybox_c)
 *    result = ( ( xbox_c[0], ybox_c[0] ),
 *               ( xbox_c[1], ybox_c[1] ),             # <<<<<<<<<<<<<<
 *               ( xbox_c[2], ybox_c[2] ),
 *               ( xbox_c[3], ybox_c[3] ) )
 */
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_xbox_c[1])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_ybox_c[1])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":57
 *    result = ( ( xbox_c[0], ybox_c[0] ),
 *               ( xbox_c[1], ybox_c[1] ),
 *               ( xbox_c[2], ybox_c[2] ),             # <<<<<<<<<<<<<<
 *               ( xbox_c[3], ybox_c[3] ) )
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_xbox_c[2])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_ybox_c[2])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":58
 *               ( xbox_c[1], ybox_c[1] ),
 *               ( xbox_c[2], ybox_c[2] ),
 *               ( xbox_c[3], ybox_c[3] ) )             # <<<<<<<<<<<<<<
 * 
 * def pgconf(a, idim, jdim, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
 */
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_xbox_c[3])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_ybox_c[3])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_3));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_t_4));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_t_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_t_6));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("gipsy.pgqtxt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":60
 *               ( xbox_c[3], ybox_c[3] ) )
 * 
 * def pgconf(a, idim, jdim, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            float c1_c, float c2_c, tr):
 *    cdef fint idim_c, jdim_c
 */

static PyObject *__pyx_pf_5gipsy_68pgconf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_68pgconf = {__Pyx_NAMESTR("pgconf"), (PyCFunction)__pyx_pf_5gipsy_68pgconf, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_68pgconf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_idim = 0;
  PyObject *__pyx_v_jdim = 0;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  float __pyx_v_c1_c;
  float __pyx_v_c2_c;
  PyObject *__pyx_v_tr = 0;
  fint __pyx_v_idim_c;
  fint __pyx_v_jdim_c;
  long __pyx_v_a_l;
  long __pyx_v_tr_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  long __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__idim,&__pyx_n_s__jdim,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__c1_c,&__pyx_n_s__c2_c,&__pyx_n_s__tr,0};
  __Pyx_RefNannySetupContext("pgconf");
  __pyx_self = __pyx_self;
  {
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__idim);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jdim);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c1_c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c2_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgconf") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_a = values[0];
    __pyx_v_idim = values[1];
    __pyx_v_jdim = values[2];
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_c1_c = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_c1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_c2_c = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_c2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tr = values[9];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgconf", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgconf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":64
 *    cdef fint idim_c, jdim_c
 *    cdef long a_l, tr_l
 *    idim_c = idim             # <<<<<<<<<<<<<<
 *    jdim_c = jdim
 *    a_ptr  = realptr(a, idim*jdim); a_l = a_ptr.ptr
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_idim); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_idim_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":65
 *    cdef long a_l, tr_l
 *    idim_c = idim
 *    jdim_c = jdim             # <<<<<<<<<<<<<<
 *    a_ptr  = realptr(a, idim*jdim); a_l = a_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_jdim); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_jdim_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":66
 *    idim_c = idim
 *    jdim_c = jdim
 *    a_ptr  = realptr(a, idim*jdim); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgconf_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_idim, __pyx_v_jdim); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_a_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a_l = __pyx_t_5;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":67
 *    jdim_c = jdim
 *    a_ptr  = realptr(a, idim*jdim); a_l = a_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgconf_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             &c1_c, &c2_c, <float*>tr_l)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_tr_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_tr_l = __pyx_t_5;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":69
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgconf_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             &c1_c, &c2_c, <float*>tr_l)             # <<<<<<<<<<<<<<
 * 
 * def pgarro(float x1_c, float y1_c, float x2_c, float y2_c):
 */
  pgconf_c(((float *)__pyx_v_a_l), (&__pyx_v_idim_c), (&__pyx_v_jdim_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), (&__pyx_v_c1_c), (&__pyx_v_c2_c), ((float *)__pyx_v_tr_l));

  __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("gipsy.pgconf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":71
 *             &c1_c, &c2_c, <float*>tr_l)
 * 
 * def pgarro(float x1_c, float y1_c, float x2_c, float y2_c):             # <<<<<<<<<<<<<<
 *    pgarro_c(&x1_c, &y1_c, &x2_c, &y2_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_69pgarro(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_69pgarro = {__Pyx_NAMESTR("pgarro"), (PyCFunction)__pyx_pf_5gipsy_69pgarro, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_69pgarro(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x1_c;
  float __pyx_v_y1_c;
  float __pyx_v_x2_c;
  float __pyx_v_y2_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x1_c,&__pyx_n_s__y1_c,&__pyx_n_s__x2_c,&__pyx_n_s__y2_c,0};
  __Pyx_RefNannySetupContext("pgarro");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x1_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y1_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgarro", 1, 4, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x2_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgarro", 1, 4, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y2_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgarro", 1, 4, 4, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgarro") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x1_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y1_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_x2_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y2_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_y2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgarro", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgarro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":72
 * 
 * def pgarro(float x1_c, float y1_c, float x2_c, float y2_c):
 *    pgarro_c(&x1_c, &y1_c, &x2_c, &y2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgask(bool t_c):
 */
  pgarro_c((&__pyx_v_x1_c), (&__pyx_v_y1_c), (&__pyx_v_x2_c), (&__pyx_v_y2_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":74
 *    pgarro_c(&x1_c, &y1_c, &x2_c, &y2_c)
 * 
 * def pgask(bool t_c):             # <<<<<<<<<<<<<<
 *    pgask_c(&t_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_70pgask(PyObject *__pyx_self, PyObject *__pyx_arg_t_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_70pgask = {__Pyx_NAMESTR("pgask"), (PyCFunction)__pyx_pf_5gipsy_70pgask, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_70pgask(PyObject *__pyx_self, PyObject *__pyx_arg_t_c) {
  bool __pyx_v_t_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgask");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_t_c); {
    __pyx_v_t_c = __Pyx_PyInt_from_py_bool(__pyx_arg_t_c); if (unlikely((__pyx_v_t_c == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgask", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":75
 * 
 * def pgask(bool t_c):
 *    pgask_c(&t_c)             # <<<<<<<<<<<<<<
 * 
 * def pgband(fint mode_c, fint posn_c=0, float xref_c=0.0, float yref_c=0.0):
 */
  pgask_c((&__pyx_v_t_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":77
 *    pgask_c(&t_c)
 * 
 * def pgband(fint mode_c, fint posn_c=0, float xref_c=0.0, float yref_c=0.0):             # <<<<<<<<<<<<<<
 *    cdef float x_c, y_c
 *    cdef fchar ch_c
 */

static PyObject *__pyx_pf_5gipsy_71pgband(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_71pgband = {__Pyx_NAMESTR("pgband"), (PyCFunction)__pyx_pf_5gipsy_71pgband, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_71pgband(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_mode_c;
  fint __pyx_v_posn_c;
  float __pyx_v_xref_c;
  float __pyx_v_yref_c;
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  fchar __pyx_v_ch_c;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__mode_c,&__pyx_n_s__posn_c,&__pyx_n_s__xref_c,&__pyx_n_s__yref_c,0};
  __Pyx_RefNannySetupContext("pgband");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mode_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__posn_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xref_c);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yref_c);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgband") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_mode_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_mode_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    if (values[1]) {
      __pyx_v_posn_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_posn_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_posn_c = ((fint)0);
    }
    if (values[2]) {
      __pyx_v_xref_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_xref_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_xref_c = ((float)0.0);
    }
    if (values[3]) {
      __pyx_v_yref_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_yref_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_yref_c = ((float)0.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgband", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgband", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":80
 *    cdef float x_c, y_c
 *    cdef fchar ch_c
 *    ch_c = tofchar(' ')             # <<<<<<<<<<<<<<
 *    pgband_c(&mode_c, &posn_c, &xref_c, &yref_c, &x_c, &y_c, ch_c)
 *    return (x_c, y_c, ch_c.a)
 */
  __pyx_t_1 = ((PyObject *)__pyx_kp_s_14);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_ch_c = __pyx_f_5gipsy_tofchar(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":81
 *    cdef fchar ch_c
 *    ch_c = tofchar(' ')
 *    pgband_c(&mode_c, &posn_c, &xref_c, &yref_c, &x_c, &y_c, ch_c)             # <<<<<<<<<<<<<<
 *    return (x_c, y_c, ch_c.a)
 * 
 */
  pgband_c((&__pyx_v_mode_c), (&__pyx_v_posn_c), (&__pyx_v_xref_c), (&__pyx_v_yref_c), (&__pyx_v_x_c), (&__pyx_v_y_c), __pyx_v_ch_c);

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":82
 *    ch_c = tofchar(' ')
 *    pgband_c(&mode_c, &posn_c, &xref_c, &yref_c, &x_c, &y_c, ch_c)
 *    return (x_c, y_c, ch_c.a)             # <<<<<<<<<<<<<<
 * 
 * def pgbbuf():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyBytes_FromString(__pyx_v_ch_c.a); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_t_3));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.pgband", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":84
 *    return (x_c, y_c, ch_c.a)
 * 
 * def pgbbuf():             # <<<<<<<<<<<<<<
 *    pgbbuf_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_72pgbbuf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_72pgbbuf = {__Pyx_NAMESTR("pgbbuf"), (PyCFunction)__pyx_pf_5gipsy_72pgbbuf, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_72pgbbuf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgbbuf");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":85
 * 
 * def pgbbuf():
 *    pgbbuf_c()             # <<<<<<<<<<<<<<
 * 
 * def pgbeg(device, fint xnsub_c=1, fint ynsub_c=1):
 */
  pgbbuf_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":87
 *    pgbbuf_c()
 * 
 * def pgbeg(device, fint xnsub_c=1, fint ynsub_c=1):             # <<<<<<<<<<<<<<
 *    cdef fint zero_c
 *    zero_c = 0
 */

static PyObject *__pyx_pf_5gipsy_73pgbeg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_73pgbeg = {__Pyx_NAMESTR("pgbeg"), (PyCFunction)__pyx_pf_5gipsy_73pgbeg, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_73pgbeg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_device = 0;
  fint __pyx_v_xnsub_c;
  fint __pyx_v_ynsub_c;
  fint __pyx_v_zero_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__device,&__pyx_n_s__xnsub_c,&__pyx_n_s__ynsub_c,0};
  __Pyx_RefNannySetupContext("pgbeg");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__device);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xnsub_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ynsub_c);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgbeg") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_device = values[0];
    if (values[1]) {
      __pyx_v_xnsub_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_xnsub_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_xnsub_c = ((fint)1);
    }
    if (values[2]) {
      __pyx_v_ynsub_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_ynsub_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ynsub_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgbeg", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgbeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":89
 * def pgbeg(device, fint xnsub_c=1, fint ynsub_c=1):
 *    cdef fint zero_c
 *    zero_c = 0             # <<<<<<<<<<<<<<
 *    pgbeg_c(&zero_c, tofchar(device), &xnsub_c, &ynsub_c)
 * 
 */
  __pyx_v_zero_c = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":90
 *    cdef fint zero_c
 *    zero_c = 0
 *    pgbeg_c(&zero_c, tofchar(device), &xnsub_c, &ynsub_c)             # <<<<<<<<<<<<<<
 * 
 * def pgbin(fint nbin_c, x, data, bool center_c=1):
 */
  pgbeg_c((&__pyx_v_zero_c), __pyx_f_5gipsy_tofchar(__pyx_v_device), (&__pyx_v_xnsub_c), (&__pyx_v_ynsub_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":92
 *    pgbeg_c(&zero_c, tofchar(device), &xnsub_c, &ynsub_c)
 * 
 * def pgbin(fint nbin_c, x, data, bool center_c=1):             # <<<<<<<<<<<<<<
 *    cdef long x_l, data_l
 *    x_ptr = realptr(x, nbin_c); x_l = x_ptr.ptr
 */

static PyObject *__pyx_pf_5gipsy_74pgbin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_74pgbin = {__Pyx_NAMESTR("pgbin"), (PyCFunction)__pyx_pf_5gipsy_74pgbin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_74pgbin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_nbin_c;
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_data = 0;
  bool __pyx_v_center_c;
  long __pyx_v_x_l;
  long __pyx_v_data_l;
  PyObject *__pyx_v_x_ptr = NULL;
  PyObject *__pyx_v_data_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__nbin_c,&__pyx_n_s__x,&__pyx_n_s__data,&__pyx_n_s__center_c,0};
  __Pyx_RefNannySetupContext("pgbin");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nbin_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbin", 0, 3, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbin", 0, 3, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__center_c);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgbin") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_nbin_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_nbin_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_x = values[1];
    __pyx_v_data = values[2];
    if (values[3]) {
      __pyx_v_center_c = __Pyx_PyInt_from_py_bool(values[3]); if (unlikely((__pyx_v_center_c == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_center_c = ((bool)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgbin", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgbin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":94
 * def pgbin(fint nbin_c, x, data, bool center_c=1):
 *    cdef long x_l, data_l
 *    x_ptr = realptr(x, nbin_c); x_l = x_ptr.ptr             # <<<<<<<<<<<<<<
 *    data_ptr = realptr(data, nbin_c); data_l = data_ptr.ptr
 *    pgbin_c(&nbin_c, <float*>x_l, <float*>data_l, &center_c)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_nbin_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_x);
  __Pyx_GIVEREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_x_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_x_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_x_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":95
 *    cdef long x_l, data_l
 *    x_ptr = realptr(x, nbin_c); x_l = x_ptr.ptr
 *    data_ptr = realptr(data, nbin_c); data_l = data_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgbin_c(&nbin_c, <float*>x_l, <float*>data_l, &center_c)
 * 
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nbin_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_data);
  __Pyx_GIVEREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_data_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_data_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_data_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":96
 *    x_ptr = realptr(x, nbin_c); x_l = x_ptr.ptr
 *    data_ptr = realptr(data, nbin_c); data_l = data_ptr.ptr
 *    pgbin_c(&nbin_c, <float*>x_l, <float*>data_l, &center_c)             # <<<<<<<<<<<<<<
 * 
 * # only simplified interface - the others are not implemented
 */
  pgbin_c((&__pyx_v_nbin_c), ((float *)__pyx_v_x_l), ((float *)__pyx_v_data_l), (&__pyx_v_center_c));

  __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("gipsy.pgbin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x_ptr);
  __Pyx_XDECREF(__pyx_v_data_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":100
 * # only simplified interface - the others are not implemented
 * #
 * def pgbin_s(data, float x1_c=0.0, float x2_c=0.0, bool center_c=False):             # <<<<<<<<<<<<<<
 *    cdef fint  nbin_c
 *    cdef float *x_c, dummy1, dummy2
 */

static PyObject *__pyx_pf_5gipsy_75pgbin_s(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_75pgbin_s = {__Pyx_NAMESTR("pgbin_s"), (PyCFunction)__pyx_pf_5gipsy_75pgbin_s, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_75pgbin_s(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_data = 0;
  float __pyx_v_x1_c;
  float __pyx_v_x2_c;
  bool __pyx_v_center_c;
  fint __pyx_v_nbin_c;
  float *__pyx_v_x_c;
  float __pyx_v_dummy1;
  float __pyx_v_dummy2;
  long __pyx_v_data_l;
  PyObject *__pyx_v_data_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  fint __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__data,&__pyx_n_s__x1_c,&__pyx_n_s__x2_c,&__pyx_n_s__center_c,0};
  __Pyx_RefNannySetupContext("pgbin_s");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x1_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x2_c);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__center_c);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgbin_s") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_data = values[0];
    if (values[1]) {
      __pyx_v_x1_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_x1_c = ((float)0.0);
    }
    if (values[2]) {
      __pyx_v_x2_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_x2_c = ((float)0.0);
    }
    if (values[3]) {
      __pyx_v_center_c = __Pyx_PyInt_from_py_bool(values[3]); if (unlikely((__pyx_v_center_c == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_center_c = ((bool)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgbin_s", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgbin_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":104
 *    cdef float *x_c, dummy1, dummy2
 *    cdef long data_l
 *    data_ptr = realptr(data); data_l = data_ptr.ptr             # <<<<<<<<<<<<<<
 *    nbin_c = data_ptr.n
 *    x_c = <float*>malloc(nbin_c*sizeof(float))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data);
  __Pyx_GIVEREF(__pyx_v_data);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_data_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_data_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_data_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":105
 *    cdef long data_l
 *    data_ptr = realptr(data); data_l = data_ptr.ptr
 *    nbin_c = data_ptr.n             # <<<<<<<<<<<<<<
 *    x_c = <float*>malloc(nbin_c*sizeof(float))
 *    if x1_c==x2_c:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_data_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_5 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_nbin_c = __pyx_t_5;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":106
 *    data_ptr = realptr(data); data_l = data_ptr.ptr
 *    nbin_c = data_ptr.n
 *    x_c = <float*>malloc(nbin_c*sizeof(float))             # <<<<<<<<<<<<<<
 *    if x1_c==x2_c:
 *       pgqwin_c(&x1_c, &x2_c, &dummy1, &dummy2)
 */
  __pyx_v_x_c = ((float *)malloc((__pyx_v_nbin_c * (sizeof(float)))));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":107
 *    nbin_c = data_ptr.n
 *    x_c = <float*>malloc(nbin_c*sizeof(float))
 *    if x1_c==x2_c:             # <<<<<<<<<<<<<<
 *       pgqwin_c(&x1_c, &x2_c, &dummy1, &dummy2)
 *    lininterp(x1_c, x2_c, nbin_c, x_c)
 */
  __pyx_t_6 = (__pyx_v_x1_c == __pyx_v_x2_c);
  if (__pyx_t_6) {

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":108
 *    x_c = <float*>malloc(nbin_c*sizeof(float))
 *    if x1_c==x2_c:
 *       pgqwin_c(&x1_c, &x2_c, &dummy1, &dummy2)             # <<<<<<<<<<<<<<
 *    lininterp(x1_c, x2_c, nbin_c, x_c)
 * 
 */
    pgqwin_c((&__pyx_v_x1_c), (&__pyx_v_x2_c), (&__pyx_v_dummy1), (&__pyx_v_dummy2));
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":109
 *    if x1_c==x2_c:
 *       pgqwin_c(&x1_c, &x2_c, &dummy1, &dummy2)
 *    lininterp(x1_c, x2_c, nbin_c, x_c)             # <<<<<<<<<<<<<<
 * 
 *    pgbin_c(&nbin_c, x_c, <float*>data_l, &center_c)
 */
  __pyx_f_5gipsy_lininterp(__pyx_v_x1_c, __pyx_v_x2_c, __pyx_v_nbin_c, __pyx_v_x_c);

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":111
 *    lininterp(x1_c, x2_c, nbin_c, x_c)
 * 
 *    pgbin_c(&nbin_c, x_c, <float*>data_l, &center_c)             # <<<<<<<<<<<<<<
 *    free(x_c)
 * 
 */
  pgbin_c((&__pyx_v_nbin_c), __pyx_v_x_c, ((float *)__pyx_v_data_l), (&__pyx_v_center_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":112
 * 
 *    pgbin_c(&nbin_c, x_c, <float*>data_l, &center_c)
 *    free(x_c)             # <<<<<<<<<<<<<<
 * 
 * def pgbox(xopt='ABCGNTS', float xtick_c=0.0, fint nxsub_c=0,
 */
  free(__pyx_v_x_c);

  __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("gipsy.pgbin_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_data_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":114
 *    free(x_c)
 * 
 * def pgbox(xopt='ABCGNTS', float xtick_c=0.0, fint nxsub_c=0,             # <<<<<<<<<<<<<<
 *           yopt='ABCGNTS', float ytick_c=0.0, fint nysub_c=0):
 *    pgbox_c(tofchar(xopt), &xtick_c, &nxsub_c,
 */

static PyObject *__pyx_pf_5gipsy_76pgbox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_76pgbox = {__Pyx_NAMESTR("pgbox"), (PyCFunction)__pyx_pf_5gipsy_76pgbox, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_76pgbox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_xopt = 0;
  float __pyx_v_xtick_c;
  fint __pyx_v_nxsub_c;
  PyObject *__pyx_v_yopt = 0;
  float __pyx_v_ytick_c;
  fint __pyx_v_nysub_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xopt,&__pyx_n_s__xtick_c,&__pyx_n_s__nxsub_c,&__pyx_n_s__yopt,&__pyx_n_s__ytick_c,&__pyx_n_s__nysub_c,0};
  __Pyx_RefNannySetupContext("pgbox");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    values[0] = ((PyObject *)__pyx_n_s__ABCGNTS);
    values[3] = ((PyObject *)__pyx_n_s__ABCGNTS);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xopt);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xtick_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nxsub_c);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__yopt);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ytick_c);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nysub_c);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgbox") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_xopt = values[0];
    if (values[1]) {
      __pyx_v_xtick_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_xtick_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_xtick_c = ((float)0.0);
    }
    if (values[2]) {
      __pyx_v_nxsub_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_nxsub_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_nxsub_c = ((fint)0);
    }
    __pyx_v_yopt = values[3];
    if (values[4]) {
      __pyx_v_ytick_c = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ytick_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {

      /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":115
 * 
 * def pgbox(xopt='ABCGNTS', float xtick_c=0.0, fint nxsub_c=0,
 *           yopt='ABCGNTS', float ytick_c=0.0, fint nysub_c=0):             # <<<<<<<<<<<<<<
 *    pgbox_c(tofchar(xopt), &xtick_c, &nxsub_c,
 *            tofchar(yopt), &ytick_c, &nysub_c)
 */
      __pyx_v_ytick_c = ((float)0.0);
    }
    if (values[5]) {
      __pyx_v_nysub_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_nysub_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_nysub_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgbox", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgbox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":117
 *           yopt='ABCGNTS', float ytick_c=0.0, fint nysub_c=0):
 *    pgbox_c(tofchar(xopt), &xtick_c, &nxsub_c,
 *            tofchar(yopt), &ytick_c, &nysub_c)             # <<<<<<<<<<<<<<
 * 
 * def pgcirc(float x_c, float y_c, float radius_c):
 */
  pgbox_c(__pyx_f_5gipsy_tofchar(__pyx_v_xopt), (&__pyx_v_xtick_c), (&__pyx_v_nxsub_c), __pyx_f_5gipsy_tofchar(__pyx_v_yopt), (&__pyx_v_ytick_c), (&__pyx_v_nysub_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":119
 *            tofchar(yopt), &ytick_c, &nysub_c)
 * 
 * def pgcirc(float x_c, float y_c, float radius_c):             # <<<<<<<<<<<<<<
 *    pgcirc_c(&x_c, &y_c, &radius_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_77pgcirc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_77pgcirc = {__Pyx_NAMESTR("pgcirc"), (PyCFunction)__pyx_pf_5gipsy_77pgcirc, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_77pgcirc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  float __pyx_v_radius_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x_c,&__pyx_n_s__y_c,&__pyx_n_s__radius_c,0};
  __Pyx_RefNannySetupContext("pgcirc");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcirc", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radius_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcirc", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgcirc") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_radius_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_radius_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgcirc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgcirc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":120
 * 
 * def pgcirc(float x_c, float y_c, float radius_c):
 *    pgcirc_c(&x_c, &y_c, &radius_c)             # <<<<<<<<<<<<<<
 * 
 * def pgclos():
 */
  pgcirc_c((&__pyx_v_x_c), (&__pyx_v_y_c), (&__pyx_v_radius_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":122
 *    pgcirc_c(&x_c, &y_c, &radius_c)
 * 
 * def pgclos():             # <<<<<<<<<<<<<<
 *    pgclos_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_78pgclos(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_78pgclos = {__Pyx_NAMESTR("pgclos"), (PyCFunction)__pyx_pf_5gipsy_78pgclos, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_78pgclos(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgclos");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":123
 * 
 * def pgclos():
 *    pgclos_c()             # <<<<<<<<<<<<<<
 * 
 * def pgconb(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
 */
  pgclos_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":125
 *    pgclos_c()
 * 
 * def pgconb(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            c, fint nc_c, tr, float blank_c=0.0):
 *    cdef long a_l, c_l, tr_l
 */

static PyObject *__pyx_pf_5gipsy_79pgconb(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_79pgconb = {__Pyx_NAMESTR("pgconb"), (PyCFunction)__pyx_pf_5gipsy_79pgconb, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_79pgconb(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  fint __pyx_v_id_c;
  fint __pyx_v_jd_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  PyObject *__pyx_v_c = 0;
  fint __pyx_v_nc_c;
  PyObject *__pyx_v_tr = 0;
  float __pyx_v_blank_c;
  long __pyx_v_a_l;
  long __pyx_v_c_l;
  long __pyx_v_tr_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_c_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__id_c,&__pyx_n_s__jd_c,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__c,&__pyx_n_s__nc_c,&__pyx_n_s__tr,&__pyx_n_s__blank_c,0};
  __Pyx_RefNannySetupContext("pgconb");
  __pyx_self = __pyx_self;
  {
    PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__id_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jd_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 10:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blank_c);
          if (value) { values[10] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgconb") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_a = values[0];
    __pyx_v_id_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_id_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_jd_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_jd_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_c = values[7];
    __pyx_v_nc_c = __Pyx_PyInt_from_py_fint(values[8]); if (unlikely((__pyx_v_nc_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tr = values[9];
    if (values[10]) {
      __pyx_v_blank_c = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_blank_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {

      /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":126
 * 
 * def pgconb(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
 *            c, fint nc_c, tr, float blank_c=0.0):             # <<<<<<<<<<<<<<
 *    cdef long a_l, c_l, tr_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 */
      __pyx_v_blank_c = ((float)0.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgconb", 0, 10, 11, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgconb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":128
 *            c, fint nc_c, tr, float blank_c=0.0):
 *    cdef long a_l, c_l, tr_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_jd_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_builtin_id, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_a_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":129
 *    cdef long a_l, c_l, tr_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgconb_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_nc_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_c);
  __Pyx_GIVEREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_c_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_c_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":130
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgconb_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, &nc_c, <float*>tr_l, &blank_c)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_tr_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_tr_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":132
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgconb_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, &nc_c, <float*>tr_l, &blank_c)             # <<<<<<<<<<<<<<
 * 
 * def pgconl(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
 */
  pgconb_c(((float *)__pyx_v_a_l), (&__pyx_v_id_c), (&__pyx_v_jd_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), ((float *)__pyx_v_c_l), (&__pyx_v_nc_c), ((float *)__pyx_v_tr_l), (&__pyx_v_blank_c));

  __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("gipsy.pgconb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_c_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":134
 *             <float*>c_l, &nc_c, <float*>tr_l, &blank_c)
 * 
 * def pgconl(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            c, tr, label, fint intval_c, fint minint_c):
 *    cdef long a_l, tr_l, c_l
 */

static PyObject *__pyx_pf_5gipsy_80pgconl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_80pgconl = {__Pyx_NAMESTR("pgconl"), (PyCFunction)__pyx_pf_5gipsy_80pgconl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_80pgconl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  fint __pyx_v_id_c;
  fint __pyx_v_jd_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  PyObject *__pyx_v_c = 0;
  PyObject *__pyx_v_tr = 0;
  PyObject *__pyx_v_label = 0;
  fint __pyx_v_intval_c;
  fint __pyx_v_minint_c;
  long __pyx_v_a_l;
  long __pyx_v_tr_l;
  long __pyx_v_c_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_c_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__id_c,&__pyx_n_s__jd_c,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__c,&__pyx_n_s__tr,&__pyx_n_s__label,&__pyx_n_s__intval_c,&__pyx_n_s__minint_c,0};
  __Pyx_RefNannySetupContext("pgconl");
  __pyx_self = __pyx_self;
  {
    PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__id_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jd_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__label);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 10:
        values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__intval_c);
        if (likely(values[10])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 10); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 11:
        values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__minint_c);
        if (likely(values[11])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, 11); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgconl") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
    }
    __pyx_v_a = values[0];
    __pyx_v_id_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_id_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_jd_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_jd_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_c = values[7];
    __pyx_v_tr = values[8];
    __pyx_v_label = values[9];
    __pyx_v_intval_c = __Pyx_PyInt_from_py_fint(values[10]); if (unlikely((__pyx_v_intval_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_minint_c = __Pyx_PyInt_from_py_fint(values[11]); if (unlikely((__pyx_v_minint_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgconl", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgconl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":137
 *            c, tr, label, fint intval_c, fint minint_c):
 *    cdef long a_l, tr_l, c_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    c_ptr  = realptr(c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_jd_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_builtin_id, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_a_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":138
 *    cdef long a_l, tr_l, c_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c); c_l = c_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgconl_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_c);
  __Pyx_GIVEREF(__pyx_v_c);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_c_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_c_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":139
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgconl_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, <float*>tr_l, tofchar(label), &intval_c, &minint_c)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_tr_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_tr_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":141
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgconl_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, <float*>tr_l, tofchar(label), &intval_c, &minint_c)             # <<<<<<<<<<<<<<
 * 
 * def pgcons(a, id, jd, i1, i2, j1, j2, c, nc, tr):
 */
  pgconl_c(((float *)__pyx_v_a_l), (&__pyx_v_id_c), (&__pyx_v_jd_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), ((float *)__pyx_v_c_l), ((float *)__pyx_v_tr_l), __pyx_f_5gipsy_tofchar(__pyx_v_label), (&__pyx_v_intval_c), (&__pyx_v_minint_c));

  __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("gipsy.pgconl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_c_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":143
 *             <float*>c_l, <float*>tr_l, tofchar(label), &intval_c, &minint_c)
 * 
 * def pgcons(a, id, jd, i1, i2, j1, j2, c, nc, tr):             # <<<<<<<<<<<<<<
 *    cdef long a_l, c_l, tr_l
 *    cdef fint id_c, jd_c, i1_c, i2_c, j1_c, j2_c, nc_c
 */

static PyObject *__pyx_pf_5gipsy_81pgcons(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_81pgcons = {__Pyx_NAMESTR("pgcons"), (PyCFunction)__pyx_pf_5gipsy_81pgcons, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_81pgcons(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_id = 0;
  PyObject *__pyx_v_jd = 0;
  PyObject *__pyx_v_i1 = 0;
  PyObject *__pyx_v_i2 = 0;
  PyObject *__pyx_v_j1 = 0;
  PyObject *__pyx_v_j2 = 0;
  PyObject *__pyx_v_c = 0;
  PyObject *__pyx_v_nc = 0;
  PyObject *__pyx_v_tr = 0;
  long __pyx_v_a_l;
  long __pyx_v_c_l;
  long __pyx_v_tr_l;
  fint __pyx_v_id_c;
  fint __pyx_v_jd_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  fint __pyx_v_nc_c;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_c_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  fint __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  long __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__id,&__pyx_n_s__jd,&__pyx_n_s__i1,&__pyx_n_s__i2,&__pyx_n_s__j1,&__pyx_n_s__j2,&__pyx_n_s__c,&__pyx_n_s__nc,&__pyx_n_s__tr,0};
  __Pyx_RefNannySetupContext("pgcons");
  __pyx_self = __pyx_self;
  {
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__id);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jd);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgcons") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_a = values[0];
    __pyx_v_id = values[1];
    __pyx_v_jd = values[2];
    __pyx_v_i1 = values[3];
    __pyx_v_i2 = values[4];
    __pyx_v_j1 = values[5];
    __pyx_v_j2 = values[6];
    __pyx_v_c = values[7];
    __pyx_v_nc = values[8];
    __pyx_v_tr = values[9];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgcons", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_id);
  __Pyx_INCREF(__pyx_v_jd);

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":146
 *    cdef long a_l, c_l, tr_l
 *    cdef fint id_c, jd_c, i1_c, i2_c, j1_c, j2_c, nc_c
 *    id_c=id, jd_c=jd, i1_c=i1; i2_c=i2; j1_c=j1; j2_c=j2; nc_c=nc             # <<<<<<<<<<<<<<
 *    a_ptr  = realptr(a, id*jd); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc); c_l = c_ptr.ptr
 */
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_i1); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_id_c = __pyx_t_1;
  if ((likely(PyTuple_CheckExact(__pyx_v_i1))) || (PyList_CheckExact(__pyx_v_i1))) {
    PyObject* sequence = __pyx_v_i1;
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
        if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __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 {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_v_i1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L7_unpacking_done;
    __pyx_L6_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L7_unpacking_done:;
  }
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_id);
  __pyx_v_id = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_jd_c = __pyx_t_1;
  if ((likely(PyTuple_CheckExact(__pyx_v_i1))) || (PyList_CheckExact(__pyx_v_i1))) {
    PyObject* sequence = __pyx_v_i1;
    if (likely(PyTuple_CheckExact(sequence))) {
      if (unlikely(PyTuple_GET_SIZE(sequence) != 2)) {
        if (PyTuple_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      if (unlikely(PyList_GET_SIZE(sequence) != 2)) {
        if (PyList_GET_SIZE(sequence) > 2) __Pyx_RaiseTooManyValuesError(2);
        else __Pyx_RaiseNeedMoreValuesError(PyList_GET_SIZE(sequence));
        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
      __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 {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_v_i1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L8_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L9_unpacking_done;
    __pyx_L8_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_StopIteration)) PyErr_Clear();
    if (!PyErr_Occurred()) __Pyx_RaiseNeedMoreValuesError(index);
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_L9_unpacking_done:;
  }
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_t_2); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_jd);
  __pyx_v_jd = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_i1_c = __pyx_t_1;
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_i2); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_i2_c = __pyx_t_1;
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_j1); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_j1_c = __pyx_t_1;
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_j2); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_j2_c = __pyx_t_1;
  __pyx_t_1 = __Pyx_PyInt_from_py_fint(__pyx_v_nc); if (unlikely((__pyx_t_1 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nc_c = __pyx_t_1;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":147
 *    cdef fint id_c, jd_c, i1_c, i2_c, j1_c, j2_c, nc_c
 *    id_c=id, jd_c=jd, i1_c=i1; i2_c=i2; j1_c=j1; j2_c=j2; nc_c=nc
 *    a_ptr  = realptr(a, id*jd); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    c_ptr  = realptr(c, nc); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_id, __pyx_v_jd); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_a_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a_l = __pyx_t_6;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":148
 *    id_c=id, jd_c=jd, i1_c=i1; i2_c=i2; j1_c=j1; j2_c=j2; nc_c=nc
 *    a_ptr  = realptr(a, id*jd); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc); c_l = c_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgcons_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_c);
  __Pyx_GIVEREF(__pyx_v_c);
  __Pyx_INCREF(__pyx_v_nc);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_nc);
  __Pyx_GIVEREF(__pyx_v_nc);
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_c_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_c_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_l = __pyx_t_6;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":149
 *    a_ptr  = realptr(a, id*jd); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgcons_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, &nc_c, <float*>tr_l)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_v_tr_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_tr_l = __pyx_t_6;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":151
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgcons_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, &nc_c, <float*>tr_l)             # <<<<<<<<<<<<<<
 * 
 * def pgcont(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
 */
  pgcons_c(((float *)__pyx_v_a_l), (&__pyx_v_id_c), (&__pyx_v_jd_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), ((float *)__pyx_v_c_l), (&__pyx_v_nc_c), ((float *)__pyx_v_tr_l));

  __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("gipsy.pgcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_c_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XDECREF(__pyx_v_id);
  __Pyx_XDECREF(__pyx_v_jd);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":153
 *             <float*>c_l, &nc_c, <float*>tr_l)
 * 
 * def pgcont(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            c, fint nc_c, tr):
 *    cdef long a_l, c_l, tr_l
 */

static PyObject *__pyx_pf_5gipsy_82pgcont(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_82pgcont = {__Pyx_NAMESTR("pgcont"), (PyCFunction)__pyx_pf_5gipsy_82pgcont, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_82pgcont(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  fint __pyx_v_id_c;
  fint __pyx_v_jd_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  PyObject *__pyx_v_c = 0;
  fint __pyx_v_nc_c;
  PyObject *__pyx_v_tr = 0;
  long __pyx_v_a_l;
  long __pyx_v_c_l;
  long __pyx_v_tr_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_c_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__id_c,&__pyx_n_s__jd_c,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__c,&__pyx_n_s__nc_c,&__pyx_n_s__tr,0};
  __Pyx_RefNannySetupContext("pgcont");
  __pyx_self = __pyx_self;
  {
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__id_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jd_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgcont") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_a = values[0];
    __pyx_v_id_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_id_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_jd_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_jd_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_c = values[7];
    __pyx_v_nc_c = __Pyx_PyInt_from_py_fint(values[8]); if (unlikely((__pyx_v_nc_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tr = values[9];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgcont", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgcont", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":156
 *            c, fint nc_c, tr):
 *    cdef long a_l, c_l, tr_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_jd_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_builtin_id, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_a_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":157
 *    cdef long a_l, c_l, tr_l
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgcont_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_nc_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_c);
  __Pyx_GIVEREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_c_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_c_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":158
 *    a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
 *    c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgcont_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, &nc_c, <float*>tr_l)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_tr_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_tr_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":160
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgcont_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             <float*>c_l, &nc_c, <float*>tr_l)             # <<<<<<<<<<<<<<
 * 
 * def pgctab(l, r, g, b, nc=None, float contra_c=1.0, float bright_c=0.5):
 */
  pgcont_c(((float *)__pyx_v_a_l), (&__pyx_v_id_c), (&__pyx_v_jd_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), ((float *)__pyx_v_c_l), (&__pyx_v_nc_c), ((float *)__pyx_v_tr_l));

  __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("gipsy.pgcont", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_c_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":162
 *             <float*>c_l, &nc_c, <float*>tr_l)
 * 
 * def pgctab(l, r, g, b, nc=None, float contra_c=1.0, float bright_c=0.5):             # <<<<<<<<<<<<<<
 *    cdef long l_l, r_l, g_l, b_l
 *    cdef fint nc_c
 */

static PyObject *__pyx_pf_5gipsy_83pgctab(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_83pgctab = {__Pyx_NAMESTR("pgctab"), (PyCFunction)__pyx_pf_5gipsy_83pgctab, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_83pgctab(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_l = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_g = 0;
  PyObject *__pyx_v_b = 0;
  PyObject *__pyx_v_nc = 0;
  float __pyx_v_contra_c;
  float __pyx_v_bright_c;
  long __pyx_v_l_l;
  long __pyx_v_r_l;
  long __pyx_v_g_l;
  long __pyx_v_b_l;
  fint __pyx_v_nc_c;
  PyObject *__pyx_v_l_ptr = NULL;
  PyObject *__pyx_v_nl = NULL;
  PyObject *__pyx_v_r_ptr = NULL;
  PyObject *__pyx_v_nr = NULL;
  PyObject *__pyx_v_g_ptr = NULL;
  PyObject *__pyx_v_ng = NULL;
  PyObject *__pyx_v_b_ptr = NULL;
  PyObject *__pyx_v_nb = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  fint __pyx_t_5;
  int __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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__l,&__pyx_n_s__r,&__pyx_n_s__g,&__pyx_n_s__b,&__pyx_n_s__nc,&__pyx_n_s__contra_c,&__pyx_n_s__bright_c,0};
  __Pyx_RefNannySetupContext("pgctab");
  __pyx_self = __pyx_self;
  {
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[4] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__l);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__r);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgctab", 0, 4, 7, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__g);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgctab", 0, 4, 7, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__b);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgctab", 0, 4, 7, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__contra_c);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bright_c);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgctab") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_l = values[0];
    __pyx_v_r = values[1];
    __pyx_v_g = values[2];
    __pyx_v_b = values[3];
    __pyx_v_nc = values[4];
    if (values[5]) {
      __pyx_v_contra_c = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_contra_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_contra_c = ((float)1.0);
    }
    if (values[6]) {
      __pyx_v_bright_c = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_bright_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_bright_c = ((float)0.5);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgctab", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgctab", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":165
 *    cdef long l_l, r_l, g_l, b_l
 *    cdef fint nc_c
 *    l_ptr = realptr(l, nc); nl = l_ptr.n; l_l = l.ptr.ptr             # <<<<<<<<<<<<<<
 *    r_ptr = realptr(r, nc); nr = r_ptr.n; r_l = r_ptr.ptr
 *    g_ptr = realptr(g, nc); ng = g_ptr.n; g_l = g_ptr.ptr
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_l);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_l);
  __Pyx_GIVEREF(__pyx_v_l);
  __Pyx_INCREF(__pyx_v_nc);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_nc);
  __Pyx_GIVEREF(__pyx_v_nc);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_l_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_l_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_nl = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_l, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_l_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":166
 *    cdef fint nc_c
 *    l_ptr = realptr(l, nc); nl = l_ptr.n; l_l = l.ptr.ptr
 *    r_ptr = realptr(r, nc); nr = r_ptr.n; r_l = r_ptr.ptr             # <<<<<<<<<<<<<<
 *    g_ptr = realptr(g, nc); ng = g_ptr.n; g_l = g_ptr.ptr
 *    b_ptr = realptr(b, nc); nb = b_ptr.n; b_l = b_ptr.ptr
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_r);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  __Pyx_INCREF(__pyx_v_nc);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_nc);
  __Pyx_GIVEREF(__pyx_v_nc);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_r_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_r_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_r_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_r_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":167
 *    l_ptr = realptr(l, nc); nl = l_ptr.n; l_l = l.ptr.ptr
 *    r_ptr = realptr(r, nc); nr = r_ptr.n; r_l = r_ptr.ptr
 *    g_ptr = realptr(g, nc); ng = g_ptr.n; g_l = g_ptr.ptr             # <<<<<<<<<<<<<<
 *    b_ptr = realptr(b, nc); nb = b_ptr.n; b_l = b_ptr.ptr
 *    nc_c = nl
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_g);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_g);
  __Pyx_GIVEREF(__pyx_v_g);
  __Pyx_INCREF(__pyx_v_nc);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_nc);
  __Pyx_GIVEREF(__pyx_v_nc);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_g_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_g_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_ng = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_g_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_g_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":168
 *    r_ptr = realptr(r, nc); nr = r_ptr.n; r_l = r_ptr.ptr
 *    g_ptr = realptr(g, nc); ng = g_ptr.n; g_l = g_ptr.ptr
 *    b_ptr = realptr(b, nc); nb = b_ptr.n; b_l = b_ptr.ptr             # <<<<<<<<<<<<<<
 *    nc_c = nl
 *    if (nr<nc_c) or (ng<nc_c) or (nb<nc):
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_b);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_b);
  __Pyx_GIVEREF(__pyx_v_b);
  __Pyx_INCREF(__pyx_v_nc);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_nc);
  __Pyx_GIVEREF(__pyx_v_nc);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_b_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_b_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_nb = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_b_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_b_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":169
 *    g_ptr = realptr(g, nc); ng = g_ptr.n; g_l = g_ptr.ptr
 *    b_ptr = realptr(b, nc); nb = b_ptr.n; b_l = b_ptr.ptr
 *    nc_c = nl             # <<<<<<<<<<<<<<
 *    if (nr<nc_c) or (ng<nc_c) or (nb<nc):
 *       raise GipsyError, "pgctab: invalid color tables"
 */
  __pyx_t_5 = __Pyx_PyInt_from_py_fint(__pyx_v_nl); if (unlikely((__pyx_t_5 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_nc_c = __pyx_t_5;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":170
 *    b_ptr = realptr(b, nc); nb = b_ptr.n; b_l = b_ptr.ptr
 *    nc_c = nl
 *    if (nr<nc_c) or (ng<nc_c) or (nb<nc):             # <<<<<<<<<<<<<<
 *       raise GipsyError, "pgctab: invalid color tables"
 *    pgctab_c(<float*>l_l, <float*>r_l, <float*>g_l, <float*>b_l,
 */
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_nc_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_nr, __pyx_t_1, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_6) {
    __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nc_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_ng, __pyx_t_3, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_nb, __pyx_v_nc, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = __pyx_t_8;
    } else {
      __pyx_t_9 = __pyx_t_7;
    }
    __pyx_t_7 = __pyx_t_9;
  } else {
    __pyx_t_7 = __pyx_t_6;
  }
  if (__pyx_t_7) {

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":171
 *    nc_c = nl
 *    if (nr<nc_c) or (ng<nc_c) or (nb<nc):
 *       raise GipsyError, "pgctab: invalid color tables"             # <<<<<<<<<<<<<<
 *    pgctab_c(<float*>l_l, <float*>r_l, <float*>g_l, <float*>b_l,
 *             &nc_c, &contra_c, &bright_c)
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_s_238), 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":173
 *       raise GipsyError, "pgctab: invalid color tables"
 *    pgctab_c(<float*>l_l, <float*>r_l, <float*>g_l, <float*>b_l,
 *             &nc_c, &contra_c, &bright_c)             # <<<<<<<<<<<<<<
 * 
 * def pgdraw(float x_c, float y_c):
 */
  pgctab_c(((float *)__pyx_v_l_l), ((float *)__pyx_v_r_l), ((float *)__pyx_v_g_l), ((float *)__pyx_v_b_l), (&__pyx_v_nc_c), (&__pyx_v_contra_c), (&__pyx_v_bright_c));

  __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("gipsy.pgctab", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_l_ptr);
  __Pyx_XDECREF(__pyx_v_nl);
  __Pyx_XDECREF(__pyx_v_r_ptr);
  __Pyx_XDECREF(__pyx_v_nr);
  __Pyx_XDECREF(__pyx_v_g_ptr);
  __Pyx_XDECREF(__pyx_v_ng);
  __Pyx_XDECREF(__pyx_v_b_ptr);
  __Pyx_XDECREF(__pyx_v_nb);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":175
 *             &nc_c, &contra_c, &bright_c)
 * 
 * def pgdraw(float x_c, float y_c):             # <<<<<<<<<<<<<<
 *    pgdraw_c(&x_c, &y_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_84pgdraw(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_84pgdraw = {__Pyx_NAMESTR("pgdraw"), (PyCFunction)__pyx_pf_5gipsy_84pgdraw, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_84pgdraw(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x_c,&__pyx_n_s__y_c,0};
  __Pyx_RefNannySetupContext("pgdraw");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgdraw", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgdraw") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgdraw", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgdraw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":176
 * 
 * def pgdraw(float x_c, float y_c):
 *    pgdraw_c(&x_c, &y_c)             # <<<<<<<<<<<<<<
 * 
 * def pgebuf():
 */
  pgdraw_c((&__pyx_v_x_c), (&__pyx_v_y_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":178
 *    pgdraw_c(&x_c, &y_c)
 * 
 * def pgebuf():             # <<<<<<<<<<<<<<
 *    pgebuf_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_85pgebuf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_85pgebuf = {__Pyx_NAMESTR("pgebuf"), (PyCFunction)__pyx_pf_5gipsy_85pgebuf, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_85pgebuf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgebuf");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":179
 * 
 * def pgebuf():
 *    pgebuf_c()             # <<<<<<<<<<<<<<
 * 
 * def pgend():
 */
  pgebuf_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":181
 *    pgebuf_c()
 * 
 * def pgend():             # <<<<<<<<<<<<<<
 *    pgend_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_86pgend(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_86pgend = {__Pyx_NAMESTR("pgend"), (PyCFunction)__pyx_pf_5gipsy_86pgend, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_86pgend(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgend");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":182
 * 
 * def pgend():
 *    pgend_c()             # <<<<<<<<<<<<<<
 * 
 * def pgenv(float xmin_c, float xmax_c, float ymin_c, float ymax_c,
 */
  pgend_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":184
 *    pgend_c()
 * 
 * def pgenv(float xmin_c, float xmax_c, float ymin_c, float ymax_c,             # <<<<<<<<<<<<<<
 *           fint just_c=0, fint axis_c=0):
 *    pgenv_c(&xmin_c, &xmax_c, &ymin_c, &ymax_c, &just_c, &axis_c)
 */

static PyObject *__pyx_pf_5gipsy_87pgenv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_87pgenv = {__Pyx_NAMESTR("pgenv"), (PyCFunction)__pyx_pf_5gipsy_87pgenv, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_87pgenv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_xmin_c;
  float __pyx_v_xmax_c;
  float __pyx_v_ymin_c;
  float __pyx_v_ymax_c;
  fint __pyx_v_just_c;
  fint __pyx_v_axis_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xmin_c,&__pyx_n_s__xmax_c,&__pyx_n_s__ymin_c,&__pyx_n_s__ymax_c,&__pyx_n_s__just_c,&__pyx_n_s__axis_c,0};
  __Pyx_RefNannySetupContext("pgenv");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xmin_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xmax_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgenv", 0, 4, 6, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ymin_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgenv", 0, 4, 6, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ymax_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgenv", 0, 4, 6, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__just_c);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__axis_c);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgenv") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_xmin_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xmin_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_xmax_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_xmax_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ymin_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_ymin_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ymax_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_ymax_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    if (values[4]) {
      __pyx_v_just_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_just_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_just_c = ((fint)0);
    }
    if (values[5]) {
      __pyx_v_axis_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_axis_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_axis_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgenv", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgenv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":186
 * def pgenv(float xmin_c, float xmax_c, float ymin_c, float ymax_c,
 *           fint just_c=0, fint axis_c=0):
 *    pgenv_c(&xmin_c, &xmax_c, &ymin_c, &ymax_c, &just_c, &axis_c)             # <<<<<<<<<<<<<<
 * 
 * def pgeras():
 */
  pgenv_c((&__pyx_v_xmin_c), (&__pyx_v_xmax_c), (&__pyx_v_ymin_c), (&__pyx_v_ymax_c), (&__pyx_v_just_c), (&__pyx_v_axis_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":188
 *    pgenv_c(&xmin_c, &xmax_c, &ymin_c, &ymax_c, &just_c, &axis_c)
 * 
 * def pgeras():             # <<<<<<<<<<<<<<
 *    pgeras_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_88pgeras(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_88pgeras = {__Pyx_NAMESTR("pgeras"), (PyCFunction)__pyx_pf_5gipsy_88pgeras, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_88pgeras(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgeras");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":189
 * 
 * def pgeras():
 *    pgeras_c()             # <<<<<<<<<<<<<<
 * 
 * def pgetxt():
 */
  pgeras_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":191
 *    pgeras_c()
 * 
 * def pgetxt():             # <<<<<<<<<<<<<<
 *    pgetxt_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_89pgetxt(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_89pgetxt = {__Pyx_NAMESTR("pgetxt"), (PyCFunction)__pyx_pf_5gipsy_89pgetxt, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_89pgetxt(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgetxt");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":192
 * 
 * def pgetxt():
 *    pgetxt_c()             # <<<<<<<<<<<<<<
 * 
 * def pggray(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,
 */
  pgetxt_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":194
 *    pgetxt_c()
 * 
 * def pggray(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,             # <<<<<<<<<<<<<<
 *            fint j1_c, fint j2_c, float fg_c, float bg_c, tr):
 * 
 */

static PyObject *__pyx_pf_5gipsy_90pggray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_90pggray = {__Pyx_NAMESTR("pggray"), (PyCFunction)__pyx_pf_5gipsy_90pggray, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_90pggray(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  fint __pyx_v_idim_c;
  fint __pyx_v_jdim_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  float __pyx_v_fg_c;
  float __pyx_v_bg_c;
  PyObject *__pyx_v_tr = 0;
  long __pyx_v_a_l;
  long __pyx_v_tr_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__idim_c,&__pyx_n_s__jdim_c,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__fg_c,&__pyx_n_s__bg_c,&__pyx_n_s__tr,0};
  __Pyx_RefNannySetupContext("pggray");
  __pyx_self = __pyx_self;
  {
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__idim_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jdim_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fg_c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bg_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pggray") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_a = values[0];
    __pyx_v_idim_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_idim_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_jdim_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_jdim_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_fg_c = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_fg_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_bg_c = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_bg_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tr = values[9];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pggray", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pggray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":198
 * 
 *    cdef long a_l, tr_l
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pggray_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyInt_FromLong((__pyx_v_idim_c * __pyx_v_jdim_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_a_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_a_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":199
 *    cdef long a_l, tr_l
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pggray_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             &fg_c, &bg_c, <float*>tr_l)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_tr_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_tr_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":201
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pggray_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             &fg_c, &bg_c, <float*>tr_l)             # <<<<<<<<<<<<<<
 * 
 * def pghi2d(data, fint nxv_c, fint nyv_c, fint ix1_c, fint ix2_c,
 */
  pggray_c(((float *)__pyx_v_a_l), (&__pyx_v_idim_c), (&__pyx_v_jdim_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), (&__pyx_v_fg_c), (&__pyx_v_bg_c), ((float *)__pyx_v_tr_l));

  __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("gipsy.pggray", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":203
 *             &fg_c, &bg_c, <float*>tr_l)
 * 
 * def pghi2d(data, fint nxv_c, fint nyv_c, fint ix1_c, fint ix2_c,             # <<<<<<<<<<<<<<
 *             fint iy1_c, fint iy2_c, x, fint ioff_c, float bias_c,
 *             bool center_c, ylims):
 */

static PyObject *__pyx_pf_5gipsy_91pghi2d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_91pghi2d = {__Pyx_NAMESTR("pghi2d"), (PyCFunction)__pyx_pf_5gipsy_91pghi2d, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_91pghi2d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_data = 0;
  fint __pyx_v_nxv_c;
  fint __pyx_v_nyv_c;
  fint __pyx_v_ix1_c;
  fint __pyx_v_ix2_c;
  fint __pyx_v_iy1_c;
  fint __pyx_v_iy2_c;
  PyObject *__pyx_v_x = 0;
  fint __pyx_v_ioff_c;
  float __pyx_v_bias_c;
  bool __pyx_v_center_c;
  PyObject *__pyx_v_ylims = 0;
  long __pyx_v_data_l;
  long __pyx_v_x_l;
  long __pyx_v_ylims_l;
  PyObject *__pyx_v_data_ptr = NULL;
  PyObject *__pyx_v_x_ptr = NULL;
  PyObject *__pyx_v_ylims_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__data,&__pyx_n_s__nxv_c,&__pyx_n_s__nyv_c,&__pyx_n_s__ix1_c,&__pyx_n_s__ix2_c,&__pyx_n_s__iy1_c,&__pyx_n_s__iy2_c,&__pyx_n_s__x,&__pyx_n_s__ioff_c,&__pyx_n_s__bias_c,&__pyx_n_s__center_c,&__pyx_n_s__ylims,0};
  __Pyx_RefNannySetupContext("pghi2d");
  __pyx_self = __pyx_self;
  {
    PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nxv_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nyv_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ix1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ix2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iy1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iy2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ioff_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bias_c);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 10:
        values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__center_c);
        if (likely(values[10])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 10); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 11:
        values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ylims);
        if (likely(values[11])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, 11); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pghi2d") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
    }
    __pyx_v_data = values[0];
    __pyx_v_nxv_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_nxv_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_nyv_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_nyv_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ix1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_ix1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ix2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_ix2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_iy1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_iy1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_iy2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_iy2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_x = values[7];
    __pyx_v_ioff_c = __Pyx_PyInt_from_py_fint(values[8]); if (unlikely((__pyx_v_ioff_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_bias_c = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_bias_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_center_c = __Pyx_PyInt_from_py_bool(values[10]); if (unlikely((__pyx_v_center_c == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ylims = values[11];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pghi2d", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pghi2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":207
 *             bool center_c, ylims):
 *    cdef long data_l, x_l, ylims_l
 *    data_ptr = realptr(data, nxv_c*nyv_c); data_l = data_ptr.ptr             # <<<<<<<<<<<<<<
 *    x_ptr = realptr(x, ix2_c-ix1_c+1); x_l = x_ptr.ptr
 *    ylims_ptr = realptr(ylims, ix2_c-ix1_c+1); ylims_l = ylims_ptr.ptr
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyInt_FromLong((__pyx_v_nxv_c * __pyx_v_nyv_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data);
  __Pyx_GIVEREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_data_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_data_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_data_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":208
 *    cdef long data_l, x_l, ylims_l
 *    data_ptr = realptr(data, nxv_c*nyv_c); data_l = data_ptr.ptr
 *    x_ptr = realptr(x, ix2_c-ix1_c+1); x_l = x_ptr.ptr             # <<<<<<<<<<<<<<
 *    ylims_ptr = realptr(ylims, ix2_c-ix1_c+1); ylims_l = ylims_ptr.ptr
 *    pghi2d_c(<float*>data_l, &nxv_c, &nyv_c, &ix1_c, &ix2_c, &iy1_c, &iy2_c,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyInt_FromLong(((__pyx_v_ix2_c - __pyx_v_ix1_c) + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x);
  __Pyx_GIVEREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_x_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_x_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_x_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":209
 *    data_ptr = realptr(data, nxv_c*nyv_c); data_l = data_ptr.ptr
 *    x_ptr = realptr(x, ix2_c-ix1_c+1); x_l = x_ptr.ptr
 *    ylims_ptr = realptr(ylims, ix2_c-ix1_c+1); ylims_l = ylims_ptr.ptr             # <<<<<<<<<<<<<<
 *    pghi2d_c(<float*>data_l, &nxv_c, &nyv_c, &ix1_c, &ix2_c, &iy1_c, &iy2_c,
 *             <float*>x_l, &ioff_c, &bias_c, &center_c, <float*>ylims_l)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyInt_FromLong(((__pyx_v_ix2_c - __pyx_v_ix1_c) + 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_ylims);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ylims);
  __Pyx_GIVEREF(__pyx_v_ylims);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_ylims_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_ylims_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ylims_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":211
 *    ylims_ptr = realptr(ylims, ix2_c-ix1_c+1); ylims_l = ylims_ptr.ptr
 *    pghi2d_c(<float*>data_l, &nxv_c, &nyv_c, &ix1_c, &ix2_c, &iy1_c, &iy2_c,
 *             <float*>x_l, &ioff_c, &bias_c, &center_c, <float*>ylims_l)             # <<<<<<<<<<<<<<
 * 
 * def pghist(fint n_c, data, float datamin_c, float datamax_c,
 */
  pghi2d_c(((float *)__pyx_v_data_l), (&__pyx_v_nxv_c), (&__pyx_v_nyv_c), (&__pyx_v_ix1_c), (&__pyx_v_ix2_c), (&__pyx_v_iy1_c), (&__pyx_v_iy2_c), ((float *)__pyx_v_x_l), (&__pyx_v_ioff_c), (&__pyx_v_bias_c), (&__pyx_v_center_c), ((float *)__pyx_v_ylims_l));

  __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("gipsy.pghi2d", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_data_ptr);
  __Pyx_XDECREF(__pyx_v_x_ptr);
  __Pyx_XDECREF(__pyx_v_ylims_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":213
 *             <float*>x_l, &ioff_c, &bias_c, &center_c, <float*>ylims_l)
 * 
 * def pghist(fint n_c, data, float datamin_c, float datamax_c,             # <<<<<<<<<<<<<<
 *            fint nbin_c, fint pgflag_c=0):
 *    cdef long data_l
 */

static PyObject *__pyx_pf_5gipsy_92pghist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_92pghist = {__Pyx_NAMESTR("pghist"), (PyCFunction)__pyx_pf_5gipsy_92pghist, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_92pghist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_n_c;
  PyObject *__pyx_v_data = 0;
  float __pyx_v_datamin_c;
  float __pyx_v_datamax_c;
  fint __pyx_v_nbin_c;
  fint __pyx_v_pgflag_c;
  long __pyx_v_data_l;
  PyObject *__pyx_v_data_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__n_c,&__pyx_n_s__data,&__pyx_n_s__datamin_c,&__pyx_n_s__datamax_c,&__pyx_n_s__nbin_c,&__pyx_n_s__pgflag_c,0};
  __Pyx_RefNannySetupContext("pghist");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghist", 0, 5, 6, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datamin_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghist", 0, 5, 6, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__datamax_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghist", 0, 5, 6, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nbin_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pghist", 0, 5, 6, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pgflag_c);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pghist") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_n_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_data = values[1];
    __pyx_v_datamin_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_datamin_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_datamax_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_datamax_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_nbin_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_nbin_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    if (values[5]) {
      __pyx_v_pgflag_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_pgflag_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_pgflag_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pghist", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pghist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":216
 *            fint nbin_c, fint pgflag_c=0):
 *    cdef long data_l
 *    data_ptr = realptr(data, n_c); data_l = data_ptr.ptr             # <<<<<<<<<<<<<<
 *    pghist_c(&n_c, <float*>data_l, &datamin_c, &datamax_c, &nbin_c, &pgflag_c)
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_n_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data);
  __Pyx_GIVEREF(__pyx_v_data);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_data_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_data_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_data_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":217
 *    cdef long data_l
 *    data_ptr = realptr(data, n_c); data_l = data_ptr.ptr
 *    pghist_c(&n_c, <float*>data_l, &datamin_c, &datamax_c, &nbin_c, &pgflag_c)             # <<<<<<<<<<<<<<
 * 
 * def pgiden():
 */
  pghist_c((&__pyx_v_n_c), ((float *)__pyx_v_data_l), (&__pyx_v_datamin_c), (&__pyx_v_datamax_c), (&__pyx_v_nbin_c), (&__pyx_v_pgflag_c));

  __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("gipsy.pghist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_data_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":219
 *    pghist_c(&n_c, <float*>data_l, &datamin_c, &datamax_c, &nbin_c, &pgflag_c)
 * 
 * def pgiden():             # <<<<<<<<<<<<<<
 *    pgiden_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_93pgiden(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_93pgiden = {__Pyx_NAMESTR("pgiden"), (PyCFunction)__pyx_pf_5gipsy_93pgiden, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_93pgiden(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgiden");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":220
 * 
 * def pgiden():
 *    pgiden_c()             # <<<<<<<<<<<<<<
 * 
 * def pgimag(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,
 */
  pgiden_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":222
 *    pgiden_c()
 * 
 * def pgimag(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,             # <<<<<<<<<<<<<<
 *            fint j1_c, fint j2_c, float a1_c, float a2_c, tr):
 *    cdef long a_l, tr_l
 */

static PyObject *__pyx_pf_5gipsy_94pgimag(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_94pgimag = {__Pyx_NAMESTR("pgimag"), (PyCFunction)__pyx_pf_5gipsy_94pgimag, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_94pgimag(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  fint __pyx_v_idim_c;
  fint __pyx_v_jdim_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  float __pyx_v_a1_c;
  float __pyx_v_a2_c;
  PyObject *__pyx_v_tr = 0;
  long __pyx_v_a_l;
  long __pyx_v_tr_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__idim_c,&__pyx_n_s__jdim_c,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__a1_c,&__pyx_n_s__a2_c,&__pyx_n_s__tr,0};
  __Pyx_RefNannySetupContext("pgimag");
  __pyx_self = __pyx_self;
  {
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__idim_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jdim_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a1_c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a2_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgimag") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_a = values[0];
    __pyx_v_idim_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_idim_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_jdim_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_jdim_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_a1_c = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_a1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_a2_c = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_a2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tr = values[9];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgimag", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgimag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":225
 *            fint j1_c, fint j2_c, float a1_c, float a2_c, tr):
 *    cdef long a_l, tr_l
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgimag_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyInt_FromLong((__pyx_v_idim_c * __pyx_v_jdim_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_a_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_a_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":226
 *    cdef long a_l, tr_l
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgimag_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             &a1_c, &a2_c, <float*>tr_l)
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_tr_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_tr_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":228
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgimag_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *             &a1_c, &a2_c, <float*>tr_l)             # <<<<<<<<<<<<<<
 * 
 * def pglab(xlabel, ylabel, toplabel):
 */
  pgimag_c(((float *)__pyx_v_a_l), (&__pyx_v_idim_c), (&__pyx_v_jdim_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), (&__pyx_v_a1_c), (&__pyx_v_a2_c), ((float *)__pyx_v_tr_l));

  __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("gipsy.pgimag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":230
 *             &a1_c, &a2_c, <float*>tr_l)
 * 
 * def pglab(xlabel, ylabel, toplabel):             # <<<<<<<<<<<<<<
 *    pglab_c(tofchar(xlabel), tofchar(ylabel), tofchar(toplabel))
 * 
 */

static PyObject *__pyx_pf_5gipsy_95pglab(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_95pglab = {__Pyx_NAMESTR("pglab"), (PyCFunction)__pyx_pf_5gipsy_95pglab, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_95pglab(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_xlabel = 0;
  PyObject *__pyx_v_ylabel = 0;
  PyObject *__pyx_v_toplabel = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xlabel,&__pyx_n_s__ylabel,&__pyx_n_s__toplabel,0};
  __Pyx_RefNannySetupContext("pglab");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xlabel);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ylabel);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pglab", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__toplabel);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pglab", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pglab") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_xlabel = values[0];
    __pyx_v_ylabel = values[1];
    __pyx_v_toplabel = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pglab", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pglab", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":231
 * 
 * def pglab(xlabel, ylabel, toplabel):
 *    pglab_c(tofchar(xlabel), tofchar(ylabel), tofchar(toplabel))             # <<<<<<<<<<<<<<
 * 
 * def pgldev():
 */
  pglab_c(__pyx_f_5gipsy_tofchar(__pyx_v_xlabel), __pyx_f_5gipsy_tofchar(__pyx_v_ylabel), __pyx_f_5gipsy_tofchar(__pyx_v_toplabel));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":233
 *    pglab_c(tofchar(xlabel), tofchar(ylabel), tofchar(toplabel))
 * 
 * def pgldev():             # <<<<<<<<<<<<<<
 *    pgldev_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_96pgldev(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_96pgldev = {__Pyx_NAMESTR("pgldev"), (PyCFunction)__pyx_pf_5gipsy_96pgldev, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_96pgldev(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgldev");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":234
 * 
 * def pgldev():
 *    pgldev_c()             # <<<<<<<<<<<<<<
 * 
 * def pglen(text, fint units_c=4):
 */
  pgldev_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":236
 *    pgldev_c()
 * 
 * def pglen(text, fint units_c=4):             # <<<<<<<<<<<<<<
 *    cdef float xl_c, yl_c
 *    pglen_c(&units_c, tofchar(text), &xl_c, &yl_c)
 */

static PyObject *__pyx_pf_5gipsy_97pglen(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_97pglen = {__Pyx_NAMESTR("pglen"), (PyCFunction)__pyx_pf_5gipsy_97pglen, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_97pglen(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_text = 0;
  fint __pyx_v_units_c;
  float __pyx_v_xl_c;
  float __pyx_v_yl_c;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__text,&__pyx_n_s__units_c,0};
  __Pyx_RefNannySetupContext("pglen");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__units_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pglen") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_text = values[0];
    if (values[1]) {
      __pyx_v_units_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_units_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_units_c = ((fint)4);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pglen", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pglen", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":238
 * def pglen(text, fint units_c=4):
 *    cdef float xl_c, yl_c
 *    pglen_c(&units_c, tofchar(text), &xl_c, &yl_c)             # <<<<<<<<<<<<<<
 *    return (xl_c, yl_c)
 * 
 */
  pglen_c((&__pyx_v_units_c), __pyx_f_5gipsy_tofchar(__pyx_v_text), (&__pyx_v_xl_c), (&__pyx_v_yl_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":239
 *    cdef float xl_c, yl_c
 *    pglen_c(&units_c, tofchar(text), &xl_c, &yl_c)
 *    return (xl_c, yl_c)             # <<<<<<<<<<<<<<
 * 
 * def pgline(xpts, ypts):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_xl_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_yl_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.pglen", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":241
 *    return (xl_c, yl_c)
 * 
 * def pgline(xpts, ypts):             # <<<<<<<<<<<<<<
 *    cdef long xpts_l, ypts_l
 *    cdef fint n_c
 */

static PyObject *__pyx_pf_5gipsy_98pgline(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_98pgline = {__Pyx_NAMESTR("pgline"), (PyCFunction)__pyx_pf_5gipsy_98pgline, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_98pgline(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_xpts = 0;
  PyObject *__pyx_v_ypts = 0;
  long __pyx_v_xpts_l;
  long __pyx_v_ypts_l;
  fint __pyx_v_n_c;
  PyObject *__pyx_v_xpts_ptr = NULL;
  PyObject *__pyx_v_xsz = NULL;
  PyObject *__pyx_v_ypts_ptr = NULL;
  PyObject *__pyx_v_ysz = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  fint __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xpts,&__pyx_n_s__ypts,0};
  __Pyx_RefNannySetupContext("pgline");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xpts);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ypts);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgline", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgline") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_xpts = values[0];
    __pyx_v_ypts = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgline", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgline", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":244
 *    cdef long xpts_l, ypts_l
 *    cdef fint n_c
 *    xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n             # <<<<<<<<<<<<<<
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
 *    n_c = min(xsz, ysz)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_xpts);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_xpts);
  __Pyx_GIVEREF(__pyx_v_xpts);
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __Pyx_GIVEREF(Py_None);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_xpts_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_xpts_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_xpts_l = __pyx_t_4;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_xpts_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_xsz = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":245
 *    cdef fint n_c
 *    xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n             # <<<<<<<<<<<<<<
 *    n_c = min(xsz, ysz)
 *    pgline_c(&n_c, <float*>xpts_l, <float*>ypts_l)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_ypts);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ypts);
  __Pyx_GIVEREF(__pyx_v_ypts);
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __Pyx_GIVEREF(Py_None);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_ypts_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_ypts_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ypts_l = __pyx_t_4;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_ypts_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ysz = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":246
 *    xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
 *    n_c = min(xsz, ysz)             # <<<<<<<<<<<<<<
 *    pgline_c(&n_c, <float*>xpts_l, <float*>ypts_l)
 * 
 */
  __Pyx_INCREF(__pyx_v_ysz);
  __pyx_t_1 = __pyx_v_ysz;
  __Pyx_INCREF(__pyx_v_xsz);
  __pyx_t_2 = __pyx_v_xsz;
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_7 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_n_c = __pyx_t_7;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":247
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
 *    n_c = min(xsz, ysz)
 *    pgline_c(&n_c, <float*>xpts_l, <float*>ypts_l)             # <<<<<<<<<<<<<<
 * 
 * def pgmove(float x_c, float y_c):
 */
  pgline_c((&__pyx_v_n_c), ((float *)__pyx_v_xpts_l), ((float *)__pyx_v_ypts_l));

  __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("gipsy.pgline", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xpts_ptr);
  __Pyx_XDECREF(__pyx_v_xsz);
  __Pyx_XDECREF(__pyx_v_ypts_ptr);
  __Pyx_XDECREF(__pyx_v_ysz);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":249
 *    pgline_c(&n_c, <float*>xpts_l, <float*>ypts_l)
 * 
 * def pgmove(float x_c, float y_c):             # <<<<<<<<<<<<<<
 *    pgmove_c(&x_c, &y_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_99pgmove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_99pgmove = {__Pyx_NAMESTR("pgmove"), (PyCFunction)__pyx_pf_5gipsy_99pgmove, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_99pgmove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x_c,&__pyx_n_s__y_c,0};
  __Pyx_RefNannySetupContext("pgmove");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgmove", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgmove") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgmove", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgmove", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":250
 * 
 * def pgmove(float x_c, float y_c):
 *    pgmove_c(&x_c, &y_c)             # <<<<<<<<<<<<<<
 * 
 * def pgmtxt(side, float disp_c, float coord_c, float fjust_c, text):
 */
  pgmove_c((&__pyx_v_x_c), (&__pyx_v_y_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":252
 *    pgmove_c(&x_c, &y_c)
 * 
 * def pgmtxt(side, float disp_c, float coord_c, float fjust_c, text):             # <<<<<<<<<<<<<<
 *    pgmtxt_c(tofchar(side), &disp_c, &coord_c, &fjust_c, tofchar(text))
 * 
 */

static PyObject *__pyx_pf_5gipsy_100pgmtxt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_100pgmtxt = {__Pyx_NAMESTR("pgmtxt"), (PyCFunction)__pyx_pf_5gipsy_100pgmtxt, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_100pgmtxt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_side = 0;
  float __pyx_v_disp_c;
  float __pyx_v_coord_c;
  float __pyx_v_fjust_c;
  PyObject *__pyx_v_text = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__side,&__pyx_n_s__disp_c,&__pyx_n_s__coord_c,&__pyx_n_s__fjust_c,&__pyx_n_s__text,0};
  __Pyx_RefNannySetupContext("pgmtxt");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__side);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__disp_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgmtxt", 1, 5, 5, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__coord_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgmtxt", 1, 5, 5, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fjust_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgmtxt", 1, 5, 5, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgmtxt", 1, 5, 5, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgmtxt") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_side = values[0];
    __pyx_v_disp_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_disp_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_coord_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_coord_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_fjust_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_fjust_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_text = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgmtxt", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgmtxt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":253
 * 
 * def pgmtxt(side, float disp_c, float coord_c, float fjust_c, text):
 *    pgmtxt_c(tofchar(side), &disp_c, &coord_c, &fjust_c, tofchar(text))             # <<<<<<<<<<<<<<
 * 
 * def pgopen(device):
 */
  pgmtxt_c(__pyx_f_5gipsy_tofchar(__pyx_v_side), (&__pyx_v_disp_c), (&__pyx_v_coord_c), (&__pyx_v_fjust_c), __pyx_f_5gipsy_tofchar(__pyx_v_text));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":255
 *    pgmtxt_c(tofchar(side), &disp_c, &coord_c, &fjust_c, tofchar(text))
 * 
 * def pgopen(device):             # <<<<<<<<<<<<<<
 *    return pgopen_c(tofchar(device))
 * 
 */

static PyObject *__pyx_pf_5gipsy_101pgopen(PyObject *__pyx_self, PyObject *__pyx_v_device); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_101pgopen = {__Pyx_NAMESTR("pgopen"), (PyCFunction)__pyx_pf_5gipsy_101pgopen, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_101pgopen(PyObject *__pyx_self, PyObject *__pyx_v_device) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgopen");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":256
 * 
 * def pgopen(device):
 *    return pgopen_c(tofchar(device))             # <<<<<<<<<<<<<<
 * 
 * def pgpage():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(pgopen_c(__pyx_f_5gipsy_tofchar(__pyx_v_device))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgopen", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":258
 *    return pgopen_c(tofchar(device))
 * 
 * def pgpage():             # <<<<<<<<<<<<<<
 *    pgpage_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_102pgpage(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_102pgpage = {__Pyx_NAMESTR("pgpage"), (PyCFunction)__pyx_pf_5gipsy_102pgpage, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_102pgpage(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgpage");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":259
 * 
 * def pgpage():
 *    pgpage_c()             # <<<<<<<<<<<<<<
 * 
 * def pgpanl(fint ix_c=1, fint iy_c=1):
 */
  pgpage_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":261
 *    pgpage_c()
 * 
 * def pgpanl(fint ix_c=1, fint iy_c=1):             # <<<<<<<<<<<<<<
 *    pgpanl_c(&ix_c, &iy_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_103pgpanl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_103pgpanl = {__Pyx_NAMESTR("pgpanl"), (PyCFunction)__pyx_pf_5gipsy_103pgpanl, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_103pgpanl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_ix_c;
  fint __pyx_v_iy_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ix_c,&__pyx_n_s__iy_c,0};
  __Pyx_RefNannySetupContext("pgpanl");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ix_c);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iy_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgpanl") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_ix_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_ix_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ix_c = ((fint)1);
    }
    if (values[1]) {
      __pyx_v_iy_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_iy_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_iy_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgpanl", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgpanl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":262
 * 
 * def pgpanl(fint ix_c=1, fint iy_c=1):
 *    pgpanl_c(&ix_c, &iy_c)             # <<<<<<<<<<<<<<
 * 
 * def pgpap(float width_c, float aspect_c=1.0):
 */
  pgpanl_c((&__pyx_v_ix_c), (&__pyx_v_iy_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":264
 *    pgpanl_c(&ix_c, &iy_c)
 * 
 * def pgpap(float width_c, float aspect_c=1.0):             # <<<<<<<<<<<<<<
 *    pgpap_c(&width_c, &aspect_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_104pgpap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_104pgpap = {__Pyx_NAMESTR("pgpap"), (PyCFunction)__pyx_pf_5gipsy_104pgpap, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_104pgpap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_width_c;
  float __pyx_v_aspect_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__width_c,&__pyx_n_s__aspect_c,0};
  __Pyx_RefNannySetupContext("pgpap");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__aspect_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgpap") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_width_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_width_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    if (values[1]) {
      __pyx_v_aspect_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_aspect_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_aspect_c = ((float)1.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgpap", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgpap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":265
 * 
 * def pgpap(float width_c, float aspect_c=1.0):
 *    pgpap_c(&width_c, &aspect_c)             # <<<<<<<<<<<<<<
 * 
 * def pgpt(xpts, ypts, fint symbol_c=0):
 */
  pgpap_c((&__pyx_v_width_c), (&__pyx_v_aspect_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":267
 *    pgpap_c(&width_c, &aspect_c)
 * 
 * def pgpt(xpts, ypts, fint symbol_c=0):             # <<<<<<<<<<<<<<
 *    cdef long xpts_l, ypts_l
 *    cdef fint n_c
 */

static PyObject *__pyx_pf_5gipsy_105pgpt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_105pgpt = {__Pyx_NAMESTR("pgpt"), (PyCFunction)__pyx_pf_5gipsy_105pgpt, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_105pgpt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_xpts = 0;
  PyObject *__pyx_v_ypts = 0;
  fint __pyx_v_symbol_c;
  long __pyx_v_xpts_l;
  long __pyx_v_ypts_l;
  fint __pyx_v_n_c;
  PyObject *__pyx_v_xpts_ptr = NULL;
  PyObject *__pyx_v_xsz = NULL;
  PyObject *__pyx_v_ypts_ptr = NULL;
  PyObject *__pyx_v_ysz = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  fint __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xpts,&__pyx_n_s__ypts,&__pyx_n_s__symbol_c,0};
  __Pyx_RefNannySetupContext("pgpt");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xpts);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ypts);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgpt", 0, 2, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__symbol_c);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgpt") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_xpts = values[0];
    __pyx_v_ypts = values[1];
    if (values[2]) {
      __pyx_v_symbol_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_symbol_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_symbol_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgpt", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgpt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":270
 *    cdef long xpts_l, ypts_l
 *    cdef fint n_c
 *    xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n             # <<<<<<<<<<<<<<
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
 *    n_c = min(xsz, ysz)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_xpts);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_xpts);
  __Pyx_GIVEREF(__pyx_v_xpts);
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __Pyx_GIVEREF(Py_None);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_xpts_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_xpts_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_xpts_l = __pyx_t_4;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_xpts_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_xsz = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":271
 *    cdef fint n_c
 *    xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n             # <<<<<<<<<<<<<<
 *    n_c = min(xsz, ysz)
 *    pgpt_c(&n_c, <float*>xpts_l, <float*>ypts_l, &symbol_c)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_ypts);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ypts);
  __Pyx_GIVEREF(__pyx_v_ypts);
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __Pyx_GIVEREF(Py_None);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_ypts_ptr = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_ypts_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_1); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ypts_l = __pyx_t_4;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_ypts_ptr, __pyx_n_s__n); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ysz = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":272
 *    xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
 *    n_c = min(xsz, ysz)             # <<<<<<<<<<<<<<
 *    pgpt_c(&n_c, <float*>xpts_l, <float*>ypts_l, &symbol_c)
 * 
 */
  __Pyx_INCREF(__pyx_v_ysz);
  __pyx_t_1 = __pyx_v_ysz;
  __Pyx_INCREF(__pyx_v_xsz);
  __pyx_t_2 = __pyx_v_xsz;
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __Pyx_PyInt_from_py_fint(__pyx_t_3); if (unlikely((__pyx_t_7 == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_n_c = __pyx_t_7;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":273
 *    ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
 *    n_c = min(xsz, ysz)
 *    pgpt_c(&n_c, <float*>xpts_l, <float*>ypts_l, &symbol_c)             # <<<<<<<<<<<<<<
 * 
 * def pgptxt(float x_c, float y_c, float angle_c, float fjust_c, text):
 */
  pgpt_c((&__pyx_v_n_c), ((float *)__pyx_v_xpts_l), ((float *)__pyx_v_ypts_l), (&__pyx_v_symbol_c));

  __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("gipsy.pgpt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xpts_ptr);
  __Pyx_XDECREF(__pyx_v_xsz);
  __Pyx_XDECREF(__pyx_v_ypts_ptr);
  __Pyx_XDECREF(__pyx_v_ysz);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":275
 *    pgpt_c(&n_c, <float*>xpts_l, <float*>ypts_l, &symbol_c)
 * 
 * def pgptxt(float x_c, float y_c, float angle_c, float fjust_c, text):             # <<<<<<<<<<<<<<
 *    pgptxt_c(&x_c, &y_c, &angle_c, &fjust_c, tofchar(text))
 * 
 */

static PyObject *__pyx_pf_5gipsy_106pgptxt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_106pgptxt = {__Pyx_NAMESTR("pgptxt"), (PyCFunction)__pyx_pf_5gipsy_106pgptxt, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_106pgptxt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  float __pyx_v_angle_c;
  float __pyx_v_fjust_c;
  PyObject *__pyx_v_text = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x_c,&__pyx_n_s__y_c,&__pyx_n_s__angle_c,&__pyx_n_s__fjust_c,&__pyx_n_s__text,0};
  __Pyx_RefNannySetupContext("pgptxt");
  __pyx_self = __pyx_self;
  {
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgptxt", 1, 5, 5, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__angle_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgptxt", 1, 5, 5, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fjust_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgptxt", 1, 5, 5, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgptxt", 1, 5, 5, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgptxt") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_angle_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_angle_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_fjust_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_fjust_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_text = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgptxt", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgptxt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":276
 * 
 * def pgptxt(float x_c, float y_c, float angle_c, float fjust_c, text):
 *    pgptxt_c(&x_c, &y_c, &angle_c, &fjust_c, tofchar(text))             # <<<<<<<<<<<<<<
 * 
 * def pgqah():
 */
  pgptxt_c((&__pyx_v_x_c), (&__pyx_v_y_c), (&__pyx_v_angle_c), (&__pyx_v_fjust_c), __pyx_f_5gipsy_tofchar(__pyx_v_text));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":278
 *    pgptxt_c(&x_c, &y_c, &angle_c, &fjust_c, tofchar(text))
 * 
 * def pgqah():             # <<<<<<<<<<<<<<
 *    cdef fint fs_c
 *    cdef float angle_c, barb_c
 */

static PyObject *__pyx_pf_5gipsy_107pgqah(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_107pgqah = {__Pyx_NAMESTR("pgqah"), (PyCFunction)__pyx_pf_5gipsy_107pgqah, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_107pgqah(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_fs_c;
  float __pyx_v_angle_c;
  float __pyx_v_barb_c;
  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("pgqah");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":281
 *    cdef fint fs_c
 *    cdef float angle_c, barb_c
 *    pgqah_c(&fs_c, &angle_c, &barb_c)             # <<<<<<<<<<<<<<
 *    return (fs_c, angle_c, barb_c)
 * 
 */
  pgqah_c((&__pyx_v_fs_c), (&__pyx_v_angle_c), (&__pyx_v_barb_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":282
 *    cdef float angle_c, barb_c
 *    pgqah_c(&fs_c, &angle_c, &barb_c)
 *    return (fs_c, angle_c, barb_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqcf():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_fs_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_barb_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqah", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":284
 *    return (fs_c, angle_c, barb_c)
 * 
 * def pgqcf():             # <<<<<<<<<<<<<<
 *    cdef fint cf_c
 *    pgqcf_c(&cf_c)
 */

static PyObject *__pyx_pf_5gipsy_108pgqcf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_108pgqcf = {__Pyx_NAMESTR("pgqcf"), (PyCFunction)__pyx_pf_5gipsy_108pgqcf, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_108pgqcf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_cf_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("pgqcf");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":286
 * def pgqcf():
 *    cdef fint cf_c
 *    pgqcf_c(&cf_c)             # <<<<<<<<<<<<<<
 *    return cf_c
 * 
 */
  pgqcf_c((&__pyx_v_cf_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":287
 *    cdef fint cf_c
 *    pgqcf_c(&cf_c)
 *    return cf_c             # <<<<<<<<<<<<<<
 * 
 * def pgqch():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_cf_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqcf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":289
 *    return cf_c
 * 
 * def pgqch():             # <<<<<<<<<<<<<<
 *    cdef float ch_c
 *    pgqch_c(&ch_c)
 */

static PyObject *__pyx_pf_5gipsy_109pgqch(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_109pgqch = {__Pyx_NAMESTR("pgqch"), (PyCFunction)__pyx_pf_5gipsy_109pgqch, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_109pgqch(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  float __pyx_v_ch_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("pgqch");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":291
 * def pgqch():
 *    cdef float ch_c
 *    pgqch_c(&ch_c)             # <<<<<<<<<<<<<<
 *    return ch_c
 * 
 */
  pgqch_c((&__pyx_v_ch_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":292
 *    cdef float ch_c
 *    pgqch_c(&ch_c)
 *    return ch_c             # <<<<<<<<<<<<<<
 * 
 * def pgqci():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_ch_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":294
 *    return ch_c
 * 
 * def pgqci():             # <<<<<<<<<<<<<<
 *    cdef fint ci_c
 *    pgqci_c(&ci_c)
 */

static PyObject *__pyx_pf_5gipsy_110pgqci(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_110pgqci = {__Pyx_NAMESTR("pgqci"), (PyCFunction)__pyx_pf_5gipsy_110pgqci, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_110pgqci(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_ci_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("pgqci");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":296
 * def pgqci():
 *    cdef fint ci_c
 *    pgqci_c(&ci_c)             # <<<<<<<<<<<<<<
 *    return ci_c
 * 
 */
  pgqci_c((&__pyx_v_ci_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":297
 *    cdef fint ci_c
 *    pgqci_c(&ci_c)
 *    return ci_c             # <<<<<<<<<<<<<<
 * 
 * def pgqcir():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_ci_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqci", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":299
 *    return ci_c
 * 
 * def pgqcir():             # <<<<<<<<<<<<<<
 *    cdef fint icilo_c, icihi_c
 *    pgqcir_c(&icilo_c, &icihi_c)
 */

static PyObject *__pyx_pf_5gipsy_111pgqcir(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_111pgqcir = {__Pyx_NAMESTR("pgqcir"), (PyCFunction)__pyx_pf_5gipsy_111pgqcir, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_111pgqcir(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_icilo_c;
  fint __pyx_v_icihi_c;
  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("pgqcir");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":301
 * def pgqcir():
 *    cdef fint icilo_c, icihi_c
 *    pgqcir_c(&icilo_c, &icihi_c)             # <<<<<<<<<<<<<<
 *    return (icilo_c, icihi_c)
 * 
 */
  pgqcir_c((&__pyx_v_icilo_c), (&__pyx_v_icihi_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":302
 *    cdef fint icilo_c, icihi_c
 *    pgqcir_c(&icilo_c, &icihi_c)
 *    return (icilo_c, icihi_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqcol():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_icilo_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_icihi_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqcir", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":304
 *    return (icilo_c, icihi_c)
 * 
 * def pgqcol():             # <<<<<<<<<<<<<<
 *    cdef fint ci1_c, ci2_c
 *    pgqcir_c(&ci1_c, &ci2_c)
 */

static PyObject *__pyx_pf_5gipsy_112pgqcol(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_112pgqcol = {__Pyx_NAMESTR("pgqcol"), (PyCFunction)__pyx_pf_5gipsy_112pgqcol, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_112pgqcol(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_ci1_c;
  fint __pyx_v_ci2_c;
  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("pgqcol");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":306
 * def pgqcol():
 *    cdef fint ci1_c, ci2_c
 *    pgqcir_c(&ci1_c, &ci2_c)             # <<<<<<<<<<<<<<
 *    return (ci1_c, ci2_c)
 * 
 */
  pgqcir_c((&__pyx_v_ci1_c), (&__pyx_v_ci2_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":307
 *    cdef fint ci1_c, ci2_c
 *    pgqcir_c(&ci1_c, &ci2_c)
 *    return (ci1_c, ci2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqcr(fint ci_c=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_ci1_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_to_py_fint(__pyx_v_ci2_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqcol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":309
 *    return (ci1_c, ci2_c)
 * 
 * def pgqcr(fint ci_c=0):             # <<<<<<<<<<<<<<
 *    cdef float cr_c, cg_c, cb_c
 *    pgqcr_c(&ci_c, &cr_c, &cg_c, &cb_c)
 */

static PyObject *__pyx_pf_5gipsy_113pgqcr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_113pgqcr = {__Pyx_NAMESTR("pgqcr"), (PyCFunction)__pyx_pf_5gipsy_113pgqcr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_113pgqcr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_ci_c;
  float __pyx_v_cr_c;
  float __pyx_v_cg_c;
  float __pyx_v_cb_c;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ci_c,0};
  __Pyx_RefNannySetupContext("pgqcr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ci_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgqcr") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_ci_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_ci_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ci_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgqcr", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgqcr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":311
 * def pgqcr(fint ci_c=0):
 *    cdef float cr_c, cg_c, cb_c
 *    pgqcr_c(&ci_c, &cr_c, &cg_c, &cb_c)             # <<<<<<<<<<<<<<
 *    return (cr_c, cg_c, cb_c)
 * 
 */
  pgqcr_c((&__pyx_v_ci_c), (&__pyx_v_cr_c), (&__pyx_v_cg_c), (&__pyx_v_cb_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":312
 *    cdef float cr_c, cg_c, cb_c
 *    pgqcr_c(&ci_c, &cr_c, &cg_c, &cb_c)
 *    return (cr_c, cg_c, cb_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqcs(fint units_c=4):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cr_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_cg_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cb_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqcr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":314
 *    return (cr_c, cg_c, cb_c)
 * 
 * def pgqcs(fint units_c=4):             # <<<<<<<<<<<<<<
 *    cdef float xch_c, ych_c
 *    pgqcs_c(&units_c, &xch_c, &ych_c)
 */

static PyObject *__pyx_pf_5gipsy_114pgqcs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_114pgqcs = {__Pyx_NAMESTR("pgqcs"), (PyCFunction)__pyx_pf_5gipsy_114pgqcs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_114pgqcs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_units_c;
  float __pyx_v_xch_c;
  float __pyx_v_ych_c;
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__units_c,0};
  __Pyx_RefNannySetupContext("pgqcs");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__units_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgqcs") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_units_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_units_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_units_c = ((fint)4);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgqcs", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgqcs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":316
 * def pgqcs(fint units_c=4):
 *    cdef float xch_c, ych_c
 *    pgqcs_c(&units_c, &xch_c, &ych_c)             # <<<<<<<<<<<<<<
 *    return (xch_c, ych_c)
 * 
 */
  pgqcs_c((&__pyx_v_units_c), (&__pyx_v_xch_c), (&__pyx_v_ych_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":317
 *    cdef float xch_c, ych_c
 *    pgqcs_c(&units_c, &xch_c, &ych_c)
 *    return (xch_c, ych_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqfs():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_xch_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_ych_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqcs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":319
 *    return (xch_c, ych_c)
 * 
 * def pgqfs():             # <<<<<<<<<<<<<<
 *    cdef fint fs_c
 *    pgqfs_c(&fs_c)
 */

static PyObject *__pyx_pf_5gipsy_115pgqfs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_115pgqfs = {__Pyx_NAMESTR("pgqfs"), (PyCFunction)__pyx_pf_5gipsy_115pgqfs, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_115pgqfs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_fs_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("pgqfs");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":321
 * def pgqfs():
 *    cdef fint fs_c
 *    pgqfs_c(&fs_c)             # <<<<<<<<<<<<<<
 *    return fs_c
 * 
 */
  pgqfs_c((&__pyx_v_fs_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":322
 *    cdef fint fs_c
 *    pgqfs_c(&fs_c)
 *    return fs_c             # <<<<<<<<<<<<<<
 * 
 * def pgqhs():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_fs_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqfs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":324
 *    return fs_c
 * 
 * def pgqhs():             # <<<<<<<<<<<<<<
 *    cdef float angle_c, sepn_c, phase_c
 *    pgqhs_c(&angle_c, &sepn_c, &phase_c)
 */

static PyObject *__pyx_pf_5gipsy_116pgqhs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_116pgqhs = {__Pyx_NAMESTR("pgqhs"), (PyCFunction)__pyx_pf_5gipsy_116pgqhs, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_116pgqhs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  float __pyx_v_angle_c;
  float __pyx_v_sepn_c;
  float __pyx_v_phase_c;
  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("pgqhs");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":326
 * def pgqhs():
 *    cdef float angle_c, sepn_c, phase_c
 *    pgqhs_c(&angle_c, &sepn_c, &phase_c)             # <<<<<<<<<<<<<<
 *    return (angle_c, sepn_c, phase_c)
 * 
 */
  pgqhs_c((&__pyx_v_angle_c), (&__pyx_v_sepn_c), (&__pyx_v_phase_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":327
 *    cdef float angle_c, sepn_c, phase_c
 *    pgqhs_c(&angle_c, &sepn_c, &phase_c)
 *    return (angle_c, sepn_c, phase_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqid():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_angle_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sepn_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_phase_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqhs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":329
 *    return (angle_c, sepn_c, phase_c)
 * 
 * def pgqid():             # <<<<<<<<<<<<<<
 *    cdef fint id_c
 *    pgqid_c(&id_c)
 */

static PyObject *__pyx_pf_5gipsy_117pgqid(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_117pgqid = {__Pyx_NAMESTR("pgqid"), (PyCFunction)__pyx_pf_5gipsy_117pgqid, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_117pgqid(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_id_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("pgqid");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":331
 * def pgqid():
 *    cdef fint id_c
 *    pgqid_c(&id_c)             # <<<<<<<<<<<<<<
 *    return id_c
 * 
 */
  pgqid_c((&__pyx_v_id_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":332
 *    cdef fint id_c
 *    pgqid_c(&id_c)
 *    return id_c             # <<<<<<<<<<<<<<
 * 
 * def pgqitf():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_id_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":334
 *    return id_c
 * 
 * def pgqitf():             # <<<<<<<<<<<<<<
 *    cdef fint itf_c
 *    pgqitf_c(&itf_c)
 */

static PyObject *__pyx_pf_5gipsy_118pgqitf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_118pgqitf = {__Pyx_NAMESTR("pgqitf"), (PyCFunction)__pyx_pf_5gipsy_118pgqitf, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_118pgqitf(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_itf_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("pgqitf");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":336
 * def pgqitf():
 *    cdef fint itf_c
 *    pgqitf_c(&itf_c)             # <<<<<<<<<<<<<<
 *    return itf_c
 * 
 */
  pgqitf_c((&__pyx_v_itf_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":337
 *    cdef fint itf_c
 *    pgqitf_c(&itf_c)
 *    return itf_c             # <<<<<<<<<<<<<<
 * 
 * def pgqls():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_itf_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqitf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":339
 *    return itf_c
 * 
 * def pgqls():             # <<<<<<<<<<<<<<
 *    cdef fint ls_c
 *    pgqid_c(&ls_c)
 */

static PyObject *__pyx_pf_5gipsy_119pgqls(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_119pgqls = {__Pyx_NAMESTR("pgqls"), (PyCFunction)__pyx_pf_5gipsy_119pgqls, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_119pgqls(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_ls_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("pgqls");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":341
 * def pgqls():
 *    cdef fint ls_c
 *    pgqid_c(&ls_c)             # <<<<<<<<<<<<<<
 *    return ls_c
 * 
 */
  pgqid_c((&__pyx_v_ls_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":342
 *    cdef fint ls_c
 *    pgqid_c(&ls_c)
 *    return ls_c             # <<<<<<<<<<<<<<
 * 
 * def pgqlw():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_ls_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqls", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":344
 *    return ls_c
 * 
 * def pgqlw():             # <<<<<<<<<<<<<<
 *    cdef fint lw_c
 *    pgqlw_c(&lw_c)
 */

static PyObject *__pyx_pf_5gipsy_120pgqlw(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_120pgqlw = {__Pyx_NAMESTR("pgqlw"), (PyCFunction)__pyx_pf_5gipsy_120pgqlw, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_120pgqlw(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_lw_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("pgqlw");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":346
 * def pgqlw():
 *    cdef fint lw_c
 *    pgqlw_c(&lw_c)             # <<<<<<<<<<<<<<
 *    return lw_c
 * 
 */
  pgqlw_c((&__pyx_v_lw_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":347
 *    cdef fint lw_c
 *    pgqlw_c(&lw_c)
 *    return lw_c             # <<<<<<<<<<<<<<
 * 
 * def pgqpos():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_lw_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqlw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":349
 *    return lw_c
 * 
 * def pgqpos():             # <<<<<<<<<<<<<<
 *    cdef float x_c, y_c
 *    pgqpos_c(&x_c, &y_c)
 */

static PyObject *__pyx_pf_5gipsy_121pgqpos(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_121pgqpos = {__Pyx_NAMESTR("pgqpos"), (PyCFunction)__pyx_pf_5gipsy_121pgqpos, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_121pgqpos(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  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("pgqpos");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":351
 * def pgqpos():
 *    cdef float x_c, y_c
 *    pgqpos_c(&x_c, &y_c)             # <<<<<<<<<<<<<<
 *    return (x_c, y_c)
 * 
 */
  pgqpos_c((&__pyx_v_x_c), (&__pyx_v_y_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":352
 *    cdef float x_c, y_c
 *    pgqpos_c(&x_c, &y_c)
 *    return (x_c, y_c)             # <<<<<<<<<<<<<<
 * 
 * def pgrect(float x1_c, float x2_c, float y1_c, float y2_c):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y_c); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("gipsy.pgqpos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":354
 *    return (x_c, y_c)
 * 
 * def pgrect(float x1_c, float x2_c, float y1_c, float y2_c):             # <<<<<<<<<<<<<<
 *    pgrect_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_122pgrect(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_122pgrect = {__Pyx_NAMESTR("pgrect"), (PyCFunction)__pyx_pf_5gipsy_122pgrect, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_122pgrect(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x1_c;
  float __pyx_v_x2_c;
  float __pyx_v_y1_c;
  float __pyx_v_y2_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x1_c,&__pyx_n_s__x2_c,&__pyx_n_s__y1_c,&__pyx_n_s__y2_c,0};
  __Pyx_RefNannySetupContext("pgrect");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x1_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x2_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgrect", 1, 4, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y1_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgrect", 1, 4, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y2_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgrect", 1, 4, 4, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgrect") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x1_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_x2_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y1_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_y1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y2_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_y2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgrect", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgrect", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":355
 * 
 * def pgrect(float x1_c, float x2_c, float y1_c, float y2_c):
 *    pgrect_c(&x1_c, &x2_c, &y1_c, &y2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsah(fint fs_c=1, float angle_c=45.0, float barb_c=0.3):
 */
  pgrect_c((&__pyx_v_x1_c), (&__pyx_v_x2_c), (&__pyx_v_y1_c), (&__pyx_v_y2_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":357
 *    pgrect_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 * def pgsah(fint fs_c=1, float angle_c=45.0, float barb_c=0.3):             # <<<<<<<<<<<<<<
 *    pgsah_c(&fs_c, &angle_c, &barb_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_123pgsah(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_123pgsah = {__Pyx_NAMESTR("pgsah"), (PyCFunction)__pyx_pf_5gipsy_123pgsah, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_123pgsah(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_fs_c;
  float __pyx_v_angle_c;
  float __pyx_v_barb_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fs_c,&__pyx_n_s__angle_c,&__pyx_n_s__barb_c,0};
  __Pyx_RefNannySetupContext("pgsah");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fs_c);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__angle_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__barb_c);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsah") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fs_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_fs_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_fs_c = ((fint)1);
    }
    if (values[1]) {
      __pyx_v_angle_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_angle_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_angle_c = ((float)45.0);
    }
    if (values[2]) {
      __pyx_v_barb_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_barb_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_barb_c = ((float)0.3);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsah", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsah", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":358
 * 
 * def pgsah(fint fs_c=1, float angle_c=45.0, float barb_c=0.3):
 *    pgsah_c(&fs_c, &angle_c, &barb_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsave():
 */
  pgsah_c((&__pyx_v_fs_c), (&__pyx_v_angle_c), (&__pyx_v_barb_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":360
 *    pgsah_c(&fs_c, &angle_c, &barb_c)
 * 
 * def pgsave():             # <<<<<<<<<<<<<<
 *    pgsave_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_124pgsave(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_124pgsave = {__Pyx_NAMESTR("pgsave"), (PyCFunction)__pyx_pf_5gipsy_124pgsave, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_124pgsave(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgsave");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":361
 * 
 * def pgsave():
 *    pgsave_c()             # <<<<<<<<<<<<<<
 * 
 * def pgunsa():
 */
  pgsave_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":363
 *    pgsave_c()
 * 
 * def pgunsa():             # <<<<<<<<<<<<<<
 *    pgunsa_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_125pgunsa(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_125pgunsa = {__Pyx_NAMESTR("pgunsa"), (PyCFunction)__pyx_pf_5gipsy_125pgunsa, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_125pgunsa(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgunsa");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":364
 * 
 * def pgunsa():
 *    pgunsa_c()             # <<<<<<<<<<<<<<
 * 
 * def pgscf(fint cf_c=1):
 */
  pgunsa_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":366
 *    pgunsa_c()
 * 
 * def pgscf(fint cf_c=1):             # <<<<<<<<<<<<<<
 *    pgscf_c(&cf_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_126pgscf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_126pgscf = {__Pyx_NAMESTR("pgscf"), (PyCFunction)__pyx_pf_5gipsy_126pgscf, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_126pgscf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_cf_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__cf_c,0};
  __Pyx_RefNannySetupContext("pgscf");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__cf_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgscf") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_cf_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_cf_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_cf_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgscf", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgscf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":367
 * 
 * def pgscf(fint cf_c=1):
 *    pgscf_c(&cf_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsch(float ch_c=1.0):     #### error in ppgplot-doc.txt!! ###
 */
  pgscf_c((&__pyx_v_cf_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":369
 *    pgscf_c(&cf_c)
 * 
 * def pgsch(float ch_c=1.0):     #### error in ppgplot-doc.txt!! ###             # <<<<<<<<<<<<<<
 *    pgsch_c(&ch_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_127pgsch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_127pgsch = {__Pyx_NAMESTR("pgsch"), (PyCFunction)__pyx_pf_5gipsy_127pgsch, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_127pgsch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_ch_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ch_c,0};
  __Pyx_RefNannySetupContext("pgsch");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ch_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsch") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_ch_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_ch_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ch_c = ((float)1.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsch", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":370
 * 
 * def pgsch(float ch_c=1.0):     #### error in ppgplot-doc.txt!! ###
 *    pgsch_c(&ch_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsci(fint ci_c=1):
 */
  pgsch_c((&__pyx_v_ch_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":372
 *    pgsch_c(&ch_c)
 * 
 * def pgsci(fint ci_c=1):             # <<<<<<<<<<<<<<
 *    pgsci_c(&ci_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_128pgsci(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_128pgsci = {__Pyx_NAMESTR("pgsci"), (PyCFunction)__pyx_pf_5gipsy_128pgsci, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_128pgsci(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_ci_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ci_c,0};
  __Pyx_RefNannySetupContext("pgsci");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ci_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsci") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_ci_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_ci_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ci_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsci", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsci", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":373
 * 
 * def pgsci(fint ci_c=1):
 *    pgsci_c(&ci_c)             # <<<<<<<<<<<<<<
 * 
 * def pgscir(fint c1_c=0, fint c2_c=0):
 */
  pgsci_c((&__pyx_v_ci_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":375
 *    pgsci_c(&ci_c)
 * 
 * def pgscir(fint c1_c=0, fint c2_c=0):             # <<<<<<<<<<<<<<
 *    if c1_c==0 and c2_c==0:
 *       pgqcol_c(&c1_c, &c2_c)
 */

static PyObject *__pyx_pf_5gipsy_129pgscir(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_129pgscir = {__Pyx_NAMESTR("pgscir"), (PyCFunction)__pyx_pf_5gipsy_129pgscir, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_129pgscir(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_c1_c;
  fint __pyx_v_c2_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  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;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__c1_c,&__pyx_n_s__c2_c,0};
  __Pyx_RefNannySetupContext("pgscir");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c1_c);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c2_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgscir") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_c1_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_c1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_c1_c = ((fint)0);
    }
    if (values[1]) {
      __pyx_v_c2_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_c2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_c2_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgscir", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgscir", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":376
 * 
 * def pgscir(fint c1_c=0, fint c2_c=0):
 *    if c1_c==0 and c2_c==0:             # <<<<<<<<<<<<<<
 *       pgqcol_c(&c1_c, &c2_c)
 *       if c2_c>15: c1_c = 16
 */
  __pyx_t_1 = (__pyx_v_c1_c == 0);
  if (__pyx_t_1) {
    __pyx_t_2 = (__pyx_v_c2_c == 0);
    __pyx_t_3 = __pyx_t_2;
  } else {
    __pyx_t_3 = __pyx_t_1;
  }
  if (__pyx_t_3) {

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":377
 * def pgscir(fint c1_c=0, fint c2_c=0):
 *    if c1_c==0 and c2_c==0:
 *       pgqcol_c(&c1_c, &c2_c)             # <<<<<<<<<<<<<<
 *       if c2_c>15: c1_c = 16
 *       else:       c1_c = 1
 */
    pgqcol_c((&__pyx_v_c1_c), (&__pyx_v_c2_c));

    /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":378
 *    if c1_c==0 and c2_c==0:
 *       pgqcol_c(&c1_c, &c2_c)
 *       if c2_c>15: c1_c = 16             # <<<<<<<<<<<<<<
 *       else:       c1_c = 1
 *    pgscir_c(&c1_c, &c2_c)
 */
    __pyx_t_3 = (__pyx_v_c2_c > 15);
    if (__pyx_t_3) {
      __pyx_v_c1_c = 16;
      goto __pyx_L7;
    }
    /*else*/ {

      /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":379
 *       pgqcol_c(&c1_c, &c2_c)
 *       if c2_c>15: c1_c = 16
 *       else:       c1_c = 1             # <<<<<<<<<<<<<<
 *    pgscir_c(&c1_c, &c2_c)
 * 
 */
      __pyx_v_c1_c = 1;
    }
    __pyx_L7:;
    goto __pyx_L6;
  }
  __pyx_L6:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":380
 *       if c2_c>15: c1_c = 16
 *       else:       c1_c = 1
 *    pgscir_c(&c1_c, &c2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgscr(fint ci_c, float r_c, float g_c, float b_c):
 */
  pgscir_c((&__pyx_v_c1_c), (&__pyx_v_c2_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":382
 *    pgscir_c(&c1_c, &c2_c)
 * 
 * def pgscr(fint ci_c, float r_c, float g_c, float b_c):             # <<<<<<<<<<<<<<
 *    pgscr_c(&ci_c, &r_c, &g_c, &b_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_130pgscr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_130pgscr = {__Pyx_NAMESTR("pgscr"), (PyCFunction)__pyx_pf_5gipsy_130pgscr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_130pgscr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_ci_c;
  float __pyx_v_r_c;
  float __pyx_v_g_c;
  float __pyx_v_b_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ci_c,&__pyx_n_s__r_c,&__pyx_n_s__g_c,&__pyx_n_s__b_c,0};
  __Pyx_RefNannySetupContext("pgscr");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ci_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__r_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgscr", 1, 4, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__g_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgscr", 1, 4, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__b_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgscr", 1, 4, 4, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgscr") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_ci_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_ci_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_r_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_r_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_g_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_g_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_b_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_b_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgscr", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgscr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":383
 * 
 * def pgscr(fint ci_c, float r_c, float g_c, float b_c):
 *    pgscr_c(&ci_c, &r_c, &g_c, &b_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsfs(fint fs_c=1):
 */
  pgscr_c((&__pyx_v_ci_c), (&__pyx_v_r_c), (&__pyx_v_g_c), (&__pyx_v_b_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":385
 *    pgscr_c(&ci_c, &r_c, &g_c, &b_c)
 * 
 * def pgsfs(fint fs_c=1):             # <<<<<<<<<<<<<<
 *    pgsfs_c(&fs_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_131pgsfs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_131pgsfs = {__Pyx_NAMESTR("pgsfs"), (PyCFunction)__pyx_pf_5gipsy_131pgsfs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_131pgsfs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_fs_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fs_c,0};
  __Pyx_RefNannySetupContext("pgsfs");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fs_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsfs") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fs_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_fs_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_fs_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsfs", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsfs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":386
 * 
 * def pgsfs(fint fs_c=1):
 *    pgsfs_c(&fs_c)             # <<<<<<<<<<<<<<
 * 
 * def pgshls(fint ci_c, float hue_c, float level_c, float saturation_c):
 */
  pgsfs_c((&__pyx_v_fs_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":388
 *    pgsfs_c(&fs_c)
 * 
 * def pgshls(fint ci_c, float hue_c, float level_c, float saturation_c):             # <<<<<<<<<<<<<<
 *    pgshls_c(&ci_c, &hue_c, &level_c, &saturation_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_132pgshls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_132pgshls = {__Pyx_NAMESTR("pgshls"), (PyCFunction)__pyx_pf_5gipsy_132pgshls, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_132pgshls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_ci_c;
  float __pyx_v_hue_c;
  float __pyx_v_level_c;
  float __pyx_v_saturation_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ci_c,&__pyx_n_s__hue_c,&__pyx_n_s__level_c,&__pyx_n_s__saturation_c,0};
  __Pyx_RefNannySetupContext("pgshls");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ci_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__hue_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgshls", 1, 4, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgshls", 1, 4, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__saturation_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgshls", 1, 4, 4, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgshls") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_ci_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_ci_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_hue_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_hue_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_level_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_level_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_saturation_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_saturation_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgshls", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgshls", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":389
 * 
 * def pgshls(fint ci_c, float hue_c, float level_c, float saturation_c):
 *    pgshls_c(&ci_c, &hue_c, &level_c, &saturation_c)             # <<<<<<<<<<<<<<
 * 
 * def pgshs(float angle_c, float sepn_c, float phase_c):
 */
  pgshls_c((&__pyx_v_ci_c), (&__pyx_v_hue_c), (&__pyx_v_level_c), (&__pyx_v_saturation_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":391
 *    pgshls_c(&ci_c, &hue_c, &level_c, &saturation_c)
 * 
 * def pgshs(float angle_c, float sepn_c, float phase_c):             # <<<<<<<<<<<<<<
 *    pgshs_c(&angle_c, &sepn_c, &phase_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_133pgshs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_133pgshs = {__Pyx_NAMESTR("pgshs"), (PyCFunction)__pyx_pf_5gipsy_133pgshs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_133pgshs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_angle_c;
  float __pyx_v_sepn_c;
  float __pyx_v_phase_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__angle_c,&__pyx_n_s__sepn_c,&__pyx_n_s__phase_c,0};
  __Pyx_RefNannySetupContext("pgshs");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__angle_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__sepn_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgshs", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__phase_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgshs", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgshs") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_angle_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_angle_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_sepn_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_sepn_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_phase_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_phase_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgshs", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgshs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":392
 * 
 * def pgshs(float angle_c, float sepn_c, float phase_c):
 *    pgshs_c(&angle_c, &sepn_c, &phase_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsitf(fint itf_c):
 */
  pgshs_c((&__pyx_v_angle_c), (&__pyx_v_sepn_c), (&__pyx_v_phase_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":394
 *    pgshs_c(&angle_c, &sepn_c, &phase_c)
 * 
 * def pgsitf(fint itf_c):             # <<<<<<<<<<<<<<
 *    pgsitf_c(&itf_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_134pgsitf(PyObject *__pyx_self, PyObject *__pyx_arg_itf_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_134pgsitf = {__Pyx_NAMESTR("pgsitf"), (PyCFunction)__pyx_pf_5gipsy_134pgsitf, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_134pgsitf(PyObject *__pyx_self, PyObject *__pyx_arg_itf_c) {
  fint __pyx_v_itf_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgsitf");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_itf_c); {
    __pyx_v_itf_c = __Pyx_PyInt_from_py_fint(__pyx_arg_itf_c); if (unlikely((__pyx_v_itf_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsitf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":395
 * 
 * def pgsitf(fint itf_c):
 *    pgsitf_c(&itf_c)             # <<<<<<<<<<<<<<
 * 
 * def pgslct(fint devid_c=0):
 */
  pgsitf_c((&__pyx_v_itf_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":397
 *    pgsitf_c(&itf_c)
 * 
 * def pgslct(fint devid_c=0):             # <<<<<<<<<<<<<<
 *    pgslct_c(&devid_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_135pgslct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_135pgslct = {__Pyx_NAMESTR("pgslct"), (PyCFunction)__pyx_pf_5gipsy_135pgslct, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_135pgslct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_devid_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__devid_c,0};
  __Pyx_RefNannySetupContext("pgslct");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__devid_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgslct") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_devid_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_devid_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_devid_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgslct", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgslct", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":398
 * 
 * def pgslct(fint devid_c=0):
 *    pgslct_c(&devid_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsls(fint ls_c=0):
 */
  pgslct_c((&__pyx_v_devid_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":400
 *    pgslct_c(&devid_c)
 * 
 * def pgsls(fint ls_c=0):             # <<<<<<<<<<<<<<
 *    pgsls_c(&ls_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_136pgsls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_136pgsls = {__Pyx_NAMESTR("pgsls"), (PyCFunction)__pyx_pf_5gipsy_136pgsls, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_136pgsls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_ls_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__ls_c,0};
  __Pyx_RefNannySetupContext("pgsls");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ls_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsls") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_ls_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_ls_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ls_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsls", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsls", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":401
 * 
 * def pgsls(fint ls_c=0):
 *    pgsls_c(&ls_c)             # <<<<<<<<<<<<<<
 * 
 * def pgslw(fint lw_c=1):
 */
  pgsls_c((&__pyx_v_ls_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":403
 *    pgsls_c(&ls_c)
 * 
 * def pgslw(fint lw_c=1):             # <<<<<<<<<<<<<<
 *    pgslw_c(&lw_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_137pgslw(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_137pgslw = {__Pyx_NAMESTR("pgslw"), (PyCFunction)__pyx_pf_5gipsy_137pgslw, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_137pgslw(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_lw_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lw_c,0};
  __Pyx_RefNannySetupContext("pgslw");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lw_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgslw") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_lw_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_lw_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_lw_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgslw", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgslw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":404
 * 
 * def pgslw(fint lw_c=1):
 *    pgslw_c(&lw_c)             # <<<<<<<<<<<<<<
 * 
 * def pgstbg(fint tbg_c=0):
 */
  pgslw_c((&__pyx_v_lw_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":406
 *    pgslw_c(&lw_c)
 * 
 * def pgstbg(fint tbg_c=0):             # <<<<<<<<<<<<<<
 *    pgstbg_c(&tbg_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_138pgstbg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_138pgstbg = {__Pyx_NAMESTR("pgstbg"), (PyCFunction)__pyx_pf_5gipsy_138pgstbg, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_138pgstbg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_tbg_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tbg_c,0};
  __Pyx_RefNannySetupContext("pgstbg");
  __pyx_self = __pyx_self;
  {
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tbg_c);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgstbg") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_tbg_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_tbg_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_tbg_c = ((fint)0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgstbg", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgstbg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":407
 * 
 * def pgstbg(fint tbg_c=0):
 *    pgstbg_c(&tbg_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsubp(fint xnsub_c=1, fint ynsub_c=1):
 */
  pgstbg_c((&__pyx_v_tbg_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":409
 *    pgstbg_c(&tbg_c)
 * 
 * def pgsubp(fint xnsub_c=1, fint ynsub_c=1):             # <<<<<<<<<<<<<<
 *    pgsubp_c(&xnsub_c, &ynsub_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_139pgsubp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_139pgsubp = {__Pyx_NAMESTR("pgsubp"), (PyCFunction)__pyx_pf_5gipsy_139pgsubp, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_139pgsubp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  fint __pyx_v_xnsub_c;
  fint __pyx_v_ynsub_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xnsub_c,&__pyx_n_s__ynsub_c,0};
  __Pyx_RefNannySetupContext("pgsubp");
  __pyx_self = __pyx_self;
  {
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xnsub_c);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ynsub_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsubp") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_xnsub_c = __Pyx_PyInt_from_py_fint(values[0]); if (unlikely((__pyx_v_xnsub_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_xnsub_c = ((fint)1);
    }
    if (values[1]) {
      __pyx_v_ynsub_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_ynsub_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ynsub_c = ((fint)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsubp", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsubp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":410
 * 
 * def pgsubp(fint xnsub_c=1, fint ynsub_c=1):
 *    pgsubp_c(&xnsub_c, &ynsub_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsvp(float xleft_c=0.0, float xright_c=1.0,
 */
  pgsubp_c((&__pyx_v_xnsub_c), (&__pyx_v_ynsub_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":412
 *    pgsubp_c(&xnsub_c, &ynsub_c)
 * 
 * def pgsvp(float xleft_c=0.0, float xright_c=1.0,             # <<<<<<<<<<<<<<
 *           float ybot_c=0.0, float ytop_c=1.0):
 *    pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 */

static PyObject *__pyx_pf_5gipsy_140pgsvp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_140pgsvp = {__Pyx_NAMESTR("pgsvp"), (PyCFunction)__pyx_pf_5gipsy_140pgsvp, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_140pgsvp(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_xleft_c;
  float __pyx_v_xright_c;
  float __pyx_v_ybot_c;
  float __pyx_v_ytop_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xleft_c,&__pyx_n_s__xright_c,&__pyx_n_s__ybot_c,&__pyx_n_s__ytop_c,0};
  __Pyx_RefNannySetupContext("pgsvp");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xleft_c);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xright_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ybot_c);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ytop_c);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgsvp") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_xleft_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xleft_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_xleft_c = ((float)0.0);
    }
    if (values[1]) {
      __pyx_v_xright_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_xright_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_xright_c = ((float)1.0);
    }
    if (values[2]) {
      __pyx_v_ybot_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_ybot_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {

      /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":413
 * 
 * def pgsvp(float xleft_c=0.0, float xright_c=1.0,
 *           float ybot_c=0.0, float ytop_c=1.0):             # <<<<<<<<<<<<<<
 *    pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 */
      __pyx_v_ybot_c = ((float)0.0);
    }
    if (values[3]) {
      __pyx_v_ytop_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_ytop_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_ytop_c = ((float)1.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgsvp", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsvp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":414
 * def pgsvp(float xleft_c=0.0, float xright_c=1.0,
 *           float ybot_c=0.0, float ytop_c=1.0):
 *    pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)             # <<<<<<<<<<<<<<
 * 
 * def pgswin(float x1_c=0.0, float x2_c=1.0, float y1_c=0.0, float y2_c=1.0):
 */
  pgsvp_c((&__pyx_v_xleft_c), (&__pyx_v_xright_c), (&__pyx_v_ybot_c), (&__pyx_v_ytop_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":416
 *    pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 * def pgswin(float x1_c=0.0, float x2_c=1.0, float y1_c=0.0, float y2_c=1.0):             # <<<<<<<<<<<<<<
 *    pgswin_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_141pgswin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_141pgswin = {__Pyx_NAMESTR("pgswin"), (PyCFunction)__pyx_pf_5gipsy_141pgswin, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_141pgswin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x1_c;
  float __pyx_v_x2_c;
  float __pyx_v_y1_c;
  float __pyx_v_y2_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x1_c,&__pyx_n_s__x2_c,&__pyx_n_s__y1_c,&__pyx_n_s__y2_c,0};
  __Pyx_RefNannySetupContext("pgswin");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x1_c);
          if (value) { values[0] = value; kw_args--; }
        }
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x2_c);
          if (value) { values[1] = value; kw_args--; }
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y1_c);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y2_c);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgswin") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_x1_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_x1_c = ((float)0.0);
    }
    if (values[1]) {
      __pyx_v_x2_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_x2_c = ((float)1.0);
    }
    if (values[2]) {
      __pyx_v_y1_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_y1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_y1_c = ((float)0.0);
    }
    if (values[3]) {
      __pyx_v_y2_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_y2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_y2_c = ((float)1.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgswin", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgswin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":417
 * 
 * def pgswin(float x1_c=0.0, float x2_c=1.0, float y1_c=0.0, float y2_c=1.0):
 *    pgswin_c(&x1_c, &x2_c, &y1_c, &y2_c)             # <<<<<<<<<<<<<<
 * 
 * def pgtext(float x_c, float y_c, text):
 */
  pgswin_c((&__pyx_v_x1_c), (&__pyx_v_x2_c), (&__pyx_v_y1_c), (&__pyx_v_y2_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":419
 *    pgswin_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 * def pgtext(float x_c, float y_c, text):             # <<<<<<<<<<<<<<
 *    pgtext_c(&x_c, &y_c, tofchar(text))
 * 
 */

static PyObject *__pyx_pf_5gipsy_142pgtext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_142pgtext = {__Pyx_NAMESTR("pgtext"), (PyCFunction)__pyx_pf_5gipsy_142pgtext, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_142pgtext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x_c;
  float __pyx_v_y_c;
  PyObject *__pyx_v_text = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x_c,&__pyx_n_s__y_c,&__pyx_n_s__text,0};
  __Pyx_RefNannySetupContext("pgtext");
  __pyx_self = __pyx_self;
  {
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgtext", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__text);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgtext", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgtext") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_text = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgtext", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":420
 * 
 * def pgtext(float x_c, float y_c, text):
 *    pgtext_c(&x_c, &y_c, tofchar(text))             # <<<<<<<<<<<<<<
 * 
 * def pgupdt():
 */
  pgtext_c((&__pyx_v_x_c), (&__pyx_v_y_c), __pyx_f_5gipsy_tofchar(__pyx_v_text));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":422
 *    pgtext_c(&x_c, &y_c, tofchar(text))
 * 
 * def pgupdt():             # <<<<<<<<<<<<<<
 *    pgupdt_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_143pgupdt(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_143pgupdt = {__Pyx_NAMESTR("pgupdt"), (PyCFunction)__pyx_pf_5gipsy_143pgupdt, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_143pgupdt(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgupdt");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":423
 * 
 * def pgupdt():
 *    pgupdt_c()             # <<<<<<<<<<<<<<
 * 
 * def pgvsiz(float xleft_c, float xright_c, float ybot_c, float ytop_c):
 */
  pgupdt_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":425
 *    pgupdt_c()
 * 
 * def pgvsiz(float xleft_c, float xright_c, float ybot_c, float ytop_c):             # <<<<<<<<<<<<<<
 *    pgvsiz_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_144pgvsiz(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_144pgvsiz = {__Pyx_NAMESTR("pgvsiz"), (PyCFunction)__pyx_pf_5gipsy_144pgvsiz, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_144pgvsiz(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_xleft_c;
  float __pyx_v_xright_c;
  float __pyx_v_ybot_c;
  float __pyx_v_ytop_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xleft_c,&__pyx_n_s__xright_c,&__pyx_n_s__ybot_c,&__pyx_n_s__ytop_c,0};
  __Pyx_RefNannySetupContext("pgvsiz");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xleft_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xright_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgvsiz", 1, 4, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ybot_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgvsiz", 1, 4, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ytop_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgvsiz", 1, 4, 4, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgvsiz") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_xleft_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xleft_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_xright_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_xright_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ybot_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_ybot_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ytop_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_ytop_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgvsiz", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgvsiz", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":426
 * 
 * def pgvsiz(float xleft_c, float xright_c, float ybot_c, float ytop_c):
 *    pgvsiz_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)             # <<<<<<<<<<<<<<
 * 
 * def pgvstd():
 */
  pgvsiz_c((&__pyx_v_xleft_c), (&__pyx_v_xright_c), (&__pyx_v_ybot_c), (&__pyx_v_ytop_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":428
 *    pgvsiz_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 * def pgvstd():             # <<<<<<<<<<<<<<
 *    pgvstd_c()
 * 
 */

static PyObject *__pyx_pf_5gipsy_145pgvstd(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_145pgvstd = {__Pyx_NAMESTR("pgvstd"), (PyCFunction)__pyx_pf_5gipsy_145pgvstd, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_145pgvstd(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pgvstd");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":429
 * 
 * def pgvstd():
 *    pgvstd_c()             # <<<<<<<<<<<<<<
 * 
 * def pgwedg(side, float disp_c, float width_c, float fg_c, float bg_c, label):
 */
  pgvstd_c();

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":431
 *    pgvstd_c()
 * 
 * def pgwedg(side, float disp_c, float width_c, float fg_c, float bg_c, label):             # <<<<<<<<<<<<<<
 *    pgwedg_c(tofchar(side), &disp_c, &width_c, &fg_c, &bg_c, tofchar(label))
 * 
 */

static PyObject *__pyx_pf_5gipsy_146pgwedg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_146pgwedg = {__Pyx_NAMESTR("pgwedg"), (PyCFunction)__pyx_pf_5gipsy_146pgwedg, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_146pgwedg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_side = 0;
  float __pyx_v_disp_c;
  float __pyx_v_width_c;
  float __pyx_v_fg_c;
  float __pyx_v_bg_c;
  PyObject *__pyx_v_label = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__side,&__pyx_n_s__disp_c,&__pyx_n_s__width_c,&__pyx_n_s__fg_c,&__pyx_n_s__bg_c,&__pyx_n_s__label,0};
  __Pyx_RefNannySetupContext("pgwedg");
  __pyx_self = __pyx_self;
  {
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__side);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__disp_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwedg", 1, 6, 6, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__width_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwedg", 1, 6, 6, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__fg_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwedg", 1, 6, 6, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bg_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwedg", 1, 6, 6, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__label);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwedg", 1, 6, 6, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgwedg") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_side = values[0];
    __pyx_v_disp_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_disp_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_width_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_width_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_fg_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_fg_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_bg_c = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_bg_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_label = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgwedg", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgwedg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":432
 * 
 * def pgwedg(side, float disp_c, float width_c, float fg_c, float bg_c, label):
 *    pgwedg_c(tofchar(side), &disp_c, &width_c, &fg_c, &bg_c, tofchar(label))             # <<<<<<<<<<<<<<
 * 
 * def pgwnad(float x1_c, float x2_c, float y1_c, float y2_c):
 */
  pgwedg_c(__pyx_f_5gipsy_tofchar(__pyx_v_side), (&__pyx_v_disp_c), (&__pyx_v_width_c), (&__pyx_v_fg_c), (&__pyx_v_bg_c), __pyx_f_5gipsy_tofchar(__pyx_v_label));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":434
 *    pgwedg_c(tofchar(side), &disp_c, &width_c, &fg_c, &bg_c, tofchar(label))
 * 
 * def pgwnad(float x1_c, float x2_c, float y1_c, float y2_c):             # <<<<<<<<<<<<<<
 *    pgwnad_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_147pgwnad(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_147pgwnad = {__Pyx_NAMESTR("pgwnad"), (PyCFunction)__pyx_pf_5gipsy_147pgwnad, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_147pgwnad(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_x1_c;
  float __pyx_v_x2_c;
  float __pyx_v_y1_c;
  float __pyx_v_y2_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x1_c,&__pyx_n_s__x2_c,&__pyx_n_s__y1_c,&__pyx_n_s__y2_c,0};
  __Pyx_RefNannySetupContext("pgwnad");
  __pyx_self = __pyx_self;
  {
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x1_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x2_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwnad", 1, 4, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y1_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwnad", 1, 4, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y2_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgwnad", 1, 4, 4, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgwnad") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x1_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_x2_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y1_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_y1_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_y2_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_y2_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgwnad", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgwnad", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":435
 * 
 * def pgwnad(float x1_c, float x2_c, float y1_c, float y2_c):
 *    pgwnad_c(&x1_c, &x2_c, &y1_c, &y2_c)             # <<<<<<<<<<<<<<
 * 
 * #####  GIPSY-private functions:
 */
  pgwnad_c((&__pyx_v_x1_c), (&__pyx_v_x2_c), (&__pyx_v_y1_c), (&__pyx_v_y2_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":439
 * #####  GIPSY-private functions:
 * 
 * def pgqimi():             # <<<<<<<<<<<<<<
 *    cdef fint intp_c
 *    pgqimi_c(&intp_c)
 */

static PyObject *__pyx_pf_5gipsy_148pgqimi(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_148pgqimi = {__Pyx_NAMESTR("pgqimi"), (PyCFunction)__pyx_pf_5gipsy_148pgqimi, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_148pgqimi(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_intp_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("pgqimi");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":441
 * def pgqimi():
 *    cdef fint intp_c
 *    pgqimi_c(&intp_c)             # <<<<<<<<<<<<<<
 *    return intp_c
 * 
 */
  pgqimi_c((&__pyx_v_intp_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":442
 *    cdef fint intp_c
 *    pgqimi_c(&intp_c)
 *    return intp_c             # <<<<<<<<<<<<<<
 * 
 * def pgsimi(bool i_c):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_intp_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqimi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":444
 *    return intp_c
 * 
 * def pgsimi(bool i_c):             # <<<<<<<<<<<<<<
 *    pgsimi_c(&i_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_149pgsimi(PyObject *__pyx_self, PyObject *__pyx_arg_i_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_149pgsimi = {__Pyx_NAMESTR("pgsimi"), (PyCFunction)__pyx_pf_5gipsy_149pgsimi, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_149pgsimi(PyObject *__pyx_self, PyObject *__pyx_arg_i_c) {
  bool __pyx_v_i_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgsimi");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_i_c); {
    __pyx_v_i_c = __Pyx_PyInt_from_py_bool(__pyx_arg_i_c); if (unlikely((__pyx_v_i_c == (bool)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsimi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":445
 * 
 * def pgsimi(bool i_c):
 *    pgsimi_c(&i_c)             # <<<<<<<<<<<<<<
 * 
 * def pgcotic(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,
 */
  pgsimi_c((&__pyx_v_i_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":447
 *    pgsimi_c(&i_c)
 * 
 * def pgcotic(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,             # <<<<<<<<<<<<<<
 *             fint j1_c, fint j2_c, c, fint nc_c, tr, float blank_c,
 *             float tlen_c, fint tstep_c):
 */

static PyObject *__pyx_pf_5gipsy_150pgcotic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_150pgcotic = {__Pyx_NAMESTR("pgcotic"), (PyCFunction)__pyx_pf_5gipsy_150pgcotic, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_150pgcotic(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  fint __pyx_v_idim_c;
  fint __pyx_v_jdim_c;
  fint __pyx_v_i1_c;
  fint __pyx_v_i2_c;
  fint __pyx_v_j1_c;
  fint __pyx_v_j2_c;
  PyObject *__pyx_v_c = 0;
  fint __pyx_v_nc_c;
  PyObject *__pyx_v_tr = 0;
  float __pyx_v_blank_c;
  float __pyx_v_tlen_c;
  fint __pyx_v_tstep_c;
  long __pyx_v_a_l;
  long __pyx_v_c_l;
  long __pyx_v_tr_l;
  PyObject *__pyx_v_a_ptr = NULL;
  PyObject *__pyx_v_c_ptr = NULL;
  PyObject *__pyx_v_tr_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__idim_c,&__pyx_n_s__jdim_c,&__pyx_n_s__i1_c,&__pyx_n_s__i2_c,&__pyx_n_s__j1_c,&__pyx_n_s__j2_c,&__pyx_n_s__c,&__pyx_n_s__nc_c,&__pyx_n_s__tr,&__pyx_n_s__blank_c,&__pyx_n_s__tlen_c,&__pyx_n_s__tstep_c,0};
  __Pyx_RefNannySetupContext("pgcotic");
  __pyx_self = __pyx_self;
  {
    PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__a);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__idim_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__jdim_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i1_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__i2_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j1_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__j2_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  8:
        values[8] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__nc_c);
        if (likely(values[8])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 8); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  9:
        values[9] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tr);
        if (likely(values[9])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 9); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 10:
        values[10] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__blank_c);
        if (likely(values[10])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 10); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 11:
        values[11] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tlen_c);
        if (likely(values[11])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 11); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case 12:
        values[12] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__tstep_c);
        if (likely(values[12])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, 12); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgcotic") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
      values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
    }
    __pyx_v_a = values[0];
    __pyx_v_idim_c = __Pyx_PyInt_from_py_fint(values[1]); if (unlikely((__pyx_v_idim_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_jdim_c = __Pyx_PyInt_from_py_fint(values[2]); if (unlikely((__pyx_v_jdim_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i1_c = __Pyx_PyInt_from_py_fint(values[3]); if (unlikely((__pyx_v_i1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_i2_c = __Pyx_PyInt_from_py_fint(values[4]); if (unlikely((__pyx_v_i2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j1_c = __Pyx_PyInt_from_py_fint(values[5]); if (unlikely((__pyx_v_j1_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_j2_c = __Pyx_PyInt_from_py_fint(values[6]); if (unlikely((__pyx_v_j2_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_c = values[7];
    __pyx_v_nc_c = __Pyx_PyInt_from_py_fint(values[8]); if (unlikely((__pyx_v_nc_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tr = values[9];
    __pyx_v_blank_c = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_blank_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tlen_c = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_tlen_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_tstep_c = __Pyx_PyInt_from_py_fint(values[12]); if (unlikely((__pyx_v_tstep_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgcotic", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgcotic", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":451
 *             float tlen_c, fint tstep_c):
 *    cdef long a_l, c_l, tr_l
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr             # <<<<<<<<<<<<<<
 *    c_ptr = realptr(c, nc_c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyInt_FromLong((__pyx_v_idim_c * __pyx_v_jdim_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_v_a_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_a_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_a_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":452
 *    cdef long a_l, c_l, tr_l
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
 *    c_ptr = realptr(c, nc_c); c_l = c_ptr.ptr             # <<<<<<<<<<<<<<
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgcotic_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_to_py_fint(__pyx_v_nc_c); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_c);
  __Pyx_GIVEREF(__pyx_v_c);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_c_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_c_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_c_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":453
 *    a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
 *    c_ptr = realptr(c, nc_c); c_l = c_ptr.ptr
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgcotic_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *              <float*>c_l, &nc_c, <float*>tr_l, &blank_c, &tlen_c, &tstep_c)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_v_tr);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tr);
  __Pyx_GIVEREF(__pyx_v_tr);
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_v_tr_ptr = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_tr_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_2); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_tr_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":455
 *    tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
 *    pgcotic_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
 *              <float*>c_l, &nc_c, <float*>tr_l, &blank_c, &tlen_c, &tstep_c)             # <<<<<<<<<<<<<<
 * 
 * def pgexist(fint n_c):
 */
  pgcotic_c(((float *)__pyx_v_a_l), (&__pyx_v_idim_c), (&__pyx_v_jdim_c), (&__pyx_v_i1_c), (&__pyx_v_i2_c), (&__pyx_v_j1_c), (&__pyx_v_j2_c), ((float *)__pyx_v_c_l), (&__pyx_v_nc_c), ((float *)__pyx_v_tr_l), (&__pyx_v_blank_c), (&__pyx_v_tlen_c), (&__pyx_v_tstep_c));

  __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("gipsy.pgcotic", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a_ptr);
  __Pyx_XDECREF(__pyx_v_c_ptr);
  __Pyx_XDECREF(__pyx_v_tr_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":457
 *              <float*>c_l, &nc_c, <float*>tr_l, &blank_c, &tlen_c, &tstep_c)
 * 
 * def pgexist(fint n_c):             # <<<<<<<<<<<<<<
 *    return pgexist_c(&n_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_151pgexist(PyObject *__pyx_self, PyObject *__pyx_arg_n_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_151pgexist = {__Pyx_NAMESTR("pgexist"), (PyCFunction)__pyx_pf_5gipsy_151pgexist, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_151pgexist(PyObject *__pyx_self, PyObject *__pyx_arg_n_c) {
  fint __pyx_v_n_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("pgexist");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_n_c); {
    __pyx_v_n_c = __Pyx_PyInt_from_py_fint(__pyx_arg_n_c); if (unlikely((__pyx_v_n_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgexist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":458
 * 
 * def pgexist(fint n_c):
 *    return pgexist_c(&n_c)             # <<<<<<<<<<<<<<
 * 
 * def pgpat(pat):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(pgexist_c((&__pyx_v_n_c))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgexist", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":460
 *    return pgexist_c(&n_c)
 * 
 * def pgpat(pat):             # <<<<<<<<<<<<<<
 *    cdef long pat_l
 *    pat_ptr = realptr(pat, 8); pat_l = pat_ptr.ptr
 */

static PyObject *__pyx_pf_5gipsy_152pgpat(PyObject *__pyx_self, PyObject *__pyx_v_pat); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_152pgpat = {__Pyx_NAMESTR("pgpat"), (PyCFunction)__pyx_pf_5gipsy_152pgpat, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_152pgpat(PyObject *__pyx_self, PyObject *__pyx_v_pat) {
  long __pyx_v_pat_l;
  PyObject *__pyx_v_pat_ptr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgpat");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":462
 * def pgpat(pat):
 *    cdef long pat_l
 *    pat_ptr = realptr(pat, 8); pat_l = pat_ptr.ptr             # <<<<<<<<<<<<<<
 *    pgpat_c(<float*>pat_l)
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__realptr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(__pyx_v_pat);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pat);
  __Pyx_GIVEREF(__pyx_v_pat);
  __Pyx_INCREF(__pyx_int_8);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_8);
  __Pyx_GIVEREF(__pyx_int_8);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_v_pat_ptr = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_pat_ptr, __pyx_n_s__ptr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_AsLong(__pyx_t_3); if (unlikely((__pyx_t_4 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_pat_l = __pyx_t_4;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":463
 *    cdef long pat_l
 *    pat_ptr = realptr(pat, 8); pat_l = pat_ptr.ptr
 *    pgpat_c(<float*>pat_l)             # <<<<<<<<<<<<<<
 * 
 * def pgellipse(float xcentre_c, float ycentre_c, float major_c, float minor_c,
 */
  pgpat_c(((float *)__pyx_v_pat_l));

  __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("gipsy.pgpat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pat_ptr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":465
 *    pgpat_c(<float*>pat_l)
 * 
 * def pgellipse(float xcentre_c, float ycentre_c, float major_c, float minor_c,             # <<<<<<<<<<<<<<
 *               float pa_c, float startang_c, float endang_c, float delta_c):
 *    pgellipse_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
 */

static PyObject *__pyx_pf_5gipsy_153pgellipse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_153pgellipse = {__Pyx_NAMESTR("pgellipse"), (PyCFunction)__pyx_pf_5gipsy_153pgellipse, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_153pgellipse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_xcentre_c;
  float __pyx_v_ycentre_c;
  float __pyx_v_major_c;
  float __pyx_v_minor_c;
  float __pyx_v_pa_c;
  float __pyx_v_startang_c;
  float __pyx_v_endang_c;
  float __pyx_v_delta_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xcentre_c,&__pyx_n_s__ycentre_c,&__pyx_n_s__major_c,&__pyx_n_s__minor_c,&__pyx_n_s__pa_c,&__pyx_n_s__startang_c,&__pyx_n_s__endang_c,&__pyx_n_s__delta_c,0};
  __Pyx_RefNannySetupContext("pgellipse");
  __pyx_self = __pyx_self;
  {
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xcentre_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ycentre_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__major_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__minor_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pa_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__startang_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__endang_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delta_c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgellipse") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
    }
    __pyx_v_xcentre_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xcentre_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ycentre_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_ycentre_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_major_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_major_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_minor_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_minor_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_pa_c = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_pa_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_startang_c = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_startang_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_endang_c = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_endang_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_delta_c = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_delta_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgellipse", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgellipse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":468
 *               float pa_c, float startang_c, float endang_c, float delta_c):
 *    pgellipse_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
 *                &pa_c, &startang_c, &endang_c, &delta_c)             # <<<<<<<<<<<<<<
 * 
 * def pgbeam(float xcentre_c, float ycentre_c, float major_c, float minor_c,
 */
  pgellipse_c((&__pyx_v_xcentre_c), (&__pyx_v_ycentre_c), (&__pyx_v_major_c), (&__pyx_v_minor_c), (&__pyx_v_pa_c), (&__pyx_v_startang_c), (&__pyx_v_endang_c), (&__pyx_v_delta_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":470
 *                &pa_c, &startang_c, &endang_c, &delta_c)
 * 
 * def pgbeam(float xcentre_c, float ycentre_c, float major_c, float minor_c,             # <<<<<<<<<<<<<<
 *               float pa_c, float delta_c, float slope_c, fint shape_c):
 *    pgbeam_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
 */

static PyObject *__pyx_pf_5gipsy_154pgbeam(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_154pgbeam = {__Pyx_NAMESTR("pgbeam"), (PyCFunction)__pyx_pf_5gipsy_154pgbeam, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_154pgbeam(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  float __pyx_v_xcentre_c;
  float __pyx_v_ycentre_c;
  float __pyx_v_major_c;
  float __pyx_v_minor_c;
  float __pyx_v_pa_c;
  float __pyx_v_delta_c;
  float __pyx_v_slope_c;
  fint __pyx_v_shape_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xcentre_c,&__pyx_n_s__ycentre_c,&__pyx_n_s__major_c,&__pyx_n_s__minor_c,&__pyx_n_s__pa_c,&__pyx_n_s__delta_c,&__pyx_n_s__slope_c,&__pyx_n_s__shape_c,0};
  __Pyx_RefNannySetupContext("pgbeam");
  __pyx_self = __pyx_self;
  {
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  0:
        values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__xcentre_c);
        if (likely(values[0])) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__ycentre_c);
        if (likely(values[1])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__major_c);
        if (likely(values[2])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__minor_c);
        if (likely(values[3])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  4:
        values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pa_c);
        if (likely(values[4])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  5:
        values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delta_c);
        if (likely(values[5])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 5); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  6:
        values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__slope_c);
        if (likely(values[6])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 6); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  7:
        values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__shape_c);
        if (likely(values[7])) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, 7); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "pgbeam") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
    }
    __pyx_v_xcentre_c = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xcentre_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_ycentre_c = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_ycentre_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_major_c = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_major_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_minor_c = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_minor_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_pa_c = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_pa_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_delta_c = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_delta_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_slope_c = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_slope_c == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_shape_c = __Pyx_PyInt_from_py_fint(values[7]); if (unlikely((__pyx_v_shape_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pgbeam", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgbeam", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":473
 *               float pa_c, float delta_c, float slope_c, fint shape_c):
 *    pgbeam_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
 *                &pa_c, &delta_c, &slope_c, &shape_c)             # <<<<<<<<<<<<<<
 * 
 * def pgsbci(fint ci_c):
 */
  pgbeam_c((&__pyx_v_xcentre_c), (&__pyx_v_ycentre_c), (&__pyx_v_major_c), (&__pyx_v_minor_c), (&__pyx_v_pa_c), (&__pyx_v_delta_c), (&__pyx_v_slope_c), (&__pyx_v_shape_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":475
 *                &pa_c, &delta_c, &slope_c, &shape_c)
 * 
 * def pgsbci(fint ci_c):             # <<<<<<<<<<<<<<
 *    pgsbci_c(&ci_c)
 * 
 */

static PyObject *__pyx_pf_5gipsy_155pgsbci(PyObject *__pyx_self, PyObject *__pyx_arg_ci_c); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_155pgsbci = {__Pyx_NAMESTR("pgsbci"), (PyCFunction)__pyx_pf_5gipsy_155pgsbci, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_155pgsbci(PyObject *__pyx_self, PyObject *__pyx_arg_ci_c) {
  fint __pyx_v_ci_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pgsbci");
  __pyx_self = __pyx_self;
  assert(__pyx_arg_ci_c); {
    __pyx_v_ci_c = __Pyx_PyInt_from_py_fint(__pyx_arg_ci_c); if (unlikely((__pyx_v_ci_c == (fint)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("gipsy.pgsbci", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":476
 * 
 * def pgsbci(fint ci_c):
 *    pgsbci_c(&ci_c)             # <<<<<<<<<<<<<<
 * 
 * def pgqbci():
 */
  pgsbci_c((&__pyx_v_ci_c));

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":478
 *    pgsbci_c(&ci_c)
 * 
 * def pgqbci():             # <<<<<<<<<<<<<<
 *    cdef fint ci_c
 *    pgqbci_c(&ci_c)
 */

static PyObject *__pyx_pf_5gipsy_156pgqbci(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_156pgqbci = {__Pyx_NAMESTR("pgqbci"), (PyCFunction)__pyx_pf_5gipsy_156pgqbci, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_156pgqbci(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  fint __pyx_v_ci_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("pgqbci");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":480
 * def pgqbci():
 *    cdef fint ci_c
 *    pgqbci_c(&ci_c)             # <<<<<<<<<<<<<<
 *    return ci_c
 */
  pgqbci_c((&__pyx_v_ci_c));

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":481
 *    cdef fint ci_c
 *    pgqbci_c(&ci_c)
 *    return ci_c             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_to_py_fint(__pyx_v_ci_c); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("gipsy.pgqbci", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":21
 * #
 * 
 * def qInitResources():             # <<<<<<<<<<<<<<
 *    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name,
 *                                       qt_resource_data)
 */

static PyObject *__pyx_pf_5gipsy_157qInitResources(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_157qInitResources = {__Pyx_NAMESTR("qInitResources"), (PyCFunction)__pyx_pf_5gipsy_157qInitResources, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_157qInitResources(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("qInitResources");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":22
 * 
 * def qInitResources():
 *    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name,             # <<<<<<<<<<<<<<
 *                                       qt_resource_data)
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_239); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__qt_resource_struct); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__qt_resource_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":23
 * def qInitResources():
 *    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name,
 *                                       qt_resource_data)             # <<<<<<<<<<<<<<
 * 
 * def qCleanupResources():
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__qt_resource_data); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.qInitResources", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":25
 *                                       qt_resource_data)
 * 
 * def qCleanupResources():             # <<<<<<<<<<<<<<
 *    QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,
 *                                         qt_resource_data)
 */

static PyObject *__pyx_pf_5gipsy_158qCleanupResources(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_158qCleanupResources = {__Pyx_NAMESTR("qCleanupResources"), (PyCFunction)__pyx_pf_5gipsy_158qCleanupResources, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_158qCleanupResources(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  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_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("qCleanupResources");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":26
 * 
 * def qCleanupResources():
 *    QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,             # <<<<<<<<<<<<<<
 *                                         qt_resource_data)
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_240); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__qt_resource_struct); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__qt_resource_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":27
 * def qCleanupResources():
 *    QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,
 *                                         qt_resource_data)             # <<<<<<<<<<<<<<
 * 
 * def gipsy_logo():
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__qt_resource_data); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  __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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("gipsy.qCleanupResources", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":29
 *                                         qt_resource_data)
 * 
 * def gipsy_logo():             # <<<<<<<<<<<<<<
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
 */

static PyObject *__pyx_pf_5gipsy_159gipsy_logo(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_159gipsy_logo = {__Pyx_NAMESTR("gipsy_logo"), (PyCFunction)__pyx_pf_5gipsy_159gipsy_logo, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_159gipsy_logo(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_v_logo = NULL;
  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("gipsy_logo");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":30
 * 
 * def gipsy_logo():
 *    logo = QtGui.QLabel()             # <<<<<<<<<<<<<<
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
 *    logo.setFixedSize(27,30)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QLabel); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_logo = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":31
 * def gipsy_logo():
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))             # <<<<<<<<<<<<<<
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setPixmap); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__QPixmap); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_242), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":32
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
 *    logo.setFixedSize(27,30)             # <<<<<<<<<<<<<<
 *    logo.setScaledContents(True)
 *    logo.setToolTip(logo_text)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setFixedSize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_243), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __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;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":33
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)             # <<<<<<<<<<<<<<
 *    logo.setToolTip(logo_text)
 *    return logo
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setScaledContents); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":34
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)
 *    logo.setToolTip(logo_text)             # <<<<<<<<<<<<<<
 *    return logo
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setToolTip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logo_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":35
 *    logo.setScaledContents(True)
 *    logo.setToolTip(logo_text)
 *    return logo             # <<<<<<<<<<<<<<
 * 
 * def kapteyn_logo():
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_logo);
  __pyx_r = __pyx_v_logo;
  goto __pyx_L0;

  __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("gipsy.gipsy_logo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_logo);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":37
 *    return logo
 * 
 * def kapteyn_logo():             # <<<<<<<<<<<<<<
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
 */

static PyObject *__pyx_pf_5gipsy_160kapteyn_logo(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_5gipsy_160kapteyn_logo = {__Pyx_NAMESTR("kapteyn_logo"), (PyCFunction)__pyx_pf_5gipsy_160kapteyn_logo, METH_NOARGS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_5gipsy_160kapteyn_logo(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_v_logo = NULL;
  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("kapteyn_logo");
  __pyx_self = __pyx_self;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":38
 * 
 * def kapteyn_logo():
 *    logo = QtGui.QLabel()             # <<<<<<<<<<<<<<
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
 *    logo.setFixedSize(27,30)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QLabel); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_logo = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":39
 * def kapteyn_logo():
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))             # <<<<<<<<<<<<<<
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setPixmap); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__QPixmap); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_245), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":40
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
 *    logo.setFixedSize(27,30)             # <<<<<<<<<<<<<<
 *    logo.setScaledContents(True)
 *    logo.setToolTip(kapteyn_text)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setFixedSize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_246), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __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;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":41
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)             # <<<<<<<<<<<<<<
 *    logo.setToolTip(kapteyn_text)
 *    return logo
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setScaledContents); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":42
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)
 *    logo.setToolTip(kapteyn_text)             # <<<<<<<<<<<<<<
 *    return logo
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_logo, __pyx_n_s__setToolTip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__kapteyn_text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":43
 *    logo.setScaledContents(True)
 *    logo.setToolTip(kapteyn_text)
 *    return logo             # <<<<<<<<<<<<<<
 * 
 * try:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_logo);
  __pyx_r = __pyx_v_logo;
  goto __pyx_L0;

  __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("gipsy.kapteyn_logo", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_logo);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    __Pyx_NAMESTR("gipsy"),
    0, /* m_doc */
    -1, /* m_size */
    __pyx_methods /* m_methods */,
    NULL, /* m_reload */
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
  {&__pyx_n_s_100, __pyx_k_100, sizeof(__pyx_k_100), 0, 0, 1, 1},
  {&__pyx_kp_s_101, __pyx_k_101, sizeof(__pyx_k_101), 0, 0, 1, 0},
  {&__pyx_kp_s_102, __pyx_k_102, sizeof(__pyx_k_102), 0, 0, 1, 0},
  {&__pyx_kp_s_103, __pyx_k_103, sizeof(__pyx_k_103), 0, 0, 1, 0},
  {&__pyx_kp_s_104, __pyx_k_104, sizeof(__pyx_k_104), 0, 0, 1, 0},
  {&__pyx_kp_s_105, __pyx_k_105, sizeof(__pyx_k_105), 0, 0, 1, 0},
  {&__pyx_kp_s_106, __pyx_k_106, sizeof(__pyx_k_106), 0, 0, 1, 0},
  {&__pyx_kp_s_109, __pyx_k_109, sizeof(__pyx_k_109), 0, 0, 1, 0},
  {&__pyx_kp_s_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 0, 1, 0},
  {&__pyx_kp_s_112, __pyx_k_112, sizeof(__pyx_k_112), 0, 0, 1, 0},
  {&__pyx_kp_s_115, __pyx_k_115, sizeof(__pyx_k_115), 0, 0, 1, 0},
  {&__pyx_kp_s_116, __pyx_k_116, sizeof(__pyx_k_116), 0, 0, 1, 0},
  {&__pyx_kp_s_117, __pyx_k_117, sizeof(__pyx_k_117), 0, 0, 1, 0},
  {&__pyx_kp_s_118, __pyx_k_118, sizeof(__pyx_k_118), 0, 0, 1, 0},
  {&__pyx_kp_s_119, __pyx_k_119, sizeof(__pyx_k_119), 0, 0, 1, 0},
  {&__pyx_kp_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 0},
  {&__pyx_kp_s_120, __pyx_k_120, sizeof(__pyx_k_120), 0, 0, 1, 0},
  {&__pyx_kp_s_121, __pyx_k_121, sizeof(__pyx_k_121), 0, 0, 1, 0},
  {&__pyx_kp_s_122, __pyx_k_122, sizeof(__pyx_k_122), 0, 0, 1, 0},
  {&__pyx_kp_s_123, __pyx_k_123, sizeof(__pyx_k_123), 0, 0, 1, 0},
  {&__pyx_kp_s_124, __pyx_k_124, sizeof(__pyx_k_124), 0, 0, 1, 0},
  {&__pyx_kp_s_126, __pyx_k_126, sizeof(__pyx_k_126), 0, 0, 1, 0},
  {&__pyx_kp_s_130, __pyx_k_130, sizeof(__pyx_k_130), 0, 0, 1, 0},
  {&__pyx_kp_s_131, __pyx_k_131, sizeof(__pyx_k_131), 0, 0, 1, 0},
  {&__pyx_kp_s_132, __pyx_k_132, sizeof(__pyx_k_132), 0, 0, 1, 0},
  {&__pyx_kp_s_133, __pyx_k_133, sizeof(__pyx_k_133), 0, 0, 1, 0},
  {&__pyx_kp_s_137, __pyx_k_137, sizeof(__pyx_k_137), 0, 0, 1, 0},
  {&__pyx_kp_s_138, __pyx_k_138, sizeof(__pyx_k_138), 0, 0, 1, 0},
  {&__pyx_kp_s_139, __pyx_k_139, sizeof(__pyx_k_139), 0, 0, 1, 0},
  {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0},
  {&__pyx_kp_s_140, __pyx_k_140, sizeof(__pyx_k_140), 0, 0, 1, 0},
  {&__pyx_kp_s_142, __pyx_k_142, sizeof(__pyx_k_142), 0, 0, 1, 0},
  {&__pyx_kp_s_148, __pyx_k_148, sizeof(__pyx_k_148), 0, 0, 1, 0},
  {&__pyx_kp_s_150, __pyx_k_150, sizeof(__pyx_k_150), 0, 0, 1, 0},
  {&__pyx_kp_s_152, __pyx_k_152, sizeof(__pyx_k_152), 0, 0, 1, 0},
  {&__pyx_kp_s_153, __pyx_k_153, sizeof(__pyx_k_153), 0, 0, 1, 0},
  {&__pyx_kp_s_155, __pyx_k_155, sizeof(__pyx_k_155), 0, 0, 1, 0},
  {&__pyx_kp_s_156, __pyx_k_156, sizeof(__pyx_k_156), 0, 0, 1, 0},
  {&__pyx_kp_s_157, __pyx_k_157, sizeof(__pyx_k_157), 0, 0, 1, 0},
  {&__pyx_kp_s_159, __pyx_k_159, sizeof(__pyx_k_159), 0, 0, 1, 0},
  {&__pyx_kp_s_161, __pyx_k_161, sizeof(__pyx_k_161), 0, 0, 1, 0},
  {&__pyx_kp_s_163, __pyx_k_163, sizeof(__pyx_k_163), 0, 0, 1, 0},
  {&__pyx_kp_s_165, __pyx_k_165, sizeof(__pyx_k_165), 0, 0, 1, 0},
  {&__pyx_kp_s_166, __pyx_k_166, sizeof(__pyx_k_166), 0, 0, 1, 0},
  {&__pyx_kp_s_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 0, 1, 0},
  {&__pyx_kp_s_172, __pyx_k_172, sizeof(__pyx_k_172), 0, 0, 1, 0},
  {&__pyx_kp_s_175, __pyx_k_175, sizeof(__pyx_k_175), 0, 0, 1, 0},
  {&__pyx_kp_s_177, __pyx_k_177, sizeof(__pyx_k_177), 0, 0, 1, 0},
  {&__pyx_kp_s_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 0, 1, 0},
  {&__pyx_kp_s_180, __pyx_k_180, sizeof(__pyx_k_180), 0, 0, 1, 0},
  {&__pyx_kp_s_181, __pyx_k_181, sizeof(__pyx_k_181), 0, 0, 1, 0},
  {&__pyx_kp_s_182, __pyx_k_182, sizeof(__pyx_k_182), 0, 0, 1, 0},
  {&__pyx_kp_s_183, __pyx_k_183, sizeof(__pyx_k_183), 0, 0, 1, 0},
  {&__pyx_kp_s_184, __pyx_k_184, sizeof(__pyx_k_184), 0, 0, 1, 0},
  {&__pyx_kp_s_185, __pyx_k_185, sizeof(__pyx_k_185), 0, 0, 1, 0},
  {&__pyx_kp_s_186, __pyx_k_186, sizeof(__pyx_k_186), 0, 0, 1, 0},
  {&__pyx_kp_s_187, __pyx_k_187, sizeof(__pyx_k_187), 0, 0, 1, 0},
  {&__pyx_kp_s_188, __pyx_k_188, sizeof(__pyx_k_188), 0, 0, 1, 0},
  {&__pyx_kp_s_189, __pyx_k_189, sizeof(__pyx_k_189), 0, 0, 1, 0},
  {&__pyx_kp_s_190, __pyx_k_190, sizeof(__pyx_k_190), 0, 0, 1, 0},
  {&__pyx_kp_s_191, __pyx_k_191, sizeof(__pyx_k_191), 0, 0, 1, 0},
  {&__pyx_kp_s_192, __pyx_k_192, sizeof(__pyx_k_192), 0, 0, 1, 0},
  {&__pyx_kp_s_193, __pyx_k_193, sizeof(__pyx_k_193), 0, 0, 1, 0},
  {&__pyx_kp_s_194, __pyx_k_194, sizeof(__pyx_k_194), 0, 0, 1, 0},
  {&__pyx_kp_s_195, __pyx_k_195, sizeof(__pyx_k_195), 0, 0, 1, 0},
  {&__pyx_kp_s_196, __pyx_k_196, sizeof(__pyx_k_196), 0, 0, 1, 0},
  {&__pyx_kp_s_198, __pyx_k_198, sizeof(__pyx_k_198), 0, 0, 1, 0},
  {&__pyx_kp_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 0},
  {&__pyx_kp_s_201, __pyx_k_201, sizeof(__pyx_k_201), 0, 0, 1, 0},
  {&__pyx_kp_s_203, __pyx_k_203, sizeof(__pyx_k_203), 0, 0, 1, 0},
  {&__pyx_kp_s_206, __pyx_k_206, sizeof(__pyx_k_206), 0, 0, 1, 0},
  {&__pyx_kp_s_209, __pyx_k_209, sizeof(__pyx_k_209), 0, 0, 1, 0},
  {&__pyx_kp_s_210, __pyx_k_210, sizeof(__pyx_k_210), 0, 0, 1, 0},
  {&__pyx_kp_s_213, __pyx_k_213, sizeof(__pyx_k_213), 0, 0, 1, 0},
  {&__pyx_kp_s_214, __pyx_k_214, sizeof(__pyx_k_214), 0, 0, 1, 0},
  {&__pyx_kp_s_216, __pyx_k_216, sizeof(__pyx_k_216), 0, 0, 1, 0},
  {&__pyx_kp_s_218, __pyx_k_218, sizeof(__pyx_k_218), 0, 0, 1, 0},
  {&__pyx_n_s_219, __pyx_k_219, sizeof(__pyx_k_219), 0, 0, 1, 1},
  {&__pyx_kp_s_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 0, 1, 0},
  {&__pyx_kp_s_221, __pyx_k_221, sizeof(__pyx_k_221), 0, 0, 1, 0},
  {&__pyx_kp_s_223, __pyx_k_223, sizeof(__pyx_k_223), 0, 0, 1, 0},
  {&__pyx_kp_s_224, __pyx_k_224, sizeof(__pyx_k_224), 0, 0, 1, 0},
  {&__pyx_kp_s_225, __pyx_k_225, sizeof(__pyx_k_225), 0, 0, 1, 0},
  {&__pyx_kp_s_226, __pyx_k_226, sizeof(__pyx_k_226), 0, 0, 1, 0},
  {&__pyx_kp_s_227, __pyx_k_227, sizeof(__pyx_k_227), 0, 0, 1, 0},
  {&__pyx_kp_s_228, __pyx_k_228, sizeof(__pyx_k_228), 0, 0, 1, 0},
  {&__pyx_kp_s_230, __pyx_k_230, sizeof(__pyx_k_230), 0, 0, 1, 0},
  {&__pyx_kp_s_232, __pyx_k_232, sizeof(__pyx_k_232), 0, 0, 1, 0},
  {&__pyx_kp_s_233, __pyx_k_233, sizeof(__pyx_k_233), 0, 0, 1, 0},
  {&__pyx_kp_s_236, __pyx_k_236, sizeof(__pyx_k_236), 0, 0, 1, 0},
  {&__pyx_kp_s_237, __pyx_k_237, sizeof(__pyx_k_237), 0, 0, 1, 0},
  {&__pyx_kp_s_238, __pyx_k_238, sizeof(__pyx_k_238), 0, 0, 1, 0},
  {&__pyx_n_s_239, __pyx_k_239, sizeof(__pyx_k_239), 0, 0, 1, 1},
  {&__pyx_n_s_240, __pyx_k_240, sizeof(__pyx_k_240), 0, 0, 1, 1},
  {&__pyx_kp_s_241, __pyx_k_241, sizeof(__pyx_k_241), 0, 0, 1, 0},
  {&__pyx_kp_s_244, __pyx_k_244, sizeof(__pyx_k_244), 0, 0, 1, 0},
  {&__pyx_kp_s_247, __pyx_k_247, sizeof(__pyx_k_247), 0, 0, 1, 0},
  {&__pyx_kp_s_249, __pyx_k_249, sizeof(__pyx_k_249), 0, 0, 1, 0},
  {&__pyx_kp_s_250, __pyx_k_250, sizeof(__pyx_k_250), 0, 0, 1, 0},
  {&__pyx_kp_s_251, __pyx_k_251, sizeof(__pyx_k_251), 0, 0, 1, 0},
  {&__pyx_kp_s_252, __pyx_k_252, sizeof(__pyx_k_252), 0, 0, 1, 0},
  {&__pyx_kp_s_253, __pyx_k_253, sizeof(__pyx_k_253), 0, 0, 1, 0},
  {&__pyx_kp_s_254, __pyx_k_254, sizeof(__pyx_k_254), 0, 0, 1, 0},
  {&__pyx_kp_s_255, __pyx_k_255, sizeof(__pyx_k_255), 0, 0, 1, 0},
  {&__pyx_kp_s_256, __pyx_k_256, sizeof(__pyx_k_256), 0, 0, 1, 0},
  {&__pyx_kp_s_257, __pyx_k_257, sizeof(__pyx_k_257), 0, 0, 1, 0},
  {&__pyx_kp_s_258, __pyx_k_258, sizeof(__pyx_k_258), 0, 0, 1, 0},
  {&__pyx_kp_s_259, __pyx_k_259, sizeof(__pyx_k_259), 0, 0, 1, 0},
  {&__pyx_kp_s_26, __pyx_k_26, sizeof(__pyx_k_26), 0, 0, 1, 0},
  {&__pyx_kp_s_260, __pyx_k_260, sizeof(__pyx_k_260), 0, 0, 1, 0},
  {&__pyx_kp_s_261, __pyx_k_261, sizeof(__pyx_k_261), 0, 0, 1, 0},
  {&__pyx_kp_s_262, __pyx_k_262, sizeof(__pyx_k_262), 0, 0, 1, 0},
  {&__pyx_kp_s_263, __pyx_k_263, sizeof(__pyx_k_263), 0, 0, 1, 0},
  {&__pyx_kp_s_264, __pyx_k_264, sizeof(__pyx_k_264), 0, 0, 1, 0},
  {&__pyx_kp_s_269, __pyx_k_269, sizeof(__pyx_k_269), 0, 0, 1, 0},
  {&__pyx_kp_s_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 0, 1, 0},
  {&__pyx_kp_s_271, __pyx_k_271, sizeof(__pyx_k_271), 0, 0, 1, 0},
  {&__pyx_kp_s_277, __pyx_k_277, sizeof(__pyx_k_277), 0, 0, 1, 0},
  {&__pyx_kp_s_279, __pyx_k_279, sizeof(__pyx_k_279), 0, 0, 1, 0},
  {&__pyx_kp_s_282, __pyx_k_282, sizeof(__pyx_k_282), 0, 0, 1, 0},
  {&__pyx_kp_s_284, __pyx_k_284, sizeof(__pyx_k_284), 0, 0, 1, 0},
  {&__pyx_kp_s_288, __pyx_k_288, sizeof(__pyx_k_288), 0, 0, 1, 0},
  {&__pyx_kp_s_289, __pyx_k_289, sizeof(__pyx_k_289), 0, 0, 1, 0},
  {&__pyx_kp_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 0},
  {&__pyx_kp_s_290, __pyx_k_290, sizeof(__pyx_k_290), 0, 0, 1, 0},
  {&__pyx_kp_s_291, __pyx_k_291, sizeof(__pyx_k_291), 0, 0, 1, 0},
  {&__pyx_kp_s_292, __pyx_k_292, sizeof(__pyx_k_292), 0, 0, 1, 0},
  {&__pyx_kp_s_293, __pyx_k_293, sizeof(__pyx_k_293), 0, 0, 1, 0},
  {&__pyx_kp_s_294, __pyx_k_294, sizeof(__pyx_k_294), 0, 0, 1, 0},
  {&__pyx_kp_s_295, __pyx_k_295, sizeof(__pyx_k_295), 0, 0, 1, 0},
  {&__pyx_kp_b_296, __pyx_k_296, sizeof(__pyx_k_296), 0, 0, 0, 0},
  {&__pyx_kp_b_297, __pyx_k_297, sizeof(__pyx_k_297), 0, 0, 0, 0},
  {&__pyx_kp_b_298, __pyx_k_298, sizeof(__pyx_k_298), 0, 0, 0, 0},
  {&__pyx_kp_s_299, __pyx_k_299, sizeof(__pyx_k_299), 0, 0, 1, 0},
  {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0},
  {&__pyx_kp_s_300, __pyx_k_300, sizeof(__pyx_k_300), 0, 0, 1, 0},
  {&__pyx_kp_s_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 0, 1, 0},
  {&__pyx_kp_s_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 0, 1, 0},
  {&__pyx_kp_s_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 0, 1, 0},
  {&__pyx_kp_s_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 0, 1, 0},
  {&__pyx_kp_s_44, __pyx_k_44, sizeof(__pyx_k_44), 0, 0, 1, 0},
  {&__pyx_kp_s_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 0, 1, 0},
  {&__pyx_kp_s_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 0, 1, 0},
  {&__pyx_kp_s_47, __pyx_k_47, sizeof(__pyx_k_47), 0, 0, 1, 0},
  {&__pyx_kp_s_48, __pyx_k_48, sizeof(__pyx_k_48), 0, 0, 1, 0},
  {&__pyx_kp_s_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 0, 1, 0},
  {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0},
  {&__pyx_kp_s_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 0, 1, 0},
  {&__pyx_kp_s_52, __pyx_k_52, sizeof(__pyx_k_52), 0, 0, 1, 0},
  {&__pyx_kp_s_53, __pyx_k_53, sizeof(__pyx_k_53), 0, 0, 1, 0},
  {&__pyx_kp_s_54, __pyx_k_54, sizeof(__pyx_k_54), 0, 0, 1, 0},
  {&__pyx_kp_s_55, __pyx_k_55, sizeof(__pyx_k_55), 0, 0, 1, 0},
  {&__pyx_kp_s_57, __pyx_k_57, sizeof(__pyx_k_57), 0, 0, 1, 0},
  {&__pyx_kp_s_59, __pyx_k_59, sizeof(__pyx_k_59), 0, 0, 1, 0},
  {&__pyx_kp_s_61, __pyx_k_61, sizeof(__pyx_k_61), 0, 0, 1, 0},
  {&__pyx_kp_s_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 0, 1, 0},
  {&__pyx_kp_s_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 0, 1, 0},
  {&__pyx_kp_s_69, __pyx_k_69, sizeof(__pyx_k_69), 0, 0, 1, 0},
  {&__pyx_kp_s_74, __pyx_k_74, sizeof(__pyx_k_74), 0, 0, 1, 0},
  {&__pyx_kp_s_75, __pyx_k_75, sizeof(__pyx_k_75), 0, 0, 1, 0},
  {&__pyx_kp_s_78, __pyx_k_78, sizeof(__pyx_k_78), 0, 0, 1, 0},
  {&__pyx_kp_s_79, __pyx_k_79, sizeof(__pyx_k_79), 0, 0, 1, 0},
  {&__pyx_kp_s_80, __pyx_k_80, sizeof(__pyx_k_80), 0, 0, 1, 0},
  {&__pyx_kp_s_81, __pyx_k_81, sizeof(__pyx_k_81), 0, 0, 1, 0},
  {&__pyx_kp_s_82, __pyx_k_82, sizeof(__pyx_k_82), 0, 0, 1, 0},
  {&__pyx_kp_s_83, __pyx_k_83, sizeof(__pyx_k_83), 0, 0, 1, 0},
  {&__pyx_kp_s_84, __pyx_k_84, sizeof(__pyx_k_84), 0, 0, 1, 0},
  {&__pyx_kp_s_86, __pyx_k_86, sizeof(__pyx_k_86), 0, 0, 1, 0},
  {&__pyx_kp_s_88, __pyx_k_88, sizeof(__pyx_k_88), 0, 0, 1, 0},
  {&__pyx_kp_s_90, __pyx_k_90, sizeof(__pyx_k_90), 0, 0, 1, 0},
  {&__pyx_n_s_92, __pyx_k_92, sizeof(__pyx_k_92), 0, 0, 1, 1},
  {&__pyx_kp_s_93, __pyx_k_93, sizeof(__pyx_k_93), 0, 0, 1, 0},
  {&__pyx_kp_s_95, __pyx_k_95, sizeof(__pyx_k_95), 0, 0, 1, 0},
  {&__pyx_kp_s_96, __pyx_k_96, sizeof(__pyx_k_96), 0, 0, 1, 0},
  {&__pyx_kp_s_97, __pyx_k_97, sizeof(__pyx_k_97), 0, 0, 1, 0},
  {&__pyx_kp_s_98, __pyx_k_98, sizeof(__pyx_k_98), 0, 0, 1, 0},
  {&__pyx_kp_s_99, __pyx_k_99, sizeof(__pyx_k_99), 0, 0, 1, 0},
  {&__pyx_n_s__ABCGNTS, __pyx_k__ABCGNTS, sizeof(__pyx_k__ABCGNTS), 0, 0, 1, 1},
  {&__pyx_n_s__AttributeError, __pyx_k__AttributeError, sizeof(__pyx_k__AttributeError), 0, 0, 1, 1},
  {&__pyx_n_s__Axis, __pyx_k__Axis, sizeof(__pyx_k__Axis), 0, 0, 1, 1},
  {&__pyx_n_s__BooleanType, __pyx_k__BooleanType, sizeof(__pyx_k__BooleanType), 0, 0, 1, 1},
  {&__pyx_n_s__Box, __pyx_k__Box, sizeof(__pyx_k__Box), 0, 0, 1, 1},
  {&__pyx_n_s__Buffer, __pyx_k__Buffer, sizeof(__pyx_k__Buffer), 0, 0, 1, 1},
  {&__pyx_n_s__Button, __pyx_k__Button, sizeof(__pyx_k__Button), 0, 0, 1, 1},
  {&__pyx_n_s__CDELT, __pyx_k__CDELT, sizeof(__pyx_k__CDELT), 0, 0, 1, 1},
  {&__pyx_n_s__CHAR, __pyx_k__CHAR, sizeof(__pyx_k__CHAR), 0, 0, 1, 1},
  {&__pyx_n_s__CNAME, __pyx_k__CNAME, sizeof(__pyx_k__CNAME), 0, 0, 1, 1},
  {&__pyx_n_s__COMMENT, __pyx_k__COMMENT, sizeof(__pyx_k__COMMENT), 0, 0, 1, 1},
  {&__pyx_n_s__CRDER, __pyx_k__CRDER, sizeof(__pyx_k__CRDER), 0, 0, 1, 1},
  {&__pyx_n_s__CROTA, __pyx_k__CROTA, sizeof(__pyx_k__CROTA), 0, 0, 1, 1},
  {&__pyx_n_s__CRPIX, __pyx_k__CRPIX, sizeof(__pyx_k__CRPIX), 0, 0, 1, 1},
  {&__pyx_n_s__CRVAL, __pyx_k__CRVAL, sizeof(__pyx_k__CRVAL), 0, 0, 1, 1},
  {&__pyx_n_s__CSYER, __pyx_k__CSYER, sizeof(__pyx_k__CSYER), 0, 0, 1, 1},
  {&__pyx_n_s__CTYPE, __pyx_k__CTYPE, sizeof(__pyx_k__CTYPE), 0, 0, 1, 1},
  {&__pyx_n_s__CTYPE1, __pyx_k__CTYPE1, sizeof(__pyx_k__CTYPE1), 0, 0, 1, 1},
  {&__pyx_n_s__CUNIT, __pyx_k__CUNIT, sizeof(__pyx_k__CUNIT), 0, 0, 1, 1},
  {&__pyx_n_s__ColorEditor, __pyx_k__ColorEditor, sizeof(__pyx_k__ColorEditor), 0, 0, 1, 1},
  {&__pyx_n_s__ColorMenu, __pyx_k__ColorMenu, sizeof(__pyx_k__ColorMenu), 0, 0, 1, 1},
  {&__pyx_n_s__Crashed, __pyx_k__Crashed, sizeof(__pyx_k__Crashed), 0, 0, 1, 1},
  {&__pyx_n_s__CursorCallback, __pyx_k__CursorCallback, sizeof(__pyx_k__CursorCallback), 0, 0, 1, 1},
  {&__pyx_n_s__DATAMAX, __pyx_k__DATAMAX, sizeof(__pyx_k__DATAMAX), 0, 0, 1, 1},
  {&__pyx_n_s__DATAMIN, __pyx_k__DATAMIN, sizeof(__pyx_k__DATAMIN), 0, 0, 1, 1},
  {&__pyx_n_s__DBLE, __pyx_k__DBLE, sizeof(__pyx_k__DBLE), 0, 0, 1, 1},
  {&__pyx_n_s__DDELT, __pyx_k__DDELT, sizeof(__pyx_k__DDELT), 0, 0, 1, 1},
  {&__pyx_n_s__DROTA, __pyx_k__DROTA, sizeof(__pyx_k__DROTA), 0, 0, 1, 1},
  {&__pyx_n_s__DRPIX, __pyx_k__DRPIX, sizeof(__pyx_k__DRPIX), 0, 0, 1, 1},
  {&__pyx_n_s__DRVAL, __pyx_k__DRVAL, sizeof(__pyx_k__DRVAL), 0, 0, 1, 1},
  {&__pyx_n_s__DTYPE, __pyx_k__DTYPE, sizeof(__pyx_k__DTYPE), 0, 0, 1, 1},
  {&__pyx_n_s__Dial, __pyx_k__Dial, sizeof(__pyx_k__Dial), 0, 0, 1, 1},
  {&__pyx_n_s__Dialog, __pyx_k__Dialog, sizeof(__pyx_k__Dialog), 0, 0, 1, 1},
  {&__pyx_n_s__EQUINOX, __pyx_k__EQUINOX, sizeof(__pyx_k__EQUINOX), 0, 0, 1, 1},
  {&__pyx_n_s__Editor, __pyx_k__Editor, sizeof(__pyx_k__Editor), 0, 0, 1, 1},
  {&__pyx_n_s__Exception, __pyx_k__Exception, sizeof(__pyx_k__Exception), 0, 0, 1, 1},
  {&__pyx_n_s__FileBrowser, __pyx_k__FileBrowser, sizeof(__pyx_k__FileBrowser), 0, 0, 1, 1},
  {&__pyx_n_s__FloatType, __pyx_k__FloatType, sizeof(__pyx_k__FloatType), 0, 0, 1, 1},
  {&__pyx_n_s__Form, __pyx_k__Form, sizeof(__pyx_k__Form), 0, 0, 1, 1},
  {&__pyx_n_s__Gauge, __pyx_k__Gauge, sizeof(__pyx_k__Gauge), 0, 0, 1, 1},
  {&__pyx_n_s__GdsError, __pyx_k__GdsError, sizeof(__pyx_k__GdsError), 0, 0, 1, 1},
  {&__pyx_n_s__GgiBase, __pyx_k__GgiBase, sizeof(__pyx_k__GgiBase), 0, 0, 1, 1},
  {&__pyx_n_s__GgiError, __pyx_k__GgiError, sizeof(__pyx_k__GgiError), 0, 0, 1, 1},
  {&__pyx_n_s__GipsyError, __pyx_k__GipsyError, sizeof(__pyx_k__GipsyError), 0, 0, 1, 1},
  {&__pyx_n_s__HISTORY, __pyx_k__HISTORY, sizeof(__pyx_k__HISTORY), 0, 0, 1, 1},
  {&__pyx_n_s__HelpMenu, __pyx_k__HelpMenu, sizeof(__pyx_k__HelpMenu), 0, 0, 1, 1},
  {&__pyx_n_s__IMAGE, __pyx_k__IMAGE, sizeof(__pyx_k__IMAGE), 0, 0, 1, 1},
  {&__pyx_n_s__INT, __pyx_k__INT, sizeof(__pyx_k__INT), 0, 0, 1, 1},
  {&__pyx_n_s__IO_IN, __pyx_k__IO_IN, sizeof(__pyx_k__IO_IN), 0, 0, 1, 1},
  {&__pyx_n_s__InputCallback, __pyx_k__InputCallback, sizeof(__pyx_k__InputCallback), 0, 0, 1, 1},
  {&__pyx_n_s__Inset, __pyx_k__Inset, sizeof(__pyx_k__Inset), 0, 0, 1, 1},
  {&__pyx_n_s__IntType, __pyx_k__IntType, sizeof(__pyx_k__IntType), 0, 0, 1, 1},
  {&__pyx_n_s__KEYCANCEL, __pyx_k__KEYCANCEL, sizeof(__pyx_k__KEYCANCEL), 0, 0, 1, 1},
  {&__pyx_n_s__KEYCHANGE, __pyx_k__KEYCHANGE, sizeof(__pyx_k__KEYCHANGE), 0, 0, 1, 1},
  {&__pyx_n_s__KEYREJECT, __pyx_k__KEYREJECT, sizeof(__pyx_k__KEYREJECT), 0, 0, 1, 1},
  {&__pyx_n_s__KeyCallback, __pyx_k__KeyCallback, sizeof(__pyx_k__KeyCallback), 0, 0, 1, 1},
  {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1},
  {&__pyx_n_s__LATPOLE, __pyx_k__LATPOLE, sizeof(__pyx_k__LATPOLE), 0, 0, 1, 1},
  {&__pyx_n_s__LOG, __pyx_k__LOG, sizeof(__pyx_k__LOG), 0, 0, 1, 1},
  {&__pyx_n_s__LONPOLE, __pyx_k__LONPOLE, sizeof(__pyx_k__LONPOLE), 0, 0, 1, 1},
  {&__pyx_n_s__Label, __pyx_k__Label, sizeof(__pyx_k__Label), 0, 0, 1, 1},
  {&__pyx_n_s__List, __pyx_k__List, sizeof(__pyx_k__List), 0, 0, 1, 1},
  {&__pyx_n_s__ListType, __pyx_k__ListType, sizeof(__pyx_k__ListType), 0, 0, 1, 1},
  {&__pyx_n_s__Logo, __pyx_k__Logo, sizeof(__pyx_k__Logo), 0, 0, 1, 1},
  {&__pyx_n_s__Menu, __pyx_k__Menu, sizeof(__pyx_k__Menu), 0, 0, 1, 1},
  {&__pyx_n_s__N, __pyx_k__N, sizeof(__pyx_k__N), 0, 0, 1, 1},
  {&__pyx_n_s__NAXIS, __pyx_k__NAXIS, sizeof(__pyx_k__NAXIS), 0, 0, 1, 1},
  {&__pyx_n_s__NBLANK, __pyx_k__NBLANK, sizeof(__pyx_k__NBLANK), 0, 0, 1, 1},
  {&__pyx_n_s__NaN, __pyx_k__NaN, sizeof(__pyx_k__NaN), 0, 0, 1, 1},
  {&__pyx_n_s__None, __pyx_k__None, sizeof(__pyx_k__None), 0, 0, 1, 1},
  {&__pyx_n_s__NoneType, __pyx_k__NoneType, sizeof(__pyx_k__NoneType), 0, 0, 1, 1},
  {&__pyx_n_s__PlotField, __pyx_k__PlotField, sizeof(__pyx_k__PlotField), 0, 0, 1, 1},
  {&__pyx_n_s__PlotPrompter, __pyx_k__PlotPrompter, sizeof(__pyx_k__PlotPrompter), 0, 0, 1, 1},
  {&__pyx_n_s__Pointer, __pyx_k__Pointer, sizeof(__pyx_k__Pointer), 0, 0, 1, 1},
  {&__pyx_n_s__Popup, __pyx_k__Popup, sizeof(__pyx_k__Popup), 0, 0, 1, 1},
  {&__pyx_n_s__Progress, __pyx_k__Progress, sizeof(__pyx_k__Progress), 0, 0, 1, 1},
  {&__pyx_n_s__Prompter, __pyx_k__Prompter, sizeof(__pyx_k__Prompter), 0, 0, 1, 1},
  {&__pyx_n_s__PyQt4, __pyx_k__PyQt4, sizeof(__pyx_k__PyQt4), 0, 0, 1, 1},
  {&__pyx_n_s__QAbstractButton, __pyx_k__QAbstractButton, sizeof(__pyx_k__QAbstractButton), 0, 0, 1, 1},
  {&__pyx_n_s__QAbstractSlider, __pyx_k__QAbstractSlider, sizeof(__pyx_k__QAbstractSlider), 0, 0, 1, 1},
  {&__pyx_n_s__QComboBox, __pyx_k__QComboBox, sizeof(__pyx_k__QComboBox), 0, 0, 1, 1},
  {&__pyx_n_s__QDoubleSpinBox, __pyx_k__QDoubleSpinBox, sizeof(__pyx_k__QDoubleSpinBox), 0, 0, 1, 1},
  {&__pyx_n_s__QFrame, __pyx_k__QFrame, sizeof(__pyx_k__QFrame), 0, 0, 1, 1},
  {&__pyx_n_s__QGridLayout, __pyx_k__QGridLayout, sizeof(__pyx_k__QGridLayout), 0, 0, 1, 1},
  {&__pyx_n_s__QLabel, __pyx_k__QLabel, sizeof(__pyx_k__QLabel), 0, 0, 1, 1},
  {&__pyx_n_s__QLineEdit, __pyx_k__QLineEdit, sizeof(__pyx_k__QLineEdit), 0, 0, 1, 1},
  {&__pyx_n_s__QObject, __pyx_k__QObject, sizeof(__pyx_k__QObject), 0, 0, 1, 1},
  {&__pyx_n_s__QPixmap, __pyx_k__QPixmap, sizeof(__pyx_k__QPixmap), 0, 0, 1, 1},
  {&__pyx_n_s__QSocketNotifier, __pyx_k__QSocketNotifier, sizeof(__pyx_k__QSocketNotifier), 0, 0, 1, 1},
  {&__pyx_n_s__QSpinBox, __pyx_k__QSpinBox, sizeof(__pyx_k__QSpinBox), 0, 0, 1, 1},
  {&__pyx_n_s__QTimer, __pyx_k__QTimer, sizeof(__pyx_k__QTimer), 0, 0, 1, 1},
  {&__pyx_n_s__QWidget, __pyx_k__QWidget, sizeof(__pyx_k__QWidget), 0, 0, 1, 1},
  {&__pyx_n_s__Qt, __pyx_k__Qt, sizeof(__pyx_k__Qt), 0, 0, 1, 1},
  {&__pyx_n_s__QtCore, __pyx_k__QtCore, sizeof(__pyx_k__QtCore), 0, 0, 1, 1},
  {&__pyx_n_s__QtGui, __pyx_k__QtGui, sizeof(__pyx_k__QtGui), 0, 0, 1, 1},
  {&__pyx_n_s__QtLink, __pyx_k__QtLink, sizeof(__pyx_k__QtLink), 0, 0, 1, 1},
  {&__pyx_n_s__QtMessage, __pyx_k__QtMessage, sizeof(__pyx_k__QtMessage), 0, 0, 1, 1},
  {&__pyx_n_s__RADESYS, __pyx_k__RADESYS, sizeof(__pyx_k__RADESYS), 0, 0, 1, 1},
  {&__pyx_n_s__READABLE, __pyx_k__READABLE, sizeof(__pyx_k__READABLE), 0, 0, 1, 1},
  {&__pyx_n_s__REAL, __pyx_k__REAL, sizeof(__pyx_k__REAL), 0, 0, 1, 1},
  {&__pyx_n_s__RESTFRQ, __pyx_k__RESTFRQ, sizeof(__pyx_k__RESTFRQ), 0, 0, 1, 1},
  {&__pyx_n_s__RESTWAV, __pyx_k__RESTWAV, sizeof(__pyx_k__RESTWAV), 0, 0, 1, 1},
  {&__pyx_n_s__Read, __pyx_k__Read, sizeof(__pyx_k__Read), 0, 0, 1, 1},
  {&__pyx_n_s__SIGNAL, __pyx_k__SIGNAL, sizeof(__pyx_k__SIGNAL), 0, 0, 1, 1},
  {&__pyx_n_s__SLOT, __pyx_k__SLOT, sizeof(__pyx_k__SLOT), 0, 0, 1, 1},
  {&__pyx_n_s__SPECSYS, __pyx_k__SPECSYS, sizeof(__pyx_k__SPECSYS), 0, 0, 1, 1},
  {&__pyx_n_s__SSYSOBS, __pyx_k__SSYSOBS, sizeof(__pyx_k__SSYSOBS), 0, 0, 1, 1},
  {&__pyx_n_s__SSYSSRC, __pyx_k__SSYSSRC, sizeof(__pyx_k__SSYSSRC), 0, 0, 1, 1},
  {&__pyx_n_s__Set, __pyx_k__Set, sizeof(__pyx_k__Set), 0, 0, 1, 1},
  {&__pyx_n_s__SetHeader, __pyx_k__SetHeader, sizeof(__pyx_k__SetHeader), 0, 0, 1, 1},
  {&__pyx_n_s__Shell, __pyx_k__Shell, sizeof(__pyx_k__Shell), 0, 0, 1, 1},
  {&__pyx_n_s__StringType, __pyx_k__StringType, sizeof(__pyx_k__StringType), 0, 0, 1, 1},
  {&__pyx_n_s__TextField, __pyx_k__TextField, sizeof(__pyx_k__TextField), 0, 0, 1, 1},
  {&__pyx_n_s__TextMenu, __pyx_k__TextMenu, sizeof(__pyx_k__TextMenu), 0, 0, 1, 1},
  {&__pyx_n_s__TimeCallback, __pyx_k__TimeCallback, sizeof(__pyx_k__TimeCallback), 0, 0, 1, 1},
  {&__pyx_n_s__TimeCallback_GTK, __pyx_k__TimeCallback_GTK, sizeof(__pyx_k__TimeCallback_GTK), 0, 0, 1, 1},
  {&__pyx_n_s__TimeCallback_QT4, __pyx_k__TimeCallback_QT4, sizeof(__pyx_k__TimeCallback_QT4), 0, 0, 1, 1},
  {&__pyx_n_s__Tkinter, __pyx_k__Tkinter, sizeof(__pyx_k__Tkinter), 0, 0, 1, 1},
  {&__pyx_n_s__TypeError, __pyx_k__TypeError, sizeof(__pyx_k__TypeError), 0, 0, 1, 1},
  {&__pyx_n_s__VELANGL, __pyx_k__VELANGL, sizeof(__pyx_k__VELANGL), 0, 0, 1, 1},
  {&__pyx_n_s__VELOSYS, __pyx_k__VELOSYS, sizeof(__pyx_k__VELOSYS), 0, 0, 1, 1},
  {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1},
  {&__pyx_n_s__Viewport, __pyx_k__Viewport, sizeof(__pyx_k__Viewport), 0, 0, 1, 1},
  {&__pyx_n_s__VtkField, __pyx_k__VtkField, sizeof(__pyx_k__VtkField), 0, 0, 1, 1},
  {&__pyx_n_s__WCSAXES, __pyx_k__WCSAXES, sizeof(__pyx_k__WCSAXES), 0, 0, 1, 1},
  {&__pyx_n_s__XTENSION, __pyx_k__XTENSION, sizeof(__pyx_k__XTENSION), 0, 0, 1, 1},
  {&__pyx_n_s__XeqError, __pyx_k__XeqError, sizeof(__pyx_k__XeqError), 0, 0, 1, 1},
  {&__pyx_n_s__Y, __pyx_k__Y, sizeof(__pyx_k__Y), 0, 0, 1, 1},
  {&__pyx_n_s__ZSOURCE, __pyx_k__ZSOURCE, sizeof(__pyx_k__ZSOURCE), 0, 0, 1, 1},
  {&__pyx_n_s___Analog, __pyx_k___Analog, sizeof(__pyx_k___Analog), 0, 0, 1, 1},
  {&__pyx_n_s___ColorEditor, __pyx_k___ColorEditor, sizeof(__pyx_k___ColorEditor), 0, 0, 1, 1},
  {&__pyx_n_s___Container, __pyx_k___Container, sizeof(__pyx_k___Container), 0, 0, 1, 1},
  {&__pyx_n_s___CursorCallback, __pyx_k___CursorCallback, sizeof(__pyx_k___CursorCallback), 0, 0, 1, 1},
  {&__pyx_n_s___Editor, __pyx_k___Editor, sizeof(__pyx_k___Editor), 0, 0, 1, 1},
  {&__pyx_n_s___Element, __pyx_k___Element, sizeof(__pyx_k___Element), 0, 0, 1, 1},
  {&__pyx_n_s___FileBrowser, __pyx_k___FileBrowser, sizeof(__pyx_k___FileBrowser), 0, 0, 1, 1},
  {&__pyx_n_s___Inset, __pyx_k___Inset, sizeof(__pyx_k___Inset), 0, 0, 1, 1},
  {&__pyx_n_s___List, __pyx_k___List, sizeof(__pyx_k___List), 0, 0, 1, 1},
  {&__pyx_n_s___Menu, __pyx_k___Menu, sizeof(__pyx_k___Menu), 0, 0, 1, 1},
  {&__pyx_n_s___PlotField, __pyx_k___PlotField, sizeof(__pyx_k___PlotField), 0, 0, 1, 1},
  {&__pyx_n_s___PopUp, __pyx_k___PopUp, sizeof(__pyx_k___PopUp), 0, 0, 1, 1},
  {&__pyx_n_s___Prompter, __pyx_k___Prompter, sizeof(__pyx_k___Prompter), 0, 0, 1, 1},
  {&__pyx_n_s___Shell, __pyx_k___Shell, sizeof(__pyx_k___Shell), 0, 0, 1, 1},
  {&__pyx_n_s___VtkField, __pyx_k___VtkField, sizeof(__pyx_k___VtkField), 0, 0, 1, 1},
  {&__pyx_n_s____alter_wcs, __pyx_k____alter_wcs, sizeof(__pyx_k____alter_wcs), 0, 0, 1, 1},
  {&__pyx_n_s____arg, __pyx_k____arg, sizeof(__pyx_k____arg), 0, 0, 1, 1},
  {&__pyx_n_s____axtype, __pyx_k____axtype, sizeof(__pyx_k____axtype), 0, 0, 1, 1},
  {&__pyx_n_s____axtypes, __pyx_k____axtypes, sizeof(__pyx_k____axtypes), 0, 0, 1, 1},
  {&__pyx_n_s____contains__, __pyx_k____contains__, sizeof(__pyx_k____contains__), 0, 0, 1, 1},
  {&__pyx_n_s____del__, __pyx_k____del__, sizeof(__pyx_k____del__), 0, 0, 1, 1},
  {&__pyx_n_s____delhead, __pyx_k____delhead, sizeof(__pyx_k____delhead), 0, 0, 1, 1},
  {&__pyx_n_s____delitem__, __pyx_k____delitem__, sizeof(__pyx_k____delitem__), 0, 0, 1, 1},
  {&__pyx_n_s____dict__, __pyx_k____dict__, sizeof(__pyx_k____dict__), 0, 0, 1, 1},
  {&__pyx_n_s____getattr__, __pyx_k____getattr__, sizeof(__pyx_k____getattr__), 0, 0, 1, 1},
  {&__pyx_n_s____getitem__, __pyx_k____getitem__, sizeof(__pyx_k____getitem__), 0, 0, 1, 1},
  {&__pyx_n_s____id, __pyx_k____id, sizeof(__pyx_k____id), 0, 0, 1, 1},
  {&__pyx_n_s____init__, __pyx_k____init__, sizeof(__pyx_k____init__), 0, 0, 1, 1},
  {&__pyx_n_s____len__, __pyx_k____len__, sizeof(__pyx_k____len__), 0, 0, 1, 1},
  {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
  {&__pyx_n_s____new__, __pyx_k____new__, sizeof(__pyx_k____new__), 0, 0, 1, 1},
  {&__pyx_n_s____prosystems, __pyx_k____prosystems, sizeof(__pyx_k____prosystems), 0, 0, 1, 1},
  {&__pyx_n_s____rcol, __pyx_k____rcol, sizeof(__pyx_k____rcol), 0, 0, 1, 1},
  {&__pyx_n_s____repr__, __pyx_k____repr__, sizeof(__pyx_k____repr__), 0, 0, 1, 1},
  {&__pyx_n_s____rhead, __pyx_k____rhead, sizeof(__pyx_k____rhead), 0, 0, 1, 1},
  {&__pyx_n_s____setitem__, __pyx_k____setitem__, sizeof(__pyx_k____setitem__), 0, 0, 1, 1},
  {&__pyx_n_s____skysystems, __pyx_k____skysystems, sizeof(__pyx_k____skysystems), 0, 0, 1, 1},
  {&__pyx_n_s____str__, __pyx_k____str__, sizeof(__pyx_k____str__), 0, 0, 1, 1},
  {&__pyx_n_s____subst_key_wcs, __pyx_k____subst_key_wcs, sizeof(__pyx_k____subst_key_wcs), 0, 0, 1, 1},
  {&__pyx_n_s____substitute_wcs, __pyx_k____substitute_wcs, sizeof(__pyx_k____substitute_wcs), 0, 0, 1, 1},
  {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
  {&__pyx_n_s____velsystems, __pyx_k____velsystems, sizeof(__pyx_k____velsystems), 0, 0, 1, 1},
  {&__pyx_n_s____wcheck, __pyx_k____wcheck, sizeof(__pyx_k____wcheck), 0, 0, 1, 1},
  {&__pyx_n_s____wcol, __pyx_k____wcol, sizeof(__pyx_k____wcol), 0, 0, 1, 1},
  {&__pyx_n_s____whead, __pyx_k____whead, sizeof(__pyx_k____whead), 0, 0, 1, 1},
  {&__pyx_n_s___gtkio, __pyx_k___gtkio, sizeof(__pyx_k___gtkio), 0, 0, 1, 1},
  {&__pyx_n_s___receive, __pyx_k___receive, sizeof(__pyx_k___receive), 0, 0, 1, 1},
  {&__pyx_n_s___reject, __pyx_k___reject, sizeof(__pyx_k___reject), 0, 0, 1, 1},
  {&__pyx_n_s___send, __pyx_k___send, sizeof(__pyx_k___send), 0, 0, 1, 1},
  {&__pyx_n_s___tkio, __pyx_k___tkio, sizeof(__pyx_k___tkio), 0, 0, 1, 1},
  {&__pyx_n_s__a, __pyx_k__a, sizeof(__pyx_k__a), 0, 0, 1, 1},
  {&__pyx_n_s__a1_c, __pyx_k__a1_c, sizeof(__pyx_k__a1_c), 0, 0, 1, 1},
  {&__pyx_n_s__a2_c, __pyx_k__a2_c, sizeof(__pyx_k__a2_c), 0, 0, 1, 1},
  {&__pyx_n_s__aborttask, __pyx_k__aborttask, sizeof(__pyx_k__aborttask), 0, 0, 1, 1},
  {&__pyx_n_s__accept, __pyx_k__accept, sizeof(__pyx_k__accept), 0, 0, 1, 1},
  {&__pyx_n_s__active, __pyx_k__active, sizeof(__pyx_k__active), 0, 0, 1, 1},
  {&__pyx_n_s__addWidget, __pyx_k__addWidget, sizeof(__pyx_k__addWidget), 0, 0, 1, 1},
  {&__pyx_n_s__adjustSize, __pyx_k__adjustSize, sizeof(__pyx_k__adjustSize), 0, 0, 1, 1},
  {&__pyx_n_s__alignLabel, __pyx_k__alignLabel, sizeof(__pyx_k__alignLabel), 0, 0, 1, 1},
  {&__pyx_n_s__aligned, __pyx_k__aligned, sizeof(__pyx_k__aligned), 0, 0, 1, 1},
  {&__pyx_n_s__alignment, __pyx_k__alignment, sizeof(__pyx_k__alignment), 0, 0, 1, 1},
  {&__pyx_n_s__alters, __pyx_k__alters, sizeof(__pyx_k__alters), 0, 0, 1, 1},
  {&__pyx_n_s__altwcs, __pyx_k__altwcs, sizeof(__pyx_k__altwcs), 0, 0, 1, 1},
  {&__pyx_n_s__angle_c, __pyx_k__angle_c, sizeof(__pyx_k__angle_c), 0, 0, 1, 1},
  {&__pyx_n_s__any, __pyx_k__any, sizeof(__pyx_k__any), 0, 0, 1, 1},
  {&__pyx_n_s__anyout, __pyx_k__anyout, sizeof(__pyx_k__anyout), 0, 0, 1, 1},
  {&__pyx_n_s__apply, __pyx_k__apply, sizeof(__pyx_k__apply), 0, 0, 1, 1},
  {&__pyx_n_s__args, __pyx_k__args, sizeof(__pyx_k__args), 0, 0, 1, 1},
  {&__pyx_n_s__array, __pyx_k__array, sizeof(__pyx_k__array), 0, 0, 1, 1},
  {&__pyx_n_s__arrow_width, __pyx_k__arrow_width, sizeof(__pyx_k__arrow_width), 0, 0, 1, 1},
  {&__pyx_n_s__ascard, __pyx_k__ascard, sizeof(__pyx_k__ascard), 0, 0, 1, 1},
  {&__pyx_n_s__aspect_c, __pyx_k__aspect_c, sizeof(__pyx_k__aspect_c), 0, 0, 1, 1},
  {&__pyx_n_s__astype, __pyx_k__astype, sizeof(__pyx_k__astype), 0, 0, 1, 1},
  {&__pyx_n_s__attr, __pyx_k__attr, sizeof(__pyx_k__attr), 0, 0, 1, 1},
  {&__pyx_n_s__axes, __pyx_k__axes, sizeof(__pyx_k__axes), 0, 0, 1, 1},
  {&__pyx_n_s__axis_c, __pyx_k__axis_c, sizeof(__pyx_k__axis_c), 0, 0, 1, 1},
  {&__pyx_n_s__axname, __pyx_k__axname, sizeof(__pyx_k__axname), 0, 0, 1, 1},
  {&__pyx_n_s__axnames, __pyx_k__axnames, sizeof(__pyx_k__axnames), 0, 0, 1, 1},
  {&__pyx_n_s__axnum, __pyx_k__axnum, sizeof(__pyx_k__axnum), 0, 0, 1, 1},
  {&__pyx_n_s__axorigin, __pyx_k__axorigin, sizeof(__pyx_k__axorigin), 0, 0, 1, 1},
  {&__pyx_n_s__axperm, __pyx_k__axperm, sizeof(__pyx_k__axperm), 0, 0, 1, 1},
  {&__pyx_n_s__axsize, __pyx_k__axsize, sizeof(__pyx_k__axsize), 0, 0, 1, 1},
  {&__pyx_n_s__axtype, __pyx_k__axtype, sizeof(__pyx_k__axtype), 0, 0, 1, 1},
  {&__pyx_n_s__b, __pyx_k__b, sizeof(__pyx_k__b), 0, 0, 1, 1},
  {&__pyx_n_s__b_c, __pyx_k__b_c, sizeof(__pyx_k__b_c), 0, 0, 1, 1},
  {&__pyx_n_s__barb_c, __pyx_k__barb_c, sizeof(__pyx_k__barb_c), 0, 0, 1, 1},
  {&__pyx_n_s__base, __pyx_k__base, sizeof(__pyx_k__base), 0, 0, 1, 1},
  {&__pyx_n_s__bg_c, __pyx_k__bg_c, sizeof(__pyx_k__bg_c), 0, 0, 1, 1},
  {&__pyx_n_s__bgcolor, __pyx_k__bgcolor, sizeof(__pyx_k__bgcolor), 0, 0, 1, 1},
  {&__pyx_n_s__bhi, __pyx_k__bhi, sizeof(__pyx_k__bhi), 0, 0, 1, 1},
  {&__pyx_n_s__bias_c, __pyx_k__bias_c, sizeof(__pyx_k__bias_c), 0, 0, 1, 1},
  {&__pyx_n_s__bl, __pyx_k__bl, sizeof(__pyx_k__bl), 0, 0, 1, 1},
  {&__pyx_n_s__blank, __pyx_k__blank, sizeof(__pyx_k__blank), 0, 0, 1, 1},
  {&__pyx_n_s__blank_c, __pyx_k__blank_c, sizeof(__pyx_k__blank_c), 0, 0, 1, 1},
  {&__pyx_n_s__blankpixel, __pyx_k__blankpixel, sizeof(__pyx_k__blankpixel), 0, 0, 1, 1},
  {&__pyx_n_s__blo, __pyx_k__blo, sizeof(__pyx_k__blo), 0, 0, 1, 1},
  {&__pyx_n_s__block, __pyx_k__block, sizeof(__pyx_k__block), 0, 0, 1, 1},
  {&__pyx_n_s__boolptr, __pyx_k__boolptr, sizeof(__pyx_k__boolptr), 0, 0, 1, 1},
  {&__pyx_n_s__border, __pyx_k__border, sizeof(__pyx_k__border), 0, 0, 1, 1},
  {&__pyx_n_s__bottomLeft, __pyx_k__bottomLeft, sizeof(__pyx_k__bottomLeft), 0, 0, 1, 1},
  {&__pyx_n_s__box, __pyx_k__box, sizeof(__pyx_k__box), 0, 0, 1, 1},
  {&__pyx_n_s__boxkey, __pyx_k__boxkey, sizeof(__pyx_k__boxkey), 0, 0, 1, 1},
  {&__pyx_n_s__boxspec, __pyx_k__boxspec, sizeof(__pyx_k__boxspec), 0, 0, 1, 1},
  {&__pyx_n_s__bright_c, __pyx_k__bright_c, sizeof(__pyx_k__bright_c), 0, 0, 1, 1},
  {&__pyx_n_s__buffer, __pyx_k__buffer, sizeof(__pyx_k__buffer), 0, 0, 1, 1},
  {&__pyx_n_s__button, __pyx_k__button, sizeof(__pyx_k__button), 0, 0, 1, 1},
  {&__pyx_n_s__byteorder, __pyx_k__byteorder, sizeof(__pyx_k__byteorder), 0, 0, 1, 1},
  {&__pyx_n_s__c, __pyx_k__c, sizeof(__pyx_k__c), 0, 0, 1, 1},
  {&__pyx_n_s__c1_c, __pyx_k__c1_c, sizeof(__pyx_k__c1_c), 0, 0, 1, 1},
  {&__pyx_n_s__c2_c, __pyx_k__c2_c, sizeof(__pyx_k__c2_c), 0, 0, 1, 1},
  {&__pyx_n_s__callback, __pyx_k__callback, sizeof(__pyx_k__callback), 0, 0, 1, 1},
  {&__pyx_n_s__cancel, __pyx_k__cancel, sizeof(__pyx_k__cancel), 0, 0, 1, 1},
  {&__pyx_n_s__cb, __pyx_k__cb, sizeof(__pyx_k__cb), 0, 0, 1, 1},
  {&__pyx_n_s__cb_condition, __pyx_k__cb_condition, sizeof(__pyx_k__cb_condition), 0, 0, 1, 1},
  {&__pyx_n_s__cbobj, __pyx_k__cbobj, sizeof(__pyx_k__cbobj), 0, 0, 1, 1},
  {&__pyx_n_s__cdelt, __pyx_k__cdelt, sizeof(__pyx_k__cdelt), 0, 0, 1, 1},
  {&__pyx_n_s__center_c, __pyx_k__center_c, sizeof(__pyx_k__center_c), 0, 0, 1, 1},
  {&__pyx_n_s__cf_c, __pyx_k__cf_c, sizeof(__pyx_k__cf_c), 0, 0, 1, 1},
  {&__pyx_n_s__ch_c, __pyx_k__ch_c, sizeof(__pyx_k__ch_c), 0, 0, 1, 1},
  {&__pyx_n_s__chr, __pyx_k__chr, sizeof(__pyx_k__chr), 0, 0, 1, 1},
  {&__pyx_n_s__ci, __pyx_k__ci, sizeof(__pyx_k__ci), 0, 0, 1, 1},
  {&__pyx_n_s__ci_c, __pyx_k__ci_c, sizeof(__pyx_k__ci_c), 0, 0, 1, 1},
  {&__pyx_n_s__close, __pyx_k__close, sizeof(__pyx_k__close), 0, 0, 1, 1},
  {&__pyx_n_s__closeMpeg, __pyx_k__closeMpeg, sizeof(__pyx_k__closeMpeg), 0, 0, 1, 1},
  {&__pyx_n_s__closeOnOK, __pyx_k__closeOnOK, sizeof(__pyx_k__closeOnOK), 0, 0, 1, 1},
  {&__pyx_n_s__cls, __pyx_k__cls, sizeof(__pyx_k__cls), 0, 0, 1, 1},
  {&__pyx_n_s__cmd, __pyx_k__cmd, sizeof(__pyx_k__cmd), 0, 0, 1, 1},
  {&__pyx_n_s__cname, __pyx_k__cname, sizeof(__pyx_k__cname), 0, 0, 1, 1},
  {&__pyx_n_s__colcomm, __pyx_k__colcomm, sizeof(__pyx_k__colcomm), 0, 0, 1, 1},
  {&__pyx_n_s__colinq, __pyx_k__colinq, sizeof(__pyx_k__colinq), 0, 0, 1, 1},
  {&__pyx_n_s__colors, __pyx_k__colors, sizeof(__pyx_k__colors), 0, 0, 1, 1},
  {&__pyx_n_s__comment, __pyx_k__comment, sizeof(__pyx_k__comment), 0, 0, 1, 1},
  {&__pyx_n_s__commit, __pyx_k__commit, sizeof(__pyx_k__commit), 0, 0, 1, 1},
  {&__pyx_n_s__compare, __pyx_k__compare, sizeof(__pyx_k__compare), 0, 0, 1, 1},
  {&__pyx_n_s__connect, __pyx_k__connect, sizeof(__pyx_k__connect), 0, 0, 1, 1},
  {&__pyx_n_s__container, __pyx_k__container, sizeof(__pyx_k__container), 0, 0, 1, 1},
  {&__pyx_n_s__content, __pyx_k__content, sizeof(__pyx_k__content), 0, 0, 1, 1},
  {&__pyx_n_s__contents, __pyx_k__contents, sizeof(__pyx_k__contents), 0, 0, 1, 1},
  {&__pyx_n_s__contiguous, __pyx_k__contiguous, sizeof(__pyx_k__contiguous), 0, 0, 1, 1},
  {&__pyx_n_s__contra_c, __pyx_k__contra_c, sizeof(__pyx_k__contra_c), 0, 0, 1, 1},
  {&__pyx_n_s__converter, __pyx_k__converter, sizeof(__pyx_k__converter), 0, 0, 1, 1},
  {&__pyx_n_s__coord_c, __pyx_k__coord_c, sizeof(__pyx_k__coord_c), 0, 0, 1, 1},
  {&__pyx_n_s__coords, __pyx_k__coords, sizeof(__pyx_k__coords), 0, 0, 1, 1},
  {&__pyx_n_s__copy, __pyx_k__copy, sizeof(__pyx_k__copy), 0, 0, 1, 1},
  {&__pyx_n_s__cotrans, __pyx_k__cotrans, sizeof(__pyx_k__cotrans), 0, 0, 1, 1},
  {&__pyx_n_s__create, __pyx_k__create, sizeof(__pyx_k__create), 0, 0, 1, 1},
  {&__pyx_n_s__createfilehandler, __pyx_k__createfilehandler, sizeof(__pyx_k__createfilehandler), 0, 0, 1, 1},
  {&__pyx_n_s__crecol, __pyx_k__crecol, sizeof(__pyx_k__crecol), 0, 0, 1, 1},
  {&__pyx_n_s__crpix, __pyx_k__crpix, sizeof(__pyx_k__crpix), 0, 0, 1, 1},
  {&__pyx_n_s__crval, __pyx_k__crval, sizeof(__pyx_k__crval), 0, 0, 1, 1},
  {&__pyx_n_s__ctype, __pyx_k__ctype, sizeof(__pyx_k__ctype), 0, 0, 1, 1},
  {&__pyx_n_s__cubicspline, __pyx_k__cubicspline, sizeof(__pyx_k__cubicspline), 0, 0, 1, 1},
  {&__pyx_n_s__cunit, __pyx_k__cunit, sizeof(__pyx_k__cunit), 0, 0, 1, 1},
  {&__pyx_n_s__cunits, __pyx_k__cunits, sizeof(__pyx_k__cunits), 0, 0, 1, 1},
  {&__pyx_n_s__currentText, __pyx_k__currentText, sizeof(__pyx_k__currentText), 0, 0, 1, 1},
  {&__pyx_n_s__curval, __pyx_k__curval, sizeof(__pyx_k__curval), 0, 0, 1, 1},
  {&__pyx_n_s__cvt_detail, __pyx_k__cvt_detail, sizeof(__pyx_k__cvt_detail), 0, 0, 1, 1},
  {&__pyx_n_s__cvt_name, __pyx_k__cvt_name, sizeof(__pyx_k__cvt_name), 0, 0, 1, 1},
  {&__pyx_n_s__cword, __pyx_k__cword, sizeof(__pyx_k__cword), 0, 0, 1, 1},
  {&__pyx_n_s__data, __pyx_k__data, sizeof(__pyx_k__data), 0, 0, 1, 1},
  {&__pyx_n_s__datamax_c, __pyx_k__datamax_c, sizeof(__pyx_k__datamax_c), 0, 0, 1, 1},
  {&__pyx_n_s__datamin_c, __pyx_k__datamin_c, sizeof(__pyx_k__datamin_c), 0, 0, 1, 1},
  {&__pyx_n_s__dbleptr, __pyx_k__dbleptr, sizeof(__pyx_k__dbleptr), 0, 0, 1, 1},
  {&__pyx_n_s__decodefloat, __pyx_k__decodefloat, sizeof(__pyx_k__decodefloat), 0, 0, 1, 1},
  {&__pyx_n_s__decodeint, __pyx_k__decodeint, sizeof(__pyx_k__decodeint), 0, 0, 1, 1},
  {&__pyx_n_s__default, __pyx_k__default, sizeof(__pyx_k__default), 0, 0, 1, 1},
  {&__pyx_n_s__defcol, __pyx_k__defcol, sizeof(__pyx_k__defcol), 0, 0, 1, 1},
  {&__pyx_n_s__defval, __pyx_k__defval, sizeof(__pyx_k__defval), 0, 0, 1, 1},
  {&__pyx_n_s__delay, __pyx_k__delay, sizeof(__pyx_k__delay), 0, 0, 1, 1},
  {&__pyx_n_s__delcol, __pyx_k__delcol, sizeof(__pyx_k__delcol), 0, 0, 1, 1},
  {&__pyx_n_s__delete, __pyx_k__delete, sizeof(__pyx_k__delete), 0, 0, 1, 1},
  {&__pyx_n_s__delta_c, __pyx_k__delta_c, sizeof(__pyx_k__delta_c), 0, 0, 1, 1},
  {&__pyx_n_s__deltab, __pyx_k__deltab, sizeof(__pyx_k__deltab), 0, 0, 1, 1},
  {&__pyx_n_s__deputy, __pyx_k__deputy, sizeof(__pyx_k__deputy), 0, 0, 1, 1},
  {&__pyx_n_s__deschedule, __pyx_k__deschedule, sizeof(__pyx_k__deschedule), 0, 0, 1, 1},
  {&__pyx_n_s__detail, __pyx_k__detail, sizeof(__pyx_k__detail), 0, 0, 1, 1},
  {&__pyx_n_s__dev, __pyx_k__dev, sizeof(__pyx_k__dev), 0, 0, 1, 1},
  {&__pyx_n_s__device, __pyx_k__device, sizeof(__pyx_k__device), 0, 0, 1, 1},
  {&__pyx_n_s__devid_c, __pyx_k__devid_c, sizeof(__pyx_k__devid_c), 0, 0, 1, 1},
  {&__pyx_n_s__devkey, __pyx_k__devkey, sizeof(__pyx_k__devkey), 0, 0, 1, 1},
  {&__pyx_n_s__direction, __pyx_k__direction, sizeof(__pyx_k__direction), 0, 0, 1, 1},
  {&__pyx_n_s__disconnect, __pyx_k__disconnect, sizeof(__pyx_k__disconnect), 0, 0, 1, 1},
  {&__pyx_n_s__disp_c, __pyx_k__disp_c, sizeof(__pyx_k__disp_c), 0, 0, 1, 1},
  {&__pyx_n_s__display, __pyx_k__display, sizeof(__pyx_k__display), 0, 0, 1, 1},
  {&__pyx_n_s__documents, __pyx_k__documents, sizeof(__pyx_k__documents), 0, 0, 1, 1},
  {&__pyx_n_s__dorealize, __pyx_k__dorealize, sizeof(__pyx_k__dorealize), 0, 0, 1, 1},
  {&__pyx_n_s__dtype, __pyx_k__dtype, sizeof(__pyx_k__dtype), 0, 0, 1, 1},
  {&__pyx_n_s__dunit, __pyx_k__dunit, sizeof(__pyx_k__dunit), 0, 0, 1, 1},
  {&__pyx_n_s__dyn, __pyx_k__dyn, sizeof(__pyx_k__dyn), 0, 0, 1, 1},
  {&__pyx_n_s__ecliptic, __pyx_k__ecliptic, sizeof(__pyx_k__ecliptic), 0, 0, 1, 1},
  {&__pyx_n_s__ellipsemask, __pyx_k__ellipsemask, sizeof(__pyx_k__ellipsemask), 0, 0, 1, 1},
  {&__pyx_n_s__ellpar, __pyx_k__ellpar, sizeof(__pyx_k__ellpar), 0, 0, 1, 1},
  {&__pyx_n_s__endang_c, __pyx_k__endang_c, sizeof(__pyx_k__endang_c), 0, 0, 1, 1},
  {&__pyx_n_s__enumerate, __pyx_k__enumerate, sizeof(__pyx_k__enumerate), 0, 0, 1, 1},
  {&__pyx_n_s__equatorial, __pyx_k__equatorial, sizeof(__pyx_k__equatorial), 0, 0, 1, 1},
  {&__pyx_n_s__errno, __pyx_k__errno, sizeof(__pyx_k__errno), 0, 0, 1, 1},
  {&__pyx_n_s__error, __pyx_k__error, sizeof(__pyx_k__error), 0, 0, 1, 1},
  {&__pyx_n_s__evalexpr, __pyx_k__evalexpr, sizeof(__pyx_k__evalexpr), 0, 0, 1, 1},
  {&__pyx_n_s__evalexpr_old, __pyx_k__evalexpr_old, sizeof(__pyx_k__evalexpr_old), 0, 0, 1, 1},
  {&__pyx_n_s__event, __pyx_k__event, sizeof(__pyx_k__event), 0, 0, 1, 1},
  {&__pyx_n_s__eventmonitor, __pyx_k__eventmonitor, sizeof(__pyx_k__eventmonitor), 0, 0, 1, 1},
  {&__pyx_n_s__excepthook, __pyx_k__excepthook, sizeof(__pyx_k__excepthook), 0, 0, 1, 1},
  {&__pyx_n_s__expandtabs, __pyx_k__expandtabs, sizeof(__pyx_k__expandtabs), 0, 0, 1, 1},
  {&__pyx_n_s__export, __pyx_k__export, sizeof(__pyx_k__export), 0, 0, 1, 1},
  {&__pyx_n_s__expr, __pyx_k__expr, sizeof(__pyx_k__expr), 0, 0, 1, 1},
  {&__pyx_n_s__extend, __pyx_k__extend, sizeof(__pyx_k__extend), 0, 0, 1, 1},
  {&__pyx_n_s__falselabel, __pyx_k__falselabel, sizeof(__pyx_k__falselabel), 0, 0, 1, 1},
  {&__pyx_n_s__fd, __pyx_k__fd, sizeof(__pyx_k__fd), 0, 0, 1, 1},
  {&__pyx_n_s__fg_c, __pyx_k__fg_c, sizeof(__pyx_k__fg_c), 0, 0, 1, 1},
  {&__pyx_n_s__fgcolor, __pyx_k__fgcolor, sizeof(__pyx_k__fgcolor), 0, 0, 1, 1},
  {&__pyx_n_s__fileInfo, __pyx_k__fileInfo, sizeof(__pyx_k__fileInfo), 0, 0, 1, 1},
  {&__pyx_n_s__filekeydir, __pyx_k__filekeydir, sizeof(__pyx_k__filekeydir), 0, 0, 1, 1},
  {&__pyx_n_s__filename, __pyx_k__filename, sizeof(__pyx_k__filename), 0, 0, 1, 1},
  {&__pyx_n_s__finis, __pyx_k__finis, sizeof(__pyx_k__finis), 0, 0, 1, 1},
  {&__pyx_n_s__fintptr, __pyx_k__fintptr, sizeof(__pyx_k__fintptr), 0, 0, 1, 1},
  {&__pyx_n_s__fits, __pyx_k__fits, sizeof(__pyx_k__fits), 0, 0, 1, 1},
  {&__pyx_n_s__fitsfiles, __pyx_k__fitsfiles, sizeof(__pyx_k__fitsfiles), 0, 0, 1, 1},
  {&__pyx_n_s__fitsname, __pyx_k__fitsname, sizeof(__pyx_k__fitsname), 0, 0, 1, 1},
  {&__pyx_n_s__fitsseqno, __pyx_k__fitsseqno, sizeof(__pyx_k__fitsseqno), 0, 0, 1, 1},
  {&__pyx_n_s__fjust_c, __pyx_k__fjust_c, sizeof(__pyx_k__fjust_c), 0, 0, 1, 1},
  {&__pyx_n_s__flags, __pyx_k__flags, sizeof(__pyx_k__flags), 0, 0, 1, 1},
  {&__pyx_n_s__flat, __pyx_k__flat, sizeof(__pyx_k__flat), 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__forcecast, __pyx_k__forcecast, sizeof(__pyx_k__forcecast), 0, 0, 1, 1},
  {&__pyx_n_s__format_exception, __pyx_k__format_exception, sizeof(__pyx_k__format_exception), 0, 0, 1, 1},
  {&__pyx_n_s__frame, __pyx_k__frame, sizeof(__pyx_k__frame), 0, 0, 1, 1},
  {&__pyx_n_s__frames, __pyx_k__frames, sizeof(__pyx_k__frames), 0, 0, 1, 1},
  {&__pyx_n_s__fs_c, __pyx_k__fs_c, sizeof(__pyx_k__fs_c), 0, 0, 1, 1},
  {&__pyx_n_s__fstring, __pyx_k__fstring, sizeof(__pyx_k__fstring), 0, 0, 1, 1},
  {&__pyx_n_s__function, __pyx_k__function, sizeof(__pyx_k__function), 0, 0, 1, 1},
  {&__pyx_n_s__g, __pyx_k__g, sizeof(__pyx_k__g), 0, 0, 1, 1},
  {&__pyx_n_s__g_c, __pyx_k__g_c, sizeof(__pyx_k__g_c), 0, 0, 1, 1},
  {&__pyx_n_s__galactic, __pyx_k__galactic, sizeof(__pyx_k__galactic), 0, 0, 1, 1},
  {&__pyx_n_s__gdskey, __pyx_k__gdskey, sizeof(__pyx_k__gdskey), 0, 0, 1, 1},
  {&__pyx_n_s__getalt, __pyx_k__getalt, sizeof(__pyx_k__getalt), 0, 0, 1, 1},
  {&__pyx_n_s__gethdu, __pyx_k__gethdu, sizeof(__pyx_k__gethdu), 0, 0, 1, 1},
  {&__pyx_n_s__getmap, __pyx_k__getmap, sizeof(__pyx_k__getmap), 0, 0, 1, 1},
  {&__pyx_n_s__getpid, __pyx_k__getpid, sizeof(__pyx_k__getpid), 0, 0, 1, 1},
  {&__pyx_n_s__getsas, __pyx_k__getsas, sizeof(__pyx_k__getsas), 0, 0, 1, 1},
  {&__pyx_n_s__ggiAppend, __pyx_k__ggiAppend, sizeof(__pyx_k__ggiAppend), 0, 0, 1, 1},
  {&__pyx_n_s__ggiApply, __pyx_k__ggiApply, sizeof(__pyx_k__ggiApply), 0, 0, 1, 1},
  {&__pyx_n_s__ggiButn1, __pyx_k__ggiButn1, sizeof(__pyx_k__ggiButn1), 0, 0, 1, 1},
  {&__pyx_n_s__ggiButn2, __pyx_k__ggiButn2, sizeof(__pyx_k__ggiButn2), 0, 0, 1, 1},
  {&__pyx_n_s__ggiButn3, __pyx_k__ggiButn3, sizeof(__pyx_k__ggiButn3), 0, 0, 1, 1},
  {&__pyx_n_s__ggiCloseOnOK, __pyx_k__ggiCloseOnOK, sizeof(__pyx_k__ggiCloseOnOK), 0, 0, 1, 1},
  {&__pyx_n_s__ggiColind, __pyx_k__ggiColind, sizeof(__pyx_k__ggiColind), 0, 0, 1, 1},
  {&__pyx_n_s__ggiCreate, __pyx_k__ggiCreate, sizeof(__pyx_k__ggiCreate), 0, 0, 1, 1},
  {&__pyx_n_s__ggiCtrl, __pyx_k__ggiCtrl, sizeof(__pyx_k__ggiCtrl), 0, 0, 1, 1},
  {&__pyx_n_s__ggiDelete, __pyx_k__ggiDelete, sizeof(__pyx_k__ggiDelete), 0, 0, 1, 1},
  {&__pyx_n_s__ggiDownArrow, __pyx_k__ggiDownArrow, sizeof(__pyx_k__ggiDownArrow), 0, 0, 1, 1},
  {&__pyx_n_s__ggiEdit, __pyx_k__ggiEdit, sizeof(__pyx_k__ggiEdit), 0, 0, 1, 1},
  {&__pyx_n_s__ggiFileInfo, __pyx_k__ggiFileInfo, sizeof(__pyx_k__ggiFileInfo), 0, 0, 1, 1},
  {&__pyx_n_s__ggiGetMap, __pyx_k__ggiGetMap, sizeof(__pyx_k__ggiGetMap), 0, 0, 1, 1},
  {&__pyx_n_s__ggiIdent, __pyx_k__ggiIdent, sizeof(__pyx_k__ggiIdent), 0, 0, 1, 1},
  {&__pyx_n_s__ggiKeybd, __pyx_k__ggiKeybd, sizeof(__pyx_k__ggiKeybd), 0, 0, 1, 1},
  {&__pyx_n_s__ggiLeftArrow, __pyx_k__ggiLeftArrow, sizeof(__pyx_k__ggiLeftArrow), 0, 0, 1, 1},
  {&__pyx_n_s__ggiLimits, __pyx_k__ggiLimits, sizeof(__pyx_k__ggiLimits), 0, 0, 1, 1},
  {&__pyx_n_s__ggiNdims, __pyx_k__ggiNdims, sizeof(__pyx_k__ggiNdims), 0, 0, 1, 1},
  {&__pyx_n_s__ggiNext, __pyx_k__ggiNext, sizeof(__pyx_k__ggiNext), 0, 0, 1, 1},
  {&__pyx_n_s__ggiNowait, __pyx_k__ggiNowait, sizeof(__pyx_k__ggiNowait), 0, 0, 1, 1},
  {&__pyx_n_s__ggiReadOnly, __pyx_k__ggiReadOnly, sizeof(__pyx_k__ggiReadOnly), 0, 0, 1, 1},
  {&__pyx_n_s__ggiRightArrow, __pyx_k__ggiRightArrow, sizeof(__pyx_k__ggiRightArrow), 0, 0, 1, 1},
  {&__pyx_n_s__ggiShift, __pyx_k__ggiShift, sizeof(__pyx_k__ggiShift), 0, 0, 1, 1},
  {&__pyx_n_s__ggiStart, __pyx_k__ggiStart, sizeof(__pyx_k__ggiStart), 0, 0, 1, 1},
  {&__pyx_n_s__ggiStop, __pyx_k__ggiStop, sizeof(__pyx_k__ggiStop), 0, 0, 1, 1},
  {&__pyx_n_s__ggiUnits, __pyx_k__ggiUnits, sizeof(__pyx_k__ggiUnits), 0, 0, 1, 1},
  {&__pyx_n_s__ggiUpArrow, __pyx_k__ggiUpArrow, sizeof(__pyx_k__ggiUpArrow), 0, 0, 1, 1},
  {&__pyx_n_s__ggivtk, __pyx_k__ggivtk, sizeof(__pyx_k__ggivtk), 0, 0, 1, 1},
  {&__pyx_n_s__gip_nfy, __pyx_k__gip_nfy, sizeof(__pyx_k__gip_nfy), 0, 0, 1, 1},
  {&__pyx_n_s__gipsy, __pyx_k__gipsy, sizeof(__pyx_k__gipsy), 0, 0, 1, 1},
  {&__pyx_n_s__gipsy_logo, __pyx_k__gipsy_logo, sizeof(__pyx_k__gipsy_logo), 0, 0, 1, 1},
  {&__pyx_n_s__gnomonic, __pyx_k__gnomonic, sizeof(__pyx_k__gnomonic), 0, 0, 1, 1},
  {&__pyx_n_s__gobject, __pyx_k__gobject, sizeof(__pyx_k__gobject), 0, 0, 1, 1},
  {&__pyx_n_s__grid, __pyx_k__grid, sizeof(__pyx_k__grid), 0, 0, 1, 1},
  {&__pyx_n_s__grids, __pyx_k__grids, sizeof(__pyx_k__grids), 0, 0, 1, 1},
  {&__pyx_n_s__gtkconnect, __pyx_k__gtkconnect, sizeof(__pyx_k__gtkconnect), 0, 0, 1, 1},
  {&__pyx_n_s__handle, __pyx_k__handle, sizeof(__pyx_k__handle), 0, 0, 1, 1},
  {&__pyx_n_s__handleEvents, __pyx_k__handleEvents, sizeof(__pyx_k__handleEvents), 0, 0, 1, 1},
  {&__pyx_n_s__handles, __pyx_k__handles, sizeof(__pyx_k__handles), 0, 0, 1, 1},
  {&__pyx_n_s__has_gtk, __pyx_k__has_gtk, sizeof(__pyx_k__has_gtk), 0, 0, 1, 1},
  {&__pyx_n_s__has_key, __pyx_k__has_key, sizeof(__pyx_k__has_key), 0, 0, 1, 1},
  {&__pyx_n_s__has_pyfits, __pyx_k__has_pyfits, sizeof(__pyx_k__has_pyfits), 0, 0, 1, 1},
  {&__pyx_n_s__has_pyqt4, __pyx_k__has_pyqt4, sizeof(__pyx_k__has_pyqt4), 0, 0, 1, 1},
  {&__pyx_n_s__has_tk, __pyx_k__has_tk, sizeof(__pyx_k__has_tk), 0, 0, 1, 1},
  {&__pyx_n_s__hdulist, __pyx_k__hdulist, sizeof(__pyx_k__hdulist), 0, 0, 1, 1},
  {&__pyx_n_s__hdunum, __pyx_k__hdunum, sizeof(__pyx_k__hdunum), 0, 0, 1, 1},
  {&__pyx_n_s__header, __pyx_k__header, sizeof(__pyx_k__header), 0, 0, 1, 1},
  {&__pyx_n_s__height, __pyx_k__height, sizeof(__pyx_k__height), 0, 0, 1, 1},
  {&__pyx_n_s__helpText, __pyx_k__helpText, sizeof(__pyx_k__helpText), 0, 0, 1, 1},
  {&__pyx_n_s__herconnect, __pyx_k__herconnect, sizeof(__pyx_k__herconnect), 0, 0, 1, 1},
  {&__pyx_n_s__hersignal, __pyx_k__hersignal, sizeof(__pyx_k__hersignal), 0, 0, 1, 1},
  {&__pyx_n_s__highval, __pyx_k__highval, sizeof(__pyx_k__highval), 0, 0, 1, 1},
  {&__pyx_n_s__history, __pyx_k__history, sizeof(__pyx_k__history), 0, 0, 1, 1},
  {&__pyx_n_s__hook, __pyx_k__hook, sizeof(__pyx_k__hook), 0, 0, 1, 1},
  {&__pyx_n_s__hue_c, __pyx_k__hue_c, sizeof(__pyx_k__hue_c), 0, 0, 1, 1},
  {&__pyx_n_s__i1, __pyx_k__i1, sizeof(__pyx_k__i1), 0, 0, 1, 1},
  {&__pyx_n_s__i1_c, __pyx_k__i1_c, sizeof(__pyx_k__i1_c), 0, 0, 1, 1},
  {&__pyx_n_s__i2, __pyx_k__i2, sizeof(__pyx_k__i2), 0, 0, 1, 1},
  {&__pyx_n_s__i2_c, __pyx_k__i2_c, sizeof(__pyx_k__i2_c), 0, 0, 1, 1},
  {&__pyx_n_s__id, __pyx_k__id, sizeof(__pyx_k__id), 0, 0, 1, 1},
  {&__pyx_n_s__id_c, __pyx_k__id_c, sizeof(__pyx_k__id_c), 0, 0, 1, 1},
  {&__pyx_n_s__idim, __pyx_k__idim, sizeof(__pyx_k__idim), 0, 0, 1, 1},
  {&__pyx_n_s__idim_c, __pyx_k__idim_c, sizeof(__pyx_k__idim_c), 0, 0, 1, 1},
  {&__pyx_n_s__image, __pyx_k__image, sizeof(__pyx_k__image), 0, 0, 1, 1},
  {&__pyx_n_s__index, __pyx_k__index, sizeof(__pyx_k__index), 0, 0, 1, 1},
  {&__pyx_n_s__init, __pyx_k__init, sizeof(__pyx_k__init), 0, 0, 1, 1},
  {&__pyx_n_s__inner_length, __pyx_k__inner_length, sizeof(__pyx_k__inner_length), 0, 0, 1, 1},
  {&__pyx_n_s__insert, __pyx_k__insert, sizeof(__pyx_k__insert), 0, 0, 1, 1},
  {&__pyx_n_s__insetkey, __pyx_k__insetkey, sizeof(__pyx_k__insetkey), 0, 0, 1, 1},
  {&__pyx_n_s__inside, __pyx_k__inside, sizeof(__pyx_k__inside), 0, 0, 1, 1},
  {&__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__interval, __pyx_k__interval, sizeof(__pyx_k__interval), 0, 0, 1, 1},
  {&__pyx_n_s__intervals, __pyx_k__intervals, sizeof(__pyx_k__intervals), 0, 0, 1, 1},
  {&__pyx_n_s__intval_c, __pyx_k__intval_c, sizeof(__pyx_k__intval_c), 0, 0, 1, 1},
  {&__pyx_n_s__io_add_watch, __pyx_k__io_add_watch, sizeof(__pyx_k__io_add_watch), 0, 0, 1, 1},
  {&__pyx_n_s__ioff_c, __pyx_k__ioff_c, sizeof(__pyx_k__ioff_c), 0, 0, 1, 1},
  {&__pyx_n_s__isChecked, __pyx_k__isChecked, sizeof(__pyx_k__isChecked), 0, 0, 1, 1},
  {&__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__ix1_c, __pyx_k__ix1_c, sizeof(__pyx_k__ix1_c), 0, 0, 1, 1},
  {&__pyx_n_s__ix2_c, __pyx_k__ix2_c, sizeof(__pyx_k__ix2_c), 0, 0, 1, 1},
  {&__pyx_n_s__ix_c, __pyx_k__ix_c, sizeof(__pyx_k__ix_c), 0, 0, 1, 1},
  {&__pyx_n_s__iy1_c, __pyx_k__iy1_c, sizeof(__pyx_k__iy1_c), 0, 0, 1, 1},
  {&__pyx_n_s__iy2_c, __pyx_k__iy2_c, sizeof(__pyx_k__iy2_c), 0, 0, 1, 1},
  {&__pyx_n_s__iy_c, __pyx_k__iy_c, sizeof(__pyx_k__iy_c), 0, 0, 1, 1},
  {&__pyx_n_s__j1, __pyx_k__j1, sizeof(__pyx_k__j1), 0, 0, 1, 1},
  {&__pyx_n_s__j1_c, __pyx_k__j1_c, sizeof(__pyx_k__j1_c), 0, 0, 1, 1},
  {&__pyx_n_s__j2, __pyx_k__j2, sizeof(__pyx_k__j2), 0, 0, 1, 1},
  {&__pyx_n_s__j2_c, __pyx_k__j2_c, sizeof(__pyx_k__j2_c), 0, 0, 1, 1},
  {&__pyx_n_s__jd, __pyx_k__jd, sizeof(__pyx_k__jd), 0, 0, 1, 1},
  {&__pyx_n_s__jd_c, __pyx_k__jd_c, sizeof(__pyx_k__jd_c), 0, 0, 1, 1},
  {&__pyx_n_s__jdim, __pyx_k__jdim, sizeof(__pyx_k__jdim), 0, 0, 1, 1},
  {&__pyx_n_s__jdim_c, __pyx_k__jdim_c, sizeof(__pyx_k__jdim_c), 0, 0, 1, 1},
  {&__pyx_n_s__join, __pyx_k__join, sizeof(__pyx_k__join), 0, 0, 1, 1},
  {&__pyx_n_s__just_c, __pyx_k__just_c, sizeof(__pyx_k__just_c), 0, 0, 1, 1},
  {&__pyx_n_s__k_getval, __pyx_k__k_getval, sizeof(__pyx_k__k_getval), 0, 0, 1, 1},
  {&__pyx_n_s__kapteyn_logo, __pyx_k__kapteyn_logo, sizeof(__pyx_k__kapteyn_logo), 0, 0, 1, 1},
  {&__pyx_n_s__kapteyn_text, __pyx_k__kapteyn_text, sizeof(__pyx_k__kapteyn_text), 0, 0, 1, 1},
  {&__pyx_n_s__kcb, __pyx_k__kcb, sizeof(__pyx_k__kcb), 0, 0, 1, 1},
  {&__pyx_n_s__key, __pyx_k__key, sizeof(__pyx_k__key), 0, 0, 1, 1},
  {&__pyx_n_s__key_read, __pyx_k__key_read, sizeof(__pyx_k__key_read), 0, 0, 1, 1},
  {&__pyx_n_s__key_reject, __pyx_k__key_reject, sizeof(__pyx_k__key_reject), 0, 0, 1, 1},
  {&__pyx_n_s__keyproc, __pyx_k__keyproc, sizeof(__pyx_k__keyproc), 0, 0, 1, 1},
  {&__pyx_n_s__keys, __pyx_k__keys, sizeof(__pyx_k__keys), 0, 0, 1, 1},
  {&__pyx_n_s__keystring, __pyx_k__keystring, sizeof(__pyx_k__keystring), 0, 0, 1, 1},
  {&__pyx_n_s__keyval, __pyx_k__keyval, sizeof(__pyx_k__keyval), 0, 0, 1, 1},
  {&__pyx_n_s__keyword, __pyx_k__keyword, sizeof(__pyx_k__keyword), 0, 0, 1, 1},
  {&__pyx_n_s__kind, __pyx_k__kind, sizeof(__pyx_k__kind), 0, 0, 1, 1},
  {&__pyx_n_s__krj, __pyx_k__krj, sizeof(__pyx_k__krj), 0, 0, 1, 1},
  {&__pyx_n_s__l, __pyx_k__l, sizeof(__pyx_k__l), 0, 0, 1, 1},
  {&__pyx_n_s__label, __pyx_k__label, sizeof(__pyx_k__label), 0, 0, 1, 1},
  {&__pyx_n_s__labels, __pyx_k__labels, sizeof(__pyx_k__labels), 0, 0, 1, 1},
  {&__pyx_n_s__labs, __pyx_k__labs, sizeof(__pyx_k__labs), 0, 0, 1, 1},
  {&__pyx_n_s__left, __pyx_k__left, sizeof(__pyx_k__left), 0, 0, 1, 1},
  {&__pyx_n_s__length, __pyx_k__length, sizeof(__pyx_k__length), 0, 0, 1, 1},
  {&__pyx_n_s__level, __pyx_k__level, sizeof(__pyx_k__level), 0, 0, 1, 1},
  {&__pyx_n_s__level_c, __pyx_k__level_c, sizeof(__pyx_k__level_c), 0, 0, 1, 1},
  {&__pyx_n_s__limits, __pyx_k__limits, sizeof(__pyx_k__limits), 0, 0, 1, 1},
  {&__pyx_n_s__little, __pyx_k__little, sizeof(__pyx_k__little), 0, 0, 1, 1},
  {&__pyx_n_s__logo_text, __pyx_k__logo_text, sizeof(__pyx_k__logo_text), 0, 0, 1, 1},
  {&__pyx_n_s__lower, __pyx_k__lower, sizeof(__pyx_k__lower), 0, 0, 1, 1},
  {&__pyx_n_s__lowval, __pyx_k__lowval, sizeof(__pyx_k__lowval), 0, 0, 1, 1},
  {&__pyx_n_s__ls_c, __pyx_k__ls_c, sizeof(__pyx_k__ls_c), 0, 0, 1, 1},
  {&__pyx_n_s__lw_c, __pyx_k__lw_c, sizeof(__pyx_k__lw_c), 0, 0, 1, 1},
  {&__pyx_n_s__mainloop, __pyx_k__mainloop, sizeof(__pyx_k__mainloop), 0, 0, 1, 1},
  {&__pyx_n_s__major_c, __pyx_k__major_c, sizeof(__pyx_k__major_c), 0, 0, 1, 1},
  {&__pyx_n_s__mapColors, __pyx_k__mapColors, sizeof(__pyx_k__mapColors), 0, 0, 1, 1},
  {&__pyx_n_s__mapToGlobal, __pyx_k__mapToGlobal, sizeof(__pyx_k__mapToGlobal), 0, 0, 1, 1},
  {&__pyx_n_s__mask, __pyx_k__mask, sizeof(__pyx_k__mask), 0, 0, 1, 1},
  {&__pyx_n_s__master, __pyx_k__master, sizeof(__pyx_k__master), 0, 0, 1, 1},
  {&__pyx_n_s__max_angle, __pyx_k__max_angle, sizeof(__pyx_k__max_angle), 0, 0, 1, 1},
  {&__pyx_n_s__max_cword, __pyx_k__max_cword, sizeof(__pyx_k__max_cword), 0, 0, 1, 1},
  {&__pyx_n_s__max_val, __pyx_k__max_val, sizeof(__pyx_k__max_val), 0, 0, 1, 1},
  {&__pyx_n_s__memmap, __pyx_k__memmap, sizeof(__pyx_k__memmap), 0, 0, 1, 1},
  {&__pyx_n_s__message, __pyx_k__message, sizeof(__pyx_k__message), 0, 0, 1, 1},
  {&__pyx_n_s__min_angle, __pyx_k__min_angle, sizeof(__pyx_k__min_angle), 0, 0, 1, 1},
  {&__pyx_n_s__min_val, __pyx_k__min_val, sizeof(__pyx_k__min_val), 0, 0, 1, 1},
  {&__pyx_n_s__minint_c, __pyx_k__minint_c, sizeof(__pyx_k__minint_c), 0, 0, 1, 1},
  {&__pyx_n_s__minmax3, __pyx_k__minmax3, sizeof(__pyx_k__minmax3), 0, 0, 1, 1},
  {&__pyx_n_s__minor_c, __pyx_k__minor_c, sizeof(__pyx_k__minor_c), 0, 0, 1, 1},
  {&__pyx_n_s__mode, __pyx_k__mode, sizeof(__pyx_k__mode), 0, 0, 1, 1},
  {&__pyx_n_s__mode_c, __pyx_k__mode_c, sizeof(__pyx_k__mode_c), 0, 0, 1, 1},
  {&__pyx_n_s__move, __pyx_k__move, sizeof(__pyx_k__move), 0, 0, 1, 1},
  {&__pyx_n_s__msg, __pyx_k__msg, sizeof(__pyx_k__msg), 0, 0, 1, 1},
  {&__pyx_n_s__myname, __pyx_k__myname, sizeof(__pyx_k__myname), 0, 0, 1, 1},
  {&__pyx_n_s__n, __pyx_k__n, sizeof(__pyx_k__n), 0, 0, 1, 1},
  {&__pyx_n_s__n_c, __pyx_k__n_c, sizeof(__pyx_k__n_c), 0, 0, 1, 1},
  {&__pyx_n_s__name, __pyx_k__name, sizeof(__pyx_k__name), 0, 0, 1, 1},
  {&__pyx_n_s__namekey, __pyx_k__namekey, sizeof(__pyx_k__namekey), 0, 0, 1, 1},
  {&__pyx_n_s__native_f4, __pyx_k__native_f4, sizeof(__pyx_k__native_f4), 0, 0, 1, 1},
  {&__pyx_n_s__native_f8, __pyx_k__native_f8, sizeof(__pyx_k__native_f8), 0, 0, 1, 1},
  {&__pyx_n_s__native_i4, __pyx_k__native_i4, sizeof(__pyx_k__native_i4), 0, 0, 1, 1},
  {&__pyx_n_s__native_i8, __pyx_k__native_i8, sizeof(__pyx_k__native_i8), 0, 0, 1, 1},
  {&__pyx_n_s__naxis, __pyx_k__naxis, sizeof(__pyx_k__naxis), 0, 0, 1, 1},
  {&__pyx_n_s__nbin_c, __pyx_k__nbin_c, sizeof(__pyx_k__nbin_c), 0, 0, 1, 1},
  {&__pyx_n_s__nc, __pyx_k__nc, sizeof(__pyx_k__nc), 0, 0, 1, 1},
  {&__pyx_n_s__nc_c, __pyx_k__nc_c, sizeof(__pyx_k__nc_c), 0, 0, 1, 1},
  {&__pyx_n_s__ncolors, __pyx_k__ncolors, sizeof(__pyx_k__ncolors), 0, 0, 1, 1},
  {&__pyx_n_s__ncoords, __pyx_k__ncoords, sizeof(__pyx_k__ncoords), 0, 0, 1, 1},
  {&__pyx_n_s__ndarray, __pyx_k__ndarray, sizeof(__pyx_k__ndarray), 0, 0, 1, 1},
  {&__pyx_n_s__ndims, __pyx_k__ndims, sizeof(__pyx_k__ndims), 0, 0, 1, 1},
  {&__pyx_n_s__nframes, __pyx_k__nframes, sizeof(__pyx_k__nframes), 0, 0, 1, 1},
  {&__pyx_n_s__nitems, __pyx_k__nitems, sizeof(__pyx_k__nitems), 0, 0, 1, 1},
  {&__pyx_n_s__nmax, __pyx_k__nmax, sizeof(__pyx_k__nmax), 0, 0, 1, 1},
  {&__pyx_n_s__nowait, __pyx_k__nowait, sizeof(__pyx_k__nowait), 0, 0, 1, 1},
  {&__pyx_n_s__numbertypes, __pyx_k__numbertypes, sizeof(__pyx_k__numbertypes), 0, 0, 1, 1},
  {&__pyx_n_s__numpy, __pyx_k__numpy, sizeof(__pyx_k__numpy), 0, 0, 1, 1},
  {&__pyx_n_s__nxsub_c, __pyx_k__nxsub_c, sizeof(__pyx_k__nxsub_c), 0, 0, 1, 1},
  {&__pyx_n_s__nxv_c, __pyx_k__nxv_c, sizeof(__pyx_k__nxv_c), 0, 0, 1, 1},
  {&__pyx_n_s__nysub_c, __pyx_k__nysub_c, sizeof(__pyx_k__nysub_c), 0, 0, 1, 1},
  {&__pyx_n_s__nyv_c, __pyx_k__nyv_c, sizeof(__pyx_k__nyv_c), 0, 0, 1, 1},
  {&__pyx_n_s__object, __pyx_k__object, sizeof(__pyx_k__object), 0, 0, 1, 1},
  {&__pyx_n_s__open, __pyx_k__open, sizeof(__pyx_k__open), 0, 0, 1, 1},
  {&__pyx_n_s__openMpeg, __pyx_k__openMpeg, sizeof(__pyx_k__openMpeg), 0, 0, 1, 1},
  {&__pyx_n_s__optical, __pyx_k__optical, sizeof(__pyx_k__optical), 0, 0, 1, 1},
  {&__pyx_n_s__origin, __pyx_k__origin, sizeof(__pyx_k__origin), 0, 0, 1, 1},
  {&__pyx_n_s__orthographic, __pyx_k__orthographic, sizeof(__pyx_k__orthographic), 0, 0, 1, 1},
  {&__pyx_n_s__os, __pyx_k__os, sizeof(__pyx_k__os), 0, 0, 1, 1},
  {&__pyx_n_s__outer_length, __pyx_k__outer_length, sizeof(__pyx_k__outer_length), 0, 0, 1, 1},
  {&__pyx_n_s__outset, __pyx_k__outset, sizeof(__pyx_k__outset), 0, 0, 1, 1},
  {&__pyx_n_s__outside, __pyx_k__outside, sizeof(__pyx_k__outside), 0, 0, 1, 1},
  {&__pyx_n_s__pa_c, __pyx_k__pa_c, sizeof(__pyx_k__pa_c), 0, 0, 1, 1},
  {&__pyx_n_s__parent, __pyx_k__parent, sizeof(__pyx_k__parent), 0, 0, 1, 1},
  {&__pyx_n_s__pause, __pyx_k__pause, sizeof(__pyx_k__pause), 0, 0, 1, 1},
  {&__pyx_n_s__pgarro, __pyx_k__pgarro, sizeof(__pyx_k__pgarro), 0, 0, 1, 1},
  {&__pyx_n_s__pgask, __pyx_k__pgask, sizeof(__pyx_k__pgask), 0, 0, 1, 1},
  {&__pyx_n_s__pgband, __pyx_k__pgband, sizeof(__pyx_k__pgband), 0, 0, 1, 1},
  {&__pyx_n_s__pgbbuf, __pyx_k__pgbbuf, sizeof(__pyx_k__pgbbuf), 0, 0, 1, 1},
  {&__pyx_n_s__pgbeam, __pyx_k__pgbeam, sizeof(__pyx_k__pgbeam), 0, 0, 1, 1},
  {&__pyx_n_s__pgbeg, __pyx_k__pgbeg, sizeof(__pyx_k__pgbeg), 0, 0, 1, 1},
  {&__pyx_n_s__pgbin, __pyx_k__pgbin, sizeof(__pyx_k__pgbin), 0, 0, 1, 1},
  {&__pyx_n_s__pgbin_s, __pyx_k__pgbin_s, sizeof(__pyx_k__pgbin_s), 0, 0, 1, 1},
  {&__pyx_n_s__pgbox, __pyx_k__pgbox, sizeof(__pyx_k__pgbox), 0, 0, 1, 1},
  {&__pyx_n_s__pgcirc, __pyx_k__pgcirc, sizeof(__pyx_k__pgcirc), 0, 0, 1, 1},
  {&__pyx_n_s__pgclos, __pyx_k__pgclos, sizeof(__pyx_k__pgclos), 0, 0, 1, 1},
  {&__pyx_n_s__pgconb, __pyx_k__pgconb, sizeof(__pyx_k__pgconb), 0, 0, 1, 1},
  {&__pyx_n_s__pgconf, __pyx_k__pgconf, sizeof(__pyx_k__pgconf), 0, 0, 1, 1},
  {&__pyx_n_s__pgconl, __pyx_k__pgconl, sizeof(__pyx_k__pgconl), 0, 0, 1, 1},
  {&__pyx_n_s__pgcons, __pyx_k__pgcons, sizeof(__pyx_k__pgcons), 0, 0, 1, 1},
  {&__pyx_n_s__pgcont, __pyx_k__pgcont, sizeof(__pyx_k__pgcont), 0, 0, 1, 1},
  {&__pyx_n_s__pgcotic, __pyx_k__pgcotic, sizeof(__pyx_k__pgcotic), 0, 0, 1, 1},
  {&__pyx_n_s__pgctab, __pyx_k__pgctab, sizeof(__pyx_k__pgctab), 0, 0, 1, 1},
  {&__pyx_n_s__pgdraw, __pyx_k__pgdraw, sizeof(__pyx_k__pgdraw), 0, 0, 1, 1},
  {&__pyx_n_s__pgebuf, __pyx_k__pgebuf, sizeof(__pyx_k__pgebuf), 0, 0, 1, 1},
  {&__pyx_n_s__pgellipse, __pyx_k__pgellipse, sizeof(__pyx_k__pgellipse), 0, 0, 1, 1},
  {&__pyx_n_s__pgend, __pyx_k__pgend, sizeof(__pyx_k__pgend), 0, 0, 1, 1},
  {&__pyx_n_s__pgenv, __pyx_k__pgenv, sizeof(__pyx_k__pgenv), 0, 0, 1, 1},
  {&__pyx_n_s__pgeras, __pyx_k__pgeras, sizeof(__pyx_k__pgeras), 0, 0, 1, 1},
  {&__pyx_n_s__pgetxt, __pyx_k__pgetxt, sizeof(__pyx_k__pgetxt), 0, 0, 1, 1},
  {&__pyx_n_s__pgexist, __pyx_k__pgexist, sizeof(__pyx_k__pgexist), 0, 0, 1, 1},
  {&__pyx_n_s__pgflag_c, __pyx_k__pgflag_c, sizeof(__pyx_k__pgflag_c), 0, 0, 1, 1},
  {&__pyx_n_s__pggray, __pyx_k__pggray, sizeof(__pyx_k__pggray), 0, 0, 1, 1},
  {&__pyx_n_s__pghi2d, __pyx_k__pghi2d, sizeof(__pyx_k__pghi2d), 0, 0, 1, 1},
  {&__pyx_n_s__pghist, __pyx_k__pghist, sizeof(__pyx_k__pghist), 0, 0, 1, 1},
  {&__pyx_n_s__pgid, __pyx_k__pgid, sizeof(__pyx_k__pgid), 0, 0, 1, 1},
  {&__pyx_n_s__pgiden, __pyx_k__pgiden, sizeof(__pyx_k__pgiden), 0, 0, 1, 1},
  {&__pyx_n_s__pgimag, __pyx_k__pgimag, sizeof(__pyx_k__pgimag), 0, 0, 1, 1},
  {&__pyx_n_s__pglab, __pyx_k__pglab, sizeof(__pyx_k__pglab), 0, 0, 1, 1},
  {&__pyx_n_s__pgldev, __pyx_k__pgldev, sizeof(__pyx_k__pgldev), 0, 0, 1, 1},
  {&__pyx_n_s__pglen, __pyx_k__pglen, sizeof(__pyx_k__pglen), 0, 0, 1, 1},
  {&__pyx_n_s__pgline, __pyx_k__pgline, sizeof(__pyx_k__pgline), 0, 0, 1, 1},
  {&__pyx_n_s__pgmove, __pyx_k__pgmove, sizeof(__pyx_k__pgmove), 0, 0, 1, 1},
  {&__pyx_n_s__pgmtxt, __pyx_k__pgmtxt, sizeof(__pyx_k__pgmtxt), 0, 0, 1, 1},
  {&__pyx_n_s__pgopen, __pyx_k__pgopen, sizeof(__pyx_k__pgopen), 0, 0, 1, 1},
  {&__pyx_n_s__pgpage, __pyx_k__pgpage, sizeof(__pyx_k__pgpage), 0, 0, 1, 1},
  {&__pyx_n_s__pgpanl, __pyx_k__pgpanl, sizeof(__pyx_k__pgpanl), 0, 0, 1, 1},
  {&__pyx_n_s__pgpap, __pyx_k__pgpap, sizeof(__pyx_k__pgpap), 0, 0, 1, 1},
  {&__pyx_n_s__pgpat, __pyx_k__pgpat, sizeof(__pyx_k__pgpat), 0, 0, 1, 1},
  {&__pyx_n_s__pgpoly, __pyx_k__pgpoly, sizeof(__pyx_k__pgpoly), 0, 0, 1, 1},
  {&__pyx_n_s__pgpt, __pyx_k__pgpt, sizeof(__pyx_k__pgpt), 0, 0, 1, 1},
  {&__pyx_n_s__pgptxt, __pyx_k__pgptxt, sizeof(__pyx_k__pgptxt), 0, 0, 1, 1},
  {&__pyx_n_s__pgqah, __pyx_k__pgqah, sizeof(__pyx_k__pgqah), 0, 0, 1, 1},
  {&__pyx_n_s__pgqbci, __pyx_k__pgqbci, sizeof(__pyx_k__pgqbci), 0, 0, 1, 1},
  {&__pyx_n_s__pgqcf, __pyx_k__pgqcf, sizeof(__pyx_k__pgqcf), 0, 0, 1, 1},
  {&__pyx_n_s__pgqch, __pyx_k__pgqch, sizeof(__pyx_k__pgqch), 0, 0, 1, 1},
  {&__pyx_n_s__pgqci, __pyx_k__pgqci, sizeof(__pyx_k__pgqci), 0, 0, 1, 1},
  {&__pyx_n_s__pgqcir, __pyx_k__pgqcir, sizeof(__pyx_k__pgqcir), 0, 0, 1, 1},
  {&__pyx_n_s__pgqclp, __pyx_k__pgqclp, sizeof(__pyx_k__pgqclp), 0, 0, 1, 1},
  {&__pyx_n_s__pgqcol, __pyx_k__pgqcol, sizeof(__pyx_k__pgqcol), 0, 0, 1, 1},
  {&__pyx_n_s__pgqcr, __pyx_k__pgqcr, sizeof(__pyx_k__pgqcr), 0, 0, 1, 1},
  {&__pyx_n_s__pgqcs, __pyx_k__pgqcs, sizeof(__pyx_k__pgqcs), 0, 0, 1, 1},
  {&__pyx_n_s__pgqfs, __pyx_k__pgqfs, sizeof(__pyx_k__pgqfs), 0, 0, 1, 1},
  {&__pyx_n_s__pgqhs, __pyx_k__pgqhs, sizeof(__pyx_k__pgqhs), 0, 0, 1, 1},
  {&__pyx_n_s__pgqid, __pyx_k__pgqid, sizeof(__pyx_k__pgqid), 0, 0, 1, 1},
  {&__pyx_n_s__pgqimi, __pyx_k__pgqimi, sizeof(__pyx_k__pgqimi), 0, 0, 1, 1},
  {&__pyx_n_s__pgqinf, __pyx_k__pgqinf, sizeof(__pyx_k__pgqinf), 0, 0, 1, 1},
  {&__pyx_n_s__pgqitf, __pyx_k__pgqitf, sizeof(__pyx_k__pgqitf), 0, 0, 1, 1},
  {&__pyx_n_s__pgqls, __pyx_k__pgqls, sizeof(__pyx_k__pgqls), 0, 0, 1, 1},
  {&__pyx_n_s__pgqlw, __pyx_k__pgqlw, sizeof(__pyx_k__pgqlw), 0, 0, 1, 1},
  {&__pyx_n_s__pgqpos, __pyx_k__pgqpos, sizeof(__pyx_k__pgqpos), 0, 0, 1, 1},
  {&__pyx_n_s__pgqtxt, __pyx_k__pgqtxt, sizeof(__pyx_k__pgqtxt), 0, 0, 1, 1},
  {&__pyx_n_s__pgqvp, __pyx_k__pgqvp, sizeof(__pyx_k__pgqvp), 0, 0, 1, 1},
  {&__pyx_n_s__pgqvsz, __pyx_k__pgqvsz, sizeof(__pyx_k__pgqvsz), 0, 0, 1, 1},
  {&__pyx_n_s__pgrect, __pyx_k__pgrect, sizeof(__pyx_k__pgrect), 0, 0, 1, 1},
  {&__pyx_n_s__pgsah, __pyx_k__pgsah, sizeof(__pyx_k__pgsah), 0, 0, 1, 1},
  {&__pyx_n_s__pgsave, __pyx_k__pgsave, sizeof(__pyx_k__pgsave), 0, 0, 1, 1},
  {&__pyx_n_s__pgsbci, __pyx_k__pgsbci, sizeof(__pyx_k__pgsbci), 0, 0, 1, 1},
  {&__pyx_n_s__pgscf, __pyx_k__pgscf, sizeof(__pyx_k__pgscf), 0, 0, 1, 1},
  {&__pyx_n_s__pgsch, __pyx_k__pgsch, sizeof(__pyx_k__pgsch), 0, 0, 1, 1},
  {&__pyx_n_s__pgsci, __pyx_k__pgsci, sizeof(__pyx_k__pgsci), 0, 0, 1, 1},
  {&__pyx_n_s__pgscir, __pyx_k__pgscir, sizeof(__pyx_k__pgscir), 0, 0, 1, 1},
  {&__pyx_n_s__pgsclp, __pyx_k__pgsclp, sizeof(__pyx_k__pgsclp), 0, 0, 1, 1},
  {&__pyx_n_s__pgscr, __pyx_k__pgscr, sizeof(__pyx_k__pgscr), 0, 0, 1, 1},
  {&__pyx_n_s__pgsfs, __pyx_k__pgsfs, sizeof(__pyx_k__pgsfs), 0, 0, 1, 1},
  {&__pyx_n_s__pgshls, __pyx_k__pgshls, sizeof(__pyx_k__pgshls), 0, 0, 1, 1},
  {&__pyx_n_s__pgshs, __pyx_k__pgshs, sizeof(__pyx_k__pgshs), 0, 0, 1, 1},
  {&__pyx_n_s__pgsimi, __pyx_k__pgsimi, sizeof(__pyx_k__pgsimi), 0, 0, 1, 1},
  {&__pyx_n_s__pgsitf, __pyx_k__pgsitf, sizeof(__pyx_k__pgsitf), 0, 0, 1, 1},
  {&__pyx_n_s__pgslct, __pyx_k__pgslct, sizeof(__pyx_k__pgslct), 0, 0, 1, 1},
  {&__pyx_n_s__pgsls, __pyx_k__pgsls, sizeof(__pyx_k__pgsls), 0, 0, 1, 1},
  {&__pyx_n_s__pgslw, __pyx_k__pgslw, sizeof(__pyx_k__pgslw), 0, 0, 1, 1},
  {&__pyx_n_s__pgstbg, __pyx_k__pgstbg, sizeof(__pyx_k__pgstbg), 0, 0, 1, 1},
  {&__pyx_n_s__pgsubp, __pyx_k__pgsubp, sizeof(__pyx_k__pgsubp), 0, 0, 1, 1},
  {&__pyx_n_s__pgsvp, __pyx_k__pgsvp, sizeof(__pyx_k__pgsvp), 0, 0, 1, 1},
  {&__pyx_n_s__pgswin, __pyx_k__pgswin, sizeof(__pyx_k__pgswin), 0, 0, 1, 1},
  {&__pyx_n_s__pgtext, __pyx_k__pgtext, sizeof(__pyx_k__pgtext), 0, 0, 1, 1},
  {&__pyx_n_s__pgunsa, __pyx_k__pgunsa, sizeof(__pyx_k__pgunsa), 0, 0, 1, 1},
  {&__pyx_n_s__pgupdt, __pyx_k__pgupdt, sizeof(__pyx_k__pgupdt), 0, 0, 1, 1},
  {&__pyx_n_s__pgvsiz, __pyx_k__pgvsiz, sizeof(__pyx_k__pgvsiz), 0, 0, 1, 1},
  {&__pyx_n_s__pgvstd, __pyx_k__pgvstd, sizeof(__pyx_k__pgvstd), 0, 0, 1, 1},
  {&__pyx_n_s__pgwedg, __pyx_k__pgwedg, sizeof(__pyx_k__pgwedg), 0, 0, 1, 1},
  {&__pyx_n_s__pgwnad, __pyx_k__pgwnad, sizeof(__pyx_k__pgwnad), 0, 0, 1, 1},
  {&__pyx_n_s__phase_c, __pyx_k__phase_c, sizeof(__pyx_k__phase_c), 0, 0, 1, 1},
  {&__pyx_n_s__phys, __pyx_k__phys, sizeof(__pyx_k__phys), 0, 0, 1, 1},
  {&__pyx_n_s__plotfield, __pyx_k__plotfield, sizeof(__pyx_k__plotfield), 0, 0, 1, 1},
  {&__pyx_n_s__polyX, __pyx_k__polyX, sizeof(__pyx_k__polyX), 0, 0, 1, 1},
  {&__pyx_n_s__polyY, __pyx_k__polyY, sizeof(__pyx_k__polyY), 0, 0, 1, 1},
  {&__pyx_n_s__polymask, __pyx_k__polymask, sizeof(__pyx_k__polymask), 0, 0, 1, 1},
  {&__pyx_n_s__pop, __pyx_k__pop, sizeof(__pyx_k__pop), 0, 0, 1, 1},
  {&__pyx_n_s__posn_c, __pyx_k__posn_c, sizeof(__pyx_k__posn_c), 0, 0, 1, 1},
  {&__pyx_n_s__proc, __pyx_k__proc, sizeof(__pyx_k__proc), 0, 0, 1, 1},
  {&__pyx_n_s__prosys, __pyx_k__prosys, sizeof(__pyx_k__prosys), 0, 0, 1, 1},
  {&__pyx_n_s__protocols, __pyx_k__protocols, sizeof(__pyx_k__protocols), 0, 0, 1, 1},
  {&__pyx_n_s__proxy, __pyx_k__proxy, sizeof(__pyx_k__proxy), 0, 0, 1, 1},
  {&__pyx_n_s__ptr, __pyx_k__ptr, sizeof(__pyx_k__ptr), 0, 0, 1, 1},
  {&__pyx_n_s__pyfits, __pyx_k__pyfits, sizeof(__pyx_k__pyfits), 0, 0, 1, 1},
  {&__pyx_n_s__qCleanupResources, __pyx_k__qCleanupResources, sizeof(__pyx_k__qCleanupResources), 0, 0, 1, 1},
  {&__pyx_n_s__qInitResources, __pyx_k__qInitResources, sizeof(__pyx_k__qInitResources), 0, 0, 1, 1},
  {&__pyx_n_s__qlink_buttontext, __pyx_k__qlink_buttontext, sizeof(__pyx_k__qlink_buttontext), 0, 0, 1, 1},
  {&__pyx_n_s__qt_resource_data, __pyx_k__qt_resource_data, sizeof(__pyx_k__qt_resource_data), 0, 0, 1, 1},
  {&__pyx_n_s__qt_resource_name, __pyx_k__qt_resource_name, sizeof(__pyx_k__qt_resource_name), 0, 0, 1, 1},
  {&__pyx_n_s__qt_resource_struct, __pyx_k__qt_resource_struct, sizeof(__pyx_k__qt_resource_struct), 0, 0, 1, 1},
  {&__pyx_n_s__qtconnect, __pyx_k__qtconnect, sizeof(__pyx_k__qtconnect), 0, 0, 1, 1},
  {&__pyx_n_s__qtlink_dspinboxtext, __pyx_k__qtlink_dspinboxtext, sizeof(__pyx_k__qtlink_dspinboxtext), 0, 0, 1, 1},
  {&__pyx_n_s__qtlink_getlog, __pyx_k__qtlink_getlog, sizeof(__pyx_k__qtlink_getlog), 0, 0, 1, 1},
  {&__pyx_n_s__qtlink_gettext, __pyx_k__qtlink_gettext, sizeof(__pyx_k__qtlink_gettext), 0, 0, 1, 1},
  {&__pyx_n_s__qtlink_slidertext, __pyx_k__qtlink_slidertext, sizeof(__pyx_k__qtlink_slidertext), 0, 0, 1, 1},
  {&__pyx_n_s__qtlink_spinboxtext, __pyx_k__qtlink_spinboxtext, sizeof(__pyx_k__qtlink_spinboxtext), 0, 0, 1, 1},
  {&__pyx_n_s__queue, __pyx_k__queue, sizeof(__pyx_k__queue), 0, 0, 1, 1},
  {&__pyx_n_s__r, __pyx_k__r, sizeof(__pyx_k__r), 0, 0, 1, 1},
  {&__pyx_n_s__r_c, __pyx_k__r_c, sizeof(__pyx_k__r_c), 0, 0, 1, 1},
  {&__pyx_n_s__radio, __pyx_k__radio, sizeof(__pyx_k__radio), 0, 0, 1, 1},
  {&__pyx_n_s__radius, __pyx_k__radius, sizeof(__pyx_k__radius), 0, 0, 1, 1},
  {&__pyx_n_s__radius_c, __pyx_k__radius_c, sizeof(__pyx_k__radius_c), 0, 0, 1, 1},
  {&__pyx_n_s__raiseGds, __pyx_k__raiseGds, sizeof(__pyx_k__raiseGds), 0, 0, 1, 1},
  {&__pyx_n_s__random, __pyx_k__random, sizeof(__pyx_k__random), 0, 0, 1, 1},
  {&__pyx_n_s__range, __pyx_k__range, sizeof(__pyx_k__range), 0, 0, 1, 1},
  {&__pyx_n_s__reached, __pyx_k__reached, sizeof(__pyx_k__reached), 0, 0, 1, 1},
  {&__pyx_n_s__read, __pyx_k__read, sizeof(__pyx_k__read), 0, 0, 1, 1},
  {&__pyx_n_s__realize, __pyx_k__realize, sizeof(__pyx_k__realize), 0, 0, 1, 1},
  {&__pyx_n_s__realized, __pyx_k__realized, sizeof(__pyx_k__realized), 0, 0, 1, 1},
  {&__pyx_n_s__realptr, __pyx_k__realptr, sizeof(__pyx_k__realptr), 0, 0, 1, 1},
  {&__pyx_n_s__record, __pyx_k__record, sizeof(__pyx_k__record), 0, 0, 1, 1},
  {&__pyx_n_s__recordMpeg, __pyx_k__recordMpeg, sizeof(__pyx_k__recordMpeg), 0, 0, 1, 1},
  {&__pyx_n_s__rect, __pyx_k__rect, sizeof(__pyx_k__rect), 0, 0, 1, 1},
  {&__pyx_n_s__rectangular, __pyx_k__rectangular, sizeof(__pyx_k__rectangular), 0, 0, 1, 1},
  {&__pyx_n_s__red, __pyx_k__red, sizeof(__pyx_k__red), 0, 0, 1, 1},
  {&__pyx_n_s__reject, __pyx_k__reject, sizeof(__pyx_k__reject), 0, 0, 1, 1},
  {&__pyx_n_s__rejproc, __pyx_k__rejproc, sizeof(__pyx_k__rejproc), 0, 0, 1, 1},
  {&__pyx_n_s__remove, __pyx_k__remove, sizeof(__pyx_k__remove), 0, 0, 1, 1},
  {&__pyx_n_s__requested, __pyx_k__requested, sizeof(__pyx_k__requested), 0, 0, 1, 1},
  {&__pyx_n_s__resources, __pyx_k__resources, sizeof(__pyx_k__resources), 0, 0, 1, 1},
  {&__pyx_n_s__resume, __pyx_k__resume, sizeof(__pyx_k__resume), 0, 0, 1, 1},
  {&__pyx_n_s__right, __pyx_k__right, sizeof(__pyx_k__right), 0, 0, 1, 1},
  {&__pyx_n_s__round, __pyx_k__round, sizeof(__pyx_k__round), 0, 0, 1, 1},
  {&__pyx_n_s__rstrip, __pyx_k__rstrip, sizeof(__pyx_k__rstrip), 0, 0, 1, 1},
  {&__pyx_n_s__sampdist, __pyx_k__sampdist, sizeof(__pyx_k__sampdist), 0, 0, 1, 1},
  {&__pyx_n_s__saturation_c, __pyx_k__saturation_c, sizeof(__pyx_k__saturation_c), 0, 0, 1, 1},
  {&__pyx_n_s__save, __pyx_k__save, sizeof(__pyx_k__save), 0, 0, 1, 1},
  {&__pyx_n_s__schedule, __pyx_k__schedule, sizeof(__pyx_k__schedule), 0, 0, 1, 1},
  {&__pyx_n_s__scheduled, __pyx_k__scheduled, sizeof(__pyx_k__scheduled), 0, 0, 1, 1},
  {&__pyx_n_s__search, __pyx_k__search, sizeof(__pyx_k__search), 0, 0, 1, 1},
  {&__pyx_n_s__self, __pyx_k__self, sizeof(__pyx_k__self), 0, 0, 1, 1},
  {&__pyx_n_s__sepn_c, __pyx_k__sepn_c, sizeof(__pyx_k__sepn_c), 0, 0, 1, 1},
  {&__pyx_n_s__set, __pyx_k__set, sizeof(__pyx_k__set), 0, 0, 1, 1},
  {&__pyx_n_s__setChecked, __pyx_k__setChecked, sizeof(__pyx_k__setChecked), 0, 0, 1, 1},
  {&__pyx_n_s__setCircular, __pyx_k__setCircular, sizeof(__pyx_k__setCircular), 0, 0, 1, 1},
  {&__pyx_n_s__setContentsMargins, __pyx_k__setContentsMargins, sizeof(__pyx_k__setContentsMargins), 0, 0, 1, 1},
  {&__pyx_n_s__setEditText, __pyx_k__setEditText, sizeof(__pyx_k__setEditText), 0, 0, 1, 1},
  {&__pyx_n_s__setFixedSize, __pyx_k__setFixedSize, sizeof(__pyx_k__setFixedSize), 0, 0, 1, 1},
  {&__pyx_n_s__setFormat, __pyx_k__setFormat, sizeof(__pyx_k__setFormat), 0, 0, 1, 1},
  {&__pyx_n_s__setFrameShape, __pyx_k__setFrameShape, sizeof(__pyx_k__setFrameShape), 0, 0, 1, 1},
  {&__pyx_n_s__setInterval, __pyx_k__setInterval, sizeof(__pyx_k__setInterval), 0, 0, 1, 1},
  {&__pyx_n_s__setKeyword, __pyx_k__setKeyword, sizeof(__pyx_k__setKeyword), 0, 0, 1, 1},
  {&__pyx_n_s__setLabel, __pyx_k__setLabel, sizeof(__pyx_k__setLabel), 0, 0, 1, 1},
  {&__pyx_n_s__setLabels, __pyx_k__setLabels, sizeof(__pyx_k__setLabels), 0, 0, 1, 1},
  {&__pyx_n_s__setLayout, __pyx_k__setLayout, sizeof(__pyx_k__setLayout), 0, 0, 1, 1},
  {&__pyx_n_s__setPixmap, __pyx_k__setPixmap, sizeof(__pyx_k__setPixmap), 0, 0, 1, 1},
  {&__pyx_n_s__setPosition, __pyx_k__setPosition, sizeof(__pyx_k__setPosition), 0, 0, 1, 1},
  {&__pyx_n_s__setRange, __pyx_k__setRange, sizeof(__pyx_k__setRange), 0, 0, 1, 1},
  {&__pyx_n_s__setScaledContents, __pyx_k__setScaledContents, sizeof(__pyx_k__setScaledContents), 0, 0, 1, 1},
  {&__pyx_n_s__setStyleSheet, __pyx_k__setStyleSheet, sizeof(__pyx_k__setStyleSheet), 0, 0, 1, 1},
  {&__pyx_n_s__setText, __pyx_k__setText, sizeof(__pyx_k__setText), 0, 0, 1, 1},
  {&__pyx_n_s__setToolTip, __pyx_k__setToolTip, sizeof(__pyx_k__setToolTip), 0, 0, 1, 1},
  {&__pyx_n_s__setValue, __pyx_k__setValue, sizeof(__pyx_k__setValue), 0, 0, 1, 1},
  {&__pyx_n_s__setWindowFlags, __pyx_k__setWindowFlags, sizeof(__pyx_k__setWindowFlags), 0, 0, 1, 1},
  {&__pyx_n_s__set_interval, __pyx_k__set_interval, sizeof(__pyx_k__set_interval), 0, 0, 1, 1},
  {&__pyx_n_s__setbox, __pyx_k__setbox, sizeof(__pyx_k__setbox), 0, 0, 1, 1},
  {&__pyx_n_s__setspec, __pyx_k__setspec, sizeof(__pyx_k__setspec), 0, 0, 1, 1},
  {&__pyx_n_s__setval, __pyx_k__setval, sizeof(__pyx_k__setval), 0, 0, 1, 1},
  {&__pyx_n_s__shape, __pyx_k__shape, sizeof(__pyx_k__shape), 0, 0, 1, 1},
  {&__pyx_n_s__shape_c, __pyx_k__shape_c, sizeof(__pyx_k__shape_c), 0, 0, 1, 1},
  {&__pyx_n_s__shi, __pyx_k__shi, sizeof(__pyx_k__shi), 0, 0, 1, 1},
  {&__pyx_n_s__show, __pyx_k__show, sizeof(__pyx_k__show), 0, 0, 1, 1},
  {&__pyx_n_s__side, __pyx_k__side, sizeof(__pyx_k__side), 0, 0, 1, 1},
  {&__pyx_n_s__sig_handler, __pyx_k__sig_handler, sizeof(__pyx_k__sig_handler), 0, 0, 1, 1},
  {&__pyx_n_s__signal, __pyx_k__signal, sizeof(__pyx_k__signal), 0, 0, 1, 1},
  {&__pyx_n_s__singleShot, __pyx_k__singleShot, sizeof(__pyx_k__singleShot), 0, 0, 1, 1},
  {&__pyx_n_s__size, __pyx_k__size, sizeof(__pyx_k__size), 0, 0, 1, 1},
  {&__pyx_n_s__skysys, __pyx_k__skysys, sizeof(__pyx_k__skysys), 0, 0, 1, 1},
  {&__pyx_n_s__slo, __pyx_k__slo, sizeof(__pyx_k__slo), 0, 0, 1, 1},
  {&__pyx_n_s__slope_c, __pyx_k__slope_c, sizeof(__pyx_k__slope_c), 0, 0, 1, 1},
  {&__pyx_n_s__source, __pyx_k__source, sizeof(__pyx_k__source), 0, 0, 1, 1},
  {&__pyx_n_s__source_remove, __pyx_k__source_remove, sizeof(__pyx_k__source_remove), 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__splitlines, __pyx_k__splitlines, sizeof(__pyx_k__splitlines), 0, 0, 1, 1},
  {&__pyx_n_s__squeeze, __pyx_k__squeeze, sizeof(__pyx_k__squeeze), 0, 0, 1, 1},
  {&__pyx_n_s__start, __pyx_k__start, sizeof(__pyx_k__start), 0, 0, 1, 1},
  {&__pyx_n_s__startang_c, __pyx_k__startang_c, sizeof(__pyx_k__startang_c), 0, 0, 1, 1},
  {&__pyx_n_s__startswith, __pyx_k__startswith, sizeof(__pyx_k__startswith), 0, 0, 1, 1},
  {&__pyx_n_s__state, __pyx_k__state, sizeof(__pyx_k__state), 0, 0, 1, 1},
  {&__pyx_n_s__status, __pyx_k__status, sizeof(__pyx_k__status), 0, 0, 1, 1},
  {&__pyx_n_s__stdkey, __pyx_k__stdkey, sizeof(__pyx_k__stdkey), 0, 0, 1, 1},
  {&__pyx_n_s__step, __pyx_k__step, sizeof(__pyx_k__step), 0, 0, 1, 1},
  {&__pyx_n_s__stereographic, __pyx_k__stereographic, sizeof(__pyx_k__stereographic), 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__string, __pyx_k__string, sizeof(__pyx_k__string), 0, 0, 1, 1},
  {&__pyx_n_s__subimage, __pyx_k__subimage, sizeof(__pyx_k__subimage), 0, 0, 1, 1},
  {&__pyx_n_s__subset, __pyx_k__subset, sizeof(__pyx_k__subset), 0, 0, 1, 1},
  {&__pyx_n_s__subset_c, __pyx_k__subset_c, sizeof(__pyx_k__subset_c), 0, 0, 1, 1},
  {&__pyx_n_s__subsets, __pyx_k__subsets, sizeof(__pyx_k__subsets), 0, 0, 1, 1},
  {&__pyx_n_s__subst, __pyx_k__subst, sizeof(__pyx_k__subst), 0, 0, 1, 1},
  {&__pyx_n_s__super, __pyx_k__super, sizeof(__pyx_k__super), 0, 0, 1, 1},
  {&__pyx_n_s__supergalactic, __pyx_k__supergalactic, sizeof(__pyx_k__supergalactic), 0, 0, 1, 1},
  {&__pyx_n_s__suspend, __pyx_k__suspend, sizeof(__pyx_k__suspend), 0, 0, 1, 1},
  {&__pyx_n_s__symbol_c, __pyx_k__symbol_c, sizeof(__pyx_k__symbol_c), 0, 0, 1, 1},
  {&__pyx_n_s__sys, __pyx_k__sys, sizeof(__pyx_k__sys), 0, 0, 1, 1},
  {&__pyx_n_s__tabinq, __pyx_k__tabinq, sizeof(__pyx_k__tabinq), 0, 0, 1, 1},
  {&__pyx_n_s__tablis, __pyx_k__tablis, sizeof(__pyx_k__tablis), 0, 0, 1, 1},
  {&__pyx_n_s__task, __pyx_k__task, sizeof(__pyx_k__task), 0, 0, 1, 1},
  {&__pyx_n_s__tbg_c, __pyx_k__tbg_c, sizeof(__pyx_k__tbg_c), 0, 0, 1, 1},
  {&__pyx_n_s__tcb, __pyx_k__tcb, sizeof(__pyx_k__tcb), 0, 0, 1, 1},
  {&__pyx_n_s__text, __pyx_k__text, sizeof(__pyx_k__text), 0, 0, 1, 1},
  {&__pyx_n_s__timeout_add, __pyx_k__timeout_add, sizeof(__pyx_k__timeout_add), 0, 0, 1, 1},
  {&__pyx_n_s__timer, __pyx_k__timer, sizeof(__pyx_k__timer), 0, 0, 1, 1},
  {&__pyx_n_s__tkconnect, __pyx_k__tkconnect, sizeof(__pyx_k__tkconnect), 0, 0, 1, 1},
  {&__pyx_n_s__tkinter, __pyx_k__tkinter, sizeof(__pyx_k__tkinter), 0, 0, 1, 1},
  {&__pyx_n_s__tlen_c, __pyx_k__tlen_c, sizeof(__pyx_k__tlen_c), 0, 0, 1, 1},
  {&__pyx_n_s__tname, __pyx_k__tname, sizeof(__pyx_k__tname), 0, 0, 1, 1},
  {&__pyx_n_s__togrid, __pyx_k__togrid, sizeof(__pyx_k__togrid), 0, 0, 1, 1},
  {&__pyx_n_s__tokey, __pyx_k__tokey, sizeof(__pyx_k__tokey), 0, 0, 1, 1},
  {&__pyx_n_s__tophys, __pyx_k__tophys, sizeof(__pyx_k__tophys), 0, 0, 1, 1},
  {&__pyx_n_s__toplabel, __pyx_k__toplabel, sizeof(__pyx_k__toplabel), 0, 0, 1, 1},
  {&__pyx_n_s__tr, __pyx_k__tr, sizeof(__pyx_k__tr), 0, 0, 1, 1},
  {&__pyx_n_s__trace, __pyx_k__trace, sizeof(__pyx_k__trace), 0, 0, 1, 1},
  {&__pyx_n_s__traceback, __pyx_k__traceback, sizeof(__pyx_k__traceback), 0, 0, 1, 1},
  {&__pyx_n_s__truelabel, __pyx_k__truelabel, sizeof(__pyx_k__truelabel), 0, 0, 1, 1},
  {&__pyx_n_s__tstep_c, __pyx_k__tstep_c, sizeof(__pyx_k__tstep_c), 0, 0, 1, 1},
  {&__pyx_n_s__type, __pyx_k__type, sizeof(__pyx_k__type), 0, 0, 1, 1},
  {&__pyx_n_s__typecli, __pyx_k__typecli, sizeof(__pyx_k__typecli), 0, 0, 1, 1},
  {&__pyx_n_s__types, __pyx_k__types, sizeof(__pyx_k__types), 0, 0, 1, 1},
  {&__pyx_n_s__uncaught, __pyx_k__uncaught, sizeof(__pyx_k__uncaught), 0, 0, 1, 1},
  {&__pyx_n_s__unit1, __pyx_k__unit1, sizeof(__pyx_k__unit1), 0, 0, 1, 1},
  {&__pyx_n_s__unit2, __pyx_k__unit2, sizeof(__pyx_k__unit2), 0, 0, 1, 1},
  {&__pyx_n_s__unitfactor, __pyx_k__unitfactor, sizeof(__pyx_k__unitfactor), 0, 0, 1, 1},
  {&__pyx_n_s__units, __pyx_k__units, sizeof(__pyx_k__units), 0, 0, 1, 1},
  {&__pyx_n_s__units_c, __pyx_k__units_c, sizeof(__pyx_k__units_c), 0, 0, 1, 1},
  {&__pyx_n_s__unts, __pyx_k__unts, sizeof(__pyx_k__unts), 0, 0, 1, 1},
  {&__pyx_n_s__update, __pyx_k__update, sizeof(__pyx_k__update), 0, 0, 1, 1},
  {&__pyx_n_s__upper, __pyx_k__upper, sizeof(__pyx_k__upper), 0, 0, 1, 1},
  {&__pyx_n_s__userangle, __pyx_k__userangle, sizeof(__pyx_k__userangle), 0, 0, 1, 1},
  {&__pyx_n_s__userchar, __pyx_k__userchar, sizeof(__pyx_k__userchar), 0, 0, 1, 1},
  {&__pyx_n_s__usercharl, __pyx_k__usercharl, sizeof(__pyx_k__usercharl), 0, 0, 1, 1},
  {&__pyx_n_s__usercharu, __pyx_k__usercharu, sizeof(__pyx_k__usercharu), 0, 0, 1, 1},
  {&__pyx_n_s__userdble, __pyx_k__userdble, sizeof(__pyx_k__userdble), 0, 0, 1, 1},
  {&__pyx_n_s__userint, __pyx_k__userint, sizeof(__pyx_k__userint), 0, 0, 1, 1},
  {&__pyx_n_s__userlog, __pyx_k__userlog, sizeof(__pyx_k__userlog), 0, 0, 1, 1},
  {&__pyx_n_s__userreal, __pyx_k__userreal, sizeof(__pyx_k__userreal), 0, 0, 1, 1},
  {&__pyx_n_s__usertext, __pyx_k__usertext, sizeof(__pyx_k__usertext), 0, 0, 1, 1},
  {&__pyx_n_s__v1_c, __pyx_k__v1_c, sizeof(__pyx_k__v1_c), 0, 0, 1, 1},
  {&__pyx_n_s__v2_c, __pyx_k__v2_c, sizeof(__pyx_k__v2_c), 0, 0, 1, 1},
  {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1},
  {&__pyx_n_s__velsys, __pyx_k__velsys, sizeof(__pyx_k__velsys), 0, 0, 1, 1},
  {&__pyx_n_s__verify, __pyx_k__verify, sizeof(__pyx_k__verify), 0, 0, 1, 1},
  {&__pyx_n_s__visible, __pyx_k__visible, sizeof(__pyx_k__visible), 0, 0, 1, 1},
  {&__pyx_n_s__w_getval, __pyx_k__w_getval, sizeof(__pyx_k__w_getval), 0, 0, 1, 1},
  {&__pyx_n_s__w_setval, __pyx_k__w_setval, sizeof(__pyx_k__w_setval), 0, 0, 1, 1},
  {&__pyx_n_s__w_signal, __pyx_k__w_signal, sizeof(__pyx_k__w_signal), 0, 0, 1, 1},
  {&__pyx_n_s__wcomment, __pyx_k__wcomment, sizeof(__pyx_k__wcomment), 0, 0, 1, 1},
  {&__pyx_n_s__weakref, __pyx_k__weakref, sizeof(__pyx_k__weakref), 0, 0, 1, 1},
  {&__pyx_n_s__whistory, __pyx_k__whistory, sizeof(__pyx_k__whistory), 0, 0, 1, 1},
  {&__pyx_n_s__white, __pyx_k__white, sizeof(__pyx_k__white), 0, 0, 1, 1},
  {&__pyx_n_s__widget, __pyx_k__widget, sizeof(__pyx_k__widget), 0, 0, 1, 1},
  {&__pyx_n_s__widgetval, __pyx_k__widgetval, sizeof(__pyx_k__widgetval), 0, 0, 1, 1},
  {&__pyx_n_s__width, __pyx_k__width, sizeof(__pyx_k__width), 0, 0, 1, 1},
  {&__pyx_n_s__width_c, __pyx_k__width_c, sizeof(__pyx_k__width_c), 0, 0, 1, 1},
  {&__pyx_n_s__wkey, __pyx_k__wkey, sizeof(__pyx_k__wkey), 0, 0, 1, 1},
  {&__pyx_n_s__wminmax, __pyx_k__wminmax, sizeof(__pyx_k__wminmax), 0, 0, 1, 1},
  {&__pyx_n_s__wmode, __pyx_k__wmode, sizeof(__pyx_k__wmode), 0, 0, 1, 1},
  {&__pyx_n_s__word, __pyx_k__word, sizeof(__pyx_k__word), 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__x1_c, __pyx_k__x1_c, sizeof(__pyx_k__x1_c), 0, 0, 1, 1},
  {&__pyx_n_s__x2_c, __pyx_k__x2_c, sizeof(__pyx_k__x2_c), 0, 0, 1, 1},
  {&__pyx_n_s__x_c, __pyx_k__x_c, sizeof(__pyx_k__x_c), 0, 0, 1, 1},
  {&__pyx_n_s__xcentre_c, __pyx_k__xcentre_c, sizeof(__pyx_k__xcentre_c), 0, 0, 1, 1},
  {&__pyx_n_s__xeq, __pyx_k__xeq, sizeof(__pyx_k__xeq), 0, 0, 1, 1},
  {&__pyx_n_s__xfrom, __pyx_k__xfrom, sizeof(__pyx_k__xfrom), 0, 0, 1, 1},
  {&__pyx_n_s__xhi_c, __pyx_k__xhi_c, sizeof(__pyx_k__xhi_c), 0, 0, 1, 1},
  {&__pyx_n_s__xid, __pyx_k__xid, sizeof(__pyx_k__xid), 0, 0, 1, 1},
  {&__pyx_n_s__xlabel, __pyx_k__xlabel, sizeof(__pyx_k__xlabel), 0, 0, 1, 1},
  {&__pyx_n_s__xleft_c, __pyx_k__xleft_c, sizeof(__pyx_k__xleft_c), 0, 0, 1, 1},
  {&__pyx_n_s__xlo_c, __pyx_k__xlo_c, sizeof(__pyx_k__xlo_c), 0, 0, 1, 1},
  {&__pyx_n_s__xmax_c, __pyx_k__xmax_c, sizeof(__pyx_k__xmax_c), 0, 0, 1, 1},
  {&__pyx_n_s__xmin_c, __pyx_k__xmin_c, sizeof(__pyx_k__xmin_c), 0, 0, 1, 1},
  {&__pyx_n_s__xnsub_c, __pyx_k__xnsub_c, sizeof(__pyx_k__xnsub_c), 0, 0, 1, 1},
  {&__pyx_n_s__xopt, __pyx_k__xopt, sizeof(__pyx_k__xopt), 0, 0, 1, 1},
  {&__pyx_n_s__xor, __pyx_k__xor, sizeof(__pyx_k__xor), 0, 0, 1, 1},
  {&__pyx_n_s__xormode, __pyx_k__xormode, sizeof(__pyx_k__xormode), 0, 0, 1, 1},
  {&__pyx_n_s__xpts, __pyx_k__xpts, sizeof(__pyx_k__xpts), 0, 0, 1, 1},
  {&__pyx_n_s__xrange, __pyx_k__xrange, sizeof(__pyx_k__xrange), 0, 0, 1, 1},
  {&__pyx_n_s__xref_c, __pyx_k__xref_c, sizeof(__pyx_k__xref_c), 0, 0, 1, 1},
  {&__pyx_n_s__xright_c, __pyx_k__xright_c, sizeof(__pyx_k__xright_c), 0, 0, 1, 1},
  {&__pyx_n_s__xtick_c, __pyx_k__xtick_c, sizeof(__pyx_k__xtick_c), 0, 0, 1, 1},
  {&__pyx_n_s__xus, __pyx_k__xus, sizeof(__pyx_k__xus), 0, 0, 1, 1},
  {&__pyx_n_s__y, __pyx_k__y, sizeof(__pyx_k__y), 0, 0, 1, 1},
  {&__pyx_n_s__y1_c, __pyx_k__y1_c, sizeof(__pyx_k__y1_c), 0, 0, 1, 1},
  {&__pyx_n_s__y2_c, __pyx_k__y2_c, sizeof(__pyx_k__y2_c), 0, 0, 1, 1},
  {&__pyx_n_s__y_c, __pyx_k__y_c, sizeof(__pyx_k__y_c), 0, 0, 1, 1},
  {&__pyx_n_s__ybot_c, __pyx_k__ybot_c, sizeof(__pyx_k__ybot_c), 0, 0, 1, 1},
  {&__pyx_n_s__ycentre_c, __pyx_k__ycentre_c, sizeof(__pyx_k__ycentre_c), 0, 0, 1, 1},
  {&__pyx_n_s__yfrom, __pyx_k__yfrom, sizeof(__pyx_k__yfrom), 0, 0, 1, 1},
  {&__pyx_n_s__yhi_c, __pyx_k__yhi_c, sizeof(__pyx_k__yhi_c), 0, 0, 1, 1},
  {&__pyx_n_s__yid, __pyx_k__yid, sizeof(__pyx_k__yid), 0, 0, 1, 1},
  {&__pyx_n_s__ylabel, __pyx_k__ylabel, sizeof(__pyx_k__ylabel), 0, 0, 1, 1},
  {&__pyx_n_s__ylims, __pyx_k__ylims, sizeof(__pyx_k__ylims), 0, 0, 1, 1},
  {&__pyx_n_s__ylo_c, __pyx_k__ylo_c, sizeof(__pyx_k__ylo_c), 0, 0, 1, 1},
  {&__pyx_n_s__ymax_c, __pyx_k__ymax_c, sizeof(__pyx_k__ymax_c), 0, 0, 1, 1},
  {&__pyx_n_s__ymin_c, __pyx_k__ymin_c, sizeof(__pyx_k__ymin_c), 0, 0, 1, 1},
  {&__pyx_n_s__ynsub_c, __pyx_k__ynsub_c, sizeof(__pyx_k__ynsub_c), 0, 0, 1, 1},
  {&__pyx_n_s__yopt, __pyx_k__yopt, sizeof(__pyx_k__yopt), 0, 0, 1, 1},
  {&__pyx_n_s__ypts, __pyx_k__ypts, sizeof(__pyx_k__ypts), 0, 0, 1, 1},
  {&__pyx_n_s__yref_c, __pyx_k__yref_c, sizeof(__pyx_k__yref_c), 0, 0, 1, 1},
  {&__pyx_n_s__ytick_c, __pyx_k__ytick_c, sizeof(__pyx_k__ytick_c), 0, 0, 1, 1},
  {&__pyx_n_s__ytop_c, __pyx_k__ytop_c, sizeof(__pyx_k__ytop_c), 0, 0, 1, 1},
  {&__pyx_n_s__yus, __pyx_k__yus, sizeof(__pyx_k__yus), 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}
};
static int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_Exception = __Pyx_GetName(__pyx_b, __pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_object = __Pyx_GetName(__pyx_b, __pyx_n_s__object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_super = __Pyx_GetName(__pyx_b, __pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_round = __Pyx_GetName(__pyx_b, __pyx_n_s__round); if (!__pyx_builtin_round) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #if PY_MAJOR_VERSION >= 3
  __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #else
  __pyx_builtin_xrange = __Pyx_GetName(__pyx_b, __pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_range = __Pyx_GetName(__pyx_b, __pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_AttributeError = __Pyx_GetName(__pyx_b, __pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_enumerate = __Pyx_GetName(__pyx_b, __pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_chr = __Pyx_GetName(__pyx_b, __pyx_n_s__chr); if (!__pyx_builtin_chr) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_id = __Pyx_GetName(__pyx_b, __pyx_n_s__id); if (!__pyx_builtin_id) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  return 0;
  __pyx_L1_error:;
  return -1;
}

static int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants");

  /* "gipsy.pyx":329
 *    for line in efmt:
 *       anyout(line)
 *    error(4, 'Uncaught Python exception')             # <<<<<<<<<<<<<<
 * 
 * #  --------------------------------------------------------------------------
 */
  __pyx_k_tuple_2 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_2));
  __Pyx_INCREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_1));
  PyTuple_SET_ITEM(__pyx_k_tuple_2, 1, ((PyObject *)__pyx_kp_s_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2));

  /* "gipsy.pyx":440
 *          result.array = dcopy
 *    else:
 *       raise TypeError("should be number, ndarray or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_k_tuple_6 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_6));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
  PyTuple_SET_ITEM(__pyx_k_tuple_6, 0, ((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6));

  /* "gipsy.pyx":476
 *          result.array = dcopy
 *    else:
 *       raise TypeError("should be number, ndarray or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_k_tuple_8 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_8));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
  PyTuple_SET_ITEM(__pyx_k_tuple_8, 0, ((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8));

  /* "gipsy.pyx":512
 *          result.array = dcopy
 *    else:
 *       raise TypeError("should be number, ndarray or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_k_tuple_10 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_10));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
  PyTuple_SET_ITEM(__pyx_k_tuple_10, 0, ((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_10));

  /* "gipsy.pyx":543
 *    else:
 *       anyout("datatype= %s" % repr(datatype))
 *       raise TypeError("should be number or list")             # <<<<<<<<<<<<<<
 *    return result
 * 
 */
  __pyx_k_tuple_13 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_13));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_12));
  PyTuple_SET_ITEM(__pyx_k_tuple_13, 0, ((PyObject *)__pyx_kp_s_12));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_12));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_13));

  /* "gipsy.pyx":678
 *       "activate the callback object"
 *       if self.__id:
 *          raise GipsyError("Callback object already active")             # <<<<<<<<<<<<<<
 *       selfkey = self.key
 *       self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)
 */
  __pyx_k_tuple_19 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_19));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_18));
  PyTuple_SET_ITEM(__pyx_k_tuple_19, 0, ((PyObject *)__pyx_kp_s_18));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_18));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_19));

  /* "gipsy.pyx":688
 *       cdef ident id
 *       if not self.__id:
 *          raise GipsyError("Callback object inactive")             # <<<<<<<<<<<<<<
 *       id = toident(self.__id)
 *       DescheduleKeyevent(&id)
 */
  __pyx_k_tuple_21 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_21));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_20));
  PyTuple_SET_ITEM(__pyx_k_tuple_21, 0, ((PyObject *)__pyx_kp_s_20));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_20));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21));

  /* "gipsy.pyx":751
 *    def _reject(self, cb):
 *       self.queue = [(cb.key,
 *                      usertext('UCAMESSAGE=', default=-1),             # <<<<<<<<<<<<<<
 *                      usertext('REJECTED=', default=-1))]
 *       wkey(cb.key)  # clear keyword's value(s)
 */
  __pyx_k_tuple_28 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_28));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_27));
  PyTuple_SET_ITEM(__pyx_k_tuple_28, 0, ((PyObject *)__pyx_kp_s_27));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_27));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_28));

  /* "gipsy.pyx":752
 *       self.queue = [(cb.key,
 *                      usertext('UCAMESSAGE=', default=-1),
 *                      usertext('REJECTED=', default=-1))]             # <<<<<<<<<<<<<<
 *       wkey(cb.key)  # clear keyword's value(s)
 *       if (not self.tcb.active) and self.active and self.queue:
 */
  __pyx_k_tuple_30 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_30));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_29));
  PyTuple_SET_ITEM(__pyx_k_tuple_30, 0, ((PyObject *)__pyx_kp_s_29));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_29));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_30));

  /* "gipsy.pyx":758
 * 
 *    def _send(self, cb):
 *       self.value = self.queue.pop(0)             # <<<<<<<<<<<<<<
 *       self.proc(self)
 *       if not self.queue:
 */
  __pyx_k_tuple_31 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_31));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_31, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_31));

  /* "gipsy.pyx":824
 *       "activate the callback object"
 *       if self.__id:
 *          raise GipsyError("Callback object already active")             # <<<<<<<<<<<<<<
 *       milliseconds = max(1,int(round(self.interval*1000.0)))
 *       self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)
 */
  __pyx_k_tuple_34 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_34));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_18));
  PyTuple_SET_ITEM(__pyx_k_tuple_34, 0, ((PyObject *)__pyx_kp_s_18));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_18));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_34));

  /* "gipsy.pyx":834
 *       cdef ident id
 *       if not self.__id:
 *          raise GipsyError("Callback object inactive")             # <<<<<<<<<<<<<<
 *       id = toident(self.__id)
 *       Deschedule(&id)
 */
  __pyx_k_tuple_35 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_35)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_35));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_20));
  PyTuple_SET_ITEM(__pyx_k_tuple_35, 0, ((PyObject *)__pyx_kp_s_20));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_20));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_35));

  /* "gipsy.pyx":846
 * class TimeCallback_NotImpl(TimeCallback):
 *    def __init__(self, proc, interval, schedule=True, **attr):
 *       raise GipsyError("TimeCallback not implemented for this event loop")             # <<<<<<<<<<<<<<
 * 
 * # Qt4Agg:
 */
  __pyx_k_tuple_38 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_38)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_38));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_37));
  PyTuple_SET_ITEM(__pyx_k_tuple_38, 0, ((PyObject *)__pyx_kp_s_37));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_37));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_38));

  /* "gipsy.pyx":860
 *          self.active   = False
 *          self.timer = QtCore.QTimer()
 *          QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),             # <<<<<<<<<<<<<<
 *                                 self.reached)
 *          if schedule: self.schedule()
 */
  __pyx_k_tuple_41 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_41)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_41));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_40));
  PyTuple_SET_ITEM(__pyx_k_tuple_41, 0, ((PyObject *)__pyx_kp_s_40));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_40));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_41));

  /* "gipsy.pyx":965
 *       err = xeqcont_c(tofchar(tokey(keyword)), tofchar(cmd))
 *       if err<0:
 *          raise XeqError("Cannot execute")             # <<<<<<<<<<<<<<
 *    else:
 *       xeq_c(tofchar(cmd), &err_c)
 */
  __pyx_k_tuple_51 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_51)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_51));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_50));
  PyTuple_SET_ITEM(__pyx_k_tuple_51, 0, ((PyObject *)__pyx_kp_s_50));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_50));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_51));

  /* "gipsy.pyx":1346
 *    global gip_nfy
 *    if not has_pyqt4:
 *       raise GipsyError("Cannot connect to PyQt4")             # <<<<<<<<<<<<<<
 *    fd = herconnect()
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
 */
  __pyx_k_tuple_85 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_85)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_85));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_84));
  PyTuple_SET_ITEM(__pyx_k_tuple_85, 0, ((PyObject *)__pyx_kp_s_84));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_84));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_85));

  /* "gipsy.pyx":1349
 *    fd = herconnect()
 *    gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
 *    gip_nfy.connect(gip_nfy, QtCore.SIGNAL("activated(int)"), hersignal)             # <<<<<<<<<<<<<<
 *    TimeCallback.cls = TimeCallback_QT4
 * 
 */
  __pyx_k_tuple_87 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_87)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_87));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_86));
  PyTuple_SET_ITEM(__pyx_k_tuple_87, 0, ((PyObject *)__pyx_kp_s_86));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_86));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_87));

  /* "gipsy.pyx":1359
 *    global gip_nfy
 *    if not has_gtk:
 *       raise GipsyError("Cannot connect to GTK")             # <<<<<<<<<<<<<<
 *    fd = herconnect()
 *    gip_nfy = gobject.io_add_watch(fd, gobject.IO_IN, _gtkio)
 */
  __pyx_k_tuple_89 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_89)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_89));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_88));
  PyTuple_SET_ITEM(__pyx_k_tuple_89, 0, ((PyObject *)__pyx_kp_s_88));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_88));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_89));

  /* "gipsy.pyx":1370
 *    global gip_nfy
 *    if not has_tk:
 *       raise GipsyError("Cannot connect to Tk")             # <<<<<<<<<<<<<<
 *    fd = herconnect()
 *    tkinter.createfilehandler(fd, tkinter.READABLE, _tkio)
 */
  __pyx_k_tuple_91 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_91));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_90));
  PyTuple_SET_ITEM(__pyx_k_tuple_91, 0, ((PyObject *)__pyx_kp_s_90));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_90));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_91));

  /* "gipsy.pyx":1423
 *    cdef object result_c
 *    if len(ellpar)!=5:
 *       raise ValueError('Bad ellipse parameters')             # <<<<<<<<<<<<<<
 *    ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr
 *    result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
 */
  __pyx_k_tuple_94 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_94)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_94));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_93));
  PyTuple_SET_ITEM(__pyx_k_tuple_94, 0, ((PyObject *)__pyx_kp_s_93));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_93));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_94));

  /* "gipsy.pyx":1685
 *                      raiseGds(err_c2)
 *                   else:
 *                      raise GdsError(-5, "GDS -- set does not exist")             # <<<<<<<<<<<<<<
 *                else:
 *                   exists = True
 */
  __pyx_k_tuple_110 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_110));
  __Pyx_INCREF(__pyx_int_neg_5);
  PyTuple_SET_ITEM(__pyx_k_tuple_110, 0, __pyx_int_neg_5);
  __Pyx_GIVEREF(__pyx_int_neg_5);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_109));
  PyTuple_SET_ITEM(__pyx_k_tuple_110, 1, ((PyObject *)__pyx_kp_s_109));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_109));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_110));

  /* "gipsy.pyx":1691
 *          except:                                     # ---  FITS pseudo set
 *             if has_pyfits and not exists:
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]             # <<<<<<<<<<<<<<
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]
 *                hdunum = None
 */
  __pyx_k_tuple_111 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_111));
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_k_tuple_111, 0, Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_111, 1, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_111));

  /* "gipsy.pyx":1692
 *             if has_pyfits and not exists:
 *                hduname, subsets = (setspec.split(None, 1)+[''])[:2]
 *                filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]             # <<<<<<<<<<<<<<
 *                hdunum = None
 *                altwcs = None
 */
  __pyx_k_tuple_113 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_113));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_112));
  PyTuple_SET_ITEM(__pyx_k_tuple_113, 0, ((PyObject *)__pyx_kp_s_112));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_112));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_113));

  /* "gipsy.pyx":1708
 *                      refs = 0
 *                   except:
 *                      raise GdsError(-5, "GDS -- set does not exist")             # <<<<<<<<<<<<<<
 * 
 *                self.fitsfiles[filename] = (hdulist, refs+1)
 */
  __pyx_k_tuple_114 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_114));
  __Pyx_INCREF(__pyx_int_neg_5);
  PyTuple_SET_ITEM(__pyx_k_tuple_114, 0, __pyx_int_neg_5);
  __Pyx_GIVEREF(__pyx_int_neg_5);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_109));
  PyTuple_SET_ITEM(__pyx_k_tuple_114, 1, ((PyObject *)__pyx_kp_s_109));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_109));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_114));

  /* "gipsy.pyx":1817
 *             self.image = image
 *       except:
 *          self.handles[handle] = None, 1             # <<<<<<<<<<<<<<
 *       self.spec    = setspec
 *       self.handle  = handle
 */
  __pyx_k_tuple_125 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_125)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_125));
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_k_tuple_125, 0, Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_125, 1, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_125));

  /* "gipsy.pyx":1839
 *       err_c = 0
 *       if not self.open:
 *          raise GdsError(-1, "Invalid set object")             # <<<<<<<<<<<<<<
 *       if name=='naxis':
 *          return self.ndims(0)
 */
  __pyx_k_tuple_127 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_127)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_127));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_127, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_126));
  PyTuple_SET_ITEM(__pyx_k_tuple_127, 1, ((PyObject *)__pyx_kp_s_126));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_126));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_127));

  /* "gipsy.pyx":1841
 *          raise GdsError(-1, "Invalid set object")
 *       if name=='naxis':
 *          return self.ndims(0)             # <<<<<<<<<<<<<<
 *       elif name=='image':
 *          try:
 */
  __pyx_k_tuple_128 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_128)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_128));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_128, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_128));

  /* "gipsy.pyx":1853
 *             imagearray = self.hdulist[self.hdunum].data
 *          else:
 *             lo, hi = self.range(0)             # <<<<<<<<<<<<<<
 *             err = [0]
 *             ftype  = gds_ftype_c(tofchar(self.name), &err_c)
 */
  __pyx_k_tuple_129 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_129)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_129));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_129, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_129));

  /* "gipsy.pyx":1887
 *          return result
 *       elif name=='blo' or name=='bhi':
 *          self.setbox('')             # <<<<<<<<<<<<<<
 *          return self.__dict__[name]
 *       elif name=='slo':
 */
  __pyx_k_tuple_134 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_134)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_134));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_75));
  PyTuple_SET_ITEM(__pyx_k_tuple_134, 0, ((PyObject *)__pyx_kp_s_75));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_75));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_134));

  /* "gipsy.pyx":1890
 *          return self.__dict__[name]
 *       elif name=='slo':
 *          lo, hi = self.range(0)             # <<<<<<<<<<<<<<
 *          return self.grids(lo)
 *       elif name=='shi':
 */
  __pyx_k_tuple_135 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_135)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_135));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_135, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_135));

  /* "gipsy.pyx":1893
 *          return self.grids(lo)
 *       elif name=='shi':
 *          lo, hi = self.range(0)             # <<<<<<<<<<<<<<
 *          return self.grids(hi)
 *       elif name=='ncoords':
 */
  __pyx_k_tuple_136 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_136)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_136));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_136, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_136));

  /* "gipsy.pyx":1936
 *             rows   = key[3]
 *          else:
 *             raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 *          if type(rows)==types.IntType:
 *             return self.__rcol(table, column, subset=level, item=rows, nitems=1)
 */
  __pyx_k_tuple_141 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_141)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_141));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_140));
  PyTuple_SET_ITEM(__pyx_k_tuple_141, 0, ((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_141));

  /* "gipsy.pyx":1941
 *          else:
 *             if rows.step:
 *                raise GipsyError("strided column access not yet implemented")             # <<<<<<<<<<<<<<
 *             start  = 0
 *             nitems = None
 */
  __pyx_k_tuple_143 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_143)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_143));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_142));
  PyTuple_SET_ITEM(__pyx_k_tuple_143, 0, ((PyObject *)__pyx_kp_s_142));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_142));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_143));

  /* "gipsy.pyx":1948
 *             return self.__rcol(table, column, subset=level, item=start, nitems=nitems)
 *       else:
 *          raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 * 
 *    def __setitem__(self, key, value):
 */
  __pyx_k_tuple_144 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_144)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_144));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_140));
  PyTuple_SET_ITEM(__pyx_k_tuple_144, 0, ((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_144));

  /* "gipsy.pyx":1985
 *             rows   = key[3]
 *          else:
 *             raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 *          if type(rows)==types.IntType:
 *             self.__wcol(table, column, value, subset=level, item=rows, nitems=1)
 */
  __pyx_k_tuple_145 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_145)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_145));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_140));
  PyTuple_SET_ITEM(__pyx_k_tuple_145, 0, ((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_145));

  /* "gipsy.pyx":1990
 *          else:
 *             if rows.step:
 *                raise GipsyError("strided column access not yet implemented")             # <<<<<<<<<<<<<<
 *             start  = 0
 *             nitems = None
 */
  __pyx_k_tuple_146 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_146)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_146));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_142));
  PyTuple_SET_ITEM(__pyx_k_tuple_146, 0, ((PyObject *)__pyx_kp_s_142));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_142));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_146));

  /* "gipsy.pyx":1997
 *             self.__wcol(table, column, value, subset=level, item=start, nitems=nitems)
 *       else:
 *          raise GipsyError("error using indexing operator")             # <<<<<<<<<<<<<<
 * 
 *    def __delitem__(self, key):
 */
  __pyx_k_tuple_147 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_147)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1997; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_147));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_140));
  PyTuple_SET_ITEM(__pyx_k_tuple_147, 0, ((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_140));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_147));

  /* "gipsy.pyx":2011
 *          self.__delhead(key[1], key[0])
 *       else:
 *          raise GdsError(-1, "error deleting header item")             # <<<<<<<<<<<<<<
 * 
 *    def __wcheck(self):
 */
  __pyx_k_tuple_149 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_149)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_149));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_149, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_148));
  PyTuple_SET_ITEM(__pyx_k_tuple_149, 1, ((PyObject *)__pyx_kp_s_148));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_148));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_149));

  /* "gipsy.pyx":2015
 *    def __wcheck(self):
 *       if not self.wmode:
 *          raise GdsError(-1, "set opened read-only")             # <<<<<<<<<<<<<<
 * 
 *    def update(self):
 */
  __pyx_k_tuple_151 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_151)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_151));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_151, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_150));
  PyTuple_SET_ITEM(__pyx_k_tuple_151, 1, ((PyObject *)__pyx_kp_s_150));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_150));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_151));

  /* "gipsy.pyx":2400
 *                       'DTYPE', 'DRVAL', 'DDELT', 'DRPIX', 'DROTA', 'NAXIS']:
 *          if name[:5]=='NAXIS':
 *             raise GdsError(-1, 'cannot change NAXIS items')             # <<<<<<<<<<<<<<
 *          if level:
 *             raise GdsError(-1, 'special headers on top level only')
 */
  __pyx_k_tuple_158 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_158)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_158));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_158, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_157));
  PyTuple_SET_ITEM(__pyx_k_tuple_158, 1, ((PyObject *)__pyx_kp_s_157));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_157));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_158));

  /* "gipsy.pyx":2402
 *             raise GdsError(-1, 'cannot change NAXIS items')
 *          if level:
 *             raise GdsError(-1, 'special headers on top level only')             # <<<<<<<<<<<<<<
 *          try:
 *             axnum = int(name[5:])
 */
  __pyx_k_tuple_160 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_160)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_160));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_160, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_159));
  PyTuple_SET_ITEM(__pyx_k_tuple_160, 1, ((PyObject *)__pyx_kp_s_159));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_159));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_160));

  /* "gipsy.pyx":2408
 *             axnum = None
 *          if axnum is not None and axnum<1:
 *             raise GdsError(-1, 'number must be greater than 1')             # <<<<<<<<<<<<<<
 *          if axnum is not None and axnum>self.naxis:
 *             try:
 */
  __pyx_k_tuple_162 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_162)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_162));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_162, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_161));
  PyTuple_SET_ITEM(__pyx_k_tuple_162, 1, ((PyObject *)__pyx_kp_s_161));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_161));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_162));

  /* "gipsy.pyx":2413
 *                self[name]
 *             except:
 *                raise GdsError(-1, 'number greater than set dimension')             # <<<<<<<<<<<<<<
 *          if name[:5] in ['CTYPE', 'DTYPE']:
 *             if t is not types.StringType:
 */
  __pyx_k_tuple_164 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_164)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_164));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_164, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_163));
  PyTuple_SET_ITEM(__pyx_k_tuple_164, 1, ((PyObject *)__pyx_kp_s_163));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_163));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_164));

  /* "gipsy.pyx":2608
 *          for i in range(nitems_c): result[i] = bresult_c[i]
 *          free(bresult_c)
 *       elif t.startswith('CHAR'):             # <<<<<<<<<<<<<<
 *          width = int(t[4:])
 *          cresult_c = newfchar(width*nitems_c)
 */
  __pyx_k_tuple_167 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_167)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_167));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__CHAR));
  PyTuple_SET_ITEM(__pyx_k_tuple_167, 0, ((PyObject *)__pyx_n_s__CHAR));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CHAR));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_167));

  /* "gipsy.pyx":2620
 *             delfchar(cresult_c)
 *       else:
 *          raiseGds(-1)             # <<<<<<<<<<<<<<
 *       if err_c<0:
 *          raiseGds(err_c)
 */
  __pyx_k_tuple_168 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_168)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_168));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_168, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_168));

  /* "gipsy.pyx":2695
 * 
 *       image = self.image
 *       setlo, sethi = self.range(0)             # <<<<<<<<<<<<<<
 *       sublo, subhi = self.range(level)
 *       axperm = self.axperm('inside')
 */
  __pyx_k_tuple_170 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_170)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_170));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_170, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_170));

  /* "gipsy.pyx":2697
 *       setlo, sethi = self.range(0)
 *       sublo, subhi = self.range(level)
 *       axperm = self.axperm('inside')             # <<<<<<<<<<<<<<
 *       subax = 0
 *       plak = []
 */
  __pyx_k_tuple_171 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_171)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_171));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__inside));
  PyTuple_SET_ITEM(__pyx_k_tuple_171, 0, ((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_171));

  /* "gipsy.pyx":2829
 *       elif mode=='outside':
 *          if level in self.subsets:
 *             axsel = self.axperm('outside')             # <<<<<<<<<<<<<<
 *          else:
 *             axsel = []
 */
  __pyx_k_tuple_173 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_173)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_173));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outside));
  PyTuple_SET_ITEM(__pyx_k_tuple_173, 0, ((PyObject *)__pyx_n_s__outside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_173));

  /* "gipsy.pyx":2859
 *       if status==0:
 *          clo, chi = self.range(level_c)
 *          axperm = self.axperm('inside')             # <<<<<<<<<<<<<<
 *          blo = []
 *          for x in axperm:
 */
  __pyx_k_tuple_174 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_174)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_174));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__inside));
  PyTuple_SET_ITEM(__pyx_k_tuple_174, 0, ((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_174));

  /* "gipsy.pyx":2889
 * 
 *       for i in range(ndims):
 *          axperm = self.axperm('inside')             # <<<<<<<<<<<<<<
 *          slo    = self.slo
 *          shi    = self.shi
 */
  __pyx_k_tuple_176 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_176)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_176));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__inside));
  PyTuple_SET_ITEM(__pyx_k_tuple_176, 0, ((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_176));

  /* "gipsy.pyx":2893
 *          shi    = self.shi
 *          if blo[i]<slo[axperm[i]] or bhi[i]>shi[axperm[i]]:
 *             raise GdsError(-1, 'box outside set')             # <<<<<<<<<<<<<<
 * 
 *       free(pos_c)
 */
  __pyx_k_tuple_178 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_178)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_178));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_178, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_177));
  PyTuple_SET_ITEM(__pyx_k_tuple_178, 1, ((PyObject *)__pyx_kp_s_177));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_177));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_178));

  /* "gipsy.pyx":2968
 *             return result
 *       if level in self.subsets:
 *          axsel = self.axperm('outside')             # <<<<<<<<<<<<<<
 *          for i in range(len(axsel)):
 *             result.append(Axis(self, axsel[i], level, any))
 */
  __pyx_k_tuple_179 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_179)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_179));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outside));
  PyTuple_SET_ITEM(__pyx_k_tuple_179, 0, ((PyObject *)__pyx_n_s__outside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_179));

  /* "gipsy.pyx":3114
 *    def __getattr__(self, key):
 *       if key=='name':
 *          self.__dict__[key] = self.ctype.split('-')[0]             # <<<<<<<<<<<<<<
 *       elif key== 'slo':
 *          return self.set.slo[self.axnum]
 */
  __pyx_k_tuple_199 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_199)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_199));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_198));
  PyTuple_SET_ITEM(__pyx_k_tuple_199, 0, ((PyObject *)__pyx_kp_s_198));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_198));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_199));

  /* "gipsy.pyx":3122
 *          if self.subset in self.set.subsets:
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)             # <<<<<<<<<<<<<<
 *                return self.set.blo[boxnum]
 *             except:
 */
  __pyx_k_tuple_200 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_200)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_200));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__inside));
  PyTuple_SET_ITEM(__pyx_k_tuple_200, 0, ((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_200));

  /* "gipsy.pyx":3126
 *             except:
 *                if self.any:
 *                   raise GdsError(-1, "only inside axes have blo")             # <<<<<<<<<<<<<<
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)
 */
  __pyx_k_tuple_202 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_202)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_202));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_202, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_201));
  PyTuple_SET_ITEM(__pyx_k_tuple_202, 1, ((PyObject *)__pyx_kp_s_201));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_201));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_202));

  /* "gipsy.pyx":3132
 *                   self.__dict__[key] = pos
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")             # <<<<<<<<<<<<<<
 *       elif key=='bhi':
 *          if self.subset in self.set.subsets:
 */
  __pyx_k_tuple_204 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_204)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_204));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_204, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_203));
  PyTuple_SET_ITEM(__pyx_k_tuple_204, 1, ((PyObject *)__pyx_kp_s_203));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_203));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_204));

  /* "gipsy.pyx":3136
 *          if self.subset in self.set.subsets:
 *             try:
 *                boxnum = self.set.axperm('inside').index(self.axnum)             # <<<<<<<<<<<<<<
 *                return self.set.bhi[boxnum]
 *             except:
 */
  __pyx_k_tuple_205 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_205)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_205));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__inside));
  PyTuple_SET_ITEM(__pyx_k_tuple_205, 0, ((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__inside));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_205));

  /* "gipsy.pyx":3140
 *             except:
 *                if self.any:
 *                   raise GdsError(-1, "only inside axes have bhi")             # <<<<<<<<<<<<<<
 *                else:
 *                   pos = self.set.grid(self.axnum, self.subset)
 */
  __pyx_k_tuple_207 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_207)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_207));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_207, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_206));
  PyTuple_SET_ITEM(__pyx_k_tuple_207, 1, ((PyObject *)__pyx_kp_s_206));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_206));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_207));

  /* "gipsy.pyx":3146
 *                   self.__dict__[key] = pos
 *          else:
 *             raise GdsError(-1, "incompatibe box and subset")             # <<<<<<<<<<<<<<
 *       elif key in ['ctype', 'crpix', 'crval', 'cdelt']:
 *          self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]
 */
  __pyx_k_tuple_208 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_208)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_208));
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_208, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_203));
  PyTuple_SET_ITEM(__pyx_k_tuple_208, 1, ((PyObject *)__pyx_kp_s_203));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_203));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_208));

  /* "gipsy.pyx":3246
 *                       compare=True):
 *       if not has_pyqt4:
 *          raise GipsyError("Cannot connect to PyQt4")             # <<<<<<<<<<<<<<
 *       self.w_signal = 'None'
 *       self.k_getval = None
 */
  __pyx_k_tuple_212 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_212)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_212));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_84));
  PyTuple_SET_ITEM(__pyx_k_tuple_212, 0, ((PyObject *)__pyx_kp_s_84));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_84));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_212));

  /* "gipsy.pyx":3302
 * 
 *    def key_reject(self, cbobj):
 *       QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')             # <<<<<<<<<<<<<<
 * 
 *    def sig_handler(self):
 */
  __pyx_k_tuple_215 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_215)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_215));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_27));
  PyTuple_SET_ITEM(__pyx_k_tuple_215, 0, ((PyObject *)__pyx_kp_s_27));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_27));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_215));

  /* "gipsy.pyx":3328
 * 
 *          # adjust the margins or you will get an invisible, unintended border
 *          layout.setContentsMargins(0, 0, 0, 0)             # <<<<<<<<<<<<<<
 * 
 *          # need to set the layout
 */
  __pyx_k_tuple_220 = PyTuple_New(4); if (unlikely(!__pyx_k_tuple_220)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_220));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_220, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_220, 1, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_220, 2, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_220, 3, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_220));

  /* "gipsy.pyx":3338
 * 
 *          self.move(widget.mapToGlobal(widget.rect().bottomLeft()))
 *          QtCore.QTimer.singleShot(1000*delay, self, QtCore.SLOT('hide()'))             # <<<<<<<<<<<<<<
 *          self.show()
 * 
 */
  __pyx_k_tuple_222 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_222)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_222));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_221));
  PyTuple_SET_ITEM(__pyx_k_tuple_222, 0, ((PyObject *)__pyx_kp_s_221));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_221));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_222));

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":31
 * def gipsy_logo():
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))             # <<<<<<<<<<<<<<
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)
 */
  __pyx_k_tuple_242 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_242)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_242));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_241));
  PyTuple_SET_ITEM(__pyx_k_tuple_242, 0, ((PyObject *)__pyx_kp_s_241));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_241));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_242));

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":32
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
 *    logo.setFixedSize(27,30)             # <<<<<<<<<<<<<<
 *    logo.setScaledContents(True)
 *    logo.setToolTip(logo_text)
 */
  __pyx_k_tuple_243 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_243)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_243));
  __Pyx_INCREF(__pyx_int_27);
  PyTuple_SET_ITEM(__pyx_k_tuple_243, 0, __pyx_int_27);
  __Pyx_GIVEREF(__pyx_int_27);
  __Pyx_INCREF(__pyx_int_30);
  PyTuple_SET_ITEM(__pyx_k_tuple_243, 1, __pyx_int_30);
  __Pyx_GIVEREF(__pyx_int_30);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_243));

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":39
 * def kapteyn_logo():
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))             # <<<<<<<<<<<<<<
 *    logo.setFixedSize(27,30)
 *    logo.setScaledContents(True)
 */
  __pyx_k_tuple_245 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_245)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_245));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_244));
  PyTuple_SET_ITEM(__pyx_k_tuple_245, 0, ((PyObject *)__pyx_kp_s_244));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_244));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_245));

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":40
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
 *    logo.setFixedSize(27,30)             # <<<<<<<<<<<<<<
 *    logo.setScaledContents(True)
 *    logo.setToolTip(kapteyn_text)
 */
  __pyx_k_tuple_246 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_246)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_246));
  __Pyx_INCREF(__pyx_int_27);
  PyTuple_SET_ITEM(__pyx_k_tuple_246, 0, __pyx_int_27);
  __Pyx_GIVEREF(__pyx_int_27);
  __Pyx_INCREF(__pyx_int_30);
  PyTuple_SET_ITEM(__pyx_k_tuple_246, 1, __pyx_int_30);
  __Pyx_GIVEREF(__pyx_int_30);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_246));

  /* "gipsy.pyx":31
 * 
 * if sizeof(long)<sizeof(long*):
 *    raise Exception("cannot run in this architecture: pointer longer than long")             # <<<<<<<<<<<<<<
 * 
 * import_array()
 */
  __pyx_k_tuple_248 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_248)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_248));
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_247));
  PyTuple_SET_ITEM(__pyx_k_tuple_248, 0, ((PyObject *)__pyx_kp_s_247));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_247));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_248));

  /* "gipsy.pyx":3078
 *    __skysystems = [
 *        None,
 *        (1, "equatorial"),             # <<<<<<<<<<<<<<
 *        (2, "galactic"),
 *        (3, "ecliptic"),
 */
  __pyx_k_tuple_265 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_265)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_265));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_265, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__equatorial));
  PyTuple_SET_ITEM(__pyx_k_tuple_265, 1, ((PyObject *)__pyx_n_s__equatorial));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__equatorial));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_265));

  /* "gipsy.pyx":3079
 *        None,
 *        (1, "equatorial"),
 *        (2, "galactic"),             # <<<<<<<<<<<<<<
 *        (3, "ecliptic"),
 *        (4, "supergalactic"),
 */
  __pyx_k_tuple_266 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_266)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_266));
  __Pyx_INCREF(__pyx_int_2);
  PyTuple_SET_ITEM(__pyx_k_tuple_266, 0, __pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__galactic));
  PyTuple_SET_ITEM(__pyx_k_tuple_266, 1, ((PyObject *)__pyx_n_s__galactic));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__galactic));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_266));

  /* "gipsy.pyx":3080
 *        (1, "equatorial"),
 *        (2, "galactic"),
 *        (3, "ecliptic"),             # <<<<<<<<<<<<<<
 *        (4, "supergalactic"),
 *        None
 */
  __pyx_k_tuple_267 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_267)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_267));
  __Pyx_INCREF(__pyx_int_3);
  PyTuple_SET_ITEM(__pyx_k_tuple_267, 0, __pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__ecliptic));
  PyTuple_SET_ITEM(__pyx_k_tuple_267, 1, ((PyObject *)__pyx_n_s__ecliptic));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ecliptic));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_267));

  /* "gipsy.pyx":3081
 *        (2, "galactic"),
 *        (3, "ecliptic"),
 *        (4, "supergalactic"),             # <<<<<<<<<<<<<<
 *        None
 *    ]
 */
  __pyx_k_tuple_268 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_268)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_268));
  __Pyx_INCREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_k_tuple_268, 0, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__supergalactic));
  PyTuple_SET_ITEM(__pyx_k_tuple_268, 1, ((PyObject *)__pyx_n_s__supergalactic));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__supergalactic));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_268));

  /* "gipsy.pyx":3086
 *    __prosystems = [
 *       None,
 *       (1, "AITOFF equal area"),             # <<<<<<<<<<<<<<
 *       (2, "equivalent cylindrical"),
 *       (3, "flat"),
 */
  __pyx_k_tuple_270 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_270)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_270));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_270, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_269));
  PyTuple_SET_ITEM(__pyx_k_tuple_270, 1, ((PyObject *)__pyx_kp_s_269));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_269));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_270));

  /* "gipsy.pyx":3087
 *       None,
 *       (1, "AITOFF equal area"),
 *       (2, "equivalent cylindrical"),             # <<<<<<<<<<<<<<
 *       (3, "flat"),
 *       (4, "gnomonic"),
 */
  __pyx_k_tuple_272 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_272)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_272));
  __Pyx_INCREF(__pyx_int_2);
  PyTuple_SET_ITEM(__pyx_k_tuple_272, 0, __pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_271));
  PyTuple_SET_ITEM(__pyx_k_tuple_272, 1, ((PyObject *)__pyx_kp_s_271));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_271));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_272));

  /* "gipsy.pyx":3088
 *       (1, "AITOFF equal area"),
 *       (2, "equivalent cylindrical"),
 *       (3, "flat"),             # <<<<<<<<<<<<<<
 *       (4, "gnomonic"),
 *       (5, "orthographic"),
 */
  __pyx_k_tuple_273 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_273)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_273));
  __Pyx_INCREF(__pyx_int_3);
  PyTuple_SET_ITEM(__pyx_k_tuple_273, 0, __pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__flat));
  PyTuple_SET_ITEM(__pyx_k_tuple_273, 1, ((PyObject *)__pyx_n_s__flat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__flat));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_273));

  /* "gipsy.pyx":3089
 *       (2, "equivalent cylindrical"),
 *       (3, "flat"),
 *       (4, "gnomonic"),             # <<<<<<<<<<<<<<
 *       (5, "orthographic"),
 *       (6, "rectangular"),
 */
  __pyx_k_tuple_274 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_274)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_274));
  __Pyx_INCREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_k_tuple_274, 0, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__gnomonic));
  PyTuple_SET_ITEM(__pyx_k_tuple_274, 1, ((PyObject *)__pyx_n_s__gnomonic));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__gnomonic));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_274));

  /* "gipsy.pyx":3090
 *       (3, "flat"),
 *       (4, "gnomonic"),
 *       (5, "orthographic"),             # <<<<<<<<<<<<<<
 *       (6, "rectangular"),
 *       (7, "global sinusoidal"),
 */
  __pyx_k_tuple_275 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_275)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_275));
  __Pyx_INCREF(__pyx_int_5);
  PyTuple_SET_ITEM(__pyx_k_tuple_275, 0, __pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__orthographic));
  PyTuple_SET_ITEM(__pyx_k_tuple_275, 1, ((PyObject *)__pyx_n_s__orthographic));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__orthographic));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_275));

  /* "gipsy.pyx":3091
 *       (4, "gnomonic"),
 *       (5, "orthographic"),
 *       (6, "rectangular"),             # <<<<<<<<<<<<<<
 *       (7, "global sinusoidal"),
 *       (8, "north celestial pole (WSRT)"),
 */
  __pyx_k_tuple_276 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_276)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_276));
  __Pyx_INCREF(__pyx_int_6);
  PyTuple_SET_ITEM(__pyx_k_tuple_276, 0, __pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__rectangular));
  PyTuple_SET_ITEM(__pyx_k_tuple_276, 1, ((PyObject *)__pyx_n_s__rectangular));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__rectangular));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_276));

  /* "gipsy.pyx":3092
 *       (5, "orthographic"),
 *       (6, "rectangular"),
 *       (7, "global sinusoidal"),             # <<<<<<<<<<<<<<
 *       (8, "north celestial pole (WSRT)"),
 *       (9, "stereographic"),
 */
  __pyx_k_tuple_278 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_278)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_278));
  __Pyx_INCREF(__pyx_int_7);
  PyTuple_SET_ITEM(__pyx_k_tuple_278, 0, __pyx_int_7);
  __Pyx_GIVEREF(__pyx_int_7);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_277));
  PyTuple_SET_ITEM(__pyx_k_tuple_278, 1, ((PyObject *)__pyx_kp_s_277));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_277));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_278));

  /* "gipsy.pyx":3093
 *       (6, "rectangular"),
 *       (7, "global sinusoidal"),
 *       (8, "north celestial pole (WSRT)"),             # <<<<<<<<<<<<<<
 *       (9, "stereographic"),
 *      (10, "Mercator projection"),
 */
  __pyx_k_tuple_280 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_280)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_280));
  __Pyx_INCREF(__pyx_int_8);
  PyTuple_SET_ITEM(__pyx_k_tuple_280, 0, __pyx_int_8);
  __Pyx_GIVEREF(__pyx_int_8);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_279));
  PyTuple_SET_ITEM(__pyx_k_tuple_280, 1, ((PyObject *)__pyx_kp_s_279));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_279));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_280));

  /* "gipsy.pyx":3094
 *       (7, "global sinusoidal"),
 *       (8, "north celestial pole (WSRT)"),
 *       (9, "stereographic"),             # <<<<<<<<<<<<<<
 *      (10, "Mercator projection"),
 *       None
 */
  __pyx_k_tuple_281 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_281)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_281));
  __Pyx_INCREF(__pyx_int_9);
  PyTuple_SET_ITEM(__pyx_k_tuple_281, 0, __pyx_int_9);
  __Pyx_GIVEREF(__pyx_int_9);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__stereographic));
  PyTuple_SET_ITEM(__pyx_k_tuple_281, 1, ((PyObject *)__pyx_n_s__stereographic));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__stereographic));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_281));

  /* "gipsy.pyx":3095
 *       (8, "north celestial pole (WSRT)"),
 *       (9, "stereographic"),
 *      (10, "Mercator projection"),             # <<<<<<<<<<<<<<
 *       None
 *    ]
 */
  __pyx_k_tuple_283 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_283)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_283));
  __Pyx_INCREF(__pyx_int_10);
  PyTuple_SET_ITEM(__pyx_k_tuple_283, 0, __pyx_int_10);
  __Pyx_GIVEREF(__pyx_int_10);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_282));
  PyTuple_SET_ITEM(__pyx_k_tuple_283, 1, ((PyObject *)__pyx_kp_s_282));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_282));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_283));

  /* "gipsy.pyx":3100
 *    __velsystems = [
 *       None,
 *       (0, "unknown velocity system"),             # <<<<<<<<<<<<<<
 *       (1, "optical"),
 *       (2, "radio"),
 */
  __pyx_k_tuple_285 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_285)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_285));
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_285, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_284));
  PyTuple_SET_ITEM(__pyx_k_tuple_285, 1, ((PyObject *)__pyx_kp_s_284));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_284));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_285));

  /* "gipsy.pyx":3101
 *       None,
 *       (0, "unknown velocity system"),
 *       (1, "optical"),             # <<<<<<<<<<<<<<
 *       (2, "radio"),
 *       None
 */
  __pyx_k_tuple_286 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_286)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_286));
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_286, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__optical));
  PyTuple_SET_ITEM(__pyx_k_tuple_286, 1, ((PyObject *)__pyx_n_s__optical));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__optical));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_286));

  /* "gipsy.pyx":3102
 *       (0, "unknown velocity system"),
 *       (1, "optical"),
 *       (2, "radio"),             # <<<<<<<<<<<<<<
 *       None
 *    ]
 */
  __pyx_k_tuple_287 = PyTuple_New(2); if (unlikely(!__pyx_k_tuple_287)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_k_tuple_287));
  __Pyx_INCREF(__pyx_int_2);
  PyTuple_SET_ITEM(__pyx_k_tuple_287, 0, __pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__radio));
  PyTuple_SET_ITEM(__pyx_k_tuple_287, 1, ((PyObject *)__pyx_n_s__radio));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__radio));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_287));
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_2 = PyInt_FromLong(-2); if (unlikely(!__pyx_int_neg_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_3 = PyInt_FromLong(-3); if (unlikely(!__pyx_int_neg_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_4 = PyInt_FromLong(-4); if (unlikely(!__pyx_int_neg_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_5 = PyInt_FromLong(-5); if (unlikely(!__pyx_int_neg_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_6 = PyInt_FromLong(-6); if (unlikely(!__pyx_int_neg_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_7 = PyInt_FromLong(-7); if (unlikely(!__pyx_int_neg_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_8 = PyInt_FromLong(-8); if (unlikely(!__pyx_int_neg_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_9 = PyInt_FromLong(-9); if (unlikely(!__pyx_int_neg_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_11 = PyInt_FromLong(11); if (unlikely(!__pyx_int_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_13 = PyInt_FromLong(13); if (unlikely(!__pyx_int_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_14 = PyInt_FromLong(14); if (unlikely(!__pyx_int_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_20 = PyInt_FromLong(20); if (unlikely(!__pyx_int_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_27 = PyInt_FromLong(27); if (unlikely(!__pyx_int_27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_30 = PyInt_FromLong(30); if (unlikely(!__pyx_int_30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_80 = PyInt_FromLong(80); if (unlikely(!__pyx_int_80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_10 = PyInt_FromLong(-10); if (unlikely(!__pyx_int_neg_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_11 = PyInt_FromLong(-11); if (unlikely(!__pyx_int_neg_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_12 = PyInt_FromLong(-12); if (unlikely(!__pyx_int_neg_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_13 = PyInt_FromLong(-13); if (unlikely(!__pyx_int_neg_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_14 = PyInt_FromLong(-14); if (unlikely(!__pyx_int_neg_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_15 = PyInt_FromLong(-15); if (unlikely(!__pyx_int_neg_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_neg_16 = PyInt_FromLong(-16); if (unlikely(!__pyx_int_neg_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_100 = PyInt_FromLong(100); if (unlikely(!__pyx_int_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_209 = PyInt_FromLong(209); if (unlikely(!__pyx_int_209)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_210 = PyInt_FromLong(210); if (unlikely(!__pyx_int_210)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_211 = PyInt_FromLong(211); if (unlikely(!__pyx_int_211)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_212 = PyInt_FromLong(212); if (unlikely(!__pyx_int_212)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_1000 = PyInt_FromLong(1000); if (unlikely(!__pyx_int_1000)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_int_2147483647 = PyInt_FromLong(2147483647); if (unlikely(!__pyx_int_2147483647)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  return 0;
  __pyx_L1_error:;
  return -1;
}

#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initgipsy(void); /*proto*/
PyMODINIT_FUNC initgipsy(void)
#else
PyMODINIT_FUNC PyInit_gipsy(void); /*proto*/
PyMODINIT_FUNC PyInit_gipsy(void)
#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;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  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;
  __Pyx_RefNannyDeclarations
  #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("PyMODINIT_FUNC PyInit_gipsy(void)");
  if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #ifdef __pyx_binding_PyCFunctionType_USED
  if (__pyx_binding_PyCFunctionType_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Module creation code ---*/
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("gipsy"), __pyx_methods, 0, 0, PYTHON_API_VERSION);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  #if PY_MAJOR_VERSION < 3
  Py_INCREF(__pyx_m);
  #endif
  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  /*--- Initialize various global constants etc. ---*/
  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_module_is_main_gipsy) {
    if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  }
  /*--- Builtin init code ---*/
  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Constants init code ---*/
  if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Global init code ---*/
  /*--- Variable export code ---*/
  /*--- Function export code ---*/
  /*--- Type init code ---*/
  /*--- Type import code ---*/
  __pyx_ptype_7c_numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_7c_numpy_dtype)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_7c_numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_7c_numpy_ndarray)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_7c_numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_7c_numpy_flatiter)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_7c_numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_7c_numpy_broadcast)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Variable import code ---*/
  /*--- Function import code ---*/
  /*--- Execution code ---*/

  /* "gipsy.pyx":3
 * cimport c_numpy
 * from c_numpy cimport import_array, ndarray, PyArray_DATA
 * import sys, os, types, string, numpy, weakref, traceback             # <<<<<<<<<<<<<<
 * 
 * try:
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__sys), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__sys, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__os), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__os, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__types), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__types, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__string), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__string, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__numpy, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__weakref), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__weakref, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__traceback), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__traceback, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":5
 * import sys, os, types, string, numpy, weakref, traceback
 * 
 * try:             # <<<<<<<<<<<<<<
 *    import pyfits
 *    import random
 */
  {
    __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:*/ {

      /* "gipsy.pyx":6
 * 
 * try:
 *    import pyfits             # <<<<<<<<<<<<<<
 *    import random
 *    has_pyfits = True
 */
      __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__pyfits), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pyfits, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":7
 * try:
 *    import pyfits
 *    import random             # <<<<<<<<<<<<<<
 *    has_pyfits = True
 * except:
 */
      __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__random), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__random, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":8
 *    import pyfits
 *    import random
 *    has_pyfits = True             # <<<<<<<<<<<<<<
 * except:
 *    has_pyfits = False
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_pyfits, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_DECREF(__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_4); __pyx_t_4 = 0;
    goto __pyx_L9_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":9
 *    import random
 *    has_pyfits = True
 * except:             # <<<<<<<<<<<<<<
 *    has_pyfits = False
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "gipsy.pyx":10
 *    has_pyfits = True
 * except:
 *    has_pyfits = False             # <<<<<<<<<<<<<<
 * 
 * try:
 */
      __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_pyfits, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L3_exception_handled;
    }
    __pyx_L4_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_L3_exception_handled:;
    __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);
    __pyx_L9_try_end:;
  }

  /* "gipsy.pyx":12
 *    has_pyfits = False
 * 
 * try:             # <<<<<<<<<<<<<<
 *    from PyQt4 import QtCore, QtGui
 *    has_pyqt4 = True
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_2);
    /*try:*/ {

      /* "gipsy.pyx":13
 * 
 * try:
 *    from PyQt4 import QtCore, QtGui             # <<<<<<<<<<<<<<
 *    has_pyqt4 = True
 * except:
 */
      __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __Pyx_INCREF(((PyObject *)__pyx_n_s__QtCore));
      PyList_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_n_s__QtCore));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__QtCore));
      __Pyx_INCREF(((PyObject *)__pyx_n_s__QtGui));
      PyList_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__QtGui));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__QtGui));
      __pyx_t_5 = __Pyx_Import(((PyObject *)__pyx_n_s__PyQt4), ((PyObject *)__pyx_t_6), -1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__QtCore, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__QtGui, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "gipsy.pyx":14
 * try:
 *    from PyQt4 import QtCore, QtGui
 *    has_pyqt4 = True             # <<<<<<<<<<<<<<
 * except:
 *    has_pyqt4 = False
 */
      __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_pyqt4, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L19_try_end;
    __pyx_L12_error:;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "gipsy.pyx":15
 *    from PyQt4 import QtCore, QtGui
 *    has_pyqt4 = True
 * except:             # <<<<<<<<<<<<<<
 *    has_pyqt4 = False
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_1);

      /* "gipsy.pyx":16
 *    has_pyqt4 = True
 * except:
 *    has_pyqt4 = False             # <<<<<<<<<<<<<<
 * 
 * try:
 */
      __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_pyqt4, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L13_exception_handled;
    }
    __pyx_L14_except_error:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
    goto __pyx_L1_error;
    __pyx_L13_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
    __pyx_L19_try_end:;
  }

  /* "gipsy.pyx":18
 *    has_pyqt4 = False
 * 
 * try:             # <<<<<<<<<<<<<<
 *    import gobject
 *    has_gtk = True
 */
  {
    __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:*/ {

      /* "gipsy.pyx":19
 * 
 * try:
 *    import gobject             # <<<<<<<<<<<<<<
 *    has_gtk = True
 * except:
 */
      __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__gobject), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gobject, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "gipsy.pyx":20
 * try:
 *    import gobject
 *    has_gtk = True             # <<<<<<<<<<<<<<
 * except:
 *    has_gtk = False
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_gtk, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
      __Pyx_DECREF(__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_4); __pyx_t_4 = 0;
    goto __pyx_L29_try_end;
    __pyx_L22_error:;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":21
 *    import gobject
 *    has_gtk = True
 * except:             # <<<<<<<<<<<<<<
 *    has_gtk = False
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);

      /* "gipsy.pyx":22
 *    has_gtk = True
 * except:
 *    has_gtk = False             # <<<<<<<<<<<<<<
 * 
 * try:
 */
      __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_gtk, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L23_exception_handled;
    }
    __pyx_L24_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_L23_exception_handled:;
    __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);
    __pyx_L29_try_end:;
  }

  /* "gipsy.pyx":24
 *    has_gtk = False
 * 
 * try:             # <<<<<<<<<<<<<<
 *    from Tkinter import tkinter
 *    has_tk = True
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_2);
    /*try:*/ {

      /* "gipsy.pyx":25
 * 
 * try:
 *    from Tkinter import tkinter             # <<<<<<<<<<<<<<
 *    has_tk = True
 * except:
 */
      __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __Pyx_INCREF(((PyObject *)__pyx_n_s__tkinter));
      PyList_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_n_s__tkinter));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__tkinter));
      __pyx_t_6 = __Pyx_Import(((PyObject *)__pyx_n_s__Tkinter), ((PyObject *)__pyx_t_5), -1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__tkinter); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tkinter, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "gipsy.pyx":26
 * try:
 *    from Tkinter import tkinter
 *    has_tk = True             # <<<<<<<<<<<<<<
 * except:
 *    has_tk = False
 */
      __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_tk, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L39_try_end;
    __pyx_L32_error:;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __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;

    /* "gipsy.pyx":27
 *    from Tkinter import tkinter
 *    has_tk = True
 * except:             # <<<<<<<<<<<<<<
 *    has_tk = False
 * 
 */
    /*except:*/ {
      __Pyx_AddTraceback("gipsy", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_1);

      /* "gipsy.pyx":28
 *    has_tk = True
 * except:
 *    has_tk = False             # <<<<<<<<<<<<<<
 * 
 * if sizeof(long)<sizeof(long*):
 */
      __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__has_tk, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L33_exception_handled;
    }
    __pyx_L34_except_error:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
    goto __pyx_L1_error;
    __pyx_L33_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
    __pyx_L39_try_end:;
  }

  /* "gipsy.pyx":30
 *    has_tk = False
 * 
 * if sizeof(long)<sizeof(long*):             # <<<<<<<<<<<<<<
 *    raise Exception("cannot run in this architecture: pointer longer than long")
 * 
 */
  __pyx_t_8 = ((sizeof(long)) < (sizeof(long *)));
  if (__pyx_t_8) {

    /* "gipsy.pyx":31
 * 
 * if sizeof(long)<sizeof(long*):
 *    raise Exception("cannot run in this architecture: pointer longer than long")             # <<<<<<<<<<<<<<
 * 
 * import_array()
 */
    __pyx_t_1 = PyObject_Call(__pyx_builtin_Exception, ((PyObject *)__pyx_k_tuple_248), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __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_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L42;
  }
  __pyx_L42:;

  /* "gipsy.pyx":33
 *    raise Exception("cannot run in this architecture: pointer longer than long")
 * 
 * import_array()             # <<<<<<<<<<<<<<
 * 
 * #  ==========================================================================
 */
  import_array();

  /* "gipsy.pyx":325
 * #  uncaught: handle uncaught exception
 * #  --------------------------------------------------------------------------
 * def uncaught(type, value, trace):             # <<<<<<<<<<<<<<
 *    efmt = traceback.format_exception(type, value, trace)
 *    for line in efmt:
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_uncaught, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__uncaught, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":380
 * #  minmax3: return tuple minimum, maximum, number of blanks
 * #  --------------------------------------------------------------------------
 * def minmax3(a):             # <<<<<<<<<<<<<<
 *    cdef long a_l
 *    cdef fint ndat_c, nblank_c, count_c
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_1minmax3, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__minmax3, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":392
 * #  tokey: return a 'standard' user input keyword (uppercase, equals sign)
 * #  --------------------------------------------------------------------------
 * def tokey(a):             # <<<<<<<<<<<<<<
 *    if a[-1] != '=':
 *       a = a + '='
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_2tokey, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tokey, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":410
 * #  realptr: obtain a Pointer object for type float
 * #  --------------------------------------------------------------------------
 * def realptr(object data, nitems=None, forcecast=True):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef float  *result_c
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_4 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_3realptr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__realptr, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":446
 * #  dbleptr: return a Pointer object for type double
 * #  --------------------------------------------------------------------------
 * def dbleptr(object data, nitems=None, forcecast=True):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef double *result_c
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_7 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_4dbleptr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__dbleptr, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":482
 * #  fintptr: return a Pointer object for type fint
 * #  --------------------------------------------------------------------------
 * def fintptr(object data, nitems=None, forcecast=True):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef fint   *result_c
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_9 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_5fintptr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fintptr, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":520
 * #  This function does not support Numpy array objects.
 * #
 * def boolptr(object data, nitems=None):             # <<<<<<<<<<<<<<
 *    cdef ndarray data_c, copy_c
 *    cdef bool   *result_c
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_6boolptr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__boolptr, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":582
 * #     Then 'dyn' is True so that the data will be free'd eventually.
 * #
 * class Pointer(object):             # <<<<<<<<<<<<<<
 *    def __init__(self, ptr, dyn=False, n=1):
 *       self.ptr = ptr
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));

  /* "gipsy.pyx":583
 * #
 * class Pointer(object):
 *    def __init__(self, ptr, dyn=False, n=1):             # <<<<<<<<<<<<<<
 *       self.ptr = ptr
 *       self.dyn = dyn
 */
  __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_15 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7Pointer___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":587
 *       self.dyn = dyn
 *       self.n   = n
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       cdef long  ptr_l
 *       if self.dyn:
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7Pointer_1__del__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____del__, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":582
 * #     Then 'dyn' is True so that the data will be free'd eventually.
 * #
 * class Pointer(object):             # <<<<<<<<<<<<<<
 *    def __init__(self, ptr, dyn=False, n=1):
 *       self.ptr = ptr
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_1), __pyx_n_s__Pointer, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Pointer, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":605
 * #       b.content - integer representation of a pointer to the container.
 * #
 * class Buffer(object):             # <<<<<<<<<<<<<<
 *    def __init__(self, size):
 *       cdef void *content_c
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));

  /* "gipsy.pyx":606
 * #
 * class Buffer(object):
 *    def __init__(self, size):             # <<<<<<<<<<<<<<
 *       cdef void *content_c
 *       content_c = malloc(size)
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6Buffer___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":611
 *       self.content = <long>content_c
 *       self.size = size
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       cdef long content_c
 *       content_c = self.content
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6Buffer_1__del__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____del__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":615
 *       content_c = self.content
 *       free(<void*>content_c)
 *    def __len__(self):             # <<<<<<<<<<<<<<
 *       return self.size
 * 
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6Buffer_2__len__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____len__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":605
 * #       b.content - integer representation of a pointer to the container.
 * #
 * class Buffer(object):             # <<<<<<<<<<<<<<
 *    def __init__(self, size):
 *       cdef void *content_c
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_5 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__Buffer, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Buffer, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":621
 * #                                  Exceptions
 * #  --------------------------------------------------------------------------
 * class GipsyError(Exception):             # <<<<<<<<<<<<<<
 *    def __init__(self, value=None):
 *       self.value = value
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));

  /* "gipsy.pyx":622
 * #  --------------------------------------------------------------------------
 * class GipsyError(Exception):
 *    def __init__(self, value=None):             # <<<<<<<<<<<<<<
 *       self.value = value
 *    def __str__(self):
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10GipsyError___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":624
 *    def __init__(self, value=None):
 *       self.value = value
 *    def __str__(self):             # <<<<<<<<<<<<<<
 *       return repr(self.value)
 * 
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10GipsyError_1__str__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____str__, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":621
 * #                                  Exceptions
 * #  --------------------------------------------------------------------------
 * class GipsyError(Exception):             # <<<<<<<<<<<<<<
 *    def __init__(self, value=None):
 *       self.value = value
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_builtin_Exception);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_builtin_Exception);
  __Pyx_GIVEREF(__pyx_builtin_Exception);
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_1), __pyx_n_s__GipsyError, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GipsyError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":627
 *       return repr(self.value)
 * 
 * class XeqError(GipsyError):             # <<<<<<<<<<<<<<
 *    pass
 * 
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_1), __pyx_n_s__XeqError, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__XeqError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":630
 *    pass
 * 
 * class GgiError(GipsyError):             # <<<<<<<<<<<<<<
 *    pass
 * 
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_1), __pyx_n_s__GgiError, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GgiError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":636
 * #                              KeyCallback Class
 * #  --------------------------------------------------------------------------
 * class KeyCallback(object):             # <<<<<<<<<<<<<<
 * 
 * #Attributes:
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));

  /* "gipsy.pyx":649
 * #   ...    -  extra attributes defined by user
 * 
 *    KEYCHANGE = 1             # <<<<<<<<<<<<<<
 *    KEYCANCEL = 2
 *    KEYREJECT = 4
 */
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__KEYCHANGE, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":650
 * 
 *    KEYCHANGE = 1
 *    KEYCANCEL = 2             # <<<<<<<<<<<<<<
 *    KEYREJECT = 4
 * 
 */
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__KEYCANCEL, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":651
 *    KEYCHANGE = 1
 *    KEYCANCEL = 2
 *    KEYREJECT = 4             # <<<<<<<<<<<<<<
 * 
 *    scheduled = []
 */
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__KEYREJECT, __pyx_int_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":653
 *    KEYREJECT = 4
 * 
 *    scheduled = []             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self, proc, key, mask=1, schedule=True, **attr):
 */
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__scheduled, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

  /* "gipsy.pyx":655
 *    scheduled = []
 * 
 *    def __init__(self, proc, key, mask=1, schedule=True, **attr):             # <<<<<<<<<<<<<<
 * 
 * # proc     - function to be called upon a keyword event, matching 'mask'.
 */
  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_16 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_11KeyCallback___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":675
 *       if schedule: self.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       "activate the callback object"
 *       if self.__id:
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_11KeyCallback_1schedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__schedule, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":684
 *       self.scheduled.append(self)
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       "deactivate the callback object"
 *       cdef ident id
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_11KeyCallback_2deschedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__deschedule, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 684; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":636
 * #                              KeyCallback Class
 * #  --------------------------------------------------------------------------
 * class KeyCallback(object):             # <<<<<<<<<<<<<<
 * 
 * #Attributes:
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_5 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__KeyCallback, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__KeyCallback, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":710
 * #                              InputCallback Class
 * #  --------------------------------------------------------------------------
 * class InputCallback(object):             # <<<<<<<<<<<<<<
 * 
 *    scheduled=[]
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));

  /* "gipsy.pyx":712
 * class InputCallback(object):
 * 
 *    scheduled=[]             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self, proc, key, function=None, args={}, schedule=True,
 */
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__scheduled, ((PyObject *)__pyx_t_5)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":714
 *    scheduled=[]
 * 
 *    def __init__(self, proc, key, function=None, args={}, schedule=True,             # <<<<<<<<<<<<<<
 *                       active=True, **attr):
 * 
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_k_23 = ((PyObject *)__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_24 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "gipsy.pyx":715
 * 
 *    def __init__(self, proc, key, function=None, args={}, schedule=True,
 *                       active=True, **attr):             # <<<<<<<<<<<<<<
 * 
 *       self.proc = proc
 */
  __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_25 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;

  /* "gipsy.pyx":714
 *    scheduled=[]
 * 
 *    def __init__(self, proc, key, function=None, args={}, schedule=True,             # <<<<<<<<<<<<<<
 *                       active=True, **attr):
 * 
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":738
 *          self.schedule()
 * 
 *    def _receive(self, cb):             # <<<<<<<<<<<<<<
 *       while True:
 *          value = self.function(cb.key, default=2, defval=None, **self.args)
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_1_receive, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s___receive, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":749
 *          self.tcb.schedule()
 * 
 *    def _reject(self, cb):             # <<<<<<<<<<<<<<
 *       self.queue = [(cb.key,
 *                      usertext('UCAMESSAGE=', default=-1),
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_2_reject, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s___reject, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":757
 *          self.tcb.schedule()
 * 
 *    def _send(self, cb):             # <<<<<<<<<<<<<<
 *       self.value = self.queue.pop(0)
 *       self.proc(self)
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_3_send, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s___send, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":763
 *          self.tcb.deschedule()
 * 
 *    def suspend(self):             # <<<<<<<<<<<<<<
 *       if self.active:
 *          self.active = False
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_4suspend, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__suspend, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":769
 *             self.tcb.deschedule()
 * 
 *    def resume(self):             # <<<<<<<<<<<<<<
 *       if not self.active:
 *          self.active = True
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_5resume, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__resume, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":775
 *             self.tcb.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       self.scheduled.append(self)
 *       self.kcb.schedule()
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_6schedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__schedule, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":781
 *       self._receive(self.kcb)
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       self.queue = []
 *       self.suspend()
 */
  __pyx_t_5 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_13InputCallback_7deschedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__deschedule, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":710
 * #                              InputCallback Class
 * #  --------------------------------------------------------------------------
 * class InputCallback(object):             # <<<<<<<<<<<<<<
 * 
 *    scheduled=[]
 */
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_1), __pyx_n_s__InputCallback, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__InputCallback, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":791
 * #                              TimeCallback Class
 * #  --------------------------------------------------------------------------
 * class TimeCallback(object):             # <<<<<<<<<<<<<<
 * 
 * # Attributes:
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));

  /* "gipsy.pyx":801
 * #   ...      -  extra attributes defined by user
 * 
 *    scheduled = []             # <<<<<<<<<<<<<<
 * 
 *    def __new__(cls, proc, interval, schedule=True, **attr):
 */
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__scheduled, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

  /* "gipsy.pyx":803
 *    scheduled = []
 * 
 *    def __new__(cls, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 *       return super(TimeCallback, TimeCallback.cls).__new__(TimeCallback.cls)
 * 
 */
  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_32 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_12TimeCallback___new__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____new__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":806
 *       return super(TimeCallback, TimeCallback.cls).__new__(TimeCallback.cls)
 * 
 *    def __init__(self, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 * 
 * # proc     -  function to be called each time when interval has expired.
 */
  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_33 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12TimeCallback_1__init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":821
 *       if schedule: self.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       "activate the callback object"
 *       if self.__id:
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12TimeCallback_2schedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__schedule, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":830
 *       self.scheduled.append(self)
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       "deactivate the callback object"
 *       cdef ident id
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12TimeCallback_3deschedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s__deschedule, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":791
 * #                              TimeCallback Class
 * #  --------------------------------------------------------------------------
 * class TimeCallback(object):             # <<<<<<<<<<<<<<
 * 
 * # Attributes:
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_5 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__TimeCallback, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TimeCallback, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":840
 *       self.active = False
 *       self.scheduled.remove(self)
 * TimeCallback.cls = TimeCallback             # <<<<<<<<<<<<<<
 * 
 * # Unsupported event loop:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__cls, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":844
 * # Unsupported event loop:
 * #
 * class TimeCallback_NotImpl(TimeCallback):             # <<<<<<<<<<<<<<
 *    def __init__(self, proc, interval, schedule=True, **attr):
 *       raise GipsyError("TimeCallback not implemented for this event loop")
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "gipsy.pyx":845
 * #
 * class TimeCallback_NotImpl(TimeCallback):
 *    def __init__(self, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 *       raise GipsyError("TimeCallback not implemented for this event loop")
 * 
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_36 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_20TimeCallback_NotImpl___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":844
 * # Unsupported event loop:
 * #
 * class TimeCallback_NotImpl(TimeCallback):             # <<<<<<<<<<<<<<
 *    def __init__(self, proc, interval, schedule=True, **attr):
 *       raise GipsyError("TimeCallback not implemented for this event loop")
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_5), __pyx_n_s_92, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_92, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":850
 * # Qt4Agg:
 * #
 * if has_pyqt4:             # <<<<<<<<<<<<<<
 *    class TimeCallback_QT4(TimeCallback):
 * 
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_pyqt4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_8) {

    /* "gipsy.pyx":851
 * #
 * if has_pyqt4:
 *    class TimeCallback_QT4(TimeCallback):             # <<<<<<<<<<<<<<
 * 
 *       def __init__(self, proc, interval, schedule=True, **attr):
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));

    /* "gipsy.pyx":853
 *    class TimeCallback_QT4(TimeCallback):
 * 
 *       def __init__(self, proc, interval, schedule=True, **attr):             # <<<<<<<<<<<<<<
 *          self.proc     = proc
 *          self.interval = interval
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_k_39 = __pyx_t_1;
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_QT4___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":864
 *          if schedule: self.schedule()
 * 
 *       def schedule(self):             # <<<<<<<<<<<<<<
 *          if self.active:
 *             return
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_QT4_1schedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__schedule, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":872
 *          self.scheduled.append(self)
 * 
 *       def deschedule(self):             # <<<<<<<<<<<<<<
 *          if not self.active:
 *             return
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_QT4_2deschedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__deschedule, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":879
 *          self.scheduled.remove(self)
 * 
 *       def set_interval(self, interval):             # <<<<<<<<<<<<<<
 *          self.interval = interval
 *          milliseconds = max(1,int(round(self.interval*1000.0)))
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_QT4_3set_interval, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__set_interval, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":884
 *          self.timer.setInterval(milliseconds)
 * 
 *       def reached(self):             # <<<<<<<<<<<<<<
 *          self.proc(self)
 * 
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_QT4_4reached, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__reached, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":851
 * #
 * if has_pyqt4:
 *    class TimeCallback_QT4(TimeCallback):             # <<<<<<<<<<<<<<
 * 
 *       def __init__(self, proc, interval, schedule=True, **attr):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_5), __pyx_n_s__TimeCallback_QT4, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TimeCallback_QT4, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    goto __pyx_L43;
  }
  __pyx_L43:;

  /* "gipsy.pyx":889
 * # GTK:
 * #
 * if has_gtk:             # <<<<<<<<<<<<<<
 *    class TimeCallback_GTK(TimeCallback):
 * 
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_gtk); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_8) {

    /* "gipsy.pyx":890
 * #
 * if has_gtk:
 *    class TimeCallback_GTK(TimeCallback):             # <<<<<<<<<<<<<<
 * 
 *       def schedule(self):
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));

    /* "gipsy.pyx":892
 *    class TimeCallback_GTK(TimeCallback):
 * 
 *       def schedule(self):             # <<<<<<<<<<<<<<
 *          if self.id:
 *             return
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_GTK_schedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__schedule, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":900
 *          self.scheduled.append(self)
 * 
 *       def deschedule(self):             # <<<<<<<<<<<<<<
 *          if not self.id:
 *             return
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_GTK_1deschedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__deschedule, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":908
 *          self.scheduled.remove(self)
 * 
 *       def reached(self):             # <<<<<<<<<<<<<<
 *          self.proc(self)
 *          return True
 */
    __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_16TimeCallback_GTK_2reached, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__reached, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":890
 * #
 * if has_gtk:
 *    class TimeCallback_GTK(TimeCallback):             # <<<<<<<<<<<<<<
 * 
 *       def schedule(self):
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TimeCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_5), __pyx_n_s__TimeCallback_GTK, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__TimeCallback_GTK, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    goto __pyx_L44;
  }
  __pyx_L44:;

  /* "gipsy.pyx":923
 * #  --------------------------------------------------------------------------
 * 
 * stdkey = "INPUT="             # <<<<<<<<<<<<<<
 * 
 * def init():
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__stdkey, ((PyObject *)__pyx_kp_s_249)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":925
 * stdkey = "INPUT="
 * 
 * def init():             # <<<<<<<<<<<<<<
 *    "Initialize task's communication with Hermes. See init.dc2"
 *    global native_f4, native_f8, native_i4, native_i8
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_7init, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__init, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":949
 *    sys.excepthook = uncaught
 * 
 * def finis():             # <<<<<<<<<<<<<<
 *    "Terminate task. See finis.dc2"
 *    finis_c()
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_8finis, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__finis, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":953
 *    finis_c()
 * 
 * def xeq(cmd, keyword=None):             # <<<<<<<<<<<<<<
 * 
 * # Start another task. If keyword is not specified,
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_9xeq, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__xeq, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":972
 *          raise XeqError(msgs[-err_c-1])
 * 
 * def deputy(cmd):             # <<<<<<<<<<<<<<
 *    cdef fint err_c
 *    deputy_c(tofchar(cmd), &err_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_10deputy, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__deputy, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":978
 *       raise XeqError("Deputy error, code= %d" % err_c)
 * 
 * def usertext(keyword=stdkey, message="Enter text string", default=0, defval=None, nmax=256):             # <<<<<<<<<<<<<<
 * 
 * # Read a text string from the user. 'nmax' is the maximum number of characters
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_56 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_11usertext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__usertext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":999
 *    return result
 * 
 * def userint(keyword=stdkey, message=None, default=0, defval=0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of integer numbers from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_58 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_12userint, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__userint, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1024
 *    return result
 * 
 * def userlog(keyword=stdkey, message=None, default=0, defval=0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of boolean values (logicals) from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_60 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_13userlog, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__userlog, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1052
 *    return result
 * 
 * def userreal(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of real numbers from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_62 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_63 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_14userreal, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__userreal, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1078
 *    return result
 * 
 * def userdble(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of double precision numbers from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_65 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_66 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_15userdble, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__userdble, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1104
 *    return result
 * 
 * def userchar(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of character strings from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_68 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_16userchar, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__userchar, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1135
 * 
 * 
 * def usercharu(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of character strings from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_70 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_17usercharu, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__usercharu, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1166
 * 
 * 
 * def usercharl(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of character strings from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_71 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_18usercharl, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__usercharl, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1196
 *    return result
 * 
 * def userangle(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):             # <<<<<<<<<<<<<<
 * 
 * # Read a list of angles from the user.
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_72 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_73 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_19userangle, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__userangle, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1222
 * 
 * 
 * def wkey(keystring,task=""):             # <<<<<<<<<<<<<<
 * 
 * # Define or modify a user input keyword. If 'task' is specified,
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_20wkey, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__wkey, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1231
 *    wkey_c(tofchar(task + keystring))
 * 
 * def typecli(text):             # <<<<<<<<<<<<<<
 * 
 *    "Type characters into Hermes' User Command Area. See type.dc2"
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_21typecli, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__typecli, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1236
 *    type_c(tofchar(text))
 * 
 * def cancel(keyword=stdkey):             # <<<<<<<<<<<<<<
 *    "Cancel user input. See cancel.dc2"
 *    cancel_c(tofchar(tokey(keyword)))
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_76 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_22cancel, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cancel, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1240
 *    cancel_c(tofchar(tokey(keyword)))
 * 
 * def reject(keyword=stdkey, message="Input not acceptable"):             # <<<<<<<<<<<<<<
 *    "Reject user input. See reject.dc2"
 *    reject_c(tofchar(tokey(keyword)), tofchar(message))
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__stdkey); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_k_77 = __pyx_t_5;
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_23reject, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__reject, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1244
 *    reject_c(tofchar(tokey(keyword)), tofchar(message))
 * 
 * def subst(substring):             # <<<<<<<<<<<<<<
 *    "Keyword substition for deputy tasks. See subst.dc2"
 *    cdef fint err_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_24subst, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__subst, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1252
 *       raise GipsyError(msgs[-err_c-1])
 * 
 * def anyout(text, dev=0):             # <<<<<<<<<<<<<<
 *    cdef fint  c_dev
 *    c_dev = dev
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_25anyout, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__anyout, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1260
 *       anyout_c(&c_dev, tofchar(line))
 * 
 * def error(level=4, message="An error has occurred"):             # <<<<<<<<<<<<<<
 *    "Error reporting and handling. See error.dc2"
 *    cdef fint level_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_26error, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__error, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1266
 *    error_c(&level_c, tofchar(message))
 * 
 * def aborttask(taskname):             # <<<<<<<<<<<<<<
 *    "Abort a task, given its name"
 *    result = aborttask_c(tofchar(taskname))
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_27aborttask, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__aborttask, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1272
 *       raise GipsyError("Cannot abort task '%s'. Not found." % taskname)
 * 
 * def pause(message=""):             # <<<<<<<<<<<<<<
 *    "Suspend task. See pause.dc2"
 *    pause_c(tofchar(message))
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_28pause, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pause, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1276
 *    pause_c(tofchar(message))
 * 
 * def status(message):             # <<<<<<<<<<<<<<
 *    "Display status message. See status.dc2"
 *    status_c(tofchar(message))
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_29status, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__status, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1280
 *    status_c(tofchar(message))
 * 
 * def decodeint(expr, nmax=4096): # test value; later: increase nmax             # <<<<<<<<<<<<<<
 *    "Decode a GIPSY integer expreession. See decodeint.dc2"
 *    cdef fint *buffer
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_30decodeint, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__decodeint, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1306
 *       raise GipsyError(errmsg)
 * 
 * def decodefloat(expr, nmax=4096): # test value; later: increase nmax             # <<<<<<<<<<<<<<
 *    "Decode a GIPSY integer expreession. See decodeint.dc2"
 *    cdef double *buffer
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_31decodefloat, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__decodefloat, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1332
 *       raise GipsyError(errmsg)
 * 
 * def herconnect():             # <<<<<<<<<<<<<<
 *    "Get file descriptor for receiving Hermes events. See HerConnect.dc3"
 *    return HerConnect()
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_32herconnect, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__herconnect, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1336
 *    return HerConnect()
 * 
 * def eventmonitor(char *key=NULL, bool state=True):             # <<<<<<<<<<<<<<
 *    return c_eventmonitor(key, state)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_33eventmonitor, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__eventmonitor, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1339
 *    return c_eventmonitor(key, state)
 * 
 * def hersignal(fd=0):             # <<<<<<<<<<<<<<
 *    "Cause pending Hermes events to be processed. See HerSignal.dc3"
 *    HerSignal()
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_34hersignal, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__hersignal, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1343
 *    HerSignal()
 * 
 * def qtconnect():             # <<<<<<<<<<<<<<
 *    global gip_nfy
 *    if not has_pyqt4:
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_35qtconnect, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qtconnect, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1352
 *    TimeCallback.cls = TimeCallback_QT4
 * 
 * def _gtkio(source, cb_condition):             # <<<<<<<<<<<<<<
 * #  Callback function for GTK io_add_watch()"
 *    hersignal()
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_36_gtkio, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___gtkio, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1356
 *    hersignal()
 *    return True
 * def gtkconnect():             # <<<<<<<<<<<<<<
 *    global gip_nfy
 *    if not has_gtk:
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_37gtkconnect, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gtkconnect, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1364
 *    TimeCallback.cls = TimeCallback_GTK
 * 
 * def _tkio(fd, mask):             # <<<<<<<<<<<<<<
 * #  Callback function for Tk createfilehandler()
 *    hersignal()
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_38_tkio, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___tkio, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1367
 * #  Callback function for Tk createfilehandler()
 *    hersignal()
 * def tkconnect():             # <<<<<<<<<<<<<<
 *    global gip_nfy
 *    if not has_tk:
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_39tkconnect, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__tkconnect, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1375
 *    TimeCallback.cls = TimeCallback_NotImpl
 * 
 * def mainloop():             # <<<<<<<<<<<<<<
 *    with nogil:
 *       MainLoop()
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_40mainloop, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__mainloop, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1379
 *       MainLoop()
 * 
 * def myname():             # <<<<<<<<<<<<<<
 *    "Obtain current task name. See myname.dc2"
 *    cdef fchar c_result
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_41myname, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__myname, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1390
 *    return result
 * 
 * def cubicspline(xus, yus, sampdist):             # <<<<<<<<<<<<<<
 *    cdef long xus_l, yus_l
 *    cdef float *xus0_c, *yus0_c, splg_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_42cubicspline, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__cubicspline, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1407
 *    return (xus0, yus0, splg_c)
 * 
 * def polymask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, polyX, polyY):             # <<<<<<<<<<<<<<
 *    cdef int np_c
 *    cdef long polyX_l, polyY_l
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_43polymask, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__polymask, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1419
 *    return result
 * 
 * def ellipsemask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, ellpar):             # <<<<<<<<<<<<<<
 *    cdef long ellpar_l
 *    cdef object result_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_44ellipsemask, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ellipsemask, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1431
 *    return result
 * 
 * def evalexpr(expr, nmax=1):             # <<<<<<<<<<<<<<
 *    return decodefloat(expr, nmax)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_45evalexpr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__evalexpr, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1434
 *    return decodefloat(expr, nmax)
 * 
 * def evalexpr_old(expr, fint nmax=1):             # <<<<<<<<<<<<<<
 *    cdef double *c_result
 *    cdef fint c_ierh
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_46evalexpr_old, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__evalexpr_old, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1450
 *    return result
 * 
 * def unitfactor(unit1, unit2):             # <<<<<<<<<<<<<<
 *    cdef double c_result
 *    status = factor_c(tofchar(unit1), tofchar(unit2), &c_result)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_47unitfactor, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__unitfactor, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1461
 * #                              GDS exception
 * #  --------------------------------------------------------------------------
 * class GdsError(GipsyError):             # <<<<<<<<<<<<<<
 *    def __init__(self, errno=None, msg='undefined error'):
 *       self.args  = (errno, msg)
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "gipsy.pyx":1462
 * #  --------------------------------------------------------------------------
 * class GdsError(GipsyError):
 *    def __init__(self, errno=None, msg='undefined error'):             # <<<<<<<<<<<<<<
 *       self.args  = (errno, msg)
 *       self.errno = errno
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8GdsError___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1466
 *       self.errno = errno
 *       self.msg   = msg
 *    def __str__(self):             # <<<<<<<<<<<<<<
 *       return('%s (%s)' % (self.msg, self.errno))
 * 
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8GdsError_1__str__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____str__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1461
 * #                              GDS exception
 * #  --------------------------------------------------------------------------
 * class GdsError(GipsyError):             # <<<<<<<<<<<<<<
 *    def __init__(self, errno=None, msg='undefined error'):
 *       self.args  = (errno, msg)
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__GipsyError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_5), __pyx_n_s__GdsError, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GdsError, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":1469
 *       return('%s (%s)' % (self.msg, self.errno))
 * 
 * def raiseGds(err):             # <<<<<<<<<<<<<<
 *    cdef fint  err_c
 *    cdef fchar errstr_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_48raiseGds, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__raiseGds, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1497
 * #  - for the rest, the normal dict behaviour applies.
 * #
 * class SetHeader(dict):             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self, set):
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "gipsy.pyx":1499
 * class SetHeader(dict):
 * 
 *    def __init__(self, set):             # <<<<<<<<<<<<<<
 *       self.set = weakref.proxy(set)                    # "owning" set object
 * 
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9SetHeader___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1502
 *       self.set = weakref.proxy(set)                    # "owning" set object
 * 
 *    def has_key(self, key):             # <<<<<<<<<<<<<<
 *       return key in self
 * 
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9SetHeader_1has_key, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__has_key, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1505
 *       return key in self
 * 
 *    def __contains__(self, key):             # <<<<<<<<<<<<<<
 *       return dict.__contains__(self, gdskey(key)) or key in self.set
 * 
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9SetHeader_2__contains__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____contains__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1508
 *       return dict.__contains__(self, gdskey(key)) or key in self.set
 * 
 *    def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *       try:
 *          return super(SetHeader, self).__getitem__(gdskey(key))
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9SetHeader_3__getitem__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____getitem__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1514
 *          return self.set[key]
 * 
 *    def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 *       super(SetHeader, self).__setitem__(gdskey(key), value)
 * 
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9SetHeader_4__setitem__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____setitem__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1517
 *       super(SetHeader, self).__setitem__(gdskey(key), value)
 * 
 *    def commit(self):             # <<<<<<<<<<<<<<
 *       for key, value in super(SetHeader, self).items():
 *          self.set[key] = value
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9SetHeader_5commit, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__commit, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":1497
 * #  - for the rest, the normal dict behaviour applies.
 * #
 * class SetHeader(dict):             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self, set):
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)((PyObject*)(&PyDict_Type))));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)(&PyDict_Type))));
  __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyDict_Type))));
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s__SetHeader, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__SetHeader, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":1524
 * #                             Set Header utility function
 * #  --------------------------------------------------------------------------
 * def gdskey(key):             # <<<<<<<<<<<<<<
 *    try:
 *       if type(key) is types.StringType:
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_49gdskey, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gdskey, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1539
 * #  --------------------------------------------------------------------------
 * cdef float blankpixel_c
 * setfblank_c(&blankpixel_c)             # <<<<<<<<<<<<<<
 * blankpixel = blankpixel_c
 * 
 */
  setfblank_c((&__pyx_v_5gipsy_blankpixel_c));

  /* "gipsy.pyx":1540
 * cdef float blankpixel_c
 * setfblank_c(&blankpixel_c)
 * blankpixel = blankpixel_c             # <<<<<<<<<<<<<<
 * 
 * #  detect alternative header
 */
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_5gipsy_blankpixel_c); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__blankpixel, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1544
 * #  detect alternative header
 * #
 * def __alter_wcs(header):             # <<<<<<<<<<<<<<
 *    result = []
 *    for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_50__alter_wcs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____alter_wcs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1556
 * #  translate alternative to standard header element
 * #
 * def __subst_key_wcs(header, key, a):             # <<<<<<<<<<<<<<
 *    try:
 *       del header[key]
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_51__subst_key_wcs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____subst_key_wcs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1568
 * #  transform alternative to standard header
 * #
 * def __substitute_wcs(header, a):             # <<<<<<<<<<<<<<
 *    a = a[0].upper()
 *    if a==' ':
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_52__substitute_wcs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____substitute_wcs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":1596
 * 
 * 
 * class Set(object):             # <<<<<<<<<<<<<<
 * 
 * # GDS Set Class.
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "gipsy.pyx":1634
 * # but this will only be done when there is an explicit need for it.
 * 
 *    max_cword = 2**31-1 # maximum coordinate word             # <<<<<<<<<<<<<<
 * 
 *    handles   = {}    #  dictionary of set handles -> (image, reference count)
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__max_cword, __pyx_int_2147483647) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1636
 *    max_cword = 2**31-1 # maximum coordinate word
 * 
 *    handles   = {}    #  dictionary of set handles -> (image, reference count)             # <<<<<<<<<<<<<<
 *    fitsfiles = {}    #  dictionary of FITS files -> (hdulist, reference count)
 *    fitsseqno = 0     #  FITS file sequence number for pseudo set name
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__handles, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

  /* "gipsy.pyx":1637
 * 
 *    handles   = {}    #  dictionary of set handles -> (image, reference count)
 *    fitsfiles = {}    #  dictionary of FITS files -> (hdulist, reference count)             # <<<<<<<<<<<<<<
 *    fitsseqno = 0     #  FITS file sequence number for pseudo set name
 * 
 */
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__fitsfiles, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;

  /* "gipsy.pyx":1638
 *    handles   = {}    #  dictionary of set handles -> (image, reference count)
 *    fitsfiles = {}    #  dictionary of FITS files -> (hdulist, reference count)
 *    fitsseqno = 0     #  FITS file sequence number for pseudo set name             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self, setspec, create=False, write=False, gethdu=None,
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__fitsseqno, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "gipsy.pyx":1640
 *    fitsseqno = 0     #  FITS file sequence number for pseudo set name
 * 
 *    def __init__(self, setspec, create=False, write=False, gethdu=None,             # <<<<<<<<<<<<<<
 *                       getalt=None):
 * 
 */
  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_107 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_108 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1826
 *       self.header = SetHeader(self)
 * 
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       if self.open:
 *          try:
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_1__del__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____del__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1834
 * 
 * # Programmed attributes:
 *    def __getattr__(self, name):             # <<<<<<<<<<<<<<
 *       cdef fint err_c
 * 
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_2__getattr__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____getattr__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1900
 *          raise AttributeError("No attribute %s" % name)
 * 
 *    def __str__(self):             # <<<<<<<<<<<<<<
 *       return "GDS set %s, open= %s" % (self.name, str(self.open))
 * 
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_3__str__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____str__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1903
 *       return "GDS set %s, open= %s" % (self.name, str(self.open))
 * 
 *    def __repr__(self):             # <<<<<<<<<<<<<<
 *       return "Set(\"%s\")" % self.spec
 * 
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_4__repr__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____repr__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1906
 *       return "Set(\"%s\")" % self.spec
 * 
 *    def __getitem__(self, key):             # <<<<<<<<<<<<<<
 * 
 * # Obtain header or column data using the indexing and slicing syntax.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_5__getitem__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____getitem__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1950
 *          raise GipsyError("error using indexing operator")
 * 
 *    def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 * 
 * # Write header or column data using the indexing and slicing syntax.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_6__setitem__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____setitem__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1999
 *          raise GipsyError("error using indexing operator")
 * 
 *    def __delitem__(self, key):             # <<<<<<<<<<<<<<
 * 
 * # Delete header item. Examples:
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_7__delitem__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____delitem__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2013
 *          raise GdsError(-1, "error deleting header item")
 * 
 *    def __wcheck(self):             # <<<<<<<<<<<<<<
 *       if not self.wmode:
 *          raise GdsError(-1, "set opened read-only")
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_8__wcheck, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____wcheck, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2017
 *          raise GdsError(-1, "set opened read-only")
 * 
 *    def update(self):             # <<<<<<<<<<<<<<
 *       "Flush image data to set"
 *       if self.wmode:
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_9update, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__update, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2028
 *          raise GdsError(-1, "set %s opened read-only" % self.name)
 * 
 *    def has_key(self, key):             # <<<<<<<<<<<<<<
 *       return key in self
 * 
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_10has_key, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__has_key, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2031
 *       return key in self
 * 
 *    def __contains__(self, key):             # <<<<<<<<<<<<<<
 *       try:
 *          self[key]
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_11__contains__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____contains__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2038
 *          return False
 * 
 *    def keys(self, level=0):             # <<<<<<<<<<<<<<
 *       cdef fint level_c, index_c=0, err_c=0
 *       cdef fint *levptr_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_12keys, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__keys, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2064
 *       return result
 * 
 *    def items(self, level=0):             # <<<<<<<<<<<<<<
 *       result = []
 *       for key in self.keys(level):
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_13items, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__items, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2073
 *       return result
 * 
 *    def read(self, key, fint level_c=0):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0
 *       cdef long data_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_14read, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__read, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2090
 *       return result
 * 
 *    def write(self, key, fint level_c, buffer):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0, size_c
 *       cdef long data_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_15write, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__write, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2103
 *          raiseGds(err_c)
 * 
 *    def close(self):             # <<<<<<<<<<<<<<
 *       "Close set"
 *       cdef fint err_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_16close, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__close, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2139
 *       self.open = False
 * 
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       "Delete set. See gds_delete.dc2"
 *       cdef fint err_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_17delete, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__delete, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2150
 *          raiseGds(err_c)
 * 
 *    def copy(self, outset):             # <<<<<<<<<<<<<<
 * 
 * # Make a copy of the current set. Subset and -box specifications
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_18copy, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__copy, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2164
 *       return Set(newspec, write=True)
 * 
 *    def extend(self, axname, origin, size):             # <<<<<<<<<<<<<<
 *       "Add or extend axis. See gds_extend.dc2"
 *       cdef double origin_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_19extend, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__extend, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2182
 *          raiseGds(err_c)
 * 
 *    def axnum(self, axname):             # <<<<<<<<<<<<<<
 * 
 * # Get number of an axis given the name.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_20axnum, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__axnum, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2195
 *       return result-1
 * 
 *    def axname(self, axnum):             # <<<<<<<<<<<<<<
 * 
 * # Get name of an axis given the axis number.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_21axname, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__axname, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2215
 *       return result
 * 
 *    def axorigin(self, axnum):             # <<<<<<<<<<<<<<
 * 
 * # Get the origin of axis number axnum.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_22axorigin, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__axorigin, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2229
 *       return result
 * 
 *    def axsize(self, axnum):             # <<<<<<<<<<<<<<
 * 
 * # Get the length of axis number axnum.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_23axsize, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__axsize, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2243
 *       return result
 * 
 *    def range(self, subset):             # <<<<<<<<<<<<<<
 * #
 * # Get the range (as a 2-tuple) of a subset given as a coordinate word.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_24range, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__range, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2256
 *       return (low_c, upp_c)
 * 
 *    def grid(self, axnum, cword):             # <<<<<<<<<<<<<<
 * 
 * # Extract a grid value from a coordinate word.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_25grid, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__grid, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2272
 *       return result
 * 
 *    def grids(self, cword):             # <<<<<<<<<<<<<<
 *       "Extract all grid values from a coordinate word."
 *       result = []
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_26grids, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__grids, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2279
 *       return result
 * 
 *    def word(self, grids, cword=0, axnum=None):             # <<<<<<<<<<<<<<
 *       cdef fint cword_c=cword, grid_c, axnum_c, err_c=0
 *       if axnum is None:
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_27word, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__word, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2299
 *       return cword_c
 * 
 *    def ndims(self, level=0, subset=False):             # <<<<<<<<<<<<<<
 * 
 * # Obtain the dimensionality of a coordinate word.
 */
  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_154 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_28ndims, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__ndims, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2313
 *       return gdsc_ndims_c(tofchar(self.handle), &level_c)
 * 
 *    def type(self, name, level=0):             # <<<<<<<<<<<<<<
 * 
 * # Obtain FITS descriptor item type.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_29type, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__type, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2332
 *       return result.rstrip()
 * 
 *    def __rhead(self, name, level=0):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fchar handle_c, name_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_30__rhead, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____rhead, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2380
 *       return result
 * 
 *    def __whead(self, name, level, value, kind=""):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fchar handle_c, name_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_31__whead, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____whead, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2450
 *          raiseGds(err_c)
 * 
 *    def __delhead(self, name, level=0):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fint level_c, err_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_32__delhead, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____delhead, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2461
 *          raiseGds(err_c)
 * 
 *    def tablis(self, nitems=100):             # <<<<<<<<<<<<<<
 *       "Get all tables in a set. Returns a list with tuples (name, level)"
 *       cdef fint nitems_c=nitems, err_c=0, nfound_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_33tablis, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__tablis, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2485
 *       return result
 * 
 *    def tabinq(self, tname, subset=0, nitems=100):             # <<<<<<<<<<<<<<
 *       "Get the column names in a table. See gdsa_tabinq.dc2"
 *       cdef fint subset_c, nitems_c, err_c, nfound_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_34tabinq, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__tabinq, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2508
 *       return result
 * 
 *    def crecol(self, tname, cname, ctype, subset=0, colcomm=" ", cunits=" "):             # <<<<<<<<<<<<<<
 *       "Create a table column. See gdsa_crecol.dc2"
 *       cdef fint err_c, subset_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_35crecol, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__crecol, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2520
 *          raiseGds(err_c)
 * 
 *    def delcol(self, tname, cname, subset=0):             # <<<<<<<<<<<<<<
 *       "Delete a table column. See gdsa_delcol.dc2"
 *       cdef fint err_c, subset_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_36delcol, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__delcol, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2531
 *          raiseGds(err_c)                         # also when column is empty!
 * 
 *    def colinq(self, tname, cname, level=0):             # <<<<<<<<<<<<<<
 * 
 * # Give information about a column in a table.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_37colinq, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__colinq, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2562
 *       return (ctype, colcomm, cunits, nrows_c)
 * 
 *    def __rcol(self, tname, cname, subset=0, item=0, nitems=None):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fint err_c, subset_c, item1_c, nitems_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_38__rcol, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____rcol, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2625
 *       return result
 * 
 *    def __wcol(self, tname, cname, data, subset=0, item=-1, nitems=None):             # <<<<<<<<<<<<<<
 *       "(internal method)"
 *       cdef fint err_c, subset_c, item_c, nitems_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_39__wcol, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____wcol, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2680
 *          raiseGds(err_c)
 * 
 *    def deltab(self, tname, fint subset_c=0):             # <<<<<<<<<<<<<<
 *       "Delete a table. See gdsa_deltab.dc2"
 *       cdef fint err_c
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_40deltab, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__deltab, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2689
 *          raiseGds(err_c)
 * 
 *    def subimage(self, level, box=True):             # <<<<<<<<<<<<<<
 * 
 * # Obtain a numpy sub-array corresponding
 */
  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_k_169 = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_41subimage, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__subimage, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2715
 *       return result
 * 
 *    def axperm(self, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Obtain a list with the axis permutations of the set, subset
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_42axperm, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__axperm, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2763
 *       return result
 * 
 *    def tophys(self, grids=None, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Coordinate transformation. See method cotrans().
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_43tophys, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__tophys, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2770
 *       return self.cotrans(1, grids, level, mode)
 * 
 *    def togrid(self, phys=None, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Coordinate transformation. See method cotrans().
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_44togrid, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__togrid, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2777
 *       return self.cotrans(0, phys, level, mode)
 * 
 *    def cotrans(self, direction, coords=None, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Coordinate transformation. See cotrans.dc2.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_45cotrans, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__cotrans, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2842
 *       return result
 * 
 *    def setbox(self, boxspec):             # <<<<<<<<<<<<<<
 * 
 * # Apply a box specification string.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_46setbox, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setbox, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2900
 *       self.boxspec = boxspec
 * 
 *    def wminmax(self, level=0):             # <<<<<<<<<<<<<<
 * 
 * # Update the subset's DATAMIN, DATAMAX and NBLANK.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_47wminmax, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__wminmax, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2911
 *       self[level, 'NBLANK']  = mnmx[2]
 * 
 *    def whistory(self, history=''):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_48whistory, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__whistory, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2922
 *          raiseGds(err_c)
 * 
 *    def wcomment(self, comment):             # <<<<<<<<<<<<<<
 *       cdef fint err_c=0, level_c=0
 *       self.__wcheck()
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_49wcomment, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__wcomment, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":2931
 * 
 * 
 *    def axes(self, level=0, mode=''):             # <<<<<<<<<<<<<<
 * 
 * # Obtain a list of Axis objects.
 */
  __pyx_t_6 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_3Set_50axes, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__axes, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "gipsy.pyx":1596
 * 
 * 
 * class Set(object):             # <<<<<<<<<<<<<<
 * 
 * # GDS Set Class.
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_5), __pyx_n_s__Set, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Set, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":2984
 * #  --------------------------------------------------------------------------
 * 
 * def getsas(setspec):             # <<<<<<<<<<<<<<
 * 
 * # Obtain set, subset information, given a string.
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_53getsas, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__getsas, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3024
 * #                              GDS Axis Class
 * #  --------------------------------------------------------------------------
 * class Axis(object):             # <<<<<<<<<<<<<<
 * 
 * # GDS Axis Class.
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "gipsy.pyx":3058
 * # to be raised.
 * 
 *    __axtypes = {             # <<<<<<<<<<<<<<
 *        0: "unknown type of axis",
 *        1: "spatial axis longitude",
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_0, ((PyObject *)__pyx_kp_s_250)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_1, ((PyObject *)__pyx_kp_s_251)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_2, ((PyObject *)__pyx_kp_s_252)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_3, ((PyObject *)__pyx_kp_s_253)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_4, ((PyObject *)__pyx_kp_s_254)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_5, ((PyObject *)__pyx_kp_s_255)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_6, ((PyObject *)__pyx_kp_s_256)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_7, ((PyObject *)__pyx_kp_s_257)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_8, ((PyObject *)__pyx_kp_s_258)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_9, ((PyObject *)__pyx_kp_s_259)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_10, ((PyObject *)__pyx_kp_s_260)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_11, ((PyObject *)__pyx_kp_s_261)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_12, ((PyObject *)__pyx_kp_s_262)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_13, ((PyObject *)__pyx_kp_s_263)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, __pyx_int_14, ((PyObject *)__pyx_kp_s_264)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____axtypes, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3058; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":3082
 *        (3, "ecliptic"),
 *        (4, "supergalactic"),
 *        None             # <<<<<<<<<<<<<<
 *    ]
 *    __prosystems = [
 */
  __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_265));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_k_tuple_265));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_265));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_266));
  PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_k_tuple_266));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_266));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_267));
  PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_k_tuple_267));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_267));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_268));
  PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_k_tuple_268));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_268));
  __Pyx_INCREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 5, Py_None);
  __Pyx_GIVEREF(Py_None);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____skysystems, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":3096
 *       (9, "stereographic"),
 *      (10, "Mercator projection"),
 *       None             # <<<<<<<<<<<<<<
 *    ]
 *    __velsystems = [
 */
  __pyx_t_1 = PyList_New(12); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_270));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_k_tuple_270));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_270));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_272));
  PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_k_tuple_272));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_272));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_273));
  PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_k_tuple_273));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_273));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_274));
  PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_k_tuple_274));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_274));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_275));
  PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_k_tuple_275));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_275));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_276));
  PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_k_tuple_276));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_276));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_278));
  PyList_SET_ITEM(__pyx_t_1, 7, ((PyObject *)__pyx_k_tuple_278));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_278));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_280));
  PyList_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_k_tuple_280));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_280));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_281));
  PyList_SET_ITEM(__pyx_t_1, 9, ((PyObject *)__pyx_k_tuple_281));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_281));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_283));
  PyList_SET_ITEM(__pyx_t_1, 10, ((PyObject *)__pyx_k_tuple_283));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_283));
  __Pyx_INCREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 11, Py_None);
  __Pyx_GIVEREF(Py_None);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____prosystems, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":3103
 *       (1, "optical"),
 *       (2, "radio"),
 *       None             # <<<<<<<<<<<<<<
 *    ]
 * 
 */
  __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_285));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_k_tuple_285));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_285));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_286));
  PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_k_tuple_286));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_286));
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_287));
  PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_k_tuple_287));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_287));
  __Pyx_INCREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 4, Py_None);
  __Pyx_GIVEREF(Py_None);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____velsystems, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  /* "gipsy.pyx":3106
 *    ]
 * 
 *    def __init__(self, set, axnum, subset=0, any=False):             # <<<<<<<<<<<<<<
 *       self.set    = set
 *       self.axnum  = axnum
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_197 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_4Axis___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3112
 *       self.any    = any
 * 
 *    def __getattr__(self, key):             # <<<<<<<<<<<<<<
 *       if key=='name':
 *          self.__dict__[key] = self.ctype.split('-')[0]
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_4Axis_1__getattr__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____getattr__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3156
 *       return self.__dict__[key]
 * 
 *    def __axtype(self):             # <<<<<<<<<<<<<<
 *       cdef fint skysys_c, prosys_c, velsys_c
 *       cunit  = '          '
 */
  __pyx_t_1 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_4Axis_2__axtype, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____axtype, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "gipsy.pyx":3024
 * #                              GDS Axis Class
 * #  --------------------------------------------------------------------------
 * class Axis(object):             # <<<<<<<<<<<<<<
 * 
 * # GDS Axis Class.
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s__Axis, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Axis, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":3176
 * #  as lambda functions are not (yet?) available, define these functions:
 * #
 * def qtlink_gettext(key):             # <<<<<<<<<<<<<<
 *    return usertext(key, default=1, defval='')
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_54qtlink_gettext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qtlink_gettext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3179
 *    return usertext(key, default=1, defval='')
 * 
 * def qtlink_getlog(key):             # <<<<<<<<<<<<<<
 *    return userlog(key, default=1, defval=False)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_55qtlink_getlog, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qtlink_getlog, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3182
 *    return userlog(key, default=1, defval=False)
 * 
 * def qlink_buttontext(widget):             # <<<<<<<<<<<<<<
 *    return ['N','Y'][QtGui.QAbstractButton.isChecked(widget)]
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_56qlink_buttontext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qlink_buttontext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3185
 *    return ['N','Y'][QtGui.QAbstractButton.isChecked(widget)]
 * 
 * def qtlink_spinboxtext(widget):             # <<<<<<<<<<<<<<
 *    return str(QtGui.QSpinBox.value(widget))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_57qtlink_spinboxtext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qtlink_spinboxtext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3188
 *    return str(QtGui.QSpinBox.value(widget))
 * 
 * def qtlink_dspinboxtext(widget):             # <<<<<<<<<<<<<<
 *    return str(QtGui.QDoubleSpinBox.value(widget))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_58qtlink_dspinboxtext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qtlink_dspinboxtext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3191
 *    return str(QtGui.QDoubleSpinBox.value(widget))
 * 
 * def qtlink_slidertext(widget):             # <<<<<<<<<<<<<<
 *    return str(QtGui.QAbstractSlider.value(widget))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_59qtlink_slidertext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qtlink_slidertext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "gipsy.pyx":3194
 *    return str(QtGui.QAbstractSlider.value(widget))
 * 
 * class QtLink(object):             # <<<<<<<<<<<<<<
 * 
 *    if has_pyqt4:
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "gipsy.pyx":3196
 * class QtLink(object):
 * 
 *    if has_pyqt4:             # <<<<<<<<<<<<<<
 *       protocols = [
 *                  ( QtGui.QLineEdit,              # widget's class
 */
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_pyqt4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_8) {

    /* "gipsy.pyx":3198
 *    if has_pyqt4:
 *       protocols = [
 *                  ( QtGui.QLineEdit,              # widget's class             # <<<<<<<<<<<<<<
 *                    'editingFinished()',          # widget's input ready signal
 *                    qtlink_gettext,               # keyword get value function
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__QLineEdit); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "gipsy.pyx":3200
 *                  ( QtGui.QLineEdit,              # widget's class
 *                    'editingFinished()',          # widget's input ready signal
 *                    qtlink_gettext,               # keyword get value function             # <<<<<<<<<<<<<<
 *                    QtGui.QLineEdit.setText,      # widget's set value method
 *                    QtGui.QLineEdit.text          # widget's get value method
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_gettext); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "gipsy.pyx":3201
 *                    'editingFinished()',          # widget's input ready signal
 *                    qtlink_gettext,               # keyword get value function
 *                    QtGui.QLineEdit.setText,      # widget's set value method             # <<<<<<<<<<<<<<
 *                    QtGui.QLineEdit.text          # widget's get value method
 *                  ),
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__QLineEdit); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__setText); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "gipsy.pyx":3202
 *                    qtlink_gettext,               # keyword get value function
 *                    QtGui.QLineEdit.setText,      # widget's set value method
 *                    QtGui.QLineEdit.text          # widget's get value method             # <<<<<<<<<<<<<<
 *                  ),
 *                  ( QtGui.QAbstractButton,
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__QLineEdit); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__text); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyTuple_New(5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_10));
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_288));
    PyTuple_SET_ITEM(__pyx_t_10, 1, ((PyObject *)__pyx_kp_s_288));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_288));
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;

    /* "gipsy.pyx":3204
 *                    QtGui.QLineEdit.text          # widget's get value method
 *                  ),
 *                  ( QtGui.QAbstractButton,             # <<<<<<<<<<<<<<
 *                    'toggled(bool)',
 *                    qtlink_getlog,
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__QAbstractButton); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "gipsy.pyx":3206
 *                  ( QtGui.QAbstractButton,
 *                    'toggled(bool)',
 *                    qtlink_getlog,             # <<<<<<<<<<<<<<
 *                    QtGui.QAbstractButton.setChecked,
 *                    qlink_buttontext
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_getlog); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);

    /* "gipsy.pyx":3207
 *                    'toggled(bool)',
 *                    qtlink_getlog,
 *                    QtGui.QAbstractButton.setChecked,             # <<<<<<<<<<<<<<
 *                    qlink_buttontext
 *                  ),
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__QAbstractButton); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__setChecked); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":3209
 *                    QtGui.QAbstractButton.setChecked,
 *                    qlink_buttontext
 *                  ),             # <<<<<<<<<<<<<<
 *                  ( QtGui.QSpinBox,
 *                    'valueChanged(int)',
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__qlink_buttontext); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = PyTuple_New(5); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_11));
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_289));
    PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)__pyx_kp_s_289));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_289));
    PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_11, 4, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;
    __pyx_t_6 = 0;
    __pyx_t_1 = 0;

    /* "gipsy.pyx":3210
 *                    qlink_buttontext
 *                  ),
 *                  ( QtGui.QSpinBox,             # <<<<<<<<<<<<<<
 *                    'valueChanged(int)',
 *                    userint,
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QSpinBox); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":3212
 *                  ( QtGui.QSpinBox,
 *                    'valueChanged(int)',
 *                    userint,             # <<<<<<<<<<<<<<
 *                    QtGui.QSpinBox.setValue,
 *                    qtlink_spinboxtext
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__userint); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "gipsy.pyx":3213
 *                    'valueChanged(int)',
 *                    userint,
 *                    QtGui.QSpinBox.setValue,             # <<<<<<<<<<<<<<
 *                    qtlink_spinboxtext
 *                  ),
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__QSpinBox); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__setValue); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "gipsy.pyx":3215
 *                    QtGui.QSpinBox.setValue,
 *                    qtlink_spinboxtext
 *                  ),             # <<<<<<<<<<<<<<
 *                  ( QtGui.QDoubleSpinBox,
 *                    'valueChanged(double)',
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_spinboxtext); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = PyTuple_New(5); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_12));
    PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_290));
    PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)__pyx_kp_s_290));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_290));
    PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_12, 4, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_6 = 0;
    __pyx_t_1 = 0;
    __pyx_t_9 = 0;
    __pyx_t_7 = 0;

    /* "gipsy.pyx":3216
 *                    qtlink_spinboxtext
 *                  ),
 *                  ( QtGui.QDoubleSpinBox,             # <<<<<<<<<<<<<<
 *                    'valueChanged(double)',
 *                    userdble,
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__QDoubleSpinBox); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "gipsy.pyx":3218
 *                  ( QtGui.QDoubleSpinBox,
 *                    'valueChanged(double)',
 *                    userdble,             # <<<<<<<<<<<<<<
 *                    QtGui.QDoubleSpinBox.setValue,
 *                    qtlink_dspinboxtext
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__userdble); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);

    /* "gipsy.pyx":3219
 *                    'valueChanged(double)',
 *                    userdble,
 *                    QtGui.QDoubleSpinBox.setValue,             # <<<<<<<<<<<<<<
 *                    qtlink_dspinboxtext
 *                  ),
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__QDoubleSpinBox); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__setValue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "gipsy.pyx":3221
 *                    QtGui.QDoubleSpinBox.setValue,
 *                    qtlink_dspinboxtext
 *                  ),             # <<<<<<<<<<<<<<
 *                  ( QtGui.QAbstractSlider,
 *                    'valueChanged(int)',
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_dspinboxtext); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PyTuple_New(5); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_13));
    PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_291));
    PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)__pyx_kp_s_291));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_291));
    PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_13, 3, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_13, 4, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_9 = 0;
    __pyx_t_7 = 0;
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;

    /* "gipsy.pyx":3222
 *                    qtlink_dspinboxtext
 *                  ),
 *                  ( QtGui.QAbstractSlider,             # <<<<<<<<<<<<<<
 *                    'valueChanged(int)',
 *                    userint,
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__QAbstractSlider); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "gipsy.pyx":3224
 *                  ( QtGui.QAbstractSlider,
 *                    'valueChanged(int)',
 *                    userint,             # <<<<<<<<<<<<<<
 *                    QtGui.QAbstractSlider.setValue,
 *                    qtlink_slidertext
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__userint); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "gipsy.pyx":3225
 *                    'valueChanged(int)',
 *                    userint,
 *                    QtGui.QAbstractSlider.setValue,             # <<<<<<<<<<<<<<
 *                    qtlink_slidertext
 *                  ),
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__QAbstractSlider); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__setValue); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "gipsy.pyx":3227
 *                    QtGui.QAbstractSlider.setValue,
 *                    qtlink_slidertext
 *                  ),             # <<<<<<<<<<<<<<
 *                  ( QtGui.QLabel,
 *                    'None',
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_slidertext); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_14 = PyTuple_New(5); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_14));
    PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_290));
    PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_kp_s_290));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_290));
    PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;

    /* "gipsy.pyx":3228
 *                    qtlink_slidertext
 *                  ),
 *                  ( QtGui.QLabel,             # <<<<<<<<<<<<<<
 *                    'None',
 *                    qtlink_gettext,
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__QLabel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "gipsy.pyx":3230
 *                  ( QtGui.QLabel,
 *                    'None',
 *                    qtlink_gettext,             # <<<<<<<<<<<<<<
 *                    QtGui.QLabel.setText,
 *                    None
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_gettext); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);

    /* "gipsy.pyx":3231
 *                    'None',
 *                    qtlink_gettext,
 *                    QtGui.QLabel.setText,             # <<<<<<<<<<<<<<
 *                    None
 *                  ),
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__QLabel); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__setText); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "gipsy.pyx":3232
 *                    qtlink_gettext,
 *                    QtGui.QLabel.setText,
 *                    None             # <<<<<<<<<<<<<<
 *                  ),
 *                  ( QtGui.QComboBox,
 */
    __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)__pyx_n_s__None));
    PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__None));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__None));
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 4, Py_None);
    __Pyx_GIVEREF(Py_None);
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;
    __pyx_t_6 = 0;

    /* "gipsy.pyx":3234
 *                    None
 *                  ),
 *                  ( QtGui.QComboBox,             # <<<<<<<<<<<<<<
 *                    'activated(int)',
 *                    qtlink_gettext,
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__QComboBox); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "gipsy.pyx":3236
 *                  ( QtGui.QComboBox,
 *                    'activated(int)',
 *                    qtlink_gettext,             # <<<<<<<<<<<<<<
 *                    QtGui.QComboBox.setEditText,
 *                    QtGui.QComboBox.currentText
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__qtlink_gettext); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);

    /* "gipsy.pyx":3237
 *                    'activated(int)',
 *                    qtlink_gettext,
 *                    QtGui.QComboBox.setEditText,             # <<<<<<<<<<<<<<
 *                    QtGui.QComboBox.currentText
 *                  )
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_15 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__QComboBox); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_15, __pyx_n_s__setEditText); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

    /* "gipsy.pyx":3238
 *                    qtlink_gettext,
 *                    QtGui.QComboBox.setEditText,
 *                    QtGui.QComboBox.currentText             # <<<<<<<<<<<<<<
 *                  )
 *                   ]
 */
    __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_16 = PyObject_GetAttr(__pyx_t_15, __pyx_n_s__QComboBox); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __pyx_t_15 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__currentText); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_16 = PyTuple_New(5); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_16));
    PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_86));
    PyTuple_SET_ITEM(__pyx_t_16, 1, ((PyObject *)__pyx_kp_s_86));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_86));
    PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_16, 3, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_16, 4, __pyx_t_15);
    __Pyx_GIVEREF(__pyx_t_15);
    __pyx_t_9 = 0;
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_15 = 0;
    __pyx_t_15 = PyList_New(7); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_15));
    PyList_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_t_10));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_10));
    PyList_SET_ITEM(__pyx_t_15, 1, ((PyObject *)__pyx_t_11));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
    PyList_SET_ITEM(__pyx_t_15, 2, ((PyObject *)__pyx_t_12));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_12));
    PyList_SET_ITEM(__pyx_t_15, 3, ((PyObject *)__pyx_t_13));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_13));
    PyList_SET_ITEM(__pyx_t_15, 4, ((PyObject *)__pyx_t_14));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_14));
    PyList_SET_ITEM(__pyx_t_15, 5, ((PyObject *)__pyx_t_1));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
    PyList_SET_ITEM(__pyx_t_15, 6, ((PyObject *)__pyx_t_16));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_16));
    __pyx_t_10 = 0;
    __pyx_t_11 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_14 = 0;
    __pyx_t_1 = 0;
    __pyx_t_16 = 0;
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__protocols, ((PyObject *)__pyx_t_15)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
    goto __pyx_L45;
  }
  __pyx_L45:;

  /* "gipsy.pyx":3244
 *    def __init__(self, key, widget,
 *                       signal=None, keyval=None, widgetval=None, setval=None,
 *                       compare=True):             # <<<<<<<<<<<<<<
 *       if not has_pyqt4:
 *          raise GipsyError("Cannot connect to PyQt4")
 */
  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_k_211 = __pyx_t_15;
  __Pyx_GIVEREF(__pyx_t_15);
  __pyx_t_15 = 0;

  /* "gipsy.pyx":3242
 *                   ]
 * 
 *    def __init__(self, key, widget,             # <<<<<<<<<<<<<<
 *                       signal=None, keyval=None, widgetval=None, setval=None,
 *                       compare=True):
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6QtLink___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "gipsy.pyx":3281
 *       widget.connect(widget, QtCore.SIGNAL(self.w_signal), self.sig_handler)
 * 
 *    def close(self):             # <<<<<<<<<<<<<<
 *       if self.keyproc:
 *          self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6QtLink_1close, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__close, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "gipsy.pyx":3291
 *          self.rejproc = None
 * 
 *    def __del__(self):             # <<<<<<<<<<<<<<
 *       self.close()
 * 
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6QtLink_2__del__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____del__, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "gipsy.pyx":3294
 *       self.close()
 * 
 *    def key_read(self, cbobj):             # <<<<<<<<<<<<<<
 *       if self.block:
 *          self.block = False
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6QtLink_3key_read, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__key_read, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "gipsy.pyx":3301
 *          self.w_setval(self.widget, self.k_getval(cbobj.key))
 * 
 *    def key_reject(self, cbobj):             # <<<<<<<<<<<<<<
 *       QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')
 * 
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6QtLink_4key_reject, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__key_reject, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "gipsy.pyx":3304
 *       QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')
 * 
 *    def sig_handler(self):             # <<<<<<<<<<<<<<
 *       newval = str(self.w_getval(self.widget))
 *       if (not self.compare) or (newval!=self.curval):
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6QtLink_5sig_handler, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__sig_handler, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "gipsy.pyx":3194
 *    return str(QtGui.QAbstractSlider.value(widget))
 * 
 * class QtLink(object):             # <<<<<<<<<<<<<<
 * 
 *    if has_pyqt4:
 */
  __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_15));
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_15), ((PyObject *)__pyx_t_5), __pyx_n_s__QtLink, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__QtLink, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "gipsy.pyx":3311
 *          self.block = True
 * 
 * if has_pyqt4:             # <<<<<<<<<<<<<<
 * 
 *    class QtMessage(QtGui.QWidget):
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__has_pyqt4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_8) {

    /* "gipsy.pyx":3313
 * if has_pyqt4:
 * 
 *    class QtMessage(QtGui.QWidget):             # <<<<<<<<<<<<<<
 *       def __init__(self, parent, message, delay=3.0, fgcolor='red',
 *                    bgcolor='white'):
 */
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));

    /* "gipsy.pyx":3314
 * 
 *    class QtMessage(QtGui.QWidget):
 *       def __init__(self, parent, message, delay=3.0, fgcolor='red',             # <<<<<<<<<<<<<<
 *                    bgcolor='white'):
 *          QtGui.QWidget.__init__(self, parent)
 */
    __pyx_t_16 = PyFloat_FromDouble(3.0); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_k_217 = __pyx_t_16;
    __Pyx_GIVEREF(__pyx_t_16);
    __pyx_t_16 = 0;
    __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9QtMessage___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

    /* "gipsy.pyx":3313
 * if has_pyqt4:
 * 
 *    class QtMessage(QtGui.QWidget):             # <<<<<<<<<<<<<<
 *       def __init__(self, parent, message, delay=3.0, fgcolor='red',
 *                    bgcolor='white'):
 */
    __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__QWidget); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_16));
    PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15);
    __Pyx_GIVEREF(__pyx_t_15);
    __pyx_t_15 = 0;
    __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_16), ((PyObject *)__pyx_t_5), __pyx_n_s__QtMessage, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0;
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s__QtMessage, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    goto __pyx_L46;
  }
  __pyx_L46:;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":6
 * # From ggi.h
 * 
 * ggiButn1      =    1                        # mouse button 1     #             # <<<<<<<<<<<<<<
 * ggiButn2      =    2                        # mouse button 2     #
 * ggiButn3      =    4                        # mouse button 3     #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiButn1, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":7
 * 
 * ggiButn1      =    1                        # mouse button 1     #
 * ggiButn2      =    2                        # mouse button 2     #             # <<<<<<<<<<<<<<
 * ggiButn3      =    4                        # mouse button 3     #
 * ggiShift      =    8                        # shift key          #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiButn2, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":8
 * ggiButn1      =    1                        # mouse button 1     #
 * ggiButn2      =    2                        # mouse button 2     #
 * ggiButn3      =    4                        # mouse button 3     #             # <<<<<<<<<<<<<<
 * ggiShift      =    8                        # shift key          #
 * ggiCtrl       =   16                        # ctrl key           #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiButn3, __pyx_int_4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":9
 * ggiButn2      =    2                        # mouse button 2     #
 * ggiButn3      =    4                        # mouse button 3     #
 * ggiShift      =    8                        # shift key          #             # <<<<<<<<<<<<<<
 * ggiCtrl       =   16                        # ctrl key           #
 * ggiKeybd      =   32                        # other keyboard key #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiShift, __pyx_int_8) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":10
 * ggiButn3      =    4                        # mouse button 3     #
 * ggiShift      =    8                        # shift key          #
 * ggiCtrl       =   16                        # ctrl key           #             # <<<<<<<<<<<<<<
 * ggiKeybd      =   32                        # other keyboard key #
 * ggiLeftArrow  = 0xD1                        # left arrow         #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiCtrl, __pyx_int_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":11
 * ggiShift      =    8                        # shift key          #
 * ggiCtrl       =   16                        # ctrl key           #
 * ggiKeybd      =   32                        # other keyboard key #             # <<<<<<<<<<<<<<
 * ggiLeftArrow  = 0xD1                        # left arrow         #
 * ggiUpArrow    = 0xD2                        # up arrow           #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiKeybd, __pyx_int_32) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":12
 * ggiCtrl       =   16                        # ctrl key           #
 * ggiKeybd      =   32                        # other keyboard key #
 * ggiLeftArrow  = 0xD1                        # left arrow         #             # <<<<<<<<<<<<<<
 * ggiUpArrow    = 0xD2                        # up arrow           #
 * ggiRightArrow = 0xD3                        # right arrow        #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiLeftArrow, __pyx_int_209) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":13
 * ggiKeybd      =   32                        # other keyboard key #
 * ggiLeftArrow  = 0xD1                        # left arrow         #
 * ggiUpArrow    = 0xD2                        # up arrow           #             # <<<<<<<<<<<<<<
 * ggiRightArrow = 0xD3                        # right arrow        #
 * ggiDownArrow  = 0xD4                        # down arrow         #
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiUpArrow, __pyx_int_210) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":14
 * ggiLeftArrow  = 0xD1                        # left arrow         #
 * ggiUpArrow    = 0xD2                        # up arrow           #
 * ggiRightArrow = 0xD3                        # right arrow        #             # <<<<<<<<<<<<<<
 * ggiDownArrow  = 0xD4                        # down arrow         #
 * 
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiRightArrow, __pyx_int_211) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":15
 * ggiUpArrow    = 0xD2                        # up arrow           #
 * ggiRightArrow = 0xD3                        # right arrow        #
 * ggiDownArrow  = 0xD4                        # down arrow         #             # <<<<<<<<<<<<<<
 * 
 * ggiCreate    =  1
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiDownArrow, __pyx_int_212) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":17
 * ggiDownArrow  = 0xD4                        # down arrow         #
 * 
 * ggiCreate    =  1             # <<<<<<<<<<<<<<
 * ggiColind    =  2
 * ggiLimits    =  3
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiCreate, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":18
 * 
 * ggiCreate    =  1
 * ggiColind    =  2             # <<<<<<<<<<<<<<
 * ggiLimits    =  3
 * ggiUnits     =  4
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiColind, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":19
 * ggiCreate    =  1
 * ggiColind    =  2
 * ggiLimits    =  3             # <<<<<<<<<<<<<<
 * ggiUnits     =  4
 * ggiApply     =  5
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiLimits, __pyx_int_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":20
 * ggiColind    =  2
 * ggiLimits    =  3
 * ggiUnits     =  4             # <<<<<<<<<<<<<<
 * ggiApply     =  5
 * ggiDelete    =  6
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiUnits, __pyx_int_4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":21
 * ggiLimits    =  3
 * ggiUnits     =  4
 * ggiApply     =  5             # <<<<<<<<<<<<<<
 * ggiDelete    =  6
 * ggiIdent     =  7
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiApply, __pyx_int_5) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":22
 * ggiUnits     =  4
 * ggiApply     =  5
 * ggiDelete    =  6             # <<<<<<<<<<<<<<
 * ggiIdent     =  7
 * ggiNdims     =  8
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiDelete, __pyx_int_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":23
 * ggiApply     =  5
 * ggiDelete    =  6
 * ggiIdent     =  7             # <<<<<<<<<<<<<<
 * ggiNdims     =  8
 * ggiNowait    =  9
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiIdent, __pyx_int_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":24
 * ggiDelete    =  6
 * ggiIdent     =  7
 * ggiNdims     =  8             # <<<<<<<<<<<<<<
 * ggiNowait    =  9
 * ggiCloseOnOK = 10
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiNdims, __pyx_int_8) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":25
 * ggiIdent     =  7
 * ggiNdims     =  8
 * ggiNowait    =  9             # <<<<<<<<<<<<<<
 * ggiCloseOnOK = 10
 * ggiFileInfo  = 11
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiNowait, __pyx_int_9) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":26
 * ggiNdims     =  8
 * ggiNowait    =  9
 * ggiCloseOnOK = 10             # <<<<<<<<<<<<<<
 * ggiFileInfo  = 11
 * ggiGetMap    = 12
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiCloseOnOK, __pyx_int_10) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":27
 * ggiNowait    =  9
 * ggiCloseOnOK = 10
 * ggiFileInfo  = 11             # <<<<<<<<<<<<<<
 * ggiGetMap    = 12
 * ggiStart     = 13
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiFileInfo, __pyx_int_11) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":28
 * ggiCloseOnOK = 10
 * ggiFileInfo  = 11
 * ggiGetMap    = 12             # <<<<<<<<<<<<<<
 * ggiStart     = 13
 * ggiNext      = 14
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiGetMap, __pyx_int_12) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":29
 * ggiFileInfo  = 11
 * ggiGetMap    = 12
 * ggiStart     = 13             # <<<<<<<<<<<<<<
 * ggiNext      = 14
 * ggiStop      = 15
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiStart, __pyx_int_13) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":30
 * ggiGetMap    = 12
 * ggiStart     = 13
 * ggiNext      = 14             # <<<<<<<<<<<<<<
 * ggiStop      = 15
 * 
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiNext, __pyx_int_14) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":31
 * ggiStart     = 13
 * ggiNext      = 14
 * ggiStop      = 15             # <<<<<<<<<<<<<<
 * 
 * ggiReadOnly = 0
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiStop, __pyx_int_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":33
 * ggiStop      = 15
 * 
 * ggiReadOnly = 0             # <<<<<<<<<<<<<<
 * ggiEdit     = 1
 * ggiAppend   = 2
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiReadOnly, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":34
 * 
 * ggiReadOnly = 0
 * ggiEdit     = 1             # <<<<<<<<<<<<<<
 * ggiAppend   = 2
 * 
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiEdit, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":35
 * ggiReadOnly = 0
 * ggiEdit     = 1
 * ggiAppend   = 2             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ggiAppend, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":56
 * # a new element, are capitalized.
 * 
 * class _Element:             # <<<<<<<<<<<<<<
 * 
 * # Abstract class which is the root of all Ggi classes. It defines a number
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":67
 * #    container - element containing the current element
 * 
 *    def __getattr__(self, name):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element___getattr__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____getattr__, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":78
 *       else:
 *          raise AttributeError, "No attribute %s" % name
 *    def setPosition(self, xfrom, xid, yfrom, yid):             # <<<<<<<<<<<<<<
 * 
 * # Position an element relative to other elements
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_1setPosition, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setPosition, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":96
 *       GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))
 *       return self
 *    def setLabel(self, text, width=0):             # <<<<<<<<<<<<<<
 *       "Set an element's label: GgiSetLabel.dc2"
 *       GgiSetLabel(toident(self.hook), text, width)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_2setLabel, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setLabel, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":100
 *       GgiSetLabel(toident(self.hook), text, width)
 *       return self
 *    def alignLabel(self, alignment):             # <<<<<<<<<<<<<<
 *       "Set an element's label's alignment: GgiAlignLabel.dc2"
 *       GgiAlignLabel(toident(self.hook), alignment)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_3alignLabel, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__alignLabel, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":104
 *       GgiAlignLabel(toident(self.hook), alignment)
 *       return self
 *    def active(self, state):             # <<<<<<<<<<<<<<
 * 
 * # Activate (state=True) or deactivate (state=False) an element.
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_4active, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__active, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":114
 *          GgiDeactivate(toident(self.hook))
 *       return self
 *    def setKeyword(self, key):             # <<<<<<<<<<<<<<
 *       "Modify an element's user input keyword: GgiSetKeyword.dc2"
 *       GgiSetKeyword(toident(self.hook), key)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_5setKeyword, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setKeyword, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":118
 *       GgiSetKeyword(toident(self.hook), key)
 *       return self
 *    def helpText(self, message):             # <<<<<<<<<<<<<<
 *       "Modify the element's help text: GgiHelpText.dc2"
 *       GgiHelpText(toident(self.hook), message)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_6helpText, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__helpText, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":122
 *       GgiHelpText(toident(self.hook), message)
 *       return self
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_7delete, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__delete, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":128
 *       GgiDelete(&hook)
 *       del self.hook
 *    def openMpeg(self, filename):             # <<<<<<<<<<<<<<
 *       "Start recording an MPEG movie on this element"
 *       cdef ident hook
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_8openMpeg, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__openMpeg, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":138
 *       if GgiMpeg(hook, 13, filename_c):
 *          raise GgiError, "cannot open MPEG recorder"
 *    def recordMpeg(self):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_9recordMpeg, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__recordMpeg, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":144
 *       if GgiMpeg(hook, 14):
 *          raise GgiError, "cannot record MPEG frame"
 *    def closeMpeg(self):             # <<<<<<<<<<<<<<
 *       cdef ident hook
 *       hook = toident(self.hook)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_8_Element_10closeMpeg, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__closeMpeg, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":56
 * # a new element, are capitalized.
 * 
 * class _Element:             # <<<<<<<<<<<<<<
 * 
 * # Abstract class which is the root of all Ggi classes. It defines a number
 */
  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5), __pyx_n_s___Element, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Element, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":151
 *          raise GgiError, "cannot construct MPEG movie"
 * 
 * class _Container(_Element):             # <<<<<<<<<<<<<<
 * 
 * # Abstract class of elements which can contain other elements.
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":157
 * # the container can contain.
 * 
 *    def Logo(self):             # <<<<<<<<<<<<<<
 *       "Create the GIPSY logo element: GgiLogo.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_Logo, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Logo, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":164
 *       result.hook = <long>GgiLogo(NULL, 0, 0)
 *       return result
 *    def Label(self, text):             # <<<<<<<<<<<<<<
 *       "Create a Label element: GgiLabel.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_1Label, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Label, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":171
 *       result.hook = <long>GgiLabel(text)
 *       return result
 *    def Button(self, keyword, message):             # <<<<<<<<<<<<<<
 *       "Create a Button: GgiButton.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_2Button, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Button, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":179
 *       result.hook = <long>GgiButton(keyword, message)
 *       return result
 *    def TextField(self, keyword, message, size):             # <<<<<<<<<<<<<<
 *       "Create a Textfield: GgiTextField.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_3TextField, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__TextField, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":187
 *       result.hook = <long>GgiTextField(keyword, message, size)
 *       return result
 *    def Menu(self, keyword, message, labels):             # <<<<<<<<<<<<<<
 *       "Create a Menu: GgiMenu.dc2"
 *       result = _Menu()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_4Menu, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Menu, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":195
 *       result.hook = <long>GgiMenu(keyword, message, charlist(labels))
 *       return result
 *    def HelpMenu(self, keyword, label, message, labels, documents):             # <<<<<<<<<<<<<<
 *       "Create a Help Menu: GgiHelpMenu.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_5HelpMenu, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__HelpMenu, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":204
 *                                      charlist(labels), charlist(documents))
 *       return result
 *    def TextMenu(self, keyword, message, labels):             # <<<<<<<<<<<<<<
 *       "Create a Text Menu: GgiTextMenu.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_6TextMenu, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__TextMenu, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":212
 *       result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))
 *       return result
 *    def List(self, keyword, labels, defcol=1):             # <<<<<<<<<<<<<<
 *       "Create a List element: GgiList.dc2"
 *       result = _List()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_7List, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__List, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":219
 *       result.hook = <long>GgiList(keyword, defcol, charlist(labels))
 *       return result
 *    def Gauge(self, keyword, message, length, left, right):             # <<<<<<<<<<<<<<
 *       "Create a Gauge element: GgiGauge.dc2"
 *       result = _Analog()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_8Gauge, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Gauge, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":227
 *       result.hook = <long>GgiGauge(keyword, message, length, left, right)
 *       return result
 *    def Dial(self, keyword,             # <<<<<<<<<<<<<<
 *                   message,
 *                   radius,
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_9Dial, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Dial, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":255
 *                                    max_val )
 *       return result
 *    def Progress(self, keyword, message, length):             # <<<<<<<<<<<<<<
 *       "Create a Progress Bar: GgiProgress.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_10Progress, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Progress, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":263
 *       result.hook = <long>GgiProgress(keyword, message, length)
 *       return result
 *    def Form(self, name, border=0):             # <<<<<<<<<<<<<<
 *       "Create a Form element: GgiForm.dc2"
 *       result = _Container()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_11Form, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Form, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":270
 *       result.hook = <long>GgiForm(name, border)
 *       return result
 *    def Viewport(self, keyword, width, height):             # <<<<<<<<<<<<<<
 *       "Create a Viewport: GgiViewport.dc2"
 *       result = _Container()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_12Viewport, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Viewport, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":277
 *       result.hook = <long>GgiViewport(keyword, width, height)
 *       return result
 *    def ColorMenu(self, keyword, message):             # <<<<<<<<<<<<<<
 *       "Create a Color Menu: GgiColorMenu.dc2"
 *       result = _Element()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_13ColorMenu, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__ColorMenu, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":285
 *       result.hook = <long>GgiColorMenu(keyword, message)
 *       return result
 *    def PlotField(self, name, width, height):             # <<<<<<<<<<<<<<
 *       "Create a Plotfield: GgiPlotField.dc2"
 *       result = _PlotField()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_14PlotField, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__PlotField, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":293
 *       result.name = name
 *       return result
 *    def Editor(self, keyword, width, height, mode, contents, size):             # <<<<<<<<<<<<<<
 *       "Create a Text Editor: GgiEditor.dc2"
 *       result = _Editor()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_15Editor, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Editor, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":300
 *       result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)
 *       return result
 *    def ColorEditor(self, ci, nc, bl=0):             # <<<<<<<<<<<<<<
 *       "Create plot color editor: GgiPlotColorEditor.dc2"
 *       cdef int ci_c, nc_c, bl_c
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_16ColorEditor, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__ColorEditor, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":311
 *       result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)
 *       return result
 *    def VtkField(self, name, width, height):             # <<<<<<<<<<<<<<
 *       global _VtkField
 *       try:
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_Container_17VtkField, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__VtkField, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":151
 *          raise GgiError, "cannot construct MPEG movie"
 * 
 * class _Container(_Element):             # <<<<<<<<<<<<<<
 * 
 * # Abstract class of elements which can contain other elements.
 */
  __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_16));
  PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_16), ((PyObject *)__pyx_t_5), __pyx_n_s___Container, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Container, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":321
 *          return ggivtk.VtkField(self, name, width, height)
 * 
 * def dorealize(cb):             # <<<<<<<<<<<<<<
 *    cb.base.realize()
 *    cb.base.realized = True
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_60dorealize, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__dorealize, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":326
 *    cb.deschedule()
 * 
 * class GgiBase(_Container):             # <<<<<<<<<<<<<<
 * 
 * # Base container class. Creating a Base object causes Ggi to be
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":335
 * # It defines factory methods for a number of special element types.
 * 
 *    def __init__(self, display=None, resources=None):             # <<<<<<<<<<<<<<
 * 
 * #    display   - X11 display, e.g. 'kapteyn:0.0' (see GgiSetDisplay.dc2)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":354
 *       TimeCallback(dorealize, 0.0, base=self)
 *       GgiBase.base = self
 *    def realize(self):             # <<<<<<<<<<<<<<
 *       "Realize widgets created before"
 *       if not self.realized: GgiRealize()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_1realize, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__realize, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":357
 *       "Realize widgets created before"
 *       if not self.realized: GgiRealize()
 *    def handleEvents(self):             # <<<<<<<<<<<<<<
 *       "Handle pending events"
 *       return GgiHandleEvents()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_2handleEvents, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__handleEvents, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":360
 *       "Handle pending events"
 *       return GgiHandleEvents()
 *    def Shell(self, name):             # <<<<<<<<<<<<<<
 *       "Create Shell pop-up element: GgiShell.dc2"
 *       result = _Shell()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_3Shell, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Shell, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":365
 *       result.hook = <long>GgiShell(name)
 *       return result
 *    def Dialog(self, name):             # <<<<<<<<<<<<<<
 *       "Create Dialog element: GgiDialog.dc2"
 *       result = _Shell()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_4Dialog, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Dialog, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":370
 *       result.hook = <long>GgiDialog(name)
 *       return result
 *    def Prompter(self, keyword, message):             # <<<<<<<<<<<<<<
 *       "Create a Prompter element: GgiPrompter.dc2"
 *       result = _Prompter()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_5Prompter, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Prompter, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":375
 *       GgiPrompter(keyword, message)
 *       return result
 *    def PlotPrompter(self, filekeydir, devkey, message):             # <<<<<<<<<<<<<<
 *       "Create a Plot Prompter element: GgiPlotPrompter.dc2"
 *       result = _Prompter()
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_6PlotPrompter, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__PlotPrompter, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":380
 *       GgiPlotPrompter(filekeydir, devkey, message)
 *       return result
 *    def verify(self, message, truelabel, falselabel):             # <<<<<<<<<<<<<<
 *       "Ask the user a question: GgiVerify.dc2"
 *       return GgiVerify(message, truelabel, falselabel)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_7verify, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__verify, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":383
 *       "Ask the user a question: GgiVerify.dc2"
 *       return GgiVerify(message, truelabel, falselabel)
 *    def FileBrowser(self, key, message, converter=None):             # <<<<<<<<<<<<<<
 *       "File browser: GgiFileBrowser.dc2"
 *       global cvt_name, cvt_detail
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_8FileBrowser, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__FileBrowser, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":397
 *                                          cvt_name_c)
 *       return result
 *    def Inset(self, namekey, insetkey, boxkey=None, message="Input set/subset"):             # <<<<<<<<<<<<<<
 *       "Input set and box composer: GgiInset.dc2"
 *       cdef char *namekey_c, *insetkey_c, *boxkey_c, *message_c
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7GgiBase_9Inset, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__Inset, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":326
 *    cb.deschedule()
 * 
 * class GgiBase(_Container):             # <<<<<<<<<<<<<<
 * 
 * # Base container class. Creating a Base object causes Ggi to be
 */
  __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s___Container); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_16));
  PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_16), ((PyObject *)__pyx_t_5), __pyx_n_s__GgiBase, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__GgiBase, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":410
 *       return result
 * 
 * class _PopUp(_Element):             # <<<<<<<<<<<<<<
 *    "Abstract class of pop-up elements"
 *    def show(self, visible):
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":412
 * class _PopUp(_Element):
 *    "Abstract class of pop-up elements"
 *    def show(self, visible):             # <<<<<<<<<<<<<<
 *       "Pop element up or down, depending on 'visible' being True or False."
 *       GgiShowShell(toident(self.hook), visible)
 */
  __pyx_t_15 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6_PopUp_show, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__show, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":410
 *       return result
 * 
 * class _PopUp(_Element):             # <<<<<<<<<<<<<<
 *    "Abstract class of pop-up elements"
 *    def show(self, visible):
 */
  __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_16));
  PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_15);
  __pyx_t_15 = 0;
  if (PyDict_SetItemString(((PyObject *)__pyx_t_5), "__doc__", ((PyObject *)__pyx_kp_s_292)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_16), ((PyObject *)__pyx_t_5), __pyx_n_s___PopUp, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___PopUp, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":416
 *       GgiShowShell(toident(self.hook), visible)
 * 
 * class _Shell(_Container, _PopUp):             # <<<<<<<<<<<<<<
 *    "Abstract class of pop-up elements which can contain other elements."
 *    pass
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_t_15 = __Pyx_GetName(__pyx_m, __pyx_n_s___Container); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___PopUp); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_15);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_15 = 0;
  __pyx_t_16 = 0;
  if (PyDict_SetItemString(((PyObject *)__pyx_t_5), "__doc__", ((PyObject *)__pyx_kp_s_293)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___Shell, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Shell, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":420
 *    pass
 * 
 * class _Analog(_Element):             # <<<<<<<<<<<<<<
 *    "Abstract class of analog valuators"
 *    def setCircular(self, mode):
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":422
 * class _Analog(_Element):
 *    "Abstract class of analog valuators"
 *    def setCircular(self, mode):             # <<<<<<<<<<<<<<
 *       "'mode' is True or False: GgiSetCircular.dc2"
 *       GgiSetCircular(toident(self.hook), mode)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7_Analog_setCircular, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setCircular, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":426
 *       GgiSetCircular(toident(self.hook), mode)
 *       return self
 *    def setFormat(self, fstring):             # <<<<<<<<<<<<<<
 *       "Set format string: GgiSetFormat.dc2"
 *       GgiSetFormat(toident(self.hook), fstring)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7_Analog_1setFormat, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setFormat, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":430
 *       GgiSetFormat(toident(self.hook), fstring)
 *       return self
 *    def setRange(self, lowval, highval):             # <<<<<<<<<<<<<<
 *       "Set valuator range: GgiSetRange.dc2"
 *       GgiSetRange(toident(self.hook), lowval, highval)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7_Analog_2setRange, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setRange, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":420
 *    pass
 * 
 * class _Analog(_Element):             # <<<<<<<<<<<<<<
 *    "Abstract class of analog valuators"
 *    def setCircular(self, mode):
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  if (PyDict_SetItemString(((PyObject *)__pyx_t_5), "__doc__", ((PyObject *)__pyx_kp_s_294)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___Analog, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Analog, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":435
 *       return self
 * 
 * class _Prompter(_Element):             # <<<<<<<<<<<<<<
 *    "Prompter: GgiPrompter.dc2"
 *    def reject(self, message):
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":437
 * class _Prompter(_Element):
 *    "Prompter: GgiPrompter.dc2"
 *    def reject(self, message):             # <<<<<<<<<<<<<<
 *       "reject user's response"
 *       GgiPrompter("AGAIN", message)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9_Prompter_reject, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__reject, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":440
 *       "reject user's response"
 *       GgiPrompter("AGAIN", message)
 *    def accept(self):             # <<<<<<<<<<<<<<
 *       "accept user's response"
 *       GgiPrompter("ACCEPT", "")
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_9_Prompter_1accept, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__accept, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":435
 *       return self
 * 
 * class _Prompter(_Element):             # <<<<<<<<<<<<<<
 *    "Prompter: GgiPrompter.dc2"
 *    def reject(self, message):
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  if (PyDict_SetItemString(((PyObject *)__pyx_t_5), "__doc__", ((PyObject *)__pyx_kp_s_295)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___Prompter, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Prompter, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":444
 *       GgiPrompter("ACCEPT", "")
 * 
 * class _PlotField(_Element):             # <<<<<<<<<<<<<<
 * 
 * # Attributes:
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":452
 * #    callback - currently active cursor callback object
 * 
 *    ncolors = 16             # <<<<<<<<<<<<<<
 * 
 *    def __init__(self):
 */
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__ncolors, __pyx_int_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":454
 *    ncolors = 16
 * 
 *    def __init__(self):             # <<<<<<<<<<<<<<
 *       self.nframes  = 0
 *       self.pgid     = 0
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":459
 *       self.xormode  = False
 *       self.callback = None
 *    def open(self):             # <<<<<<<<<<<<<<
 * 
 * # Open plotfield and return PGPLOT plot device identifier.
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_1open, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__open, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":466
 *       self.pgid = pgopen_c(tofchar(self.name))
 *       return self.pgid
 *    def xor(self, mode):             # <<<<<<<<<<<<<<
 * 
 * # mode  - True or False for non-destructive plotting.
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_2xor, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__xor, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":480
 *       if id_c:
 *          pgslct_c(&id_c)
 *    def CursorCallback(self, proc, schedule=True, **attr):             # <<<<<<<<<<<<<<
 * 
 * # Create a cursor callback object.
 */
  __pyx_t_16 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_k_229 = __pyx_t_16;
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_3CursorCallback, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__CursorCallback, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":490
 * 
 *       return _CursorCallback(proc, self, schedule, attr)
 *    def frames(self, requested):             # <<<<<<<<<<<<<<
 *       "Obtain pixmaps e.g. for movie loops: GgiPlotFrames.dc2"
 *       self.nframes = GgiPlotFrames(toident(self.hook), requested)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_4frames, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__frames, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":497
 *          raise GgiError, "PlotField frame allocation failure"
 *       return self
 *    def record(self, frame):             # <<<<<<<<<<<<<<
 *       "Store a plot window in a pixmap: GgiPlotRecord.dc2"
 *       GgiPlotRecord(toident(self.hook), frame)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_5record, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__record, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":501
 *       GgiPlotRecord(toident(self.hook), frame)
 *       return self
 *    def show(self, frame):             # <<<<<<<<<<<<<<
 *       "Recall a plot from a pixmap: GgiPlotShow.dc2"
 *       GgiPlotShow(toident(self.hook), frame)
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_6show, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__show, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":505
 *       GgiPlotShow(toident(self.hook), frame)
 *       return self
 *    def colors(self, requested, master=True):             # <<<<<<<<<<<<<<
 * 
 * # Increase number of available colors. If master=True (the default)
 */
  __pyx_t_16 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_k_231 = __pyx_t_16;
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_7colors, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__colors, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":520
 *          raise GgiError, "PlotField color allocation failure"
 *       return self
 *    def mapColors(self, *spans):             # <<<<<<<<<<<<<<
 * 
 * # Build a plotfield-specific color table from spans in the master
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_8mapColors, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__mapColors, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":552
 *                        ci_c[9], nc_c[9])
 *       return self
 *    def export(self, name=None):             # <<<<<<<<<<<<<<
 *       "Export plotfield to other tasks. See GgiPlotExport.dc2"
 *       if name==None:
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_10_PlotField_9export, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__export, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":444
 *       GgiPrompter("ACCEPT", "")
 * 
 * class _PlotField(_Element):             # <<<<<<<<<<<<<<
 * 
 * # Attributes:
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___PlotField, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___PlotField, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":558
 *       GgiPlotExport(toident(self.hook), name)
 * 
 * class _Editor(_Element):             # <<<<<<<<<<<<<<
 *    def source(self):
 *       return GgiEditorSource(toident(self.hook))
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":559
 * 
 * class _Editor(_Element):
 *    def source(self):             # <<<<<<<<<<<<<<
 *       return GgiEditorSource(toident(self.hook))
 *    def save(self):
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7_Editor_source, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__source, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":561
 *    def source(self):
 *       return GgiEditorSource(toident(self.hook))
 *    def save(self):             # <<<<<<<<<<<<<<
 *       GgiEditorSave(toident(self.hook))
 *       return self
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7_Editor_1save, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__save, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":564
 *       GgiEditorSave(toident(self.hook))
 *       return self
 *    def search(self, direction):             # <<<<<<<<<<<<<<
 *       GgiEditorSearch(toident(self.hook), direction)
 *       return self
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_7_Editor_2search, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__search, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":558
 *       GgiPlotExport(toident(self.hook), name)
 * 
 * class _Editor(_Element):             # <<<<<<<<<<<<<<
 *    def source(self):
 *       return GgiEditorSource(toident(self.hook))
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___Editor, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Editor, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":568
 *       return self
 * 
 * class _ColorEditor(_Element):             # <<<<<<<<<<<<<<
 *    def limits(self, float v1_c, float v2_c):
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":569
 * 
 * class _ColorEditor(_Element):
 *    def limits(self, float v1_c, float v2_c):             # <<<<<<<<<<<<<<
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 *       return self
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_ColorEditor_limits, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__limits, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":572
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 *       return self
 *    def units(self, unts):             # <<<<<<<<<<<<<<
 *       cdef char *unts_c
 *       unts_c = unts
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_ColorEditor_1units, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__units, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":577
 *       GgiPlotColorEditor(ggiUnits, toident(self.hook), unts_c)
 *       return self
 *    def apply(self):             # <<<<<<<<<<<<<<
 *       GgiPlotColorEditor(ggiApply, toident(self.hook))
 *    def getmap(self, nc):
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_ColorEditor_2apply, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__apply, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":579
 *    def apply(self):
 *       GgiPlotColorEditor(ggiApply, toident(self.hook))
 *    def getmap(self, nc):             # <<<<<<<<<<<<<<
 *       cdef int nc_c
 *       cdef float *reds_c, *greens_c, *blues_c, bred_c, bgreen_c, bblue_c
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_ColorEditor_3getmap, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__getmap, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":568
 *       return self
 * 
 * class _ColorEditor(_Element):             # <<<<<<<<<<<<<<
 *    def limits(self, float v1_c, float v2_c):
 *       GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___ColorEditor, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___ColorEditor, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":598
 *       return (reds, greens, blues, bred_c, bgreen_c, bblue_c)
 * 
 * class _Inset(_Element):             # <<<<<<<<<<<<<<
 *    def delete(self):
 *       "delete the GUI element"
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":599
 * 
 * class _Inset(_Element):
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       "delete the GUI element"
 *       GgiInset(ggiDelete, toident(self.hook))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6_Inset_delete, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__delete, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":603
 *       GgiInset(ggiDelete, toident(self.hook))
 *       del self.hook
 *    def ndims(self, ndims):             # <<<<<<<<<<<<<<
 *       cdef int ndims_c
 *       ndims_c = ndims
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6_Inset_1ndims, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__ndims, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":609
 *       GgiInset(ggiNdims, toident(self.hook), ndims_c);
 *       return self
 *    def closeOnOK(self):             # <<<<<<<<<<<<<<
 *       "close when selection is made"
 *       GgiInset(ggiCloseOnOK, toident(self.hook))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_6_Inset_2closeOnOK, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__closeOnOK, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":598
 *       return (reds, greens, blues, bred_c, bgreen_c, bblue_c)
 * 
 * class _Inset(_Element):             # <<<<<<<<<<<<<<
 *    def delete(self):
 *       "delete the GUI element"
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___Inset, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Inset, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":614
 *       return self
 * 
 * class _FileBrowser(_Element):             # <<<<<<<<<<<<<<
 *    def delete(self):
 *       "delete the GUI element"
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":615
 * 
 * class _FileBrowser(_Element):
 *    def delete(self):             # <<<<<<<<<<<<<<
 *       "delete the GUI element"
 *       GgiFileBrowser(ggiDelete, toident(self.hook))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_FileBrowser_delete, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__delete, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":619
 *       GgiFileBrowser(ggiDelete, toident(self.hook))
 *       del self.hook
 *    def nowait(self):             # <<<<<<<<<<<<<<
 *       "accept selection without pressing OK button"
 *       GgiFileBrowser(ggiNowait, toident(self.hook))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_FileBrowser_1nowait, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__nowait, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":623
 *       GgiFileBrowser(ggiNowait, toident(self.hook))
 *       return self
 *    def closeOnOK(self):             # <<<<<<<<<<<<<<
 *       "close when selection is made"
 *       GgiFileBrowser(ggiCloseOnOK, toident(self.hook))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_FileBrowser_2closeOnOK, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__closeOnOK, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":627
 *       GgiFileBrowser(ggiCloseOnOK, toident(self.hook))
 *       return self
 *    def fileInfo(self, detail):             # <<<<<<<<<<<<<<
 *       global cvt_detail
 *       self.detail = detail
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_12_FileBrowser_3fileInfo, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__fileInfo, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":614
 *       return self
 * 
 * class _FileBrowser(_Element):             # <<<<<<<<<<<<<<
 *    def delete(self):
 *       "delete the GUI element"
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___FileBrowser, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___FileBrowser, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":634
 *       return self
 * 
 * class _Menu(_Element):             # <<<<<<<<<<<<<<
 *    def setLabels(self, labs):
 *       "Modify the menu's label strings"
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":635
 * 
 * class _Menu(_Element):
 *    def setLabels(self, labs):             # <<<<<<<<<<<<<<
 *       "Modify the menu's label strings"
 *       GgiMenuLabels(toident(self.hook), charlist(labs))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_5_Menu_setLabels, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setLabels, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":634
 *       return self
 * 
 * class _Menu(_Element):             # <<<<<<<<<<<<<<
 *    def setLabels(self, labs):
 *       "Modify the menu's label strings"
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___Menu, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___Menu, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":640
 *       return self
 * 
 * class _List(_Element):             # <<<<<<<<<<<<<<
 *    def setLabels(self, labs):
 *       "Modify the list's label strings"
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":641
 * 
 * class _List(_Element):
 *    def setLabels(self, labs):             # <<<<<<<<<<<<<<
 *       "Modify the list's label strings"
 *       GgiListLabels(toident(self.hook), charlist(labs))
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_5_List_setLabels, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__setLabels, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":640
 *       return self
 * 
 * class _List(_Element):             # <<<<<<<<<<<<<<
 *    def setLabels(self, labs):
 *       "Modify the list's label strings"
 */
  __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s___Element); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_5), __pyx_n_s___List, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___List, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":649
 * #                              Callback Class
 * #  --------------------------------------------------------------------------
 * class _CursorCallback:             # <<<<<<<<<<<<<<
 * 
 * # Instances if this class are normally created by calling
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":666
 * #    ...       -  extra attributes defined by user via dictionary 'attr'.
 * 
 *    def __init__(self, proc, plotfield, schedule=True, attr={}):             # <<<<<<<<<<<<<<
 * 
 * # proc     - function to be called upon a cursor event.
 */
  __pyx_t_16 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_k_234 = __pyx_t_16;
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_16));
  __pyx_k_235 = ((PyObject *)__pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_16);
  __pyx_t_16 = 0;
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_15_CursorCallback___init__, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s____init__, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":680
 *       if schedule: self.schedule()
 * 
 *    def schedule(self):             # <<<<<<<<<<<<<<
 *       "activate the callback object"
 *       if self.plotfield.callback:
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_15_CursorCallback_1schedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__schedule, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":693
 *       self.plotfield.callback = self
 * 
 *    def deschedule(self):             # <<<<<<<<<<<<<<
 *       "deactivate the callback object"
 *       cdef ident id_c
 */
  __pyx_t_16 = __pyx_binding_PyCFunctionType_NewEx(&__pyx_mdef_5gipsy_15_CursorCallback_2deschedule, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetItem(__pyx_t_5, __pyx_n_s__deschedule, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/ggi.pxi":649
 * #                              Callback Class
 * #  --------------------------------------------------------------------------
 * class _CursorCallback:             # <<<<<<<<<<<<<<
 * 
 * # Instances if this class are normally created by calling
 */
  __pyx_t_16 = __Pyx_CreateClass(((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5), __pyx_n_s___CursorCallback, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___CursorCallback, __pyx_t_16) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":11
 *       lev  = lev + step
 * 
 * def pgqinf(item):             # <<<<<<<<<<<<<<
 *    cdef fchar value_c
 *    cdef fint  length_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_61pgqinf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqinf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":21
 *    return value
 * 
 * def pgpoly(x, y):             # <<<<<<<<<<<<<<
 *    cdef long x_l, y_l
 *    cdef fint  n_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_62pgpoly, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgpoly, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":34
 *    pgpoly_c(&n_c, <float*>x_l, <float*>y_l)
 * 
 * def pgqvp(fint units_c):             # <<<<<<<<<<<<<<
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvp_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_63pgqvp, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqvp, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":39
 *    return (x1_c, x2_c, y1_c, y2_c)
 * 
 * def pgqvsz(fint units_c):             # <<<<<<<<<<<<<<
 *    cdef float x1_c, x2_c, y1_c, y2_c
 *    pgqvsz_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_64pgqvsz, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqvsz, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":44
 *    return (x1_c, x2_c, y1_c, y2_c)
 * 
 * def pgsclp(fint state_c):             # <<<<<<<<<<<<<<
 *    pgsclp_c(&state_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_65pgsclp, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsclp, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":47
 *    pgsclp_c(&state_c)
 * 
 * def pgqclp():             # <<<<<<<<<<<<<<
 *    cdef fint state_c
 *    pgqclp_c(&state_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_66pgqclp, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqclp, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":52
 *    return state_c
 * 
 * def pgqtxt(float x_c, float y_c, float angle_c, float just_c, text):             # <<<<<<<<<<<<<<
 *    cdef float xbox_c[4], ybox_c[4]
 *    pgqtxt_c(&x_c, &y_c, &angle_c, &just_c, tofchar(text), xbox_c, ybox_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_67pgqtxt, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqtxt, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":60
 *               ( xbox_c[3], ybox_c[3] ) )
 * 
 * def pgconf(a, idim, jdim, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            float c1_c, float c2_c, tr):
 *    cdef fint idim_c, jdim_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_68pgconf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgconf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":71
 *             &c1_c, &c2_c, <float*>tr_l)
 * 
 * def pgarro(float x1_c, float y1_c, float x2_c, float y2_c):             # <<<<<<<<<<<<<<
 *    pgarro_c(&x1_c, &y1_c, &x2_c, &y2_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_69pgarro, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgarro, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":74
 *    pgarro_c(&x1_c, &y1_c, &x2_c, &y2_c)
 * 
 * def pgask(bool t_c):             # <<<<<<<<<<<<<<
 *    pgask_c(&t_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_70pgask, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgask, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":77
 *    pgask_c(&t_c)
 * 
 * def pgband(fint mode_c, fint posn_c=0, float xref_c=0.0, float yref_c=0.0):             # <<<<<<<<<<<<<<
 *    cdef float x_c, y_c
 *    cdef fchar ch_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_71pgband, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgband, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":84
 *    return (x_c, y_c, ch_c.a)
 * 
 * def pgbbuf():             # <<<<<<<<<<<<<<
 *    pgbbuf_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_72pgbbuf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgbbuf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":87
 *    pgbbuf_c()
 * 
 * def pgbeg(device, fint xnsub_c=1, fint ynsub_c=1):             # <<<<<<<<<<<<<<
 *    cdef fint zero_c
 *    zero_c = 0
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_73pgbeg, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgbeg, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":92
 *    pgbeg_c(&zero_c, tofchar(device), &xnsub_c, &ynsub_c)
 * 
 * def pgbin(fint nbin_c, x, data, bool center_c=1):             # <<<<<<<<<<<<<<
 *    cdef long x_l, data_l
 *    x_ptr = realptr(x, nbin_c); x_l = x_ptr.ptr
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_74pgbin, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgbin, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":100
 * # only simplified interface - the others are not implemented
 * #
 * def pgbin_s(data, float x1_c=0.0, float x2_c=0.0, bool center_c=False):             # <<<<<<<<<<<<<<
 *    cdef fint  nbin_c
 *    cdef float *x_c, dummy1, dummy2
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_75pgbin_s, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgbin_s, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":114
 *    free(x_c)
 * 
 * def pgbox(xopt='ABCGNTS', float xtick_c=0.0, fint nxsub_c=0,             # <<<<<<<<<<<<<<
 *           yopt='ABCGNTS', float ytick_c=0.0, fint nysub_c=0):
 *    pgbox_c(tofchar(xopt), &xtick_c, &nxsub_c,
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_76pgbox, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgbox, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":119
 *            tofchar(yopt), &ytick_c, &nysub_c)
 * 
 * def pgcirc(float x_c, float y_c, float radius_c):             # <<<<<<<<<<<<<<
 *    pgcirc_c(&x_c, &y_c, &radius_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_77pgcirc, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgcirc, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":122
 *    pgcirc_c(&x_c, &y_c, &radius_c)
 * 
 * def pgclos():             # <<<<<<<<<<<<<<
 *    pgclos_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_78pgclos, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgclos, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":125
 *    pgclos_c()
 * 
 * def pgconb(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            c, fint nc_c, tr, float blank_c=0.0):
 *    cdef long a_l, c_l, tr_l
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_79pgconb, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgconb, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":134
 *             <float*>c_l, &nc_c, <float*>tr_l, &blank_c)
 * 
 * def pgconl(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            c, tr, label, fint intval_c, fint minint_c):
 *    cdef long a_l, tr_l, c_l
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_80pgconl, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgconl, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":143
 *             <float*>c_l, <float*>tr_l, tofchar(label), &intval_c, &minint_c)
 * 
 * def pgcons(a, id, jd, i1, i2, j1, j2, c, nc, tr):             # <<<<<<<<<<<<<<
 *    cdef long a_l, c_l, tr_l
 *    cdef fint id_c, jd_c, i1_c, i2_c, j1_c, j2_c, nc_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_81pgcons, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgcons, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":153
 *             <float*>c_l, &nc_c, <float*>tr_l)
 * 
 * def pgcont(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,             # <<<<<<<<<<<<<<
 *            c, fint nc_c, tr):
 *    cdef long a_l, c_l, tr_l
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_82pgcont, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgcont, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":162
 *             <float*>c_l, &nc_c, <float*>tr_l)
 * 
 * def pgctab(l, r, g, b, nc=None, float contra_c=1.0, float bright_c=0.5):             # <<<<<<<<<<<<<<
 *    cdef long l_l, r_l, g_l, b_l
 *    cdef fint nc_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_83pgctab, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgctab, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":175
 *             &nc_c, &contra_c, &bright_c)
 * 
 * def pgdraw(float x_c, float y_c):             # <<<<<<<<<<<<<<
 *    pgdraw_c(&x_c, &y_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_84pgdraw, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgdraw, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":178
 *    pgdraw_c(&x_c, &y_c)
 * 
 * def pgebuf():             # <<<<<<<<<<<<<<
 *    pgebuf_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_85pgebuf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgebuf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":181
 *    pgebuf_c()
 * 
 * def pgend():             # <<<<<<<<<<<<<<
 *    pgend_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_86pgend, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgend, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":184
 *    pgend_c()
 * 
 * def pgenv(float xmin_c, float xmax_c, float ymin_c, float ymax_c,             # <<<<<<<<<<<<<<
 *           fint just_c=0, fint axis_c=0):
 *    pgenv_c(&xmin_c, &xmax_c, &ymin_c, &ymax_c, &just_c, &axis_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_87pgenv, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgenv, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":188
 *    pgenv_c(&xmin_c, &xmax_c, &ymin_c, &ymax_c, &just_c, &axis_c)
 * 
 * def pgeras():             # <<<<<<<<<<<<<<
 *    pgeras_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_88pgeras, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgeras, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":191
 *    pgeras_c()
 * 
 * def pgetxt():             # <<<<<<<<<<<<<<
 *    pgetxt_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_89pgetxt, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgetxt, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":194
 *    pgetxt_c()
 * 
 * def pggray(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,             # <<<<<<<<<<<<<<
 *            fint j1_c, fint j2_c, float fg_c, float bg_c, tr):
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_90pggray, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pggray, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":203
 *             &fg_c, &bg_c, <float*>tr_l)
 * 
 * def pghi2d(data, fint nxv_c, fint nyv_c, fint ix1_c, fint ix2_c,             # <<<<<<<<<<<<<<
 *             fint iy1_c, fint iy2_c, x, fint ioff_c, float bias_c,
 *             bool center_c, ylims):
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_91pghi2d, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pghi2d, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":213
 *             <float*>x_l, &ioff_c, &bias_c, &center_c, <float*>ylims_l)
 * 
 * def pghist(fint n_c, data, float datamin_c, float datamax_c,             # <<<<<<<<<<<<<<
 *            fint nbin_c, fint pgflag_c=0):
 *    cdef long data_l
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_92pghist, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pghist, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":219
 *    pghist_c(&n_c, <float*>data_l, &datamin_c, &datamax_c, &nbin_c, &pgflag_c)
 * 
 * def pgiden():             # <<<<<<<<<<<<<<
 *    pgiden_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_93pgiden, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgiden, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":222
 *    pgiden_c()
 * 
 * def pgimag(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,             # <<<<<<<<<<<<<<
 *            fint j1_c, fint j2_c, float a1_c, float a2_c, tr):
 *    cdef long a_l, tr_l
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_94pgimag, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgimag, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":230
 *             &a1_c, &a2_c, <float*>tr_l)
 * 
 * def pglab(xlabel, ylabel, toplabel):             # <<<<<<<<<<<<<<
 *    pglab_c(tofchar(xlabel), tofchar(ylabel), tofchar(toplabel))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_95pglab, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pglab, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":233
 *    pglab_c(tofchar(xlabel), tofchar(ylabel), tofchar(toplabel))
 * 
 * def pgldev():             # <<<<<<<<<<<<<<
 *    pgldev_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_96pgldev, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgldev, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":236
 *    pgldev_c()
 * 
 * def pglen(text, fint units_c=4):             # <<<<<<<<<<<<<<
 *    cdef float xl_c, yl_c
 *    pglen_c(&units_c, tofchar(text), &xl_c, &yl_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_97pglen, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pglen, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":241
 *    return (xl_c, yl_c)
 * 
 * def pgline(xpts, ypts):             # <<<<<<<<<<<<<<
 *    cdef long xpts_l, ypts_l
 *    cdef fint n_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_98pgline, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgline, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":249
 *    pgline_c(&n_c, <float*>xpts_l, <float*>ypts_l)
 * 
 * def pgmove(float x_c, float y_c):             # <<<<<<<<<<<<<<
 *    pgmove_c(&x_c, &y_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_99pgmove, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgmove, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":252
 *    pgmove_c(&x_c, &y_c)
 * 
 * def pgmtxt(side, float disp_c, float coord_c, float fjust_c, text):             # <<<<<<<<<<<<<<
 *    pgmtxt_c(tofchar(side), &disp_c, &coord_c, &fjust_c, tofchar(text))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_100pgmtxt, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgmtxt, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":255
 *    pgmtxt_c(tofchar(side), &disp_c, &coord_c, &fjust_c, tofchar(text))
 * 
 * def pgopen(device):             # <<<<<<<<<<<<<<
 *    return pgopen_c(tofchar(device))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_101pgopen, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgopen, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":258
 *    return pgopen_c(tofchar(device))
 * 
 * def pgpage():             # <<<<<<<<<<<<<<
 *    pgpage_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_102pgpage, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgpage, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":261
 *    pgpage_c()
 * 
 * def pgpanl(fint ix_c=1, fint iy_c=1):             # <<<<<<<<<<<<<<
 *    pgpanl_c(&ix_c, &iy_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_103pgpanl, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgpanl, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":264
 *    pgpanl_c(&ix_c, &iy_c)
 * 
 * def pgpap(float width_c, float aspect_c=1.0):             # <<<<<<<<<<<<<<
 *    pgpap_c(&width_c, &aspect_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_104pgpap, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgpap, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":267
 *    pgpap_c(&width_c, &aspect_c)
 * 
 * def pgpt(xpts, ypts, fint symbol_c=0):             # <<<<<<<<<<<<<<
 *    cdef long xpts_l, ypts_l
 *    cdef fint n_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_105pgpt, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgpt, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":275
 *    pgpt_c(&n_c, <float*>xpts_l, <float*>ypts_l, &symbol_c)
 * 
 * def pgptxt(float x_c, float y_c, float angle_c, float fjust_c, text):             # <<<<<<<<<<<<<<
 *    pgptxt_c(&x_c, &y_c, &angle_c, &fjust_c, tofchar(text))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_106pgptxt, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgptxt, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":278
 *    pgptxt_c(&x_c, &y_c, &angle_c, &fjust_c, tofchar(text))
 * 
 * def pgqah():             # <<<<<<<<<<<<<<
 *    cdef fint fs_c
 *    cdef float angle_c, barb_c
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_107pgqah, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqah, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":284
 *    return (fs_c, angle_c, barb_c)
 * 
 * def pgqcf():             # <<<<<<<<<<<<<<
 *    cdef fint cf_c
 *    pgqcf_c(&cf_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_108pgqcf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqcf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":289
 *    return cf_c
 * 
 * def pgqch():             # <<<<<<<<<<<<<<
 *    cdef float ch_c
 *    pgqch_c(&ch_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_109pgqch, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqch, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":294
 *    return ch_c
 * 
 * def pgqci():             # <<<<<<<<<<<<<<
 *    cdef fint ci_c
 *    pgqci_c(&ci_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_110pgqci, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqci, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":299
 *    return ci_c
 * 
 * def pgqcir():             # <<<<<<<<<<<<<<
 *    cdef fint icilo_c, icihi_c
 *    pgqcir_c(&icilo_c, &icihi_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_111pgqcir, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqcir, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":304
 *    return (icilo_c, icihi_c)
 * 
 * def pgqcol():             # <<<<<<<<<<<<<<
 *    cdef fint ci1_c, ci2_c
 *    pgqcir_c(&ci1_c, &ci2_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_112pgqcol, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqcol, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":309
 *    return (ci1_c, ci2_c)
 * 
 * def pgqcr(fint ci_c=0):             # <<<<<<<<<<<<<<
 *    cdef float cr_c, cg_c, cb_c
 *    pgqcr_c(&ci_c, &cr_c, &cg_c, &cb_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_113pgqcr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqcr, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":314
 *    return (cr_c, cg_c, cb_c)
 * 
 * def pgqcs(fint units_c=4):             # <<<<<<<<<<<<<<
 *    cdef float xch_c, ych_c
 *    pgqcs_c(&units_c, &xch_c, &ych_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_114pgqcs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqcs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":319
 *    return (xch_c, ych_c)
 * 
 * def pgqfs():             # <<<<<<<<<<<<<<
 *    cdef fint fs_c
 *    pgqfs_c(&fs_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_115pgqfs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqfs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":324
 *    return fs_c
 * 
 * def pgqhs():             # <<<<<<<<<<<<<<
 *    cdef float angle_c, sepn_c, phase_c
 *    pgqhs_c(&angle_c, &sepn_c, &phase_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_116pgqhs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqhs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":329
 *    return (angle_c, sepn_c, phase_c)
 * 
 * def pgqid():             # <<<<<<<<<<<<<<
 *    cdef fint id_c
 *    pgqid_c(&id_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_117pgqid, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqid, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":334
 *    return id_c
 * 
 * def pgqitf():             # <<<<<<<<<<<<<<
 *    cdef fint itf_c
 *    pgqitf_c(&itf_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_118pgqitf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqitf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":339
 *    return itf_c
 * 
 * def pgqls():             # <<<<<<<<<<<<<<
 *    cdef fint ls_c
 *    pgqid_c(&ls_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_119pgqls, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqls, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":344
 *    return ls_c
 * 
 * def pgqlw():             # <<<<<<<<<<<<<<
 *    cdef fint lw_c
 *    pgqlw_c(&lw_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_120pgqlw, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqlw, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":349
 *    return lw_c
 * 
 * def pgqpos():             # <<<<<<<<<<<<<<
 *    cdef float x_c, y_c
 *    pgqpos_c(&x_c, &y_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_121pgqpos, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqpos, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":354
 *    return (x_c, y_c)
 * 
 * def pgrect(float x1_c, float x2_c, float y1_c, float y2_c):             # <<<<<<<<<<<<<<
 *    pgrect_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_122pgrect, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgrect, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":357
 *    pgrect_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 * def pgsah(fint fs_c=1, float angle_c=45.0, float barb_c=0.3):             # <<<<<<<<<<<<<<
 *    pgsah_c(&fs_c, &angle_c, &barb_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_123pgsah, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsah, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":360
 *    pgsah_c(&fs_c, &angle_c, &barb_c)
 * 
 * def pgsave():             # <<<<<<<<<<<<<<
 *    pgsave_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_124pgsave, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsave, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":363
 *    pgsave_c()
 * 
 * def pgunsa():             # <<<<<<<<<<<<<<
 *    pgunsa_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_125pgunsa, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgunsa, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":366
 *    pgunsa_c()
 * 
 * def pgscf(fint cf_c=1):             # <<<<<<<<<<<<<<
 *    pgscf_c(&cf_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_126pgscf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgscf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":369
 *    pgscf_c(&cf_c)
 * 
 * def pgsch(float ch_c=1.0):     #### error in ppgplot-doc.txt!! ###             # <<<<<<<<<<<<<<
 *    pgsch_c(&ch_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_127pgsch, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsch, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":372
 *    pgsch_c(&ch_c)
 * 
 * def pgsci(fint ci_c=1):             # <<<<<<<<<<<<<<
 *    pgsci_c(&ci_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_128pgsci, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsci, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":375
 *    pgsci_c(&ci_c)
 * 
 * def pgscir(fint c1_c=0, fint c2_c=0):             # <<<<<<<<<<<<<<
 *    if c1_c==0 and c2_c==0:
 *       pgqcol_c(&c1_c, &c2_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_129pgscir, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgscir, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":382
 *    pgscir_c(&c1_c, &c2_c)
 * 
 * def pgscr(fint ci_c, float r_c, float g_c, float b_c):             # <<<<<<<<<<<<<<
 *    pgscr_c(&ci_c, &r_c, &g_c, &b_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_130pgscr, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgscr, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":385
 *    pgscr_c(&ci_c, &r_c, &g_c, &b_c)
 * 
 * def pgsfs(fint fs_c=1):             # <<<<<<<<<<<<<<
 *    pgsfs_c(&fs_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_131pgsfs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsfs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":388
 *    pgsfs_c(&fs_c)
 * 
 * def pgshls(fint ci_c, float hue_c, float level_c, float saturation_c):             # <<<<<<<<<<<<<<
 *    pgshls_c(&ci_c, &hue_c, &level_c, &saturation_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_132pgshls, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgshls, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":391
 *    pgshls_c(&ci_c, &hue_c, &level_c, &saturation_c)
 * 
 * def pgshs(float angle_c, float sepn_c, float phase_c):             # <<<<<<<<<<<<<<
 *    pgshs_c(&angle_c, &sepn_c, &phase_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_133pgshs, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgshs, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":394
 *    pgshs_c(&angle_c, &sepn_c, &phase_c)
 * 
 * def pgsitf(fint itf_c):             # <<<<<<<<<<<<<<
 *    pgsitf_c(&itf_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_134pgsitf, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsitf, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":397
 *    pgsitf_c(&itf_c)
 * 
 * def pgslct(fint devid_c=0):             # <<<<<<<<<<<<<<
 *    pgslct_c(&devid_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_135pgslct, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgslct, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":400
 *    pgslct_c(&devid_c)
 * 
 * def pgsls(fint ls_c=0):             # <<<<<<<<<<<<<<
 *    pgsls_c(&ls_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_136pgsls, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsls, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":403
 *    pgsls_c(&ls_c)
 * 
 * def pgslw(fint lw_c=1):             # <<<<<<<<<<<<<<
 *    pgslw_c(&lw_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_137pgslw, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgslw, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":406
 *    pgslw_c(&lw_c)
 * 
 * def pgstbg(fint tbg_c=0):             # <<<<<<<<<<<<<<
 *    pgstbg_c(&tbg_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_138pgstbg, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgstbg, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":409
 *    pgstbg_c(&tbg_c)
 * 
 * def pgsubp(fint xnsub_c=1, fint ynsub_c=1):             # <<<<<<<<<<<<<<
 *    pgsubp_c(&xnsub_c, &ynsub_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_139pgsubp, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsubp, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":412
 *    pgsubp_c(&xnsub_c, &ynsub_c)
 * 
 * def pgsvp(float xleft_c=0.0, float xright_c=1.0,             # <<<<<<<<<<<<<<
 *           float ybot_c=0.0, float ytop_c=1.0):
 *    pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_140pgsvp, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsvp, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":416
 *    pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 * def pgswin(float x1_c=0.0, float x2_c=1.0, float y1_c=0.0, float y2_c=1.0):             # <<<<<<<<<<<<<<
 *    pgswin_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_141pgswin, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgswin, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":419
 *    pgswin_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 * def pgtext(float x_c, float y_c, text):             # <<<<<<<<<<<<<<
 *    pgtext_c(&x_c, &y_c, tofchar(text))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_142pgtext, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgtext, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":422
 *    pgtext_c(&x_c, &y_c, tofchar(text))
 * 
 * def pgupdt():             # <<<<<<<<<<<<<<
 *    pgupdt_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_143pgupdt, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgupdt, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":425
 *    pgupdt_c()
 * 
 * def pgvsiz(float xleft_c, float xright_c, float ybot_c, float ytop_c):             # <<<<<<<<<<<<<<
 *    pgvsiz_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_144pgvsiz, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgvsiz, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":428
 *    pgvsiz_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)
 * 
 * def pgvstd():             # <<<<<<<<<<<<<<
 *    pgvstd_c()
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_145pgvstd, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgvstd, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":431
 *    pgvstd_c()
 * 
 * def pgwedg(side, float disp_c, float width_c, float fg_c, float bg_c, label):             # <<<<<<<<<<<<<<
 *    pgwedg_c(tofchar(side), &disp_c, &width_c, &fg_c, &bg_c, tofchar(label))
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_146pgwedg, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgwedg, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":434
 *    pgwedg_c(tofchar(side), &disp_c, &width_c, &fg_c, &bg_c, tofchar(label))
 * 
 * def pgwnad(float x1_c, float x2_c, float y1_c, float y2_c):             # <<<<<<<<<<<<<<
 *    pgwnad_c(&x1_c, &x2_c, &y1_c, &y2_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_147pgwnad, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgwnad, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":439
 * #####  GIPSY-private functions:
 * 
 * def pgqimi():             # <<<<<<<<<<<<<<
 *    cdef fint intp_c
 *    pgqimi_c(&intp_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_148pgqimi, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqimi, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":444
 *    return intp_c
 * 
 * def pgsimi(bool i_c):             # <<<<<<<<<<<<<<
 *    pgsimi_c(&i_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_149pgsimi, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsimi, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":447
 *    pgsimi_c(&i_c)
 * 
 * def pgcotic(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,             # <<<<<<<<<<<<<<
 *             fint j1_c, fint j2_c, c, fint nc_c, tr, float blank_c,
 *             float tlen_c, fint tstep_c):
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_150pgcotic, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgcotic, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":457
 *              <float*>c_l, &nc_c, <float*>tr_l, &blank_c, &tlen_c, &tstep_c)
 * 
 * def pgexist(fint n_c):             # <<<<<<<<<<<<<<
 *    return pgexist_c(&n_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_151pgexist, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgexist, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":460
 *    return pgexist_c(&n_c)
 * 
 * def pgpat(pat):             # <<<<<<<<<<<<<<
 *    cdef long pat_l
 *    pat_ptr = realptr(pat, 8); pat_l = pat_ptr.ptr
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_152pgpat, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgpat, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":465
 *    pgpat_c(<float*>pat_l)
 * 
 * def pgellipse(float xcentre_c, float ycentre_c, float major_c, float minor_c,             # <<<<<<<<<<<<<<
 *               float pa_c, float startang_c, float endang_c, float delta_c):
 *    pgellipse_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_153pgellipse, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgellipse, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":470
 *                &pa_c, &startang_c, &endang_c, &delta_c)
 * 
 * def pgbeam(float xcentre_c, float ycentre_c, float major_c, float minor_c,             # <<<<<<<<<<<<<<
 *               float pa_c, float delta_c, float slope_c, fint shape_c):
 *    pgbeam_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_154pgbeam, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgbeam, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":475
 *                &pa_c, &delta_c, &slope_c, &shape_c)
 * 
 * def pgsbci(fint ci_c):             # <<<<<<<<<<<<<<
 *    pgsbci_c(&ci_c)
 * 
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_155pgsbci, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgsbci, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/pgplot.pxi":478
 *    pgsbci_c(&ci_c)
 * 
 * def pgqbci():             # <<<<<<<<<<<<<<
 *    cdef fint ci_c
 *    pgqbci_c(&ci_c)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_156pgqbci, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pgqbci, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":21
 * #
 * 
 * def qInitResources():             # <<<<<<<<<<<<<<
 *    QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name,
 *                                       qt_resource_data)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_157qInitResources, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qInitResources, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":25
 *                                       qt_resource_data)
 * 
 * def qCleanupResources():             # <<<<<<<<<<<<<<
 *    QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,
 *                                         qt_resource_data)
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_158qCleanupResources, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qCleanupResources, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":29
 *                                         qt_resource_data)
 * 
 * def gipsy_logo():             # <<<<<<<<<<<<<<
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_159gipsy_logo, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__gipsy_logo, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":37
 *    return logo
 * 
 * def kapteyn_logo():             # <<<<<<<<<<<<<<
 *    logo = QtGui.QLabel()
 *    logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
 */
  __pyx_t_5 = PyCFunction_NewEx(&__pyx_mdef_5gipsy_160kapteyn_logo, NULL, __pyx_n_s__gipsy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__kapteyn_logo, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":45
 *    return logo
 * 
 * try:             # <<<<<<<<<<<<<<
 *    from PyQt4 import QtCore, QtGui
 * 
 */
  {
    __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:*/ {

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":46
 * 
 * try:
 *    from PyQt4 import QtCore, QtGui             # <<<<<<<<<<<<<<
 * 
 *    qt_resource_data = b"\
 */
      __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __Pyx_INCREF(((PyObject *)__pyx_n_s__QtCore));
      PyList_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_n_s__QtCore));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__QtCore));
      __Pyx_INCREF(((PyObject *)__pyx_n_s__QtGui));
      PyList_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_s__QtGui));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__QtGui));
      __pyx_t_16 = __Pyx_Import(((PyObject *)__pyx_n_s__PyQt4), ((PyObject *)__pyx_t_5), -1); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__QtCore); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__QtCore, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_16, __pyx_n_s__QtGui); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__QtGui, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":48
 *    from PyQt4 import QtCore, QtGui
 * 
 *    qt_resource_data = b"\             # <<<<<<<<<<<<<<
 * \x00\x00\x83\xc1\
 * \x89\
 */
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qt_resource_data, ((PyObject *)__pyx_kp_b_296)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L47_error;}

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":3185
 * "
 * 
 *    qt_resource_name = b"\             # <<<<<<<<<<<<<<
 * \x00\x0c\
 * \x0b\x19\xfb\x27\
 */
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qt_resource_name, ((PyObject *)__pyx_kp_b_297)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 3185; __pyx_clineno = __LINE__; goto __pyx_L47_error;}

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":3200
 * "
 * 
 *    qt_resource_struct = b"\             # <<<<<<<<<<<<<<
 * \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\
 * \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x83\xc5\
 */
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__qt_resource_struct, ((PyObject *)__pyx_kp_b_298)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __pyx_L47_error;}

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":3207
 * "
 * 
 *    qInitResources()             # <<<<<<<<<<<<<<
 * 
 *    logo_text="""
 */
      __pyx_t_16 = __Pyx_GetName(__pyx_m, __pyx_n_s__qInitResources); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 3207; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_GOTREF(__pyx_t_16);
      __pyx_t_5 = PyObject_Call(__pyx_t_16, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 3207; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":3209
 *    qInitResources()
 * 
 *    logo_text="""             # <<<<<<<<<<<<<<
 * <html>
 * <body>
 */
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logo_text, ((PyObject *)__pyx_kp_s_299)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 3209; __pyx_clineno = __LINE__; goto __pyx_L47_error;}

      /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":3221
 * </html>
 * """
 *    kapteyn_text="""             # <<<<<<<<<<<<<<
 * <html>
 * <body>
 */
      if (PyObject_SetAttr(__pyx_m, __pyx_n_s__kapteyn_text, ((PyObject *)__pyx_kp_s_300)) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 3221; __pyx_clineno = __LINE__; goto __pyx_L47_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_L54_try_end;
    __pyx_L47_error:;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __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_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "/home/hans/GIPSY/PYGIPSY/qt4logos.pxi":3233
 * """
 * 
 * except:             # <<<<<<<<<<<<<<
 *    pass
 */
    /*except:*/ {
      PyErr_Restore(0,0,0);
      goto __pyx_L48_exception_handled;
    }
    __pyx_L48_exception_handled:;
    __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);
    __pyx_L54_try_end:;
  }

  /* "gipsy.pyx":1
 * cimport c_numpy             # <<<<<<<<<<<<<<
 * from c_numpy cimport import_array, ndarray, PyArray_DATA
 * import sys, os, types, string, numpy, weakref, traceback
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_5)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  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_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  if (__pyx_m) {
    __Pyx_AddTraceback("init gipsy", __pyx_clineno, __pyx_lineno, __pyx_filename);
    Py_DECREF(__pyx_m); __pyx_m = 0;
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init gipsy");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if PY_MAJOR_VERSION < 3
  return;
  #else
  return __pyx_m;
  #endif
}

/* Runtime support code */

#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule((char *)modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif /* CYTHON_REFNANNY */

static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
    PyObject *result;
    result = PyObject_GetAttr(dict, name);
    if (!result) {
        if (dict != __pyx_b) {
            PyErr_Clear();
            result = PyObject_GetAttr(__pyx_b, name);
        }
        if (!result) {
            PyErr_SetObject(PyExc_NameError, name);
        }
    }
    return result;
}

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,
                 "%s() takes %s %"PY_FORMAT_SIZE_T"d positional argument%s (%"PY_FORMAT_SIZE_T"d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

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_AS_STRING(kw_name));
        #endif
}

static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    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;

    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
        } else {
            #if PY_MAJOR_VERSION < 3
            if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) {
            #else
            if (unlikely(!PyUnicode_CheckExact(key)) && unlikely(!PyUnicode_Check(key))) {
            #endif
                goto invalid_keyword_type;
            } else {
                for (name = first_kw_arg; *name; name++) {
                    #if PY_MAJOR_VERSION >= 3
                    if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
                        PyUnicode_Compare(**name, key) == 0) break;
                    #else
                    if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
                        _PyString_Eq(**name, key)) break;
                    #endif
                }
                if (*name) {
                    values[name-argnames] = value;
                } else {
                    /* unexpected keyword found */
                    for (name=argnames; name != first_kw_arg; name++) {
                        if (**name == key) goto arg_passed_twice;
                        #if PY_MAJOR_VERSION >= 3
                        if (PyUnicode_GET_SIZE(**name) == PyUnicode_GET_SIZE(key) &&
                            PyUnicode_Compare(**name, key) == 0) goto arg_passed_twice;
                        #else
                        if (PyString_GET_SIZE(**name) == PyString_GET_SIZE(key) &&
                            _PyString_Eq(**name, key)) goto arg_passed_twice;
                        #endif
                    }
                    if (kwds2) {
                        if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
                    } else {
                        goto invalid_keyword;
                    }
                }
            }
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, **name);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%s() got an unexpected keyword argument '%s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}


static double __Pyx__PyObject_AsDouble(PyObject* obj) {
    PyObject* float_value;
    if (Py_TYPE(obj)->tp_as_number && Py_TYPE(obj)->tp_as_number->nb_float) {
        return PyFloat_AsDouble(obj);
    } else if (PyUnicode_CheckExact(obj) || PyBytes_CheckExact(obj)) {
#if PY_MAJOR_VERSION >= 3
        float_value = PyFloat_FromString(obj);
#else
        float_value = PyFloat_FromString(obj, 0);
#endif
    } else {
        PyObject* args = PyTuple_New(1);
        if (unlikely(!args)) goto bad;
        PyTuple_SET_ITEM(args, 0, obj);
        float_value = PyObject_Call((PyObject*)&PyFloat_Type, args, 0);
        PyTuple_SET_ITEM(args, 0, 0);
        Py_DECREF(args);
    }
    if (likely(float_value)) {
        double value = PyFloat_AS_DOUBLE(float_value);
        Py_DECREF(float_value);
        return value;
    }
bad:
    return (double)-1;
}

static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();

    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);
}

static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;

    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}


#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    /* cause is unused */
    Py_XINCREF(type);
    Py_XINCREF(value);
    Py_XINCREF(tb);
    /* First, check the traceback argument, replacing None with NULL. */
    if (tb == Py_None) {
        Py_DECREF(tb);
        tb = 0;
    }
    else if (tb != NULL && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto raise_error;
    }
    /* Next, replace a missing value with None */
    if (value == NULL) {
        value = Py_None;
        Py_INCREF(value);
    }
    #if PY_VERSION_HEX < 0x02050000
    if (!PyClass_Check(type))
    #else
    if (!PyType_Check(type))
    #endif
    {
        /* Raising an instance.  The value should be a dummy. */
        if (value != Py_None) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        /* Normalize to raise <class>, <instance> */
        Py_DECREF(value);
        value = type;
        #if PY_VERSION_HEX < 0x02050000
            if (PyInstance_Check(type)) {
                type = (PyObject*) ((PyInstanceObject*)type)->in_class;
                Py_INCREF(type);
            }
            else {
                type = 0;
                PyErr_SetString(PyExc_TypeError,
                    "raise: exception must be an old-style class or instance");
                goto raise_error;
            }
        #else
            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;
            }
        #endif
    }

    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}

#else /* Python 3+ */

static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    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)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }

    if (cause) {
        PyObject *fixed_cause;
        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;
        }
        if (!value) {
            value = PyObject_CallObject(type, NULL);
        }
        PyException_SetCause(value, fixed_cause);
    }

    PyErr_SetObject(type, value);

    if (tb) {
        PyThreadState *tstate = PyThreadState_GET();
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
    }

bad:
    return;
}
#endif

static CYTHON_INLINE void __Pyx_RaiseNoneIndexingError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is unsubscriptable");
}

static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *local_type, *local_value, *local_tb;
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    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;
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
    if (unlikely(tstate->curexc_type))
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
        goto bad;
    #endif
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
    Py_INCREF(local_type);
    Py_INCREF(local_value);
    Py_INCREF(local_tb);
    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;
    /* Make sure tstate is in a consistent state when we XDECREF
       these objects (XDECREF may run arbitrary code). */
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}


static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (unlikely(!type)) {
        PyErr_Format(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(PyObject_TypeCheck(obj, type)))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
                 Py_TYPE(obj)->tp_name, type->tp_name);
    return 0;
}

static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %"PY_FORMAT_SIZE_T"d value%s to unpack",
                 index, (index == 1) ? "" : "s");
}

static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %"PY_FORMAT_SIZE_T"d)", expected);
}

static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else if (PyErr_Occurred()) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
}

static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}


static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}

static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    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;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}

static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) {
    PyObject *py_import = 0;
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    py_import = __Pyx_GetAttrString(__pyx_b, "__import__");
    if (!py_import)
        goto bad;
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    #if PY_VERSION_HEX >= 0x02050000
    {
        PyObject *py_level = PyInt_FromLong(level);
        if (!py_level)
            goto bad;
        module = PyObject_CallFunctionObjArgs(py_import,
            name, global_dict, empty_dict, list, py_level, NULL);
        Py_DECREF(py_level);
    }
    #else
    if (level>0) {
        PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
        goto bad;
    }
    module = PyObject_CallFunctionObjArgs(py_import,
        name, global_dict, empty_dict, list, NULL);
    #endif
bad:
    Py_XDECREF(empty_list);
    Py_XDECREF(py_import);
    Py_XDECREF(empty_dict);
    return module;
}

static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases) {
    PyObject *metaclass;
    /* Default metaclass */
#if PY_MAJOR_VERSION < 3
    if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
        PyObject *base = PyTuple_GET_ITEM(bases, 0);
        metaclass = PyObject_GetAttrString(base, (char *)"__class__");
        if (!metaclass) {
            PyErr_Clear();
            metaclass = (PyObject*) Py_TYPE(base);
        }
    } else {
        metaclass = (PyObject *) &PyClass_Type;
    }
#else
    if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) {
        PyObject *base = PyTuple_GET_ITEM(bases, 0);
        metaclass = (PyObject*) Py_TYPE(base);
    } else {
        metaclass = (PyObject *) &PyType_Type;
    }
#endif
    Py_INCREF(metaclass);
    return metaclass;
}

static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name,
                                   PyObject *modname) {
    PyObject *result;
    PyObject *metaclass;

    if (PyDict_SetItemString(dict, "__module__", modname) < 0)
        return NULL;

    /* Python2 __metaclass__ */
    metaclass = PyDict_GetItemString(dict, "__metaclass__");
    if (metaclass) {
        Py_INCREF(metaclass);
    } else {
        metaclass = __Pyx_FindPy2Metaclass(bases);
    }
    result = PyObject_CallFunctionObjArgs(metaclass, name, bases, dict, NULL);
    Py_DECREF(metaclass);
    return result;
}


static PyObject *__pyx_binding_PyCFunctionType_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) {
    __pyx_binding_PyCFunctionType_object *op = PyObject_GC_New(__pyx_binding_PyCFunctionType_object, __pyx_binding_PyCFunctionType);
    if (op == NULL)
        return NULL;
    op->func.m_ml = ml;
    Py_XINCREF(self);
    op->func.m_self = self;
    Py_XINCREF(module);
    op->func.m_module = module;
    PyObject_GC_Track(op);
    return (PyObject *)op;
}

static void __pyx_binding_PyCFunctionType_dealloc(__pyx_binding_PyCFunctionType_object *m) {
    PyObject_GC_UnTrack(m);
    Py_XDECREF(m->func.m_self);
    Py_XDECREF(m->func.m_module);
    PyObject_GC_Del(m);
}

static PyObject *__pyx_binding_PyCFunctionType_descr_get(PyObject *func, PyObject *obj, PyObject *type) {
    if (obj == Py_None)
            obj = NULL;
    return PyMethod_New(func, obj, type);
}

static int __pyx_binding_PyCFunctionType_init(void) {
    __pyx_binding_PyCFunctionType_type = PyCFunction_Type;
    __pyx_binding_PyCFunctionType_type.tp_name = __Pyx_NAMESTR("cython_binding_builtin_function_or_method");
    __pyx_binding_PyCFunctionType_type.tp_dealloc = (destructor)__pyx_binding_PyCFunctionType_dealloc;
    __pyx_binding_PyCFunctionType_type.tp_descr_get = __pyx_binding_PyCFunctionType_descr_get;
    if (PyType_Ready(&__pyx_binding_PyCFunctionType_type) < 0) {
        return -1;
    }
    __pyx_binding_PyCFunctionType = &__pyx_binding_PyCFunctionType_type;
    return 0;

}

static CYTHON_INLINE fint __Pyx_PyInt_from_py_fint(PyObject* x) {
    const fint neg_one = (fint)-1, const_zero = (fint)0;
    const int is_unsigned = const_zero < neg_one;
    if (sizeof(fint) == sizeof(char)) {
        if (is_unsigned)
            return (fint)__Pyx_PyInt_AsUnsignedChar(x);
        else
            return (fint)__Pyx_PyInt_AsSignedChar(x);
    } else if (sizeof(fint) == sizeof(short)) {
        if (is_unsigned)
            return (fint)__Pyx_PyInt_AsUnsignedShort(x);
        else
            return (fint)__Pyx_PyInt_AsSignedShort(x);
    } else if (sizeof(fint) == sizeof(int)) {
        if (is_unsigned)
            return (fint)__Pyx_PyInt_AsUnsignedInt(x);
        else
            return (fint)__Pyx_PyInt_AsSignedInt(x);
    } else if (sizeof(fint) == sizeof(long)) {
        if (is_unsigned)
            return (fint)__Pyx_PyInt_AsUnsignedLong(x);
        else
            return (fint)__Pyx_PyInt_AsSignedLong(x);
    } else if (sizeof(fint) == sizeof(PY_LONG_LONG)) {
        if (is_unsigned)
            return (fint)__Pyx_PyInt_AsUnsignedLongLong(x);
        else
            return (fint)__Pyx_PyInt_AsSignedLongLong(x);
    }  else {
        fint val;
        PyObject *v = __Pyx_PyNumber_Int(x);
        #if PY_VERSION_HEX < 0x03000000
        if (likely(v) && !PyLong_Check(v)) {
            PyObject *tmp = v;
            v = PyNumber_Long(tmp);
            Py_DECREF(tmp);
        }
        #endif
        if (likely(v)) {
            int one = 1; int is_little = (int)*(unsigned char *)&one;
            unsigned char *bytes = (unsigned char *)&val;
            int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                          bytes, sizeof(val),
                                          is_little, !is_unsigned);
            Py_DECREF(v);
            if (likely(!ret))
                return val;
        }
        return (fint)-1;
    }
}

static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_fint(fint val) {
    const fint neg_one = (fint)-1, const_zero = (fint)0;
    const int is_unsigned = const_zero < neg_one;
    if ((sizeof(fint) == sizeof(char))  ||
        (sizeof(fint) == sizeof(short))) {
        return PyInt_FromLong((long)val);
    } else if ((sizeof(fint) == sizeof(int)) ||
               (sizeof(fint) == sizeof(long))) {
        if (is_unsigned)
            return PyLong_FromUnsignedLong((unsigned long)val);
        else
            return PyInt_FromLong((long)val);
    } else if (sizeof(fint) == sizeof(PY_LONG_LONG)) {
        if (is_unsigned)
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
        else
            return PyLong_FromLongLong((PY_LONG_LONG)val);
    } else {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        return _PyLong_FromByteArray(bytes, sizeof(fint),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
    if (s1 == s2) {   /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        if (PyBytes_GET_SIZE(s1) != PyBytes_GET_SIZE(s2)) {
            return (equals == Py_NE);
        } else if (PyBytes_GET_SIZE(s1) == 1) {
            if (equals == Py_EQ)
                return (PyBytes_AS_STRING(s1)[0] == PyBytes_AS_STRING(s2)[0]);
            else
                return (PyBytes_AS_STRING(s1)[0] != PyBytes_AS_STRING(s2)[0]);
        } else {
            int result = memcmp(PyBytes_AS_STRING(s1), PyBytes_AS_STRING(s2), (size_t)PyBytes_GET_SIZE(s1));
            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;
    }
}

static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
    if (s1 == s2) {   /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */
        return (equals == Py_EQ);
    } else if (PyUnicode_CheckExact(s1) & PyUnicode_CheckExact(s2)) {
        if (PyUnicode_GET_SIZE(s1) != PyUnicode_GET_SIZE(s2)) {
            return (equals == Py_NE);
        } else if (PyUnicode_GET_SIZE(s1) == 1) {
            if (equals == Py_EQ)
                return (PyUnicode_AS_UNICODE(s1)[0] == PyUnicode_AS_UNICODE(s2)[0]);
            else
                return (PyUnicode_AS_UNICODE(s1)[0] != PyUnicode_AS_UNICODE(s2)[0]);
        } else {
            int result = PyUnicode_Compare(s1, s2);
            if ((result == -1) && unlikely(PyErr_Occurred()))
                return -1;
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyUnicode_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyUnicode_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;
    }
}

static CYTHON_INLINE bool __Pyx_PyInt_from_py_bool(PyObject* x) {
    const bool neg_one = (bool)-1, const_zero = (bool)0;
    const int is_unsigned = const_zero < neg_one;
    if (sizeof(bool) == sizeof(char)) {
        if (is_unsigned)
            return (bool)__Pyx_PyInt_AsUnsignedChar(x);
        else
            return (bool)__Pyx_PyInt_AsSignedChar(x);
    } else if (sizeof(bool) == sizeof(short)) {
        if (is_unsigned)
            return (bool)__Pyx_PyInt_AsUnsignedShort(x);
        else
            return (bool)__Pyx_PyInt_AsSignedShort(x);
    } else if (sizeof(bool) == sizeof(int)) {
        if (is_unsigned)
            return (bool)__Pyx_PyInt_AsUnsignedInt(x);
        else
            return (bool)__Pyx_PyInt_AsSignedInt(x);
    } else if (sizeof(bool) == sizeof(long)) {
        if (is_unsigned)
            return (bool)__Pyx_PyInt_AsUnsignedLong(x);
        else
            return (bool)__Pyx_PyInt_AsSignedLong(x);
    } else if (sizeof(bool) == sizeof(PY_LONG_LONG)) {
        if (is_unsigned)
            return (bool)__Pyx_PyInt_AsUnsignedLongLong(x);
        else
            return (bool)__Pyx_PyInt_AsSignedLongLong(x);
    }  else {
        bool val;
        PyObject *v = __Pyx_PyNumber_Int(x);
        #if PY_VERSION_HEX < 0x03000000
        if (likely(v) && !PyLong_Check(v)) {
            PyObject *tmp = v;
            v = PyNumber_Long(tmp);
            Py_DECREF(tmp);
        }
        #endif
        if (likely(v)) {
            int one = 1; int is_little = (int)*(unsigned char *)&one;
            unsigned char *bytes = (unsigned char *)&val;
            int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                          bytes, sizeof(val),
                                          is_little, !is_unsigned);
            Py_DECREF(v);
            if (likely(!ret))
                return val;
        }
        return (bool)-1;
    }
}

static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_bool(bool val) {
    const bool neg_one = (bool)-1, const_zero = (bool)0;
    const int is_unsigned = const_zero < neg_one;
    if ((sizeof(bool) == sizeof(char))  ||
        (sizeof(bool) == sizeof(short))) {
        return PyInt_FromLong((long)val);
    } else if ((sizeof(bool) == sizeof(int)) ||
               (sizeof(bool) == sizeof(long))) {
        if (is_unsigned)
            return PyLong_FromUnsignedLong((unsigned long)val);
        else
            return PyInt_FromLong((long)val);
    } else if (sizeof(bool) == sizeof(PY_LONG_LONG)) {
        if (is_unsigned)
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)val);
        else
            return PyLong_FromLongLong((PY_LONG_LONG)val);
    } else {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        return _PyLong_FromByteArray(bytes, sizeof(bool),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
    const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(unsigned char) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(unsigned char)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to unsigned char" :
                    "value too large to convert to unsigned char");
            }
            return (unsigned char)-1;
        }
        return (unsigned char)val;
    }
    return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
}

static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
    const unsigned short neg_one = (unsigned short)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(unsigned short) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(unsigned short)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to unsigned short" :
                    "value too large to convert to unsigned short");
            }
            return (unsigned short)-1;
        }
        return (unsigned short)val;
    }
    return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
}

static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
    const unsigned int neg_one = (unsigned int)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(unsigned int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(unsigned int)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to unsigned int" :
                    "value too large to convert to unsigned int");
            }
            return (unsigned int)-1;
        }
        return (unsigned int)val;
    }
    return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
}

static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
    const char neg_one = (char)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(char) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(char)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to char" :
                    "value too large to convert to char");
            }
            return (char)-1;
        }
        return (char)val;
    }
    return (char)__Pyx_PyInt_AsLong(x);
}

static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
    const short neg_one = (short)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(short) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(short)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to short" :
                    "value too large to convert to short");
            }
            return (short)-1;
        }
        return (short)val;
    }
    return (short)__Pyx_PyInt_AsLong(x);
}

static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
    const int neg_one = (int)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(int)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to int" :
                    "value too large to convert to int");
            }
            return (int)-1;
        }
        return (int)val;
    }
    return (int)__Pyx_PyInt_AsLong(x);
}

static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
    const signed char neg_one = (signed char)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(signed char) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(signed char)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to signed char" :
                    "value too large to convert to signed char");
            }
            return (signed char)-1;
        }
        return (signed char)val;
    }
    return (signed char)__Pyx_PyInt_AsSignedLong(x);
}

static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
    const signed short neg_one = (signed short)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(signed short) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(signed short)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to signed short" :
                    "value too large to convert to signed short");
            }
            return (signed short)-1;
        }
        return (signed short)val;
    }
    return (signed short)__Pyx_PyInt_AsSignedLong(x);
}

static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
    const signed int neg_one = (signed int)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(signed int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(signed int)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to signed int" :
                    "value too large to convert to signed int");
            }
            return (signed int)-1;
        }
        return (signed int)val;
    }
    return (signed int)__Pyx_PyInt_AsSignedLong(x);
}

static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) {
    const int neg_one = (int)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (sizeof(int) < sizeof(long)) {
        long val = __Pyx_PyInt_AsLong(x);
        if (unlikely(val != (long)(int)val)) {
            if (!unlikely(val == -1 && PyErr_Occurred())) {
                PyErr_SetString(PyExc_OverflowError,
                    (is_unsigned && unlikely(val < 0)) ?
                    "can't convert negative value to int" :
                    "value too large to convert to int");
            }
            return (int)-1;
        }
        return (int)val;
    }
    return (int)__Pyx_PyInt_AsLong(x);
}

static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
    const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (is_unsigned && unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to unsigned long");
            return (unsigned long)-1;
        }
        return (unsigned long)val;
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to unsigned long");
                return (unsigned long)-1;
            }
            return (unsigned long)PyLong_AsUnsignedLong(x);
        } else {
            return (unsigned long)PyLong_AsLong(x);
        }
    } else {
        unsigned long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (unsigned long)-1;
        val = __Pyx_PyInt_AsUnsignedLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
    const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (is_unsigned && unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to unsigned PY_LONG_LONG");
            return (unsigned PY_LONG_LONG)-1;
        }
        return (unsigned PY_LONG_LONG)val;
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to unsigned PY_LONG_LONG");
                return (unsigned PY_LONG_LONG)-1;
            }
            return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
        } else {
            return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x);
        }
    } else {
        unsigned PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (unsigned PY_LONG_LONG)-1;
        val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
    const long neg_one = (long)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (is_unsigned && unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to long");
            return (long)-1;
        }
        return (long)val;
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to long");
                return (long)-1;
            }
            return (long)PyLong_AsUnsignedLong(x);
        } else {
            return (long)PyLong_AsLong(x);
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (long)-1;
        val = __Pyx_PyInt_AsLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
    const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (is_unsigned && unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to PY_LONG_LONG");
            return (PY_LONG_LONG)-1;
        }
        return (PY_LONG_LONG)val;
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to PY_LONG_LONG");
                return (PY_LONG_LONG)-1;
            }
            return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
        } else {
            return (PY_LONG_LONG)PyLong_AsLongLong(x);
        }
    } else {
        PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (PY_LONG_LONG)-1;
        val = __Pyx_PyInt_AsLongLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
    const signed long neg_one = (signed long)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (is_unsigned && unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to signed long");
            return (signed long)-1;
        }
        return (signed long)val;
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to signed long");
                return (signed long)-1;
            }
            return (signed long)PyLong_AsUnsignedLong(x);
        } else {
            return (signed long)PyLong_AsLong(x);
        }
    } else {
        signed long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (signed long)-1;
        val = __Pyx_PyInt_AsSignedLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
    const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_VERSION_HEX < 0x03000000
    if (likely(PyInt_Check(x))) {
        long val = PyInt_AS_LONG(x);
        if (is_unsigned && unlikely(val < 0)) {
            PyErr_SetString(PyExc_OverflowError,
                            "can't convert negative value to signed PY_LONG_LONG");
            return (signed PY_LONG_LONG)-1;
        }
        return (signed PY_LONG_LONG)val;
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
            if (unlikely(Py_SIZE(x) < 0)) {
                PyErr_SetString(PyExc_OverflowError,
                                "can't convert negative value to signed PY_LONG_LONG");
                return (signed PY_LONG_LONG)-1;
            }
            return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x);
        } else {
            return (signed PY_LONG_LONG)PyLong_AsLongLong(x);
        }
    } else {
        signed PY_LONG_LONG val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (signed PY_LONG_LONG)-1;
        val = __Pyx_PyInt_AsSignedLongLong(tmp);
        Py_DECREF(tmp);
        return val;
    }
}

static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    #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);
    }
}

static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        #if PY_VERSION_HEX < 0x02050000
        return PyErr_Warn(NULL, message);
        #else
        return PyErr_WarnEx(NULL, message, 1);
        #endif
    }
    return 0;
}

#ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name,
    size_t size, int strict)
{
    PyObject *py_module = 0;
    PyObject *result = 0;
    PyObject *py_name = 0;
    char warning[200];

    py_module = __Pyx_ImportModule(module_name);
    if (!py_module)
        goto bad;
    #if PY_MAJOR_VERSION < 3
    py_name = PyString_FromString(class_name);
    #else
    py_name = PyUnicode_FromString(class_name);
    #endif
    if (!py_name)
        goto bad;
    result = PyObject_GetAttr(py_module, py_name);
    Py_DECREF(py_name);
    py_name = 0;
    Py_DECREF(py_module);
    py_module = 0;
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%s.%s is not a type object",
            module_name, class_name);
        goto bad;
    }
    if (!strict && ((PyTypeObject *)result)->tp_basicsize > (Py_ssize_t)size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility",
            module_name, class_name);
        #if PY_VERSION_HEX < 0x02050000
        if (PyErr_Warn(NULL, warning) < 0) goto bad;
        #else
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
        #endif
    }
    else if (((PyTypeObject *)result)->tp_basicsize != (Py_ssize_t)size) {
        PyErr_Format(PyExc_ValueError,
            "%s.%s has the wrong size, try recompiling",
            module_name, class_name);
        goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(py_module);
    Py_XDECREF(result);
    return NULL;
}
#endif

#ifndef __PYX_HAVE_RT_ImportModule
#define __PYX_HAVE_RT_ImportModule
static PyObject *__Pyx_ImportModule(const char *name) {
    PyObject *py_name = 0;
    PyObject *py_module = 0;

    #if PY_MAJOR_VERSION < 3
    py_name = PyString_FromString(name);
    #else
    py_name = PyUnicode_FromString(name);
    #endif
    if (!py_name)
        goto bad;
    py_module = PyImport_Import(py_name);
    Py_DECREF(py_name);
    return py_module;
bad:
    Py_XDECREF(py_name);
    return 0;
}
#endif

#include "compile.h"
#include "frameobject.h"
#include "traceback.h"

static void __Pyx_AddTraceback(const char *funcname, int __pyx_clineno,
                               int __pyx_lineno, const char *__pyx_filename) {
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    PyObject *py_globals = 0;
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;

    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(__pyx_filename);
    #else
    py_srcfile = PyUnicode_FromString(__pyx_filename);
    #endif
    if (!py_srcfile) goto bad;
    if (__pyx_clineno) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_globals = PyModule_GetDict(__pyx_m);
    if (!py_globals) goto bad;
    py_code = PyCode_New(
        0,            /*int argcount,*/
        #if PY_MAJOR_VERSION >= 3
        0,            /*int kwonlyargcount,*/
        #endif
        0,            /*int nlocals,*/
        0,            /*int stacksize,*/
        0,            /*int flags,*/
        __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,*/
        __pyx_lineno,   /*int firstlineno,*/
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    if (!py_code) goto bad;
    py_frame = PyFrame_New(
        PyThreadState_GET(), /*PyThreadState *tstate,*/
        py_code,             /*PyCodeObject *code,*/
        py_globals,          /*PyObject *globals,*/
        0                    /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    py_frame->f_lineno = __pyx_lineno;
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        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);
        }
        #else  /* Python 3+ has unicode identifiers */
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        ++t;
    }
    return 0;
}

/* Type Conversion Functions */

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 PyObject* __Pyx_PyNumber_Int(PyObject* x) {
  PyNumberMethods *m;
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_VERSION_HEX < 0x03000000
  if (PyInt_Check(x) || PyLong_Check(x))
#else
  if (PyLong_Check(x))
#endif
    return Py_INCREF(x), x;
  m = Py_TYPE(x)->tp_as_number;
#if PY_VERSION_HEX < 0x03000000
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = PyNumber_Long(x);
  }
#else
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Long(x);
  }
#endif
  if (res) {
#if PY_VERSION_HEX < 0x03000000
    if (!PyInt_Check(res) && !PyLong_Check(res)) {
#else
    if (!PyLong_Check(res)) {
#endif
      PyErr_Format(PyExc_TypeError,
                   "__%s__ returned non-%s (type %.200s)",
                   name, name, Py_TYPE(res)->tp_name);
      Py_DECREF(res);
      return NULL;
    }
  }
  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 = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}

static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
#if PY_VERSION_HEX < 0x02050000
   if (ival <= LONG_MAX)
       return PyInt_FromLong((long)ival);
   else {
       unsigned char *bytes = (unsigned char *) &ival;
       int one = 1; int little = (int)*(unsigned char*)&one;
       return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
   }
#else
   return PyInt_FromSize_t(ival);
#endif
}

static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
   unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
   if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
       return (size_t)-1;
   } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
       PyErr_SetString(PyExc_OverflowError,
                       "value too large to convert to size_t");
       return (size_t)-1;
   }
   return (size_t)val;
}


#endif /* Py_PYTHON_H */
#<

#>            gipsy.pyx
cimport c_numpy
from c_numpy cimport import_array, ndarray, PyArray_DATA
import sys, os, types, string, numpy, weakref, traceback

try:
   import pyfits
   import random
   has_pyfits = True
except:
   has_pyfits = False

try:
   from PyQt4 import QtCore, QtGui
   has_pyqt4 = True
except:
   has_pyqt4 = False

try:
   import gobject
   has_gtk = True
except:
   has_gtk = False

try:
   from Tkinter import tkinter
   has_tk = True
except:
   has_tk = False

if sizeof(long)<sizeof(long*):
   raise Exception("cannot run in this architecture: pointer longer than long")

import_array()

#  ==========================================================================
#                                Declarations                      
#  --------------------------------------------------------------------------

cdef extern from "stdlib.h":
   ctypedef int size_t
   void* malloc(size_t size)
   void free(void* ptr)

cdef extern from "stdio.h":
   pass

# This include is forced to be one of the first. If it is omitted, Pyrex
# will put it after all others. This causes the compilation to fail, probably
# due to some conflict with one of the preceding header files.
cdef extern from "numpy/arrayobject.h":
   pass

cdef extern from "f2cvvdefs.h":
   ctypedef int fint
   ctypedef int bool
   ctypedef struct fchar:
      char *a
      fint  l

cdef extern from "srvreq.h":
   void init_c()
   void finis_c()
   void myname_c(fchar)
   bool gipsytask_c()

   fint userint_c(fint *, fint *, fint *, fchar, fchar)
   fint userreal_c(float *, fint *, fint *, fchar, fchar)
   fint userdble_c(double *,fint *,fint *,fchar,fchar)
   fint userlog_c(bool *,fint *,fint *,fchar,fchar)
   fint userchar_c(fchar,fint *,fint *,fchar,fchar)
   fint usercharl_c(fchar,fint *,fint *,fchar,fchar)
   fint usercharu_c(fchar,fint *,fint *,fchar,fchar)
   fint usertext_c(fchar, fint*, fchar, fchar)

   void anyout_c(fint *, fchar)
   void status_c(fchar)
   void error_c(fint *,fchar)
   fint aborttask_c(fchar)
   void pause_c(fchar)

   void cancel_c(fchar)
   void reject_c(fchar,fchar)

   void xeq_c(fchar,fint *)
   fint xeqcont_c(fchar,fchar)
   void deputy_c(fchar,fint *)

   void wkey_c(fchar)
   void subst_c(fchar,fint *)

   void type_c(fchar)

cdef extern from "userangle.h":
   fint userangle_c(double *,fint *,fint *,fchar,fchar)

cdef extern from "decodeint.h":
   fint decodeint_c(fchar, fint *, fint *)

cdef extern from "decodedble.h":
   fint decodedble_c(fchar, double *, fint *)

cdef extern from "dcderrstr.h":
   void dcderrstr_c(fchar, fint *)

cdef extern from "keyevents.h":
   ctypedef void *ident
   ctypedef void (*KeyeventProc)(ident, char*, int, void*)
   ident ScheduleTimer(void(*)(ident, void*), int, void*)
   void  Deschedule(ident *)
   ident ScheduleKeyevent(KeyeventProc, char* , int, void*)
   void  DescheduleKeyevent(ident *)
   void  MainLoop() nogil

cdef extern from "herevents.h":
   int  HerConnect()
   void HerSignal()

cdef extern from "eventmonitor.h":
   bool c_eventmonitor "eventmonitor" (char *key, bool newstate)

cdef extern from "setfblank.h":
   void setfblank_c(float *)

cdef extern from "gdsd_basic.h":
   void gds_handle_c(fchar funval, fchar set, fint *err)
   void gds_create_c(fchar set, fint *err)
   void gds_close_c(fchar set, fint *err)
   fint gds_ftype_c(fchar set, fint *err )
   bool gds_exist_c(fchar set, fint *err )
   void gds_delete_c(fchar set, fint *err)
   void gdsd_delete_c(fchar set, fchar key, fint *level, fint *err)
   void gdsd_find_c(fchar funval, fchar set, fint *level, fint *record, fint *err)
   void gdsd_read_c(fchar set, fchar key, fint *level, char buf[],
                               fint *nb, fint *pos, fint *done, fint *err)
   void gdsd_write_c(fchar set, fchar key, fint *level, char buf[],
                                fint *nb, fint *pos, fint *done, fint *err)
   fint gdsd_length_c (fchar set, fchar key, fint *level, fint *err)

cdef extern from "gds_errstr.h":
   void gds_errstr_c(fchar,fint *)

cdef extern from "gds_extend.h":
   void gds_extend_c(fchar,fchar,double *,fint *,fint *)

cdef extern from "gdsc_axnum.h":
   fint gdsc_axnum_c(fchar,fchar,fint *)

cdef extern from "gdsc_name.h":
   void gdsc_name_c(fchar,fchar,fint *,fint *)

cdef extern from "gdsc_origin.h":
   double gdsc_origin_c(fchar,fint *,fint *)

cdef extern from "gdsc_size.h":
   fint gdsc_size_c(fchar,fint *,fint *)

cdef extern from "gdsc_range.h":
   fint gdsc_range_c(fchar,fint *,fint *,fint *,fint *)

cdef extern from "gdsc_grid.h":
   fint gdsc_grid_c(fchar,fint *,fint *,fint *)

cdef extern from "gdsc_word.h":
   fint gdsc_word_c(fchar,fint *,fint *,fint *,fint *)

cdef extern from "gdsc_ndims.h":
   fint gdsc_ndims_c(fchar,fint *)

cdef extern from "gdsd_type.h":
   void gdsd_type_c(fchar,fchar,fchar,fint *,fint *)

cdef extern from "gdsd_rreal.h":
   void gdsd_rreal_c(fchar,fchar,fint *,float *,fint *)

cdef extern from "gdsd_rdble.h":
   void gdsd_rdble_c(fchar,fchar,fint *,double *,fint *)

cdef extern from "gdsd_rint.h":
   void gdsd_rint_c(fchar,fchar,fint *,fint *,fint *)

cdef extern from "gdsd_rlog.h":
   void gdsd_rlog_c(fchar,fchar,fint *,bool *,fint *)

cdef extern from "gdsd_rchar.h":
   void gdsd_rchar_c(fchar,fchar,fint *,fchar,fint *)

cdef extern from "gdsd_wreal.h":
   void gdsd_wreal_c(fchar,fchar,fint *,float *,fint *)

cdef extern from "gdsd_wdble.h":
   void gdsd_wdble_c(fchar,fchar,fint *,double *,fint *)

cdef extern from "gdsd_wlog.h":
   void gdsd_wlog_c(fchar,fchar,fint *,bool *,fint *)

cdef extern from "gdsd_wint.h":
   void gdsd_wint_c(fchar,fchar,fint *,fint *,fint *)

cdef extern from "gdsd_wchar.h":
   void gdsd_wchar_c(fchar,fchar,fint *,fchar,fint *)

cdef extern from "gdsd_wvar.h":
   extern void gdsd_wvar_c(fchar,fchar,fint *,fchar,fint *)

cdef extern from "gdsa_tablis.h":
   void gdsa_tablis_c(fchar,fint *,fchar,fint *,fint *,fint *)

cdef extern from "gdsa_tabinq.h":
   void gdsa_tabinq_c(fchar,fint *,fchar,fchar,fint *,fint *,fint *)

cdef extern from "gdsa_crecol.h":
   void gdsa_crecol_c(fchar,fint *,fchar,fchar,fchar,fchar,fchar,fint *)

cdef extern from "gdsa_delcol.h":
   void gdsa_delcol_c(fchar,fint *,fchar,fchar,fint *)

cdef extern from "gdsa_colinq.h":
   void gdsa_colinq_c(fchar,fint *,fchar,fchar,fchar,fchar,fchar,fint *,fint *)

cdef extern from "gdsa_rcreal.h":
   void gdsa_rcreal_c(fchar,fint *,fchar,fchar,float *,fint *,fint *,fint *)

cdef extern from "gdsa_rcdble.h":
   void gdsa_rcdble_c(fchar,fint *,fchar,fchar,double *,fint *,fint *,fint *)

cdef extern from "gdsa_rcint.h":
   void gdsa_rcint_c(fchar,fint *,fchar,fchar,fint *,fint *,fint *,fint *)

cdef extern from "gdsa_rclog.h":
   void gdsa_rclog_c(fchar,fint *,fchar,fchar,bool *,fint *,fint *,fint *)

cdef extern from "gdsa_rcchar.h":
   void gdsa_rcchar_c(fchar,fint *,fchar,fchar,fchar,fint *,fint *,fint *)

cdef extern from "gdsa_wcreal.h":
   void gdsa_wcreal_c(fchar,fint *,fchar,fchar,float *,fint *,fint *,fint *)

cdef extern from "gdsa_wcdble.h":
    void gdsa_wcdble_c(fchar,fint *,fchar,fchar,double *,fint *,fint *,fint *)

cdef extern from "gdsa_wcint.h":
   void gdsa_wcint_c(fchar,fint *,fchar,fchar,fint *,fint *,fint *,fint *)

cdef extern from "gdsa_wclog.h":
   void gdsa_wclog_c(fchar,fint *,fchar,fchar,bool *,fint *,fint *,fint *)

cdef extern from "gdsa_wcchar.h":
   void gdsa_wcchar_c(fchar,fint *,fchar,fchar,fchar,fint *,fint *,fint *)

cdef extern from "gdsa_deltab.h":
   void gdsa_deltab_c(fchar,fint *,fchar,fint *)

cdef extern from "cotrans.h":
   fint cotrans_c(fchar,fint *,double *,double *,fint *)

cdef extern from "ncoords.h":
   fint ncoords_c(fchar)

cdef extern from "dcdpos.h":
   fint dcdpos_c(fchar,fint *,fchar,double *,fint *)

cdef extern from "gdsd_history.h":
   void gdsd_history_c(fchar,fint *)

cdef extern from "dcdsetdef.h":
   ctypedef struct dcdset_struct:
      char setname[1]  # should be arbitrary...
      fint *subsets
      fint status
   dcdset_struct *dcdset(char *)

cdef extern from "minmax3.h":
   void minmax3_c(float *,fint *,float *,float *,fint *,fint *)

cdef extern from "axtype.h":
   fint axtype_c(fchar,fchar,fchar,fint *,fint *,fint *)

cdef extern from "dcddble.h":
   fint dcddble_c(fchar,double *,fint *,fint *)

cdef extern from "factor.h":
   fint factor_c(fchar,fchar,double *)

cdef extern from "cubicspline.h":
   cdef extern void c_cubicspline "cubicspline" (
      float  *Xus,
      float  *Yus,   
      int    np,
      float  sampdist,
      float  **XusO,
      float  **YusO,
      int    *nout,
      float  *splineleningrids )

cdef extern from "scanline.h":
   cdef extern void scanline(
      int   *mask,
      int   xlo,
      int   xhi,
      int   ylo,
      int   yhi,
      float *polyX,
      float *polyY,
      int    ndat )  
      
cdef extern from "ellipsefill.h":
   cdef extern void ellipsefill(
      int   *mask,
      int   xlo,
      int   xhi,
      int   ylo,
      int   yhi,
      float *ellpar )

include "ggidecl.pxi"
include "pgplotdecl.pxi"

#  ==========================================================================
#                             Utility functions
#  --------------------------------------------------------------------------

#  --------------------------------------------------------------------------
#  uncaught: handle uncaught exception
#  --------------------------------------------------------------------------
def uncaught(type, value, trace):
   efmt = traceback.format_exception(type, value, trace)
   for line in efmt:
      anyout(line)
   error(4, 'Uncaught Python exception')

#  --------------------------------------------------------------------------
#  tofchar: convert a character object to an fchar
#  --------------------------------------------------------------------------
cdef fchar tofchar(object c):
   cdef fchar result
   result.a = c
   result.l = len(c)
   return result

#  --------------------------------------------------------------------------
#  newfchar: create a new fchar of the specified size
#  --------------------------------------------------------------------------
cdef fchar newfchar(size):
   cdef fchar result
   result.a = <char*>malloc(size+1)
   result.l = size
   result.a[size] = 0
   return result

#  --------------------------------------------------------------------------
#  delfchar: release the data part of an fchar
#  --------------------------------------------------------------------------
cdef delfchar(fchar f):
   free(f.a)

#  --------------------------------------------------------------------------
#  charlist: convert a list with strings to an array of pointers
#  --------------------------------------------------------------------------
cdef char **charlist(object cl):
   cdef char **result
   result = <char**>malloc((len(cl)+1)*sizeof(char*))
   i = 0
   for el in cl:
      result[i] = el
      i = i+1
   result[i] = NULL
   return result
   
#  --------------------------------------------------------------------------
#  toident: convert an ident stored in an integer object to an ident
#  --------------------------------------------------------------------------
cdef ident toident(object id):
   cdef long c_id
   c_id = id
   return <ident>c_id

#  --------------------------------------------------------------------------
#  minmax3: return tuple minimum, maximum, number of blanks
#  --------------------------------------------------------------------------
def minmax3(a):
   cdef long a_l
   cdef fint ndat_c, nblank_c, count_c
   cdef float amin_c, amax_c
   a_ptr = realptr(a); a_l = a_ptr.ptr; ndat_c = a_ptr.n
   count_c = 0
   minmax3_c(<float*>a_l, &ndat_c, &amin_c, &amax_c, &nblank_c, &count_c)
   return (amin_c, amax_c, nblank_c)

#  --------------------------------------------------------------------------
#  tokey: return a 'standard' user input keyword (uppercase, equals sign)
#  --------------------------------------------------------------------------
def tokey(a):
   if a[-1] != '=':
      a = a + '='
   return a.upper()

#  ==========================================================================
#                    Convert Python objects to C-arrays
#  --------------------------------------------------------------------------
#  These functions accomodate all useful numpy array variants, regardless of
#  alignment, contiguity, and type. If possible, the data in the array object
#  is used directly, but if necessary, a copy of the array is made using the
#  method astype().
#  An alternative to copying would have been using the stride, etc. information
#  in the array object, and transfer the data to malloc'd space.

#  --------------------------------------------------------------------------
#  realptr: obtain a Pointer object for type float
#  --------------------------------------------------------------------------
def realptr(object data, nitems=None, forcecast=True):
   cdef ndarray data_c, copy_c
   cdef float  *result_c
   cdef int requirements_c
   global numbertypes, native_f4
   datatype = type(data)
   if datatype is types.ListType:
      if nitems is None: nitems = len(data)
      result_c = <float*>malloc(nitems*sizeof(float))
      i = 0
      for element in data:
         result_c[i] = float(element)
         i = i+1
      result = Pointer(<long>result_c, True, nitems)
   elif datatype in numbertypes:
      result_c = <float*>malloc(sizeof(float))
      result_c[0] = float(data)
      result = Pointer(<long>result_c, True, 1)
   elif isinstance(data, numpy.ndarray):
      if nitems is None: nitems = data.size
      format = data.dtype.str
      data_c = <ndarray>data
      if format==native_f4 and data.flags.contiguous and data.flags.aligned:
         result = Pointer(<long>data_c.data, False, nitems)
      else:
         dcopy = data.astype(native_f4)
         copy_c = <ndarray>dcopy
         result = Pointer(<long>copy_c.data, False, nitems)
         result.array = dcopy
   else:
      raise TypeError("should be number, ndarray or list")
   return result

#  --------------------------------------------------------------------------
#  dbleptr: return a Pointer object for type double
#  --------------------------------------------------------------------------
def dbleptr(object data, nitems=None, forcecast=True):
   cdef ndarray data_c, copy_c
   cdef double *result_c
   cdef int requirements_c
   global numbertypes, native_f8
   datatype = type(data)
   if datatype is types.ListType:
      if nitems is None: nitems = len(data)
      result_c = <double*>malloc(nitems*sizeof(double))
      i = 0
      for element in data:
         result_c[i] = float(element)       # Python float IS double
         i = i+1
      result = Pointer(<long>result_c, True, nitems)
   elif datatype in numbertypes:
      result_c = <double*>malloc(sizeof(double))
      result_c[0] = data
      result = Pointer(<long>result_c, True, 1)
   elif datatype is numpy.ndarray:
      if nitems is None: nitems = data.size   
      format = data.dtype.str
      data_c = <ndarray>data
      if format==native_f8 and data.flags.contiguous and data.flags.aligned:
         result = Pointer(<long>data_c.data, False, nitems)
      else:
         dcopy = data.astype(native_f8)
         copy_c = <ndarray>dcopy
         result = Pointer(<long>copy_c.data, False, nitems)
         result.array = dcopy
   else:
      raise TypeError("should be number, ndarray or list")
   return result

#  --------------------------------------------------------------------------
#  fintptr: return a Pointer object for type fint
#  --------------------------------------------------------------------------
def fintptr(object data, nitems=None, forcecast=True):
   cdef ndarray data_c, copy_c
   cdef fint   *result_c
   cdef int requirements_c
   global numbertypes, native_i4
   datatype = type(data)
   if datatype is types.ListType:
      if nitems is None: nitems = len(data)
      result_c = <fint*>malloc(nitems*sizeof(fint))
      i = 0
      for element in data:
         result_c[i] = int(element)
         i = i+1
      result = Pointer(<long>result_c, True, nitems)
   elif datatype in numbertypes:
      result_c = <fint*>malloc(sizeof(fint))
      result_c[0] = data
      result = Pointer(<long>result_c, True, 1)
   elif datatype is numpy.ndarray:
      if nitems is None: nitems = data.size   
      format = data.dtype.str
      data_c = <ndarray>data
      if format==native_i4 and data.flags.contiguous and data.flags.aligned:
         result = Pointer(<long>data_c.data, False, nitems)
      else:
         dcopy = data.astype(native_i4)
         copy_c = <ndarray>dcopy
         result = Pointer(<long>copy_c.data, False, nitems)
         result.array = dcopy
   else:
      raise TypeError("should be number, ndarray or list")
   return result

#  --------------------------------------------------------------------------
#  boolptr: return a Pointer object for type bool  
#  --------------------------------------------------------------------------
#  This function does not support Numpy array objects.
#
def boolptr(object data, nitems=None):
   cdef ndarray data_c, copy_c
   cdef bool   *result_c
   cdef int requirements_c
   datatype = type(data)
   if datatype is types.BooleanType:
      result_c = <bool*>malloc(sizeof(bool))
      result_c[0] = data
      result = Pointer(<long>result_c, True, 1)
   elif datatype is types.ListType:
      if nitems is None: nitems = len(data)
      result_c = <bool*>malloc(nitems*sizeof(bool))
      i = 0
      for element in data:
         result_c[i] = element!=0
         i = i+1
      result = Pointer(<long>result_c, True, nitems)
   elif datatype in numbertypes:
      result_c = <bool*>malloc(sizeof(bool))
      result_c[0] = data!=0
      result = Pointer(<long>result_c, True, 1)
   else:
      anyout("datatype= %s" % repr(datatype))
      raise TypeError("should be number or list")
   return result

#  --------------------------------------------------------------------------
#  chardata: return an fchar struct
#  --------------------------------------------------------------------------
cdef fchar chardata(data, width, nitems):
   cdef fchar result
   cdef char *element_c
   result   = newfchar(width*nitems)
   result.l = width
   padding = ' '*width
   if type(data) is not types.ListType:
      data = [data]
      nitems = 1
   if nitems is None:
      nitems = len(data)
   i = 0
   for element in data:
      element   = (element + padding)[:width]
      element_c = &result.a[i*width]
      element_c = element
      i = i+1
   return result

#  ==========================================================================
#                               Pointer class
#  --------------------------------------------------------------------------
#  This class is used to manage pointers and other pointer-related objects
#  that must be cleaned up when the object goes out of scope.
#
#  Two options exist:
#  1. The pointer points to data which is inside another object.
#     In this case 'dyn' is False so that the data is not freed.
#     This is also the case when a special temporary object has been
#     created. This will be deleted via the normal Python mechanisms.
#  2. The pointer points to temporary data which has been malloc'd explicitly.
#     Then 'dyn' is True so that the data will be free'd eventually.
#
class Pointer(object):
   def __init__(self, ptr, dyn=False, n=1):
      self.ptr = ptr
      self.dyn = dyn
      self.n   = n
   def __del__(self):
      cdef long  ptr_l
      if self.dyn:
         ptr_l = self.ptr
         free(<void*>ptr_l) 

#  ==========================================================================
#                               Buffer class
#  --------------------------------------------------------------------------
#  Class implementing a container for binary data.
#
#  Create object:
#       b = Buffer(size)  # size is the container's size in bytes
#
#  Attributes:
#       b.size    - the container's size.
#       b.content - integer representation of a pointer to the container.
#
class Buffer(object):
   def __init__(self, size):
      cdef void *content_c
      content_c = malloc(size)
      self.content = <long>content_c
      self.size = size
   def __del__(self):
      cdef long content_c
      content_c = self.content
      free(<void*>content_c)
   def __len__(self):
      return self.size

#  ==========================================================================
#                                  Exceptions
#  --------------------------------------------------------------------------
class GipsyError(Exception):
   def __init__(self, value=None):
      self.value = value
   def __str__(self):
      return repr(self.value)
   
class XeqError(GipsyError):
   pass

class GgiError(GipsyError):
   pass

#  ==========================================================================
#                              KeyCallback Class
#  --------------------------------------------------------------------------
class KeyCallback(object):

#Attributes:
#   proc   -  function to be called upon a keyword event which matches 'mask'.
#             This function will be called with one argument: the current
#             object.
#   key    -  user input keyword
#   mask   -  event mask: bitwise OR of any of the codes KEYCHANGE, KEYCANCEL
#             and KEYREJECT
#   event  -  last event's code: KEYCHANGE, KEYCANCEL or KEYREJECT
#   active -  True if currently scheduled
#   ...    -  extra attributes defined by user

   KEYCHANGE = 1
   KEYCANCEL = 2
   KEYREJECT = 4

   scheduled = []

   def __init__(self, proc, key, mask=1, schedule=True, **attr):

# proc     - function to be called upon a keyword event, matching 'mask'.
# key      - user input keyword
# mask     - event mask
# schedule - if True: schedule callback immediately.
# attr     - keyword arguments defining extra attributes

      self.proc = proc
      self.key  = tokey(key)
      for cb in InputCallback.scheduled:
         if cb.key==self.key:
            raise GipsyError("Keyword %s already scheduled by InputCallback" % self.key)
      self.mask = mask
      for name in attr.keys():
         self.__dict__[name] = attr[name]
      self.__id   = 0
      self.active = False
      if schedule: self.schedule()

   def schedule(self):
      "activate the callback object"
      if self.__id:
         raise GipsyError("Callback object already active")
      selfkey = self.key
      self.__id = <long>ScheduleKeyevent(keyproc, selfkey, self.mask, <void*>self)
      self.active = True
      self.scheduled.append(self)

   def deschedule(self):
      "deactivate the callback object"
      cdef ident id
      if not self.__id:
         raise GipsyError("Callback object inactive")
      id = toident(self.__id)
      DescheduleKeyevent(&id)
      self.__id = 0
      self.active = False
      self.scheduled.remove(self)

# --------------------------------------------------------------------------
#                         KeyCallback helper function
# --------------------------------------------------------------------------
cdef void keyproc(ident id, char *key, int code, void *arg) with gil:
   cbobj = <object>arg
   cbobj.event = code
   try:
      cbobj.proc(cbobj)
   except:
      error(3, "Exception from gipsy.keyproc() (keyword %s)" % key)
      raise

#  ==========================================================================
#                              InputCallback Class
#  --------------------------------------------------------------------------
class InputCallback(object):

   scheduled=[]

   def __init__(self, proc, key, function=None, args={}, schedule=True,
                      active=True, **attr):

      self.proc = proc
      self.key  = tokey(key)
      for cb in KeyCallback.scheduled:
         if cb.key==self.key:
            raise GipsyError("Keyword %s already scheduled" % self.key)
      if function is None:
         self.function = usertext
      else:
         self.function = function
      self.args = args
      for name in attr.keys():
         self.__dict__[name] = attr[name]
      self.kcb = KeyCallback(self._receive, self.key, schedule=False)
      self.krj = KeyCallback(self._reject, self.key,
                             mask=KeyCallback.KEYREJECT, schedule=False)
      self.tcb = TimeCallback(self._send, 0.0, schedule=False)
      self.active = active
      self.queue = []
      if schedule:
         self.schedule()

   def _receive(self, cb):
      while True:
         value = self.function(cb.key, default=2, defval=None, **self.args)
         cancel(cb.key)
         if value is not None:
            self.queue.append(value)
         else:
            break
      if (not self.tcb.active) and self.active and self.queue:
         self.tcb.schedule()

   def _reject(self, cb):
      self.queue = [(cb.key,
                     usertext('UCAMESSAGE=', default=-1),
                     usertext('REJECTED=', default=-1))]
      wkey(cb.key)  # clear keyword's value(s)
      if (not self.tcb.active) and self.active and self.queue:
         self.tcb.schedule()

   def _send(self, cb):
      self.value = self.queue.pop(0)
      self.proc(self)
      if not self.queue:
         self.tcb.deschedule()

   def suspend(self):
      if self.active:
         self.active = False
         if self.queue and self.tcb.active:
            self.tcb.deschedule()

   def resume(self):
      if not self.active:
         self.active = True
         if self.queue:
            self.tcb.schedule()

   def schedule(self):
      self.scheduled.append(self)
      self.kcb.schedule()
      self.krj.schedule()
      self._receive(self.kcb)

   def deschedule(self):
      self.queue = []
      self.suspend()
      self.kcb.deschedule()
      self.krj.deschedule()
      self.scheduled.remove(self)

#  ==========================================================================
#                              TimeCallback Class
#  --------------------------------------------------------------------------
class TimeCallback(object):

# Attributes:
#   proc     -  function to be called each time when interval has expired.
#               This function will be called with one argument: the
#               current object.
#   interval -  time interval in seconds
#   active   -  True if currently scheduled
#   ...      -  extra attributes defined by user

   scheduled = []

   def __new__(cls, proc, interval, schedule=True, **attr):
      return super(TimeCallback, TimeCallback.cls).__new__(TimeCallback.cls)

   def __init__(self, proc, interval, schedule=True, **attr):

# proc     -  function to be called each time when interval has expired.
# interval -  time interval in seconds
# schedule -  if True: schedule callback immediately
# attr     -  keyword arguments defining extra attributes

      self.proc     = proc
      self.interval = interval
      for name in attr.keys():
         self.__dict__[name] = attr[name]
      self.__id     = 0
      self.active   = False
      if schedule: self.schedule()

   def schedule(self):
      "activate the callback object"
      if self.__id:
         raise GipsyError("Callback object already active")
      milliseconds = max(1,int(round(self.interval*1000.0)))
      self.__id    = <long>ScheduleTimer(timeproc, milliseconds, <void*>self)
      self.active = True
      self.scheduled.append(self)

   def deschedule(self):
      "deactivate the callback object"
      cdef ident id
      if not self.__id:
         raise GipsyError("Callback object inactive")
      id = toident(self.__id)
      Deschedule(&id)
      self.__id = 0
      self.active = False
      self.scheduled.remove(self)
TimeCallback.cls = TimeCallback

# Unsupported event loop:
# 
class TimeCallback_NotImpl(TimeCallback):
   def __init__(self, proc, interval, schedule=True, **attr):
      raise GipsyError("TimeCallback not implemented for this event loop")

# Qt4Agg:
#
if has_pyqt4:
   class TimeCallback_QT4(TimeCallback):

      def __init__(self, proc, interval, schedule=True, **attr):
         self.proc     = proc
         self.interval = interval
         for name in attr.keys():
            self.__dict__[name] = attr[name]
         self.active   = False
         self.timer = QtCore.QTimer()   
         QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"),
                                self.reached)
         if schedule: self.schedule()
            
      def schedule(self):
         if self.active:
            return
         self.set_interval(self.interval)
         self.timer.start()
         self.active = True
         self.scheduled.append(self)

      def deschedule(self):
         if not self.active:
            return
         self.timer.stop()
         self.active = False 
         self.scheduled.remove(self)

      def set_interval(self, interval):
         self.interval = interval
         milliseconds = max(1,int(round(self.interval*1000.0)))
         self.timer.setInterval(milliseconds)
 
      def reached(self):
         self.proc(self)

# GTK:
#
if has_gtk:
   class TimeCallback_GTK(TimeCallback):
         
      def schedule(self):
         if self.id:
            return
         milliseconds = max(1,int(round(self.interval*1000.0)))
         self.id    = gobject.timeout_add(milliseconds, self.reached)
         self.active = True
         self.scheduled.append(self)

      def deschedule(self):
         if not self.id:
            return
         gobject.source_remove(self.id)
         self.id = 0
         self.active = False
         self.scheduled.remove(self)

      def reached(self):
         self.proc(self)
         return True

# --------------------------------------------------------------------------
#                           TimeCallback helper function
# --------------------------------------------------------------------------
cdef void timeproc(ident id, void *arg) with gil:
   cbobj = <object>arg
   cbobj.proc(cbobj)

#  ==========================================================================
#                              Hermes communication                          
#  --------------------------------------------------------------------------

stdkey = "INPUT="

def init():
   "Initialize task's communication with Hermes. See init.dc2"
   global native_f4, native_f8, native_i4, native_i8
   global numbertypes
   gipsytask_c()
   init_c()
   if sys.byteorder=='little':
      native_f4  = '<f4'
      native_f8  = '<f8'
      native_i4  = '<i4'
      native_i8  = '<i8'
   else:
      native_f4  = '>f4'
      native_f8  = '>f8'
      native_i4  = '>i4'
      native_i8  = '>i8'
   numbertypes = [types.FloatType,
                  types.IntType,
                  numpy.float32,
                  numpy.float64,
                  numpy.int32,
                  numpy.int64]
   sys.excepthook = uncaught

def finis():
   "Terminate task. See finis.dc2"
   finis_c()

def xeq(cmd, keyword=None):

# Start another task. If keyword is not specified,
# the task will wait until the other task is finished.
# Otherwise the task will continue to run and can read
# from the keyword to find out about the other task.
# See xeq.dc2 and xeqcont.dc2.

   cdef fint err_c
   if keyword:
      err = xeqcont_c(tofchar(tokey(keyword)), tofchar(cmd))
      if err<0:
         raise XeqError("Cannot execute")
   else:
      xeq_c(tofchar(cmd), &err_c)
      if err_c<0:
         msgs = ["Cannot execute", "Exited prematurely", "Fatal error", "Crashed", "User abort"]
         raise XeqError(msgs[-err_c-1])

def deputy(cmd):
   cdef fint err_c
   deputy_c(tofchar(cmd), &err_c)
   if err_c<0:
      raise XeqError("Deputy error, code= %d" % err_c)

def usertext(keyword=stdkey, message="Enter text string", default=0, defval=None, nmax=256):

# Read a text string from the user. 'nmax' is the maximum number of characters
# to be returned.
# See usertext.dc2

   cdef fchar c_result
   cdef fint  c_default
   cdef bytes result
   c_result = newfchar(nmax)
   c_default = default
   nc = usertext_c(c_result, &c_default, tofchar(tokey(keyword)),
                   tofchar(message))
   if nc:
      c_result.a[nc] = 0
      result = c_result.a
   else:
      result = defval
   delfchar(c_result)
   return result

def userint(keyword=stdkey, message=None, default=0, defval=0, nmax=1):

# Read a list of integer numbers from the user.
# No more that 'nmax' numbers can be given. If no input is given, the value   
# of argument 'defval' will be returned.
# See userint.dc2 

   cdef fint *c_result, c_default, c_nmax, i
   c_result  = <fint*>malloc(nmax*sizeof(fint))
   c_default = default
   c_nmax    = nmax
   if message is None:
      message = "Enter up to %d integer number(s)" % nmax
   n = userint_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                 tofchar(message))
   if not n: return defval
   if nmax==1:
      result = c_result[0]
   else:
      result = []
      for i from 0 <= i < n:
         result.append(c_result[i])
   free(c_result)
   return result

def userlog(keyword=stdkey, message=None, default=0, defval=0, nmax=1):

# Read a list of boolean values (logicals) from the user.
# No more that 'nmax' values can be given. If no input is given, the value
# of argument 'defval' will be returned.
# See userlog.dc2

   cdef bool *c_result
   cdef fint c_default, c_nmax, i
   c_result  = <bool*>malloc(nmax*sizeof(fint))
   c_default = default
   c_nmax    = nmax
   if message is None:
      message = "Enter up to %d logical(s)" % nmax
   n = userlog_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                 tofchar(message))
   if not n: return defval
   result = []
   for i from 0 <= i < n:
      if c_result[i]:
         result.append(True)
      else:
         result.append(False)
   if nmax==1:
      result = result[0]
   free(c_result)
   return result

def userreal(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):

# Read a list of real numbers from the user.
# No more that 'nmax' numbers can be given. If no input is given, the value   
# of argument 'defval' will be returned.
# See userreal.dc2 

   cdef float *c_result
   cdef fint  c_default, c_nmax, i
   c_result  = <float*>malloc(nmax*sizeof(float))
   c_default = default
   c_nmax    = nmax
   if message is None:
      message = "Enter up to %d real number(s)" % nmax
   n = userreal_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                  tofchar(message))
   if not n: return defval
   if nmax==1:
      result = c_result[0]
   else:
      result = []
      for i from 0 <= i < n:
         result.append(c_result[i])
   free(c_result)
   return result

def userdble(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):

# Read a list of double precision numbers from the user.
# No more that 'nmax' numbers can be given. If no input is given, the value
# of argument 'defval' will be returned.
# See userdble.dc2

   cdef double *c_result
   cdef fint  c_default, c_nmax, i
   c_result  = <double*>malloc(nmax*sizeof(double))
   c_default = default
   c_nmax    = nmax
   if message is None:
      message = "Enter up to %d double(s)" % nmax
   n = userdble_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                  tofchar(message))
   if not n: return defval
   if nmax==1:
      result = c_result[0]
   else:
      result = []
      for i from 0 <= i < n:
         result.append(c_result[i])
   free(c_result)
   return result

def userchar(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):

# Read a list of character strings from the user.
# No more that 'nmax' strings can be given and each string can
# be 'width' characters wide. If no input is given, the value
# of argument 'defval' will be returned.
# See userchar.dc2

   cdef fint c_default, c_nmax, i
   cdef fchar c_result
   cdef bytes results
   c_default  = default
   c_nmax     = nmax
   c_result   = newfchar(width*nmax)
   c_result.l = width
   if message is None:
      message = "Enter up to %d text string(s)" % nmax
   n = userchar_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                  tofchar(message))
   results = c_result.a
   if not n: return defval
   if nmax==1:
      result = results[0:width].rstrip()
   else:
      result = []
      for i from 0 <= i < n:
         result.append(results[i*width:(i+1)*width].rstrip())
   delfchar(c_result)
   return result


def usercharu(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):

# Read a list of character strings from the user.
# No more that 'nmax' strings can be given and each string can
# be 'width' characters wide. If no input is given, the value
# of argument 'defval' will be returned.
# See usercharu.dc2

   cdef fint c_default, c_nmax, i
   cdef fchar c_result
   cdef bytes results
   c_default  = default
   c_nmax     = nmax
   c_result   = newfchar(width*nmax)
   c_result.l = width
   if message is None:
      message = "Enter up to %d text string(s)" % nmax
   n = usercharu_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                  tofchar(message))
   results = c_result.a
   if not n: return defval
   if nmax==1:
      result = results[0:width].rstrip()
   else:
      result = []
      for i from 0 <= i < n:
         result.append(results[i*width:(i+1)*width].rstrip())
   delfchar(c_result)
   return result


def usercharl(keyword=stdkey, message=None, default=0, defval=None, width=256, nmax=1):

# Read a list of character strings from the user.
# No more that 'nmax' strings can be given and each string can
# be 'width' characters wide. If no input is given, the value
# of argument 'defval' will be returned.
# See usercharl.dc2

   cdef fint c_default, c_nmax, i
   cdef fchar c_result
   cdef bytes results
   c_default  = default
   c_nmax     = nmax
   c_result   = newfchar(width*nmax)
   c_result.l = width
   if message is None:
      message = "Enter up to %d text string(s)" % nmax
   n = usercharl_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),
                  tofchar(message))
   results = c_result.a
   if not n: return defval
   if nmax==1:
      result = results[0:width].rstrip()
   else:
      result = []
      for i from 0 <= i < n:
         result.append(results[i*width:(i+1)*width].rstrip())
   delfchar(c_result)
   return result

def userangle(keyword=stdkey, message=None, default=0, defval=0.0, nmax=1):

# Read a list of angles from the user. 
# No more that 'nmax' angles can be given. If no input is given,   
# the value of argument 'defval' will be returned.  

   cdef double *c_result
   cdef fint  c_default, c_nmax, i
   c_result  = <double*>malloc(nmax*sizeof(double))
   c_default = default
   c_nmax    = nmax
   if message is None:
      message = "Enter up to %d angle(s)" % nmax
   n = userangle_c(c_result, &c_nmax, &c_default, tofchar(tokey(keyword)),  
                     tofchar(message))
   if not n: return defval
   if nmax==1:
      result = c_result[0]
   else:
      result = []
      for i from 0 <= i < n:
         result.append(c_result[i])
   free(c_result)
   return result


def wkey(keystring,task=""):

# Define or modify a user input keyword. If 'task' is specified,
# it is done for an active task running under that name,
# otherwise it is done for the calling task.

   if task: task = task + " "
   wkey_c(tofchar(task + keystring))

def typecli(text):

   "Type characters into Hermes' User Command Area. See type.dc2"
   type_c(tofchar(text))

def cancel(keyword=stdkey):
   "Cancel user input. See cancel.dc2"
   cancel_c(tofchar(tokey(keyword)))

def reject(keyword=stdkey, message="Input not acceptable"):
   "Reject user input. See reject.dc2"
   reject_c(tofchar(tokey(keyword)), tofchar(message))

def subst(substring):
   "Keyword substition for deputy tasks. See subst.dc2"
   cdef fint err_c
   subst_c(tofchar(substring.upper()), &err_c)
   if err_c<0:
      msgs = ["odd number of keywords", "bad keyword", "insufficient space"]
      raise GipsyError(msgs[-err_c-1])

def anyout(text, dev=0):
   cdef fint  c_dev
   c_dev = dev
   lines = text.splitlines()
   for line in lines:
      line = line.expandtabs()
      anyout_c(&c_dev, tofchar(line))

def error(level=4, message="An error has occurred"):
   "Error reporting and handling. See error.dc2"
   cdef fint level_c
   level_c = level
   error_c(&level_c, tofchar(message))
   
def aborttask(taskname):
   "Abort a task, given its name"
   result = aborttask_c(tofchar(taskname))
   if result:
      raise GipsyError("Cannot abort task '%s'. Not found." % taskname)

def pause(message=""):
   "Suspend task. See pause.dc2"
   pause_c(tofchar(message))

def status(message):
   "Display status message. See status.dc2"
   status_c(tofchar(message))

def decodeint(expr, nmax=4096): # test value; later: increase nmax
   "Decode a GIPSY integer expreession. See decodeint.dc2"
   cdef fint *buffer
   cdef fint nmax_c=nmax
   cdef fint status_c
   buffer = <fint*>malloc(nmax*sizeof(fint))
   status = decodeint_c(tofchar(expr), buffer, &nmax_c)
   if status>0:
      if nmax==1:
         result = buffer[0]
      else:
         result = []
         for i in xrange(status):
            result.append(buffer[i])
      free(buffer)
      return result
   else:
      free(buffer)
      status_c = status
      c_errmsg = newfchar(80)
      dcderrstr_c(c_errmsg, &status_c)
      errmsg = c_errmsg.a
      errmsg = errmsg.rstrip()
      delfchar(c_errmsg)
      raise GipsyError(errmsg)

def decodefloat(expr, nmax=4096): # test value; later: increase nmax
   "Decode a GIPSY integer expreession. See decodeint.dc2"
   cdef double *buffer
   cdef fint nmax_c=nmax
   cdef fint status_c
   buffer = <double*>malloc(nmax*sizeof(double))
   status = decodedble_c(tofchar(expr), buffer, &nmax_c)
   if status>0:
      if nmax==1:
         result = buffer[0]
      else:
         result = []
         for i in xrange(status):
            result.append(buffer[i])
      free(buffer)
      return result
   else:
      free(buffer)
      status_c = status
      c_errmsg = newfchar(80)
      dcderrstr_c(c_errmsg, &status_c)
      errmsg = c_errmsg.a
      errmsg = errmsg.rstrip()
      delfchar(c_errmsg)
      raise GipsyError(errmsg)

def herconnect():
   "Get file descriptor for receiving Hermes events. See HerConnect.dc3"
   return HerConnect()

def eventmonitor(char *key=NULL, bool state=True):
   return c_eventmonitor(key, state)

def hersignal(fd=0):
   "Cause pending Hermes events to be processed. See HerSignal.dc3"
   HerSignal()   

def qtconnect():
   global gip_nfy
   if not has_pyqt4:
      raise GipsyError("Cannot connect to PyQt4")
   fd = herconnect()
   gip_nfy = QtCore.QSocketNotifier(fd, QtCore.QSocketNotifier.Read)
   gip_nfy.connect(gip_nfy, QtCore.SIGNAL("activated(int)"), hersignal)
   TimeCallback.cls = TimeCallback_QT4

def _gtkio(source, cb_condition):
#  Callback function for GTK io_add_watch()"
   hersignal()
   return True
def gtkconnect():
   global gip_nfy
   if not has_gtk:
      raise GipsyError("Cannot connect to GTK")
   fd = herconnect()
   gip_nfy = gobject.io_add_watch(fd, gobject.IO_IN, _gtkio)
   TimeCallback.cls = TimeCallback_GTK

def _tkio(fd, mask):
#  Callback function for Tk createfilehandler()
   hersignal()
def tkconnect():
   global gip_nfy
   if not has_tk:
      raise GipsyError("Cannot connect to Tk")
   fd = herconnect()
   tkinter.createfilehandler(fd, tkinter.READABLE, _tkio)
   TimeCallback.cls = TimeCallback_NotImpl

def mainloop():
   with nogil:
      MainLoop()

def myname():
   "Obtain current task name. See myname.dc2"
   cdef fchar c_result
   cdef bytes result
   c_result = newfchar(20)
   myname_c(c_result)
   result = c_result.a
   result = result.rstrip()
   delfchar(c_result)
   return result

def cubicspline(xus, yus, sampdist):
   cdef long xus_l, yus_l
   cdef float *xus0_c, *yus0_c, splg_c
   cdef fint nout_c, i
   xus_ptr = realptr(xus); xus_l = xus_ptr.ptr; np_c = xus_ptr.n
   yus_ptr = realptr(yus); yus_l = yus_ptr.ptr
   c_cubicspline(<float*>xus_l, <float*>yus_l, np_c, sampdist,
                 &xus0_c, &yus0_c, &nout_c, &splg_c)
   xus0 = []
   yus0 = []
   for i from 0 <= i < nout_c:
      xus0.append(xus0_c[i])
      yus0.append(yus0_c[i])
   free(xus0_c)
   free(yus0_c)
   return (xus0, yus0, splg_c)

def polymask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, polyX, polyY):
   cdef int np_c
   cdef long polyX_l, polyY_l
   cdef object result_c
   polyX_ptr = realptr(polyX); polyX_l = polyX_ptr.ptr; np_c = polyX_ptr.n
   polyY_ptr = realptr(polyY); polyY_l = polyY_ptr.ptr; np_c = polyY_ptr.n
   result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
   result_c = <object>result
   scanline(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
            <float*>polyX_l, <float*>polyY_l, np_c)
   return result

def ellipsemask(int xlo_c, int ylo_c, int xhi_c, int yhi_c, ellpar):
   cdef long ellpar_l
   cdef object result_c
   if len(ellpar)!=5:
      raise ValueError('Bad ellipse parameters')
   ellpar_ptr = realptr(ellpar,5); ellpar_l = ellpar_ptr.ptr
   result = numpy.zeros((yhi_c-ylo_c+1, xhi_c-xlo_c+1), dtype=numpy.int32)
   result_c = <object>result
   ellipsefill(<int*>PyArray_DATA(result_c), xlo_c, ylo_c, xhi_c, yhi_c,
               <float*>ellpar_l)
   return result

def evalexpr(expr, nmax=1):
   return decodefloat(expr, nmax)

def evalexpr_old(expr, fint nmax=1):
   cdef double *c_result
   cdef fint c_ierh
   c_result  = <double*>malloc(nmax*sizeof(double))
   n = dcddble_c(tofchar(expr), c_result, &nmax, &c_ierh)
   if c_ierh<0:
      raise GipsyError('Bad expression (code %d from herinp.dc2) "%s"' % (c_ierh, expr))
   if nmax==1:
      result = c_result[0]
   else:
      result = []
      for i from 0 <= i < n:
         result.append(c_result[i])
   free(c_result)
   return result

def unitfactor(unit1, unit2):
   cdef double c_result
   status = factor_c(tofchar(unit1), tofchar(unit2), &c_result)
   if status!=0:
      raise GipsyError('Cannot convert "%s" to "%s" (%d)'
                                                     % (unit1, unit2, status))
   return c_result

#  ==========================================================================
#                              GDS exception
#  --------------------------------------------------------------------------
class GdsError(GipsyError):
   def __init__(self, errno=None, msg='undefined error'):
      self.args  = (errno, msg)
      self.errno = errno
      self.msg   = msg
   def __str__(self):
      return('%s (%s)' % (self.msg, self.errno))

def raiseGds(err):
   cdef fint  err_c
   cdef fchar errstr_c
   cdef bytes result
   err_c = err
   errstr_c = newfchar(80)
   gds_errstr_c(errstr_c, &err_c)
   errstr = errstr_c.a
   delfchar(errstr_c)
   raise GdsError(err, errstr.rstrip())

#  ==========================================================================
#                              GDS Set Header Class
#  --------------------------------------------------------------------------
#
#  GDS Set Header class
#
#  Every set object "owns" an object of this class. It is a subclass of
#  dict with the following behaviour:
#
#  - keys will be converted to uppercase.
#  - when an item is modified, a modified version is kept in the SetHeader
#    object. The GDS set is not affected until the method commit() has
#    been called, which causes all changes to be written to the set.
#  - when an item is referenced, if a modified value is exists, this will
#    be returned. Otherwise the value from the set is returned.
#  - for the rest, the normal dict behaviour applies.
#
class SetHeader(dict):

   def __init__(self, set):
      self.set = weakref.proxy(set)                    # "owning" set object
      
   def has_key(self, key):
      return key in self
      
   def __contains__(self, key):
      return dict.__contains__(self, gdskey(key)) or key in self.set
 
   def __getitem__(self, key):
      try:
         return super(SetHeader, self).__getitem__(gdskey(key))
      except:
         return self.set[key]
         
   def __setitem__(self, key, value):
      super(SetHeader, self).__setitem__(gdskey(key), value)
   
   def commit(self):
      for key, value in super(SetHeader, self).items():
         self.set[key] = value
         
#  --------------------------------------------------------------------------
#                             Set Header utility function
#  --------------------------------------------------------------------------
def gdskey(key):
   try:
      if type(key) is types.StringType:
         return key.upper()                            # bare header keyword
      elif len(key)==2:
         return (key[0], key[1].upper())               # level + header keyword
      else:
         raise Exception
   except:
      raise GipsyError('invalid header key: %s' % str(key))

#  ==========================================================================
#                              GDS Set Class
#  --------------------------------------------------------------------------
cdef float blankpixel_c
setfblank_c(&blankpixel_c)
blankpixel = blankpixel_c

#  detect alternative header
#
def __alter_wcs(header):
   result = []
   for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
      try:
         header['CTYPE1'+c]
         result.append(c)
      except:
         pass
   return result

#  translate alternative to standard header element
#
def __subst_key_wcs(header, key, a):
   try:
      del header[key]
   except:
      pass
   try:
      header.update(key, header[key+a])
   except:
      pass

#  transform alternative to standard header
#
def __substitute_wcs(header, a):
   a = a[0].upper()
   if a==' ':
      return
   naxis = header['NAXIS']
   for axis in range(1, naxis+1):
      for name in ['CTYPE', 'CUNIT', 'CRVAL', 'CDELT', 'CRPIX', 'CNAME',
                   'CRDER', 'CSYER']:
         __subst_key_wcs(header, name+str(axis), a)

   for key in ['WCSAXES', 'RESTFRQ', 'RESTWAV', 'EQUINOX', 'RADESYS',
               'LONPOLE', 'LATPOLE', 'SPECSYS', 'SSYSOBS', 'SSYSSRC',
               'VELOSYS', 'ZSOURCE', 'VELANGL']:
      __subst_key_wcs(header, key, a)

   for i in range(1, naxis+1):
      for j in range(1, naxis+1):
         __subst_key_wcs(header, 'PC%d_%d'    % (i,j), a)
         __subst_key_wcs(header, 'PC%03d%03d' % (i,j), a)
         __subst_key_wcs(header, 'CD%d_%d'    % (i,j), a)
         __subst_key_wcs(header, 'CD%03d%03d' % (i,j), a)

   for i in range(1, naxis+1):
      for m in range(100):
         __subst_key_wcs(header, 'PV%d_%d' % (i, m), a)
         __subst_key_wcs(header, 'PS%d_%d' % (i, m), a)


class Set(object):

# GDS Set Class.
# 
# Attributes:
# 
#   blo      - list of 'lower left' grid coordinates of current box.
#   bhi      - list of 'upper right' grid coordinates of current box.
#  
#   slo      - list of 'lower left' grid coordinates of set.
#   shi      - list of 'upper right' grid coordinates of set.
# 
#   image    - NumPy ndarray containing the set's image data.
#   header   - SetHeader object associated with the Set object
# 
#   naxis    - set's number of axes.
#   ncoords  - set's number of coordinates (including 'hidden' coordinates)
#   axnames  - list with axis names.
# 
#   subsets  - list of subset coordinate words.
#
#   fits     - True if set is FITS 'pseudo set'
#   fitsname - FITS pseudo set's filename
#   hdunum   - FITS HDU number
#   altwcs   - alternative WCS version code
#             
# Note:
# -----
# The previous Numarray-based implementation defined the following extra
# attributes and method of the image attribute object:
# -  gdsset    - Set object from which image originates.
# -  gdslevel  - image's subset coordinate word.
# -  wminmax() - update (whole) subset's DATAMIN, DATAMAX and NBLANK
#
# With NumPy this is not possible anymore and this functionality has
# been dropped. In principle it can be re-introduced in a new subclass,
# but this will only be done when there is an explicit need for it.

   max_cword = 2**31-1 # maximum coordinate word 

   handles   = {}    #  dictionary of set handles -> (image, reference count)
   fitsfiles = {}    #  dictionary of FITS files -> (hdulist, reference count)
   fitsseqno = 0     #  FITS file sequence number for pseudo set name

   def __init__(self, setspec, create=False, write=False, gethdu=None,
                      getalt=None):

# setspec: Set, subset specification string e.g., "aurora freq 1 2 3".
#          Instead of a setname, a FITS file name can also be used.
# create:  True if set is to be created, False otherwise.
# write:   True if set is to be written to, False otherwise:
# gethdu:  For FITS pseudo sets: optional function returning a HDU number.

      cdef fint  err_c, err_c2
      cdef fchar handle_c
      cdef bytes handle

      err_c = 0
      self.open   =  False
      self.fits   =  False
      self.level  = -1
      self.blank  = blankpixel
      self.hdunum = None
      self.altwcs = None
      self.alters = []
      
      if create:                                     # ---  new set
         self.name = setspec
         gds_create_c(tofchar(self.name), &err_c)
         if err_c<0:
            raiseGds(err_c)
         write = True
         self.subsets = [0]
      else:                                          # ---  existing set
         try:
            try:
               ###  warning: getsas() always closes the set
               #    invalidating the set handle.
               self.name, self.subsets = getsas(setspec)
            except:
               self.name = setspec.split()[0]
               err_c = 0
               if not gds_exist_c(tofchar(self.name), &err_c):
                  exists = False
                  if err_c<0:
                     err_c2 = err_c
                     err_c = 0
                     raiseGds(err_c2)
                  else:
                     raise GdsError(-5, "GDS -- set does not exist")
               else:
                  exists = True
                  raise
         except:                                     # ---  FITS pseudo set
            if has_pyfits and not exists:
               hduname, subsets = (setspec.split(None, 1)+[''])[:2]
               filename, farg1, farg2 = (hduname.split('#')+['',''])[:3]
               hdunum = None
               altwcs = None
               for farg in (farg1,farg2):
                  if farg:
                     try:
                        hdunum = int(farg)
                     except:
                        altwcs = farg.upper()
               if filename in self.fitsfiles:
                  hdulist, refs= self.fitsfiles[filename]
               else:
                  try:
                     hdulist = pyfits.open(filename, memmap=True)
                     refs = 0
                  except:
                     raise GdsError(-5, "GDS -- set does not exist")

               self.fitsfiles[filename] = (hdulist, refs+1)
               self.hdulist = hdulist

               if hdunum is None:
                  if len(hdulist)>1:
                     if gethdu is not None:
                        hdunum = gethdu(hdulist)
                     else:
                        raise GdsError(-1, "%s: unspecified HDU" % filename)
                  else:
                     hdunum = 0

               self.fitsname = filename
               self.hdunum   = hdunum
               try:
                  hdu = hdulist[hdunum]
               except:
                  raise GdsError(-1, "%s: HDU %s does not exist"
                                 % (filename, hdunum) )
               if 'XTENSION' in hdu.header:
                  xtn = hdu.header['XTENSION']
                  if xtn!='IMAGE':
                     raise GdsError(-1, "%s: HDU %s has EXTENSION=%s"
                                    % (filename, hdunum, xtn) )
               header = hdu.header.copy()

               self.alters = __alter_wcs(header)            # alternative WCS?
               if altwcs:
                  self.altwcs = altwcs
               elif self.alters and getalt:
                  self.altwcs = getalt(self.alters, header).upper()
               if self.altwcs in self.alters:
                  __substitute_wcs(header, self.altwcs)
               elif self.altwcs:
                  raise GdsError(-1, "%s: non-existing alternative WCS '%s'" %
                                      (filename, altwcs))

               self.name = '_tmp_%d_%d' % (os.getpid(), self.fitsseqno)
               Set.fitsseqno += 1
               gds_create_c(tofchar(self.name), &err_c)
               if err_c<0:
                  raiseGds(err_c)
               handle_c = newfchar(20)
               gds_handle_c(handle_c, tofchar(self.name), &err_c)
               handle = handle_c.a
               self.spec    = setspec
               self.handle  = handle
               self.open    = True
               self.wmode   = True
               delfchar(handle_c)
               write = False
               done = ['NAXIS']
               for axis in range(1,header['NAXIS']+1):
                  ctypei = 'CTYPE%d' % axis
                  crpixi = 'CRPIX%d' % axis
                  naxisi = 'NAXIS%d' % axis
                  try:
                     ctype = header[ctypei]
                     if ctype==' ':
                        raise Exception
                  except:
                     ctype = 'X%d' % axis
                  try:
                     crpix = header[crpixi]
                  except:
                     crpix = 0.0
                  self.extend(ctype, crpix, header[naxisi])
                  done.append(ctypei)
                  done.append(crpixi)
                  done.append(naxisi)
                  self['CRVAL%d' % axis] = 0.0
               for card in header.ascard:
                  try:
                     key = card.key
                     if key not in done:
                        if key=='HISTORY':
                           self.whistory(card.value)
                        elif key=='COMMENT':
                           self.wcomment(card.value)
                        else:
                           self[key] = header[key]
                  except:
                     pass
               self.name, self.subsets = getsas(self.name + ' ' + subsets)
##               self.image = hdu.data ### move to 'image' __getattr__
               self.fits  = True
               self.blank = numpy.NaN
            else:
               raise
      handle_c = newfchar(20)
      gds_handle_c(handle_c, tofchar(self.name), &err_c)

###  dcdset(), called from getsas(), closes the set, making the set handle
#    invalid. Therefore use the set name instead of the set handle until
#    there is a better solution.

#      handle = handle_c.a
      handle = self.name             # name instead of handle ###
      delfchar(handle_c)
      if err_c<0:
         raiseGds(err_c)
      try:
         image, refs= self.handles[handle]
         self.handles[handle] = image, refs+1
         if image is not None:
            self.image = image
      except:
         self.handles[handle] = None, 1
      self.spec    = setspec
      self.handle  = handle
      self.open    = True
      self.create  = create
      self.wmode   = write
      self.boxspec = ''
      self.header = SetHeader(self)

   def __del__(self):
      if self.open:
         try:
            self.close()
         except:
            pass

# Programmed attributes:
   def __getattr__(self, name):
      cdef fint err_c

      err_c = 0
      if not self.open:
         raise GdsError(-1, "Invalid set object")
      if name=='naxis':
         return self.ndims(0)
      elif name=='image':
         try:
            image, refs = self.handles[self.handle]
            if image is not None:
               self.__dict__[name] = image
               return image
         except:
            pass
         if self.fits:
            imagearray = self.hdulist[self.hdunum].data
         else:
            lo, hi = self.range(0)
            err = [0]
            ftype  = gds_ftype_c(tofchar(self.name), &err_c)
            if ftype==0 or ftype==5:
               dtype = '>f4'
            else:
               dtype = '<f4'
            if not self.wmode:
               open_mode = 'c'
            else:
               open_mode = "r+"
            shape = []
            for i in range(self.naxis):
               shape.insert(0, self.grid(i, hi)-self.grid(i, lo)+1)
            shape=tuple(shape)
            imagefile = self.name + ".image"
            try:
               imagearray = numpy.memmap(imagefile, dtype=dtype, mode=open_mode,
                                         shape=shape)
            except:
               if open_mode=="r+":
                  imagearray = numpy.memmap(imagefile, dtype=dtype, mode='w+',
                                            shape=shape)
               else:
                  raise GipsyError("cannot open image for set %s" % self.name)
         self.__dict__[name] = imagearray
         self.handles[self.handle] = imagearray, refs
         return imagearray
      elif name=='axnames':
         result = []
         for axnum in range(self.naxis):
            result.append(self.axname(axnum))
         return result
      elif name=='blo' or name=='bhi':
         self.setbox('')
         return self.__dict__[name]
      elif name=='slo':
         lo, hi = self.range(0)
         return self.grids(lo)
      elif name=='shi':
         lo, hi = self.range(0)
         return self.grids(hi)
      elif name=='ncoords':
         return ncoords_c(tofchar(self.name))
      else:
         raise AttributeError("No attribute %s" % name)

   def __str__(self):
      return "GDS set %s, open= %s" % (self.name, str(self.open))

   def __repr__(self):
      return "Set(\"%s\")" % self.spec

   def __getitem__(self, key):

# Obtain header or column data using the indexing and slicing syntax.
# Examples:
# 
#   m = s[level, 'DATAMAX']   # get descriptor item from specified level
#   l = s.level               # level on which descriptor item was found
#   x = s[level, t, c, 0:10]  # get first 10 elements from column c
#                             # in table t
# 
# If level=0, this index may be omitted:
# 
#   e = s['EPOCH']

      if type(key) is types.StringType:
         return self.__rhead(key, 0)
      if len(key)==2:
         return self.__rhead(key[1], key[0])
      elif len(key)>2:
         if len(key)==3:
            level  = 0
            table  = key[0]
            column = key[1]
            rows   = key[2]
         elif len(key)==4: 
            level  = key[0]
            table  = key[1]
            column = key[2]
            rows   = key[3]
         else:
            raise GipsyError("error using indexing operator")
         if type(rows)==types.IntType:
            return self.__rcol(table, column, subset=level, item=rows, nitems=1)
         else:
            if rows.step:
               raise GipsyError("strided column access not yet implemented")
            start  = 0
            nitems = None
            if rows.start: start  = rows.start
            if rows.stop:  nitems = rows.stop-start
            return self.__rcol(table, column, subset=level, item=start, nitems=nitems)
      else:
         raise GipsyError("error using indexing operator")

   def __setitem__(self, key, value):

# Write header or column data using the indexing and slicing syntax.
# Examples:
# 
#    s[level, 'DATAMAX']  = maxfound   # write descriptor item on specified level
#    s[level, t, c, 0:10] = range(10)  # write column data
# 
# If level=0, this index may be omitted:
# 
#    s['EPOCH'] = 2000.0        # write descriptor item
# 
# Assignment of 'None' to a descriptor item causes it to be deleted:
# 
#    s['TEMPHEAD'] = None
#    
# If the item does not exist, this fact is ignored i.e.,
# no exception is raised.

      if type(key) is types.StringType:
         self.__whead(key, 0, value)
      elif len(key)==2:
         self.__whead(key[1], key[0], value)
      elif len(key)>2:
         if len(key)==3:
            level  = 0
            table  = key[0]
            column = key[1]
            rows   = key[2]
         elif len(key)==4:
            level  = key[0]
            table  = key[1]
            column = key[2]
            rows   = key[3]
         else:
            raise GipsyError("error using indexing operator")
         if type(rows)==types.IntType:
            self.__wcol(table, column, value, subset=level, item=rows, nitems=1)
         else:
            if rows.step:
               raise GipsyError("strided column access not yet implemented")
            start  = 0
            nitems = None
            if rows.start: start  = rows.start
            if rows.stop:  nitems = rows.stop-start
            self.__wcol(table, column, value, subset=level, item=start, nitems=nitems)    
      else:
         raise GipsyError("error using indexing operator")

   def __delitem__(self, key):

# Delete header item. Examples:
#    del s[level, 'DATAMAX']   # delete descriptor item on specified level
#    del s['OBSERVER']         # delete descriptor item on top level
# If the item does not exist, an exception is raised.

      if type(key) is types.StringType:
         self.__delhead(key)
      elif len(key)==2:
         self.__delhead(key[1], key[0])
      else:
         raise GdsError(-1, "error deleting header item")

   def __wcheck(self):
      if not self.wmode:
         raise GdsError(-1, "set opened read-only")

   def update(self):
      "Flush image data to set"
      if self.wmode:
         try:
            image = self.__dict__['image']
            image.flush()
         except:
            pass
      else:
         raise GdsError(-1, "set %s opened read-only" % self.name)

   def has_key(self, key):
      return key in self

   def __contains__(self, key):
      try:
         self[key]
         return True
      except:
         return False 

   def keys(self, level=0):
      cdef fint level_c, index_c=0, err_c=0
      cdef fint *levptr_c
      cdef fchar c_result
      cdef bytes key
      c_result = newfchar(20)
      if level is None:
         levptr_c = NULL
      else:
         level_c = level
         levptr_c = &level_c
      result = []
      while True:
         gdsd_find_c(c_result, tofchar(self.handle), levptr_c, &index_c, &err_c)
         if err_c<0:
            raiseGds(err_c)
         if index_c==0:
            break
         key = c_result.a
         if level is None:
            result.append((err_c, key.rstrip()))
         else:
            result.append(key.rstrip())
      delfchar(c_result)
      return result

   def items(self, level=0):
      result = []
      for key in self.keys(level):
         try:
            result.append((key, self[key]))
         except:
            pass  # may be a table, history or comment
      return result

   def read(self, key, fint level_c=0):
      cdef fint err_c=0
      cdef long data_c
      cdef fchar handle = tofchar(self.handle)
      cdef fchar key_c = tofchar(key)
      size = gdsd_length_c(handle, key_c, &level_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      result = Buffer(size)
      data_c = result.content
      err_c  = 0
      gdsd_read_c(handle, key_c, &level_c, <char*>data_c, NULL, NULL, NULL,
                  &err_c)
      if err_c<0:
         raiseGds(err_c)   
      return result
      
   def write(self, key, fint level_c, buffer):
      cdef fint err_c=0, size_c
      cdef long data_c
      cdef fchar handle = tofchar(self.handle)
      cdef fchar key_c = tofchar(key)
      self.__wcheck()
      size_c = len(buffer)
      data_c = buffer.content
      gdsd_write_c(handle, key_c, &level_c, <char*>data_c, &size_c, NULL, NULL, 
                   &err_c)
      if err_c<0:
         raiseGds(err_c)

   def close(self):
      "Close set"
      cdef fint err_c
      err_c = 0
      if self.fits:
         hdulist, refs = self.fitsfiles[self.fitsname]
         refs -= 1
         if refs>0:
            self.fitsfiles[self.fitsname] = hdulist, refs
         else:
            del self.fitsfiles[self.fitsname]
            hdulist.close()
      else:
         image, refs = self.handles[self.handle]
         refs -= 1
         if refs<=0:
            try:
               image.flush()
               image.close()
            except:
               pass
            gds_close_c(tofchar(self.handle), &err_c)
            del self.handles[self.handle]
         else:
            self.handles[self.handle] = image, refs

      if err_c<0:
         raiseGds(err_c)
      for attr in self.__dict__.keys():
         del self.__dict__[attr]
      try:
         del self.__dict__['image']
      except:
         pass
      self.open = False

   def delete(self):
      "Delete set. See gds_delete.dc2"
      cdef fint err_c
      err_c = 0
      self.__wcheck()
      name = self.name
      self.close()
      gds_delete_c(tofchar(name), &err_c)
      if err_c<0:
         raiseGds(err_c)

   def copy(self, outset):

# Make a copy of the current set. Subset and -box specifications
# are taken into account.

      xeq("COPY INSET=%s BOX=%s OUTSET=%s" % (self.spec, self.boxspec, outset) )
# xeq() is used here because deputy() failures also cause caller to
# fail. When xeq fails, it raises an exception which can be caught.
# May be changed later.
      parts = self.spec.split()
      parts[0] = outset
      newspec = ' '.join(parts)
      return Set(newspec, write=True)

   def extend(self, axname, origin, size):
      "Add or extend axis. See gds_extend.dc2"
      cdef double origin_c
      cdef fint   size_c, err_c
      cdef fint *sizeptr_c
      origin_c = origin
      if size==None:
         sizeptr_c = NULL
      else:
         size_c   = size         
         sizeptr_c = &size_c
      err_c = 0
      self.__wcheck()
      gds_extend_c(tofchar(self.handle), tofchar(axname),
                         &origin_c, sizeptr_c, &err_c)
      if err_c<0:
         raiseGds(err_c)

   def axnum(self, axname):

# Get number of an axis given the name.
# Axis counting starts with zero, not 1.
# See gdsc_axnum.dc2

      cdef fint err_c
      err_c = 0
      result = gdsc_axnum_c(tofchar(self.handle), tofchar(axname), &err_c)
      if err_c<0:
         raiseGds(err_c)
      return result-1

   def axname(self, axnum):

# Get name of an axis given the axis number.
# Axis counting starts with zero, not 1.
# See gdsc_name.dc2

      cdef fint  err_c, axnum1_c
      cdef fchar name_c
      cdef bytes result
      axnum1_c = axnum+1
      name_c = newfchar(80)
      err_c = 0
      gdsc_name_c(name_c, tofchar(self.handle), &axnum1_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      result = name_c.a
      result = result.rstrip()
      delfchar(name_c)
      return result

   def axorigin(self, axnum):

# Get the origin of axis number axnum.
# Axis counting starts with zero, not 1.
# See gdsc_origin.dc2

      cdef fint  err_c, axnum1_c
      err_c = 0
      axnum1_c = axnum+1
      result = gdsc_origin_c(tofchar(self.handle), &axnum1_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      return result

   def axsize(self, axnum):

# Get the length of axis number axnum.
# Axis counting starts with zero, not 1.
# See gdsc_size.dc2

      cdef fint  err_c, axnum1_c
      err_c = 0
      axnum1_c = axnum+1
      result = gdsc_size_c(tofchar(self.handle), &axnum1_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      return result

   def range(self, subset):
#
# Get the range (as a 2-tuple) of a subset given as a coordinate word.
# See gdsc_range.dc2
#
      cdef fint subset_c, low_c, upp_c, err_c
      err_c = 0
      subset_c = subset
      gdsc_range_c(tofchar(self.handle), &subset_c, &low_c, &upp_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      return (low_c, upp_c)

   def grid(self, axnum, cword):

# Extract a grid value from a coordinate word.
# See gdsc_grid.dc2

      cdef fint axnum1_c, cword_c, err_c
      err_c = 0
      axnum1_c = axnum+1
      cword_c = cword
      result = gdsc_grid_c(tofchar(self.handle), &axnum1_c, &cword_c, &err_c)
      if err_c==-19:
         return None
      if err_c<0:
         raiseGds(err_c)
      return result

   def grids(self, cword):
      "Extract all grid values from a coordinate word."
      result = []
      for axnum in range(self.naxis):
         result.append(self.grid(axnum, cword))
      return result

   def word(self, grids, cword=0, axnum=None):
      cdef fint cword_c=cword, grid_c, axnum_c, err_c=0
      if axnum is None:
         for axnum, grid in enumerate(grids):
            if grid is not None:
               grid_c = grid
               axnum_c = axnum+1
               cword_c = gdsc_word_c(tofchar(self.handle),
                                     &axnum_c, &grid_c, &cword_c, &err_c)
               if err_c:
                  raiseGds(err_c)
      else:
         grid_c = grids
         axnum_c = axnum+1
         cword_c = gdsc_word_c(tofchar(self.handle),
                               &axnum_c, &grid_c, &cword_c, &err_c)
         if err_c:
            raiseGds(err_c)
      return cword_c

   def ndims(self, level=0, subset=False):

# Obtain the dimensionality of a coordinate word.
# If subset=True, the dimensionality of the
# pre-specified subset(s) is given.
# See gdsc_ndims.dc2

      cdef fint level_c
      if subset:
         level_c = self.subsets[0] 
      else:
         level_c = level
      return gdsc_ndims_c(tofchar(self.handle), &level_c)

   def type(self, name, level=0):

# Obtain FITS descriptor item type.
# See gdsd_type.dc2

      cdef fint  level_c, err_c
      cdef fchar result_c
      result_c = newfchar(80)
      level_c = level
      err_c = 0
      gdsd_type_c(result_c, tofchar(self.handle), tofchar(name),
                  &level_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      else:
         self.level = err_c
      result = result_c.a
      return result.rstrip()

   def __rhead(self, name, level=0):
      "(internal method)"
      cdef fchar handle_c, name_c
      cdef fint level_c, err_c
      cdef float real_c
      cdef double dble_c
      cdef fint  int_c
      cdef bool  log_c
      cdef fchar char_c
      cdef object result
      err_c = 0
      name = name.upper()
      try:
         t = self.type(name, level)
      except GdsError, e:
         if e.errno != -3:
            raise
         raise KeyError("'%s', level %d" % (name, level))
      handle_c = tofchar(self.handle)
      name_c = tofchar(name)
      level_c = level
      if t=='REAL':
         gdsd_rreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
         result = real_c
      elif t=='DBLE':
         gdsd_rdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
         result = dble_c
      elif t=='INT':
         gdsd_rint_c(handle_c, name_c, &level_c, &int_c, &err_c)
         result = int_c
      elif t=='LOG':
         gdsd_rlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
         result = log_c!=0
      elif t=='CHAR':
         char_c = newfchar(80)
         gdsd_rchar_c(handle_c, name_c, &level_c, char_c, &err_c)
         result = char_c.a
         result = result.rstrip()
         delfchar(char_c)
         result = result
      else:
         raise GdsError(-1, "Unknown type in item %s" % name)
      if err_c<0:
         raise KeyError("'%s', level %d" % (name, level))
      else:
         self.level = err_c
      return result

   def __whead(self, name, level, value, kind=""):
      "(internal method)"
      cdef fchar handle_c, name_c
      cdef fint level_c, err_c
      cdef float real_c
      cdef double dble_c
      cdef fint  int_c
      cdef bool  log_c
      cdef fchar char_c
      self.__wcheck()
      name = name.upper()
      t = type(value)
      handle_c = tofchar(self.handle)
      name_c = tofchar(name)
      level_c = level
      err_c = 0
#                                             check validity of special item
      if name[:5] in ['CTYPE', 'CRVAL', 'CDELT', 'CRPIX', 'CROTA',
                      'DTYPE', 'DRVAL', 'DDELT', 'DRPIX', 'DROTA', 'NAXIS']:
         if name[:5]=='NAXIS':
            raise GdsError(-1, 'cannot change NAXIS items')
         if level:
            raise GdsError(-1, 'special headers on top level only')
         try:
            axnum = int(name[5:])
         except:
            axnum = None
         if axnum is not None and axnum<1:
            raise GdsError(-1, 'number must be greater than 1')
         if axnum is not None and axnum>self.naxis:
            try:
               self[name]
            except:
               raise GdsError(-1, 'number greater than set dimension')
         if name[:5] in ['CTYPE', 'DTYPE']:
            if t is not types.StringType:
               raise GdsError(-1, 'incorrect type for %s' % name)
         elif t is not types.FloatType and t is not types.IntType:
            raise GdsError(-1, 'incorrect type for %s' % name)
         else:
            value = float(value)
            t = type(value)
            kind  = 'DBLE'
      if t is types.FloatType and kind.upper()=='REAL':
         real_c = value
         gdsd_wreal_c(handle_c, name_c, &level_c, &real_c, &err_c)
      elif t is types.FloatType:
         dble_c = value
         gdsd_wdble_c(handle_c, name_c, &level_c, &dble_c, &err_c)
         if name[:5]=='CRPIX' and axnum is not None:
            self.extend(self.axname(axnum-1), value, None)
      elif t is types.IntType and kind.upper()=='LOG' or t is types.BooleanType:
         log_c = value
         gdsd_wlog_c(handle_c, name_c, &level_c, &log_c, &err_c)
      elif t is types.IntType:
         int_c = value
         gdsd_wint_c(handle_c, name_c, &level_c, &int_c, &err_c)
      elif t is types.StringType:
         gdsd_wchar_c(handle_c, name_c, &level_c, tofchar(value), &err_c)
      elif t is types.NoneType:
         try:
            self.__delhead(name, level)
         except GdsError:
            pass
         err = 0                                   # never fail (?)
      else:
         raise GdsError(-1, "%s unsupported for item %s" % (str(t), name) )
      if err_c<0:
         raiseGds(err_c)

   def __delhead(self, name, level=0):
      "(internal method)"
      cdef fint level_c, err_c
      err_c = 0
      level_c = level
      name = name.upper()
      self.__wcheck()
      gdsd_delete_c(tofchar(self.handle), tofchar(name), &level_c, &err_c)
      if err_c<0:
         raiseGds(err_c)

   def tablis(self, nitems=100):
      "Get all tables in a set. Returns a list with tuples (name, level)"
      cdef fint nitems_c=nitems, err_c=0, nfound_c
      cdef fchar tnames_c
      cdef bytes tabnames
      cdef fint *subsets_c=<fint*>malloc(nitems*sizeof(fint))
      tnames_c = newfchar(nitems*8)
      tnames_c.l = 8                          # "character*8 tnames_c[nitems]"
      gdsa_tablis_c(tofchar(self.name), subsets_c, tnames_c, &nitems_c,
                    &nfound_c, &err_c)
      # name instead of handle because gds_exist_c() expects name. to be fixed.
      if err_c<0:
         free(subsets_c)
         delfchar(tnames_c)
         raiseGds(err_c)

      tabnames = tnames_c.a
      result = []
      for tab in range(nfound_c):
         result.append((tabnames[tab*8:(tab+1)*8].rstrip(), subsets_c[tab]))
      free(subsets_c)
      delfchar(tnames_c)
      return result

   def tabinq(self, tname, subset=0, nitems=100):
      "Get the column names in a table. See gdsa_tabinq.dc2"
      cdef fint subset_c, nitems_c, err_c, nfound_c
      cdef fchar cnames_c
      cdef bytes colnames
      err_c    = 0
      subset_c = subset
      nitems_c = nitems
      cnames_c = newfchar(nitems*8)
      cnames_c.l = 8                           # "character*8 cnames_c[nitems]"
      gdsa_tabinq_c(tofchar(self.name), &subset_c, tofchar(tname),
                    cnames_c, &nitems_c, &nfound_c, &err_c)
      # name instead of handle because gds_exist_c() expects name. to be fixed.
      if err_c<0:
         delfchar(cnames_c)
         raiseGds(err_c)
      colnames = cnames_c.a
      result = []
      for col in range(nfound_c):
         result.append(colnames[col*8:(col+1)*8].rstrip())
      delfchar(cnames_c)
      return result

   def crecol(self, tname, cname, ctype, subset=0, colcomm=" ", cunits=" "):
      "Create a table column. See gdsa_crecol.dc2"
      cdef fint err_c, subset_c
      err_c = 0
      subset_c = subset
      self.__wcheck()
      gdsa_crecol_c(tofchar(self.name), &subset_c, tofchar(tname),
                    tofchar(cname), tofchar(ctype), tofchar(colcomm),
                    tofchar(cunits), &err_c)   # requires name, not handle
      if err_c<0:
         raiseGds(err_c)

   def delcol(self, tname, cname, subset=0):
      "Delete a table column. See gdsa_delcol.dc2"
      cdef fint err_c, subset_c
      err_c = 0
      subset_c = subset
      self.__wcheck()
      gdsa_delcol_c(tofchar(self.name), &subset_c, tofchar(tname),
                    tofchar(cname), &err_c) # requires name, not handle
      if err_c<0:
         raiseGds(err_c)                         # also when column is empty!

   def colinq(self, tname, cname, level=0):

# Give information about a column in a table.
# It returns the tuple (ctype, colcomm, cunits, nrows)
# See gdsa_colinq.dc2

      cdef fint err_c, level_c, nrows_c
      cdef fchar tname_c, cname_c, ctype_c, colcomm_c, cunits_c
      cdef bytes ctype, colcomm, cunits

      err_c = 0
      level_c = level
      ctype_c = newfchar(10)
      colcomm_c = newfchar(80)
      cunits_c = newfchar(10)
      gdsa_colinq_c(tofchar(self.name), &level_c, tofchar(tname),
                            tofchar(cname),
                            ctype_c, colcomm_c, cunits_c, &nrows_c, &err_c)
      if err_c<0:
         raiseGds(err_c)
      ctype = ctype_c.a
      ctype = ctype.rstrip()
      colcomm = colcomm_c.a
      colcomm = colcomm.rstrip()
      cunits = cunits_c.a
      cunits = cunits.rstrip()
      delfchar(cunits_c)
      delfchar(colcomm_c)
      delfchar(ctype_c)
      return (ctype, colcomm, cunits, nrows_c)

   def __rcol(self, tname, cname, subset=0, item=0, nitems=None):
      "(internal method)"
      cdef fint err_c, subset_c, item1_c, nitems_c
      cdef float  *fresult_c
      cdef double *dresult_c
      cdef fint   *iresult_c
      cdef bool   *bresult_c
      cdef fchar  cresult_c
      cdef bytes  items
      (t, x, x, n) = self.colinq(tname, cname, subset)
      err_c = 0
      subset_c = subset
      item1_c  = item+1
      if nitems==None:
         nitems_c = n-item
      else:
         nitems_c = nitems
      result = range(nitems_c)
      if t=='REAL':
         fresult_c = <float*>malloc(nitems_c*sizeof(float))
         gdsa_rcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), fresult_c, &item1_c,
                       &nitems_c, &err_c)
         for i in range(nitems_c): result[i] = fresult_c[i]
         free(fresult_c)
      elif t=='DBLE':
         dresult_c = <double*>malloc(nitems_c*sizeof(double))
         gdsa_rcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), dresult_c, &item1_c,
                       &nitems_c, &err_c)
         for i in range(nitems_c): result[i] = dresult_c[i]
         free(dresult_c)
      elif t=='INT':
         iresult_c = <fint*>malloc(nitems_c*sizeof(fint))
         gdsa_rcint_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), iresult_c, &item1_c,
                       &nitems_c, &err_c)
         for i in range(nitems_c): result[i] = iresult_c[i]
         free(iresult_c)
      elif t=='LOG':
         bresult_c = <bool*>malloc(nitems_c*sizeof(bool))
         gdsa_rclog_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), bresult_c, &item1_c,
                       &nitems_c, &err_c)
         for i in range(nitems_c): result[i] = bresult_c[i]
         free(bresult_c)
      elif t.startswith('CHAR'):
         width = int(t[4:])
         cresult_c = newfchar(width*nitems_c)
         cresult_c.l = width          # "character*(width) cresult_c[nitems_c]"
         gdsa_rcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), cresult_c, &item1_c, &nitems_c, &err_c)
         if err_c>=0:
            items = cresult_c.a
            for i in range(nitems_c):
               result[i] = items[i*width:(i+1)*width].rstrip()
            delfchar(cresult_c)
      else:
         raiseGds(-1)
      if err_c<0:
         raiseGds(err_c)
      return result
   
   def __wcol(self, tname, cname, data, subset=0, item=-1, nitems=None):
      "(internal method)"
      cdef fint err_c, subset_c, item_c, nitems_c
      cdef float  *realarr_c
      cdef double *dblearr_c
      cdef int    *intarr_c
      cdef bool   *logarr_c
      cdef fchar  chararr_c
      cdef long   pointer_c
      self.__wcheck()
      err_c = 0
      subset_c = subset
      (t, x, x, x) = self.colinq(tname, cname, subset)
      if nitems==None: 
         try:
            nitems = len(data)
         except:
            nitems = 1
      nitems_c = nitems
      if item==-1: item = 0
      else:        item = item+1
      item_c = item
      if t=='REAL':
         pointer = realptr(data, nitems)
         pointer_c = pointer.ptr
         gdsa_wcreal_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), <float*>pointer_c, &item_c,
                       &nitems_c, &err_c)
      elif t=='DBLE':
         pointer = dbleptr(data, nitems)
         pointer_c = pointer.ptr
         gdsa_wcdble_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), <double*>pointer_c, &item_c,
                       &nitems_c, &err_c)
      elif t=='INT':
         pointer = fintptr(data, nitems)
         pointer_c = pointer.ptr
         gdsa_wcint_c(tofchar(self.name), &subset_c, tofchar(tname),
                      tofchar(cname), <fint*>pointer_c, &item_c,
                      &nitems_c, &err_c)
      elif t=='LOG':
         pointer = boolptr(data, nitems)
         pointer_c = pointer.ptr
         gdsa_wclog_c(tofchar(self.name), &subset_c, tofchar(tname),
                      tofchar(cname), <bool*>pointer_c, &item_c,
                      &nitems_c, &err_c)
      else:
         width = int(t[4:])
         chararr_c = chardata(data, width, nitems)
         gdsa_wcchar_c(tofchar(self.name), &subset_c, tofchar(tname),
                       tofchar(cname), chararr_c, &item_c, &nitems_c, &err_c)
         delfchar(chararr_c)
      if err_c<0:   
         raiseGds(err_c)

   def deltab(self, tname, fint subset_c=0):
      "Delete a table. See gdsa_deltab.dc2"
      cdef fint err_c
      self.__wcheck()
      err_c = 0
      gdsa_deltab_c(tofchar(self.name), &subset_c, tofchar(tname), &err_c)
      if err_c<0:
         raiseGds(err_c)

   def subimage(self, level, box=True):

# Obtain a numpy sub-array corresponding
# to the subset level.

      image = self.image
      setlo, sethi = self.range(0)
      sublo, subhi = self.range(level)
      axperm = self.axperm('inside')
      subax = 0
      plak = []
      for i in range(self.naxis):
         j = self.naxis-i-1
         inxst = self.grid(j,setlo)
         if box and j in axperm:
            inxlo = self.blo[-subax-1] - inxst
            inxhi = self.bhi[-subax-1] - inxst
            subax = subax + 1
         else:
            inxlo = self.grid(j, sublo) - inxst
            inxhi = self.grid(j, subhi) - inxst
         plak.append(slice(inxlo, inxhi+1))
     
      result = image[plak].squeeze()
      return result

   def axperm(self, mode=''):

# Obtain a list with the axis permutations of the set, subset
# specified when the set was opened.
# if mode=='inside', only the subset axis permutation is returned;
# if mode=='outside', only the axis permutation outside the subset.

      naxis = self.naxis
#      axes = map(lambda s x: x.upper(), self.axnames) ### changed into:
      axes = []
      for x in self.axnames:
         axes.append(x.upper())
#                                                      ### (end)
      sample = self.grids(self.subsets[0])

      result = []

      ###  axis numbers of the subsets --
      for i in range(naxis):
         if sample[i] is None:
            result.append(i)

      if mode.lower()=='inside': return result
      
      indim = len(result)
#      parts = map(lambda x: x.upper(), self.spec.split()) ### changed into:
      parts = []
      for x in self.spec.split():
         parts.append(x.upper())
#                                                          ### end

      ###  axis numbers outside the subsets --
      for part in parts[1:]:
         for axname in axes:
            if part==axname[:len(part)]:
               result.append(self.axnum(axname))

      ###  implied last axis --
      if len(result)<naxis:
         for i in range(naxis):
            if i not in result:
               result.append(i)
               break

      if mode.lower()=='outside': return result[indim:]
      
      return result
      
   def tophys(self, grids=None, level=0, mode=''):

# Coordinate transformation. See method cotrans().
# grid coordinates -> physical coordinates

      return self.cotrans(1, grids, level, mode)

   def togrid(self, phys=None, level=0, mode=''):

# Coordinate transformation. See method cotrans().
# physical coordinates -> grid coordinates

      return self.cotrans(0, phys, level, mode)

   def cotrans(self, direction, coords=None, level=0, mode=''):

# Coordinate transformation. See cotrans.dc2.
# 
# direction = 0    :  physical coordinates -> grid coordinates
# direction = 1    :  grid coordinates -> physical coordinates
# 
# mode = 'inside'  : return only coordinates within subset
# mode = 'outside' : return only coordinates of subset.
#                    if subset is one of the subsets specified
#                    when the set was opened, the order is according
#                    to this specification.
# 
# If argument 'coords' is None, the 'lower left' position of the
# given subset is used.

      cdef fint level_c, direction_c
      cdef long coords_l
      cdef double *result_c
      ndims = self.ndims()
      result_c = <double*>malloc(self.ncoords*sizeof(double))
      result = [0.0]*ndims
      mode = mode.lower()
      grids = self.grids(level)
      if coords is None:
         low, upp = self.range(level)
         low = self.grids(low)
         if direction==0: low = self.cotrans(1, low, 0)
         coords = []
         for i in range(ndims):
            if grids[i] is None: coords.append(low[i])
      level_c = level
      direction_c = direction
      coords_ptr = dbleptr(coords); coords_l = coords_ptr.ptr
      err = cotrans_c(tofchar(self.name), &level_c,
                      <double*>coords_l, result_c, &direction_c)
      if err!=0: raise GdsError(-1, "cotrans error %d" % err)
      for i in range(ndims):
         result[i] = result_c[i]
      free(result_c)
      if mode=='inside':
         axsel = []
         for i in range(ndims):
            if grids[i] is None: axsel.append(i)
#         result = map(lambda x: result[x], axsel)   ### changed into:
         newres = []
         for x in axsel:
            newres.append(result[x])
         result = newres
#                                                    ### (end)
      elif mode=='outside':
         if level in self.subsets:
            axsel = self.axperm('outside')
         else:
            axsel = []
            for i in range(ndims):
               if grids[i] is not None: axsel.append(i)
#         result = map(lambda x: result[x], axsel)   ### changed into:
         newres = []
         for x in axsel:
            newres.append(result[x])
         result = newres

      return result

   def setbox(self, boxspec):

# Apply a box specification string.
# Attributes 'blo' and 'bhi' will be adjusted.

      cdef double *pos_c
      cdef fint   option_c, level_c, zero_c
      zero_c = 0
      ndims = self.ndims(self.subsets[0])
      level_c = self.subsets[0]
      pos_c = <double*>malloc(2*ndims*sizeof(double))
      bhi = [0.0]*ndims
      blo = [0.0]*ndims
      status = dcdpos_c(tofchar(self.name), &level_c, tofchar(boxspec),
                        pos_c, &zero_c)
      if status==0:
         clo, chi = self.range(level_c)
         axperm = self.axperm('inside')
         blo = []
         for x in axperm:
            blo.append(self.grids(clo)[x])
         bhi = []
         for x in axperm:
            bhi.append(self.grids(chi)[x])

      elif status==3:
         for i in range(ndims):
            c = int(round(pos_c[i]))
            s = int(round(pos_c[i+ndims]))
            if s<1: s = 1
            bhi[i] = c + s/2
            blo[i] = bhi[i] + 1 - s;
      elif status==4:
         for i in range(ndims):   
            l = int(round(pos_c[i]))
            u = int(round(pos_c[i+ndims]))
            if l>u:
               blo[i] = u
               bhi[i] = l
            else:
               blo[i] = l
               bhi[i] = u
      else:
         free(pos_c)
         raise GipsyError, "dcdpos error %d" % status

      for i in range(ndims):
         axperm = self.axperm('inside')
         slo    = self.slo
         shi    = self.shi
         if blo[i]<slo[axperm[i]] or bhi[i]>shi[axperm[i]]:
            raise GdsError(-1, 'box outside set')

      free(pos_c)
      self.blo = blo
      self.bhi = bhi
      self.boxspec = boxspec

   def wminmax(self, level=0):

# Update the subset's DATAMIN, DATAMAX and NBLANK.

      self.__wcheck()
      subsetimage = self.subimage(level, False)
      mnmx = minmax3(subsetimage)
      self[level, 'DATAMIN'] = mnmx[0]
      self[level, 'DATAMAX'] = mnmx[1]
      self[level, 'NBLANK']  = mnmx[2]

   def whistory(self, history=''):
      cdef fint err_c=0, level_c=0
      self.__wcheck()
      if history:
         gdsd_wvar_c(tofchar(self.handle), tofchar('HISTORY'), &level_c,
                     tofchar(history), &err_c)
      else:
         gdsd_history_c(tofchar(self.handle), &err_c)
      if err_c<0:
         raiseGds(err_c)

   def wcomment(self, comment):
      cdef fint err_c=0, level_c=0
      self.__wcheck()
      gdsd_wvar_c(tofchar(self.handle), tofchar('COMMENT'), &level_c,
                  tofchar(comment), &err_c)
      if err_c<0:
          raiseGds(err_c)


   def axes(self, level=0, mode=''):

# Obtain a list of Axis objects.
# 
#    level = 0
#    level = False    : return a list of all axes in the set's order.
# 
#    level = True     : a list according to the set, subset specification.
# 
#    level > 0        : a list according to this subset level.
#                       If it is one of the specified subsets, the list's
#                       order will be according to the set, subset
#                       specification.
# 
#    mode = ''        : return a list of all axes, first the axes
#                       inside the subset, then the remaining axes.
# 
#    mode = 'inside'  : only the subset axes.
# 
#    mode = 'outside' : only the axes outside the subset.

      if type(level) is types.BooleanType:
         any = True
         if level: level = self.subsets[0]
         else:     level = 0
      else:
         any = False
      grids = self.grids(level)
      ndims = self.ndims()
      result = []
      if mode != 'outside':
         for i in range(self.naxis):
            if grids[i] is None:
               result.append(Axis(self, i, level))
         if mode=='inside':
            return result
      if level in self.subsets:
         axsel = self.axperm('outside')
         for i in range(len(axsel)):
            result.append(Axis(self, axsel[i], level, any))
      else:
         axsel = []
         for i in range(ndims):
            if grids[i] is not None:
               axsel.append(i)
         for i in range(len(axsel)):
            result.append(Axis(self, axsel[i], level, any))
      return result

#  ==========================================================================
#                               GDS header
#  --------------------------------------------------------------------------

def getsas(setspec):

# Obtain set, subset information, given a string.
# It returns a 2-tuple. The first element contains
# the set name and the second element contains a list
# of subset coordinate words.
# See dcdset.dc2

   cdef dcdset_struct *result
   errors = {
       -1:  "Input string longer than internal buffer.",
       -2:  "Empty input string.",
       -3:  "Set does not exist.",
       -4:  "Set name too long for buffer.",
       -5:  "Could not allocate memory to contain axis info.",
       -6:  "Axis name not unique.",
       -7:  "Integer number expected.",
       -8:  "Syntax error.",
       -9:  "Could not allocate memory for storing grids positions.",
      -10:  "Repeat argument <= 0.",
      -11:  "Loop increment is 0.",
      -12:  "Infinite loop.",
      -13:  "Internal inconsistency.",
      -14:  "Axis already defined.",
      -15:  "Non existent subset.",
      -16:  "Could not allocate memory for storing subset levels."
   }
   result = dcdset(setspec)
   code = result.status
   if code<0:
      raise GdsError(-1, "dcdset code %d (%s)" % (code, errors[code]))
   setname = result.setname
   subsets = []
   for i in range(code):
      subsets.append(result.subsets[i])
   return (setname, subsets)
      
#  ==========================================================================
#                              GDS Axis Class
#  --------------------------------------------------------------------------
class Axis(object):

# GDS Axis Class.
# 
# Attributes:
#    axnum   - axis number in set
#    name    - axis name
#    ctype   - full axis name
#    crpix   - reference pixel
#    crval   - reference value
#    cdelt   - pixel separation
#    cunit   - natural axis units
#    dunit   - secondary axis units
#    slo     - lowest grid coordinate in set
#    shi     - highest grid coordinate in set
#    blo     - lowest grid coordinate in box
#    bhi     - highest grid coordinate in box
#    axtype  - axis type    (see axtype.dc2)
#    skysys  - sky system         ,,
#    prosys  - projection system  ,,
#    velsys  - velocity system    ,,
# 
# 'axtype', 'skysys', 'prosys' and 'velsys' are 2-tuples consisting of an
# integer code and a descriptive text string. If they are not defined,
# None is returned.
# 
# 'blo' and 'bhi' are only defined when the subset is one of the subsets
# specified for the set. Furthermore they are only defined for 'outside'
# axes when an explicit subset has been given (self.any==False). In the
# latter case they are both set to the appropriate grid coordinate.
# 
# Attempting to access an undefined 'blo' or 'bhi' causes an exception
# to be raised.

   __axtypes = {
       0: "unknown type of axis",
       1: "spatial axis longitude",
       2: "spatial axis latitude",
       3: "spectral axis frequency",
       4: "spectral axis velocity",
       5: "spectral axis wavelength",
       6: "spectral axis inverse wavelength",
       7: "spectral axis log(wavelength)",
       8: "time axis",
       9: "polarisation axis",
      10: "parameter axis",
      11: "sample axis of IRAS data",
      12: "tick axis of IRAS data",
      13: "detector axis of IRAS data",
      14: "snip axis of IRAS data"
   }

   __skysystems = [
       None,
       (1, "equatorial"),
       (2, "galactic"),
       (3, "ecliptic"),
       (4, "supergalactic"),
       None
   ]
   __prosystems = [
      None,
      (1, "AITOFF equal area"),
      (2, "equivalent cylindrical"),
      (3, "flat"),
      (4, "gnomonic"),
      (5, "orthographic"),
      (6, "rectangular"),
      (7, "global sinusoidal"),
      (8, "north celestial pole (WSRT)"),
      (9, "stereographic"),
     (10, "Mercator projection"),
      None
   ]
   __velsystems = [
      None,
      (0, "unknown velocity system"),
      (1, "optical"),
      (2, "radio"),
      None
   ]

   def __init__(self, set, axnum, subset=0, any=False):
      self.set    = set
      self.axnum  = axnum
      self.subset = subset
      self.any    = any

   def __getattr__(self, key):
      if key=='name':
         self.__dict__[key] = self.ctype.split('-')[0]
      elif key== 'slo':
         return self.set.slo[self.axnum]
      elif key=='shi':
         return self.set.shi[self.axnum]
      elif key=='blo':
         if self.subset in self.set.subsets:
            try:
               boxnum = self.set.axperm('inside').index(self.axnum)
               return self.set.blo[boxnum]
            except:
               if self.any:
                  raise GdsError(-1, "only inside axes have blo")
               else:
                  pos = self.set.grid(self.axnum, self.subset)
                  self.bhi = pos
                  self.__dict__[key] = pos
         else:
            raise GdsError(-1, "incompatibe box and subset")
      elif key=='bhi':
         if self.subset in self.set.subsets:
            try:
               boxnum = self.set.axperm('inside').index(self.axnum)
               return self.set.bhi[boxnum]
            except:
               if self.any:
                  raise GdsError(-1, "only inside axes have bhi")
               else:
                  pos = self.set.grid(self.axnum, self.subset)
                  self.blo = pos
                  self.__dict__[key] = pos
         else:
            raise GdsError(-1, "incompatibe box and subset")
      elif key in ['ctype', 'crpix', 'crval', 'cdelt']:
         self.__dict__[key] = self.set["%s%d" % (key, self.axnum+1)]
      elif key in ['axtype', 'skysys', 'prosys', 'velsys', 'cunit', 'dunit']:
         self.__axtype() 
      else:
         raise AttributeError("No attribute %s" % key)

      return self.__dict__[key]

   def __axtype(self):
      cdef fint skysys_c, prosys_c, velsys_c
      cunit  = '          '
      dunit  = '          '
      axtype = axtype_c(tofchar(self.ctype), tofchar(cunit), tofchar(dunit),
                        &skysys_c, &prosys_c, &velsys_c)
      self.cunit  = cunit.rstrip()
      self.dunit  = dunit.rstrip()
      self.axtype = (axtype, self.__axtypes[axtype])
      self.skysys = self.__skysystems[skysys_c]
      self.prosys = self.__prosystems[prosys_c]
      self.velsys = self.__velsystems[velsys_c]


#  ==========================================================================
#                              QtLink Class
#  --------------------------------------------------------------------------

#  as lambda functions are not (yet?) available, define these functions:
#
def qtlink_gettext(key):
   return usertext(key, default=1, defval='')

def qtlink_getlog(key):
   return userlog(key, default=1, defval=False)

def qlink_buttontext(widget):
   return ['N','Y'][QtGui.QAbstractButton.isChecked(widget)]

def qtlink_spinboxtext(widget):
   return str(QtGui.QSpinBox.value(widget))

def qtlink_dspinboxtext(widget):
   return str(QtGui.QDoubleSpinBox.value(widget))

def qtlink_slidertext(widget):
   return str(QtGui.QAbstractSlider.value(widget))

class QtLink(object):

   if has_pyqt4:
      protocols = [
                 ( QtGui.QLineEdit,              # widget's class
                   'editingFinished()',          # widget's input ready signal
                   qtlink_gettext,               # keyword get value function
                   QtGui.QLineEdit.setText,      # widget's set value method
                   QtGui.QLineEdit.text          # widget's get value method
                 ),
                 ( QtGui.QAbstractButton,
                   'toggled(bool)',
                   qtlink_getlog,
                   QtGui.QAbstractButton.setChecked,
                   qlink_buttontext
                 ),
                 ( QtGui.QSpinBox,
                   'valueChanged(int)',
                   userint,
                   QtGui.QSpinBox.setValue,
                   qtlink_spinboxtext
                 ),
                 ( QtGui.QDoubleSpinBox,
                   'valueChanged(double)',
                   userdble,
                   QtGui.QDoubleSpinBox.setValue,
                   qtlink_dspinboxtext
                 ),
                 ( QtGui.QAbstractSlider,
                   'valueChanged(int)',
                   userint,
                   QtGui.QAbstractSlider.setValue,
                   qtlink_slidertext
                 ),
                 ( QtGui.QLabel,
                   'None',
                   qtlink_gettext,
                   QtGui.QLabel.setText,
                   None
                 ),
                 ( QtGui.QComboBox,
                   'activated(int)',
                   qtlink_gettext,
                   QtGui.QComboBox.setEditText,
                   QtGui.QComboBox.currentText
                 )
                  ]

   def __init__(self, key, widget,
                      signal=None, keyval=None, widgetval=None, setval=None,
                      compare=True):
      if not has_pyqt4:
         raise GipsyError("Cannot connect to PyQt4")
      self.w_signal = 'None'
      self.k_getval = None
      self.w_setval = None
      self.w_getval = None
      for w_class, w_signal, k_getval, w_setval, w_getval in self.protocols:
         if isinstance(widget, w_class):
            self.w_signal = w_signal
            self.k_getval = k_getval
            self.w_setval = w_setval
            self.w_getval = w_getval
      if keyval is not None:
         self.k_getval = keyval
      if widgetval is not None:
         self.w_getval = widgetval
      if setval is not None:
         self.w_setval = setval
      if signal is not None:
         self.w_signal = signal
      if self.k_getval is None or self.w_setval is None:
         raise Exception, 'unsupported widget: %s' % type(widget)
      self.key    = key
      self.widget = widget
      self.compare = compare
      self.block  = False
      self.keyproc = KeyCallback(self.key_read, key)
      self.rejproc = KeyCallback(self.key_reject, key,
                                       mask=KeyCallback.KEYREJECT)
      try:
         usertext(key)
         self.key_read(self.keyproc)
      except:
         pass
      widget.connect(widget, QtCore.SIGNAL(self.w_signal), self.sig_handler)

   def close(self):
      if self.keyproc:
         self.widget.disconnect(self.widget, QtCore.SIGNAL(self.w_signal),
                                self.sig_handler)
         self.widget = None
         self.keyproc.deschedule()
         self.keyproc = None
         self.rejproc.deschedule()
         self.rejproc = None

   def __del__(self):
      self.close()

   def key_read(self, cbobj):
      if self.block:
         self.block = False
      else:
         self.curval = usertext(cbobj.key)
         self.w_setval(self.widget, self.k_getval(cbobj.key))

   def key_reject(self, cbobj):
      QtMessage(self.widget, '<b>'+usertext('UCAMESSAGE=', default=-1)+'</b>')

   def sig_handler(self):
      newval = str(self.w_getval(self.widget))
      if (not self.compare) or (newval!=self.curval):
         wkey(self.key+newval)
         self.curval = newval
         self.block = True

if has_pyqt4:

   class QtMessage(QtGui.QWidget):
      def __init__(self, parent, message, delay=3.0, fgcolor='red',
                   bgcolor='white'):
         QtGui.QWidget.__init__(self, parent)
         self.setStyleSheet("QLabel { color: %s; background-color: %s }" %
                                    (        fgcolor,              bgcolor) )

         widget = parent
         layout = QtGui.QGridLayout(self)
         label = QtGui.QLabel(message)
         label.setFrameShape(QtGui.QFrame.Box)
         label.setAutoFillBackground(True)
         layout.addWidget(label)

         # adjust the margins or you will get an invisible, unintended border
         layout.setContentsMargins(0, 0, 0, 0)
   
         # need to set the layout
         self.setLayout(layout)
         self.adjustSize()

         # tag this widget as a popup
         self.setWindowFlags(QtCore.Qt.Popup)

         self.move(widget.mapToGlobal(widget.rect().bottomLeft()))
         QtCore.QTimer.singleShot(1000*delay, self, QtCore.SLOT('hide()'))
         self.show()


include "ggi.pxi"
include "pgplot.pxi"
include "qt4logos.pxi"
#<

#>            ggidecl.pxi
cdef extern from "ggi.h":

   ctypedef enum ggiAlign:
      ggiLeft, ggiCenter, ggiRight

   ctypedef struct _GgiPlotInfo:
      ident plotfield       # Ggi element id
      char  *name           # PGPLOT device name
      float x, y            # cursor position in world coordinates
      float width, height   # size of box (may be negative)
      int   button          # button or key which caused the event
      int   state           # mask of all active buttons and modifiers
      char  key             # keyboard key

   ctypedef _GgiPlotInfo *GgiPlotInfo 

   ctypedef void (*GgiCursorProc)(ident, GgiPlotInfo, void*)
   ctypedef char *(*GgiNameconverterProc)(char*)
   ctypedef void (*GgiCleanupProc)(void*)
   
   ident GgiTextField(char *keyword, char *message, int size)
   ident GgiButton(char *keyword, char *message)
   ident GgiMenu(char *keyword, char *message, char **labels)
   ident GgiMenuLabels(ident menu, char **labels)
   ident GgiList(char *keyword, int defcol, char **labels)
   ident GgiListLabels(ident id, char **labels)
   ident GgiListColumns(ident id, int columns)
   ident GgiEditor(char *keyword, int width, int height, int mode,
                   char *contents, int size)
   ident GgiEditorSetSource(ident id, char *source, int size)
   char *GgiEditorSource(ident id)
   ident GgiEditorSave(ident id)
   ident GgiEditorSaveAs(ident id, char *name)
   ident GgiEditorSearch(ident id, int direction)
   ident GgiGauge(char *keyword, char *message, int length, float minval,
                  float maxval)
   ident GgiDial(char *keyword, char *message, int radius, int minang, int maxang,
                 int intervals, float arrw, float inarrl, float outarrl,
                 float minval, float maxval)
   ident GgiLabel(char *text)
   ident GgiLogo(unsigned char bits[], int width, int height)
   ident GgiCanvas(char *name, int width, int height)
   ident GgiProgress(char *keyword, char *message, int length)
   ident GgiPlotField(char *name, int width, int height)
   int   GgiPlotColors(ident id, int newcolors)
   ident GgiShell(char *name)
   ident GgiDialog(char *name)
   ident GgiForm(char *name, int border)
   ident GgiViewport(char *name, int xsize, int ysize)
   ident GgiUseShell(ident id)
   void  GgiShowShell(ident id, bool show)
   bool  GgiPlotXor(bool mode)
   int   GgiPlotFrames(ident id, int newframes)
   void  GgiPlotRecord(ident id, int frame)
   void  GgiPlotShow(ident id, int frame)
   void  GgiPlotMapColors(ident id, ... )
   void  GgiPlotExport(ident id, char *name)
   ident ScheduleGgiPlotCursor(GgiCursorProc, ident plotfield, void *arg)
   void  DescheduleGgiPlotCursor(ident *id)
   ident GgiActivate(ident id)
   ident GgiDeactivate(ident id)
   ident GgiFollowKey(ident id, bool follow)
   ident GgiHelpText(ident id, char *message)
   ident GgiSetLabel(ident id, char *label, int width)
   ident GgiSetBitmap(ident id, int width, int height, unsigned char *bits)
   ident GgiSetRange(ident id, float min, float max)
   ident GgiSetFormat(ident id, char *format)
   ident GgiSetCircular(ident id, bool circular)
   ident GgiSetKeyword(ident id, char *key)
   ident GgiSetCleanup(ident id, GgiCleanupProc proc, void *arg)
   ident GgiAlignLabel(ident id, ggiAlign al)
   ident GgiSetPosition(ident id, int xfrom, ident xid, int yfrom, ident yid)
   void  GgiDelete(ident *id)
   int   GgiWidth(ident id)
   int   GgiHeight(ident id)
   bool  GgiIsRealized(ident id)
   void  GgiConfigure(char *appclass, int width, int menuheight, int textheight,
                      int buttonheight)
   void  GgiAutoLayout(bool a)
   void  GgiPostponeRealize(bool later)
   void  GgiRealize()
   void  GgiSetHeight(int height)
   void  GgiSetWidth(int width)
   void  GgiReLayout()
   void  GgiShowDoc(char *docname)
   void  GgiSetResources(char **resources)
   int   GgiHandleEvents()
   void  GgiPrompter(char *key, char *message)
   void  GgiPlotPrompter(char *filekey, char *devkey, char *message)
   ident GgiPlotColorEditor(int opcode, ... )
   ident GgiInset(int opcode, ... )
   ident GgiFileBrowser(int opcode, ... )
   bool  GgiVerify(char *question, char *truelabel, char *falselabel)
   ident GgiHelpMenu(char *key, char *buttontext, char *message,
                     char** labels, char **documents)
   ident GgiTextMenu(char *keyword, char *message, char **labels)
   ident GgiColorMenu(char *keyword, char *message)
   ident GgiHeaderButton(char *key, char *buttontext, char *message, char *setkey)
   int   GgiKeyIdent(char *key)
   void  GgiSetDisplay(char *displayname)
   void  GgiOptionsShell(char *key)
   ident GgiOptionsButton()
   ident GgiSetBtnKey(ident id, char *key)
   int   GgiMpeg(ident id, int opcode, ...)
   void  GgiPlotMovie(ident plotfield, int opcode, ...)

#<

#>            ggi.pxi
#  ==========================================================================
#                        Ggi constants
#  --------------------------------------------------------------------------
# From ggi.h

ggiButn1      =    1                        # mouse button 1     #
ggiButn2      =    2                        # mouse button 2     #
ggiButn3      =    4                        # mouse button 3     #
ggiShift      =    8                        # shift key          #
ggiCtrl       =   16                        # ctrl key           #
ggiKeybd      =   32                        # other keyboard key #
ggiLeftArrow  = 0xD1                        # left arrow         #
ggiUpArrow    = 0xD2                        # up arrow           #
ggiRightArrow = 0xD3                        # right arrow        #
ggiDownArrow  = 0xD4                        # down arrow         #

ggiCreate    =  1
ggiColind    =  2
ggiLimits    =  3
ggiUnits     =  4
ggiApply     =  5
ggiDelete    =  6
ggiIdent     =  7
ggiNdims     =  8
ggiNowait    =  9
ggiCloseOnOK = 10
ggiFileInfo  = 11
ggiGetMap    = 12
ggiStart     = 13
ggiNext      = 14
ggiStop      = 15

ggiReadOnly = 0
ggiEdit     = 1
ggiAppend   = 2


#  ==========================================================================
#                              Ggi classes
#  --------------------------------------------------------------------------

# Ggi (``GIPSY graphical interface'') is a collection of
# routines which allows the programmer to construct a graphical
# user interface for a task. It is based on the X Toolkit
# and the almost universally available Athena widgets.
# It makes use of GIPSY's event-handling facilities.
# 
# This Python module is an interface to Ggi. It wraps and
# extends the implementation in C. Ggi elements are usually
# created by means of factory methods, which follow their
# C counterpart's protocol as closely as possible.
# 
# Names of factory methods, i.e. methods that create and return
# a new element, are capitalized.

class _Element:

# Abstract class which is the root of all Ggi classes. It defines a number
# of common methods and attributes.
# 
# Attributes:
#    width     - element's width in pixels
#    height    - element's height in pixels
#    realized  - True of False
#    container - element containing the current element

   def __getattr__(self, name):
      cdef ident hook
      hook = toident(self.hook)
      if name=='width':
         return GgiWidth(hook)
      elif name=='height':
         return GgiHeight(hook)
      elif name=='realized':
         return GgiIsRealized(hook)
      else:
         raise AttributeError, "No attribute %s" % name
   def setPosition(self, xfrom, xid, yfrom, yid):

# Position an element relative to other elements
# or to the left and top border of the container
# element.
# 
#   xfrom  - distance in pixels
#   xid    - other element or None (border)
#   yfrom  - distance in pixels
#   yid    - other element or None (border)

      if not xid: xid = GgiBase.base
      if not yid: yid = GgiBase.base
      if (xid != GgiBase.base and xid.container != self.container) or \
         (yid != GgiBase.base and yid.container != self.container):
         raise GgiError, "container mismatch"
      GgiSetPosition(toident(self.hook), xfrom, toident(xid.hook), yfrom, toident(yid.hook))
      return self
   def setLabel(self, text, width=0):
      "Set an element's label: GgiSetLabel.dc2"
      GgiSetLabel(toident(self.hook), text, width)
      return self
   def alignLabel(self, alignment):
      "Set an element's label's alignment: GgiAlignLabel.dc2"
      GgiAlignLabel(toident(self.hook), alignment)
      return self
   def active(self, state):

# Activate (state=True) or deactivate (state=False) an element.
# See: GgiActivate.dc2 and GgiDeactivate.dc2.

      if state:
         GgiActivate(toident(self.hook))
      else:
         GgiDeactivate(toident(self.hook))
      return self
   def setKeyword(self, key):
      "Modify an element's user input keyword: GgiSetKeyword.dc2"
      GgiSetKeyword(toident(self.hook), key)
      return self
   def helpText(self, message):
      "Modify the element's help text: GgiHelpText.dc2"
      GgiHelpText(toident(self.hook), message)
      return self
   def delete(self):
      cdef ident hook
      hook = toident(self.hook)
      "Delete an element: GgiDelete.dc2"
      GgiDelete(&hook)
      del self.hook
   def openMpeg(self, filename):
      "Start recording an MPEG movie on this element"
      cdef ident hook
      cdef char *filename_c
      filename_c = filename
      hook = toident(self.hook)
      if self.hook==0:
         raise GgiError, "cannot open MPEG recorder on base object"
      if GgiMpeg(hook, 13, filename_c):
         raise GgiError, "cannot open MPEG recorder"
   def recordMpeg(self):
      cdef ident hook
      hook = toident(self.hook)
      "Record a frame for an MPEG movie"
      if GgiMpeg(hook, 14):
         raise GgiError, "cannot record MPEG frame"
   def closeMpeg(self):
      cdef ident hook
      hook = toident(self.hook)
      "Construct MPEG movie from recorded frames"
      if GgiMpeg(hook, 15):
         raise GgiError, "cannot construct MPEG movie"

class _Container(_Element):

# Abstract class of elements which can contain other elements.
# It defines a number of factory methods which create the elements
# the container can contain.

   def Logo(self):
      "Create the GIPSY logo element: GgiLogo.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiLogo(NULL, 0, 0)
      return result
   def Label(self, text):
      "Create a Label element: GgiLabel.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiLabel(text)
      return result
   def Button(self, keyword, message):
      "Create a Button: GgiButton.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiButton(keyword, message)
      return result
   def TextField(self, keyword, message, size):
      "Create a Textfield: GgiTextField.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiTextField(keyword, message, size)
      return result
   def Menu(self, keyword, message, labels):
      "Create a Menu: GgiMenu.dc2"
      result = _Menu()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiMenu(keyword, message, charlist(labels))
      return result
   def HelpMenu(self, keyword, label, message, labels, documents):
      "Create a Help Menu: GgiHelpMenu.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiHelpMenu(keyword, label, message,
                                     charlist(labels), charlist(documents))
      return result
   def TextMenu(self, keyword, message, labels):
      "Create a Text Menu: GgiTextMenu.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiTextMenu(keyword, message, charlist(labels))
      return result
   def List(self, keyword, labels, defcol=1):
      "Create a List element: GgiList.dc2"
      result = _List()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiList(keyword, defcol, charlist(labels))
      return result
   def Gauge(self, keyword, message, length, left, right):
      "Create a Gauge element: GgiGauge.dc2"
      result = _Analog()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiGauge(keyword, message, length, left, right)
      return result
   def Dial(self, keyword,
                  message,
                  radius,
                  min_angle,
                  max_angle,
                  intervals,
                  arrow_width,
                  inner_length,
                  outer_length,
                  min_val,
                  max_val ):
      "Create a Dial: GgiDial.dc2"
      result = _Analog()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiDial(keyword,
                                   message,
                                   radius,
                                   min_angle,
                                   max_angle,
                                   intervals,
                                   arrow_width,
                                   inner_length,
                                   outer_length,
                                   min_val,
                                   max_val )
      return result
   def Progress(self, keyword, message, length):
      "Create a Progress Bar: GgiProgress.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiProgress(keyword, message, length)
      return result
   def Form(self, name, border=0):
      "Create a Form element: GgiForm.dc2"
      result = _Container()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiForm(name, border)
      return result
   def Viewport(self, keyword, width, height):
      "Create a Viewport: GgiViewport.dc2"
      result = _Container()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiViewport(keyword, width, height)
      return result
   def ColorMenu(self, keyword, message):
      "Create a Color Menu: GgiColorMenu.dc2"
      result = _Element()
      result.container = self
      GgiUseShell(toident(self.hook))
      if message is None: message = ''
      result.hook = <long>GgiColorMenu(keyword, message)
      return result
   def PlotField(self, name, width, height):
      "Create a Plotfield: GgiPlotField.dc2"
      result = _PlotField()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiPlotField(name, width, height)
      result.name = name
      return result
   def Editor(self, keyword, width, height, mode, contents, size):
      "Create a Text Editor: GgiEditor.dc2"
      result = _Editor()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiEditor(keyword, width, height, mode, contents, size)
      return result
   def ColorEditor(self, ci, nc, bl=0):
      "Create plot color editor: GgiPlotColorEditor.dc2"
      cdef int ci_c, nc_c, bl_c
      ci_c = ci
      nc_c = nc
      bl_c = bl
      result = _ColorEditor()
      result.container = self
      GgiUseShell(toident(self.hook))
      result.hook = <long>GgiPlotColorEditor(ggiCreate, ci_c, nc_c, bl_c)
      return result
   def VtkField(self, name, width, height):
      global _VtkField
      try:
         import ggivtk
         return ggivtk.VtkField(self, name, width, height)
      except:
         import ggivtk
         _VtkField = ggivtk._VtkField                # class
         return ggivtk.VtkField(self, name, width, height)
      
def dorealize(cb):
   cb.base.realize()
   cb.base.realized = True
   cb.deschedule()

class GgiBase(_Container):

# Base container class. Creating a Base object causes Ggi to be
# initialized. Only one Base object should be created. After
# creation, this object is also available via the class
# attribute GgiBase.base.
# 
# It defines factory methods for a number of special element types.

   def __init__(self, display=None, resources=None):

#    display   - X11 display, e.g. 'kapteyn:0.0' (see GgiSetDisplay.dc2)
#    resources - X Toolkit fallback resources (see GgiSetResources.dc2)

      self.container = None
      self.hook = 0
      self.realized = False
      cdef ident dummy
      if display:
         GgiSetDisplay(display)
      GgiAutoLayout(False)
      GgiPostponeRealize(True)
      if resources:
         GgiSetResources(charlist(resources))
      dummy = GgiCanvas("DUMMY", 2, 2)
      GgiDelete(&dummy) # enable Ggi callbacks
      TimeCallback(dorealize, 0.0, base=self)
      GgiBase.base = self
   def realize(self):
      "Realize widgets created before"
      if not self.realized: GgiRealize()
   def handleEvents(self):
      "Handle pending events"
      return GgiHandleEvents()
   def Shell(self, name):
      "Create Shell pop-up element: GgiShell.dc2"
      result = _Shell()
      result.hook = <long>GgiShell(name)
      return result
   def Dialog(self, name):
      "Create Dialog element: GgiDialog.dc2"
      result = _Shell()
      result.hook = <long>GgiDialog(name)
      return result
   def Prompter(self, keyword, message):
      "Create a Prompter element: GgiPrompter.dc2"
      result = _Prompter()
      GgiPrompter(keyword, message)
      return result
   def PlotPrompter(self, filekeydir, devkey, message):
      "Create a Plot Prompter element: GgiPlotPrompter.dc2"
      result = _Prompter()
      GgiPlotPrompter(filekeydir, devkey, message)
      return result
   def verify(self, message, truelabel, falselabel):
      "Ask the user a question: GgiVerify.dc2"
      return GgiVerify(message, truelabel, falselabel)
   def FileBrowser(self, key, message, converter=None):
      "File browser: GgiFileBrowser.dc2"
      global cvt_name, cvt_detail
      cdef char *key_c, *message_c
      key_c = key
      message_c = message
      result = _FileBrowser()
      result.converter = converter
      result.detail = None
      cvt_name = result.converter       ### See comment near cvt_name_c()
      cvt_detail = result.detail
      result.hook = <long>GgiFileBrowser(ggiCreate, key_c, message_c,
                                         cvt_name_c)
      return result
   def Inset(self, namekey, insetkey, boxkey=None, message="Input set/subset"):
      "Input set and box composer: GgiInset.dc2"
      cdef char *namekey_c, *insetkey_c, *boxkey_c, *message_c
      namekey_c = namekey
      insetkey_c = insetkey
      if boxkey is None: boxkey_c = NULL
      else: boxkey_c = boxkey
      message_c = message
      result = _Inset()
      result.hook = <long>GgiInset(ggiCreate, namekey_c, insetkey_c, boxkey_c,
                                   message_c)
      return result

class _PopUp(_Element):
   "Abstract class of pop-up elements"
   def show(self, visible):
      "Pop element up or down, depending on 'visible' being True or False."
      GgiShowShell(toident(self.hook), visible)

class _Shell(_Container, _PopUp):
   "Abstract class of pop-up elements which can contain other elements."
   pass

class _Analog(_Element):
   "Abstract class of analog valuators"
   def setCircular(self, mode):
      "'mode' is True or False: GgiSetCircular.dc2"
      GgiSetCircular(toident(self.hook), mode)
      return self
   def setFormat(self, fstring):
      "Set format string: GgiSetFormat.dc2"
      GgiSetFormat(toident(self.hook), fstring)
      return self
   def setRange(self, lowval, highval):
      "Set valuator range: GgiSetRange.dc2"
      GgiSetRange(toident(self.hook), lowval, highval)
      return self

class _Prompter(_Element):
   "Prompter: GgiPrompter.dc2"
   def reject(self, message):
      "reject user's response"
      GgiPrompter("AGAIN", message)
   def accept(self):
      "accept user's response"
      GgiPrompter("ACCEPT", "")
   
class _PlotField(_Element):

# Attributes:
#    pgid     - PGPLOT device identifier
#    nframes  - number of available pixmaps
#    xormode  - non-destructive plotting mode (True or False)
#    callback - currently active cursor callback object

   ncolors = 16

   def __init__(self):
      self.nframes  = 0
      self.pgid     = 0
      self.xormode  = False
      self.callback = None
   def open(self):

# Open plotfield and return PGPLOT plot device identifier.
# See also pgopen.dc2.

      self.pgid = pgopen_c(tofchar(self.name))
      return self.pgid
   def xor(self, mode):

# mode  - True or False for non-destructive plotting.

      cdef fint id_c, pgid_c
      cdef bool mode_c
      mode_c = mode
      pgid_c = self.pgid
      pgqid_c(&id_c)
      pgslct_c(&pgid_c)
      GgiPlotXor(mode_c)
      self.xormode = mode
      if id_c:
         pgslct_c(&id_c)
   def CursorCallback(self, proc, schedule=True, **attr):

# Create a cursor callback object.
# proc     - function to be called on cursor events
# schedule - if True: schedule callback immediately.
# attr     - keyword arguments defining extra attributes
# 
# See also: _CursorCallback's docstrings.

      return _CursorCallback(proc, self, schedule, attr)
   def frames(self, requested):
      "Obtain pixmaps e.g. for movie loops: GgiPlotFrames.dc2"
      self.nframes = GgiPlotFrames(toident(self.hook), requested)
      # !! seems to work only after the plotfield has been drawn to !!
      if self.nframes != requested:
         raise GgiError, "PlotField frame allocation failure"
      return self
   def record(self, frame):
      "Store a plot window in a pixmap: GgiPlotRecord.dc2"
      GgiPlotRecord(toident(self.hook), frame)
      return self
   def show(self, frame):
      "Recall a plot from a pixmap: GgiPlotShow.dc2"
      GgiPlotShow(toident(self.hook), frame)
      return self
   def colors(self, requested, master=True):

# Increase number of available colors. If master=True (the default)
# only the master color table is affected. If master=False,
# the complete master table is made available to the current
# plotfield. See GgiPlotColors.dc2.

      if master:
         id = 0
      else:
         id = self.hook
      _PlotField.ncolors = GgiPlotColors(toident(id), requested)
      if _PlotField.ncolors != requested:
         raise GgiError, "PlotField color allocation failure"
      return self
   def mapColors(self, *spans):

# Build a plotfield-specific color table from spans in the master
# color table. Up to 10 tuples (ci, nc) can be specified.
# 
# Example:
#           p1.mapColors((0,16), (16,16))
#           p2.mapColors((0,16), (32,16))
# 
# See GgiPlotMapColors.dc2.

      cdef int ci_c[10], nc_c[10]
      if len(spans)>10:
         raise GgiError, "Too many color spans"
      i  = 0
      for span in spans:
         ci_c[i] = span[0]
         nc_c[i] = span[1]
         i = i+1
      ci_c[i] = -1
      GgiPlotMapColors(toident(self.hook),
                       ci_c[0], nc_c[0],
                       ci_c[1], nc_c[1],
                       ci_c[2], nc_c[2],
                       ci_c[3], nc_c[3],
                       ci_c[4], nc_c[4],
                       ci_c[5], nc_c[5],
                       ci_c[6], nc_c[6],
                       ci_c[7], nc_c[7],
                       ci_c[8], nc_c[8],
                       ci_c[9], nc_c[9])
      return self
   def export(self, name=None):
      "Export plotfield to other tasks. See GgiPlotExport.dc2"
      if name==None:
         name = self.name
      GgiPlotExport(toident(self.hook), name)

class _Editor(_Element):
   def source(self):
      return GgiEditorSource(toident(self.hook))
   def save(self):
      GgiEditorSave(toident(self.hook))
      return self
   def search(self, direction):
      GgiEditorSearch(toident(self.hook), direction)
      return self

class _ColorEditor(_Element):
   def limits(self, float v1_c, float v2_c):
      GgiPlotColorEditor(ggiLimits, toident(self.hook), v1_c, v2_c)
      return self
   def units(self, unts):
      cdef char *unts_c
      unts_c = unts
      GgiPlotColorEditor(ggiUnits, toident(self.hook), unts_c)
      return self
   def apply(self):
      GgiPlotColorEditor(ggiApply, toident(self.hook))
   def getmap(self, nc):
      cdef int nc_c
      cdef float *reds_c, *greens_c, *blues_c, bred_c, bgreen_c, bblue_c
      nc_c     = nc
      reds_c   = <float*>malloc(nc*sizeof(float))
      greens_c = <float*>malloc(nc*sizeof(float))
      blues_c  = <float*>malloc(nc*sizeof(float))
      GgiPlotColorEditor(ggiGetMap, toident(self.hook), nc_c,
                          reds_c,   greens_c,  blues_c,
                         &bred_c, &bgreen_c, &bblue_c)
      reds   = []
      greens = []
      blues  = []
      for i in range(nc):
         reds.append(reds_c[i])
         greens.append(greens_c[i])
         blues.append(blues_c[i])
      return (reds, greens, blues, bred_c, bgreen_c, bblue_c)

class _Inset(_Element):
   def delete(self):
      "delete the GUI element"
      GgiInset(ggiDelete, toident(self.hook))
      del self.hook
   def ndims(self, ndims):
      cdef int ndims_c
      ndims_c = ndims
      "set default number of dimensions"
      GgiInset(ggiNdims, toident(self.hook), ndims_c);
      return self
   def closeOnOK(self):
      "close when selection is made"
      GgiInset(ggiCloseOnOK, toident(self.hook))
      return self

class _FileBrowser(_Element):
   def delete(self):
      "delete the GUI element"
      GgiFileBrowser(ggiDelete, toident(self.hook))
      del self.hook
   def nowait(self):
      "accept selection without pressing OK button"
      GgiFileBrowser(ggiNowait, toident(self.hook))
      return self
   def closeOnOK(self):
      "close when selection is made"
      GgiFileBrowser(ggiCloseOnOK, toident(self.hook))
      return self
   def fileInfo(self, detail):
      global cvt_detail
      self.detail = detail
      GgiFileBrowser(ggiFileInfo, toident(self.hook), cvt_detail_c) 
      cvt_detail = self.detail
      return self

class _Menu(_Element):
   def setLabels(self, labs):
      "Modify the menu's label strings"
      GgiMenuLabels(toident(self.hook), charlist(labs))
      return self

class _List(_Element):
   def setLabels(self, labs):
      "Modify the list's label strings"
      GgiListLabels(toident(self.hook), charlist(labs))
      return self

#  ==========================================================================
#                              Callback Class
#  --------------------------------------------------------------------------
class _CursorCallback:

# Instances if this class are normally created by calling
# PlotField's method CursorCallback(). Only one instance can be
# active at any time for a PlotField.
# 
# Attributes:
#    proc      - function to be called upon a cursor event
#                This function will be called with one argument:
#                the current object.
#    plotfield - PlotField object with which callback is connected.
#    x,y       - cursor position in world coordinates.
#    button    - event-causing button number
#    state     - mask of all active buttons and modifiers
#    key       - keyboard character
#    ...       -  extra attributes defined by user via dictionary 'attr'.

   def __init__(self, proc, plotfield, schedule=True, attr={}):

# proc     - function to be called upon a cursor event.
# schedule - if True: schedule callback immediately.
# attr     - keyword arguments defining extra attributes

      self.proc      = proc
      self.plotfield = plotfield
      for name in attr.keys():
         self.__dict__[name] = attr[name]
      self.__id   = 0
      self.active = False
      if schedule: self.schedule()

   def schedule(self):
      "activate the callback object"
      if self.plotfield.callback:
         raise GgiError, "Another callback is active for plotter %s" % self.plotfield.name
      if self.__id:
         raise GipsyError, "Callback object already active"
      self.__arg = (self, self.proc)
      self.__id = <long>ScheduleGgiPlotCursor(cursorproc_c,
                                              toident(self.plotfield.hook),
                                              <void*>self.__arg)
      self.active = True
      self.plotfield.callback = self

   def deschedule(self):
      "deactivate the callback object"
      cdef ident id_c
      if not self.__id:
         raise GipsyError, "Callback object inactive"
      id_c = toident(self.__id)
      DescheduleGgiPlotCursor(&id_c)
      del self.__arg
      self.__id = 0
      self.active = False
      self.plotfield.callback = None

#  --------------------------------------------------------------------------
#                               cursorproc_c
#  --------------------------------------------------------------------------
cdef void cursorproc_c(ident id, GgiPlotInfo info, void *arg) with gil:
   (cbobj, cbproc) = <object>arg
   cbobj.x      = info.x
   cbobj.y      = info.y
   cbobj.button = info.button
   cbobj.state  = info.state
   cbobj.key    = chr(info.key&255)
   cbproc(cbobj)

#  --------------------------------------------------------------------------
#                               cvt_name_c
#  --------------------------------------------------------------------------
#  FileBrowser converter helper function. The current implementation allows
#  for only one Python converter to be defined at any time. This implies
#  that multiple FileBrowser objects would share the same converter.
#
#  If this limitation is to be eliminated, the C-code GgiFileBrowser should
#  know about the Python object it is associated with. This could be done via
#  a special opcode which allows GgiFileBrowser to store and retrieve
#  this information.
#
cdef char *cvt_name_c(char *name):
   global cvt_name
   cdef char *result_c
   if cvt_name is None: return name
   result = cvt_name(name)
   if result is None:
      result_c = NULL
   else:
      result_c = result
   return result_c

#  --------------------------------------------------------------------------
#                               cvt_detail_c
#  --------------------------------------------------------------------------
#
cdef char *cvt_detail_c(char *name):
   global cvt_detail
   cdef char *result_c
   if cvt_detail is None: return name
   result = cvt_detail(name)
   if result is None:
      result_c = NULL
   else:
      result_c = result
   return result_c
#<

#>            pgplotdecl.pxi
cdef extern from "pgplot.h":
   bool ggixor_c(bool *)
   void pgarro_c(float *,float *,float *,float *)
   void pgask_c(bool *)
   void pgaxis_c(fchar,float *,float *,float *,float *,float *,float *,float *,fint *,float *,float *,float *,float *,float *)
   fint pgband_c(fint *,fint *,float *,float *,float *,float *,fchar)
   void pgbbuf_c()
   fint pgbeg_c(fint *,fchar,fint *,fint *)
   void pgbin_c(fint *,float *,float *,bool *)
   void pgbox_c(fchar,float *,fint *,fchar,float *,fint *)
   void pgcirc_c(float *,float *,float *)
   void pgclos_c()
   void pgconb_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,fint *,float *,float *)
   void pgconf_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,float *,float *)
   void pgconl_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,float *,fchar,fint *,fint *)
   void pgcons_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,fint *,float *)
   void pgcont_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,fint *,float *)
   void pgcotic_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,fint *,float *,float *,float *,fint *)
   void pgctab_c(float *,float *,float *,float *,fint *,float *,float *)
   fint pgcurs_c(float *,float *,fchar)
   void pgdraw_c(float *,float *)
   void pgebuf_c()
   void pgend_c()
   void pgenv_c(float *,float *,float *,float *,fint *,fint *)
   void pgeras_c()
   void pgerr1_c(fint *,float *,float *,float *,float *)
   void pgerrb_c(fint *,fint *,float *,float *,float *,float *)
   void pgerrx_c(fint *,float *,float *,float *,float *)
   void pgerry_c(fint *,float *,float *,float *,float *)
   void pgetxt_c()
   fint pgexist_c(fint *)
   void pggray_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,float *,float *)
   void pghi2d_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,fint *,float *,bool *,float *)
   void pghist_c(fint *,float *,float *,float *,fint *,fint *)
   void pgiden_c()
   void pgimag_c(float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,float *,float *)
   void pglab_c(fchar,fchar,fchar)
   void pglcur_c(fint *,fint *,float *,float *)
   void pgldev_c()
   void pglen_c(fint *,fchar,float *,float *)
   void pgline_c(fint *,float *,float *)
   void pgmove_c(float *,float *)
   void pgmtxt_c(fchar,float *,float *,float *,fchar)
   void pgncur_c(fint *,fint *,float *,float *,fint *)
   void pgnumb_c(fint *,fint *,fint *,fchar,fint *)
   void pgolin_c(fint *,fint *,float *,float *,fint *)
   fint pgopen_c(fchar)
   void pgpage_c()
   void pgpanl_c(fint *,fint *)
   void pgpap_c(float *,float *)
   void pgpat_c(float *)
   void pgpixl_c(fint *,fint *,fint *,fint *,fint *,fint *,fint *,float *,float *,float *,float *)
   void pgpnts_c(fint *,float *,float *,fint *,fint *)
   void pgpoly_c(fint *,float *,float *)
   void pgpt_c(fint *,float *,float *,fint *)
   void pgpt1_c(float *,float *,fint *)
   void pgptxt_c(float *,float *,float *,float *,fchar)
   void pgqah_c(fint *,float *,float *)
   void pgqbci_c(fint *)
   void pgqcf_c(fint *)
   void pgqch_c(float *)
   void pgqci_c(fint *)
   void pgqcir_c(fint *,fint *)
   void pgqclp_c(fint *)
   void pgqcol_c(fint *,fint *)
   void pgqcr_c(fint *,float *,float *,float *)
   void pgqcs_c(fint *,float *,float *)
   void pgqdt_c(fint *,fchar,fint *,fchar,fint *,fint *)
   void pgqfs_c(fint *)
   void pgqhs_c(float *,float *,float *)
   void pgqid_c(fint *)
   void pgqimi_c(fint *)
   void pgqinf_c(fchar,fchar,fint *)
   void pgqitf_c(fint *)
   void pgqls_c(fint *)
   void pgqlw_c(fint *)
   void pgqndt_c(fint *)
   void pgqpos_c(float *,float *)
   void pgqtbg_c(fint *)
   void pgqtxt_c(float *,float *,float *,float *,fchar,float *,float *)
   void pgqvp_c(fint *,float *,float *,float *,float *)
   void pgqvsz_c(fint *,float *,float *,float *,float *)
   void pgqwin_c(float *,float *,float *,float *)
   void pgrect_c(float *,float *,float *,float *)
   float pgrnd_c(float *,fint *)
   void pgrnge_c(float *,float *,float *,float *)
   void pgsah_c(fint *,float *,float *)
   void pgsave_c()
   void pgsbci_c(fint *)
   void pgscf_c(fint *)
   void pgsch_c(float *)
   void pgsci_c(fint *)
   void pgscir_c(fint *,fint *)
   void pgsclp_c(fint *)
   void pgscr_c(fint *,float *,float *,float *)
   void pgscrl_c(float *,float *)
   void pgscrn_c(fint *,fchar,fint *)
   void pgsfs_c(fint *)
   void pgshls_c(fint *,float *,float *,float *)
   void pgshs_c(float *,float *,float *)
   void pgsimi_c(fint *)
   void pgsitf_c(fint *)
   void pgslct_c(fint *)
   void pgsls_c(fint *)
   void pgslw_c(fint *)
   void pgsncr_c(fint *,float *,float *,float *,fint *)
   void pgstbg_c(fint *)
   void pgsubp_c(fint *,fint *)
   void pgsvp_c(float *,float *,float *,float *)
   void pgswin_c(float *,float *,float *,float *)
   void pgtbox_c(fchar,float *,fint *,fchar,float *,fint *)
   void pgtext_c(float *,float *,fchar)
   void pgtick_c(float *,float *,float *,float *,float *,float *,float *,float *,float *,fchar)
   void pgunsa_c()
   void pgupdt_c()
   void pgvect_c(float *,float *,fint *,fint *,fint *,fint *,fint *,fint *,float *,fint *,float *,float *)
   void pgvsiz_c(float *,float *,float *,float *)
   void pgvstd_c()
   void pgwedg_c(fchar,float *,float *,float *,float *,fchar)
   void pgwnad_c(float *,float *,float *,float *)

cdef extern from "pgellipse.h":
   void pgellipse_c(float *,float *,float *,float *,float *,float *,float *,float *)

cdef extern from "pgbeam.h":
   extern void pgbeam_c(float *,float *,float *,float *,float *,float *,float *,fint *)
#<

#>            pgplot.pxi
cdef void lininterp (float min, float max, int npts, float *v):
   cdef int i, npts_c
   cdef float step, lev
    
   step = (max-min) / (npts-1)
   lev = min
   for i from 0 <= i < npts:
      v[i] = lev
      lev  = lev + step

def pgqinf(item):
   cdef fchar value_c
   cdef fint  length_c
   value_c = newfchar(80) # should be long enough...
   pgqinf_c(tofchar(item), value_c, &length_c)
   value_c.a[length_c] = 0
   value = value_c.a
   delfchar(value_c)
   return value

def pgpoly(x, y):
   cdef long x_l, y_l
   cdef fint  n_c
   n = len(x)
   if n!=len(y):
      raise GipsyError, "unequal list lengths"
   xp = realptr(x, n)
   yp = realptr(y, n)
   x_l = xp.ptr
   y_l = yp.ptr
   n_c = n
   pgpoly_c(&n_c, <float*>x_l, <float*>y_l)

def pgqvp(fint units_c):
   cdef float x1_c, x2_c, y1_c, y2_c
   pgqvp_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
   return (x1_c, x2_c, y1_c, y2_c)

def pgqvsz(fint units_c):
   cdef float x1_c, x2_c, y1_c, y2_c
   pgqvsz_c(&units_c, &x1_c, &x2_c, &y1_c, &y2_c)
   return (x1_c, x2_c, y1_c, y2_c)

def pgsclp(fint state_c):
   pgsclp_c(&state_c)

def pgqclp():
   cdef fint state_c
   pgqclp_c(&state_c)
   return state_c

def pgqtxt(float x_c, float y_c, float angle_c, float just_c, text):
   cdef float xbox_c[4], ybox_c[4]
   pgqtxt_c(&x_c, &y_c, &angle_c, &just_c, tofchar(text), xbox_c, ybox_c)
   result = ( ( xbox_c[0], ybox_c[0] ),
              ( xbox_c[1], ybox_c[1] ),
              ( xbox_c[2], ybox_c[2] ),
              ( xbox_c[3], ybox_c[3] ) )

def pgconf(a, idim, jdim, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
           float c1_c, float c2_c, tr):
   cdef fint idim_c, jdim_c
   cdef long a_l, tr_l
   idim_c = idim
   jdim_c = jdim
   a_ptr  = realptr(a, idim*jdim); a_l = a_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgconf_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
            &c1_c, &c2_c, <float*>tr_l)

def pgarro(float x1_c, float y1_c, float x2_c, float y2_c):
   pgarro_c(&x1_c, &y1_c, &x2_c, &y2_c)

def pgask(bool t_c):
   pgask_c(&t_c)

def pgband(fint mode_c, fint posn_c=0, float xref_c=0.0, float yref_c=0.0):
   cdef float x_c, y_c
   cdef fchar ch_c
   ch_c = tofchar(' ')
   pgband_c(&mode_c, &posn_c, &xref_c, &yref_c, &x_c, &y_c, ch_c)
   return (x_c, y_c, ch_c.a)

def pgbbuf():
   pgbbuf_c()

def pgbeg(device, fint xnsub_c=1, fint ynsub_c=1):
   cdef fint zero_c
   zero_c = 0
   pgbeg_c(&zero_c, tofchar(device), &xnsub_c, &ynsub_c)
   
def pgbin(fint nbin_c, x, data, bool center_c=1):
   cdef long x_l, data_l
   x_ptr = realptr(x, nbin_c); x_l = x_ptr.ptr
   data_ptr = realptr(data, nbin_c); data_l = data_ptr.ptr
   pgbin_c(&nbin_c, <float*>x_l, <float*>data_l, &center_c)

# only simplified interface - the others are not implemented
#
def pgbin_s(data, float x1_c=0.0, float x2_c=0.0, bool center_c=False):
   cdef fint  nbin_c
   cdef float *x_c, dummy1, dummy2
   cdef long data_l
   data_ptr = realptr(data); data_l = data_ptr.ptr
   nbin_c = data_ptr.n
   x_c = <float*>malloc(nbin_c*sizeof(float))
   if x1_c==x2_c:
      pgqwin_c(&x1_c, &x2_c, &dummy1, &dummy2)
   lininterp(x1_c, x2_c, nbin_c, x_c)

   pgbin_c(&nbin_c, x_c, <float*>data_l, &center_c) 
   free(x_c)

def pgbox(xopt='ABCGNTS', float xtick_c=0.0, fint nxsub_c=0,
          yopt='ABCGNTS', float ytick_c=0.0, fint nysub_c=0):
   pgbox_c(tofchar(xopt), &xtick_c, &nxsub_c,
           tofchar(yopt), &ytick_c, &nysub_c)

def pgcirc(float x_c, float y_c, float radius_c):
   pgcirc_c(&x_c, &y_c, &radius_c)

def pgclos():
   pgclos_c()
   
def pgconb(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
           c, fint nc_c, tr, float blank_c=0.0):
   cdef long a_l, c_l, tr_l
   a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
   c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgconb_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
            <float*>c_l, &nc_c, <float*>tr_l, &blank_c)

def pgconl(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
           c, tr, label, fint intval_c, fint minint_c):
   cdef long a_l, tr_l, c_l
   a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
   c_ptr  = realptr(c); c_l = c_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgconl_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
            <float*>c_l, <float*>tr_l, tofchar(label), &intval_c, &minint_c)

def pgcons(a, id, jd, i1, i2, j1, j2, c, nc, tr):
   cdef long a_l, c_l, tr_l
   cdef fint id_c, jd_c, i1_c, i2_c, j1_c, j2_c, nc_c
   id_c=id, jd_c=jd, i1_c=i1; i2_c=i2; j1_c=j1; j2_c=j2; nc_c=nc
   a_ptr  = realptr(a, id*jd); a_l = a_ptr.ptr
   c_ptr  = realptr(c, nc); c_l = c_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgcons_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
            <float*>c_l, &nc_c, <float*>tr_l)

def pgcont(a, fint id_c, fint jd_c, fint i1_c, fint i2_c, fint j1_c, fint j2_c,
           c, fint nc_c, tr):
   cdef long a_l, c_l, tr_l
   a_ptr  = realptr(a, id*jd_c); a_l = a_ptr.ptr
   c_ptr  = realptr(c, nc_c); c_l = c_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgcont_c(<float*>a_l, &id_c, &jd_c, &i1_c, &i2_c, &j1_c, &j2_c,
            <float*>c_l, &nc_c, <float*>tr_l)

def pgctab(l, r, g, b, nc=None, float contra_c=1.0, float bright_c=0.5):
   cdef long l_l, r_l, g_l, b_l
   cdef fint nc_c
   l_ptr = realptr(l, nc); nl = l_ptr.n; l_l = l.ptr.ptr
   r_ptr = realptr(r, nc); nr = r_ptr.n; r_l = r_ptr.ptr
   g_ptr = realptr(g, nc); ng = g_ptr.n; g_l = g_ptr.ptr
   b_ptr = realptr(b, nc); nb = b_ptr.n; b_l = b_ptr.ptr
   nc_c = nl
   if (nr<nc_c) or (ng<nc_c) or (nb<nc):
      raise GipsyError, "pgctab: invalid color tables"
   pgctab_c(<float*>l_l, <float*>r_l, <float*>g_l, <float*>b_l,
            &nc_c, &contra_c, &bright_c)

def pgdraw(float x_c, float y_c):
   pgdraw_c(&x_c, &y_c)

def pgebuf():
   pgebuf_c()

def pgend():
   pgend_c()

def pgenv(float xmin_c, float xmax_c, float ymin_c, float ymax_c,
          fint just_c=0, fint axis_c=0):
   pgenv_c(&xmin_c, &xmax_c, &ymin_c, &ymax_c, &just_c, &axis_c)

def pgeras():
   pgeras_c()

def pgetxt():
   pgetxt_c()

def pggray(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,
           fint j1_c, fint j2_c, float fg_c, float bg_c, tr):

   cdef long a_l, tr_l
   a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pggray_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
            &fg_c, &bg_c, <float*>tr_l)

def pghi2d(data, fint nxv_c, fint nyv_c, fint ix1_c, fint ix2_c,
            fint iy1_c, fint iy2_c, x, fint ioff_c, float bias_c,
            bool center_c, ylims):
   cdef long data_l, x_l, ylims_l
   data_ptr = realptr(data, nxv_c*nyv_c); data_l = data_ptr.ptr
   x_ptr = realptr(x, ix2_c-ix1_c+1); x_l = x_ptr.ptr
   ylims_ptr = realptr(ylims, ix2_c-ix1_c+1); ylims_l = ylims_ptr.ptr
   pghi2d_c(<float*>data_l, &nxv_c, &nyv_c, &ix1_c, &ix2_c, &iy1_c, &iy2_c,
            <float*>x_l, &ioff_c, &bias_c, &center_c, <float*>ylims_l)

def pghist(fint n_c, data, float datamin_c, float datamax_c,
           fint nbin_c, fint pgflag_c=0):
   cdef long data_l
   data_ptr = realptr(data, n_c); data_l = data_ptr.ptr
   pghist_c(&n_c, <float*>data_l, &datamin_c, &datamax_c, &nbin_c, &pgflag_c)

def pgiden():
   pgiden_c()

def pgimag(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,
           fint j1_c, fint j2_c, float a1_c, float a2_c, tr):
   cdef long a_l, tr_l
   a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgimag_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
            &a1_c, &a2_c, <float*>tr_l)

def pglab(xlabel, ylabel, toplabel):
   pglab_c(tofchar(xlabel), tofchar(ylabel), tofchar(toplabel))

def pgldev():
   pgldev_c()

def pglen(text, fint units_c=4):
   cdef float xl_c, yl_c
   pglen_c(&units_c, tofchar(text), &xl_c, &yl_c)
   return (xl_c, yl_c)

def pgline(xpts, ypts):
   cdef long xpts_l, ypts_l
   cdef fint n_c
   xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n
   ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
   n_c = min(xsz, ysz)
   pgline_c(&n_c, <float*>xpts_l, <float*>ypts_l)

def pgmove(float x_c, float y_c):
   pgmove_c(&x_c, &y_c)

def pgmtxt(side, float disp_c, float coord_c, float fjust_c, text):
   pgmtxt_c(tofchar(side), &disp_c, &coord_c, &fjust_c, tofchar(text))

def pgopen(device):
   return pgopen_c(tofchar(device))

def pgpage():
   pgpage_c()

def pgpanl(fint ix_c=1, fint iy_c=1):
   pgpanl_c(&ix_c, &iy_c)

def pgpap(float width_c, float aspect_c=1.0):
   pgpap_c(&width_c, &aspect_c)

def pgpt(xpts, ypts, fint symbol_c=0):
   cdef long xpts_l, ypts_l
   cdef fint n_c
   xpts_ptr = realptr(xpts, None); xpts_l = xpts_ptr.ptr; xsz = xpts_ptr.n
   ypts_ptr = realptr(ypts, None); ypts_l = ypts_ptr.ptr; ysz = ypts_ptr.n
   n_c = min(xsz, ysz)
   pgpt_c(&n_c, <float*>xpts_l, <float*>ypts_l, &symbol_c)

def pgptxt(float x_c, float y_c, float angle_c, float fjust_c, text):
   pgptxt_c(&x_c, &y_c, &angle_c, &fjust_c, tofchar(text))

def pgqah():
   cdef fint fs_c
   cdef float angle_c, barb_c
   pgqah_c(&fs_c, &angle_c, &barb_c)
   return (fs_c, angle_c, barb_c)

def pgqcf():
   cdef fint cf_c
   pgqcf_c(&cf_c)
   return cf_c

def pgqch():
   cdef float ch_c
   pgqch_c(&ch_c)
   return ch_c

def pgqci():
   cdef fint ci_c
   pgqci_c(&ci_c)
   return ci_c

def pgqcir():
   cdef fint icilo_c, icihi_c
   pgqcir_c(&icilo_c, &icihi_c)
   return (icilo_c, icihi_c)

def pgqcol():
   cdef fint ci1_c, ci2_c
   pgqcir_c(&ci1_c, &ci2_c)
   return (ci1_c, ci2_c)

def pgqcr(fint ci_c=0):
   cdef float cr_c, cg_c, cb_c
   pgqcr_c(&ci_c, &cr_c, &cg_c, &cb_c)
   return (cr_c, cg_c, cb_c)

def pgqcs(fint units_c=4):
   cdef float xch_c, ych_c
   pgqcs_c(&units_c, &xch_c, &ych_c)
   return (xch_c, ych_c)

def pgqfs():
   cdef fint fs_c
   pgqfs_c(&fs_c)
   return fs_c

def pgqhs():
   cdef float angle_c, sepn_c, phase_c
   pgqhs_c(&angle_c, &sepn_c, &phase_c)
   return (angle_c, sepn_c, phase_c)

def pgqid():
   cdef fint id_c
   pgqid_c(&id_c)
   return id_c

def pgqitf():
   cdef fint itf_c
   pgqitf_c(&itf_c)
   return itf_c

def pgqls(): 
   cdef fint ls_c
   pgqid_c(&ls_c)
   return ls_c

def pgqlw():
   cdef fint lw_c
   pgqlw_c(&lw_c)
   return lw_c

def pgqpos():
   cdef float x_c, y_c
   pgqpos_c(&x_c, &y_c)
   return (x_c, y_c)

def pgrect(float x1_c, float x2_c, float y1_c, float y2_c):
   pgrect_c(&x1_c, &x2_c, &y1_c, &y2_c)

def pgsah(fint fs_c=1, float angle_c=45.0, float barb_c=0.3):
   pgsah_c(&fs_c, &angle_c, &barb_c)

def pgsave():
   pgsave_c()

def pgunsa():
   pgunsa_c()

def pgscf(fint cf_c=1):
   pgscf_c(&cf_c)

def pgsch(float ch_c=1.0):     #### error in ppgplot-doc.txt!! ###
   pgsch_c(&ch_c)

def pgsci(fint ci_c=1):
   pgsci_c(&ci_c)

def pgscir(fint c1_c=0, fint c2_c=0):
   if c1_c==0 and c2_c==0:
      pgqcol_c(&c1_c, &c2_c)
      if c2_c>15: c1_c = 16
      else:       c1_c = 1
   pgscir_c(&c1_c, &c2_c)

def pgscr(fint ci_c, float r_c, float g_c, float b_c):
   pgscr_c(&ci_c, &r_c, &g_c, &b_c)

def pgsfs(fint fs_c=1):
   pgsfs_c(&fs_c)

def pgshls(fint ci_c, float hue_c, float level_c, float saturation_c):
   pgshls_c(&ci_c, &hue_c, &level_c, &saturation_c)

def pgshs(float angle_c, float sepn_c, float phase_c):
   pgshs_c(&angle_c, &sepn_c, &phase_c)

def pgsitf(fint itf_c):
   pgsitf_c(&itf_c)

def pgslct(fint devid_c=0):
   pgslct_c(&devid_c)

def pgsls(fint ls_c=0):
   pgsls_c(&ls_c)

def pgslw(fint lw_c=1):
   pgslw_c(&lw_c)

def pgstbg(fint tbg_c=0):
   pgstbg_c(&tbg_c)

def pgsubp(fint xnsub_c=1, fint ynsub_c=1):
   pgsubp_c(&xnsub_c, &ynsub_c)

def pgsvp(float xleft_c=0.0, float xright_c=1.0,
          float ybot_c=0.0, float ytop_c=1.0):
   pgsvp_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)

def pgswin(float x1_c=0.0, float x2_c=1.0, float y1_c=0.0, float y2_c=1.0):
   pgswin_c(&x1_c, &x2_c, &y1_c, &y2_c)

def pgtext(float x_c, float y_c, text):
   pgtext_c(&x_c, &y_c, tofchar(text))

def pgupdt():
   pgupdt_c()

def pgvsiz(float xleft_c, float xright_c, float ybot_c, float ytop_c):
   pgvsiz_c(&xleft_c, &xright_c, &ybot_c, &ytop_c)

def pgvstd():
   pgvstd_c()

def pgwedg(side, float disp_c, float width_c, float fg_c, float bg_c, label):
   pgwedg_c(tofchar(side), &disp_c, &width_c, &fg_c, &bg_c, tofchar(label))

def pgwnad(float x1_c, float x2_c, float y1_c, float y2_c):
   pgwnad_c(&x1_c, &x2_c, &y1_c, &y2_c)

#####  GIPSY-private functions:

def pgqimi():
   cdef fint intp_c
   pgqimi_c(&intp_c)
   return intp_c

def pgsimi(bool i_c):
   pgsimi_c(&i_c)

def pgcotic(a, fint idim_c, fint jdim_c, fint i1_c, fint i2_c,
            fint j1_c, fint j2_c, c, fint nc_c, tr, float blank_c,
            float tlen_c, fint tstep_c):
   cdef long a_l, c_l, tr_l
   a_ptr = realptr(a, idim_c*jdim_c); a_l = a_ptr.ptr
   c_ptr = realptr(c, nc_c); c_l = c_ptr.ptr
   tr_ptr = realptr(tr, 6); tr_l = tr_ptr.ptr
   pgcotic_c(<float*>a_l, &idim_c, &jdim_c, &i1_c, &i2_c, &j1_c, &j2_c,
             <float*>c_l, &nc_c, <float*>tr_l, &blank_c, &tlen_c, &tstep_c)

def pgexist(fint n_c):
   return pgexist_c(&n_c)

def pgpat(pat):
   cdef long pat_l
   pat_ptr = realptr(pat, 8); pat_l = pat_ptr.ptr
   pgpat_c(<float*>pat_l)

def pgellipse(float xcentre_c, float ycentre_c, float major_c, float minor_c,
              float pa_c, float startang_c, float endang_c, float delta_c):
   pgellipse_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
               &pa_c, &startang_c, &endang_c, &delta_c)

def pgbeam(float xcentre_c, float ycentre_c, float major_c, float minor_c,
              float pa_c, float delta_c, float slope_c, fint shape_c):
   pgbeam_c(&xcentre_c, &ycentre_c, &major_c, &minor_c,
               &pa_c, &delta_c, &slope_c, &shape_c)

def pgsbci(fint ci_c):
   pgsbci_c(&ci_c)

def pgqbci():
   cdef fint ci_c
   pgqbci_c(&ci_c)
   return ci_c
#<

#>            qt4logos.pxi
# Resource object code
# 
# Created: Fri Feb 26 17:43:34 2010
#      by: The Resource Compiler for PyQt (Qt v4.4.0)
#  
# Input file: logos.qrc. Contents:
#      
#  <!DOCTYPE RCC><RCC version="1.0">
#  <qresource>
#      <file>gipsy_logo.png</file>
#      <file>rug_logo.png</file>
#  </qresource>
#  </RCC>
# 
# The resource strings had to be prefixed by a 'b' to enforce
# byte string encoding. (Required by Cython)
#
# Note that Cython translates the strings into very long C source lines.   
#

def qInitResources():
   QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name,
                                      qt_resource_data)

def qCleanupResources():
   QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,
                                        qt_resource_data)
 
def gipsy_logo():
   logo = QtGui.QLabel()
   logo.setPixmap(QtGui.QPixmap(':gipsy_logo.png'))
   logo.setFixedSize(27,30)
   logo.setScaledContents(True)
   logo.setToolTip(logo_text)
   return logo

def kapteyn_logo():
   logo = QtGui.QLabel()
   logo.setPixmap(QtGui.QPixmap(':Kapteyn45.png'))
   logo.setFixedSize(27,30)
   logo.setScaledContents(True)
   logo.setToolTip(kapteyn_text)
   return logo

try:
   from PyQt4 import QtCore, QtGui

   qt_resource_data = b"\
\x00\x00\x83\xc1\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x4c\x00\x00\x00\x6e\x08\x06\x00\x00\x00\x8d\xf3\xf5\x16\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\
\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
\xd9\x03\x09\x0a\x1c\x13\xac\x13\x4b\x48\x00\x00\x20\x00\x49\x44\
\x41\x54\x78\x01\x00\x7b\x7f\x84\x80\x01\xff\xff\xff\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\
\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x6d\x00\
\x00\x00\x61\x00\x00\x00\x14\x00\x00\x00\xcc\x00\x00\x00\x88\x00\
\x00\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\
\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\xa7\x00\x00\x00\x55\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\
\x00\x00\x00\x51\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x00\x00\x55\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x06\x00\x00\x00\xad\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x28\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x08\x00\x00\x00\x16\x00\x00\x00\x13\x00\x00\
\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x5a\x00\x00\x00\x34\x00\
\x00\x00\xf7\x00\x00\x00\xd9\x00\x00\x00\xba\x00\x00\x00\xe1\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\
\x00\x00\xac\x00\x00\x00\xa0\x00\x00\x00\x73\x00\x00\x00\xb8\x00\
\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xaa\x00\x00\x00\xdb\x00\x00\x00\xcf\x00\
\x00\x00\xf7\x00\x00\x00\x32\x00\x00\x00\xf5\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x36\x00\
\x00\x00\x22\x00\x00\x00\xee\x00\x00\x00\xb5\x00\x00\x00\xc5\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xcd\x01\x01\x89\x00\x00\x00\x76\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x00\x00\x00\x59\
\x00\x00\x00\xb9\x00\x00\x00\x01\x00\x00\x00\x55\x00\x00\x00\xf8\
\x00\x00\x00\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\xbe\
\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x76\x00\x00\x00\x54\
\x00\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x5e\x00\x00\x00\x42\
\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x87\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x1c\x00\x00\x00\x49\x00\x00\x00\xbd\x00\x00\x00\xde\
\x00\x00\x00\x03\x00\x00\x00\x9c\x00\x00\x00\x60\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\x29\
\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xcd\x01\x01\xea\x00\x00\x00\x15\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x54\x00\x00\x00\xd8\x00\x00\x00\xd4\x00\x00\x00\
\x00\x00\x00\x00\xc3\x00\x00\x00\x75\x00\x00\x00\xc9\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\
\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xe6\x00\x00\x00\
\x35\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x38\x00\x00\x00\
\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\
\x73\x00\x00\x00\x72\x00\x00\x00\x17\x00\x00\x00\xc8\x00\x00\x00\
\x46\x00\x00\x00\xa6\x00\x00\x00\x4c\x00\x00\x00\xff\x00\x00\x00\
\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x58\x00\x00\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x99\x00\x00\x00\x2c\x00\x00\
\x00\xc4\x00\x00\x00\x91\x00\x00\x00\x33\x00\x00\x00\xfb\x00\x00\
\x00\x00\x00\x00\x00\x3d\x00\x00\x00\xc3\x00\x00\x00\x85\x00\x00\
\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x56\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xa7\x00\x00\x00\x30\x00\x00\x00\x3d\x00\x00\
\x00\x47\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x62\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\xbe\x00\x00\
\x00\x89\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\
\x00\x6f\x00\x00\x00\x4c\x00\x00\x00\x6c\x00\x00\x00\x37\x00\x00\
\x00\xd2\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x73\x00\x00\x00\x73\x00\
\x00\x00\xb9\x00\x00\x00\x6d\x00\x00\x00\x05\x00\x00\x00\xef\x00\
\x00\x00\x14\x00\x00\x00\xcf\x00\x00\x00\x07\x00\x00\x00\x10\x00\
\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x89\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\xd2\x00\
\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xf9\x00\x00\x00\x2a\x00\x00\x00\xde\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x81\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\
\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\xc7\x00\x00\x00\x25\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x00\
\x00\x00\x0b\x00\x00\x00\x9e\x00\x00\x00\x69\x00\x00\x00\x00\x00\
\x00\x00\x0f\x00\x00\x00\x22\x00\x00\x00\xa4\x00\x00\x00\x01\x00\
\x00\x00\x44\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x28\
\x00\x00\x00\x61\x00\x00\x00\xf4\x00\x00\x00\xef\x00\x00\x00\x00\
\x00\x00\x00\xec\x00\x00\x00\x93\x00\x00\x00\x15\x00\x00\x00\x05\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x73\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x00\x00\xfc\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xff\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x25\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\
\x00\x00\x00\xf8\x00\x00\x00\x7b\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xf1\x00\x00\x00\xcf\x00\x00\x00\x31\x00\x00\x00\x32\
\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\x6b\x00\x00\x00\x81\x00\x00\x00\
\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x00\
\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x08\x00\x00\x00\x79\x00\x00\x00\x08\x00\x00\x00\
\x00\x00\x00\x00\x2e\x00\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x50\x00\x00\x00\x84\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xd9\x00\x00\x00\xf1\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x00\x00\
\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x9b\x00\x00\
\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\xbd\x00\x00\
\x00\x00\x00\x00\x00\x55\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x00\
\x00\xab\x00\x00\x00\x57\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\
\x00\x6a\x00\x00\x00\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xeb\x00\x00\x00\x11\x00\x00\x00\x04\x00\x00\x00\xd5\x00\x00\
\x00\xe3\x00\x00\x00\x3a\x00\x00\x00\x0e\x00\x00\x00\xf0\x00\x00\
\x00\x07\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x00\
\x00\x33\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\
\x00\xd6\x00\x00\x00\x05\x00\x00\x00\xe4\x00\x00\x00\x2a\x00\x00\
\x00\xf3\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\x32\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xfb\x00\x00\x00\x47\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\xc6\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x4b\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x9c\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\xbc\x00\
\x00\x00\x6a\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x2b\x00\
\x00\x00\x48\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xd3\x00\
\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x00\
\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x00\
\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x10\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xfa\x00\x00\x00\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\
\x00\x00\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\xea\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\xf6\x00\x00\x00\x00\
\x00\x00\x00\xfd\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xfa\x00\x00\x00\x78\x00\x00\x00\x95\x00\x00\x00\x9b\
\x00\x00\x00\x8d\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\
\x00\x00\x00\x3b\x00\x00\x00\x5c\x00\x00\x00\x97\x00\x00\x00\xa7\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x1f\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00\xe4\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x94\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xe1\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\
\x85\x00\x00\x00\xe8\x00\x00\x00\x02\x00\x00\x00\xf3\x00\x00\x00\
\x00\x00\x00\x00\x03\x00\x00\x00\x63\x00\x00\x00\x04\x00\x00\x00\
\x00\x00\x00\x00\x0d\x00\x00\x00\xac\x00\x00\x00\x10\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x6c\x00\x00\x00\
\x28\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x63\x00\x00\x00\xbc\x00\x00\x00\x6a\x00\x00\x00\
\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x00\x00\x00\
\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\
\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\
\x00\x00\x00\x00\xb2\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\
\xe5\x00\x00\x00\x7e\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xae\x00\x00\x00\xd2\x00\x00\x00\x08\x00\x00\
\x00\x45\x00\x00\x00\x97\x00\x00\x00\x43\x00\x00\x00\xed\x00\x00\
\x00\x00\x00\x00\x00\x01\x00\x00\x00\x27\x00\x00\x00\xfe\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x00\x00\x00\xf0\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x9e\x00\x00\x00\x54\x00\x00\x00\xce\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\
\x00\x86\x00\x00\x00\x41\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\
\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\
\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x00\
\x00\x50\x00\x00\x00\xee\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\
\x00\x94\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xfa\x00\x00\x00\xa5\x00\x00\x00\x00\x00\
\x00\x00\x36\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\xfe\x00\
\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x45\x00\x00\x00\xd4\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x70\x00\
\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xe4\x00\x00\x00\xd9\x00\x00\x00\xde\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\xf9\x00\
\x00\x00\xdb\x00\x00\x00\xd4\x00\x00\x00\xfd\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x44\x00\x00\x00\x7d\x00\
\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
\x00\x00\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\
\x00\x00\x46\x00\x00\x00\x60\x00\x00\x00\x12\x00\x00\x00\xeb\x00\
\x00\x00\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\
\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\xcc\
\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x63\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x91\
\x00\x00\x00\x03\x00\x00\x00\xf5\x00\x00\x00\x0b\x00\x00\x00\x00\
\x00\x00\x00\xf8\x00\x00\x00\xd4\x00\x00\x00\xe4\x00\x00\x00\x03\
\x00\x00\x00\x23\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\xf9\
\x00\x00\x00\xa3\x00\x00\x00\xa3\x00\x00\x00\x9b\x00\x00\x00\x26\
\x00\x00\x00\x00\x00\x00\x00\xf2\x00\x00\x00\xd2\x00\x00\x00\xeb\
\x00\x00\x00\x08\x00\x00\x00\x26\x00\x00\x00\x23\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x00\x00\x06\x00\x00\x00\xdc\
\x00\x00\x00\x44\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00\x04\
\x00\x00\x00\xee\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa8\
\x00\x00\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xb6\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x00\x00\
\xa8\x00\x00\x00\x11\x00\x00\x00\x3a\x00\x00\x00\x34\x00\x00\x00\
\x00\x00\x00\x00\xaa\x00\x00\x00\x88\x00\x00\x00\x82\x00\x00\x00\
\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xf4\x00\x00\x00\xca\x00\x00\x00\xf7\x00\x00\x00\x20\x00\x00\x00\
\x2a\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xef\x00\x00\x00\x7d\x00\x00\x00\xd0\x00\x00\x00\xaa\x00\x00\x00\
\x1a\x00\x00\x00\xea\x00\x00\x00\xc8\x00\x00\x00\xcf\x00\x00\x00\
\x16\x00\x00\x00\x62\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\
\x55\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x44\x00\x00\x00\xb7\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xff\x00\x00\x00\xcb\x00\x00\x00\x0d\x00\x00\x00\x15\x00\x00\
\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xf9\x00\x00\x00\xea\x00\x00\x00\xe2\x00\x00\x00\x1c\x00\x00\
\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\
\x00\x37\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xc3\x00\x00\x00\xe8\x00\x00\x00\x1c\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01\x00\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x07\x00\x00\x00\x1d\x00\x00\x00\x1d\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\
\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x78\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xf0\x00\x00\x00\xf0\x00\x00\x00\xe8\x00\x00\x00\xec\
\x00\x00\x00\xe9\x00\x00\x00\xec\x00\x00\x00\xf3\x00\x00\x00\xf4\
\x00\x00\x00\xf3\x00\x00\x00\xf9\x00\x00\x00\xfc\x00\x00\x00\x06\
\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x0b\x00\x00\x00\x10\
\x00\x00\x00\x14\x00\x00\x00\x17\x00\x00\x00\x16\x00\x00\x00\x18\
\x00\x00\x00\x10\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\
\x00\x00\x00\xb1\x00\x00\x00\xd1\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xa5\xcd\x9b\xcc\x00\x00\x20\x00\x49\x44\x41\x54\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x02\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xf8\x00\x00\x00\xdd\x00\x00\x00\xdd\x00\x00\x00\
\xe9\x00\x00\x00\xe8\x00\x00\x00\xd9\x00\x00\x00\xd9\x00\x00\x00\
\xf3\x00\x00\x00\xde\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x07\x00\x00\x00\x1b\x00\x00\x00\xde\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\
\x21\x00\x00\x00\x14\x00\x00\x00\x2b\x00\x00\x00\x21\x00\x00\x00\
\x19\x00\x00\x00\x1b\x00\x00\x00\x27\x00\x00\x00\x1b\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\
\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x06\x00\x00\x00\x9f\x00\x00\x00\x2b\x00\x00\x00\xc0\x00\x00\
\x00\xc4\x00\x00\x00\xd0\x00\x00\x00\xe0\x00\x00\x00\xfc\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\
\x00\xb8\x00\x00\x00\x7c\x00\x00\x00\xb9\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x47\x00\x00\x00\xa1\x00\x00\x00\x16\x00\x00\x00\xd3\x00\x00\
\x00\x52\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\
\x00\x2e\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x2a\x00\x00\
\x00\x3d\x00\x00\x00\x3f\x00\x00\x00\x2f\x00\x00\x00\x68\x00\x00\
\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\xfc\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xb2\x00\
\x00\x00\x47\x00\x00\x00\xfb\x00\x00\x00\x3f\x00\x00\x00\xc7\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x76\x00\x00\x00\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x49\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\xad\x00\
\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x6e\x00\x00\x00\xff\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\xf4\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\xc0\x00\x00\x00\xe2\
\x00\x00\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\xb3\
\x00\x00\x00\xf4\x00\x00\x00\xa9\x00\x00\x00\xcd\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x8a\x00\x00\x00\x61\x00\x00\x00\x8a\x00\x00\x00\x48\
\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x00\x00\x00\xd4\
\x00\x00\x00\xe7\x00\x00\x00\xb7\x00\x00\x00\xff\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x80\x00\x00\x00\xdb\x00\x00\x00\xa4\x00\x00\x00\x19\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00\x39\x00\x00\x00\
\x00\x00\x00\x00\x84\x00\x00\x00\x7d\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x20\x00\x00\x00\xec\x00\x00\x00\x03\x00\x00\x00\
\x17\x00\x00\x00\x15\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\
\x0e\x00\x00\x00\x0b\x00\x00\x00\xf5\x00\x00\x00\x01\x00\x00\x00\
\x01\x00\x00\x00\x0b\x00\x00\x00\xf3\x00\x00\x00\xf1\x00\x00\x00\
\xec\x00\x00\x00\xec\x00\x00\x00\xea\x00\x00\x00\xe9\x00\x00\x00\
\x11\x00\x00\x00\xf8\x00\x00\x00\xea\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xd4\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\
\x66\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x4f\x00\x00\
\x00\xe8\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\
\x00\x1d\x00\x00\x00\x24\x00\x00\x00\x2d\x00\x00\x00\x20\x00\x00\
\x00\x14\x00\x00\x00\x0c\x00\x00\x00\x1e\x00\x00\x00\x1c\x00\x00\
\x00\x0f\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\xf1\x00\x00\
\x00\xde\x00\x00\x00\xe8\x00\x00\x00\xf2\x00\x00\x00\xea\x00\x00\
\x00\xdd\x00\x00\x00\xd2\x00\x00\x00\xda\x00\x00\x00\xed\x00\x00\
\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x5e\x00\x00\x00\x0b\x00\x00\
\x00\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\
\x00\x00\x16\x00\x00\x00\x3a\x00\x00\x00\x3a\x00\x00\x00\x2e\x00\
\x00\x00\x25\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x00\x00\x00\xd9\x00\
\x00\x00\xce\x00\x00\x00\xbd\x00\x00\x00\xd8\x00\x00\x00\xe3\x00\
\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\xcb\
\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\
\x00\x00\x00\x2a\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\
\x7e\x00\x00\x00\x0d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x1a\x00\x00\x00\
\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x23\x00\x00\x00\xbc\x00\x00\x00\xf4\x00\x00\x00\x01\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\xf3\x00\x00\x00\
\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\
\x79\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x4a\x00\x00\
\x00\xb2\x00\x00\x00\x94\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\
\x00\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xfd\x00\x00\x00\xf7\x00\x00\x00\x0a\x00\x00\
\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\
\x00\xfa\x00\x00\x00\x4e\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x93\x00\x00\x00\xea\x00\x00\
\x00\x00\x00\x00\x00\x12\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xff\x00\x00\x00\xfd\x00\x00\x00\x6b\x00\x00\
\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x2d\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\
\x00\x00\xe0\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\xcf\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x31\x00\x00\x00\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xff\x00\x00\x00\x5b\x00\x00\x00\xa9\x00\x00\x00\x0c\x00\
\x00\x00\x08\x00\x00\x00\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x05\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\
\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\
\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x03\x00\x00\x00\x7f\x00\x00\x00\xce\x00\x00\x00\x54\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\
\x00\x00\x00\xbe\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x6c\x00\x00\x00\xa9\x00\x00\x00\x13\x00\x00\x00\xc8\
\x00\x00\x00\xda\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x8a\x00\x00\x00\x06\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xa0\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\
\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\
\xa5\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x72\x00\x00\x00\x96\x00\x00\x00\x0e\x00\x00\x00\xc7\x00\x00\x00\
\x2b\x00\x00\x00\x11\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x6c\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x34\x00\x00\
\x00\x26\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x62\x00\x00\
\x00\xc5\x00\x00\x00\xa7\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x79\x00\x00\x00\xb7\x00\x00\
\x00\xb1\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x51\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xe0\x00\x00\x00\xe2\x00\x00\x00\xeb\x00\x00\
\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\xb6\x00\x00\
\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\
\x00\x8f\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\xf1\x00\x00\
\x00\xee\x00\x00\x00\xf3\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\
\x00\x5b\x00\x00\x00\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x25\x00\x00\x00\x74\x00\
\x00\x00\xb2\x00\x00\x00\xb4\x00\x00\x00\x47\x00\x00\x00\x31\x00\
\x00\x00\x3a\x00\x00\x00\x3a\x00\x00\x00\xed\x00\x00\x00\xbc\x00\
\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x71\x00\x00\x00\x15\x00\
\x00\x00\xf2\x00\x00\x00\x51\x00\x00\x00\x1d\x00\x00\x00\xbf\x00\
\x00\x00\x73\x00\x00\x00\x22\x00\x00\x00\xb4\x00\x00\x00\xf2\x00\
\x00\x00\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x87\x00\x00\x00\x07\x00\
\x00\x00\xf9\x00\x00\x00\x29\x00\x00\x00\xb1\x00\x00\x00\x16\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x7f\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x3c\x00\
\x00\x00\x0b\x00\x00\x00\x09\x00\x00\x00\xe6\x00\x00\x00\x54\x00\
\x00\x00\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\
\x00\x00\xf3\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x48\x00\x00\x00\x1f\
\x00\x00\x00\x7c\x00\x00\x00\x2c\x00\x00\x00\xeb\x00\x00\x00\xae\
\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x10\
\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x15\x00\x00\x00\x00\
\x00\x00\x00\xa8\x00\x00\x00\xd3\x00\x00\x00\x05\x00\x00\x00\x81\
\x00\x00\x00\x3b\x00\x00\x00\x47\x00\x00\x00\x98\x00\x00\x00\x15\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x00\x00\x00\xef\
\x00\x00\x00\x0d\x00\x00\x00\xa0\x00\x00\x00\x25\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x73\x00\x00\x00\x0e\
\x00\x00\x00\x46\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\xf9\
\x00\x00\x00\xee\x00\x00\x00\xe5\x00\x00\x00\x44\x00\x00\x00\xa0\
\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x71\
\x00\x00\x00\xed\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x09\x00\x00\x00\xe4\x00\x00\x00\x63\x00\x00\x00\
\x17\x00\x00\x00\x09\x00\x00\x00\x9d\x00\x00\x00\x23\x00\x00\x00\
\xbf\x00\x00\x00\x56\x00\x00\x00\xb0\x00\x00\x00\x17\x00\x00\x00\
\x97\x00\x00\x00\x53\x00\x00\x00\x9c\x00\x00\x00\xfc\x00\x00\x00\
\x79\x00\x00\x00\x85\x00\x00\x00\xe2\x00\x00\x00\x6a\x00\x00\x00\
\x73\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x1c\x00\x00\x00\
\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x09\x00\x00\x00\xbb\x00\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xac\x00\x00\x00\x65\x00\x00\x00\x07\x00\x00\x00\
\x8a\x00\x00\x00\xb9\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\xae\x00\x00\x00\
\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\
\x9b\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xfa\x00\x00\x00\xdd\x00\x00\x00\xa7\x00\x00\
\x00\xed\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x75\x00\x00\
\x00\x51\x00\x00\x00\xca\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\
\x00\x58\x00\x00\x00\xac\x00\x00\x00\x0c\x00\x00\x00\xe2\x00\x00\
\x00\x88\x00\x00\x00\xe2\x00\x00\x00\x91\x00\x00\x00\x40\x00\x00\
\x00\x00\x00\x00\x00\xff\x00\x00\x00\xd7\x00\x00\x00\xa0\x00\x00\
\x00\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\
\x00\xb4\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xb2\x00\x00\x00\x5d\x00\x00\x00\xff\x00\x00\x00\x8c\x00\x00\
\x00\x67\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x38\x00\x00\x00\xb4\x00\x00\x00\x0c\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x9f\x00\x00\
\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x5d\x00\x00\x00\xbb\x00\
\x00\x00\xdc\x00\x00\x00\x00\x00\x00\x00\xd0\x00\x00\x00\x39\x00\
\x00\x00\x9f\x00\x00\x00\x14\x00\x00\x00\x50\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\
\x00\x00\x53\x00\x00\x00\x04\x00\x00\x00\x4e\x00\x00\x00\x70\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\xe4\x00\
\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x96\x00\
\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\
\x00\x00\x5f\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\xd3\x00\
\x00\x00\xcc\x00\x00\x00\xd1\x00\x00\x00\xec\x00\x00\x00\x00\x00\
\x00\x00\x29\x00\x00\x00\xa4\x00\x00\x00\x16\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x8a\x00\x00\x00\x00\x00\
\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xcd\x01\x01\x4a\x00\x00\x00\x94\x00\x00\x00\x27\
\x00\x00\x00\xfb\x00\x00\x00\x0b\x00\x00\x00\xa4\x00\x00\x00\x50\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\
\x00\x00\x00\xe5\x00\x00\x00\x21\x00\x00\x00\xbd\x00\x00\x00\x9d\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\
\x00\x00\x00\x94\x00\x00\x00\xfe\x00\x00\x00\xf8\x00\x00\x00\x25\
\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x4e\x00\x00\x00\xb3\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x00\x00\x00\x7a\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x3b\
\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xff\x00\x00\x00\x18\
\x00\x00\x00\xca\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x92\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x16\x00\x00\x00\xd2\x00\x00\x00\x47\x00\x00\x00\xd1\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x00\x00\x00\
\x12\x00\x00\x00\x38\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\
\x1d\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\xcf\x00\x00\x00\
\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xef\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x00\x00\x00\
\xc6\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\x4e\x00\x00\x00\
\xf4\x00\x00\x00\x7b\x00\x00\x00\xe1\x00\x00\x00\xa4\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x20\x00\x00\x00\
\xb0\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x9b\x00\x00\x00\x6f\x00\x00\x00\x34\x00\x00\x00\x6f\x00\x00\x00\
\x90\x00\x00\x00\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\xc0\x00\x00\
\x00\x1a\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\
\x00\x4e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x00\x00\
\x00\x7a\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xdb\x00\x00\x00\x5b\x00\x00\x00\xe6\x00\x00\
\x00\x5b\x00\x00\x00\x84\x00\x00\x00\xf0\x00\x00\x00\xb1\x00\x00\
\x00\xf3\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x9f\x00\x00\
\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x00\x00\
\x00\x6a\x00\x00\x00\x23\x00\x00\x00\x8e\x00\x00\x00\x3d\x00\x00\
\x00\xf2\x00\x00\x00\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x44\x00\
\x00\x00\x8d\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x00\
\x00\x00\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\
\x00\x00\xad\x00\x00\x00\x5b\x00\x00\x00\xf4\x00\x00\x00\xfb\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xed\x00\x00\x00\x48\x00\x00\x00\xde\x00\x00\x00\x3b\x00\
\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x15\x00\
\x00\x00\xf3\x00\x00\x00\x04\x00\x00\x00\xb3\x00\x00\x00\x38\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x00\x00\x00\x5d\x00\
\x00\x00\xfc\x00\x00\x00\x83\x00\x00\x00\x3d\x00\x00\x00\x00\x00\
\x00\x00\x33\x00\x00\x00\x09\x00\x00\x00\xff\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x9d\
\x00\x00\x00\xd8\x00\x00\x00\x16\x00\x00\x00\xe4\x00\x00\x00\x12\
\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\
\x00\x00\x00\xcc\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xff\
\x00\x00\x00\xfe\x00\x00\x00\x56\x00\x00\x00\x0d\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\x37\x00\x00\x00\xf9\
\x00\x00\x00\x22\x00\x00\x00\x9f\x00\x00\x00\x4c\x00\x00\x00\xea\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\
\x00\x00\x00\x52\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\xd8\
\x00\x00\x00\x83\x00\x00\x00\x10\x00\x00\x00\x0a\x00\x00\x00\xf6\
\x00\x00\x00\x0d\x00\x00\x00\xa5\x00\x00\x00\x38\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xbc\x00\x00\x00\x52\x00\x00\x00\xfb\
\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\xc7\x00\x00\x00\x05\
\x00\x00\x00\xf1\x00\x00\x00\x03\x00\x00\x00\xff\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x00\x00\
\x3b\x00\x00\x00\x61\x00\x00\x00\x38\x00\x00\x00\x68\x00\x00\x00\
\xb0\x00\x00\x00\xed\x00\x00\x00\xcc\x00\x00\x00\x0a\x00\x00\x00\
\xef\x00\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x87\x00\x00\x00\
\x5a\x00\x00\x00\x0c\x00\x00\x00\xec\x00\x00\x00\x7e\x00\x00\x00\
\x61\x00\x00\x00\x8f\x00\x00\x00\xb6\x00\x00\x00\xeb\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\
\x67\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xed\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x04\x00\x00\x00\x99\x00\x00\x00\x4d\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xc9\x00\x00\x00\x5a\x00\x00\x00\xfb\x00\x00\x00\
\x34\x00\x00\x00\xd4\x00\x00\x00\xd8\x00\x00\x00\xd8\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x0a\x00\x00\x00\
\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\
\x00\xec\x00\x00\x00\xc6\x00\x00\x00\x5a\x00\x00\x00\x7b\x00\x00\
\x00\xa2\x00\x00\x00\x92\x00\x00\x00\x71\x00\x00\x00\x64\x00\x00\
\x00\x4e\x00\x00\x00\x83\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\
\x00\x23\x00\x00\x00\xb5\x00\x00\x00\xca\x00\x00\x00\x7a\x00\x00\
\x00\xb1\x00\x00\x00\x92\x00\x00\x00\x25\x00\x00\x00\xe7\x00\x00\
\x00\x5e\x00\x00\x00\xf6\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xff\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x4f\x00\x00\
\x00\xb8\x00\x00\x00\x52\x00\x00\x00\xa8\x00\x00\x00\x14\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xa2\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xde\x00\x00\x00\x4c\x00\x00\x00\xeb\x00\x00\x00\x83\x00\x00\
\x00\xcb\x00\x00\x00\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x0e\x00\x00\x00\xad\x00\x00\x00\x0f\x00\x00\
\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xe2\x00\x00\x00\xe2\x00\x00\x00\x08\x00\x00\x00\x86\x00\
\x00\x00\xcc\x00\x00\x00\x21\x00\x00\x00\xe4\x00\x00\x00\x74\x00\
\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x5b\x00\x00\x00\xed\x00\
\x00\x00\x30\x00\x00\x00\x04\x00\x00\x00\xfe\x00\x00\x00\x2a\x00\
\x00\x00\x7e\x00\x00\x00\x0f\x00\x00\x00\x85\x00\x00\x00\x2b\x00\
\x00\x00\xd2\x00\x00\x00\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x07\x00\x00\x00\xfc\x00\x00\x00\x65\x00\x00\x00\xc2\x00\
\x00\x00\x3e\x00\x00\x00\x8c\x00\x00\x00\x21\x00\x00\x00\xbb\x00\
\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x7f\x00\
\x00\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x46\
\x97\xd2\x00\x00\x20\x00\x49\x44\x41\x54\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x4d\x00\
\x00\x00\xec\x00\x00\x00\x82\x00\x00\x00\x75\x00\x00\x00\x00\x00\
\x00\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\
\x00\x00\xa7\x00\x00\x00\x24\x00\x00\x00\xfb\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x2f\x00\x00\x00\x3a\x00\x00\x00\x04\x00\x00\x00\x1f\
\x00\x00\x00\x51\x00\x00\x00\xb9\x00\x00\x00\x86\x00\x00\x00\xea\
\x00\x00\x00\x86\x00\x00\x00\x15\x00\x00\x00\x34\x00\x00\x00\xc8\
\x00\x00\x00\xac\x00\x00\x00\x28\x00\x00\x00\xcb\x00\x00\x00\xa0\
\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x50\
\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
\x00\x00\x00\x80\x00\x00\x00\xa0\x00\x00\x00\x02\x00\x00\x00\x9b\
\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x7e\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x56\x00\x00\x00\xd7\
\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xf4\x00\x00\x00\xf3\
\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x9c\
\x00\x00\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xf7\x00\x00\x00\x66\x00\x00\x00\x26\x00\x00\x00\
\x90\x00\x00\x00\xb9\x00\x00\x00\x27\x00\x00\x00\x3f\x00\x00\x00\
\xb2\x00\x00\x00\x7b\x00\x00\x00\x4a\x00\x00\x00\x30\x00\x00\x00\
\xa2\x00\x00\x00\x9b\x00\x00\x00\xeb\x00\x00\x00\x14\x00\x00\x00\
\xa3\x00\x00\x00\xe8\x00\x00\x00\x8e\x00\x00\x00\x0a\x00\x00\x00\
\xc9\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x81\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\
\x5d\x00\x00\x00\x41\x00\x00\x00\x09\x00\x00\x00\xd1\x00\x00\x00\
\x00\x00\x00\x00\x7c\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xf5\x00\x00\x00\x48\x00\x00\x00\xce\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x94\x00\x00\x00\
\x04\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\xae\x00\x00\x00\
\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x04\x00\x00\x00\x31\x00\x00\
\x00\x21\x00\x00\x00\x1e\x00\x00\x00\xdf\x00\x00\x00\x90\x00\x00\
\x00\x08\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\
\x00\x1d\x00\x00\x00\x05\x00\x00\x00\xc9\x00\x00\x00\x9a\x00\x00\
\x00\x3f\x00\x00\x00\x18\x00\x00\x00\x14\x00\x00\x00\x28\x00\x00\
\x00\x98\x00\x00\x00\xfb\x00\x00\x00\x06\x00\x00\x00\x2d\x00\x00\
\x00\x1c\x00\x00\x00\xe0\x00\x00\x00\xd1\x00\x00\x00\x00\x00\x00\
\x00\xe8\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00\xff\x00\x00\
\x00\xd0\x00\x00\x00\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x5c\x00\x00\x00\x81\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xee\x00\x00\x00\x5d\x00\x00\x00\xce\x00\x00\x00\x49\x00\x00\
\x00\x63\x00\x00\x00\x6d\x00\x00\x00\xe7\x00\x00\x00\xe9\x00\x00\
\x00\x00\x00\x00\x00\x04\x00\x00\x00\x9a\x00\x00\x00\x4b\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\xc8\x00\x00\x00\xce\x00\
\x00\x00\x80\x00\x00\x00\xa7\x00\x00\x00\x5f\x00\x00\x00\x21\x00\
\x00\x00\xf8\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x00\x00\
\x00\x00\x1f\x00\x00\x00\xfb\x00\x00\x00\x6f\x00\x00\x00\xdd\x00\
\x00\x00\xc0\x00\x00\x00\xdc\x00\x00\x00\xd2\x00\x00\x00\x77\x00\
\x00\x00\x21\x00\x00\x00\x7a\x00\x00\x00\x48\x00\x00\x00\x01\x00\
\x00\x00\xf5\x00\x00\x00\x10\x00\x00\x00\xec\x00\x00\x00\x8c\x00\
\x00\x00\x55\x00\x00\x00\x36\x00\x00\x00\xe2\x00\x00\x00\x03\x00\
\x00\x00\x77\x00\x00\x00\xec\x00\x00\x00\x9d\x00\x00\x00\x09\x00\
\x00\x00\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\
\x00\x00\x67\x00\x00\x00\xb6\x00\x00\x00\x4f\x00\x00\x00\x86\x00\
\x00\x00\x2a\x00\x00\x00\xa6\x00\x00\x00\xae\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x65\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x00\x00\xcc\x00\x00\x00\x00\
\x00\x00\x00\xe5\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x21\
\x00\x00\x00\xbe\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x00\
\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\x3a\
\x00\x00\x00\xe9\x00\x00\x00\xc6\x00\x00\x00\x82\x00\x00\x00\x70\
\x00\x00\x00\x02\x00\x00\x00\xbc\x00\x00\x00\x62\x00\x00\x00\xdc\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x91\
\x00\x00\x00\xbc\x00\x00\x00\x3f\x00\x00\x00\xf6\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x4a\x00\x00\x00\x64\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\
\x00\x00\x00\xb0\x00\x00\x00\x01\x00\x00\x00\x8c\x00\x00\x00\x24\
\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\xae\x00\x00\x00\x00\
\x00\x00\x00\x92\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xac\x00\x00\x00\xf8\x00\x00\x00\x6a\x00\x00\x00\
\x2a\x00\x00\x00\xd7\x00\x00\x00\x65\x00\x00\x00\x0c\x00\x00\x00\
\x00\x00\x00\x00\x2a\x00\x00\x00\x3e\x00\x00\x00\xf0\x00\x00\x00\
\x97\x00\x00\x00\xa4\x00\x00\x00\x1f\x00\x00\x00\x78\x00\x00\x00\
\xb9\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\
\x43\x00\x00\x00\x10\x00\x00\x00\xd0\x00\x00\x00\xc6\x00\x00\x00\
\xbb\x00\x00\x00\xd7\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\
\x07\x00\x00\x00\x3b\x00\x00\x00\xc5\x00\x00\x00\xd0\x00\x00\x00\
\x9c\x00\x00\x00\x74\x00\x00\x00\x5f\x00\x00\x00\x16\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x7b\x00\x00\x00\
\xb0\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x65\x00\x00\x00\
\x40\x00\x00\x00\x05\x00\x00\x00\xcd\x00\x00\x00\x00\x00\x00\x00\
\x74\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x1c\x00\x00\x00\x74\x00\x00\
\x00\x03\x00\x00\x00\x18\x00\x00\x00\xdb\x00\x00\x00\xdb\x00\x00\
\x00\x29\x00\x00\x00\xb0\x00\x00\x00\x53\x00\x00\x00\x34\x00\x00\
\x00\x14\x00\x00\x00\x32\x00\x00\x00\x75\x00\x00\x00\xbc\x00\x00\
\x00\x00\x00\x00\x00\x22\x00\x00\x00\x3d\x00\x00\x00\xe2\x00\x00\
\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\xdd\x00\x00\
\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x04\x00\x00\x00\x84\x00\x00\x00\x56\x00\x00\x00\xf4\x00\x00\
\x00\x0b\x00\x00\x00\x76\x00\x00\x00\x8c\x00\x00\x00\x50\x00\x00\
\x00\x44\x00\x00\x00\x38\x00\x00\x00\xc7\x00\x00\x00\x93\x00\x00\
\x00\x19\x00\x00\x00\x1d\x00\x00\x00\xca\x00\x00\x00\xc0\x00\x00\
\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\
\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x00\x00\
\x00\xfc\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x7e\x00\
\x00\x00\x7c\x00\x00\x00\xc0\x00\x00\x00\x48\x00\x00\x00\x27\x00\
\x00\x00\x00\x00\x00\x00\x61\x00\x00\x00\x27\x00\x00\x00\xff\x00\
\x00\x00\x55\x00\x00\x00\x59\x00\x00\x00\xbc\x00\x00\x00\x1f\x00\
\x00\x00\x34\x00\x00\x00\x7e\x00\x00\x00\x19\x00\x00\x00\xde\x00\
\x00\x00\x0d\x00\x00\x00\x25\x00\x00\x00\xd6\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\xf3\x00\x00\x00\xfa\x00\
\x00\x00\x9a\x00\x00\x00\x26\x00\x00\x00\x05\x00\x00\x00\x9a\x00\
\x00\x00\x56\x00\x00\x00\x5c\x00\x00\x00\xf5\x00\x00\x00\x06\x00\
\x00\x00\xac\x00\x00\x00\xc8\x00\x00\x00\x32\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x91\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x00\x00\x00\x59\x00\
\x00\x00\xec\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\xb0\
\x00\x00\x00\xbe\x00\x00\x00\x1a\x00\x00\x00\xc0\x00\x00\x00\xfa\
\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\xd5\x00\x00\x00\x29\
\x00\x00\x00\xe9\x00\x00\x00\x2a\x00\x00\x00\x79\x00\x00\x00\x0b\
\x00\x00\x00\xf3\x00\x00\x00\xfe\x00\x00\x00\xff\x00\x00\x00\x11\
\x00\x00\x00\xed\x00\x00\x00\x9e\x00\x00\x00\x4e\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\xff\x00\x00\x00\xfa\
\x00\x00\x00\xd0\x00\x00\x00\x57\x00\x00\x00\x12\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x08\x00\x00\x00\xba\
\x00\x00\x00\x3a\x00\x00\x00\x01\x00\x00\x00\x34\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x8a\x00\x00\x00\x06\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x5b\x00\x00\x00\xb6\
\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xeb\x00\x00\x00\xeb\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\
\xd9\x00\x00\x00\x62\x00\x00\x00\x44\x00\x00\x00\xf2\x00\x00\x00\
\x03\x00\x00\x00\x13\x00\x00\x00\xd4\x00\x00\x00\x38\x00\x00\x00\
\x00\x00\x00\x00\x99\x00\x00\x00\x03\x00\x00\x00\xe7\x00\x00\x00\
\x15\x00\x00\x00\xc1\x00\x00\x00\xb4\x00\x00\x00\x30\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\xc8\x00\x00\x00\x71\x00\x00\x00\
\xb7\x00\x00\x00\xc4\x00\x00\x00\x91\x00\x00\x00\x8d\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\xfc\x00\x00\x00\
\xda\x00\x00\x00\x23\x00\x00\x00\x0a\x00\x00\x00\x1d\x00\x00\x00\
\x00\x00\x00\x00\x47\x00\x00\x00\xae\x00\x00\x00\x01\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\xad\x00\x00\x00\
\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x98\xff\x00\x00\xa3\x01\x00\x00\xf5\x00\x00\x00\x00\x00\x00\
\x00\xf9\x00\x00\x00\x03\x00\x00\x00\xf6\x00\x00\x00\xcb\x00\x00\
\x00\x34\x00\x00\x00\x87\x00\x00\x00\xb0\x00\x00\x00\xd6\x00\x00\
\x00\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xef\x00\x00\x00\x77\x00\x00\x00\x19\x00\x00\
\x00\xe8\x00\x00\x00\x21\x00\x00\x00\x82\x00\x00\x00\xf6\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\xfe\x00\x00\
\x00\x66\x00\x00\x00\x0c\x00\x00\x00\x06\x00\x00\x00\xf2\x00\x00\
\x00\x48\x00\x00\x00\xa6\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x5a\x00\x00\x00\xa7\x00\x00\x00\x00\x00\x00\
\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\
\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xaf\x00\x00\x00\x01\x00\
\x00\x00\x28\x00\x00\x00\x25\x00\x00\x00\xbf\x00\x00\x00\x59\x00\
\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\
\x00\x00\x71\x00\x00\x00\xfa\x00\x00\x00\xcd\x00\x00\x00\xe3\x00\
\x00\x00\x16\x00\x00\x00\xe1\x00\x00\x00\x9e\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\
\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x2f\x00\
\x00\x00\xa2\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\
\x00\x00\x7b\x00\x00\x00\xb0\x00\x00\x00\x53\x00\x00\x00\xbd\x00\
\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\
\x00\x00\x00\xc5\x00\x00\x00\x1a\x00\x00\x00\x12\x00\x00\x00\x56\
\x00\x00\x00\x1b\x00\x00\x00\x92\x00\x00\x00\xb4\x00\x00\x00\x63\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x2b\
\x00\x00\x00\x85\x00\x00\x00\xb1\x00\x00\x00\xf0\x00\x00\x00\x65\
\x00\x00\x00\x7f\x00\x00\x00\x35\x00\x00\x00\x0f\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\xbc\
\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\
\x00\x00\x00\x89\x00\x00\x00\x7b\x00\x00\x00\xac\x00\x00\x00\x6f\
\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x0a\x00\x00\x00\
\x3b\x00\x00\x00\x06\x00\x00\x00\x35\x00\x00\x00\x10\x00\x00\x00\
\xaa\x00\x00\x00\xee\x00\x00\x00\x8c\x00\x00\x00\x10\x00\x00\x00\
\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\
\x18\x00\x00\x00\xfe\x00\x00\x00\xe5\x00\x00\x00\xff\x00\x00\x00\
\xf7\x00\x00\x00\x1b\x00\x00\x00\xe9\x00\x00\x00\x65\x00\x00\x00\
\x1a\x00\x00\x00\x99\x00\x00\x00\xd9\x00\x00\x00\x00\x00\x00\x00\
\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\xb3\x00\x00\x00\
\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\
\x80\x00\x00\x00\x86\x00\x00\x00\x79\x00\x00\x00\x00\x00\x00\x00\
\x3e\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xff\x00\x00\x00\xf5\x00\x00\x00\x4e\x00\x00\
\x00\x8b\x00\x00\x00\x78\x00\x00\x00\xa7\x00\x00\x00\x3f\x00\x00\
\x00\xf9\x00\x00\x00\x10\x00\x00\x00\xce\x00\x00\x00\xa1\x00\x00\
\x00\x04\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x08\x00\x00\
\x00\xd0\x00\x00\x00\xdd\x00\x00\x00\x68\x00\x00\x00\x15\x00\x00\
\x00\x01\x00\x00\x00\xd0\x00\x00\x00\xe8\x00\x00\x00\x0a\x00\x00\
\x00\xf7\x00\x00\x00\x66\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\
\x00\xf9\x00\x00\x00\x1e\x00\x00\x00\xb5\x00\x00\x00\x23\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x80\x00\x00\
\x00\xff\x00\x00\x00\xd7\x00\x00\x00\xbe\x00\x00\x00\xc4\x00\x00\
\x00\xe8\x00\x00\x00\x0c\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\xff\x00\x00\x00\xf9\x00\
\x00\x00\xf6\x00\x00\x00\x03\x00\x00\x00\xf6\x00\x00\x00\x9e\x00\
\x00\x00\xeb\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\xe7\x00\
\x00\x00\x61\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\
\x00\x00\xed\x00\x00\x00\x46\x00\x00\x00\x3d\x00\x00\x00\xf6\x00\
\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x03\x00\
\x00\x00\x42\x00\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x6b\x00\x00\x00\xfa\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\xc3\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xa3\x00\x00\x00\xa3\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x02\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x0e\
\x00\x00\x00\x8a\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x4b\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
\x00\x00\x00\xf9\x00\x00\x00\xfe\x00\x00\x00\xf9\x00\x00\x00\x08\
\x00\x00\x00\xcb\x00\x00\x00\x1c\x00\x00\x00\x10\x00\x00\x00\x93\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x25\
\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\
\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x00\x00\xac\x00\x00\x00\x00\
\x00\x00\x00\x93\x00\x00\x00\x24\x00\x00\x00\x05\x00\x00\x00\x04\
\x00\x00\x00\xa0\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x05\x00\x00\x00\xe0\x00\x00\x00\xe0\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xff\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x91\x00\x00\x00\
\x04\x00\x00\x00\xa6\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\
\x43\x00\x00\x00\x9d\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x68\x00\x00\x00\x1b\x00\x00\x00\x08\x00\x00\x00\
\xf6\x00\x00\x00\x0f\x00\x00\x00\x90\x00\x00\x00\xd3\x00\x00\x00\
\x00\x00\x00\x00\x02\x00\x00\x00\x2a\x00\x00\x00\x12\x00\x00\x00\
\x9a\x00\x00\x00\x32\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\
\x23\x00\x00\x00\xa9\x00\x00\x00\xe7\x00\x00\x00\xf5\x00\x00\x00\
\x82\x00\x00\x00\x0f\x00\x00\x00\x0c\x00\x00\x00\x13\x00\x00\x00\
\xfd\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xfb\x00\x00\x00\x1c\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x17\x00\x00\x00\xe2\x00\x00\x00\x28\x00\x00\
\x00\xad\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x7b\x00\x00\x00\x99\x00\x00\x00\x8c\x00\x00\x00\x0b\x00\x00\
\x00\xba\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x7a\x00\x00\x00\xef\x00\x00\x00\xd8\x00\x00\x00\xf6\x00\x00\
\x00\x01\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\
\x00\x82\x00\x00\x00\xd7\x00\x00\x00\xe8\x00\x00\x00\x1d\x00\x00\
\x00\x02\x00\x00\x00\xd6\x00\x00\x00\x8d\x00\x00\x00\x02\x00\x00\
\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x04\x00\x00\x00\xe9\x00\x00\x00\x71\x00\x00\x00\x96\x00\
\x00\x00\xa1\x00\x00\x00\xe6\x00\x00\x00\x2b\x00\x00\x00\xbf\x00\
\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\
\x00\x00\x86\x00\x00\x00\x7d\x00\x00\x00\x61\x00\x00\x00\xf4\x00\
\x00\x00\xf8\x00\x00\x00\x5f\x00\x00\x00\x79\x00\x00\x00\x5c\x00\
\x00\x00\xcd\x00\x00\x00\x84\x00\x00\x00\x2f\x00\x00\x00\xfb\x00\
\x00\x00\x09\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x00\
\x00\x00\xbb\x00\x00\x00\x92\x00\x00\x00\xf9\x00\x00\x00\x1f\x00\
\x00\x00\x9b\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfe\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x02\x00\x00\x00\xfb\x00\x00\x00\x90\x00\x00\x00\x6b\
\x00\x00\x00\x60\x00\x00\x00\x0b\x00\x00\x00\xa7\x00\x00\x00\x18\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x00\x00\x7e\
\x00\x00\x00\x60\x00\x00\x00\x73\x00\x00\x00\x12\x00\x00\x00\xfd\
\x00\x00\x00\x01\x00\x00\x00\x3e\x00\x00\x00\xc5\x00\x00\x00\x3b\
\x00\x00\x00\xd3\x00\x00\x00\x63\x00\x00\x00\xfc\x00\x00\x00\xf1\
\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\
\x00\x00\x00\xa6\x00\x00\x00\xd2\x00\x00\x00\x29\x00\x00\x00\x21\
\x00\x00\x00\x0e\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x0f\x00\x00\x00\xb4\x00\x00\x00\x25\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x75\x00\x00\x00\
\x00\x00\x00\x00\x71\x00\x00\x00\x0f\x00\x00\x00\xfe\x00\x00\x00\
\x01\x00\x00\x00\xfe\x00\x00\x00\xe8\x00\x00\x00\x28\x00\x00\x00\
\xd1\x00\x00\x00\x1c\x00\x00\x00\xb7\x00\x00\x00\xfd\x00\x00\x00\
\xfc\x00\x00\x00\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xc5\x00\x00\x00\x01\x00\x00\x00\xc8\x00\x00\x00\x3c\x00\x00\x00\
\xfc\x00\x00\x00\xcb\x00\x00\x00\x30\x00\x00\x00\xd7\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x0b\x00\x00\x00\
\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\
\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x17\x00\x00\x00\xb6\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x49\x00\x00\x00\x21\x00\x00\x00\x6a\x00\x00\
\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\
\x00\xa3\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\
\x00\x13\x00\x00\x00\xff\x00\x00\x00\xf0\x00\x00\x00\xfe\x00\x00\
\x00\xfa\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x08\x00\x00\x00\xf9\x00\x00\x00\xf8\x00\x00\x00\xbc\x00\x00\
\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x51\x00\x00\x00\x03\x00\x00\
\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x57\x00\x00\x00\x84\x00\x00\x00\x12\x00\x00\
\x00\xc2\x00\x00\x00\x64\x00\x00\x00\xea\x00\x00\x00\x45\x00\x00\
\x00\x07\x00\x00\x00\xba\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xfb\x00\x00\x00\x02\x00\x00\x00\xfd\x00\x00\x00\x0b\x00\
\x00\x00\x97\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xbb\x00\x00\x00\x63\x00\x00\x00\x1d\x00\x00\x00\x5f\x00\
\x00\x00\xa0\x00\x00\x00\xe4\x00\x00\x00\xe6\x00\x00\x00\x4b\x00\
\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\xf2\x00\
\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x5a\x00\x00\x00\x4b\x00\
\x00\x00\x16\x00\x00\x00\xff\x00\x00\x00\xe4\x00\x00\x00\xc1\x00\
\x00\x00\x26\x00\x00\x00\x1a\x00\x00\x00\x3a\x00\x00\x00\x37\x00\
\x00\x00\x15\x00\x00\x00\xf3\x00\x00\x00\xd5\x00\x00\x00\xa6\x00\
\x00\x00\xc1\x00\x00\x00\xd3\x00\x00\x00\xd8\x00\x00\x00\xff\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x21\x00\x00\x00\xf6\x00\
\x00\x00\xc6\x00\x00\x00\x52\x00\x00\x00\xbc\x00\x00\x00\x4f\x00\
\x00\x00\x2c\x00\x00\x00\x04\x00\x00\x00\xfd\x00\x00\x00\xae\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\
\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xf4\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\xa8\
\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\
\x00\x00\x00\x52\x00\x00\x00\x16\x00\x00\x00\xa0\x00\x00\x00\x42\
\x00\x00\x00\x0a\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x05\
\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\xf2\x00\x00\x00\x17\
\x00\x00\x00\x96\x00\x00\x00\x51\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x2e\
\x00\x00\x00\x9d\x00\x00\x00\x04\x00\x00\x00\x6b\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x57\
\x00\x00\x00\xdb\x00\x00\x00\x72\x00\x00\x00\xb4\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x04\x00\x00\x00\x00\
\x00\x00\x00\x41\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\xd2\
\x00\x00\x00\xb9\x00\x00\x00\xe8\x00\x00\x00\x85\x00\x00\x00\x61\
\x00\x00\x00\xee\x00\x00\x00\x93\x00\x00\x00\x8f\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\
\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xec\x00\x00\x00\x07\x00\x00\x00\xaf\x00\x00\x00\
\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x00\x00\
\x4f\x00\x00\x00\xf4\x00\x00\x00\x9a\x00\x00\x00\x42\x00\x00\x00\
\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xfa\x00\x00\x00\x07\x00\x00\x00\x22\x00\x00\x00\x5d\x00\x00\x00\
\x64\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xe8\x00\x00\x00\xff\x00\x00\x00\x19\x00\x00\x00\
\xc4\x00\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\
\x3f\x00\x00\x00\xe9\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x25\x00\x00\x00\xb3\x00\x00\x00\xa8\x00\x00\x00\
\xa5\x00\x00\x00\xbd\x00\x00\x00\xf6\x00\x00\x00\x48\x00\x00\x00\
\x9c\x00\x00\x00\x48\x00\x00\x00\x05\x00\x00\x00\x7e\x00\x00\x00\
\x98\x00\x00\x00\x32\x00\x00\x00\x9a\x00\x00\x00\x34\x00\x00\x00\
\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x11\x00\x00\x00\x00\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x04\x00\x00\x00\x49\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x5a\x00\x00\
\x00\xe9\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x02\x00\x00\
\x00\x0b\x00\x00\x00\xdb\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\
\x00\x3f\x00\x00\x00\x5f\x00\x00\x00\x10\x00\x00\x00\x0b\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xa2\x00\x00\x00\x6b\x00\x00\x00\xf5\x00\x00\x00\x84\x00\x00\
\x00\x6d\x00\x00\x00\x3b\x00\x00\x00\x01\x00\x00\x00\x2f\x00\x00\
\x00\x74\x00\x00\x00\xba\x00\x00\x00\x30\x8f\xf8\x41\x7a\x00\x00\
\x20\x00\x49\x44\x41\x54\x00\x00\x00\x6a\x00\x00\x00\x37\x00\x00\
\x00\xfc\x00\x00\x00\xc3\x00\x00\x00\x3c\x00\x00\x00\x4d\x00\x00\
\x00\xe6\x00\x00\x00\xfc\x00\x00\x00\x12\x00\x00\x00\x63\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\xeb\x00\x00\
\x00\x13\x00\x00\x00\xfd\x00\x00\x00\xf2\x00\x00\x00\x0e\x00\x00\
\x00\xe8\x00\x00\x00\x9a\x00\x00\x00\xd1\x00\x00\x00\x07\x00\x00\
\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\
\x00\xf6\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xf1\x00\x00\x00\xe4\x00\x00\x00\x12\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xe9\x00\x00\x00\x46\x00\x00\x00\xe5\x00\x00\x00\x47\x00\
\x00\x00\xc2\x00\x00\x00\xba\x00\x00\x00\xba\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xb4\x00\x00\x00\x34\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x00\x00\x00\x5f\x00\
\x00\x00\x16\x00\x00\x00\x3e\x00\x00\x00\x7e\x00\x00\x00\x1c\x00\
\x00\x00\xc4\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x8d\x00\
\x00\x00\xbb\x00\x00\x00\x13\x00\x00\x00\x0b\x00\x00\x00\x01\x00\
\x00\x00\x02\x00\x00\x00\xb6\x00\x00\x00\x65\x00\x00\x00\x25\x00\
\x00\x00\x92\x00\x00\x00\x26\x00\x00\x00\xf5\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x92\x00\x00\x00\x6a\x00\
\x00\x00\xb7\x00\x00\x00\xe7\x00\x00\x00\xa6\x00\x00\x00\x0e\x00\
\x00\x00\x08\x00\x00\x00\x42\x00\x00\x00\x57\x00\x00\x00\x3d\x00\
\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\
\x00\x00\xec\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xfe\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\
\x00\x00\x00\x48\x00\x00\x00\xe4\x00\x00\x00\x7b\x00\x00\x00\xb8\
\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x11\x00\x00\x00\xb1\x00\x00\x00\x34\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xb7\x00\x00\x00\x56\x00\x00\x00\x11\
\x00\x00\x00\x99\x00\x00\x00\xb5\x00\x00\x00\x2b\x00\x00\x00\x5f\
\x00\x00\x00\x41\x00\x00\x00\x3d\x00\x00\x00\x62\x00\x00\x00\x00\
\x00\x00\x00\x7b\x00\x00\x00\x07\x00\x00\x00\x26\x00\x00\x00\x00\
\x00\x00\x00\x03\x00\x00\x00\x8c\x00\x00\x00\xcc\x00\x00\x00\xa8\
\x00\x00\x00\x01\x00\x00\x00\x25\x00\x00\x00\x29\x00\x00\x00\x29\
\x00\x00\x00\x29\x00\x00\x00\x29\x00\x00\x00\xb8\x00\x00\x00\xc6\
\x00\x00\x00\xdd\x00\x00\x00\xbe\x00\x00\x00\x18\x00\x00\x00\x00\
\x00\x00\x00\x10\x00\x00\x00\x3c\x00\x00\x00\x88\x00\x00\x00\xeb\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\
\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\
\x62\x00\x00\x00\xd0\x00\x00\x00\x99\x00\x00\x00\x83\x00\x00\x00\
\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x07\x00\x00\x00\x92\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xc6\x00\x00\x00\x5d\x00\x00\x00\xf5\x00\x00\x00\
\xba\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\
\x00\x00\x00\x00\xc0\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\xe4\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\
\x10\x00\x00\x00\xf9\x00\x00\x00\xdf\x00\x00\x00\xe3\x00\x00\x00\
\xe3\x00\x00\x00\xe3\x00\x00\x00\xe5\x00\x00\x00\xe0\x00\x00\x00\
\x00\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xfa\x00\x00\x00\xa5\x00\x00\x00\xf3\x00\x00\x00\
\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x2e\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x4c\x00\x00\
\x00\xc8\x00\x00\x00\x00\x00\x00\x00\xd6\x00\x00\x00\xda\x00\x00\
\x00\x0a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xa4\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xd8\x00\x00\x00\x4c\x00\x00\x00\xef\x00\x00\x00\x01\x00\x00\
\x00\xca\x00\x00\x00\x0b\x00\x00\x00\x09\x00\x00\x00\x17\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xca\x00\x00\x00\x18\x00\x00\x00\x72\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x21\x00\x00\x00\xbf\x00\x00\x00\xfe\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x05\x00\x00\x00\xe0\x00\x00\x00\xad\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\
\x00\x17\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x32\x00\x00\x00\xcb\x00\
\x00\x00\x02\x00\x00\x00\xf2\x00\x00\x00\x5d\x00\x00\x00\xb2\x00\
\x00\x00\x12\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x06\x00\
\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x91\x00\
\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\
\x00\x00\x4e\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\xfa\x00\
\x00\x00\x23\x00\x00\x00\x21\x00\x00\x00\xb8\x00\x00\x00\x00\x00\
\x00\x00\x13\x00\x00\x00\x7e\x00\x00\x00\x62\x00\x00\x00\x0c\x00\
\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\x05\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\
\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x00\
\x00\x00\x90\x00\x00\x00\xc1\x00\x00\x00\x00\x00\x00\x00\x2a\x00\
\x00\x00\xc7\x00\x00\x00\x31\x00\x00\x00\xde\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\xd9\
\x00\x00\x00\xf5\x00\x00\x00\x72\x00\x00\x00\xb2\x00\x00\x00\x44\
\x00\x00\x00\xd6\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\xfa\
\x00\x00\x00\xf3\x00\x00\x00\xf3\x00\x00\x00\x7e\x00\x00\x00\x6c\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x00\x00\x00\x5c\
\x00\x00\x00\xe1\x00\x00\x00\x4f\x00\x00\x00\x28\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\xf6\x00\x00\x00\x0a\
\x00\x00\x00\x9c\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xfc\x00\x00\x00\x2a\x00\x00\x00\xd0\x00\x00\x00\xe4\
\x00\x00\x00\xce\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\xfe\
\x00\x00\x00\xf6\x00\x00\x00\xf6\x00\x00\x00\x77\x00\x00\x00\x71\
\x00\x00\x00\x71\x00\x00\x00\x71\x00\x00\x00\x6c\x00\x00\x00\xc7\
\x00\x00\x00\xfe\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\xd7\
\x00\x00\x00\x9b\x00\x00\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x1d\
\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\
\x00\x00\x00\xda\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\
\xb2\x00\x00\x00\x46\x00\x00\x00\x9d\x00\x00\x00\x4e\x00\x00\x00\
\x9f\x00\x00\x00\x12\x00\x00\x00\x56\x00\x00\x00\x91\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x79\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\x00\x00\x48\x00\x00\x00\
\xda\x00\x00\x00\x56\x00\x00\x00\xa9\x00\x00\x00\xb1\x00\x00\x00\
\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\
\xb3\x00\x00\x00\x3c\x00\x00\x00\xad\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xf1\x00\x00\x00\x48\x00\x00\x00\x82\x00\x00\x00\
\x0a\x00\x00\x00\x5a\x00\x00\x00\x9b\x00\x00\x00\xc1\x00\x00\x00\
\xff\x00\x00\x00\x85\x00\x00\x00\xb3\x00\x00\x00\xbc\x00\x00\x00\
\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\
\x79\x00\x00\x00\x60\x00\x00\x00\x25\x00\x00\x00\x43\x00\x00\x00\
\x27\x00\x00\x00\xae\x00\x00\x00\x04\x00\x00\x00\x15\x00\x00\x00\
\x62\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\
\x60\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x9c\x00\x00\x00\x6d\x00\x00\x00\x2b\x00\x00\x00\x14\x00\x00\
\x00\x10\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x0a\x00\x00\
\x00\xf6\x00\x00\x00\x70\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\xe7\x00\x00\x00\x54\x00\x00\x00\xda\x00\x00\
\x00\x5b\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\
\x00\x01\x00\x00\x00\xff\x00\x00\x00\x0b\x00\x00\x00\xa1\x00\x00\
\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\xb3\x00\x00\
\x00\x85\x00\x00\x00\x5b\x00\x00\x00\xb8\x00\x00\x00\xd0\x00\x00\
\x00\xf0\x00\x00\x00\xc6\x00\x00\x00\xe3\x00\x00\x00\xb4\x00\x00\
\x00\x97\x00\x00\x00\xc5\x00\x00\x00\x23\x00\x00\x00\x62\x00\x00\
\x00\x1b\x00\x00\x00\xba\x00\x00\x00\xbb\x00\x00\x00\xef\x00\x00\
\x00\xeb\x00\x00\x00\x3d\x00\x00\x00\x71\x00\x00\x00\x27\x00\x00\
\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\
\x00\x21\x00\x00\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xdc\x00\x00\x00\xe2\x00\x00\x00\x71\x00\x00\x00\x64\x00\
\x00\x00\xc5\x00\x00\x00\x0e\x00\x00\x00\x02\x00\x00\x00\xf6\x00\
\x00\x00\x5e\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xf2\x00\x00\x00\x68\x00\x00\x00\xc6\x00\x00\x00\x00\x00\
\x00\x00\xdf\x00\x00\x00\xc7\x00\x00\x00\x05\x00\x00\x00\xef\x00\
\x00\x00\x08\x00\x00\x00\xfa\x00\x00\x00\x8b\x00\x00\x00\x53\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\xc8\x00\
\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\xfd\x00\x00\x00\x0e\x00\
\x00\x00\x24\x00\x00\x00\x6f\x00\x00\x00\x21\x00\x00\x00\x03\x00\
\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x9f\x00\x00\x00\xaf\x00\
\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\
\x00\x00\xce\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x92\x00\x00\x00\x70\
\x00\x00\x00\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\
\x00\x00\x00\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x53\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xc6\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x60\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\
\x00\x00\x00\x94\x00\x00\x00\xc9\x00\x00\x00\x04\x00\x00\x00\xea\
\x00\x00\x00\x2b\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x39\
\x00\x00\x00\x46\x00\x00\x00\x81\x00\x00\x00\xcf\x00\x00\x00\x5e\
\x00\x00\x00\xac\x00\x00\x00\x68\x00\x00\x00\x18\x00\x00\x00\xe0\
\x00\x00\x00\xdd\x00\x00\x00\x28\x00\x00\x00\x1d\x00\x00\x00\x8d\
\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x63\
\x00\x00\x00\x4a\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\xdb\x00\x00\x00\
\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\
\x99\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\
\x5a\x00\x00\x00\xbc\x00\x00\x00\x42\x00\x00\x00\x7f\x00\x00\x00\
\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x87\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xe6\x00\x00\x00\xab\x00\x00\x00\x68\x00\x00\x00\x2e\x00\x00\x00\
\xb5\x00\x00\x00\xed\x00\x00\x00\xc1\x00\x00\x00\xe9\x00\x00\x00\
\xcb\x00\x00\x00\xea\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\
\xd4\x00\x00\x00\xcb\x00\x00\x00\xc3\x00\x00\x00\xe9\x00\x00\x00\
\x9b\x00\x00\x00\x07\x00\x00\x00\x63\x00\x00\x00\xe2\x00\x00\x00\
\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\
\xd1\x00\x00\x00\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x87\x00\x00\
\x00\xac\x00\x00\x00\x81\x00\x00\x00\x1c\x00\x00\x00\xaa\x00\x00\
\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x79\x00\x00\
\x00\xa7\x00\x00\x00\x26\x00\x00\x00\x8e\x00\x00\x00\x2f\x00\x00\
\x00\xb2\x00\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x75\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x09\x00\x00\x00\x40\x00\x00\x00\x08\x00\x00\x00\x39\x00\x00\
\x00\xa7\x00\x00\x00\xaa\x00\x00\x00\x55\x00\x00\x00\x92\x00\x00\
\x00\x04\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\
\x00\x02\x00\x00\x00\xd2\x00\x00\x00\x97\x00\x00\x00\x01\x00\x00\
\x00\x97\x00\x00\x00\x0d\x00\x00\x00\xf8\x00\x00\x00\x1b\x00\x00\
\x00\x16\x00\x00\x00\xf3\x00\x00\x00\x26\x00\x00\x00\x52\x00\x00\
\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\
\x00\x00\xb6\x00\x00\x00\xb4\x00\x00\x00\x16\x00\x00\x00\x09\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x98\x00\
\x00\x00\x08\x00\x00\x00\xc1\x00\x00\x00\x18\x00\x00\x00\x00\x00\
\x00\x00\x1f\x00\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x77\x00\
\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xfe\x00\x00\x00\x89\x00\x00\x00\x78\x00\x00\x00\x5d\x00\
\x00\x00\x7f\x00\x00\x00\x42\x00\x00\x00\xfd\x00\x00\x00\x5e\x00\
\x00\x00\xfb\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x13\x00\
\x00\x00\x10\x00\x00\x00\x8b\x00\x00\x00\x01\x00\x00\x00\xff\x00\
\x00\x00\xd5\x00\x00\x00\x13\x00\x00\x00\x4e\x00\x00\x00\xfe\x00\
\x00\x00\xee\x00\x00\x00\x04\x00\x00\x00\xaf\x00\x00\x00\xa2\x00\
\x00\x00\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\
\x00\x00\x00\x64\x00\x00\x00\xda\x00\x00\x00\x0c\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x98\x00\x00\x00\x00\
\x00\x00\x00\xfb\x00\x00\x00\x89\x00\x00\x00\x2e\x00\x00\x00\x0c\
\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x85\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\xbe\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xf9\x00\x00\x00\xde\x00\x00\x00\x00\x00\x00\x00\x92\
\x00\x00\x00\x3d\x00\x00\x00\x1e\x00\x00\x00\x3e\x00\x00\x00\xbc\
\x00\x00\x00\xe5\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x10\
\x00\x00\x00\x1a\x00\x00\x00\xee\x00\x00\x00\x74\x00\x00\x00\xab\
\x00\x00\x00\x07\x00\x00\x00\x7b\x00\x00\x00\xe4\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x23\x00\x00\x00\x42\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xe7\x00\x00\x00\x72\x00\x00\x00\x98\x00\x00\x00\
\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x92\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xfd\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x9c\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x6e\x00\x00\x00\
\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x86\x00\x00\x00\x56\x00\x00\x00\x45\x00\x00\x00\
\xe7\x00\x00\x00\x56\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\
\xe9\x00\x00\x00\x6a\x00\x00\x00\xad\x00\x00\x00\x49\x00\x00\x00\
\x27\x00\x00\x00\xb1\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x49\x00\x00\x00\x7b\x00\x00\x00\x57\x00\x00\x00\
\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x86\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x90\x00\x00\x00\x6f\x00\x00\x00\x01\x00\x00\x00\x8b\x00\x00\
\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x50\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x00\x00\x00\xa6\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x35\x00\x00\
\x00\x42\x00\x00\x00\xe2\x00\x00\x00\xc7\x00\x00\x00\x00\x00\x00\
\x00\xf0\x00\x00\x00\xbf\x00\x00\x00\x26\x00\x00\x00\x26\x00\x00\
\x00\x1d\x00\x00\x00\x10\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\
\x00\x23\x00\x00\x00\xb6\x00\x00\x00\x8c\x00\x00\x00\xae\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\
\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\
\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\
\x00\x00\x96\x00\x00\x00\x5f\x00\x00\x00\xfe\x00\x00\x00\xa0\x00\
\x00\x00\x68\x00\x00\x00\x11\x00\x00\x00\x7b\x00\x00\x00\x6e\x00\
\x00\x00\xae\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x40\x00\x00\x00\xb1\x00\x00\x00\x0e\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xfc\x00\x00\x00\x6c\x00\x00\x00\x99\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x6b\x00\
\x00\x00\xcf\x00\x00\x00\x8f\x00\x00\x00\x2b\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xec\x00\x00\x00\x9a\x00\x00\x00\xef\x00\
\x00\x00\xe0\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x2c\x00\
\x00\x00\xbc\x00\x00\x00\xb1\x00\x00\x00\x6b\x00\x00\x00\xfc\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\
\x00\x00\x00\x62\x00\x00\x00\xbd\x00\x00\x00\xf9\x00\x00\x00\x89\
\x00\x00\x00\xfb\x00\x00\x00\x5c\x00\x00\x00\x6e\x00\x00\x00\x00\
\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\
\x00\x00\x00\xae\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x80\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x8f\
\x00\x00\x00\x0e\x00\x00\x00\x5f\x00\x00\x00\x8e\x00\x00\x00\x00\
\x00\x00\x00\xcc\x00\x00\x00\x47\x00\x00\x00\xea\x00\x00\x00\xa1\
\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\xb3\
\x00\x00\x00\xd0\x00\x00\x00\x69\x00\x00\x00\xfc\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xfe\x00\x00\x00\x49\x00\x00\x00\x9b\x00\x00\x00\
\xd4\x00\x00\x00\x3e\x00\x00\x00\xa7\x00\x00\x00\x22\x00\x00\x00\
\x0d\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\
\xb1\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x76\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\xfb\x00\x00\x00\xad\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\
\xf0\x00\x00\x00\xa0\x00\x00\x00\xe3\x00\x00\x00\xce\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\xb8\x00\x00\x00\
\xa6\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\
\x00\x7c\x00\x00\x00\x70\x00\x00\x00\x83\x00\x00\x00\x8a\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\xbd\x00\x00\
\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\
\x00\x74\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\xde\x00\x00\
\x00\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x04\x00\x00\x00\x7e\x00\x00\x00\x79\x00\x00\x00\x7d\x00\x00\
\x00\x8b\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x93\x00\x00\x00\xc3\x00\
\x00\x00\x5c\x00\x00\x00\xfd\x00\x00\x00\xc1\x00\x00\x00\x2b\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\x5b\x00\
\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\xc2\x00\x00\x00\xa1\x00\
\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\
\x00\x00\xa6\x00\x00\x00\x2f\x00\x00\x00\x62\x00\x00\x00\xaa\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x9c\x00\x00\x00\x2d\x00\x00\x00\xf9\
\x00\x00\x00\xd5\x00\x00\x00\xcf\x00\x00\x00\x2b\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x65\x00\x00\x00\x00\
\x00\x00\x00\x4e\x00\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x40\
\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x93\x00\x00\x00\xd6\
\x00\x00\x00\xdf\x00\x00\x00\x2b\x00\x00\x00\xaa\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x00\x00\x00\
\x4d\x00\x00\x00\x81\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\xbb\x00\x00\x00\x6b\x00\x00\x00\xf6\x00\x00\x00\
\x00\x00\x00\x00\xfd\x00\x00\x00\xef\x00\x00\x00\xee\x00\x00\x00\
\x04\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x20\x00\x00\x00\x72\x00\x00\x00\xd0\x00\x00\x00\x3e\x00\x00\x00\
\x6d\x00\x00\x00\x5c\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x5f\x00\x00\
\x00\x79\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\xc1\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\
\x00\x04\x00\x00\x00\xf1\x00\x00\x00\xf9\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x70\x00\x00\
\x00\x56\x00\x00\x00\xf6\x00\x00\x00\x7f\x00\x00\x00\x9d\x00\x00\
\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x0f\x00\x00\x00\x39\x00\x00\x00\x63\x00\x00\x00\x4d\x00\
\x00\x00\xf2\x00\x00\x00\xb2\x00\x00\x00\xad\x00\x00\x00\xc6\x00\
\x00\x00\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x3b\x00\
\x00\x00\x58\x00\x00\x00\x3a\x00\x00\x00\x0f\x00\x00\x00\xc3\x00\
\x00\x00\x98\x00\x00\x00\xc2\x00\x00\x00\xf5\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\
\x00\x00\x00\x52\x00\x00\x00\x3d\x00\x00\x00\x29\x00\x00\x00\x01\
\x00\x00\x00\xda\x00\x00\x00\xce\x00\x00\x00\xe5\x00\x00\x00\xea\
\x00\x00\x00\xef\x00\x00\x00\xf5\x00\x00\x00\xfb\x00\x00\x00\x00\
\x00\x00\x00\x05\x00\x00\x00\x0c\x00\x00\x00\x11\x00\x00\x00\x16\
\x00\x00\x00\x1c\x00\x00\x00\x33\x00\x00\x00\x24\x00\x00\x00\xfd\
\x00\x00\x00\xd5\x00\x00\x00\xc8\x00\x00\x00\xa9\x00\x00\x00\xd9\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x01\x93\x03\x6c\xfc\x01\xff\xff\
\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x01\
\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x0b\x00\x00\x00\x33\x73\x26\x63\xaf\x00\x00\x03\x1e\x49\x44\
\x41\x54\x00\x00\x00\x40\x00\x00\x00\x39\x00\x00\x00\x24\x00\x00\
\x00\x1a\x00\x00\x00\x07\x00\x00\x00\xff\x00\x00\x00\xfe\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf8\x00\x00\
\x00\xe7\x00\x00\x00\xdb\x00\x00\x00\xc5\x00\x00\x00\xc1\x00\x00\
\x00\xcd\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x01\x01\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x11\x00\x00\x00\x0b\x00\x00\x00\x07\x00\x00\x00\x03\x00\
\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\xf8\x00\x00\x00\xf5\x00\
\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xef\x00\x00\x00\xef\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x5c\x9d\x08\
\x54\x9a\x16\xb2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\
\x00\x00\x34\x1e\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x4d\x00\x00\x00\x57\x08\x06\x00\x00\x00\x41\x44\xc8\x4d\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
\x00\x00\x09\x70\x48\x59\x73\x00\x00\x5c\x46\x00\x00\x5c\x46\x01\
\x14\x94\x43\x41\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdb\x05\x01\
\x0b\x08\x20\x3b\x93\xeb\x78\x00\x00\x20\x00\x49\x44\x41\x54\x78\
\xda\xcc\xbc\xc9\xb3\x65\xd9\x79\xdd\xf7\xdb\xdd\x69\x6e\x7f\x5f\
\x97\x99\x2f\xfb\xac\x1e\x59\x55\x28\x00\x05\xd2\x92\x43\x32\x68\
\x47\xd8\x92\x1c\x74\x58\x96\x01\x87\x67\xf2\x48\x11\x0e\x0e\x3d\
\x2f\xe3\x8f\xf0\x40\xf6\x00\x11\x1c\x39\x0a\x33\x51\xa2\x6c\x4a\
\x62\x13\xb6\x08\x91\x44\x09\x44\xf5\x40\x55\x65\xff\x5e\xbe\xfe\
\xb6\xa7\xdb\xad\x07\x37\xc9\xb0\x14\x16\x89\x42\x25\x25\x9f\x59\
\xbe\x97\xf1\xe2\xde\x75\xbe\xfd\x35\xeb\x5b\x6b\x0b\xfe\x8a\x9f\
\xf4\xce\x3b\xf2\x87\x77\xef\x8a\x3b\xb3\x99\x5c\x65\x99\x1a\x6e\
\x5b\xd9\x46\xad\x9c\xf2\x39\x55\x1a\xc4\x18\x47\xd6\xa7\x91\x11\
\x0c\xa2\x14\x43\xd7\xb9\xb1\x0f\x61\x2c\x45\x9c\x84\xe0\xfb\x22\
\xd1\xa5\xa4\x4f\x84\x31\x4f\x33\xad\x4f\x65\xa1\xce\x5c\x97\xce\
\xf2\x52\xae\x75\x95\x75\x43\x6b\xc3\xb7\x0e\x0f\x83\xf8\xfe\xf7\
\x23\xff\x9e\x1e\xf1\x57\xf1\x47\xdf\x7d\xf7\x5d\xb5\xbb\x5b\x19\
\xb3\x88\xa6\x5a\x76\x65\x12\x69\xa4\xb4\x1c\xca\x28\x86\x3e\x84\
\x71\x24\xf5\x7d\xd7\x6e\xd7\x4d\x77\x59\x21\xa6\x82\x34\xf5\xf8\
\x29\xc1\x4d\x5c\xdb\x0e\x43\x08\x25\x42\x18\xdb\x76\xc6\x48\xed\
\x93\x34\xb5\xc9\xcd\xac\xe8\x97\x47\x59\x51\x3e\x8a\x49\x3e\x36\
\xb9\x39\x50\x2a\x3f\x42\x8a\x93\x14\xd2\x45\x67\xf5\x3a\xbb\xb2\
\xb6\xeb\xf5\x15\xff\xdd\x8f\x3e\x4a\x7f\x95\x20\x8a\xe7\x1d\x55\
\xbf\x7f\x77\xaf\xa7\x65\xb9\x47\x0a\x37\x9c\xf3\x7b\x4d\x63\x77\
\xbb\xae\xbd\x62\xb4\xdc\x26\xc5\x69\xf2\x6e\xda\xfa\x6e\xbc\x5a\
\xac\x26\xa1\xb3\xa5\x73\x3e\x4f\x29\x19\x69\xa4\xd6\x24\x1d\x42\
\xd0\x45\x9e\xcb\xfe\xa0\xcf\x68\x34\x64\xb9\x58\x71\x72\x74\x92\
\x9a\xce\x7b\x0b\xae\xec\xf5\xeb\xa2\x2c\x57\x65\xbf\x77\x3e\xe8\
\xf7\x0f\xa4\x32\x8f\x95\x32\x8f\x94\xd1\x8f\xf3\xcc\x3c\x95\x5a\
\x9d\x5a\xa9\x67\xba\xd5\xb5\xdf\x99\xf9\xbf\xfd\x47\x17\xee\x79\
\x03\xf8\xdc\x40\x4b\xe9\x1d\xf9\xfe\x3f\x7b\xa1\x9c\x2f\xed\xcb\
\x6d\xd3\x7c\x27\x39\xfb\xed\x60\xed\x35\x91\xe2\x98\xe4\x07\x83\
\xc9\x48\x97\x45\xdf\xd8\x6a\x9d\x9f\x9e\x9e\x16\x21\x04\x1d\xac\
\x93\x67\xe7\xe7\x02\x84\x28\xca\x92\xa2\xcc\xc4\xf6\xd6\x96\xb8\
\x7a\xe3\x26\x99\xd1\x54\x55\xcb\x87\x1f\x7f\xcc\xfd\xfb\x8f\x20\
\xa5\xe4\xbc\x67\xb6\xaa\x52\x44\xc4\xcc\x64\x61\x3c\x1e\x76\xdb\
\x5b\x5b\xd5\x64\x34\x9a\xe7\x65\xef\xc4\xe4\xc5\x93\x94\x78\x22\
\x4d\xf6\x30\x49\x75\x68\x8a\xec\x81\xf7\xf9\x43\xd7\xef\xaf\xbe\
\xf7\xbd\xef\x85\xe7\xf5\x5d\xd5\xf3\x8a\xb0\xf7\xdd\x06\x30\x11\
\xec\xdf\xae\x67\xe7\x7f\xb7\x5a\x2f\xbf\x69\xdb\xf5\xcd\x41\x59\
\xec\x15\x99\x9e\xa4\xe0\xc6\x5a\x88\x7e\xeb\x6c\x79\xf2\xf4\xc0\
\x38\xe7\x75\x13\xbd\x3c\x3d\xbb\x90\x5b\x5b\x5b\x22\xc6\x20\x46\
\xa3\x91\xe8\x0f\x47\x5c\xbf\x75\x8b\xe9\xde\x15\xe6\xb3\x19\x8f\
\x1e\xdc\xa3\xe9\x6a\x7c\xf0\xa2\x6d\x3b\x61\xad\x17\x22\x25\xb9\
\x5a\xae\xd4\x6c\x3e\xcf\x8f\x4e\x8f\xfa\xab\x75\x35\x4d\xbe\xbd\
\x94\xa2\xbf\xe9\xad\x7d\xb5\xae\xeb\x37\x42\x70\x5f\xc3\xc7\x6d\
\xa3\x59\x29\x1b\xcf\x5f\xf9\xc6\x37\xfc\x1f\xfc\xc1\x1f\xa4\xe7\
\xf1\x7d\xf5\xf3\x00\xec\x47\x77\xef\xe6\x61\xb5\x7a\x31\x5a\xf7\
\x5f\xe0\xda\xbf\x63\x84\x78\xa5\x76\x6e\x54\x16\xb9\x32\x5a\x52\
\xf6\x4a\xb1\xaa\x2a\x0e\x9f\x1c\x70\x72\x7a\x4e\x12\x82\x7e\xcf\
\x70\xfa\xe4\x84\xc9\x70\x40\x08\x1d\x22\x29\xb4\x36\xec\x5c\xda\
\xe5\xfe\xbd\x7b\x3c\xb8\xf7\x05\x1f\x7f\x76\x9f\x93\xd3\x19\x55\
\x55\x83\x10\x18\xa3\xe8\x3a\x4b\x99\x65\x44\x10\x52\x0a\x7a\x79\
\x2e\xce\xce\xcf\xa4\xb3\x9d\x7e\x25\xcf\x4b\x47\x33\x69\x9b\xf6\
\xb2\xc9\xfb\x37\xd2\xd6\x74\x47\x2a\xb5\x2e\xfb\xd9\xd1\xaf\xef\
\xef\xdf\xff\x3e\xc4\xff\x5f\x44\xda\x77\xfe\xe7\xbf\x9f\x8b\xc6\
\xde\x69\x9a\xea\xbf\xac\x57\xcb\x5f\x5f\x9c\x9f\x7d\xed\xc9\x93\
\x27\x63\x44\xd0\xd3\xe9\x58\x94\x65\x21\xf2\xa2\xe4\xe8\xe8\x84\
\x83\xa3\x63\x8c\x31\xbc\xfc\xe2\x1d\x26\x5b\x13\xce\x2f\x2e\x18\
\x4f\x26\xec\x6d\x4f\xb9\x79\xe7\x36\x45\x91\xf1\xe8\xe1\x63\x8e\
\x0f\x0f\x21\x09\x76\xa6\x13\x48\x91\x75\x5d\x81\x4a\xc4\x18\x01\
\x81\xf3\x91\xb2\x2c\xe9\x95\x39\xdb\xe3\x31\xc3\xe1\x98\xe8\xbc\
\x08\x44\x41\x0a\xd2\x23\x94\x75\x9d\x51\x42\x14\x26\x2f\xa3\xd2\
\xf9\xc3\x85\x29\x9e\xbe\xfa\xd6\x5b\xf6\x79\x44\xdb\x57\x02\xed\
\xf7\x7e\xf0\x83\xc2\xc8\x78\x33\x38\xfb\xb7\xda\xe5\xe2\xd7\xef\
\xdd\x7b\xf0\xc6\xec\xe2\x62\xb4\xb7\xb3\xad\x76\xa6\x53\x26\xe3\
\x21\x93\xc9\x36\x90\x30\xc6\xb0\xbb\x3d\x61\x32\x1a\xd0\xf9\xc4\
\xc5\xf9\x8c\x2c\x37\x64\x45\x9f\xe0\x2c\x6d\xe7\x58\xb7\x1d\xd3\
\xad\x6d\x5e\x78\xe1\x36\x2f\xbd\xfc\x32\x6d\xd7\xf0\xe8\xd1\x01\
\xf3\xe5\x8a\xd6\x5a\x92\x8b\xc4\x04\x85\xd1\x98\x4c\x93\x62\x20\
\xcf\x0c\xab\x6a\x8d\xed\x1c\x67\xb3\x39\xa7\x17\x33\xd6\x75\x83\
\xc9\x32\xd9\xeb\x97\x4a\x0b\xa9\x4d\x9e\xcd\x54\x29\xee\xbd\x5d\
\x8c\x16\xff\xeb\x3f\xfe\xc7\xf1\x3f\x18\x68\x1f\xbe\xfb\x6e\x66\
\x7b\xf5\x4d\xe9\xe2\x7f\x76\x72\x7c\xf8\xdf\x7e\xf2\xe9\x67\x5f\
\x3f\x3e\x3e\x1e\x0a\xa2\x2a\x32\x43\x8c\x96\xd1\x64\xcc\xe5\x6b\
\x37\x10\x29\x22\xb5\x62\x67\x7b\x0b\x6b\x03\x6d\xd5\xf0\xf4\xe9\
\x21\xa7\xa7\x17\x3c\x7e\x7c\xc0\xba\x5e\x73\x72\x72\x8e\x14\x82\
\x57\x5f\x7d\x09\xa9\x14\x7f\xf0\x87\x7f\xcc\x1f\xfe\xe8\x4f\x78\
\x7a\x72\x06\x42\xa0\x90\x84\x94\xe8\xf5\x72\xb6\xa6\x03\x94\x94\
\xf4\x4c\x81\x10\x82\xf3\xd9\x9c\xda\x59\x62\x88\xa4\x14\x71\xde\
\x73\x36\x5b\xe0\x5a\x2f\xb5\xd6\xba\x28\xcb\xd0\xcb\xca\x87\x33\
\x5d\x1c\xfe\xef\x6f\xbd\x65\xbf\xff\x15\xa3\x4d\xff\xb2\x80\xcd\
\xe4\xfa\x5a\x57\xbb\x5f\x3b\x3e\x39\xfa\x7b\x1f\x7f\xf0\xe9\xd7\
\xeb\xf9\x6c\x58\xd7\x95\x2a\xb7\x26\x28\x15\xb9\x7d\xe7\x45\x5e\
\x78\xf9\x65\x5c\xd3\x40\x0a\xa4\xe0\xc8\x8a\x11\xa3\x51\x1f\xeb\
\x2c\xf3\xf5\x8a\xcf\x1f\x1f\x62\x8c\x46\x9b\x29\x77\x6e\x5d\x67\
\x6b\x32\xe6\xde\xa7\x1f\xf3\xf4\xe8\x94\xfb\x8f\x9e\xd2\x74\x2d\
\x79\xa9\x91\x52\x13\x42\x60\x6c\x06\xf8\x10\x58\x2e\x1a\x72\xa9\
\xd1\x43\x8d\x0f\x16\x69\x14\xb1\xf5\x84\x94\x28\x65\x86\x88\x0a\
\x61\x2d\xbd\xdc\x08\x63\xe8\xb9\xae\x7e\xd1\xc6\xc1\xdb\x4a\xe9\
\x9f\xbd\xb7\xbf\x5f\xf1\x15\x73\xdb\x97\x8e\xb4\x1f\xff\xc3\x7f\
\x68\xaa\x81\xdb\xf7\xde\xfd\xda\xfd\x27\x07\xdf\xfd\xd3\x9f\xbe\
\xff\xed\xa3\xa7\x87\x23\xeb\xac\x1a\x0d\x7b\xbc\xf2\xe2\x2d\xde\
\x78\xfd\x0d\x6e\xdf\x79\x81\xbc\x2c\x69\xeb\x86\xa6\xad\x51\x3a\
\xc3\x98\x8c\xb2\xdf\xe7\x83\xf7\x3f\xe0\xde\xc3\x03\x42\x0c\x28\
\x63\x28\x8a\x9c\x5e\x5e\x10\x7d\x62\x55\xd5\x1c\x9f\x2f\xb8\xb4\
\xbb\xcd\x9b\x5f\x7b\x89\xfd\x9d\x5d\x2e\x6f\x8f\x29\xcb\x1c\xa5\
\x35\x2a\x0a\x9c\x73\xcc\xd7\x15\xe7\xcb\x15\x17\x8b\x35\x9d\x77\
\x20\x25\xc3\x3c\x63\x34\x1e\x70\xf9\xd2\x65\xa6\xd3\x09\x81\x84\
\xd1\x46\x14\x46\x2b\x92\x48\x79\xaf\xf7\x70\xae\xbe\x7a\xb4\xe9\
\x2f\x0b\xd8\x6c\x8b\x2b\xb2\xb1\x7f\xe3\xe7\xf7\xef\xff\x77\x3f\
\xfb\xf4\xe7\xdf\x9e\xcf\xce\x87\x21\x04\x99\xe5\x9a\xe9\x64\xc0\
\x0b\x2f\xdd\xe1\xf2\xfe\x75\x84\xd2\x74\x5d\x4b\x08\xee\x59\x02\
\x4f\x44\xef\x59\xce\x2e\x28\x8b\x8c\x71\xbf\x00\x04\x26\xcb\x18\
\x96\x3d\x26\x93\x09\xc3\xe1\x90\x98\x12\xd7\x6e\x5e\x67\x7b\x32\
\xa2\xdf\x1f\xb2\x5c\xcc\x39\xbf\x98\x21\xf4\x19\x52\x2f\x69\xaa\
\x16\x17\x03\x52\x09\x8c\x34\x78\xdb\x41\x92\x78\x9f\x30\xfd\x9c\
\xdd\xe9\x94\xab\xd7\xf6\x29\xcb\x3e\x4d\xd7\xf2\xc1\xfb\x1f\xc8\
\xe0\xfd\x60\x0b\xf1\x92\x29\x07\xdf\x2e\x87\xe9\x2b\x47\xdb\x2f\
\x0c\xda\xbb\xef\xbe\xab\x16\x9c\xef\x95\x49\xfe\xb5\x0f\xef\xdf\
\xfb\xef\x3f\xf9\xe4\xd3\x6f\x1f\x1c\x3e\x1d\x35\x75\xad\xa6\xfd\
\x3e\xbd\xa2\xe0\xd6\xf5\xeb\xec\x5f\xbb\x41\x96\x6b\xe6\xe7\xe7\
\xf4\x87\x03\xf2\xa2\x44\x0a\x45\x56\x16\xe8\xcc\x60\x8c\xe6\x95\
\x57\x5e\x25\x53\x9a\xa6\xb3\xe4\x85\x21\x46\x58\xb7\x8e\x75\xb3\
\xc2\xa8\x8c\xe0\x3d\x71\x6b\x42\xdb\x76\x2c\xd7\x2d\x07\x4f\x8f\
\x79\x74\x70\xc8\x62\xb5\xe6\x62\x59\xd3\x34\x2d\x3e\x04\x8a\x3c\
\x47\xc4\x44\x14\x09\x25\x13\x42\x0a\xf2\xcc\x70\x7a\x72\xcc\x6c\
\xb1\x02\xa5\x18\x8c\xa7\x1c\x1f\x9d\x6a\x21\xd5\xae\xea\x0d\xdf\
\xd6\x79\xfe\xde\xe3\x2c\x7b\x9a\xde\x79\x67\xf9\xcb\x4e\x0a\xfa\
\x17\x05\x6c\xd8\xcd\xf6\x84\xe2\x3f\x9a\xd7\x8b\xff\xfa\x93\x4f\
\x3f\xfb\x95\xa7\x4f\x9f\x8e\xbb\xb6\x51\x2a\x06\xb6\xc7\x23\x7e\
\xe5\xad\xd7\xb8\x75\xeb\x26\x31\x05\xda\xba\xa6\x28\x73\xb4\xd6\
\xe4\x45\x0f\xb3\x53\x40\x0a\x84\x18\x28\x7a\x43\x06\xa3\x6d\x7a\
\x83\x21\xbd\x5e\x49\x8a\x91\x7a\xbd\xe2\xf0\xe0\x29\x4f\x9e\x3c\
\xa5\x15\x35\x83\x51\x9f\xc5\xc5\x0c\xad\x34\xcb\xd5\x9c\x10\x23\
\xa3\xd1\x08\xa5\x0c\x9d\x0b\xc8\x24\x48\x31\xe2\xbc\xa3\xc8\x33\
\x6c\xf4\x48\x2d\x68\x6c\xc7\x7c\x55\xb3\xb7\xbb\x8b\x5e\xb6\x3c\
\x7e\x72\x80\x92\x0a\xa5\x85\x38\xbd\x30\xbd\x72\x38\x7c\x69\x30\
\x1a\xbe\x5d\x48\xf3\xe9\x57\x89\x36\xfd\x8b\x34\xaf\xff\x17\xeb\
\x2d\xaf\xc3\xb7\x6d\xd3\xfc\x57\xef\xfd\xf8\xa7\xff\xc9\xd1\xe1\
\xe1\xa4\x5a\xd7\x2a\xcf\x35\x93\xd1\x88\x9b\x57\x77\x19\xf6\x7b\
\x68\x29\x29\x8a\x82\x2c\xcb\x10\x48\x4c\x5e\x20\x95\x24\x49\x81\
\xf0\x09\x25\x15\x02\x89\x2c\x33\xf6\xae\x5d\x45\x49\x89\x48\x89\
\xe9\xd6\x36\x97\xae\x5e\xe3\xf6\x8b\xe7\x54\xab\x15\xeb\xe5\x9a\
\xa6\xad\xf1\x21\x30\xec\xf5\x48\x53\xcf\x74\x3c\xc4\xb6\x96\xdd\
\xe9\x88\xca\x5a\x88\x91\xa2\x28\x59\xad\x1a\x9a\xba\x26\x33\x8a\
\x20\x04\x21\x26\x1e\x3c\x7c\x44\xe7\x2c\x2a\x37\xd8\xc6\xe2\x6d\
\x40\xe9\xb5\xaa\x56\xab\xed\x66\x36\x7b\x5b\x6f\x9b\xf7\x8e\x06\
\xd9\xd3\xf4\xce\x3b\x8b\x5f\x26\xda\xfe\x52\xd0\x7e\xff\xee\x5e\
\x2f\x84\xee\xd5\xd8\x75\x7f\xeb\xe9\xc1\xc1\xdf\x78\xf0\xf8\xe1\
\x8e\x6d\x5b\x65\xa4\xe0\xca\x74\xca\x6b\x2f\xde\xe0\xa5\x3b\x77\
\xb8\x7e\xfb\x3a\x5b\x5b\x3b\xe4\x45\x81\x52\x1a\xa4\x40\x48\x88\
\xc1\x23\x82\x02\xa5\x91\x24\x24\x02\xa2\x40\x1a\xb3\x39\x56\x49\
\x92\x34\x64\xe4\xec\x98\x82\xed\xbd\x48\x0a\x9e\xb6\x69\x88\xd1\
\x11\x91\x24\xc0\x3b\x8f\x77\x0e\x48\x9b\xe3\x9b\xa0\x3f\x1a\x21\
\x12\x54\x75\x8b\x0f\x9e\x10\x03\x21\x44\x16\x8b\x15\xf7\xbe\x78\
\xc0\x07\x1f\x7f\xcc\x89\x3f\xc3\x76\x91\xf9\x72\x2d\xfa\xc7\x67\
\xbd\x9d\xbd\xbd\x3b\x5d\xd7\xbe\xdd\xeb\x17\x9f\xbc\xb7\xbf\xbf\
\xfe\x65\xa2\x4d\xff\x65\x51\xf6\xdb\x30\x90\x6d\xf7\x46\x53\xad\
\xde\x3e\x3a\x3e\xbe\xbc\x5a\xd7\x3a\xc4\x28\x76\x27\x43\xbe\xf6\
\xc2\x35\x5e\x78\xe1\x26\x97\x2e\x5d\x26\x37\x3d\xb4\xd6\x48\x25\
\x09\xbe\x43\x6a\x8d\x20\x23\xc5\x44\xb0\x0e\xad\x12\x49\x24\xa2\
\x10\x68\x9d\x11\x43\x24\xa6\x48\x12\x11\x25\x15\x52\x2a\xd0\x12\
\x21\x00\x72\xb2\x5e\x9f\x98\x02\x29\x46\x84\xc9\x21\x25\x40\x90\
\xbc\x27\xa5\x44\x8c\x1e\xa9\x0d\xc1\x3b\x86\x13\x10\x4a\xe0\x43\
\x22\x58\xcb\xfe\xbe\xe0\xea\xfe\x55\xee\xbc\x70\x87\x7f\xfe\x07\
\x7f\xc8\x27\x1f\x7f\x42\x08\x96\x83\x93\x63\x75\x7d\x75\x73\x27\
\xeb\x0d\xde\xf2\x2e\xfe\xf8\x68\x30\xfe\xa5\xa2\x4d\xfe\x45\xbf\
\xfc\xe1\xdd\xbb\xa2\x88\xba\x1f\x09\x7b\x75\xb5\xde\x79\xf0\xf8\
\x20\x8b\x31\x88\xc9\x68\xc0\xee\xce\x94\xdb\x2f\xbc\xc0\x9d\x97\
\x5e\xe2\xc6\x8b\x2f\x32\xde\xde\x22\xcb\x73\x44\x52\x84\x90\x70\
\xd6\x13\xbd\x47\x18\x81\x20\x10\x82\x43\x68\x05\x42\x12\x43\x20\
\x85\x08\x09\x12\x82\x98\x20\xc8\x84\x50\x02\x21\x25\x52\x08\x84\
\xd0\x08\x65\x10\x49\x82\xdb\x8c\x4f\x52\x49\xa4\x31\xa0\x24\x08\
\x89\x6f\x3b\x52\x80\x14\x05\xce\x43\xb4\x16\xe7\x3a\x42\x72\x68\
\x23\xb8\xb2\xbb\xc5\x7f\xfa\x9d\xbf\xce\xe5\x2b\x97\x88\x31\xd2\
\x5a\x2b\xee\x3f\xb8\xdf\x6f\x57\xeb\x97\x9a\xaa\xfa\x76\x74\xd5\
\xfe\x0f\xef\xde\xfd\xd2\xbd\xaa\xfc\x4b\xb9\x23\x1f\xb5\x42\x14\
\x8b\xd5\x32\x5f\x55\xb5\xf0\xd6\xd1\x2f\x0b\x5e\xbe\x7d\x8b\x9b\
\x77\x6e\xb1\x7b\x65\x1f\xa3\x25\x4a\x49\x48\x02\xef\x2d\x52\x0a\
\x52\x0c\xf8\xd0\xe1\xac\x05\x65\x88\x29\x20\x22\x78\xe7\xf0\x21\
\x10\x82\x87\x10\x09\x5d\x4b\x4c\x9e\xe4\x1c\xd1\x5a\x82\x73\xa4\
\x14\x89\x22\x6e\xc0\x8d\x69\x13\x91\xc1\x11\x89\x04\x6f\x89\xb6\
\x43\x84\x84\xf7\x9e\xce\xd6\xd8\xae\x22\xf8\x1a\xef\x1c\x29\x09\
\x7c\xeb\x91\x48\x42\x82\xad\xe1\x88\xd7\xef\xbe\x46\xaf\xd7\x23\
\x93\x92\xb3\xf3\x0b\x75\x71\x76\xbe\xdb\xae\x97\xdf\xb2\xb6\xb9\
\x3b\x5a\x2e\x07\xe9\x9d\x77\xe4\x73\x3b\x9e\x77\x66\x33\x39\xef\
\x0b\x15\x42\x30\x75\x6d\x55\x8c\x51\xf4\xca\x9c\xb6\xed\xf0\xc1\
\x21\x92\x20\x86\x80\x28\x0a\x32\x15\x09\x3e\x90\x84\x24\x85\x40\
\x08\x9b\xde\x31\xf9\x0e\x1f\x03\x3a\xcb\x37\x39\x49\x08\x62\xf4\
\x40\x22\x21\x41\x4a\x52\x4c\x60\x0c\xd1\x75\x10\x13\xc1\x81\x34\
\x1a\xa4\x22\x89\x04\xd1\x93\xa2\x20\xb9\x8e\x90\x02\x78\x4f\x4c\
\x09\x1f\x1c\xc1\x79\xac\xb3\x10\x13\x08\x49\x88\x61\x73\x8c\x13\
\xf8\xae\xc5\xfa\xc8\x2b\x2f\xdc\xe2\xf1\xe3\x27\x7c\xf4\xc9\xc7\
\xd4\x4d\x25\x8e\x8e\x0f\x7a\xa3\xc9\xe0\x45\x95\x97\xdf\x96\xc3\
\xec\xe3\x7f\xfa\xab\x5b\x15\xd0\x3d\xb7\x48\x33\x42\x28\x81\x52\
\x3c\xab\x4c\x3e\x06\x84\x56\xc4\x28\x70\xb6\xc5\xb9\x80\x77\x16\
\x1f\xc2\x06\x88\xb0\x89\x06\xa9\x14\x52\x4a\x84\x10\x38\x67\xb1\
\xce\x12\x48\x08\x21\x37\xdc\x67\x04\x48\x88\x04\xd1\x79\xa2\xdf\
\x24\xf1\x98\x12\x29\x82\x8c\xea\xcf\x7f\x1e\xfd\xe6\xa8\x87\xe8\
\x89\x31\xe0\x82\xdb\x44\xac\x8f\xd8\xce\x12\x7c\xc0\x77\x0e\xdb\
\x5a\x5c\x67\xe9\xba\x96\x7a\xbd\xc2\x85\x80\xed\x5a\xba\xb6\xe5\
\xe5\x17\x6f\x51\xf4\x06\x84\x08\x6d\x6b\x95\xad\xed\x96\xeb\x9a\
\x6f\xb8\xd8\x7c\xad\x3b\x1e\x95\x5f\x26\xda\xfe\xd2\xff\x18\x8d\
\x50\xae\xeb\xf2\xae\xb6\x6a\xb5\xae\x51\x49\x92\x2b\xc1\x6a\xbd\
\xdc\x54\xb8\xae\xa3\xad\x2b\x42\xf4\x04\xdf\x21\x44\x00\xa9\x08\
\xc1\xe3\xbc\x07\x14\x29\x42\x0c\x11\xe7\x2c\x21\x6e\x8e\x6f\x24\
\x62\xad\x25\x0a\x48\x02\x70\x81\x24\x04\x49\x4a\xa4\x96\xb8\x60\
\x9f\x55\xc9\x44\xd7\x59\x3a\x6b\x59\xcd\x2e\x68\x57\x15\xcd\xba\
\xa6\x5a\xaf\x68\xab\x39\x6d\xb3\x66\xbd\x5a\xb3\x6e\x2a\xbc\xf3\
\x10\xc1\xb7\x81\xe4\x03\x9d\x6d\xa9\xab\x35\x67\xa7\x67\xe0\x3d\
\x6f\xbd\xf6\x32\x99\x96\xcc\x96\x33\x71\xbe\x98\x97\x55\x55\xdd\
\x4c\xd6\xbf\x96\x0b\xbb\xfd\xc3\xbb\x77\xc5\x73\x01\xed\xe4\x7a\
\x2b\x63\x4c\x32\x2b\x8c\x54\x4a\x60\x8c\x04\x11\xf1\xc1\x63\x84\
\xc0\x3b\x47\xd3\xae\x21\x0a\xda\xaa\xc6\x7a\x8f\xf3\x8e\x14\x40\
\x6a\x83\xd2\x9a\x24\x22\xde\x3b\xba\xf5\x0a\x5b\x57\x24\x21\x37\
\x6d\x88\x10\x28\x63\x20\x6e\xaa\xa8\xf7\x2d\xb1\x73\xe0\x23\x3e\
\x86\xcd\xcf\x5c\x47\xbd\x5e\xd3\x75\x9b\x04\xaf\x15\x28\x29\x30\
\xda\x60\xf2\x9c\xa2\x3f\xdc\x4c\x1d\xa5\xc1\x18\xf3\x0c\x68\x4b\
\x0c\x8e\x10\x02\xed\xaa\xa6\xa9\x1b\x84\x48\x34\xd6\x62\xb2\x8c\
\x1b\x57\xaf\xa3\xa3\xc0\x35\x95\x72\xb6\x1d\x27\x1f\x6f\xf8\x24\
\xb6\x06\x83\xa7\xfa\xb9\xe4\xb4\xf5\xfa\x4a\xca\xc3\xb9\x26\x25\
\x3d\x1e\xf4\xd3\xa4\x3f\x20\x06\x47\xaf\x2c\xc8\x7b\x05\x90\xe8\
\xd6\x35\x44\x90\x5a\x53\xf4\x4b\x62\xf0\xa4\x98\x10\xd1\x23\x95\
\x22\x38\x87\x52\x0a\x21\x25\x42\x2b\xda\xf5\x12\x21\xc0\x98\x0c\
\x21\x0c\x51\x00\x31\xe2\xa3\x65\x53\x67\x1d\x04\xb9\xa9\xbc\x80\
\xc9\x0c\x24\xf0\xb6\xc3\x87\x88\x88\x16\xef\x02\x48\x50\xca\xe0\
\xad\x83\x67\x05\x43\x08\x81\x36\x19\x11\x8b\xeb\x1c\x2e\x38\x84\
\x88\x78\xe7\x50\x29\xb1\x5c\x2c\x59\x2c\xe6\x74\xde\xb1\x6c\xad\
\xb8\x1c\x31\xde\x75\xbb\x29\xf9\xb1\xf7\x85\x7a\x6e\xcd\xad\x54\
\x4a\xea\xcc\x30\xe8\xe7\xe4\x26\xa3\x8d\x9b\xce\x3e\xd3\x19\x65\
\x7f\x48\x6f\x38\x26\x45\x4f\x0c\x61\x93\xe8\x63\x42\x6b\x8d\x6d\
\x1b\x12\x80\x50\x08\xad\xf1\x5d\x4b\xae\xfa\x68\xad\x30\x99\x41\
\xa9\x4d\xfb\x91\x92\x22\x85\x88\xce\xf4\x26\x77\xc5\x48\x14\x01\
\x44\x42\x4a\x83\x73\x16\x81\x24\x02\x26\x2b\x89\x29\x92\x49\x8d\
\x10\x92\x44\x20\xc8\x44\xd9\xeb\x91\x92\xa4\xad\x5b\x82\x94\x48\
\xa9\xb1\x5d\xc0\x39\x47\x5d\x75\xb4\x75\xcb\xb2\xaa\xd8\xda\x1a\
\x13\xd2\x75\xda\x9f\x55\xac\xe7\xe7\x54\xf5\xa5\x6c\x8b\xbd\xa1\
\x14\x0c\xf2\x79\x29\x9e\x0b\x68\xbb\x55\x25\x65\x81\x4c\x21\x64\
\x65\x9e\x33\xe8\x15\xa4\x18\x28\x4d\xc6\xcd\x5b\xd7\x19\xf4\x7b\
\x98\x2c\x63\xbd\xb2\x68\xad\xa8\x56\x6b\x94\x52\x64\x4a\xe2\x9d\
\x45\x28\x49\x8a\x1e\xa3\x33\x94\x29\xd1\xc6\x40\x0c\xb4\x4d\x87\
\x96\xa0\xb3\x12\x21\xc1\xd9\x96\xd6\x3a\xca\xa2\xc0\xbb\x0e\x21\
\x0d\x4a\x49\x12\x11\x29\x12\xa4\x88\xd6\x1a\xad\xb3\xcd\x8b\x51\
\x9b\xda\x1b\x43\x22\xcb\x4a\x9c\x77\x48\x21\xc8\x8a\x8c\xce\x7a\
\xac\x73\x28\xa3\x08\x3e\xe2\xa2\x07\xad\x88\x48\xaa\x75\xc7\x95\
\xdd\x6d\x9c\x7d\x81\xe3\xb3\x33\xd1\x1f\x0c\x65\xf0\x6e\xe4\x43\
\x18\x14\xfd\x46\x3f\xb7\x42\xa0\xb5\x50\x29\x46\xdd\xda\x46\x6d\
\x4d\x06\xe9\xea\xe5\x1d\x6e\xdf\xba\x4e\xaf\x2c\x90\x5a\xd1\x76\
\x35\x29\x39\xda\xb6\xc2\x35\x2d\xde\x79\x56\xcb\x25\xde\x07\xa4\
\x34\x48\xa5\xf0\xae\xa1\x5a\x2e\x99\x9d\x9d\x51\xad\x57\x90\x12\
\x29\x81\x14\x20\x85\x20\x2f\x4b\x26\xe3\x29\x99\xd1\x18\x6d\xc8\
\x33\x85\x92\x1a\x29\x24\x31\x46\x9c\xeb\x10\x48\x42\xf4\x20\xc4\
\xa6\x29\x4e\x69\xd3\xfc\xea\x8c\xa2\xec\xa3\xb5\x41\x65\x86\x2c\
\xcf\x88\x52\x20\x63\x02\x99\xe8\xda\x0d\x23\x22\x88\xc4\xe0\x28\
\x7b\x7d\x6e\xde\xbe\xc3\xfe\xfe\x35\x5c\x55\xab\xae\x75\x3d\xa1\
\xe2\x58\xd4\xb9\xfe\x45\x2b\xe8\x5f\xde\xdc\x26\x25\x63\x4a\xaa\
\xc8\x32\xae\x5e\xde\x26\xa5\x00\x04\x32\x93\xd1\x36\x0d\xa4\x4d\
\xb7\x6e\xdb\x8e\x24\x04\xda\x18\xf2\xb2\xa0\xec\x0d\xd1\x26\x27\
\x86\x80\xf3\x91\xfe\xa0\x64\xd0\xeb\xd3\xeb\x0f\x90\x52\x80\xdc\
\x74\x1d\x9b\x88\x89\x84\xe0\x36\x3d\x9e\x90\x34\x4d\xbb\xa9\xb4\
\xde\x6d\x3e\xa4\xd4\x44\xb1\xa1\xb2\x43\xda\x14\x89\x18\x3d\xc1\
\x39\x5c\xd7\xe2\x3a\x4b\x88\x91\x14\x02\xde\x5a\x0a\xa3\xd0\xb9\
\x26\x2f\xfa\x8c\x87\x23\xbc\x73\xc4\x14\xe9\xbc\xe5\xe0\xe9\x39\
\xe3\xf1\x90\x6b\xd7\xaf\x11\x12\xb2\xc8\x8d\xc1\x8b\xa1\xd5\xae\
\xfc\x45\x2b\xe8\x5f\x08\xda\x70\xdb\x4a\x1f\xac\x96\x02\x2d\xa5\
\xe4\xf4\x64\x26\xba\xba\x61\x3a\x9e\xd0\x39\x4b\x70\x9e\xae\xe9\
\xb0\x9d\xdd\x7c\x7d\x21\xd1\x59\x4e\xd9\x1f\x80\x96\x78\xef\x31\
\x26\x47\x0a\x81\x77\x1e\xe7\x1c\x5d\xbb\xe9\x21\xa5\xce\x36\x73\
\xa5\x90\x48\xa9\x48\xc9\x13\xbc\x43\x08\xc8\xcb\x02\x6d\x0c\x3a\
\x2f\x31\x59\x89\x36\x39\x12\x81\x90\x1a\x81\xa0\xa9\x57\x2c\x67\
\x33\xe6\xf3\x0b\x9a\x6a\x4d\x67\x6b\xd2\xb3\xd9\x54\x48\x89\x52\
\x1a\x63\x32\x8a\xb2\x00\x21\xd1\x52\xe1\x7d\x44\xeb\x9c\xc3\xa7\
\x4f\x88\x02\x86\x83\x1e\x67\xf3\x73\xb1\xae\xeb\xa2\x6a\xea\x5d\
\xef\xe2\xe0\xce\x6c\x26\x9f\x4b\x21\xf0\x32\x69\xef\x9d\x69\x9a\
\x4e\x5e\xcc\xd7\xf4\xfa\x3d\x52\x8c\xa4\x94\xb0\xb6\xa3\xeb\x3a\
\xb4\x94\x20\x05\x29\x79\x6c\x53\xa1\xf2\x82\x10\x3c\x2a\x2b\x48\
\xcf\xf8\x2f\x93\x19\x20\xa1\x8c\x42\x4a\x70\xb6\x43\x3f\x6b\x74\
\x15\x0a\xa1\xf4\xa6\xab\x27\xa2\xb5\x21\x06\x8f\x44\x11\x09\x9b\
\x5e\x38\x40\x70\x1d\xcb\xf9\x8c\x8b\x8b\x53\xea\x75\x45\xdb\xd4\
\xec\x5c\xba\x44\xd9\x1b\x90\xe7\x01\xa3\x33\x62\x08\x48\xa9\xf0\
\xce\x53\x18\x83\x75\x1d\x52\x24\xc6\xfd\x92\xa3\xf3\x05\xde\x76\
\x7c\xfe\xb3\xcf\x19\x8e\x86\xb4\x75\x4d\x88\xc1\xb4\xad\xdd\x1a\
\x0e\xfd\xf0\xde\x74\x57\x7c\x65\xd0\x0e\x81\xa2\x0b\xca\x87\xa4\
\x3a\xef\xe4\xf6\x56\x1f\x25\x24\x6d\xdb\x51\x55\x15\x4d\x4a\xe4\
\x65\x49\xe5\x3c\xa3\xc1\x00\xef\x3b\x3a\x04\xda\x68\x8c\x31\x40\
\xa0\x3f\x1d\x13\x5d\x40\x19\x4d\xf0\x8e\xae\x6d\x36\x43\x76\xf2\
\x08\x93\x11\x6d\x43\x17\x02\x4a\x1b\xb4\x29\x88\x31\x92\x62\x04\
\x21\x71\xae\x83\x14\x37\x63\x16\x89\xb6\xa9\x99\xcd\x2e\x58\xaf\
\x6b\xba\xba\xa1\x6b\x1b\x56\xf3\x05\x3e\x80\xeb\x02\x79\x9e\x3f\
\xdb\x7c\x6c\x3e\x63\x48\x9b\x6a\xec\xbc\x45\x99\x82\xd1\xa0\xc7\
\x62\x91\x73\x7c\xfc\x94\x83\xc3\x03\xd6\xcb\xa5\x58\xcf\x67\xf9\
\xf6\xd6\xce\x48\x4a\x3d\xd8\xad\xaa\xe7\x13\x69\x4a\x09\xd5\x35\
\x5d\xe6\xbb\x28\x9a\xd6\x11\x12\x4c\xbd\x63\x31\x5f\x20\x10\x0c\
\x42\xa4\x69\x2a\x7a\x83\x3e\xc6\x98\x4d\x7f\x95\x24\x42\x1a\x62\
\x8c\x74\x9d\x23\x59\x8b\x0c\x92\x94\x02\x89\x44\x67\x3b\xb4\xd2\
\x38\x9f\x10\x29\xa1\xb5\x01\xa1\x40\x80\x10\x82\x10\x03\x89\x48\
\x8a\x92\x18\xc0\x87\x40\x5d\xd7\x5c\x9c\x9d\xf2\xf8\xd1\x13\x8e\
\x8f\x4f\xa8\xba\x96\x5c\x67\x1c\x9d\xaf\x40\xc2\xd6\x68\x42\x48\
\x81\xe1\x68\xc4\x70\x34\x46\x0a\x89\xc4\x53\xe4\x39\x45\xd9\xc3\
\xbb\x88\x14\x90\x65\x05\xf3\xb3\x0b\x9c\xef\x48\x31\x31\x5f\xb7\
\xfa\xa6\x88\x83\x90\x7c\xcf\xa9\x52\x7d\x65\xd0\x8a\x79\x29\x84\
\x59\x8b\xa2\x97\x8b\x44\x90\xe7\xb3\x25\x83\x41\xc9\x62\xb9\xa2\
\x6e\x1a\x76\xb6\xa7\x08\x25\x89\x3e\x32\x9f\xcd\x18\x8d\xc7\x08\
\xa0\xf0\x0e\xa1\x35\x45\x5e\x92\x52\x24\x49\xe8\xda\x9a\xc5\x6c\
\xc1\x62\xb1\xc0\x85\x4d\xe3\x8a\x54\x8c\x26\x53\xa6\xa3\x29\x65\
\x3f\xc3\xd9\x0d\x1f\x47\x12\x24\x01\x02\x41\xdb\xb4\x74\x4d\xcd\
\x62\x39\xe7\x93\x8f\x3f\xe5\xe1\xc1\x21\x47\x47\x17\xd8\xce\x92\
\xf7\xca\xcd\x74\x60\x14\xf7\xe5\x21\xd6\x39\xb2\x4c\xb3\xb7\xbb\
\xcd\xa5\x9d\x1d\xca\xa2\x64\x3e\x9f\x61\xdd\x66\xa6\xcd\x4c\xc6\
\xf6\xf6\x84\xb3\xd9\x39\x3a\x0a\x92\xd2\xa2\x6d\xd6\xca\xfb\x58\
\x2a\x21\xb3\xe7\x47\x77\x8b\xa4\x95\x44\x2d\xeb\x5a\x44\x19\xd1\
\x5a\xb2\x5e\x6f\x1a\x57\x91\x20\x58\x07\x4a\x92\x59\xcb\xe9\xf1\
\x31\x5b\xdb\xdb\x58\x67\x19\x0c\x47\x98\x4c\x23\xa4\xa2\x6b\x6b\
\x32\x0a\xfa\x83\x40\x53\xd7\x5c\xcc\x67\x2c\xe7\x0b\xba\xd6\x63\
\xf2\x8c\x5b\x77\x6e\x31\x1c\xf4\x18\x8e\xb6\xc8\xb3\xec\xcf\xf3\
\xa5\x32\x19\xde\xb6\x2c\x97\x4b\xde\xfb\xc9\x07\x7c\xfe\xc5\x7d\
\xaa\xba\x41\x49\xc9\xeb\x77\x5f\xe4\xf5\xbb\xaf\x31\xdd\xb9\x84\
\xce\x0c\x5d\x5d\xf3\xf0\xd1\x63\x3e\xfe\xe4\xe7\x7c\xf6\xf3\x07\
\xb4\xeb\x86\xad\xad\xf1\xa6\x89\x46\x60\xbb\x8e\xc6\x6d\x2a\x6e\
\xae\x35\x3e\x82\x8b\x02\x19\x93\x10\xa4\x0d\x09\x9a\x9e\x13\x68\
\xc2\x49\xd1\x76\xce\x24\x91\x84\x14\x4a\x34\xad\xe5\xac\x5e\xd1\
\x2f\x0b\xbc\x0b\x04\xef\xd9\x9a\x0c\x69\x9b\x8e\xbc\x57\x6c\x86\
\xf0\x67\xd4\x73\xd7\xd6\x08\xa9\x09\xe1\x99\x0e\x43\x08\xf2\xa2\
\xc0\x76\x1d\x21\x44\xce\xce\x66\xd4\xce\x71\xbe\x58\xd0\x2b\x4b\
\xae\x5c\xb9\xcc\xf5\xab\x57\x19\x0d\x86\x64\x45\x4e\x4c\xa0\xa4\
\xe4\x8b\xfb\x8f\xf8\xd3\x8f\x3e\x23\xa5\xc0\xed\x6b\xfb\xbc\xf1\
\xda\xcb\x5c\xbe\x7a\x89\x9d\x9d\x4b\x0c\x86\x63\x64\xa6\x09\xce\
\x33\x1c\x0d\xd9\xdb\xde\xe1\xc3\x0f\x3f\x66\xb5\x5e\x10\x63\x42\
\x67\x1a\x29\x13\x52\x4a\xf2\xa2\xe4\xbc\x6a\xc9\xb2\x82\xa2\x67\
\x38\x3a\x39\x4a\xd7\x77\x6f\x84\x2c\xcf\xbd\xd6\x2a\xe0\x9e\x03\
\x68\xbd\x91\x93\xb6\x46\xe5\xb9\x11\x4a\x28\xa1\x84\x4c\x55\xd5\
\x88\xd6\x07\x7c\xf4\x78\x22\xaa\x96\xec\x5f\xbd\xc4\x60\x30\xa0\
\x69\x3b\x6c\xd7\xe1\xdd\xa6\x5b\xef\x7c\xa0\xab\x17\x38\xef\x58\
\xad\x56\x1c\x3c\x39\xe4\xc1\xe3\x43\xce\xcf\xe7\xb4\xb6\xc3\xc5\
\x44\x12\x82\xb3\xaa\xa2\xd4\x8a\x93\xd3\x19\x17\xe7\x33\xde\x7e\
\xfb\x6d\xca\xc1\x00\xa5\x15\x8b\xae\xe5\xe1\x93\x43\xb2\x4c\xb2\
\xb3\x35\xe5\xcd\x37\x5e\x66\x67\x67\x87\xb2\x3f\xa4\xaa\x2b\x84\
\x52\xe4\x3e\x67\xb9\x98\x73\x72\x7c\xca\x6c\x3e\xe3\xd6\xed\xeb\
\x58\x7b\x99\xe3\xa3\x63\xf0\x20\x4d\x86\x31\x01\x2d\x24\x59\xa9\
\xa9\x5b\x49\x26\x35\xfd\xb2\x64\x6f\xb2\x13\x84\x32\xd6\x7a\x1f\
\x32\xcc\x73\x88\xb4\x73\x48\x59\x54\x29\x24\xa5\x85\x14\xe7\xcb\
\xb5\xb0\xce\x92\x6b\x83\xf7\x09\x41\x85\x08\x81\xa6\x75\x28\xdd\
\xe1\x9d\xc7\x4a\x41\xdb\x58\xd6\xcb\x05\x29\x45\x6c\xdb\xf1\xd9\
\xfd\xfb\x7c\x7e\xef\x21\xde\x45\xae\xee\x5f\xe2\x57\x7f\xf5\x57\
\x30\x5a\x71\xf0\xe8\x11\xc7\x67\x33\xea\x75\xc5\xc5\x72\x45\xd7\
\xb5\x3c\x7c\xf0\x90\xab\xfb\x57\xb9\x79\xeb\x26\x59\x66\x58\xcc\
\xe7\x8c\x06\x05\x7a\x6f\x97\xcb\x97\x77\xc8\xb3\x4d\x53\xbd\xaa\
\x3a\x04\x81\xd5\xbd\x47\x1c\x9d\x9e\xe3\x9a\x96\xa3\xe3\x63\xb6\
\x86\x43\x54\x5e\xf0\xca\x2b\x2f\x32\x1a\x0d\x38\x9b\x2d\x71\x5d\
\xcb\x78\x30\x24\x00\xed\xca\xa2\x48\xb4\xb6\xe2\xd2\xa5\x3d\xae\
\xdd\xbc\xe2\x5c\xc0\x29\x29\xfc\xd6\xb0\x49\x5f\x19\xb4\x66\xe8\
\xa5\xf4\x42\xa5\x14\xb5\x8f\x5e\x74\xce\xd2\x5a\x87\x88\x82\x7e\
\x59\x90\x69\xb3\x69\x4c\xe3\x86\x49\x70\xde\xb3\x5e\xad\xa8\xeb\
\x8e\xba\xde\xa2\x5a\x57\xcc\x2e\xe6\xfc\xfc\xfe\x43\xbe\x76\xf7\
\x15\xde\x7a\xf3\x0d\xae\x5c\xbe\x4c\x7f\x38\xc2\x7b\xcb\xcd\x9b\
\x37\x38\x3d\x3e\xe5\xe9\xe1\x21\x67\xb3\x73\x16\xcb\x15\xeb\xd5\
\x8a\xc3\xa7\x07\x34\x4d\x83\xc9\x34\xc3\xc1\x90\x57\x5e\x78\x01\
\x6f\x3b\xc6\x93\x11\x27\xa7\x17\x2c\x56\x67\x68\xad\x99\x6e\x4d\
\x79\x7a\x78\xc8\x27\x9f\x7e\x46\xaf\x28\xc9\x8a\x82\xad\x9d\x09\
\xda\x64\x94\x45\x8e\xd8\xda\x61\x30\xda\x62\xd5\x54\x88\x24\x98\
\x2d\xd6\x9b\x11\x2d\xeb\xb1\x58\xcc\xe8\xf5\x06\xe9\xca\xf5\xeb\
\xf6\xe1\x83\x03\x87\x8b\xde\xb6\x5b\x5f\x1d\xb4\x3e\x4a\xad\x5c\
\xd7\xaf\xeb\xb6\x58\xcd\x56\xb2\x5f\x14\x9b\x99\x52\x49\x92\x8a\
\x98\x4c\x71\x69\x77\x42\x91\x6b\x8a\x5e\xc9\xea\xf8\x84\xae\x75\
\x04\x14\x4d\xf5\x84\x18\x03\xa7\x27\xa7\xbc\xfa\xd2\x2d\xde\x7e\
\xeb\x0d\x86\xa3\x11\xd6\x7b\x56\x27\xa7\x1c\x9d\x1c\x71\x7a\x7a\
\x42\x2f\x2f\x31\x85\xe1\xc6\xf5\x7d\xca\x5e\x9f\x07\x5f\xdc\x27\
\x2f\x72\xce\x4f\x4f\xe8\xf7\x7b\x98\x3c\x63\x3c\x9e\xa0\x34\x6c\
\xef\x5e\x62\x38\xde\xc6\x14\x39\xb9\x51\x14\x65\x9f\xd7\x5e\x7d\
\x9d\x17\x6e\xdf\xa2\xeb\x02\xfb\xfb\xbb\x3c\xbc\x7f\x9f\x10\x23\
\xc3\x7e\x1f\x23\x15\x08\x45\x6f\xd8\x67\x39\x5f\x20\xd4\x86\x51\
\x91\xda\xe0\x7d\x60\x6b\x7b\xcc\xa4\x57\x86\x2f\x7c\x08\x28\x15\
\xba\xaa\xfa\x6a\xa0\xa5\x77\xde\x91\xff\xd2\x8b\x42\x08\x31\x8e\
\x31\xe4\xbb\x97\xb7\x50\x46\xf2\xe1\x67\xf7\x31\x5a\x12\xba\x44\
\x2b\x2c\x42\x1a\xa4\x36\xc8\x24\x50\x4a\xd3\x1f\xe6\xa8\x4d\xc3\
\x85\xf7\x81\x3b\x2f\xbe\xc2\x0b\x2f\xdf\x62\x31\x9f\xf3\xc5\x17\
\x0f\x59\xd7\x0d\x9f\x7e\xf6\x39\x89\x0d\x67\x76\xfd\xca\x65\x92\
\xf0\x5c\xbd\x76\x93\x3b\x77\xae\xd1\x2b\x72\x4e\x4e\x4f\x37\x94\
\xb6\xf7\x64\x79\x4e\x7f\x30\xa4\x6a\x96\x74\x6d\xcd\x70\x38\xa6\
\x28\x0b\x9c\x6d\xe9\xba\x86\x10\x3c\xb7\xef\xdc\x62\x31\xbf\xe0\
\xf8\xe9\x21\x08\xc9\xd5\xcb\x97\x29\x8b\x0c\x11\x3d\x4a\x6b\x4c\
\xca\x68\x3b\x4b\xb5\x3a\xc0\x27\x81\xf0\x8e\xad\xed\x6d\x7a\x83\
\x69\x12\x4a\x47\xa5\x94\x55\x42\xb8\xaf\xdc\x72\xbc\xb7\xbf\xaf\
\xd0\x0c\x75\xd4\x13\x52\xcc\xd7\x8b\x4a\x1a\xad\xb9\xb1\xb7\x43\
\x6b\x1d\x4d\xe7\xe8\xf7\x0b\xf2\x5c\x93\x1b\x43\x96\x69\x2e\x5d\
\xbe\x44\x5d\x37\x28\x21\xe9\x9a\x1a\x63\x0c\x93\xed\x11\xf7\xbe\
\xb8\xcf\xe9\xc9\x09\x45\x96\x53\x0c\x47\xbc\xf6\xf2\x8b\x9c\x3c\
\x3d\xe0\xe6\xad\x57\xb8\x7e\xf3\x06\x93\xe1\x98\xde\x60\x48\xd1\
\x2f\x08\xc9\xb3\x5a\xae\x70\x9d\xa3\x69\x3b\x46\xa3\x11\x42\x81\
\x6b\x5a\xc4\x68\x84\x36\x02\xa1\x04\x10\xe9\x9a\x86\x94\xc0\x39\
\x8f\x04\xc6\xe3\x11\x97\xcb\x3e\xfd\xde\x00\x95\x19\xa4\x94\x44\
\x21\x21\x4a\x82\x5c\x30\xbb\x98\xe1\x45\xa2\x59\xaf\x78\xed\x8d\
\xd7\x99\x8c\xfa\xcc\x56\x4b\x04\xd1\x6d\x06\x35\xf5\xd5\x40\x2b\
\xa6\x53\x51\xb3\x1c\x8b\xe4\x77\x8d\x50\x66\x3e\x5f\xb2\xac\x2a\
\x6e\x5c\xbb\xc2\xc9\xd9\x0c\xad\x35\x45\x9e\xd3\xcf\x72\x9a\xba\
\x21\x86\x40\x7f\x34\x64\xba\x35\x46\x26\x41\x5b\x98\x0d\xf3\x10\
\x23\xab\xc5\x92\xdc\xe4\xbc\xf6\xe6\x9b\xdc\xbe\x73\x9b\x93\xd3\
\x53\xf6\xaf\xec\xd1\x1b\x0e\xd9\xdd\xd9\x46\xeb\x8c\xac\xcc\x51\
\x66\xb3\x5c\x4e\x29\x11\x82\xa5\x5a\xce\x19\xf6\xfb\xf4\xfb\x7d\
\x8e\x9e\x5a\x9a\xba\x66\x30\x9a\xe2\x9c\x47\x28\xc9\x74\x77\x0f\
\x25\x34\xc1\x7b\x42\xf2\x38\xbb\x61\x39\xa4\x96\xe8\xcc\xe0\x5d\
\x46\xd3\x76\x2c\x2f\x96\x34\xcb\x35\x68\x89\xf2\x91\xe1\x78\xcc\
\x8b\x2f\xbe\x80\xc9\x74\xf2\xde\xc7\xdc\x18\xab\xb4\xb6\xa7\x59\
\x3f\x7e\x25\xd0\x4e\xab\x4a\xaa\xc2\x0f\x83\xb5\xd3\xbc\xd0\xe6\
\xc6\xf5\x2b\xfc\xfc\x8b\x47\x7c\xf1\xe8\x90\xac\x30\x5c\x9e\x4e\
\xe9\xe5\x19\x45\x2f\x67\x3a\x1d\xb3\x58\xad\xf0\xd6\x33\x1c\x0e\
\xc9\x94\x66\x30\x1c\x20\x94\x62\x35\x5f\x70\xfb\xe6\x35\x7c\x4a\
\xac\x97\x33\x1e\x3d\xd8\x90\x85\xe3\xe9\x04\x63\x34\x55\x55\x31\
\x9a\x14\x90\x12\xed\x6a\x85\x77\x16\x9d\x65\x9b\x35\x61\x74\xc4\
\x18\xc8\xf3\x02\xdb\x3a\xea\xba\xc1\x75\x1d\x83\xc9\x94\xe5\xf9\
\x19\xce\xce\xc9\x8b\x01\xc1\x39\xda\xae\xc5\x76\x96\xde\x70\x48\
\x96\x17\x48\xa9\x51\x2a\xe1\xdd\xa6\x67\x0d\x3e\x60\x84\x62\x6d\
\x5b\xc6\x5b\x53\x2e\xed\x5e\x26\xa6\xc8\xd9\xf9\x3c\x99\x2c\x6f\
\x8c\x56\xfe\x6b\xf1\x2b\x1e\xcf\xe1\xb6\x95\xab\x46\x0a\x17\xac\
\x16\x5a\x72\xe5\xf2\x0e\xb3\xe5\x9c\xe5\x83\x03\x16\x8b\x8e\x5e\
\x96\x73\xfd\xca\x0e\xbd\xa2\xe0\x6c\xb6\x24\x46\x4f\xbf\x9f\x90\
\x52\x63\xf2\x8c\x5e\xbf\x47\xf0\x11\x25\x14\x5a\x4b\xca\x5e\x8f\
\xf9\xf9\x39\xad\xb5\x08\x02\xda\x18\x7c\x08\xf4\x06\x03\xa2\xf7\
\x74\x5d\xda\x68\x40\x10\x28\x21\x49\x31\xb0\x5e\xae\x08\x7b\x01\
\x63\x34\x46\x2b\xd6\xcb\x05\xd5\x78\x42\x7f\x38\x66\xbc\xb7\x4b\
\x3d\x9f\x6f\x16\x2f\x6d\x4b\x24\xd0\x1b\x0c\x51\xcf\xb6\xf8\x5d\
\x5b\x23\x94\xa6\xed\x5a\xda\xb6\x45\x69\x49\x66\x14\xce\x39\x64\
\x4c\x24\x3c\x51\xc2\x6a\xb5\x14\x79\xaf\xef\x3a\x2f\x5c\xfb\xe2\
\xec\xab\x15\x82\xa2\x9d\x7a\xa7\xd7\x17\x2e\x2b\x9e\xac\x16\xf3\
\xfa\xd2\xce\xde\xe0\xad\xd7\x7b\x59\xb5\x6e\xb9\x58\xae\xb8\x58\
\xad\x58\xb5\x1d\x37\x6f\x5d\xa7\x3a\x3c\xa6\xae\x3b\x48\x33\xb2\
\x2c\x67\x34\xbe\x41\xd9\x1f\x21\x85\xa4\x3f\x88\xcc\xe7\x67\x08\
\x29\xd8\xb9\x7c\x19\x29\x14\xfd\xe1\x10\x67\x3b\x9c\xf5\x1b\xf2\
\x31\x74\x08\x9d\xd3\xb5\x0e\xd7\x3d\xdb\xd9\xc6\x84\xda\x48\x01\
\xd1\xa6\x60\xbc\xbd\xc5\xd9\xc9\x09\x75\x53\x33\x9f\x9d\x31\x18\
\x0d\x18\x4d\xb6\x18\x04\x4f\xb5\x5a\x91\xc4\x86\xac\x94\x4a\x63\
\xbb\x0e\xdb\x36\x34\x4d\xcd\xaa\xaa\xe9\xea\x35\xae\x6e\x71\xce\
\x31\x18\xf5\x19\x4c\x47\xac\xd6\x35\x5d\x53\xd1\xeb\x95\xde\x27\
\xef\x94\x94\xbf\xb0\x9e\xe3\xdf\x49\x85\xdc\xfd\xe8\x23\xdf\x06\
\x71\x68\xf2\xf2\x27\x79\xaf\xf7\x28\x29\xdd\xbc\xfe\xd6\x1b\xf1\
\xd6\xf5\x6b\x5c\x9a\x8e\xd9\x1a\xf6\xf8\xfc\xe1\x63\x4e\x66\x0b\
\xda\xa6\xa3\xb5\x96\xf5\x6a\x4d\x4a\x1b\xc9\x41\x70\x16\x65\x34\
\xe5\xa0\xcf\xf6\xce\x25\xbc\x7d\xb6\x34\x21\xd1\xb6\x0d\x08\x36\
\x2a\x9f\x18\x29\x87\x13\xb2\xa2\x47\xd7\x34\xd8\xae\x45\xca\x0d\
\x31\x29\xa4\x22\x7a\x8f\x94\x8a\x41\xaf\xc7\x78\x3c\xda\x80\xed\
\x3a\x9a\x55\xc5\xba\x5a\x62\x9d\x25\xef\xf5\x31\x79\x49\x78\x46\
\x03\xd9\xae\xc5\x5a\x4b\xdb\xb6\xf8\xb6\xc5\x28\x89\x8f\x16\x1f\
\x3d\x1a\x18\x0f\xfa\x10\x03\x3a\x2f\x59\xd7\x0d\x4a\x98\x2e\x19\
\xef\xef\xdd\x9b\xc6\xaf\x04\x9a\xf8\xfe\xf7\x23\x15\x73\x99\xcb\
\xf7\x7b\xa3\xf1\xbf\xb6\xce\x5d\xa8\x2c\xb3\xaf\xbf\xfe\x4a\xfa\
\xda\x6b\x2f\xf3\xe2\xed\x5b\x68\xa1\x38\x3e\x38\xe2\xe4\xec\x9c\
\xe3\x93\x33\x9a\xae\xa5\x6b\x5a\x16\xb3\x39\xd6\x75\xb8\xb6\xc6\
\x7b\x47\x5e\x96\x6c\xed\xec\x92\x67\x25\xb6\x6d\x99\x5d\x9c\x31\
\xbf\xb8\xa0\x5a\x2d\x91\x02\x94\xd6\x34\xd5\x9a\xb6\xaa\x10\x42\
\xe2\xfd\x86\x08\x97\x52\x20\x84\x44\x29\xc5\xd6\xd6\x16\x83\xde\
\x00\x62\xc2\x76\xdd\x66\x2f\x6a\x37\x63\x5b\xdb\xac\x37\x22\xbf\
\x67\xdb\x76\xe7\x37\xcb\x1b\xe7\x22\x3e\x09\x9a\xa6\xa1\xae\x6a\
\x8c\x54\x08\x60\x30\x19\x73\x76\x76\x86\x10\x21\x35\x75\x43\x67\
\xbd\xa7\xf2\xfe\xb9\xb0\x1c\xdf\xf9\xfb\x0f\xec\x7b\xbf\xf5\xf2\
\x7d\x0c\xff\x6a\x55\x55\x77\x83\x4b\x83\xeb\x77\x6e\x1b\x1f\x50\
\xd7\xb5\xc0\xdb\x8e\xb2\xc8\x08\xd1\xd3\x5a\x87\x4b\xd0\x74\x2d\
\xd6\x39\xaa\x75\x83\x10\x8a\x1c\x0d\x11\x8a\x7e\x81\xc9\x4b\x4c\
\x9e\x51\xd7\x2b\x92\x4f\x90\x41\x96\x65\xcf\xa8\x70\x8b\xd0\x9a\
\xd8\x75\x04\x6f\x59\x2d\x97\x0c\x47\x23\x84\x32\x20\x04\xe5\x70\
\xc4\xa0\x6a\x88\xcf\x36\x53\x08\xf0\x7e\x23\x74\x16\xd1\xd3\x76\
\x4b\x42\x88\x9b\x28\xeb\x2c\xde\x37\x58\xe7\xe8\xba\x96\xd6\x6e\
\xa8\xf6\xc6\x35\x64\x59\xc9\xcd\x1b\x37\x11\xc4\x74\x31\x5b\x78\
\x2d\x53\x5d\x14\xd9\x0c\x99\xda\xef\x7e\xf7\xa3\xf4\x95\x22\x0d\
\x40\x88\xef\xc7\xa2\x35\x4b\xa1\xc5\x07\xa6\xec\xbd\xf7\xf4\xf4\
\xe8\x6c\xe7\xda\x8d\x4e\x1b\x9d\xee\xbc\xf2\x0a\xdf\x7e\xfb\x9b\
\x5c\xbe\x74\x85\xab\x57\x2e\x33\x1a\x0d\x50\x4a\x71\x70\x70\xcc\
\xe1\x93\x27\x5c\x9c\x9e\xb0\x5e\x55\x54\xeb\x25\xeb\xd5\x8c\xd5\
\x7c\x4e\x57\x57\xd8\xba\x42\x3c\xe3\x95\x4c\x91\xe3\x83\xa7\xae\
\xe6\xc4\x08\x82\x88\x77\x96\xe1\x68\x84\xce\x32\xaa\xba\xa6\x73\
\x1d\x42\x2b\x8c\xde\x2c\x6b\x12\x82\x18\x23\xab\xe5\x92\x10\x3c\
\x22\x05\x7c\x8a\xb8\x60\x91\x52\x93\x70\xc4\xe4\xe9\xda\x0e\x49\
\x22\x86\x80\x92\x6c\xe8\xf7\x08\x26\xcf\xd9\xda\xdd\x4e\x45\xaf\
\x6f\x4d\x96\x5f\x0c\x46\x5b\x9f\x95\x65\x79\xaf\x3f\x29\x9b\xe7\
\x26\x89\xff\x5f\xde\xfd\x5a\x3a\xfc\x68\x6c\x23\x31\xaf\x96\xd5\
\xad\xbd\xbd\xbd\x49\xf4\xa1\x3f\x9a\x4e\xe4\xde\xa5\xcb\x9c\x9d\
\x1e\x91\x62\x20\xba\x40\x53\xb7\xd4\xb6\xc3\x28\xb1\x59\xb4\xc4\
\x84\x48\x9b\x4d\x53\xd7\x75\x78\x6f\x37\x47\x2b\x04\xa4\x32\x08\
\x91\xd0\x2a\x43\xea\x8d\x80\xd9\xb5\x1d\x31\x26\xb6\x77\x77\x71\
\x21\x52\x57\x15\xbb\x7b\x97\xe9\x0d\x46\x08\x09\x4d\x5d\x71\x7a\
\x7c\xc4\xd3\xa7\x27\x0c\x86\x43\xca\x22\x27\xa5\x80\x48\x0a\x65\
\x36\x54\xb7\x6d\x1b\x9c\xb5\xf8\x98\x48\x44\x8c\xce\xd0\xc6\x50\
\xd5\x1d\xc7\xa7\x67\x84\x98\x78\xf9\xa5\x17\xdc\x72\xb5\xbe\x68\
\x3b\xff\xbe\x31\xd9\x6f\xeb\xbe\xf9\xa3\xe2\x72\x7d\x71\xf5\xea\
\xff\x14\xbe\x72\xa4\xfd\x59\xb4\x65\x77\xc2\x2a\x37\xbd\xf7\x75\
\x9e\xfd\xc9\xc7\x1f\x7c\x70\x36\x1e\xf7\xdb\xe3\xc3\x27\xa9\x6d\
\x1b\xa4\xd2\x54\xad\xc5\xe4\x19\xda\x68\x88\x82\x10\x12\xb3\xc5\
\x8a\xf9\x62\xc6\xb2\x5a\x61\xad\xdb\x80\x5a\xd5\x24\x21\xc8\xf2\
\x82\x3c\xd3\x48\xa5\x10\x4a\x01\x9b\xad\xb8\xca\x73\x3a\xdb\x72\
\x7a\x7a\x42\xf4\x81\xd5\x72\x45\x5d\x6d\x34\x20\xcd\x7a\x4d\x55\
\xd5\x7c\xfe\xe0\x01\x7f\xf8\x47\x3f\x66\xb5\xae\xe9\xf5\x7b\xcf\
\x24\x56\x91\x2c\xcf\x90\x52\x52\xf6\x46\xe4\x45\x7f\xf3\x32\x94\
\x21\x33\x1b\x2a\x3d\x84\xb0\x91\x86\xb9\x18\xbf\x78\xf8\x64\xb5\
\x5c\x55\x9f\xa8\x3c\xff\x6d\x9d\xf5\x7e\x2f\x0e\xc3\xd3\xb7\xdf\
\xfe\x07\xee\xb9\xe4\xb4\x3f\x7b\xbe\xf5\xad\xc3\xf0\x47\x27\x2f\
\x3d\xcd\x92\xfb\xe3\xd5\xfc\xe2\xcd\xa3\x93\xb3\x1d\x52\xca\x1f\
\xdc\x7b\xa0\xae\x5d\xbb\x26\x46\xc3\x11\xf7\xbe\x78\xc0\xc5\x7c\
\x8e\x4f\x81\xc5\xaa\x22\x37\x8a\x4c\xab\x67\x23\x56\x8e\x31\x9b\
\xf5\x9b\x6d\x3b\x84\x10\x48\x59\x62\x9d\x47\xca\x8d\x27\x20\x2b\
\x4a\x46\xc3\x11\x1f\x7c\xf8\x11\x7f\xfa\xd1\xcf\xa8\xdb\x8e\xeb\
\xbb\x5b\x0c\xc7\x23\x7a\xbd\x1e\x9d\xb5\x7c\xf4\xc1\xc7\xbc\xf7\
\xa7\x3f\x63\x3a\x2c\x98\x4c\xc6\x90\x04\x45\xd9\x27\x24\x41\x42\
\xe2\x7c\x20\xf8\xf0\xcc\xee\x93\xd0\xca\x90\x00\xeb\xd7\xc4\x94\
\x18\x0d\xfb\x49\x15\xa5\x4d\xd6\x3f\x36\xc3\xe2\x5f\x94\x4a\xfd\
\xae\x8c\xd9\xa3\xbf\xf6\xfb\x9f\xd9\xe7\x2e\x89\x17\xe2\xfb\xf1\
\xdd\x77\xdf\xad\x6e\x96\xbd\x4f\x52\xf2\x3f\x3a\x39\xbb\xb8\xb9\
\xbf\xb7\x3b\xec\x52\x37\x38\x3d\x39\xe3\xca\xd5\x7d\x96\xab\x15\
\x47\x27\x47\xd8\xb6\x41\x95\x25\xd3\xc9\x90\xa2\x5f\x6e\xde\x76\
\x9e\xd1\x59\x87\x42\x50\xf6\x06\x78\xeb\xe8\x84\x42\x67\x05\xd6\
\x75\x68\xa1\x40\x44\xf2\x32\x27\x44\xc0\x3b\xda\xa6\xe6\xa3\xcf\
\x97\x08\x25\xe8\xba\x8e\xf3\xd3\x19\x3f\xfa\xc9\x47\x18\x25\x78\
\xeb\xf5\xbb\x4c\x27\xa3\x8d\xe2\x52\x18\x42\xd7\xe2\x9b\x8d\x82\
\xb2\x5a\xcf\x81\x84\x36\x9a\xce\x7b\x08\x81\xba\xae\xf0\x29\x90\
\x94\x4a\x93\xad\xbd\x75\xaf\xdf\xff\x50\x19\xf3\xaf\x74\xab\x1f\
\xff\xea\x67\x1f\x75\x5f\x56\x73\xfb\x0b\x2b\x65\x7e\xf8\xc3\x1f\
\xa6\xef\xfd\xed\xbf\xeb\x94\x8a\xc2\x75\xdd\xb5\xd5\x72\xbe\x7f\
\xfd\xda\xcd\xf2\xf4\xe4\x54\x5e\x9c\x9d\x8a\xfd\xab\x57\x48\x49\
\x32\x5b\x2c\xd0\x5a\xd1\xeb\xf5\x28\xcb\x02\x6d\x34\x83\xc1\x90\
\xa2\xd7\xdf\xf4\x53\x99\xc2\x98\x02\xa4\xdc\xc8\x12\xa4\xa0\xd7\
\x1b\x50\x94\x7d\x54\x96\x33\x1e\x8f\x51\x09\xb6\x47\x7d\xb4\x16\
\x9c\x9c\xce\x79\xf8\xe8\x90\x2f\x1e\x3d\xa6\xed\x5a\x76\xc6\x63\
\xee\xdc\xb9\xc5\x74\x6b\x4a\x5e\xf4\x88\x29\x60\xf2\x9c\x18\xc1\
\xb6\x1d\xd6\x36\xd4\x55\x43\x67\x1d\xc4\x48\xeb\x2c\xd5\xba\x65\
\xb1\x5c\x12\x95\x0e\xdb\x3b\xd3\xe3\xad\xbd\x4b\xff\xa7\x16\xd9\
\xff\x7d\xa8\xf2\xb3\xd7\x7f\xe3\x37\xbe\xb4\xba\xfb\x4b\x69\x4d\
\xe7\x45\xd1\x26\x23\x3f\x33\x65\xf9\xaf\x42\x12\x8f\xdf\x7f\x01\
\xc9\x40\x54\x00\x00\x13\x92\x49\x44\x41\x54\xff\xfd\xa6\x3f\x1a\
\x85\x9b\x2f\xde\x4a\x83\xe1\x88\x97\x5e\x7e\x19\x92\x24\x86\x48\
\x5d\x35\xcc\xe7\x2b\xda\xb6\xa3\x69\x3a\x52\x0c\xa4\xe0\x37\x9b\
\xa6\x14\x50\x32\xa1\x32\x4d\x59\xf6\x37\x6a\xef\x98\xf0\xd6\x31\
\x1a\x0e\x78\xfb\x57\xbe\xc9\xed\x3b\xb7\x78\xf9\xf6\x6d\xa6\xa3\
\x01\x52\x48\xa6\xc3\x01\x37\xf6\xf7\xb8\x7d\xf3\x2a\xe7\x67\xa7\
\x7c\xf2\xc9\xa7\x5c\xcc\xce\xa9\xeb\x66\x33\x57\x16\x9a\xf1\xd6\
\x88\xbc\x1c\xe0\x7d\xc4\x28\xbd\x51\x7f\xbb\x80\x8f\x11\x12\xc9\
\xb7\xde\xf7\x87\x93\x63\xa5\x8a\x07\xb2\xa7\xe6\xdf\xfd\xe8\xa3\
\x5f\xca\x1f\xf5\xa5\x94\xcd\xdf\xfb\xde\xf7\xc2\x8f\xff\xd1\x3f\
\xbc\x58\xda\xec\xc7\x52\x65\x2f\xfa\x58\xf7\x0f\x0e\x0f\x2f\xbf\
\xf0\xd2\x9d\x3c\x85\x94\xef\x0c\x86\x7a\x3a\x19\xcb\x07\x8f\x9e\
\x88\xaa\x6a\xd9\x01\xfa\xfd\x01\x6d\xd7\x30\xf4\x25\x3e\x09\x4c\
\x06\xce\x3b\x84\xcc\x30\x42\xe1\x53\xc0\x35\x15\x29\x41\x51\x16\
\x78\xe7\xe8\x3a\x4b\x08\x91\xed\x9d\x5d\xfe\xc6\xe5\x3d\x4e\x9e\
\x9e\x62\x6d\xcb\x78\x32\xc1\x64\x9a\x98\x60\x30\x9a\x92\x65\x39\
\xab\xe5\x7a\x33\xf6\x15\x7d\xf2\x22\x67\x34\x9e\x50\x57\x0d\xd1\
\x07\xb2\x5e\x8f\x55\x55\xd3\x3a\x4b\x40\x24\xd3\x2b\xba\x2c\xcb\
\x9f\x38\xef\x8f\xb2\xba\xdf\xfe\x95\xda\x7c\xfe\x8d\xa2\xf0\xde\
\x61\xfb\xc7\x5f\xbf\xfd\x79\x14\xa3\x7f\x34\xce\xf4\xbc\x5a\xae\
\xde\xfa\xf9\x67\x5f\xec\x6d\x6d\xef\x4c\x94\x90\x53\xad\xf4\x34\
\x85\x90\x27\xa9\x84\xb5\x35\xc7\xa7\xa7\x20\x36\x3e\xa6\xc1\x60\
\x80\xf7\x0e\xdb\xb5\x1b\x31\x82\xec\x88\x49\xb0\x98\xcf\xe8\x0d\
\x86\x54\xf5\x0a\xef\x3a\xf2\xbc\x24\xcf\x73\x56\xab\x35\x37\x6e\
\xbe\xc8\x74\x3a\xdd\xf8\x08\x52\xc2\xe4\x19\x4d\xdd\xa2\xb3\x82\
\xe5\x72\xc9\xa0\x2c\x59\xaf\xd6\x7c\xf0\xd1\x47\x5c\xbd\x7a\x8d\
\xcc\xe4\xb4\x2e\xa0\x65\x42\x10\x37\xff\xae\x6a\x1a\xd7\xa5\xde\
\x68\xbb\xd2\x46\x3d\x94\x3a\x9d\x64\xb7\x67\x9e\x5f\xf2\xf9\xd2\
\xa0\x89\xef\x7f\x3f\xbe\xfb\xee\xbb\xf3\x1b\x5e\xbf\x57\x97\xfa\
\x70\x20\xb3\x1f\xcd\x2b\x7b\xfb\xe4\xec\xde\x4b\x02\xff\xd2\x70\
\x7b\xeb\xe5\x9d\xd9\xf2\xfa\xe3\x83\x83\xb2\x6e\x3b\x39\x1e\x6e\
\x54\x3c\x3d\x93\xa1\x94\xc4\x39\x4b\xd7\xb4\x6c\xef\x6c\x56\x79\
\x42\x4a\x86\xc3\x4d\x33\xbb\x5e\x54\x28\xad\x59\xce\x97\x8c\x46\
\x63\x7a\x83\x3e\x89\x8d\x0f\x4a\x6b\x4d\x5d\x37\x90\x40\x2b\x45\
\x91\x2b\x66\xf3\x06\x6b\x34\xab\xd5\x92\xe5\xf9\x05\x0f\x1f\x1e\
\xb0\xbd\xb3\x43\x44\xb2\x7f\xf9\x12\x65\x09\x27\x67\x67\x38\x1b\
\x68\x96\x75\xbc\x7a\xed\xd6\x05\x89\x87\xb8\x70\xfe\xad\xdf\x3a\
\xfc\xa5\x6f\x4f\xf8\xa5\x9c\xc5\x3f\xfc\xe1\x0f\xd3\xff\xf6\xc6\
\x1b\xee\xc2\xf4\x17\xe5\x8e\x3c\x90\xb2\xf7\x85\x2a\xd5\xcf\x32\
\x53\xde\x53\x99\x09\xda\xa8\x2b\x27\x67\xe7\x63\x7c\x90\x79\xde\
\x13\x5a\x49\xb4\x96\x68\xad\xf1\xc1\x93\x80\xb2\x28\x40\x0a\x62\
\x14\x28\x29\xa8\xab\x25\xeb\xe5\x02\x9d\xe5\x1c\x3c\x7e\xcc\x74\
\xbc\x11\xa8\x74\x6d\x8b\xf3\x9e\xce\x76\xcc\x17\x6b\x8e\x4f\x4e\
\x36\x82\x64\xa9\xa8\xeb\x0e\x21\x35\x31\x78\xee\x3f\x78\x44\x96\
\x17\x1c\x1d\x9f\xd3\xef\x95\x68\xad\x18\x94\x3d\x9e\x3c\x39\xe0\
\x74\xbe\x48\xa6\x28\xdb\xab\xfb\x57\x3e\x2d\x86\x93\x7f\x96\x99\
\xc9\xcf\x6f\xff\xc6\x6f\x74\xff\xde\x22\xed\xdf\x18\xe8\x37\x12\
\x33\x97\xde\x79\xa7\x7d\x6f\x7f\x7f\x5e\x4f\xcd\x99\x10\x0c\xca\
\xb2\xf8\xe6\x70\x34\xbc\xba\x3c\x3d\xd3\x31\x46\xec\x33\x49\x95\
\x56\x19\x83\xfe\x80\xd5\x6a\x85\xd4\x1a\x6f\x03\x17\x8b\x0b\x76\
\xb7\x26\x1c\x1c\x3c\xc1\x18\x43\x92\x0b\xb2\xa2\xe0\xd1\xc1\x01\
\x46\x09\x5c\x67\x79\x78\x70\x42\xd5\xb6\x1c\x5f\xac\x19\x64\x9a\
\xbd\x9d\x6d\xf2\xfe\x11\x29\x46\xee\xdc\xbe\xcd\x93\x83\xa7\x34\
\xad\xe5\xd1\x93\x93\x0d\xb3\x92\xe7\xf4\x7b\x7d\x5a\xef\x49\x24\
\x5c\x48\xe9\xfa\xfe\xa5\x75\x5e\xf4\xee\x3b\x78\xba\x02\xcb\x57\
\x78\xbe\xf2\x15\x13\xff\x6f\x00\x7f\xef\x07\x3f\x58\x25\xc3\x59\
\x44\xce\xa7\xa3\x91\x9d\x9d\x5f\x94\x3a\xd3\xa4\x10\x98\xaf\x1a\
\x2e\xef\x6f\x2c\x65\x65\x7f\xc4\xa2\xaa\xa8\x96\x0b\xce\x4e\x67\
\xcc\x67\x17\xfc\xec\xe7\x0f\xd8\xdd\x19\x61\x9d\x27\x85\xc4\xd9\
\x62\xce\xb0\x5f\x30\xee\xf7\x18\x0e\xfa\x5c\xd9\xdd\xe3\xad\x37\
\xc7\x9c\x1c\x9f\xf0\xe3\x9f\x7c\x48\xd9\x2b\x11\x02\xaa\xba\xc6\
\x76\x2d\xc3\x41\x9f\xce\x5a\x2e\xe6\x2b\x8e\x8f\x4f\x49\x24\x2e\
\xef\x5f\x61\x5d\xb7\x28\xad\x62\x56\xf6\xd7\xca\x64\x07\x26\x93\
\xb3\xfd\xd9\x2c\xfd\x07\x07\xed\xcf\x35\xba\xfd\x7e\x7c\x1a\xba\
\x85\xc9\xf4\xf9\xa0\x5f\xda\x48\x4a\x27\x47\x67\xe2\xfa\xf5\x6b\
\x2c\xd6\x6b\x2e\x66\x17\x28\x25\x79\x7a\x72\xcc\xd9\xf9\x05\x83\
\x7e\xc9\xe9\xc9\x8c\xc3\xa3\x33\x5a\x1b\x38\x39\x3d\x27\xd3\x0a\
\xa5\x24\x9d\x6d\x99\x9d\x5f\xf0\xc2\xad\xab\xfc\xea\x5f\xfb\xeb\
\x8c\xb7\xc6\xd4\xcb\x15\x52\xc0\xce\xf6\x94\xe5\x7c\x89\x8d\x9e\
\xa6\xca\x19\x0c\xfb\xd4\xdd\x9a\xb2\x97\x93\xe6\x0b\xa4\x96\x8c\
\x46\x23\xee\x7d\x7e\x9f\xc5\xf9\x9c\x62\xd8\x23\x85\x4e\x85\x14\
\xc6\xc2\x86\xeb\xa7\x3d\xaa\xdf\xfb\xc1\x0f\x66\xdf\x79\xf0\xc0\
\xfe\x95\x58\x17\xbf\xcc\xf3\x31\x84\x2d\x21\x97\x6d\x97\x66\x2e\
\x04\x9f\x29\xcd\x32\x76\x1c\x9e\x9d\x30\xee\x17\x2c\x16\x4b\xfa\
\xfd\x21\x9f\xdd\x7b\x84\x21\xf1\xc5\x67\x0f\xf0\x2e\x50\xf4\x7a\
\x4c\x86\x19\x3b\x93\x8d\xb1\xbf\xee\x2c\x3b\x5b\x63\x3a\x17\xa8\
\xd6\x1d\xef\xfd\xf1\x9f\x50\x96\x06\xad\x0c\xde\x47\x46\x83\x12\
\xdb\x75\x4c\xca\x21\xc3\xd1\x80\x5e\x56\x90\x89\x8d\x93\x6f\xef\
\x8d\xbb\x54\x9d\x63\x32\x1d\xf1\x93\x7f\xfd\x01\x8b\xe5\x82\xfd\
\xe1\x40\xba\xb6\x9b\xae\xe6\xf3\xef\x14\x85\x1b\xe4\x83\xfe\x1f\
\x8b\xbe\x78\xff\x77\x5f\x7d\xf5\xe1\xef\xfd\xde\x0f\x16\xdf\xf9\
\xce\x03\x2b\xc4\x2f\x0e\xde\x73\x05\xed\xbb\x1f\x7d\x94\xfe\xe9\
\x4b\xdb\xb5\x40\xcc\x5d\x8c\xce\xc7\x90\xaa\xd6\xb2\x6a\x5a\xbc\
\x1d\x21\xc4\x11\xd6\x75\x84\xa6\xc5\x0a\xb8\x7e\xe3\x1a\xc1\x7b\
\x2e\xef\x6c\x91\x65\x19\x89\x44\x91\x1b\xba\xd6\xe1\xad\xc5\x06\
\xc7\x68\x32\x21\x37\x9a\xb2\xc8\x71\x3e\x22\x4c\x62\x34\x1e\xa3\
\x8d\x46\xa6\x44\x56\xe4\x48\x29\xd9\x99\xec\x20\x95\xa1\x5a\xaf\
\x29\xb2\x9c\x07\x0f\x1e\x71\xb1\xb8\xc0\x39\xc7\xc3\x87\x8f\xa4\
\x51\x37\x07\x2e\x84\x97\x17\x72\x71\x69\xe2\xa6\x6f\x8e\xe2\xe4\
\x4f\x53\x5e\xfe\x89\x39\xd6\xef\xff\xee\x6f\xbd\xfa\xe8\xcb\x80\
\xf7\xdc\x40\x7b\xf7\xdd\x77\xd5\x6f\x15\xb3\x3c\x5f\xdb\x41\x66\
\x8c\x4a\x51\x6c\x98\x53\xe7\x89\x02\x96\x75\x0d\x32\x11\x88\x04\
\xd7\xa1\xf2\x0c\x6f\x2d\x57\xf7\xf7\x99\x8c\x87\xb4\x5d\x43\x59\
\x14\x8c\x47\x03\x00\xda\xa6\xa5\xaa\x56\x80\xa2\x6d\x1c\x6d\xe7\
\xd1\x5a\xe1\x89\x48\x99\x98\x6c\x8d\x48\x9d\x25\xa0\xd0\xc6\x20\
\x50\x2c\x2e\x16\x7c\x76\xef\x01\xf3\xaa\xa6\xed\x2c\x89\x40\x8c\
\x82\xf9\xec\x9c\xee\x53\xab\x94\x54\x3d\x10\x65\x7f\x38\xda\x9a\
\x6e\x6d\xdf\xbe\x76\xeb\xe6\xd7\xc7\xc3\xc1\x4f\x7b\x6e\xf0\xe3\
\xac\xc9\x3f\xfc\xfd\x7f\x72\xf7\xc1\x1f\xbe\xfb\xee\xe2\x09\xd8\
\xbf\xe8\x42\xa7\xaf\x04\xda\x3b\xef\xbc\x23\x7f\x7d\x7f\x5f\x9d\
\xf4\xdb\xb2\xab\x8f\x76\xdd\x22\xde\x11\x32\xbd\x11\x7c\xfb\xad\
\xd9\xd9\xd9\xe8\xf8\xfc\x4c\x82\xc2\xc7\x00\x16\xc2\x32\x12\x62\
\x64\xda\x2f\xc1\x06\x62\xe6\x48\xc9\x93\x44\x62\x30\x18\x20\x12\
\x58\x9f\x50\x4a\xa2\x8c\x21\x37\x05\xd3\xed\x2d\xca\xe1\x10\x29\
\x14\xce\x59\x32\x93\x83\x88\x2c\xd7\x35\xb9\x36\x34\x55\x45\x4c\
\x01\xeb\x3a\x4e\x2f\xce\xf1\x31\xd0\x36\x2d\x31\x42\x91\xe7\x34\
\xb1\x43\x02\x4d\xbd\x26\xc6\x24\x64\x92\x62\xb9\x9c\xe5\x67\xa7\
\x4f\x77\x9e\x3c\x3c\x18\x4f\x76\xa6\x2f\xbc\xfc\xca\x8b\xdf\xdc\
\x9e\x4e\xdf\xcf\xeb\xea\x5f\xdb\x5e\xf1\xe1\x38\x8a\xfb\xbf\xf3\
\x3b\xbf\x79\x31\x9f\x17\xed\xff\x17\x78\xbf\x14\x68\xe9\x9d\x77\
\xe4\x7b\xfb\xfb\xea\x68\x10\x06\x87\xd6\x5e\x12\x91\x97\x7c\x55\
\x7d\x73\x71\x31\xff\x96\xc2\xdd\x9e\x9d\x5d\x5c\x39\x3d\xbf\x18\
\x5a\x17\x45\x96\x41\xa6\x24\x31\x25\x42\x08\x54\xeb\x06\x25\x34\
\xa5\x11\xf8\x75\x45\xd3\xb6\x4c\x53\xa0\x2c\xfa\x14\x59\x8e\xd4\
\x19\x4a\x09\xb2\x3c\x67\x34\x1d\x33\x1c\x4e\x31\x26\xa3\x6d\xd6\
\x28\x65\xc8\xcb\x1e\x31\x38\x66\xb3\x39\xc1\xb5\xd4\xbd\x3e\x4d\
\x53\xe1\x17\x73\xba\xba\x61\xdd\x36\xd8\x10\x91\x40\x9e\x67\x84\
\x90\xd0\x72\x43\x47\x05\xf1\x6c\xef\x40\x26\x62\x42\xac\xaa\xb3\
\xac\xad\xe7\xdb\xeb\xd9\xd9\x68\xf7\xf2\xfe\xed\xab\x57\xf6\xde\
\x9e\x6e\x6f\x7d\x32\x9a\x4c\xff\xa8\x37\xe7\xfd\xfd\xb2\xfd\xfc\
\xa7\xbf\xf3\x9b\xe7\x3f\xfb\xb7\xc0\x13\x5f\x16\xac\x7f\xfa\xab\
\x5b\x66\xb2\xee\xf7\x57\xad\xdb\x6f\x6d\xfd\xda\x7a\x55\x7d\xab\
\xa9\xd6\xdf\x68\xeb\xf5\x1d\xdb\x54\x3b\x92\x54\x1e\x9e\x9c\x98\
\xe3\xa3\x73\xe9\x62\x44\x09\x28\x9e\xd1\xda\x31\x46\xfc\xc6\xe1\
\xc8\xb0\x9f\x33\x28\x72\x76\xb6\x26\xdc\xbe\x75\x9d\xab\xd7\xaf\
\xb1\x7f\xe5\xda\x33\x6f\x45\x24\xcf\x7b\x20\x23\x79\x5e\x12\x43\
\xe2\xe2\xfc\x82\xe9\x74\x8a\x36\x86\x90\x02\x6d\xd3\xb0\x9c\xcf\
\xb1\x9d\x63\xbd\x5e\xf1\xd3\xf7\x3f\xe2\xd1\xe3\x27\xcc\xd6\x6b\
\x42\x82\x5e\x9e\x71\x79\x7b\x87\x93\x8b\x05\x27\x17\x17\xcf\xec\
\xdc\x1b\x17\x8c\xc9\x72\xb4\x36\xb8\xae\x26\x24\x45\x66\x74\x52\
\x52\xa4\xb2\xec\xf9\xbd\x2b\x97\xab\x17\x6f\xdf\x7e\xbc\xbb\xb7\
\xf3\x61\x51\x94\x3f\x2e\xfb\x83\x9f\x46\x23\xee\x8d\x4a\x75\x76\
\x92\x76\xdb\x5f\xfb\xb5\x5f\xf3\xfa\xcb\x80\xf5\xbb\xf3\xde\x24\
\x9e\x36\x37\xd7\x34\x2f\xdb\xa6\x7e\xeb\xec\x7c\xf6\xcd\xc5\x62\
\x76\xfb\xe8\xe8\x68\x27\x45\x9f\x7b\x67\xd5\x7a\x5d\xcb\xe8\xed\
\xb3\x75\x5a\xc0\x0b\xc1\xd6\xa0\x4f\xf4\x9b\xe5\xc6\xc5\x62\x45\
\x70\x01\x41\x22\xf9\x44\x64\x49\xd1\x3f\x45\x3d\xbb\x61\x61\x30\
\x1c\x92\x65\x06\x29\x33\x22\x9e\xa2\x1c\xe0\x6d\x8b\x14\x09\x17\
\x36\xc6\x0b\x6b\x1b\x96\xf3\x25\xf3\xf9\x9c\xf3\xb3\x0b\xe6\x8b\
\x25\x4f\x9e\x1e\xb3\xee\x1c\x3a\x33\xa8\x04\x3b\x5b\x3b\x14\x65\
\x4e\xaf\x5f\xa2\xe6\x9b\xcb\x06\x7c\x8c\x7f\x6e\xf7\xd6\x52\x81\
\xce\xc8\x85\x00\x89\x08\xce\x8a\x6e\x1d\xb2\xe3\xa7\x51\xb7\xeb\
\x75\xff\xe6\xad\x9b\xfb\x57\xaf\xee\x7f\x4d\x6a\xf1\x51\x16\xf2\
\x9f\x74\x88\x9f\x8e\xe3\xc5\x67\x3f\xfd\x9d\xdf\x3c\xd3\x7f\x59\
\x72\x2f\x66\xb3\xfc\x9f\x8f\xec\xa4\x3b\x15\x37\x83\x5b\xdf\xb5\
\x6d\xf3\xf6\xb2\x6b\xee\x1e\x3c\x3a\xb8\xf5\xe8\xf0\x60\x6b\xb5\
\x5a\xe5\xad\x6d\xa4\x56\x46\x08\x29\x48\xd1\x23\xc2\xc6\x6f\xae\
\x9f\xc9\x48\x97\x8b\x39\xb7\x6f\x5e\xc3\xfa\x80\x8d\x91\x64\x23\
\x3e\x45\x2e\x96\x2b\xac\xdf\x48\x0f\x36\xae\x15\xcf\xa5\xdd\xdd\
\x4d\x2e\x6a\x5b\xa4\x54\xac\x97\x35\xbd\x5e\x41\xde\x2b\x09\xce\
\xb1\xae\x2a\xd6\xeb\x25\x4d\xdb\xb2\x5a\x2e\x39\x39\x3d\xe1\xf0\
\xc9\x11\x6d\x55\x23\x9f\x99\x70\xcb\x5e\x41\xd9\x2f\xb8\xf5\xc2\
\x4b\x5c\xfc\xe4\x03\x94\x34\xc4\xe4\x91\x29\xa1\x85\x24\x05\x4b\
\xd4\x8a\xa2\x3f\xa4\x5e\xaf\x09\x2e\x21\x93\x84\x0c\x6c\x55\xcb\
\x0b\xe7\xb2\xae\xad\xb6\xda\xae\x1a\xde\xf0\x37\xf7\x87\xfd\xfe\
\xeb\x65\x51\xbc\x3d\x18\x0d\xff\xa5\xb3\xe6\x4f\xf4\xbf\x0b\xac\
\x81\x7d\xda\xf7\xf3\xa3\x6d\x2f\xc2\xed\xf9\xc2\xdd\xf5\xb6\x7b\
\xab\x5d\x57\x77\x97\xf3\x8b\x1b\x67\x67\x17\xe3\x07\x8f\x1e\x15\
\xce\x39\x31\xe8\x17\x42\x46\xe8\x7c\x47\x9e\x65\x8c\xfb\x23\x56\
\xeb\x0a\x2d\x25\xfd\x71\x9f\xa6\xb1\x80\x24\xd7\x19\xb9\x4e\x4c\
\xfb\x7d\x6a\xd1\xb1\xaa\x2a\x02\x81\x45\xd3\x60\x53\x60\x59\x55\
\x9c\x5c\xcc\xb9\xbc\x77\xc6\xd6\x78\xc8\x74\x6b\x8a\x12\x12\x29\
\x24\xbd\x7e\x8f\xa2\xcc\x37\x62\x96\xf9\x92\xf9\x6a\x81\xf7\x30\
\x9b\x2d\x38\x39\x39\x65\xb9\x5a\x12\x49\x28\x36\x7a\xb4\xe1\x60\
\xc0\x74\xbc\xc5\x9b\xdf\x7c\x8b\x9f\x7e\xf8\x09\x21\x7a\x92\x88\
\x44\x99\x70\x29\xa0\x93\x21\x24\x89\xd1\x1a\x29\x0d\x42\x84\x67\
\xb7\x37\x6c\xcc\x1f\x44\xc1\x72\x5d\xc9\xfb\xf7\x1f\x66\x67\xe7\
\x17\x3b\x5b\xe3\xc9\x78\x77\x67\xeb\xea\xee\xa5\x4b\xfb\x93\xed\
\xad\x89\xfe\xb7\x93\xfb\x2a\xcb\xfa\x8b\xd5\xe1\xa5\xb6\xf3\x2f\
\x75\xae\xfd\x7a\x57\x37\xdf\xa8\xea\xe5\xcb\xeb\xd5\xf2\xd2\xc9\
\xf1\xd9\xe8\xec\xfc\x22\x33\x46\x8a\xd2\x28\x51\x66\x0a\xad\x14\
\x22\xcf\x59\x5b\x87\x92\x02\x49\x62\x50\x16\xb4\xce\xe2\x7d\x22\
\x2f\x0a\x5a\x6b\x79\xed\xee\xab\xfc\xec\xe3\x4f\x19\x94\x19\x83\
\x22\xa7\xc8\x14\xe7\x0b\x08\x21\xb1\xaa\x1b\x1a\xa5\xa9\xed\x31\
\x67\x67\x73\x86\x83\x21\x57\xf7\x77\x36\xb7\xb7\xa4\x84\x7c\x36\
\x25\x58\xe7\x59\x57\x15\xb6\xf3\x54\x9d\x25\xfa\xb0\x31\xd4\xc6\
\x4d\x7a\xd6\xb9\xa6\xd7\x2b\x19\xf6\x4b\xde\xfc\xc6\xeb\x6c\x4d\
\x47\x54\x55\xbd\x69\x49\x52\x20\x48\x4d\xb0\x81\xa8\x12\x99\x14\
\x34\x55\x85\x12\x09\x9b\x22\x48\x89\x31\x86\xe0\x3d\x02\x01\x52\
\xe0\x9d\x15\x6d\x55\x89\x0b\xdf\x65\x6d\x53\x4f\x2e\x66\x8b\x57\
\x76\xaf\x5c\x39\xd7\x7f\x96\xaf\x7e\xb4\xee\xf7\x97\x3e\x5e\x09\
\xdd\xfa\x95\xd0\x35\xdf\xac\x56\xcb\x6f\xd8\xa6\xbe\xb3\x98\xcf\
\xf6\x8e\x4e\xce\xfa\xb3\xc5\xd2\xb4\xb6\x13\xd6\x3a\x11\x42\x46\
\x91\x69\x0a\xad\x9e\x89\x7f\x15\x36\x04\x44\x4a\x64\xb9\x61\xb1\
\xaa\x89\x02\x8a\x67\xd2\x29\xa3\x14\xbb\x57\xae\x33\xda\xde\xe5\
\x4f\x7f\xf4\x2f\x91\x28\xa4\x96\xf8\x98\xa8\xea\x06\x1b\x3c\xd1\
\x47\x5a\xdf\xe1\x5d\x60\xdd\x74\x34\x6d\x4b\x48\x89\x18\x03\xa3\
\x5e\x6f\x73\x0f\x07\x12\x21\x05\x49\x08\xaa\xba\x05\x21\x91\x5a\
\x90\xf7\x7b\x14\x52\x60\x94\x26\xcf\x34\xd7\xae\x5d\xe3\x95\xaf\
\x7d\x0d\xeb\x22\x27\x27\xa7\x40\x24\xb8\x88\xd2\x1b\xab\x77\x8a\
\x91\xb6\x6d\xe8\x15\x03\x10\x1e\x2d\x25\xd1\x27\x3a\x17\x28\x72\
\xb3\x59\x31\x26\x48\x3e\xd2\xb6\x2d\xc1\x1b\xe1\xa3\x94\x3a\x2f\
\x4c\xdb\xba\x81\xfe\xed\x5b\x7b\x7b\xf6\xc0\x5f\x3d\x11\xd5\x2b\
\x38\xfb\x56\x53\xad\xde\xea\x9a\xd5\x9d\x93\xe3\x93\x9d\xfb\x8f\
\x9f\xf4\xeb\xba\x95\x55\xd3\x49\x48\x9b\xad\x51\x96\x91\xc2\xe6\
\x56\x04\x6d\x0a\x22\x11\x11\xa1\xc8\x32\x5c\xf0\x48\x25\x18\xf7\
\x4b\x6a\xe7\x59\xd7\x6b\x48\x12\x29\xe1\x93\x9f\x7f\xce\xff\xf0\
\x1b\xff\x23\xd5\x6c\xc6\xd9\xe1\x13\x4c\xae\x91\x52\xb2\x5a\x6d\
\xcc\x62\xad\x73\x74\xde\x13\x62\xa4\x75\x8e\xd3\xd9\x92\x2c\xd3\
\x20\x22\x4d\x6b\x37\x2f\x20\x85\xcd\x26\x4b\x29\x74\xa6\x90\x49\
\x90\x65\x86\x7e\x99\xd3\xcf\x0c\xe3\xc9\x84\x5e\xbf\xcf\x5f\xff\
\xce\x77\x98\x5e\xbe\xcc\x8f\xff\xf8\x3d\x82\xed\x36\xec\x89\x12\
\xb8\x18\xd1\x42\x80\xd2\x44\xbf\x91\xec\x67\xf9\xe6\xc5\xea\x4c\
\x61\x9d\x63\xb1\x5e\x63\x94\xa2\x28\x72\x32\x63\x08\x3e\x10\x14\
\x44\x67\x71\xce\x8b\xce\x39\xa3\xdb\xa6\xfa\x6e\xdb\xd4\x77\xd7\
\xeb\xc5\x9b\xab\xd5\xf2\xba\x6d\xaa\xc9\xa3\x47\x07\xc5\xe9\x7c\
\xa9\x82\xf3\xc2\xfb\x40\x96\x67\x68\xbd\x09\xdf\x4c\x0a\xb2\x2c\
\xa7\x3f\xe8\xa1\x55\x4e\x5b\x37\x28\xa3\x19\x95\x05\x46\x49\x5c\
\x08\x5c\x2c\x16\xa4\xb4\xd9\x84\x4b\x21\x90\xc9\x70\xf0\xe8\x21\
\x41\xc0\xdf\xfc\x6f\xfe\x1e\xbf\xf3\x9b\x3f\xa0\x88\x1e\x9d\x69\
\x06\xbd\x8a\xd2\x64\xac\xea\x96\x59\xb5\xa6\xed\x5a\xb4\x92\x44\
\x91\x70\x3e\x90\x22\x1b\x6b\x77\x5e\xa0\x95\xa2\x75\x8e\xc2\x28\
\xa4\x90\x64\x99\x64\x38\xe8\x33\xec\x97\xf4\x8a\x82\xc9\x74\x9b\
\x5f\xf9\x9b\xff\x31\x97\x6e\xdc\x80\x2c\xe3\x8b\xcf\xef\xa1\x73\
\x8d\x73\x1e\xad\x0d\x19\x09\xe7\x36\x7f\x53\x2b\x89\xd0\x80\x88\
\xe8\xbc\xd8\x8c\x64\x09\x64\xf4\x68\x5d\x90\xc2\x46\x53\x9c\x15\
\x06\xef\x1d\x52\x68\x11\x63\x10\xde\x3b\xa3\x0f\x1f\x3d\xfc\x07\
\xe7\xe7\xe7\x3b\x07\x67\x27\xe3\xe5\x62\x69\xba\xa6\x91\x3e\x78\
\x11\x43\x62\x34\x1c\x6c\x3e\xb8\x0f\xcf\xfc\xe8\x9e\xc6\x45\xe4\
\xa0\xc4\xd9\x00\xb9\x47\x68\x8d\xeb\x2c\xce\x4a\x9a\xe4\x29\xca\
\x9c\x9d\xed\x31\x4d\xe7\x68\x1a\x47\x6b\x1d\xd6\xb6\xac\xe7\x4b\
\x1e\x7d\x76\x8f\xdb\x5f\x7f\x9b\x6f\xfd\xe7\x7f\x87\x3f\xf9\x3f\
\xfe\x09\x22\x40\xd9\xeb\x6d\xf4\x70\xc3\x1e\xa3\xaa\x60\xdd\x34\
\xac\xdb\x1a\xa1\x35\x5d\xbb\xf1\xb5\x2b\xa5\xe8\xe5\x05\x84\x40\
\xbf\x2c\x48\x24\x8c\x51\x64\x99\xa2\x57\x16\x8c\x86\x23\x76\x77\
\x2f\xf1\x8d\x5f\x79\x9b\x9b\xaf\xbe\x8a\x43\xa2\x54\xc6\x67\x9f\
\xfe\x8c\xdc\xe8\x8d\xe7\x21\x3a\x04\x0a\xa9\x05\x1a\x0d\x42\x10\
\x3a\xcb\x68\x30\xc4\x05\x4f\x40\xa0\xa4\x26\xc6\x82\x80\x43\x25\
\x49\xbd\x6c\x19\x4f\xc6\x24\x91\xb0\xde\x93\xfb\x20\x84\x90\xe8\
\x9f\x7e\xf4\xe1\x4b\xab\xd5\x5a\xd7\x4d\x23\x84\xd8\xc8\x2c\x12\
\x62\x63\x87\x4e\x11\x99\xd2\xc6\x11\x12\x37\x97\x58\x4e\x86\x3d\
\x94\xd2\xd8\x10\x48\x2e\xd0\xef\xe5\x2c\xad\x25\x05\x8b\x12\x82\
\xae\xb3\xf8\x14\x29\xf3\x9c\xf4\xec\xd8\x5e\xac\x96\xd4\x75\xc5\
\xe7\x1f\x7f\xc4\xed\xaf\xbf\xc9\xcd\x37\xdf\x26\x7a\xc7\x4f\xfe\
\xc5\x3f\xa7\xa9\x2b\x32\xad\x89\x21\x30\x1a\x16\x1b\x3d\x6f\xd3\
\x71\x32\x9b\x53\x68\x45\x3f\xef\x91\x65\x86\x2c\xdb\x6c\x96\x84\
\x48\xd4\x75\x4b\x92\x9b\x68\x31\x46\x73\xfd\xd6\x2d\xbe\xf1\xed\
\xb7\xb9\xb4\x7f\x0d\xa4\xc6\xe4\x39\x67\x47\xc7\xff\x4f\x3b\x67\
\xd3\x23\xc9\x51\x84\xe1\x27\x22\x3f\xaa\xba\x7a\x7a\xc6\x33\x66\
\xf1\xfa\x6b\x67\x2c\x1b\x04\x3e\x18\x6c\x81\x97\x13\x07\x73\x05\
\x9f\x90\xb8\xc0\x2f\xb5\x25\x90\x10\x18\x0b\x19\xc1\x82\xb4\x0b\
\x36\x1e\xaf\xd9\x5d\x2c\xc6\x9e\x65\x76\xa6\xa7\xbb\xaa\x32\x23\
\x38\x64\x23\xf1\x1b\xd0\xc6\x3f\xa8\xac\x54\xe6\x1b\x19\xef\xfb\
\x70\xf6\xf0\x21\xa5\xec\xe4\x44\x75\x66\x2f\x4d\x9f\x25\xa1\xd6\
\x82\x21\x5c\xcf\x13\xe2\xc2\x3c\x4d\xa4\x18\x29\xf3\x88\xab\xe3\
\xa1\x39\x8c\xd6\x9b\x2b\x34\x44\x72\x4a\xc4\x10\x30\xf3\x10\xc7\
\x71\x0c\x8a\x8b\x8a\x48\x4e\x81\xcd\xd8\x78\x18\x68\x68\x6e\xa0\
\x62\x48\x69\x11\xe8\xa4\x81\xb9\x54\x54\x61\x58\x2c\x1a\xba\x61\
\x33\xe2\xd0\xce\x97\x94\x19\x6d\x66\x5c\x5f\xd3\x85\x80\xd5\x02\
\x0a\xcb\xc5\xc0\xfa\x7a\xe4\xfe\xc7\xa7\x6c\xd7\x5b\xfa\x41\x38\
\xf9\xee\x9b\x74\x7d\xcf\x47\xef\xbf\xc7\xf9\x57\x67\xa4\x10\x80\
\x48\xce\x1d\xab\x61\x20\xa5\xcc\x30\x64\xa2\x46\xba\xbe\x63\xaa\
\x33\xdb\x71\x66\xda\x4c\x54\x73\xae\x37\x23\xee\x91\xef\xbc\xf5\
\x7d\xde\xfe\xc1\xdb\xec\x1d\x1d\xed\x44\xbf\x20\x29\xf2\xc7\xdf\
\xff\x81\xea\xb6\xc3\xf9\x44\x10\x27\xaa\xb4\xcb\xc5\x6d\xc7\x7b\
\x12\xd4\x1b\xbe\x6c\xde\x4e\x58\x29\xe4\x3e\x62\x3b\xbb\x69\x35\
\xa8\xa6\x2c\x86\xc8\x22\x67\xef\x52\x26\x88\x6b\x44\x9a\x10\x1d\
\xba\x8e\xd9\xad\x2d\x80\x2a\x88\x30\x4e\x85\x3e\x34\x97\x74\x0c\
\x81\x52\x0a\xdb\x69\xc3\x6a\xf5\xec\x2e\x50\x26\x60\xc6\xd1\x6a\
\x0f\xcd\x91\xeb\xf5\x9a\x54\x94\xb4\xbf\xbf\x43\xde\x18\x49\x23\
\x84\xc2\xf5\x34\x72\xfa\xe9\x27\x9c\x7f\xf1\x90\x17\x5e\xfd\x06\
\xe2\xca\x0b\xdf\x7a\x9d\xc3\x9b\x37\xb9\xf7\x9b\x5f\x73\xef\x2f\
\x77\x28\xe3\xc4\x6a\xd5\xe6\x9c\xdd\x30\xb0\xbf\xbf\x87\x46\x6d\
\x76\x52\x0f\xfc\xfb\xf1\x39\x67\xf3\x39\xe6\xc6\xc9\xc9\x09\x3f\
\xfd\xc5\xcf\x39\x7c\xee\x06\x22\x0e\x2e\xad\x27\x74\xc7\x36\x1b\
\xee\x7c\xf4\x21\xe2\x2d\x0a\x39\xbb\x13\x35\x10\x52\xc2\xa6\x99\
\xea\xa5\x61\x2e\x82\xe0\x62\x5c\x5d\x5d\x61\x22\x74\x5d\x46\x67\
\x63\xb2\x0a\x66\x68\x00\xf5\x99\xf5\xb5\xe1\xd5\x64\xf5\xcc\x21\
\x39\x27\xe2\x22\x45\x7b\x32\x15\x29\x66\x22\x48\x53\xcc\x51\x48\
\x31\x52\xdd\x19\x4b\x61\x11\x3a\x42\x0c\x54\x6b\x78\x87\xed\x66\
\x22\x75\x89\x2e\x0b\x31\x29\xd3\x34\x11\x05\xa2\x04\x66\x6f\x3b\
\x51\x11\x16\x5d\xa0\x52\xc9\x2a\x5c\x6f\x84\x47\x8f\xfe\xc9\xa7\
\x77\xff\xca\xf3\xc7\xc7\x20\x06\x04\x16\x07\xcf\xf2\xe6\x4f\x7e\
\xc6\x4b\xdf\x7e\x9d\x8f\x3f\xfc\x1d\x8f\xbf\xfa\x12\x15\x65\x31\
\x2c\x91\xa8\xad\xdd\xaa\x85\xed\x66\xcd\xe3\x8b\x4b\xfa\xbd\x3d\
\xde\x7d\xe7\x1d\xde\xb8\x7d\x1b\x5d\x2c\xa0\x54\x7c\x1a\x91\xd4\
\xe1\xb4\x36\xe9\x6f\x77\x3f\xe1\xc1\x67\x0f\xb0\x5a\x98\xb6\x2d\
\xe2\x6d\x6a\x94\x71\xdb\xf8\x6d\xc5\x5b\x76\x5e\x02\x3e\x57\xea\
\xce\x44\x58\xea\x04\xa5\x10\x52\x26\xf5\x4b\x6c\x2e\x94\x22\x24\
\x51\x84\x48\x29\x45\x44\x2c\xc4\x7e\xb9\x2c\xd5\x91\xed\x28\x58\
\xa9\xa2\xb9\xa3\x8a\x51\xaa\xa1\x1a\x08\xa9\x25\xe7\x54\xa0\xeb\
\x84\x5e\x23\xb9\xeb\xbd\x8a\x33\x4e\x95\xaa\xd0\xe5\x9d\x6d\xaa\
\x8b\x2c\x04\xcc\xbd\x01\x94\x4c\x1b\xe4\xd2\x8c\xdc\xf5\x12\x83\
\xf8\x07\xef\xbf\xc7\x5b\xb7\xbf\x57\x87\xa3\x43\x77\xab\x82\x98\
\x7b\x75\x6e\xbc\xf6\x4d\x6e\x1c\xbf\x22\x8f\x3f\xbf\xcf\xd9\xfd\
\xcf\xe5\xfc\x8b\x07\x72\x75\xf9\xa4\x31\x8b\xfa\x25\x07\x2f\xbe\
\xe4\x6f\xfc\xf0\x98\x17\x6f\xdd\xf2\xbc\xb7\xd7\x12\xc7\xb5\x20\
\x56\x5b\x94\x5b\x40\xa4\xfd\xe8\xbb\x7f\xfe\x93\x8e\xdb\x6b\x09\
\x31\x92\x52\x14\x11\xc5\x68\xec\xc8\x62\x33\x24\x21\xd0\x68\x0c\
\x49\xa3\xe7\x45\x64\x2a\x95\xa0\x82\xe5\x28\x31\x04\x67\xe7\x00\
\xb0\x6a\x88\x40\xec\x92\xbb\x88\xe1\x62\x71\xb5\x7f\xf8\x65\xcc\
\xcb\x7e\x59\xa6\x38\xce\xa3\x2a\x4d\xaf\x20\xd2\xe2\x7e\x39\xba\
\x98\x37\xe2\x8a\x04\x0e\x56\x0b\xab\xc5\x18\x8b\x09\xee\xf4\x5d\
\x76\xcc\x58\x2e\x17\x26\x0a\x65\x2a\xe2\xde\xd2\x75\xd5\x4c\x40\
\xbd\xd4\x22\x66\x15\x77\xb8\xb8\xbc\x94\x0f\x7e\xf9\xab\xcb\x1f\
\xbd\xfb\xe3\x4b\xc9\x9d\x7b\xad\x22\xea\x8e\x19\x04\xe5\xf0\x95\
\x13\x0e\x5f\x3e\x96\xf1\xea\x89\xae\xcf\xce\x82\xd4\x22\xb9\x1f\
\x6c\xb1\xbf\x32\xed\x7b\x47\x83\x7b\x99\x05\x71\xc4\x5c\x88\xc9\
\xdb\x99\x02\x48\xf4\x8b\x8b\x8b\x70\xfa\xf7\xcf\x8e\xf6\x0f\x8f\
\x52\x88\xea\x79\x39\x2a\x2e\x8e\x04\xac\x16\x21\x04\xff\x2f\x9b\
\x4f\x72\xf4\xe4\x82\xab\x30\x4e\x93\xf4\x29\x79\x35\x47\xf0\xa6\
\x05\x95\xf6\x16\x88\x4b\xd7\xf5\x25\x77\xc3\x05\x92\xce\xe2\xd1\
\xcd\xe7\x7e\x5b\x4a\x1d\x6a\xb5\x64\xd5\xa4\x54\x44\x81\xa0\xe2\
\xaa\x6d\x32\x6a\x8d\x61\x26\x51\x82\x77\x5d\x5f\xa2\xc3\x54\x4c\
\x52\x56\x57\x81\x9c\xd4\x8b\x9b\xc4\x18\x6d\xda\x16\xc5\xa0\xcb\
\xb9\x6e\xcb\x14\x54\xd4\x43\x82\x79\x32\x31\x33\x11\xe0\x1f\xa7\
\x0f\xa6\x7f\xdd\x3f\x7d\xf4\xb5\x93\xd7\xd6\x1a\x82\x53\x76\x5f\
\xad\x86\x21\xa8\x0a\xdd\xfe\x81\x74\x7b\x07\x58\xad\x42\x99\x04\
\x33\x99\xd7\xeb\x90\x86\x65\x91\x36\x2c\x85\x18\xff\xe7\x81\x4b\
\xdd\x04\xee\xdd\xb9\x7b\x94\x72\xf7\xf5\xe7\x5f\xbe\x25\x22\xea\
\x65\x2e\x5a\x0b\xbb\x9d\x08\x60\x32\x3b\x08\xea\x60\xd2\x77\xab\
\x49\x22\x6c\xaf\x37\x31\x04\xf5\x14\xa2\xb9\x17\x35\x03\x8d\xea\
\x66\x26\x56\x4c\x52\x08\x75\x18\xfa\xc7\xc3\xde\x70\xca\xd3\x7a\
\x5a\x4f\xeb\x69\xfd\x1f\xd5\x7f\x00\x7a\x3f\x6c\xef\x64\x6a\x28\
\xa6\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x0b\x8a\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x4d\x00\x00\x00\x57\x08\x06\x00\x00\x00\x41\x44\xc8\x4d\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\
\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x04\x0e\
\x0f\x32\x12\xf9\x2f\x54\xb0\x00\x00\x0b\x0a\x49\x44\x41\x54\x78\
\xda\xed\x5d\x3d\x6e\xe3\x3a\x10\x26\x8d\xd4\x2a\x54\xa9\x0c\xe0\
\x2e\x2d\x53\x2c\xe0\x33\xb8\xdd\x26\xbd\xdc\x3d\xe0\xe5\x02\xeb\
\x13\x2c\xb0\xe9\xa4\x3e\xc5\x6e\xeb\x33\x18\x48\x61\xb6\xe9\x0c\
\xa4\x74\xa5\x42\x17\xd0\x2b\x68\x86\xc3\xe1\x0c\x49\xc9\x72\x16\
\xbb\x2f\x04\x04\x39\x12\x45\x4a\x1f\xbf\xf9\x25\xa5\xc8\x61\x18\
\xc4\x67\x19\x57\x6e\x52\x15\xa4\x7c\x54\x42\x3c\x1c\xfe\x6e\x18\
\xf6\xed\x30\xfc\xb3\xc9\xad\xbd\x48\x57\xf9\xd2\xfc\xfd\xdc\x59\
\xd5\x86\x1c\xb3\x81\xb6\x54\xff\x0f\xa1\x2b\xe6\x04\x0d\x96\xa3\
\x9e\x76\xee\x92\x6b\x7f\x57\xbb\x17\x81\x66\x1b\x3f\x6a\xc7\x3a\
\x78\x0c\x9f\x4b\x9d\x9f\x7a\xee\x5a\xed\x8e\x07\x2f\x53\x3c\x71\
\x27\xf0\x18\xdc\xe7\x9c\x9f\x72\xee\x92\x6b\x73\xcf\xcd\xce\x34\
\x0e\x30\xee\x86\x38\x96\xe2\x9b\xcb\x1d\x90\x9c\xfe\x73\xda\x4d\
\x9d\x9b\xc9\xe5\x88\x8f\x98\x3d\x86\x8f\x9f\xb4\x10\x1d\x7a\x90\
\x93\x12\xa2\x4a\x00\x1c\x63\x44\xac\x7f\x6a\x90\x39\x36\x51\x60\
\x8d\x63\xda\x4d\xbe\x4e\xcb\xa1\xf6\x51\x0b\xf1\xda\x0a\xd1\xeb\
\x71\x62\x9f\x23\xda\xb9\x62\x87\x41\xe0\xea\xe3\x67\x7b\x9d\x5b\
\xa7\x71\xa2\x81\x69\x6f\x00\x1b\x86\xef\xde\xe6\xda\xea\x74\x5c\
\xfc\xc7\x00\x48\x89\xbd\xd5\x7f\x31\x51\xa4\xea\x5d\x9d\x69\xdc\
\xb1\xfd\x3b\x60\x74\x3b\xbd\x76\xbe\xd0\x09\x5d\x1f\x13\x45\xce\
\xfa\xd9\x3a\xfb\x36\xad\x56\x52\x22\x3e\xbb\xf5\xa4\xc4\x90\xa2\
\x77\xc7\x02\x16\xb2\xad\x52\xf1\xc1\xa1\x1e\x94\x1b\xd0\x4e\x9b\
\x10\xe8\xad\x35\x5b\x77\xd6\xa9\x31\x9d\x47\xf5\x37\x3b\x68\x78\
\x44\xa8\xbf\x8d\x1e\x8b\x87\x23\xbd\x16\xa2\x54\x8e\x69\x94\xe5\
\x3a\xea\x3c\x47\xd4\xa8\x83\x61\xd8\xb6\x76\x60\xc2\x41\xe3\x06\
\x9b\x6a\xbb\xd7\x33\x83\x96\x2a\xa7\x77\xd1\xa3\xd8\xe6\x80\x2c\
\x94\xaf\xd7\x2e\x09\xd1\xdc\x40\x85\x03\x63\xd9\x36\x26\x0a\xb8\
\x5a\x18\xc5\x95\x4a\x09\xd1\x6b\x8e\x65\x3e\x90\xa5\xf2\xc5\x33\
\xa5\x57\x5e\x5b\x7e\xa0\xb8\x52\x5e\x35\x5e\x5e\xcc\xd7\x94\x19\
\x29\x0b\x1c\xdc\x87\x60\x9e\x32\x1d\x4a\xeb\xbe\x70\xc0\xf9\xea\
\xc0\xfd\xb6\x7a\x73\x8c\xe3\xfa\x5b\xc4\xb3\x7c\x17\x4f\x0c\x5c\
\x48\xff\x2a\xd3\x72\x59\xc6\x50\xcc\xa9\x14\x1c\x28\x5f\x05\x94\
\x2a\x6d\x5d\xaf\x2e\x9e\x50\x14\xa8\xdf\xd5\xfb\x0d\x4b\xb9\xad\
\xc3\x9b\x29\x54\x28\x9a\x58\x49\x73\xed\xde\xd6\xee\x1a\x5c\xa7\
\x04\x6d\xdb\x7e\x6c\x1f\xb6\x7d\x7c\x2d\xf7\x2c\xf9\x4c\xbb\xc9\
\x03\x0c\x76\x9c\xfa\xdd\xe9\x70\xd4\xec\xc8\x43\xc0\x2e\xe9\xe3\
\x84\xdc\x96\x12\xb1\x18\xeb\x4a\x58\x9f\x6b\xaf\x50\x42\x08\x3d\
\x13\xd3\x2a\xe5\x8f\x7c\xec\x77\xa5\xfc\x07\x28\x55\x08\x18\x34\
\x00\xb9\xed\xc6\x7e\xc3\xb6\x2b\x45\x4b\x88\xad\x0f\xd9\x86\xc1\
\xbb\x0a\xd3\x28\x80\xa8\x3a\x95\xa2\x9d\x57\xec\xb8\xda\xba\x56\
\xd9\xdf\xd6\x74\x7f\xd4\xc3\xe3\xfb\x38\x69\x1a\x30\x5c\x9f\x03\
\x6c\x1c\xd3\x6e\xf2\x99\x46\x75\xc4\xed\x31\x03\xdc\x04\x46\x58\
\xd7\x84\x5e\x52\x6e\xd1\x83\x57\x4a\x88\x97\x8d\x3f\x4f\x91\xba\
\x0f\xaa\x5f\xc8\x32\xac\xdf\xe0\xf5\x6f\xed\x15\x99\x66\x5d\x81\
\x52\xb9\x3d\xa5\x33\x28\x5f\x0a\xb6\xc3\xf9\x59\xb0\x4e\xa1\xd2\
\x8c\x4f\x0d\x24\x35\xf8\xb1\x7a\xe9\x22\x53\xf3\x9e\x52\x3e\x35\
\x7e\x86\xa2\x8f\x28\x7a\x4a\x0c\x62\x0f\x0b\xe3\xd1\xbb\x3a\x2e\
\x86\x9d\x76\x7d\x43\x3d\x49\x01\xc3\x01\x15\xab\xf7\xb2\xe1\x93\
\x0d\x93\x40\xeb\x74\x5c\x51\x16\x2a\xb4\x92\xd0\xa5\xa0\x46\x92\
\x02\x8f\x1b\xf5\x4e\xdb\x18\xd3\xdc\xd3\xb6\x36\x20\x73\x92\xc0\
\xb5\x13\xab\xe7\xf7\x31\x59\x3c\xcf\x0e\x63\x4b\x85\x43\xf1\xc0\
\x3c\xa5\xc4\x39\x20\x29\x10\xa9\xa4\x66\xaf\x7d\xa3\x83\xaf\xe3\
\xc4\x2d\x56\x6f\xe6\x88\x00\x67\x10\xa4\x7c\x54\xfe\xb1\x5e\xd3\
\x49\xc6\xa5\x12\x62\x55\x9b\xe3\xaf\x6d\x68\x18\x6c\x2a\x87\xb3\
\xb6\x2e\xd2\xc8\x1b\x2c\x0c\xf8\x07\xc7\x9e\xb1\x9b\xa3\x65\x9f\
\x02\xce\x39\x98\x86\xfa\x78\xa4\xa1\x9b\x91\xd0\x23\x64\x48\xb6\
\x54\xf9\xac\xba\x72\x18\x05\x6f\x30\xa5\x1c\xc3\xf3\x25\x32\xeb\
\x47\x2d\xc4\xba\x71\x6d\x56\x6a\x7c\x46\xc2\x84\x48\xa6\x0d\x18\
\x2a\x61\xd6\x5e\x52\x66\x12\xcf\x1c\x6b\x62\x45\x95\x9f\x07\xb0\
\x0e\xad\x8d\x21\x4f\x13\x52\xcc\x36\xb2\xb8\xad\x7d\xc0\xf6\xad\
\xf8\x0d\x65\x91\x2f\x12\x3c\xb0\x74\x3d\x1c\x03\xfa\x96\xca\x6d\
\x94\xee\xb1\xac\xe9\x88\xc1\x80\xce\x2a\x3c\x7f\x5b\x87\x6e\xcc\
\x87\x82\xc6\x67\x61\xd3\x4c\xc3\x3a\x05\xce\x0c\x39\x5f\xcf\xe8\
\xb8\x1e\x19\x88\x4e\x87\x2e\x8c\x3d\x66\x7f\x9f\x50\x42\x93\x02\
\xb6\x03\x06\xa4\xd3\xfc\x00\x74\xf3\x4e\xac\xf0\x0c\x0a\x01\xf3\
\xeb\x95\x91\x89\x8c\x52\x09\xf1\xd6\x5a\x90\x1d\xd8\x54\xb0\x4f\
\x3d\x3c\x05\x04\x3e\xdf\xe9\x30\x69\x20\x84\xf3\xeb\xe0\x6f\xdc\
\xde\x85\x61\x14\xcf\x20\x0e\xd8\x02\xdd\x3c\x97\x06\xa2\x02\xe3\
\x8a\x00\x86\x02\xcf\xee\xe1\x6f\xee\x18\xd7\x06\x95\x5a\xb2\xfe\
\xa0\x98\x1e\x11\x50\x0c\x8b\x4f\x98\x40\x40\x4a\xe0\x70\xae\x6a\
\x7f\x8e\xd1\xa6\xad\x7b\x24\x86\x30\x84\xc2\x60\x60\x20\x3b\x42\
\x3c\x29\xa0\xa8\x70\x2f\x16\xf6\x99\x98\x3a\x27\x2a\x58\xa4\x7c\
\x16\x2a\x0a\xa0\xc1\xa2\x82\x6b\x98\xa3\x87\x8e\xea\x6d\xed\x03\
\xc6\x31\xaa\x43\x86\xc3\x8a\x30\xc7\xac\x5e\xbb\x8d\xfa\x9b\x02\
\x1e\xea\xc8\x75\x13\x66\x9e\x47\xc4\x9e\xe6\x62\xbf\x33\x5a\xcf\
\x15\x2a\x2f\x43\xbb\x6f\x79\xf6\x60\xc0\x1c\x1b\x5d\x9f\x18\x64\
\x68\x3d\x43\x1f\xcb\x5e\x17\xde\x73\xec\x7e\xed\x3d\xef\x36\x31\
\xc6\x25\x40\x4b\x39\x7e\x39\x37\x00\x01\xa3\xc4\xa4\x23\x9c\x63\
\x67\x2c\x7c\x96\x53\xc0\xf9\x4e\xad\xbd\x0e\xea\xe4\x10\xbc\x9c\
\x81\x7e\xbe\xe7\x74\x7a\xc4\x7a\x42\xa4\xf1\xe4\x05\xd7\x31\xe5\
\xd4\x52\x7a\x88\x03\x8c\xf7\xec\xe9\x07\x78\x6b\xb9\xf8\x18\xff\
\x4e\xfb\x9c\x27\xb4\x5c\x81\x5f\xd1\x3e\x62\x0a\xaf\xc8\xa0\x38\
\x35\xd3\x64\xbd\x76\xca\x75\xb8\xab\x43\xf7\xa0\x50\xbc\xd1\x81\
\xcb\x1a\x5e\x5b\x8a\x5d\x9c\xb1\xf2\xdb\xec\xb3\xd6\xf1\xba\x5c\
\xe2\xe4\x24\x24\x65\xba\x29\xb7\x01\x2f\xd4\xc3\x16\x13\x5a\x59\
\x9c\x64\xf4\x75\x19\xaf\x32\xca\xf7\xf4\x74\x76\xe2\x30\x4b\x44\
\x71\x2e\x70\xa9\x86\x41\xc9\x09\x4c\xc3\x22\x04\xad\x9d\x65\x17\
\xc5\xb0\xdd\xc6\xe5\xc2\x7a\x1d\xa6\x92\x3a\xed\x87\x46\xe5\xfb\
\xc3\x60\x71\x72\x93\xc1\xbd\x86\x80\x5d\x16\xee\xf5\x91\x24\xa5\
\xb3\xfa\x94\x35\xcd\x14\xcf\x0e\xc5\x79\xd5\x39\x4f\x06\xf5\x17\
\x5c\x3a\xba\xdb\x70\xfa\x28\xcc\xc1\x59\x5d\xe2\xda\x83\xac\xa0\
\x2d\x5f\xa1\xb0\x85\x9c\x92\x17\x0c\x89\x01\x9d\xde\xa3\xe6\xf4\
\x75\x86\x78\xc6\xfc\x96\x54\x18\xc2\x2f\xf2\x0b\xd3\x3c\x76\x09\
\x41\x47\xe8\x1e\x1c\x8b\xf2\x22\x3c\x2e\x01\x51\x28\xde\xd9\x5d\
\x02\x5f\xd5\x17\xd1\x09\x6b\x39\x7a\xcd\x33\x30\x2f\x3f\xe5\xdf\
\x7c\x07\xac\x56\x85\x1e\x82\x5a\xd2\x30\x35\x93\x8b\x99\x56\xa8\
\x78\x3a\xeb\xc8\xa6\xf6\x17\xe3\x81\x2a\x94\xef\x71\x73\xfb\x22\
\x91\xf9\x2d\x22\x8b\x5b\xde\xce\x53\x83\xd6\xba\xde\x05\xeb\x43\
\xc6\x8a\xa6\xaf\x1b\xf1\x33\x95\xcc\x0a\x71\x3a\xab\xbb\xc8\x03\
\x0c\x03\x65\xff\x86\x7b\x08\x68\x11\x65\x83\x53\xea\x94\x5f\x67\
\xaf\xef\x80\xe5\xb5\x7b\x37\x95\x37\x86\x61\x69\xa6\xf1\x6e\x07\
\x05\x6a\x06\x68\x14\x40\xd4\xbe\xd7\x31\x51\xb4\xa3\x4c\x2f\x89\
\x82\x0e\x26\x6e\xcf\x5a\xca\xb7\x20\xaa\xc8\x73\x5a\xb9\xb8\xb9\
\x4f\x4c\xf1\x41\x11\xf5\xfb\x1d\xc9\x34\x9a\x49\x34\xb8\xb1\xd1\
\x2c\x08\xbf\xc8\xde\x1c\xbc\x96\xea\x9b\x4e\x5f\x71\xe0\x41\xe7\
\x96\xb6\xc4\x25\x91\x68\xc0\x4b\xe9\x7b\x3d\x91\x69\x18\xc0\x1c\
\xf6\x41\x65\x0e\xb7\x92\x98\x1c\xd9\xb7\xf1\x01\xa0\x41\xa7\x40\
\xc1\x13\x43\xb4\xd5\xe4\x98\x16\xea\xb4\x20\x0e\x4e\xbb\x1c\x78\
\x74\x30\x13\x52\xc5\xe6\xee\x3b\xcd\x07\xc8\xd6\xd5\xe0\x80\xa2\
\xd8\x1b\xcf\x6c\xe4\xb1\x2c\x95\x68\x30\x00\x0e\xc3\xd7\xfb\x09\
\x4c\xa3\xfc\x26\xfc\x10\xdc\xde\xea\xa2\xbb\xf3\x52\x02\x1c\x41\
\xec\xcf\xeb\xff\x39\xcb\x8b\x41\xec\xc9\x30\x0e\x33\x8d\x17\xdd\
\x54\xa2\x01\x97\x70\xbd\xef\x08\xa6\x15\xa3\x16\xbe\xc5\x07\xc0\
\x77\x52\xf3\xdb\xa6\x74\x6a\x3f\xd2\x38\x70\xae\x0e\x97\x9e\x0f\
\x53\x44\x23\xc5\x73\x2a\x50\xfd\x15\xa6\xd3\x6e\xeb\xf4\xc2\x9c\
\x98\x31\xe2\x52\xde\x7e\xe2\x94\xfa\x20\xc0\x8d\xb8\x7a\xe9\xaf\
\x34\xff\xd8\x45\x2c\x34\x65\x81\x73\x01\x83\x46\x80\xce\xed\x2d\
\xc4\x1f\x5b\x7a\x26\x45\x65\x41\xe2\x92\xa5\x1c\x60\x98\x69\xbb\
\xcd\xe8\xcc\xed\x9f\x51\x6c\xb8\x15\x13\xc7\x32\xa1\xc3\x38\x8b\
\xc9\xcf\x11\x5c\x05\xb4\x58\xda\x39\x9d\xc2\xce\x6b\xd7\x17\x53\
\x98\x01\x86\xb3\x55\x9c\x38\x62\x91\xf4\x5f\x73\xc4\x2e\xc6\x64\
\xd0\xf0\xac\x78\x6c\x4f\xf9\x47\xd8\xaa\x51\x7f\x8f\x69\xd7\xed\
\xe1\x6b\x40\x38\xb0\xa7\xd8\x75\x4a\xbc\x75\xfc\x92\xfc\x12\x8c\
\xcc\xf9\xd6\x10\x7e\xf0\x1c\x00\xb8\xbf\xa9\xdf\x53\xaf\x0f\xff\
\x2e\x54\xb8\xac\x94\x2b\x61\x5a\x3e\x77\xf9\xa8\x18\x86\x21\xba\
\x09\xf1\xaf\x82\xbf\xed\x06\xcf\xe5\xec\xf1\x31\xee\x7c\xea\xef\
\xbc\xfe\xbf\xd5\x42\xfc\x3c\x84\xdb\x61\xf0\xb7\x1f\x8d\x10\xdf\
\xea\x14\x06\x78\xcb\x76\x39\xb0\x57\x2d\xe5\xa3\x88\x85\x31\x78\
\x4f\x4d\x6e\xc4\xc2\x1e\xee\x6f\xae\x2d\x9b\x09\x96\xf2\x51\x0c\
\xc3\xf7\x56\x08\xd1\xfa\x73\xa5\x42\xb8\x97\xfb\xfd\xcc\xef\xd8\
\xbc\xdc\x4d\x1e\x60\xbf\x0e\x42\x7c\x11\xd4\x6b\x80\x52\x3e\x81\
\x1b\xa4\x44\xae\x50\x52\xea\xf3\x1c\xe2\x6d\x2b\xe5\x63\xeb\x83\
\xf2\x70\x90\xd2\xde\xef\x83\xed\xef\x7c\xe0\x56\x0b\xf1\xd6\xe2\
\x87\x72\xed\x6f\x6b\x21\x1e\x1a\x9c\x07\x93\xf2\x97\xb0\xba\x69\
\x18\xb6\xad\xa9\xb7\x6e\x9c\x28\x9a\xe5\xef\x1c\x58\x7e\x7d\xc2\
\xc1\x8d\x8b\xe6\x8f\x26\xa4\x34\xb7\xfd\x68\xb0\xf8\x39\x51\xe1\
\xeb\xe4\xb5\xfd\xad\x0e\x45\x30\xe7\xde\xa0\x28\x43\xf1\x0c\xdb\
\xf3\x55\x81\xad\xf7\xf3\x80\xcf\xb3\xe2\x69\x18\xf0\xa5\x11\x62\
\x95\x78\x09\x0c\x2a\xd4\x55\x2d\xe5\x93\x18\x86\xef\x1b\x34\x79\
\x22\x52\xd9\x08\x3a\x5b\x0a\x59\xbd\x6e\x84\x78\xbe\x77\xd7\x6e\
\x6b\x21\xd6\xb5\x9f\x56\x82\x4b\xbc\xec\xb5\x5f\x1a\xe7\x3e\xbc\
\x6c\x84\x58\x1e\xa8\xf6\xe8\xac\x8c\x09\xd6\x49\xb1\xa5\x19\x86\
\x95\x26\xaf\x2c\xfd\x11\xa7\x94\xbd\xcf\xb4\x70\x64\x5d\x3f\x61\
\xdb\x21\x93\x29\xd6\x84\x4c\xf9\x79\x80\xc7\x7d\x03\xe1\x58\x44\
\x1b\xa4\xf0\x3c\xde\x16\x84\x8e\x6a\xfc\x51\x7e\xbe\x8f\xc5\x8f\
\x46\xde\x77\x9b\x61\x50\x32\x5c\xe1\x98\xeb\xa0\x72\x05\xce\x9f\
\x56\x2a\x27\x81\x60\xe6\x01\xbe\x7a\xf7\xec\xcf\xb5\x3a\xbf\xcc\
\x4e\x4f\xba\xf3\x70\xfd\x06\xef\xaf\x11\xce\x2d\x9c\x04\x36\xf1\
\x57\x7a\x45\xe4\xf6\x03\x56\x59\x9f\xc0\x80\x2c\xb3\x66\xd4\xe9\
\x63\x30\x3f\xb6\x6e\x7c\xb2\xc0\xec\x06\xff\xcc\x8b\xd0\x6a\xe4\
\xc5\x5f\xbf\xb7\xec\xbd\x07\xcf\x59\x88\xe7\x0f\x30\x9c\xd3\xb4\
\x60\x59\xb2\x1c\x75\xea\xfb\x90\x8b\xd4\xc8\x7e\x64\x31\x19\xd7\
\x6d\x6d\xf6\x4f\x0d\x64\x02\x9c\x11\x0a\x1f\x6a\xdd\x48\xf9\xeb\
\x90\x9b\xfb\xf3\x63\xcb\x55\x6d\x5c\xaa\xb4\x58\x32\x7e\x5a\x19\
\x99\x75\xfe\x88\xc2\xad\x09\xa3\x58\xff\x7c\x6f\x2c\x3c\x5c\x72\
\xbf\x3c\x18\x1f\x2f\xe7\x35\xc4\xdd\xc6\x0d\x8a\x5b\x7c\x98\xa3\
\x73\x17\x7c\xba\x24\x9e\x3c\x34\x23\xab\x07\x7a\x7b\x9a\xf1\x8b\
\xa5\xbb\x0d\x95\x75\x70\x0a\x7f\xb7\x09\x63\xca\x87\x43\xea\x1e\
\xb0\x98\xe6\x88\x25\x03\xda\x29\xf2\x06\xc8\x94\xac\xea\x98\x72\
\x3c\xaf\x36\x7a\xbe\xb7\x9b\xb1\xc8\x71\xbd\x3a\x0c\xdb\xd6\x2c\
\x50\xc1\xaf\xfc\xac\xea\xf4\xe0\x41\xa3\x70\x9a\x1a\x46\x8d\x79\
\xd8\xd7\xd6\x7c\x7d\x0f\xb2\xf4\xb2\xcf\xbb\x5e\x62\x78\x86\xe1\
\x9f\x8d\x94\x8f\xad\x2f\xb2\xab\x1a\x86\x6d\xf1\x79\x82\xfc\x72\
\xc3\xe7\xf3\x57\xb5\x10\x62\x93\xfb\x80\xa1\x7f\xf7\xf1\xe5\x0c\
\xce\xbd\x51\xec\x4b\x98\xee\xd6\xf3\x49\x04\x12\x4f\xd3\x29\x34\
\xc7\xbf\x46\x7c\x7e\xba\x52\x1f\xe9\xb7\xe5\xbf\xd9\x1c\x2b\xd3\
\x98\xb6\x88\xcb\xf9\x52\x65\xbd\x8c\x20\xb7\xb5\xbf\xfc\xfd\xda\
\x6e\xc9\x53\x63\x94\x3d\x77\x6f\xb9\x6f\x15\xcf\xf4\x42\x59\x68\
\x55\xe2\x3e\x90\x9f\x46\xb1\x93\x1d\xd3\x3d\xfe\xbc\x62\x1d\x51\
\xdf\xb1\xb5\x7e\x9e\xbf\x0e\x23\xc6\xfa\x59\x74\x9a\xe7\xe0\x11\
\x3e\x90\x16\xe1\xd7\xa8\xd6\x2a\x37\xfc\xc8\x15\xef\x94\xde\x32\
\xbe\x98\xbd\xb7\x75\x23\xa5\x6e\x60\x3e\xce\xf7\xc5\xd4\xf5\x99\
\xe6\xfb\x40\x94\xa8\xd9\xd9\x9b\x25\xb2\x96\xbb\xcd\x98\xcf\xd3\
\x5f\xa6\xf0\xbf\xde\xa7\x3f\x25\xb6\xcf\xc8\xf9\xcf\xca\x34\x6c\
\xc6\xed\x84\x05\xf5\xfd\x46\x3b\x21\xc1\xf5\xdf\x6b\xfe\x35\x1f\
\x98\x0b\x1b\x0f\x5c\xa8\x1a\x2c\x90\xb9\x1f\x26\xa1\xde\x60\xce\
\xd0\xab\x9f\xff\xf9\x62\x26\xf1\xfc\x2c\x9f\xa0\x7d\x82\xf6\x09\
\xda\x1f\x5a\xfe\x03\x25\x4e\x5a\xa8\x12\x44\x3f\xa1\x00\x00\x00\
\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
"

   qt_resource_name = b"\
\x00\x0c\
\x0b\x19\xfb\x27\
\x00\x72\
\x00\x75\x00\x67\x00\x5f\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x0d\
\x02\x7b\x0f\x87\
\x00\x4b\
\x00\x61\x00\x70\x00\x74\x00\x65\x00\x79\x00\x6e\x00\x34\x00\x35\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x0e\
\x05\x57\xa0\xa7\
\x00\x67\
\x00\x69\x00\x70\x00\x73\x00\x79\x00\x5f\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\
"

   qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\
\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x83\xc5\
\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\xb7\xe7\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
"

   qInitResources()

   logo_text="""
<html>
<body>
<div style="margin: 0 0 0 0.3em; color: #CC0000">
<img src=":rug_logo.png" style="float:right">This
program is part of <b>GIPSY</b>,
the Groningen Image Processing System,
developed at the Kapteyn Astronomical Institute, University of Groningen.
</div>
</body>
</html>
"""
   kapteyn_text="""
<html>
<body>
<div style="margin: 0 0 0 0.3em; color: #CC0000">
<img src=":rug_logo.png" style="float:right">This
program uses the <b>Kapteyn Package</b>,
developed at the Kapteyn Astronomical Institute, University of Groningen.
</div>
</body>
</html>
"""

except:
   pass
#<

#>            c_numpy.pxd
# :Author:    Travis Oliphant
#
# Some modifications: Hans Terlouw

cdef extern from "numpy/arrayobject.h":

    cdef enum NPY_TYPES:
        NPY_BOOL
        NPY_BYTE
        NPY_UBYTE
        NPY_SHORT
        NPY_USHORT 
        NPY_INT
        NPY_UINT 
        NPY_LONG
        NPY_ULONG
        NPY_LONGLONG
        NPY_ULONGLONG
        NPY_FLOAT
        NPY_DOUBLE 
        NPY_LONGDOUBLE
        NPY_CFLOAT
        NPY_CDOUBLE
        NPY_CLONGDOUBLE
        NPY_OBJECT
        NPY_STRING
        NPY_UNICODE
        NPY_VOID
        NPY_NTYPES
        NPY_NOTYPE

    cdef enum requirements:
        NPY_CONTIGUOUS
        NPY_FORTRAN
        NPY_OWNDATA
        NPY_FORCECAST
        NPY_ENSURECOPY
        NPY_ENSUREARRAY
        NPY_ELEMENTSTRIDES
        NPY_ALIGNED
        NPY_NOTSWAPPED
        NPY_WRITEABLE
        NPY_UPDATEIFCOPY
        NPY_ARR_HAS_DESCR

        NPY_BEHAVED
        NPY_BEHAVED_NS
        NPY_CARRAY
        NPY_CARRAY_RO
        NPY_FARRAY
        NPY_FARRAY_RO
        NPY_DEFAULT

        NPY_IN_ARRAY
        NPY_OUT_ARRAY
        NPY_INOUT_ARRAY
        NPY_IN_FARRAY
        NPY_OUT_FARRAY
        NPY_INOUT_FARRAY

        NPY_UPDATE_ALL 

    cdef enum defines:
        NPY_MAXDIMS

    ctypedef struct npy_cdouble:
        double real
        double imag

    ctypedef struct npy_cfloat:
        double real
        double imag

    ctypedef int npy_intp 

    ctypedef extern class numpy.dtype [object PyArray_Descr]:
        cdef int type_num, elsize, alignment
        cdef char type, kind, byteorder, hasobject
        cdef object fields, typeobj

    ctypedef extern class numpy.ndarray [object PyArrayObject]:
        cdef char *data
        cdef int nd
        cdef npy_intp *dimensions
        cdef npy_intp *strides
        cdef object base
        cdef dtype descr
        cdef int flags

    ctypedef extern class numpy.flatiter [object PyArrayIterObject]:
        cdef int  nd_m1
        cdef npy_intp index, size
        cdef ndarray ao
        cdef char *dataptr
        
    ctypedef extern class numpy.broadcast [object PyArrayMultiIterObject]:
        cdef int numiter
        cdef npy_intp size, index
        cdef int nd
#        cdef npy_intp dimensions[NPY_MAXDIMS]
#        cdef flatiter iters[NPY_MAXDIMS]

    object PyArray_ZEROS(int ndims, npy_intp* dims, NPY_TYPES type_num, int fortran)
    object PyArray_EMPTY(int ndims, npy_intp* dims, NPY_TYPES type_num, int fortran)
    dtype PyArray_DescrFromType(NPY_TYPES type_num)
    object PyArray_SimpleNew(int ndims, npy_intp* dims, NPY_TYPES type_num)
    int PyArray_Check(object obj)
    object PyArray_ContiguousFromAny(object obj, NPY_TYPES type, 
        int mindim, int maxdim)
    npy_intp PyArray_SIZE(ndarray arr)
    npy_intp PyArray_NBYTES(ndarray arr)
    void *PyArray_DATA(ndarray arr)
    object PyArray_FromAny(object obj, dtype newtype, int mindim, int maxdim,
		    int requirements, object context)
    object PyArray_FromArray(ndarray arr, dtype newtype, int requirements)
    object PyArray_FROMANY(object obj, NPY_TYPES type_num, int min,
                           int max, int requirements)
    object PyArray_NewFromDescr(object subtype, dtype newtype, int nd,
                                npy_intp* dims, npy_intp* strides, void* data,
                                int flags, object parent)

    void PyArray_ITER_NEXT(flatiter it)

    void import_array()
#<
