Commits

chmullig committed c7cfa5a

Generated c file

Comments (0)

Files changed (1)

+/* Generated by Pyrex 0.9.9 on Wed Mar 23 12:26:27 2011 */
+
+#define PY_SSIZE_T_CLEAN
+#include "Python.h"
+#include "structmember.h"
+#ifndef PY_LONG_LONG
+  #define PY_LONG_LONG LONG_LONG
+#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 PyInt_FromSsize_t(z) PyInt_FromLong(z)
+  #define PyInt_AsSsize_t(o)	PyInt_AsLong(o)
+#endif
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+  #ifndef __stdcall
+    #define __stdcall
+  #endif
+  #ifndef __cdecl
+    #define __cdecl
+  #endif
+#endif
+#ifdef __cplusplus
+#define __PYX_EXTERN_C extern "C"
+#else
+#define __PYX_EXTERN_C extern
+#endif
+#include <math.h>
+#include "string.h"
+#include "ctype.h"
+#include "stdlib.h"
+#include "double_metaphone.h"
+
+
+typedef struct {PyObject **p; int i; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
+
+static PyObject *__pyx_m;
+static PyObject *__pyx_b;
+static int __pyx_lineno;
+static char *__pyx_filename;
+static char **__pyx_f;
+
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
+
+static void __Pyx_AddTraceback(char *funcname); /*proto*/
+
+/* Declarations from fuzzy */
+
+
+/* Declarations from implementation of fuzzy */
+
+struct __pyx_obj_5fuzzy_Soundex {
+  PyObject_HEAD
+  int size;
+  char *map;
+};
+
+struct __pyx_obj_5fuzzy_DMetaphone {
+  PyObject_HEAD
+  int size;
+};
+
+
+
+static PyTypeObject *__pyx_ptype_5fuzzy_Soundex = 0;
+static PyTypeObject *__pyx_ptype_5fuzzy_DMetaphone = 0;
+
+static char __pyx_k1[] = "_non_AZ";
+static char __pyx_k2[] = "sub";
+static char __pyx_k3[] = "";
+static char __pyx_k4[] = "upper";
+static char __pyx_k5[] = "SZ";
+static char __pyx_k6[] = "MAC";
+static char __pyx_k7[] = "MC";
+static char __pyx_k8[] = "PF";
+static char __pyx_k9[] = "_nysiis_suffix_map";
+static char __pyx_k10[] = "_nysiis_transforms";
+static char __pyx_k11[] = "_nysiis_trans_not_first";
+static char __pyx_k12[] = "_nysiis_trans_middle";
+static char __pyx_k13[] = "extend";
+static char __pyx_k14[] = "append";
+static char __pyx_k15[] = "AEIOU";
+static char __pyx_k16[] = "join";
+static char __pyx_k17[] = "01230120022455012623010202";
+static char __pyx_k18[] = "re";
+static char __pyx_k19[] = "IX";
+static char __pyx_k20[] = "IC";
+static char __pyx_k21[] = "EX";
+static char __pyx_k22[] = "EC";
+static char __pyx_k23[] = "YE";
+static char __pyx_k24[] = "Y";
+static char __pyx_k25[] = "EE";
+static char __pyx_k26[] = "IE";
+static char __pyx_k27[] = "DT";
+static char __pyx_k28[] = "D";
+static char __pyx_k29[] = "RT";
+static char __pyx_k30[] = "RD";
+static char __pyx_k31[] = "NT";
+static char __pyx_k32[] = "ND";
+static char __pyx_k33[] = "AY";
+static char __pyx_k34[] = "DG";
+static char __pyx_k35[] = "G";
+static char __pyx_k36[] = "E";
+static char __pyx_k37[] = "A";
+static char __pyx_k38[] = "EY";
+static char __pyx_k39[] = "GHT";
+static char __pyx_k40[] = "GT";
+static char __pyx_k41[] = "K";
+static char __pyx_k42[] = "C";
+static char __pyx_k43[] = "KN";
+static char __pyx_k44[] = "N";
+static char __pyx_k45[] = "I";
+static char __pyx_k46[] = "IY";
+static char __pyx_k47[] = "O";
+static char __pyx_k48[] = "OY";
+static char __pyx_k49[] = "PH";
+static char __pyx_k50[] = "F";
+static char __pyx_k51[] = "SH";
+static char __pyx_k52[] = "S";
+static char __pyx_k53[] = "SCH";
+static char __pyx_k54[] = "U";
+static char __pyx_k55[] = "UY";
+static char __pyx_k56[] = "WR";
+static char __pyx_k57[] = "R";
+static char __pyx_k58[] = "YW";
+static char __pyx_k59[] = "AH";
+static char __pyx_k60[] = "AW";
+static char __pyx_k61[] = "EH";
+static char __pyx_k62[] = "EV";
+static char __pyx_k63[] = "AF";
+static char __pyx_k64[] = "EW";
+static char __pyx_k65[] = "HA";
+static char __pyx_k66[] = "HE";
+static char __pyx_k67[] = "HI";
+static char __pyx_k68[] = "HO";
+static char __pyx_k69[] = "HU";
+static char __pyx_k70[] = "IH";
+static char __pyx_k71[] = "IW";
+static char __pyx_k72[] = "M";
+static char __pyx_k73[] = "OH";
+static char __pyx_k74[] = "OW";
+static char __pyx_k75[] = "Q";
+static char __pyx_k76[] = "UH";
+static char __pyx_k77[] = "UW";
+static char __pyx_k78[] = "Z";
+static char __pyx_k79[] = "compile";
+static char __pyx_k80[] = "[^A-Z]";
+
+static PyObject *__pyx_n_A;
+static PyObject *__pyx_n_AEIOU;
+static PyObject *__pyx_n_AF;
+static PyObject *__pyx_n_AH;
+static PyObject *__pyx_n_AW;
+static PyObject *__pyx_n_AY;
+static PyObject *__pyx_n_C;
+static PyObject *__pyx_n_D;
+static PyObject *__pyx_n_DG;
+static PyObject *__pyx_n_DT;
+static PyObject *__pyx_n_E;
+static PyObject *__pyx_n_EC;
+static PyObject *__pyx_n_EE;
+static PyObject *__pyx_n_EH;
+static PyObject *__pyx_n_EV;
+static PyObject *__pyx_n_EW;
+static PyObject *__pyx_n_EX;
+static PyObject *__pyx_n_EY;
+static PyObject *__pyx_n_F;
+static PyObject *__pyx_n_G;
+static PyObject *__pyx_n_GHT;
+static PyObject *__pyx_n_GT;
+static PyObject *__pyx_n_HA;
+static PyObject *__pyx_n_HE;
+static PyObject *__pyx_n_HI;
+static PyObject *__pyx_n_HO;
+static PyObject *__pyx_n_HU;
+static PyObject *__pyx_n_I;
+static PyObject *__pyx_n_IC;
+static PyObject *__pyx_n_IE;
+static PyObject *__pyx_n_IH;
+static PyObject *__pyx_n_IW;
+static PyObject *__pyx_n_IX;
+static PyObject *__pyx_n_IY;
+static PyObject *__pyx_n_K;
+static PyObject *__pyx_n_KN;
+static PyObject *__pyx_n_M;
+static PyObject *__pyx_n_MAC;
+static PyObject *__pyx_n_MC;
+static PyObject *__pyx_n_N;
+static PyObject *__pyx_n_ND;
+static PyObject *__pyx_n_NT;
+static PyObject *__pyx_n_O;
+static PyObject *__pyx_n_OH;
+static PyObject *__pyx_n_OW;
+static PyObject *__pyx_n_OY;
+static PyObject *__pyx_n_PF;
+static PyObject *__pyx_n_PH;
+static PyObject *__pyx_n_Q;
+static PyObject *__pyx_n_R;
+static PyObject *__pyx_n_RD;
+static PyObject *__pyx_n_RT;
+static PyObject *__pyx_n_S;
+static PyObject *__pyx_n_SCH;
+static PyObject *__pyx_n_SH;
+static PyObject *__pyx_n_SZ;
+static PyObject *__pyx_n_U;
+static PyObject *__pyx_n_UH;
+static PyObject *__pyx_n_UW;
+static PyObject *__pyx_n_UY;
+static PyObject *__pyx_n_WR;
+static PyObject *__pyx_n_Y;
+static PyObject *__pyx_n_YE;
+static PyObject *__pyx_n_YW;
+static PyObject *__pyx_n_Z;
+static PyObject *__pyx_n__non_AZ;
+static PyObject *__pyx_n__nysiis_suffix_map;
+static PyObject *__pyx_n__nysiis_trans_middle;
+static PyObject *__pyx_n__nysiis_trans_not_first;
+static PyObject *__pyx_n__nysiis_transforms;
+static PyObject *__pyx_n_append;
+static PyObject *__pyx_n_compile;
+static PyObject *__pyx_n_extend;
+static PyObject *__pyx_n_join;
+static PyObject *__pyx_n_re;
+static PyObject *__pyx_n_sub;
+static PyObject *__pyx_n_upper;
+
+static PyObject *__pyx_k3p;
+static PyObject *__pyx_k80p;
+
+static __Pyx_StringTabEntry __pyx_string_tab[] = {
+  {&__pyx_n_A, 1, __pyx_k37, sizeof(__pyx_k37)},
+  {&__pyx_n_AEIOU, 1, __pyx_k15, sizeof(__pyx_k15)},
+  {&__pyx_n_AF, 1, __pyx_k63, sizeof(__pyx_k63)},
+  {&__pyx_n_AH, 1, __pyx_k59, sizeof(__pyx_k59)},
+  {&__pyx_n_AW, 1, __pyx_k60, sizeof(__pyx_k60)},
+  {&__pyx_n_AY, 1, __pyx_k33, sizeof(__pyx_k33)},
+  {&__pyx_n_C, 1, __pyx_k42, sizeof(__pyx_k42)},
+  {&__pyx_n_D, 1, __pyx_k28, sizeof(__pyx_k28)},
+  {&__pyx_n_DG, 1, __pyx_k34, sizeof(__pyx_k34)},
+  {&__pyx_n_DT, 1, __pyx_k27, sizeof(__pyx_k27)},
+  {&__pyx_n_E, 1, __pyx_k36, sizeof(__pyx_k36)},
+  {&__pyx_n_EC, 1, __pyx_k22, sizeof(__pyx_k22)},
+  {&__pyx_n_EE, 1, __pyx_k25, sizeof(__pyx_k25)},
+  {&__pyx_n_EH, 1, __pyx_k61, sizeof(__pyx_k61)},
+  {&__pyx_n_EV, 1, __pyx_k62, sizeof(__pyx_k62)},
+  {&__pyx_n_EW, 1, __pyx_k64, sizeof(__pyx_k64)},
+  {&__pyx_n_EX, 1, __pyx_k21, sizeof(__pyx_k21)},
+  {&__pyx_n_EY, 1, __pyx_k38, sizeof(__pyx_k38)},
+  {&__pyx_n_F, 1, __pyx_k50, sizeof(__pyx_k50)},
+  {&__pyx_n_G, 1, __pyx_k35, sizeof(__pyx_k35)},
+  {&__pyx_n_GHT, 1, __pyx_k39, sizeof(__pyx_k39)},
+  {&__pyx_n_GT, 1, __pyx_k40, sizeof(__pyx_k40)},
+  {&__pyx_n_HA, 1, __pyx_k65, sizeof(__pyx_k65)},
+  {&__pyx_n_HE, 1, __pyx_k66, sizeof(__pyx_k66)},
+  {&__pyx_n_HI, 1, __pyx_k67, sizeof(__pyx_k67)},
+  {&__pyx_n_HO, 1, __pyx_k68, sizeof(__pyx_k68)},
+  {&__pyx_n_HU, 1, __pyx_k69, sizeof(__pyx_k69)},
+  {&__pyx_n_I, 1, __pyx_k45, sizeof(__pyx_k45)},
+  {&__pyx_n_IC, 1, __pyx_k20, sizeof(__pyx_k20)},
+  {&__pyx_n_IE, 1, __pyx_k26, sizeof(__pyx_k26)},
+  {&__pyx_n_IH, 1, __pyx_k70, sizeof(__pyx_k70)},
+  {&__pyx_n_IW, 1, __pyx_k71, sizeof(__pyx_k71)},
+  {&__pyx_n_IX, 1, __pyx_k19, sizeof(__pyx_k19)},
+  {&__pyx_n_IY, 1, __pyx_k46, sizeof(__pyx_k46)},
+  {&__pyx_n_K, 1, __pyx_k41, sizeof(__pyx_k41)},
+  {&__pyx_n_KN, 1, __pyx_k43, sizeof(__pyx_k43)},
+  {&__pyx_n_M, 1, __pyx_k72, sizeof(__pyx_k72)},
+  {&__pyx_n_MAC, 1, __pyx_k6, sizeof(__pyx_k6)},
+  {&__pyx_n_MC, 1, __pyx_k7, sizeof(__pyx_k7)},
+  {&__pyx_n_N, 1, __pyx_k44, sizeof(__pyx_k44)},
+  {&__pyx_n_ND, 1, __pyx_k32, sizeof(__pyx_k32)},
+  {&__pyx_n_NT, 1, __pyx_k31, sizeof(__pyx_k31)},
+  {&__pyx_n_O, 1, __pyx_k47, sizeof(__pyx_k47)},
+  {&__pyx_n_OH, 1, __pyx_k73, sizeof(__pyx_k73)},
+  {&__pyx_n_OW, 1, __pyx_k74, sizeof(__pyx_k74)},
+  {&__pyx_n_OY, 1, __pyx_k48, sizeof(__pyx_k48)},
+  {&__pyx_n_PF, 1, __pyx_k8, sizeof(__pyx_k8)},
+  {&__pyx_n_PH, 1, __pyx_k49, sizeof(__pyx_k49)},
+  {&__pyx_n_Q, 1, __pyx_k75, sizeof(__pyx_k75)},
+  {&__pyx_n_R, 1, __pyx_k57, sizeof(__pyx_k57)},
+  {&__pyx_n_RD, 1, __pyx_k30, sizeof(__pyx_k30)},
+  {&__pyx_n_RT, 1, __pyx_k29, sizeof(__pyx_k29)},
+  {&__pyx_n_S, 1, __pyx_k52, sizeof(__pyx_k52)},
+  {&__pyx_n_SCH, 1, __pyx_k53, sizeof(__pyx_k53)},
+  {&__pyx_n_SH, 1, __pyx_k51, sizeof(__pyx_k51)},
+  {&__pyx_n_SZ, 1, __pyx_k5, sizeof(__pyx_k5)},
+  {&__pyx_n_U, 1, __pyx_k54, sizeof(__pyx_k54)},
+  {&__pyx_n_UH, 1, __pyx_k76, sizeof(__pyx_k76)},
+  {&__pyx_n_UW, 1, __pyx_k77, sizeof(__pyx_k77)},
+  {&__pyx_n_UY, 1, __pyx_k55, sizeof(__pyx_k55)},
+  {&__pyx_n_WR, 1, __pyx_k56, sizeof(__pyx_k56)},
+  {&__pyx_n_Y, 1, __pyx_k24, sizeof(__pyx_k24)},
+  {&__pyx_n_YE, 1, __pyx_k23, sizeof(__pyx_k23)},
+  {&__pyx_n_YW, 1, __pyx_k58, sizeof(__pyx_k58)},
+  {&__pyx_n_Z, 1, __pyx_k78, sizeof(__pyx_k78)},
+  {&__pyx_n__non_AZ, 1, __pyx_k1, sizeof(__pyx_k1)},
+  {&__pyx_n__nysiis_suffix_map, 1, __pyx_k9, sizeof(__pyx_k9)},
+  {&__pyx_n__nysiis_trans_middle, 1, __pyx_k12, sizeof(__pyx_k12)},
+  {&__pyx_n__nysiis_trans_not_first, 1, __pyx_k11, sizeof(__pyx_k11)},
+  {&__pyx_n__nysiis_transforms, 1, __pyx_k10, sizeof(__pyx_k10)},
+  {&__pyx_n_append, 1, __pyx_k14, sizeof(__pyx_k14)},
+  {&__pyx_n_compile, 1, __pyx_k79, sizeof(__pyx_k79)},
+  {&__pyx_n_extend, 1, __pyx_k13, sizeof(__pyx_k13)},
+  {&__pyx_n_join, 1, __pyx_k16, sizeof(__pyx_k16)},
+  {&__pyx_n_re, 1, __pyx_k18, sizeof(__pyx_k18)},
+  {&__pyx_n_sub, 1, __pyx_k2, sizeof(__pyx_k2)},
+  {&__pyx_n_upper, 1, __pyx_k4, sizeof(__pyx_k4)},
+  {&__pyx_k3p, 0, __pyx_k3, sizeof(__pyx_k3)},
+  {&__pyx_k80p, 0, __pyx_k80, sizeof(__pyx_k80)},
+  {0, 0, 0, 0}
+};
+
+static PyObject *__pyx_d1;
+
+
+/* Implementation of fuzzy */
+
+static PyObject *__pyx_f_5fuzzy_nysiis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5fuzzy_nysiis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_s = 0;
+  int __pyx_v_i;
+  int __pyx_v_start;
+  int __pyx_v_stop;
+  char *__pyx_v_suffix;
+  char *__pyx_v_first;
+  PyObject *__pyx_v_foo;
+  PyObject *__pyx_v_x;
+  PyObject *__pyx_v_y;
+  PyObject *__pyx_v_r;
+  PyObject *__pyx_v_remain;
+  PyObject *__pyx_v_app;
+  PyObject *__pyx_v_l;
+  PyObject *__pyx_v_q;
+  PyObject *__pyx_v_last;
+  PyObject *__pyx_r;
+  PyObject *__pyx_1 = 0;
+  PyObject *__pyx_2 = 0;
+  PyObject *__pyx_3 = 0;
+  long __pyx_4;
+  Py_ssize_t __pyx_5;
+  int __pyx_6;
+  char *__pyx_7;
+  PyObject *__pyx_8 = 0;
+  static char *__pyx_argnames[] = {"s",0};
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_s)) return 0;
+  Py_INCREF(__pyx_v_s);
+  __pyx_v_foo = Py_None; Py_INCREF(Py_None);
+  __pyx_v_x = Py_None; Py_INCREF(Py_None);
+  __pyx_v_y = Py_None; Py_INCREF(Py_None);
+  __pyx_v_r = Py_None; Py_INCREF(Py_None);
+  __pyx_v_remain = Py_None; Py_INCREF(Py_None);
+  __pyx_v_app = Py_None; Py_INCREF(Py_None);
+  __pyx_v_l = Py_None; Py_INCREF(Py_None);
+  __pyx_v_q = Py_None; Py_INCREF(Py_None);
+  __pyx_v_last = Py_None; Py_INCREF(Py_None);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":88 */
+  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__non_AZ); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+  __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_sub); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  __pyx_1 = PyObject_GetAttr(__pyx_v_s, __pyx_n_upper); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+  __pyx_3 = PyObject_CallObject(__pyx_1, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+  Py_INCREF(__pyx_k3p);
+  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_k3p);
+  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_3);
+  __pyx_3 = 0;
+  __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; goto __pyx_L1;}
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  Py_DECREF(__pyx_v_s);
+  __pyx_v_s = __pyx_3;
+  __pyx_3 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":89 */
+  __pyx_4 = 0;
+  __pyx_5 = PyObject_Length(__pyx_v_s); if (__pyx_5 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;}
+  __pyx_v_start = __pyx_4;
+  __pyx_v_stop = __pyx_5;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":91 */
+  __pyx_v_first = __pyx_k3;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":92 */
+  __pyx_6 = __pyx_v_stop;
+  if (__pyx_6) {
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":93 */
+    __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;}
+    __pyx_1 = PyObject_GetItem(__pyx_v_s, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;}
+    Py_DECREF(__pyx_2); __pyx_2 = 0;
+    Py_DECREF(__pyx_v_foo);
+    __pyx_v_foo = __pyx_1;
+    __pyx_1 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":94 */
+    __pyx_7 = PyString_AsString(__pyx_v_foo); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; goto __pyx_L1;}
+    __pyx_v_first = __pyx_7;
+    goto __pyx_L2;
+  }
+  __pyx_L2:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":98 */
+  __pyx_v_i = __pyx_v_stop;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":99 */
+  while (1) {
+    __pyx_6 = __pyx_v_i;
+    if (__pyx_6) {
+      __pyx_3 = PyInt_FromLong((__pyx_v_i - 1)); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; goto __pyx_L1;}
+      __pyx_2 = PyObject_GetItem(__pyx_v_s, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; goto __pyx_L1;}
+      Py_DECREF(__pyx_3); __pyx_3 = 0;
+      __pyx_6 = PySequence_Contains(__pyx_n_SZ, __pyx_2); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; goto __pyx_L1;}
+      Py_DECREF(__pyx_2); __pyx_2 = 0;
+    }
+    if (!__pyx_6) break;
+    __pyx_v_i = (__pyx_v_i - 1);
+  }
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":101 */
+  __pyx_v_stop = __pyx_v_i;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":105 */
+  __pyx_1 = PySequence_GetSlice(__pyx_v_s, 0, 3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L1;}
+  if (PyObject_Cmp(__pyx_1, __pyx_n_MAC, &__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L1;}
+  __pyx_6 = __pyx_6 == 0;
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  if (__pyx_6) {
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":106 */
+    __pyx_3 = PySequence_GetSlice(__pyx_v_s, 3, PY_SSIZE_T_MAX); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; goto __pyx_L1;}
+    __pyx_2 = PyNumber_Add(__pyx_n_MC, __pyx_3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; goto __pyx_L1;}
+    Py_DECREF(__pyx_3); __pyx_3 = 0;
+    Py_DECREF(__pyx_v_s);
+    __pyx_v_s = __pyx_2;
+    __pyx_2 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":107 */
+    __pyx_v_stop = (__pyx_v_stop - 1);
+    goto __pyx_L5;
+  }
+  __pyx_1 = PySequence_GetSlice(__pyx_v_s, 0, 2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;}
+  if (PyObject_Cmp(__pyx_1, __pyx_n_PF, &__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;}
+  __pyx_6 = __pyx_6 == 0;
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  if (__pyx_6) {
+    __pyx_v_start = 1;
+    goto __pyx_L5;
+  }
+  __pyx_L5:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":113 */
+  __pyx_v_suffix = __pyx_k3;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":114 */
+  while (1) {
+    __pyx_6 = ((__pyx_v_stop - __pyx_v_start) > 2);
+    if (!__pyx_6) break;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":115 */
+    __pyx_3 = PySequence_GetSlice(__pyx_v_s, (__pyx_v_stop - 2), __pyx_v_stop); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;}
+    Py_DECREF(__pyx_v_x);
+    __pyx_v_x = __pyx_3;
+    __pyx_3 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":117 */
+    __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_suffix_map); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; goto __pyx_L1;}
+    __pyx_6 = PySequence_Contains(__pyx_2, __pyx_v_x); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; goto __pyx_L1;}
+    Py_DECREF(__pyx_2); __pyx_2 = 0;
+    if (__pyx_6) {
+
+      /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":118 */
+      __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_suffix_map); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;}
+      __pyx_3 = PyObject_GetItem(__pyx_1, __pyx_v_x); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;}
+      Py_DECREF(__pyx_1); __pyx_1 = 0;
+      __pyx_2 = PyString_FromString(__pyx_v_suffix); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;}
+      __pyx_1 = PyNumber_Add(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;}
+      Py_DECREF(__pyx_3); __pyx_3 = 0;
+      Py_DECREF(__pyx_2); __pyx_2 = 0;
+      Py_DECREF(__pyx_v_y);
+      __pyx_v_y = __pyx_1;
+      __pyx_1 = 0;
+
+      /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":119 */
+      __pyx_7 = PyString_AsString(__pyx_v_y); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; goto __pyx_L1;}
+      __pyx_4 = (__pyx_v_stop - 2);
+      __pyx_v_suffix = __pyx_7;
+      __pyx_v_stop = __pyx_4;
+      goto __pyx_L8;
+    }
+    /*else*/ {
+      goto __pyx_L7;
+    }
+    __pyx_L8:;
+  }
+  __pyx_L7:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":123 */
+  __pyx_3 = PySequence_GetSlice(__pyx_v_s, __pyx_v_start, __pyx_v_stop); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;}
+  __pyx_2 = PyString_FromString(__pyx_v_suffix); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;}
+  __pyx_1 = PyNumber_Add(__pyx_3, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;}
+  Py_DECREF(__pyx_3); __pyx_3 = 0;
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+  Py_DECREF(__pyx_v_s);
+  __pyx_v_s = __pyx_1;
+  __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":127 */
+  __pyx_3 = PyList_New(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; goto __pyx_L1;}
+  Py_DECREF(__pyx_v_r);
+  __pyx_v_r = __pyx_3;
+  __pyx_3 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":128 */
+  __pyx_v_i = 0;
+  __pyx_v_start = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":129 */
+  __pyx_5 = PyObject_Length(__pyx_v_s); if (__pyx_5 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;}
+  __pyx_v_stop = __pyx_5;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":130 */
+  while (1) {
+    __pyx_6 = (__pyx_v_i < __pyx_v_stop);
+    if (!__pyx_6) break;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":131 */
+    __pyx_2 = PyInt_FromLong((__pyx_v_stop - __pyx_v_i)); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;}
+    Py_DECREF(__pyx_v_remain);
+    __pyx_v_remain = __pyx_2;
+    __pyx_2 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":133 */
+    Py_INCREF(__pyx_k3p);
+    Py_DECREF(__pyx_v_app);
+    __pyx_v_app = __pyx_k3p;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":135 */
+    __pyx_1 = PyInt_FromLong(3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;}
+    __pyx_3 = PyInt_FromLong(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;}
+    __pyx_2 = PyInt_FromLong(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;}
+    __pyx_8 = PyTuple_New(3); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;}
+    PyTuple_SET_ITEM(__pyx_8, 0, __pyx_1);
+    PyTuple_SET_ITEM(__pyx_8, 1, __pyx_3);
+    PyTuple_SET_ITEM(__pyx_8, 2, __pyx_2);
+    __pyx_1 = 0;
+    __pyx_3 = 0;
+    __pyx_2 = 0;
+    __pyx_1 = PyObject_GetIter(__pyx_8); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;}
+    Py_DECREF(__pyx_8); __pyx_8 = 0;
+    for (;;) {
+      __pyx_3 = PyIter_Next(__pyx_1);
+      if (!__pyx_3) {
+        if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; goto __pyx_L1;}
+        break;
+      }
+      Py_DECREF(__pyx_v_l);
+      __pyx_v_l = __pyx_3;
+      __pyx_3 = 0;
+      if (PyObject_Cmp(__pyx_v_remain, __pyx_v_l, &__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; goto __pyx_L1;}
+      __pyx_6 = __pyx_6 >= 0;
+      if (__pyx_6) {
+
+        /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":137 */
+        __pyx_2 = PyInt_FromLong(__pyx_v_i); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;}
+        __pyx_8 = PyNumber_Add(__pyx_2, __pyx_v_l); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;}
+        Py_DECREF(__pyx_2); __pyx_2 = 0;
+        __pyx_5 = PyInt_AsSsize_t(__pyx_8); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;}
+        Py_DECREF(__pyx_8); __pyx_8 = 0;
+        __pyx_3 = PySequence_GetSlice(__pyx_v_s, __pyx_v_i, __pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; goto __pyx_L1;}
+        Py_DECREF(__pyx_v_x);
+        __pyx_v_x = __pyx_3;
+        __pyx_3 = 0;
+
+        /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":138 */
+        __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_transforms); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;}
+        __pyx_6 = PySequence_Contains(__pyx_2, __pyx_v_x); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;}
+        Py_DECREF(__pyx_2); __pyx_2 = 0;
+        if (__pyx_6) {
+
+          /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":139 */
+          __pyx_8 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_transforms); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;}
+          __pyx_3 = PyObject_GetItem(__pyx_8, __pyx_v_x); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; goto __pyx_L1;}
+          Py_DECREF(__pyx_8); __pyx_8 = 0;
+          Py_DECREF(__pyx_v_app);
+          __pyx_v_app = __pyx_3;
+          __pyx_3 = 0;
+
+          /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":140 */
+          goto __pyx_L12;
+          goto __pyx_L14;
+        }
+        __pyx_6 = (__pyx_v_i > __pyx_v_start);
+        if (__pyx_6) {
+          __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_trans_not_first); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;}
+          __pyx_6 = PySequence_Contains(__pyx_2, __pyx_v_x); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; goto __pyx_L1;}
+          Py_DECREF(__pyx_2); __pyx_2 = 0;
+          if (__pyx_6) {
+
+            /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":144 */
+            __pyx_8 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_trans_not_first); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;}
+            __pyx_3 = PyObject_GetItem(__pyx_8, __pyx_v_x); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; goto __pyx_L1;}
+            Py_DECREF(__pyx_8); __pyx_8 = 0;
+            Py_DECREF(__pyx_v_app);
+            __pyx_v_app = __pyx_3;
+            __pyx_3 = 0;
+
+            /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":145 */
+            goto __pyx_L12;
+            goto __pyx_L15;
+          }
+          __pyx_6 = (__pyx_v_i < (__pyx_v_stop - 1));
+          if (__pyx_6) {
+            __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_trans_middle); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; goto __pyx_L1;}
+            __pyx_6 = PySequence_Contains(__pyx_2, __pyx_v_x); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; goto __pyx_L1;}
+            Py_DECREF(__pyx_2); __pyx_2 = 0;
+          }
+          if (__pyx_6) {
+
+            /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":148 */
+            __pyx_8 = __Pyx_GetName(__pyx_m, __pyx_n__nysiis_trans_middle); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; goto __pyx_L1;}
+            __pyx_3 = PyObject_GetItem(__pyx_8, __pyx_v_x); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; goto __pyx_L1;}
+            Py_DECREF(__pyx_8); __pyx_8 = 0;
+            Py_DECREF(__pyx_v_app);
+            __pyx_v_app = __pyx_3;
+            __pyx_3 = 0;
+
+            /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":149 */
+            goto __pyx_L12;
+            goto __pyx_L15;
+          }
+          __pyx_L15:;
+          goto __pyx_L14;
+        }
+        __pyx_L14:;
+        goto __pyx_L13;
+      }
+      __pyx_L13:;
+    }
+    __pyx_L12:;
+    Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":153 */
+    __pyx_6 = PyObject_IsTrue(__pyx_v_app); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; goto __pyx_L1;}
+    if (__pyx_6) {
+
+      /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":154 */
+      __pyx_2 = PyObject_GetAttr(__pyx_v_r, __pyx_n_extend); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;}
+      __pyx_8 = PyTuple_New(1); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;}
+      Py_INCREF(__pyx_v_app);
+      PyTuple_SET_ITEM(__pyx_8, 0, __pyx_v_app);
+      __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;}
+      Py_DECREF(__pyx_2); __pyx_2 = 0;
+      Py_DECREF(__pyx_8); __pyx_8 = 0;
+      Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+      /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":155 */
+      __pyx_1 = PyInt_FromLong(__pyx_v_i); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;}
+      __pyx_2 = PyNumber_Add(__pyx_1, __pyx_v_l); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;}
+      Py_DECREF(__pyx_1); __pyx_1 = 0;
+      __pyx_6 = PyInt_AsLong(__pyx_2); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; goto __pyx_L1;}
+      Py_DECREF(__pyx_2); __pyx_2 = 0;
+      __pyx_v_i = __pyx_6;
+      goto __pyx_L16;
+    }
+    /*else*/ {
+
+      /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":157 */
+      __pyx_8 = PyObject_GetAttr(__pyx_v_r, __pyx_n_append); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
+      __pyx_3 = PyInt_FromLong(__pyx_v_i); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
+      __pyx_1 = PyObject_GetItem(__pyx_v_s, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
+      Py_DECREF(__pyx_3); __pyx_3 = 0;
+      __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
+      PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
+      __pyx_1 = 0;
+      __pyx_3 = PyObject_CallObject(__pyx_8, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
+      Py_DECREF(__pyx_8); __pyx_8 = 0;
+      Py_DECREF(__pyx_2); __pyx_2 = 0;
+      Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+      /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":158 */
+      __pyx_v_i = (__pyx_v_i + 1);
+    }
+    __pyx_L16:;
+  }
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":163 */
+  __pyx_5 = PyObject_Length(__pyx_v_r); if (__pyx_5 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; goto __pyx_L1;}
+  __pyx_v_stop = __pyx_5;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":164 */
+  while (1) {
+    __pyx_6 = __pyx_v_stop;
+    if (__pyx_6) {
+      __pyx_1 = PyInt_FromLong((__pyx_v_stop - 1)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
+      __pyx_8 = PyObject_GetItem(__pyx_v_r, __pyx_1); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
+      Py_DECREF(__pyx_1); __pyx_1 = 0;
+      __pyx_6 = PySequence_Contains(__pyx_n_AEIOU, __pyx_8); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
+      Py_DECREF(__pyx_8); __pyx_8 = 0;
+    }
+    if (!__pyx_6) break;
+    __pyx_v_stop = (__pyx_v_stop - 1);
+  }
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":168 */
+  __pyx_2 = PyString_FromString(__pyx_v_first); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;}
+  __pyx_6 = PySequence_Contains(__pyx_n_AEIOU, __pyx_2); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; goto __pyx_L1;}
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+  if (__pyx_6) {
+    __pyx_6 = PyObject_IsTrue(__pyx_v_r); if (__pyx_6 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;}
+    if (__pyx_6) {
+      __pyx_3 = PyString_FromString(__pyx_v_first); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;}
+      __pyx_1 = PyInt_FromLong(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;}
+      if (PyObject_SetItem(__pyx_v_r, __pyx_1, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; goto __pyx_L1;}
+      Py_DECREF(__pyx_1); __pyx_1 = 0;
+      Py_DECREF(__pyx_3); __pyx_3 = 0;
+      goto __pyx_L20;
+    }
+    /*else*/ {
+      __pyx_8 = PyString_FromString(__pyx_v_first); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;}
+      __pyx_2 = PyList_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;}
+      PyList_SET_ITEM(__pyx_2, 0, __pyx_8);
+      __pyx_8 = 0;
+      Py_DECREF(__pyx_v_r);
+      __pyx_v_r = __pyx_2;
+      __pyx_2 = 0;
+    }
+    __pyx_L20:;
+    goto __pyx_L19;
+  }
+  __pyx_L19:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":175 */
+  __pyx_3 = PyList_New(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;}
+  __pyx_1 = __pyx_k3p;
+  Py_INCREF(__pyx_1);
+  Py_DECREF(__pyx_v_q);
+  __pyx_v_q = __pyx_3;
+  __pyx_3 = 0;
+  Py_DECREF(__pyx_v_last);
+  __pyx_v_last = __pyx_1;
+  __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":176 */
+  __pyx_8 = PySequence_GetSlice(__pyx_v_r, 0, __pyx_v_stop); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;}
+  __pyx_2 = PyObject_GetIter(__pyx_8); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;}
+  Py_DECREF(__pyx_8); __pyx_8 = 0;
+  for (;;) {
+    __pyx_3 = PyIter_Next(__pyx_2);
+    if (!__pyx_3) {
+      if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;}
+      break;
+    }
+    Py_DECREF(__pyx_v_x);
+    __pyx_v_x = __pyx_3;
+    __pyx_3 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":177 */
+    if (PyObject_Cmp(__pyx_v_x, __pyx_v_last, &__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; goto __pyx_L1;}
+    __pyx_6 = __pyx_6 == 0;
+    if (__pyx_6) {
+      goto __pyx_L21;
+      goto __pyx_L23;
+    }
+    __pyx_L23:;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":180 */
+    __pyx_1 = PyObject_GetAttr(__pyx_v_q, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;}
+    __pyx_8 = PyTuple_New(1); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;}
+    Py_INCREF(__pyx_v_x);
+    PyTuple_SET_ITEM(__pyx_8, 0, __pyx_v_x);
+    __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;}
+    Py_DECREF(__pyx_1); __pyx_1 = 0;
+    Py_DECREF(__pyx_8); __pyx_8 = 0;
+    Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":181 */
+    Py_INCREF(__pyx_v_x);
+    Py_DECREF(__pyx_v_last);
+    __pyx_v_last = __pyx_v_x;
+    __pyx_L21:;
+  }
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":183 */
+  __pyx_1 = PyObject_GetAttr(__pyx_k3p, __pyx_n_join); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; goto __pyx_L1;}
+  __pyx_8 = PyTuple_New(1); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; goto __pyx_L1;}
+  Py_INCREF(__pyx_v_q);
+  PyTuple_SET_ITEM(__pyx_8, 0, __pyx_v_q);
+  __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  Py_DECREF(__pyx_8); __pyx_8 = 0;
+  __pyx_r = __pyx_3;
+  __pyx_3 = 0;
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; Py_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1:;
+  Py_XDECREF(__pyx_1);
+  Py_XDECREF(__pyx_2);
+  Py_XDECREF(__pyx_3);
+  Py_XDECREF(__pyx_8);
+  __Pyx_AddTraceback("fuzzy.nysiis");
+  __pyx_r = 0;
+  __pyx_L0:;
+  Py_DECREF(__pyx_v_foo);
+  Py_DECREF(__pyx_v_x);
+  Py_DECREF(__pyx_v_y);
+  Py_DECREF(__pyx_v_r);
+  Py_DECREF(__pyx_v_remain);
+  Py_DECREF(__pyx_v_app);
+  Py_DECREF(__pyx_v_l);
+  Py_DECREF(__pyx_v_q);
+  Py_DECREF(__pyx_v_last);
+  Py_DECREF(__pyx_v_s);
+  return __pyx_r;
+}
+
+static int __pyx_f_5fuzzy_7Soundex___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_f_5fuzzy_7Soundex___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_size = 0;
+  int __pyx_r;
+  int __pyx_1;
+  static char *__pyx_argnames[] = {"size",0};
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_size)) return -1;
+  Py_INCREF(__pyx_v_self);
+  Py_INCREF(__pyx_v_size);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":191 */
+  __pyx_1 = PyInt_AsLong(__pyx_v_size); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; goto __pyx_L1;}
+  ((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->size = __pyx_1;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":192 */
+  ((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->map = __pyx_k17;
+
+  __pyx_r = 0;
+  goto __pyx_L0;
+  __pyx_L1:;
+  __Pyx_AddTraceback("fuzzy.Soundex.__init__");
+  __pyx_r = -1;
+  __pyx_L0:;
+  Py_DECREF(__pyx_v_self);
+  Py_DECREF(__pyx_v_size);
+  return __pyx_r;
+}
+
+static PyObject *__pyx_f_5fuzzy_7Soundex___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5fuzzy_7Soundex___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_s = 0;
+  char *__pyx_v_cs;
+  int __pyx_v_ls;
+  int __pyx_v_i;
+  int __pyx_v_written;
+  char *__pyx_v_out;
+  PyObject *__pyx_v_pout;
+  PyObject *__pyx_r;
+  char *__pyx_1;
+  int __pyx_2;
+  PyObject *__pyx_3 = 0;
+  static char *__pyx_argnames[] = {"s",0};
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_s)) return 0;
+  Py_INCREF(__pyx_v_self);
+  Py_INCREF(__pyx_v_s);
+  __pyx_v_pout = Py_None; Py_INCREF(Py_None);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":201 */
+  __pyx_v_written = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":203 */
+  __pyx_v_out = ((char *)malloc((((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->size + 1)));
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":204 */
+  __pyx_1 = PyString_AsString(__pyx_v_s); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; goto __pyx_L1;}
+  __pyx_v_cs = __pyx_1;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":205 */
+  __pyx_v_ls = strlen(__pyx_v_cs);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":206 */
+  for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_ls; ++__pyx_v_i) {
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":207 */
+    __pyx_2 = ((__pyx_v_cs[__pyx_v_i]) >= 97);
+    if (__pyx_2) {
+      __pyx_2 = ((__pyx_v_cs[__pyx_v_i]) <= 122);
+    }
+    if (__pyx_2) {
+      (__pyx_v_cs[__pyx_v_i]) = ((__pyx_v_cs[__pyx_v_i]) - 32);
+      goto __pyx_L4;
+    }
+    __pyx_L4:;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":209 */
+    __pyx_2 = ((__pyx_v_cs[__pyx_v_i]) >= 65);
+    if (__pyx_2) {
+      __pyx_2 = ((__pyx_v_cs[__pyx_v_i]) <= 90);
+    }
+    if (__pyx_2) {
+      __pyx_2 = (__pyx_v_written == 0);
+      if (__pyx_2) {
+
+        /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":211 */
+        (__pyx_v_out[__pyx_v_written]) = (__pyx_v_cs[__pyx_v_i]);
+
+        /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":212 */
+        __pyx_v_written = (__pyx_v_written + 1);
+        goto __pyx_L6;
+      }
+      __pyx_2 = ((((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->map[((__pyx_v_cs[__pyx_v_i]) - 65)]) != 48);
+      if (__pyx_2) {
+        __pyx_2 = (__pyx_v_written == 1);
+        if (!__pyx_2) {
+          __pyx_2 = ((__pyx_v_out[(__pyx_v_written - 1)]) != (((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->map[((__pyx_v_cs[__pyx_v_i]) - 65)]));
+        }
+      }
+      if (__pyx_2) {
+
+        /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":215 */
+        (__pyx_v_out[__pyx_v_written]) = (((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->map[((__pyx_v_cs[__pyx_v_i]) - 65)]);
+
+        /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":216 */
+        __pyx_v_written = (__pyx_v_written + 1);
+        goto __pyx_L6;
+      }
+      __pyx_L6:;
+      goto __pyx_L5;
+    }
+    __pyx_L5:;
+
+    /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":217 */
+    __pyx_2 = (__pyx_v_written == ((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->size);
+    if (__pyx_2) {
+      goto __pyx_L3;
+      goto __pyx_L7;
+    }
+    __pyx_L7:;
+  }
+  __pyx_L3:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":219 */
+  __pyx_2 = ((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->size;
+  for (__pyx_v_i = __pyx_v_written; __pyx_v_i < __pyx_2; ++__pyx_v_i) {
+    (__pyx_v_out[__pyx_v_i]) = 48;
+  }
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":221 */
+  (__pyx_v_out[((struct __pyx_obj_5fuzzy_Soundex *)__pyx_v_self)->size]) = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":223 */
+  __pyx_3 = PyString_FromString(__pyx_v_out); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; goto __pyx_L1;}
+  Py_DECREF(__pyx_v_pout);
+  __pyx_v_pout = __pyx_3;
+  __pyx_3 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":224 */
+  free(__pyx_v_out);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":226 */
+  Py_INCREF(__pyx_v_pout);
+  __pyx_r = __pyx_v_pout;
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; Py_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1:;
+  Py_XDECREF(__pyx_3);
+  __Pyx_AddTraceback("fuzzy.Soundex.__call__");
+  __pyx_r = 0;
+  __pyx_L0:;
+  Py_DECREF(__pyx_v_pout);
+  Py_DECREF(__pyx_v_self);
+  Py_DECREF(__pyx_v_s);
+  return __pyx_r;
+}
+
+static int __pyx_f_5fuzzy_10DMetaphone___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_f_5fuzzy_10DMetaphone___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_size = 0;
+  int __pyx_r;
+  PyObject *__pyx_1 = 0;
+  int __pyx_2;
+  static char *__pyx_argnames[] = {"size",0};
+  __pyx_v_size = __pyx_d1;
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "|O", __pyx_argnames, &__pyx_v_size)) return -1;
+  Py_INCREF(__pyx_v_self);
+  Py_INCREF(__pyx_v_size);
+  __pyx_1 = __pyx_v_size;
+  Py_INCREF(__pyx_1);
+  __pyx_2 = PyObject_IsTrue(__pyx_1); if (__pyx_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;}
+  if (!__pyx_2) {
+    Py_DECREF(__pyx_1); __pyx_1 = 0;
+    __pyx_1 = PyInt_FromLong(99999); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;}
+  }
+  __pyx_2 = PyInt_AsLong(__pyx_1); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  ((struct __pyx_obj_5fuzzy_DMetaphone *)__pyx_v_self)->size = __pyx_2;
+
+  __pyx_r = 0;
+  goto __pyx_L0;
+  __pyx_L1:;
+  Py_XDECREF(__pyx_1);
+  __Pyx_AddTraceback("fuzzy.DMetaphone.__init__");
+  __pyx_r = -1;
+  __pyx_L0:;
+  Py_DECREF(__pyx_v_self);
+  Py_DECREF(__pyx_v_size);
+  return __pyx_r;
+}
+
+static PyObject *__pyx_f_5fuzzy_10DMetaphone___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5fuzzy_10DMetaphone___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_s = 0;
+  char *__pyx_v_cs;
+  char **__pyx_v_out;
+  PyObject *__pyx_v_o1;
+  PyObject *__pyx_v_o2;
+  PyObject *__pyx_r;
+  char *__pyx_1;
+  PyObject *__pyx_2 = 0;
+  int __pyx_3;
+  PyObject *__pyx_4 = 0;
+  PyObject *__pyx_5 = 0;
+  static char *__pyx_argnames[] = {"s",0};
+  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_s)) return 0;
+  Py_INCREF(__pyx_v_self);
+  Py_INCREF(__pyx_v_s);
+  __pyx_v_o1 = Py_None; Py_INCREF(Py_None);
+  __pyx_v_o2 = Py_None; Py_INCREF(Py_None);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":242 */
+  __pyx_v_out = ((char **)malloc(((sizeof(char *)) * 2)));
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":243 */
+  __pyx_1 = PyString_AsString(__pyx_v_s); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; goto __pyx_L1;}
+  __pyx_v_cs = __pyx_1;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":244 */
+  DoubleMetaphone(__pyx_v_cs,__pyx_v_out);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":245 */
+  __pyx_2 = PyString_FromString((__pyx_v_out[0])); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; goto __pyx_L1;}
+  Py_DECREF(__pyx_v_o1);
+  __pyx_v_o1 = __pyx_2;
+  __pyx_2 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":246 */
+  __pyx_2 = PyString_FromString((__pyx_v_out[1])); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; goto __pyx_L1;}
+  Py_DECREF(__pyx_v_o2);
+  __pyx_v_o2 = __pyx_2;
+  __pyx_2 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":247 */
+  __pyx_3 = ((__pyx_v_out[0]) != NULL);
+  if (__pyx_3) {
+    free((__pyx_v_out[0]));
+    goto __pyx_L2;
+  }
+  __pyx_L2:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":249 */
+  __pyx_3 = ((__pyx_v_out[1]) != NULL);
+  if (__pyx_3) {
+    free((__pyx_v_out[1]));
+    goto __pyx_L3;
+  }
+  __pyx_L3:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":252 */
+  free(__pyx_v_out);
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":254 */
+  if (PyObject_Cmp(__pyx_v_o1, __pyx_v_o2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; goto __pyx_L1;}
+  __pyx_3 = __pyx_3 == 0;
+  if (__pyx_3) {
+    Py_INCREF(Py_None);
+    Py_DECREF(__pyx_v_o2);
+    __pyx_v_o2 = Py_None;
+    goto __pyx_L4;
+  }
+  __pyx_L4:;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":257 */
+  __pyx_2 = __pyx_v_o1;
+  Py_INCREF(__pyx_2);
+  __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  if (__pyx_3) {
+    Py_DECREF(__pyx_2); __pyx_2 = 0;
+    __pyx_2 = PySequence_GetSlice(__pyx_v_o1, 0, ((struct __pyx_obj_5fuzzy_DMetaphone *)__pyx_v_self)->size); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  }
+  __pyx_3 = PyObject_IsTrue(__pyx_2); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  if (!__pyx_3) {
+    Py_DECREF(__pyx_2); __pyx_2 = 0;
+    __pyx_2 = Py_None;
+    Py_INCREF(__pyx_2);
+  }
+  __pyx_4 = __pyx_v_o2;
+  Py_INCREF(__pyx_4);
+  __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  if (__pyx_3) {
+    Py_DECREF(__pyx_4); __pyx_4 = 0;
+    __pyx_4 = PySequence_GetSlice(__pyx_v_o2, 0, ((struct __pyx_obj_5fuzzy_DMetaphone *)__pyx_v_self)->size); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  }
+  __pyx_3 = PyObject_IsTrue(__pyx_4); if (__pyx_3 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  if (!__pyx_3) {
+    Py_DECREF(__pyx_4); __pyx_4 = 0;
+    __pyx_4 = Py_None;
+    Py_INCREF(__pyx_4);
+  }
+  __pyx_5 = PyList_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
+  PyList_SET_ITEM(__pyx_5, 0, __pyx_2);
+  PyList_SET_ITEM(__pyx_5, 1, __pyx_4);
+  __pyx_2 = 0;
+  __pyx_4 = 0;
+  __pyx_r = __pyx_5;
+  __pyx_5 = 0;
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; Py_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1:;
+  Py_XDECREF(__pyx_2);
+  Py_XDECREF(__pyx_4);
+  Py_XDECREF(__pyx_5);
+  __Pyx_AddTraceback("fuzzy.DMetaphone.__call__");
+  __pyx_r = 0;
+  __pyx_L0:;
+  Py_DECREF(__pyx_v_o1);
+  Py_DECREF(__pyx_v_o2);
+  Py_DECREF(__pyx_v_self);
+  Py_DECREF(__pyx_v_s);
+  return __pyx_r;
+}
+
+static PyObject *__pyx_tp_new_5fuzzy_Soundex(PyTypeObject *t, PyObject *a, PyObject *k) {
+  PyObject *o = (*t->tp_alloc)(t, 0);
+  if (!o) return 0;
+  return o;
+}
+
+static void __pyx_tp_dealloc_5fuzzy_Soundex(PyObject *o) {
+  (*o->ob_type->tp_free)(o);
+}
+
+static struct PyMethodDef __pyx_methods_5fuzzy_Soundex[] = {
+  {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_Soundex = {
+  0, /*nb_add*/
+  0, /*nb_subtract*/
+  0, /*nb_multiply*/
+  0, /*nb_divide*/
+  0, /*nb_remainder*/
+  0, /*nb_divmod*/
+  0, /*nb_power*/
+  0, /*nb_negative*/
+  0, /*nb_positive*/
+  0, /*nb_absolute*/
+  0, /*nb_nonzero*/
+  0, /*nb_invert*/
+  0, /*nb_lshift*/
+  0, /*nb_rshift*/
+  0, /*nb_and*/
+  0, /*nb_xor*/
+  0, /*nb_or*/
+  0, /*nb_coerce*/
+  0, /*nb_int*/
+  0, /*nb_long*/
+  0, /*nb_float*/
+  0, /*nb_oct*/
+  0, /*nb_hex*/
+  0, /*nb_inplace_add*/
+  0, /*nb_inplace_subtract*/
+  0, /*nb_inplace_multiply*/
+  0, /*nb_inplace_divide*/
+  0, /*nb_inplace_remainder*/
+  0, /*nb_inplace_power*/
+  0, /*nb_inplace_lshift*/
+  0, /*nb_inplace_rshift*/
+  0, /*nb_inplace_and*/
+  0, /*nb_inplace_xor*/
+  0, /*nb_inplace_or*/
+  0, /*nb_floor_divide*/
+  0, /*nb_true_divide*/
+  0, /*nb_inplace_floor_divide*/
+  0, /*nb_inplace_true_divide*/
+  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
+  0, /*nb_index*/
+  #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_Soundex = {
+  0, /*sq_length*/
+  0, /*sq_concat*/
+  0, /*sq_repeat*/
+  0, /*sq_item*/
+  0, /*sq_slice*/
+  0, /*sq_ass_item*/
+  0, /*sq_ass_slice*/
+  0, /*sq_contains*/
+  0, /*sq_inplace_concat*/
+  0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_Soundex = {
+  0, /*mp_length*/
+  0, /*mp_subscript*/
+  0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_Soundex = {
+  0, /*bf_getreadbuffer*/
+  0, /*bf_getwritebuffer*/
+  0, /*bf_getsegcount*/
+  0, /*bf_getcharbuffer*/
+};
+
+PyTypeObject __pyx_type_5fuzzy_Soundex = {
+  PyObject_HEAD_INIT(0)
+  0, /*ob_size*/
+  "fuzzy.Soundex", /*tp_name*/
+  sizeof(struct __pyx_obj_5fuzzy_Soundex), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_5fuzzy_Soundex, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
+  0, /*tp_compare*/
+  0, /*tp_repr*/
+  &__pyx_tp_as_number_Soundex, /*tp_as_number*/
+  &__pyx_tp_as_sequence_Soundex, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping_Soundex, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_f_5fuzzy_7Soundex___call__, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  &__pyx_tp_as_buffer_Soundex, /*tp_as_buffer*/
+  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+  0, /*tp_doc*/
+  0, /*tp_traverse*/
+  0, /*tp_clear*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_5fuzzy_Soundex, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_f_5fuzzy_7Soundex___init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_5fuzzy_Soundex, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+};
+
+static PyObject *__pyx_tp_new_5fuzzy_DMetaphone(PyTypeObject *t, PyObject *a, PyObject *k) {
+  PyObject *o = (*t->tp_alloc)(t, 0);
+  if (!o) return 0;
+  return o;
+}
+
+static void __pyx_tp_dealloc_5fuzzy_DMetaphone(PyObject *o) {
+  (*o->ob_type->tp_free)(o);
+}
+
+static struct PyMethodDef __pyx_methods_5fuzzy_DMetaphone[] = {
+  {0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_DMetaphone = {
+  0, /*nb_add*/
+  0, /*nb_subtract*/
+  0, /*nb_multiply*/
+  0, /*nb_divide*/
+  0, /*nb_remainder*/
+  0, /*nb_divmod*/
+  0, /*nb_power*/
+  0, /*nb_negative*/
+  0, /*nb_positive*/
+  0, /*nb_absolute*/
+  0, /*nb_nonzero*/
+  0, /*nb_invert*/
+  0, /*nb_lshift*/
+  0, /*nb_rshift*/
+  0, /*nb_and*/
+  0, /*nb_xor*/
+  0, /*nb_or*/
+  0, /*nb_coerce*/
+  0, /*nb_int*/
+  0, /*nb_long*/
+  0, /*nb_float*/
+  0, /*nb_oct*/
+  0, /*nb_hex*/
+  0, /*nb_inplace_add*/
+  0, /*nb_inplace_subtract*/
+  0, /*nb_inplace_multiply*/
+  0, /*nb_inplace_divide*/
+  0, /*nb_inplace_remainder*/
+  0, /*nb_inplace_power*/
+  0, /*nb_inplace_lshift*/
+  0, /*nb_inplace_rshift*/
+  0, /*nb_inplace_and*/
+  0, /*nb_inplace_xor*/
+  0, /*nb_inplace_or*/
+  0, /*nb_floor_divide*/
+  0, /*nb_true_divide*/
+  0, /*nb_inplace_floor_divide*/
+  0, /*nb_inplace_true_divide*/
+  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
+  0, /*nb_index*/
+  #endif
+};
+
+static PySequenceMethods __pyx_tp_as_sequence_DMetaphone = {
+  0, /*sq_length*/
+  0, /*sq_concat*/
+  0, /*sq_repeat*/
+  0, /*sq_item*/
+  0, /*sq_slice*/
+  0, /*sq_ass_item*/
+  0, /*sq_ass_slice*/
+  0, /*sq_contains*/
+  0, /*sq_inplace_concat*/
+  0, /*sq_inplace_repeat*/
+};
+
+static PyMappingMethods __pyx_tp_as_mapping_DMetaphone = {
+  0, /*mp_length*/
+  0, /*mp_subscript*/
+  0, /*mp_ass_subscript*/
+};
+
+static PyBufferProcs __pyx_tp_as_buffer_DMetaphone = {
+  0, /*bf_getreadbuffer*/
+  0, /*bf_getwritebuffer*/
+  0, /*bf_getsegcount*/
+  0, /*bf_getcharbuffer*/
+};
+
+PyTypeObject __pyx_type_5fuzzy_DMetaphone = {
+  PyObject_HEAD_INIT(0)
+  0, /*ob_size*/
+  "fuzzy.DMetaphone", /*tp_name*/
+  sizeof(struct __pyx_obj_5fuzzy_DMetaphone), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_5fuzzy_DMetaphone, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
+  0, /*tp_compare*/
+  0, /*tp_repr*/
+  &__pyx_tp_as_number_DMetaphone, /*tp_as_number*/
+  &__pyx_tp_as_sequence_DMetaphone, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping_DMetaphone, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_f_5fuzzy_10DMetaphone___call__, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  &__pyx_tp_as_buffer_DMetaphone, /*tp_as_buffer*/
+  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+  0, /*tp_doc*/
+  0, /*tp_traverse*/
+  0, /*tp_clear*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_5fuzzy_DMetaphone, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_f_5fuzzy_10DMetaphone___init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_5fuzzy_DMetaphone, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+};
+
+static struct PyMethodDef __pyx_methods[] = {
+  {"nysiis", (PyCFunction)__pyx_f_5fuzzy_nysiis, METH_VARARGS|METH_KEYWORDS, 0},
+  {0, 0, 0, 0}
+};
+
+static void __pyx_init_filenames(void); /*proto*/
+
+PyMODINIT_FUNC initfuzzy(void); /*proto*/
+PyMODINIT_FUNC initfuzzy(void) {
+  PyObject *__pyx_1 = 0;
+  PyObject *__pyx_2 = 0;
+  PyObject *__pyx_3 = 0;
+  __pyx_init_filenames();
+  __pyx_m = Py_InitModule4("fuzzy", __pyx_methods, 0, 0, PYTHON_API_VERSION);
+  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
+  Py_INCREF(__pyx_m);
+  __pyx_b = PyImport_AddModule("__builtin__");
+  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
+  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
+  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
+  if (PyType_Ready(&__pyx_type_5fuzzy_Soundex) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; goto __pyx_L1;}
+  if (PyObject_SetAttrString(__pyx_m, "Soundex", (PyObject *)&__pyx_type_5fuzzy_Soundex) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; goto __pyx_L1;}
+  __pyx_ptype_5fuzzy_Soundex = &__pyx_type_5fuzzy_Soundex;
+  if (PyType_Ready(&__pyx_type_5fuzzy_DMetaphone) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;}
+  if (PyObject_SetAttrString(__pyx_m, "DMetaphone", (PyObject *)&__pyx_type_5fuzzy_DMetaphone) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;}
+  __pyx_ptype_5fuzzy_DMetaphone = &__pyx_type_5fuzzy_DMetaphone;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":1 */
+  __pyx_1 = __Pyx_Import(__pyx_n_re, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n_re, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":17 */
+  __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_IX, __pyx_n_IC) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_EX, __pyx_n_EC) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_YE, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_EE, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_IE, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_DT, __pyx_n_D) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_RT, __pyx_n_D) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_RD, __pyx_n_D) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_NT, __pyx_n_D) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_ND, __pyx_n_D) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n__nysiis_suffix_map, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":30 */
+  __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_AY, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_DG, __pyx_n_G) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_E, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_EY, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_GHT, __pyx_n_GT) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_K, __pyx_n_C) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_KN, __pyx_n_N) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_I, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_IY, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_O, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_OY, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_PH, __pyx_n_F) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_SH, __pyx_n_S) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_SCH, __pyx_n_S) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_U, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_UY, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_WR, __pyx_n_R) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_YW, __pyx_n_Y) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n__nysiis_transforms, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":51 */
+  __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_AH, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_AW, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_EH, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_EV, __pyx_n_AF) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_EW, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_HA, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_HE, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_HI, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_HO, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_HU, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_IH, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_IW, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_M, __pyx_n_N) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_OH, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_OW, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_Q, __pyx_n_G) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_UH, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_UW, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_Z, __pyx_n_S) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n__nysiis_trans_not_first, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":73 */
+  __pyx_1 = PyDict_New(); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;}
+  if (PyDict_SetItem(__pyx_1, __pyx_n_Y, __pyx_n_A) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;}
+  if (PyObject_SetAttr(__pyx_m, __pyx_n__nysiis_trans_middle, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":77 */
+  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_re); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;}
+  __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_compile); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;}
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;}
+  Py_INCREF(__pyx_k80p);
+  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_k80p);
+  __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;}
+  Py_DECREF(__pyx_2); __pyx_2 = 0;
+  Py_DECREF(__pyx_1); __pyx_1 = 0;
+  if (PyObject_SetAttr(__pyx_m, __pyx_n__non_AZ, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;}
+  Py_DECREF(__pyx_3); __pyx_3 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":236 */
+  __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; goto __pyx_L1;}
+  __pyx_d1 = __pyx_2;
+  __pyx_2 = 0;
+
+  /* "/Users/chmullig/programming/fuzzy/src/fuzzy.pyx":239 */
+  return;
+  __pyx_L1:;
+  Py_XDECREF(__pyx_1);
+  Py_XDECREF(__pyx_2);
+  Py_XDECREF(__pyx_3);
+  __Pyx_AddTraceback("fuzzy");
+}
+
+static char *__pyx_filenames[] = {
+  "fuzzy.pyx",
+};
+
+/* Runtime support code */
+
+static void __pyx_init_filenames(void) {
+  __pyx_f = __pyx_filenames;
+}
+
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
+    PyObject *result;
+    result = PyObject_GetAttr(dict, name);
+    if (!result)
+        PyErr_SetObject(PyExc_NameError, name);
+    return result;
+}
+
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
+    while (t->p) {
+        *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
+        if (!*t->p)
+            return -1;
+        if (t->i)
+            PyString_InternInPlace(t->p);
+        ++t;
+    }
+    return 0;
+}
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
+    PyObject *__import__ = 0;
+    PyObject *empty_list = 0;
+    PyObject *module = 0;
+    PyObject *global_dict = 0;
+    PyObject *empty_dict = 0;
+    PyObject *list;
+    __import__ = PyObject_GetAttrString(__pyx_b, "__import__");
+    if (!__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;
+    module = PyObject_CallFunction(__import__, "OOOO",
+        name, global_dict, empty_dict, list);
+bad:
+    Py_XDECREF(empty_list);
+    Py_XDECREF(__import__);
+    Py_XDECREF(empty_dict);
+    return module;
+}
+
+#include "compile.h"
+#include "frameobject.h"
+#include "traceback.h"
+
+static void __Pyx_AddTraceback(char *funcname) {
+    PyObject *py_srcfile = 0;
+    PyObject *py_funcname = 0;
+    PyObject *py_globals = 0;
+    PyObject *empty_tuple = 0;
+    PyObject *empty_string = 0;
+    PyCodeObject *py_code = 0;
+    PyFrameObject *py_frame = 0;
+    
+    py_srcfile = PyString_FromString(__pyx_filename);
+    if (!py_srcfile) goto bad;
+    py_funcname = PyString_FromString(funcname);
+    if (!py_funcname) goto bad;
+    py_globals = PyModule_GetDict(__pyx_m);
+    if (!py_globals) goto bad;
+    empty_tuple = PyTuple_New(0);
+    if (!empty_tuple) goto bad;
+    empty_string = PyString_FromString("");
+    if (!empty_string) goto bad;
+    py_code = PyCode_New(
+        0,            /*int argcount,*/
+        0,            /*int nlocals,*/
+        0,            /*int stacksize,*/
+        0,            /*int flags,*/
+        empty_string, /*PyObject *code,*/
+        empty_tuple,  /*PyObject *consts,*/
+        empty_tuple,  /*PyObject *names,*/
+        empty_tuple,  /*PyObject *varnames,*/
+        empty_tuple,  /*PyObject *freevars,*/
+        empty_tuple,  /*PyObject *cellvars,*/
+        py_srcfile,   /*PyObject *filename,*/
+        py_funcname,  /*PyObject *name,*/
+        __pyx_lineno,   /*int firstlineno,*/
+        empty_string  /*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(empty_tuple);
+    Py_XDECREF(empty_string);
+    Py_XDECREF(py_code);
+    Py_XDECREF(py_frame);
+}