/*
 * Module code.
 *
 * Generated by SIP 6.7.9
 *
 *     Copyright: (c) 2020 by Total Control Software
 *     License:   wxWindows License
 */

#include "sipAPI_adv.h"
        #include <wx/object.h>
        #include <wx/animate.h>
        #include <wx/window.h>
        #include <wx/gdicmn.h>
        #include <wx/gdicmn.h>
        #include <wx/frame.h>
        #include <wx/event.h>
        #include <wx/validate.h>
        #include <wx/menu.h>
        #include <wx/bmpbndl.h>
        #include <wx/stream.h>
        #include <wx/animdecod.h>
        #include <wx/image.h>
        #include <wx/colour.h>
        #include <wx/toolbar.h>
        #include <wx/statusbr.h>
        #include <wx/gdicmn.h>
        #include <wx/combo.h>
        #include <wx/event.h>
        #include <wx/dc.h>
        #include <wx/bitmap.h>
        #include <wx/wizard.h>
        #include <wx/sizer.h>
        #include <wx/bookctrl.h>
        #include <wx/aboutdlg.h>
        #include <wx/tipdlg.h>
        #include <wx/generic/helpext.h>
        #include <wx/commandlinkbutton.h>
        #include <wx/datectrl.h>
        #include <wx/datectrl.h>
        #include <wx/generic/datectrl.h>
        #include <wx/calctrl.h>
        #include <wx/calctrl.h>
        #include <wx/calctrl.h>
        #include <wx/generic/calctrlg.h>
        #include <wx/hyperlink.h>
        #include <wx/taskbar.h>
        #include <wx/sound.h>
        #include <wx/joystick.h>
        #include <wx/anidecod.h>
        #include <wx/gifdecod.h>
        #include <wx/animate.h>
        #include <wx/bannerwindow.h>
        #include <wx/editlbox.h>
        #include <wx/notifmsg.h>
        #include <wx/sashwin.h>
        #include <wx/laywin.h>
        #include <wx/laywin.h>
        #include <wx/odcombo.h>
        #include <wx/bmpcbox.h>
        #include <wx/timectrl.h>
        #include <wx/wizard.h>
        #include <wx/wizard.h>
        #include <wx/propdlg.h>

/* Define the strings used by this module. */
const char sipStrings__adv[] = {
    'w', 'x', 'E', 'V', 'T', '_', 'N', 'O', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', '_', 'D', 'I', 'S', 'M', 'I', 'S', 'S', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'N', 'O', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', '_', 'A', 'C', 'T', 'I', 'O', 'N', 0,
    'w', 'x', 'O', 'w', 'n', 'e', 'r', 'D', 'r', 'a', 'w', 'n', 'C', 'o', 'm', 'b', 'o', 'B', 'o', 'x', 'P', 'a', 'i', 'n', 't', 'i', 'n', 'g', 'F', 'l', 'a', 'g', 's', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'N', 'O', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', '_', 'C', 'L', 'I', 'C', 'K', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'B', 'E', 'F', 'O', 'R', 'E', '_', 'P', 'A', 'G', 'E', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'G', 'e', 't', 'M', 'a', 'i', 'n', 'W', 'i', 'n', 'd', 'o', 'w', 'O', 'f', 'C', 'o', 'm', 'p', 'o', 's', 'i', 't', 'e', 'C', 'o', 'n', 't', 'r', 'o', 'l', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'D', 'e', 'c', 'o', 'd', 'e', 'r', 'L', 'i', 's', 't', '_', 'i', 't', 'e', 'r', 'a', 't', 'o', 'r', 0,
    'C', 'A', 'L', '_', 'S', 'E', 'Q', 'U', 'E', 'N', 'T', 'I', 'A', 'L', '_', 'M', 'O', 'N', 'T', 'H', '_', 'S', 'E', 'L', 'E', 'C', 'T', 'I', 'O', 'N', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'W', 'E', 'E', 'K', 'D', 'A', 'Y', '_', 'C', 'L', 'I', 'C', 'K', 'E', 'D', 0,
    'I', 's', 'U', 's', 'i', 'n', 'g', 'W', 'i', 'n', 'd', 'o', 'w', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'B', 'A', 'L', 'L', 'O', 'O', 'N', '_', 'T', 'I', 'M', 'E', 'O', 'U', 'T', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'S', 'U', 'R', 'R', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'W', 'E', 'E', 'K', 0,
    'S', 'e', 't', 'U', 's', 'e', 'W', 'i', 'n', 'd', 'o', 'w', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'D', 'O', 'U', 'B', 'L', 'E', 'C', 'L', 'I', 'C', 'K', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'M', 'O', 'N', 'T', 'H', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'P', 'A', 'G', 'E', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'W', 'E', 'E', 'K', '_', 'C', 'L', 'I', 'C', 'K', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'Y', 'E', 'A', 'R', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'B', 'A', 'L', 'L', 'O', 'O', 'N', '_', 'C', 'L', 'I', 'C', 'K', 0,
    'C', 'A', 'L', '_', 'S', 'H', 'O', 'W', '_', 'S', 'U', 'R', 'R', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'W', 'E', 'E', 'K', 'S', 0,
    'G', 'e', 't', 'D', 'e', 'f', 'a', 'u', 'l', 't', 'B', 'o', 'r', 'd', 'e', 'r', 'F', 'o', 'r', 'C', 'o', 'n', 't', 'r', 'o', 'l', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'D', 'A', 'Y', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', '_', 'S', 'E', 'L', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'R', 'I', 'G', 'H', 'T', '_', 'D', 'C', 'L', 'I', 'C', 'K', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'P', 'A', 'G', 'E', '_', 'C', 'H', 'A', 'N', 'G', 'I', 'N', 'G', 0,
    'w', 'x', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'S', 'h', 'e', 'e', 't', 'D', 'i', 'a', 'l', 'o', 'g', 'F', 'l', 'a', 'g', 's', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'C', 'o', 'm', 'p', 'a', 't', 'i', 'b', 'l', 'e', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'G', 'e', 't', 'C', 'l', 'a', 's', 's', 'D', 'e', 'f', 'a', 'u', 'l', 't', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 's', 0,
    'S', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'L', 'E', 'F', 'T', '_', 'D', 'C', 'L', 'I', 'C', 'K', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'P', 'A', 'G', 'E', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'A', 'c', 'c', 'e', 'p', 't', 's', 'F', 'o', 'c', 'u', 's', 'F', 'r', 'o', 'm', 'K', 'e', 'y', 'b', 'o', 'a', 'r', 'd', 0,
    'H', 'a', 's', 'T', 'r', 'a', 'n', 's', 'p', 'a', 'r', 'e', 'n', 't', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'B', 'U', 'T', 'T', 'O', 'N', 'T', 'O', 'O', 'L', 'B', 'O', 'O', 'K', 0,
    'S', 'A', 'S', 'H', '_', 'S', 'T', 'A', 'T', 'U', 'S', '_', 'O', 'U', 'T', '_', 'O', 'F', '_', 'R', 'A', 'N', 'G', 'E', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'R', 'I', 'G', 'H', 'T', '_', 'D', 'O', 'W', 'N', 0,
    'A', 'c', 'c', 'e', 'p', 't', 's', 'F', 'o', 'c', 'u', 's', 'R', 'e', 'c', 'u', 'r', 's', 'i', 'v', 'e', 'l', 'y', 0,
    'S', 'P', 'L', 'A', 'S', 'H', '_', 'C', 'E', 'N', 'T', 'R', 'E', '_', 'O', 'N', '_', 'P', 'A', 'R', 'E', 'N', 'T', 0,
    'S', 'P', 'L', 'A', 'S', 'H', '_', 'C', 'E', 'N', 'T', 'R', 'E', '_', 'O', 'N', '_', 'S', 'C', 'R', 'E', 'E', 'N', 0,
    'w', 'x', 'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'H', 'i', 't', 'T', 'e', 's', 't', 'R', 'e', 's', 'u', 'l', 't', 0,
    'w', 'x', 'D', 'a', 't', 'e', 'P', 'i', 'c', 'k', 'e', 'r', 'C', 't', 'r', 'l', 'G', 'e', 'n', 'e', 'r', 'i', 'c', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'I', 'N', 'F', 'O', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'L', 'E', 'F', 'T', '_', 'D', 'O', 'W', 'N', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'P', 'A', 'G', 'E', '_', 'S', 'H', 'O', 'W', 'N', 0,
    'A', 'N', 'I', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'Y', 'P', 'E', '_', 'I', 'N', 'V', 'A', 'L', 'I', 'D', 0,
    'E', 'd', 'i', 't', 'a', 'b', 'l', 'e', 'L', 'i', 's', 't', 'B', 'o', 'x', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'O', 'D', 'C', 'B', '_', 'P', 'A', 'I', 'N', 'T', 'I', 'N', 'G', '_', 'S', 'E', 'L', 'E', 'C', 'T', 'E', 'D', 0,
    'O', 'D', 'C', 'B', '_', 'S', 'T', 'D', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'P', 'A', 'I', 'N', 'T', 0,
    'T', 'r', 'a', 'n', 's', 'f', 'e', 'r', 'D', 'a', 't', 'a', 'F', 'r', 'o', 'm', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'D', 'e', 'c', 'o', 'd', 'e', 'r', 'L', 'i', 's', 't', 0,
    'w', 'x', 'C', 'a', 'l', 'c', 'u', 'l', 'a', 't', 'e', 'L', 'a', 'y', 'o', 'u', 't', 'E', 'v', 'e', 'n', 't', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'C', 'A', 'L', 'C', 'U', 'L', 'A', 'T', 'E', '_', 'L', 'A', 'Y', 'O', 'U', 'T', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'R', 'I', 'G', 'H', 'T', '_', 'U', 'P', 0,
    'w', 'x', 'G', 'e', 'n', 'e', 'r', 'i', 'c', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'C', 't', 'r', 'l', 0,
    'w', 'x', 'Q', 'u', 'e', 'r', 'y', 'L', 'a', 'y', 'o', 'u', 't', 'I', 'n', 'f', 'o', 'E', 'v', 'e', 'n', 't', 0,
    'B', 'i', 't', 'm', 'a', 'p', 'C', 'o', 'm', 'b', 'o', 'B', 'o', 'x', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'C', 'A', 'L', '_', 'S', 'H', 'O', 'W', '_', 'W', 'E', 'E', 'K', '_', 'N', 'U', 'M', 'B', 'E', 'R', 'S', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'F', 'i', 'l', 'e', 'T', 'i', 'p', 'P', 'r', 'o', 'v', 'i', 'd', 'e', 'r', 0,
    'G', 'e', 't', 'M', 'i', 'n', 'i', 'm', 'u', 'm', 'B', 'i', 't', 'm', 'a', 'p', 'W', 'i', 'd', 't', 'h', 0,
    'G', 'e', 't', 'W', 'e', 'b', 'S', 'i', 't', 'e', 'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0,
    'O', 'D', 'C', 'B', '_', 'P', 'A', 'I', 'N', 'T', 'I', 'N', 'G', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'S', 'H', 'R', 'I', 'N', 'K', 'T', 'O', 'F', 'I', 'T', 0,
    'S', 'e', 't', 'M', 'i', 'n', 'i', 'm', 'u', 'm', 'B', 'i', 't', 'm', 'a', 'p', 'W', 'i', 'd', 't', 'h', 0,
    'T', 'B', 'I', '_', 'C', 'U', 'S', 'T', 'O', 'M', '_', 'S', 'T', 'A', 'T', 'U', 'S', 'I', 'T', 'E', 'M', 0,
    'T', 'i', 'm', 'e', 'P', 'i', 'c', 'k', 'e', 'r', 'C', 't', 'r', 'l', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'L', 'E', 'F', 'T', '_', 'U', 'P', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'F', 'I', 'N', 'I', 'S', 'H', 'E', 'D', 0,
    'w', 'x', 'G', 'e', 'n', 'e', 'r', 'i', 'c', 'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'C', 't', 'r', 'l', 0,
    'w', 'x', 'N', 'o', 't', 'i', 'f', 'i', 'c', 'a', 't', 'i', 'o', 'n', 'M', 'e', 's', 's', 'a', 'g', 'e', 0,
    'w', 'x', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'S', 'h', 'e', 'e', 't', 'D', 'i', 'a', 'l', 'o', 'g', 0,
    'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'C', 't', 'r', 'l', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'D', 'E', 'C', 'M', 'O', 'N', 'T', 'H', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'I', 'N', 'C', 'M', 'O', 'N', 'T', 'H', 0,
    'D', 'r', 'a', 'w', 'R', 'o', 'u', 'n', 'd', 'e', 'd', 'R', 'e', 'c', 't', 'a', 'n', 'g', 'l', 'e', 0,
    'E', 'n', 'a', 'b', 'l', 'e', 'H', 'o', 'l', 'i', 'd', 'a', 'y', 'D', 'i', 's', 'p', 'l', 'a', 'y', 0,
    'G', 'e', 't', 'D', 'e', 'f', 'a', 'u', 'l', 't', 'B', 'o', 'r', 'd', 'e', 'r', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'H', 'i', 'g', 'h', 'l', 'i', 'g', 'h', 't', 'C', 'o', 'l', 'o', 'u', 'r', 'B', 'g', 0,
    'G', 'e', 't', 'H', 'i', 'g', 'h', 'l', 'i', 'g', 'h', 't', 'C', 'o', 'l', 'o', 'u', 'r', 'F', 'g', 0,
    'G', 'e', 't', 'M', 'o', 'v', 'e', 'm', 'e', 'n', 't', 'T', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', 0,
    'G', 'e', 't', 'T', 'r', 'a', 'n', 's', 'p', 'a', 'r', 'e', 'n', 't', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'H', 'y', 'p', 'e', 'r', 'l', 'i', 'n', 'k', 'C', 't', 'r', 'l', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'I', 'n', 'f', 'o', 'r', 'm', 'F', 'i', 'r', 's', 't', 'D', 'i', 'r', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'I', 'n', 'i', 't', 'S', 't', 'a', 'n', 'd', 'a', 'r', 'd', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 's', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'C', 'H', 'O', 'I', 'C', 'E', 'B', 'O', 'O', 'K', 0,
    'S', 'e', 't', 'D', 'e', 'f', 'a', 'u', 'l', 't', 'B', 'o', 'r', 'd', 'e', 'r', 'S', 'i', 'z', 'e', 0,
    'S', 'e', 't', 'M', 'o', 'v', 'e', 'm', 'e', 'n', 't', 'T', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', 0,
    'S', 'h', 'o', 'u', 'l', 'd', 'I', 'n', 'h', 'e', 'r', 'i', 't', 'C', 'o', 'l', 'o', 'u', 'r', 's', 0,
    'S', 'h', 'o', 'u', 'l', 'd', 'P', 'r', 'e', 'v', 'e', 'n', 't', 'A', 'p', 'p', 'E', 'x', 'i', 't', 0,
    'T', 'r', 'a', 'n', 's', 'f', 'e', 'r', 'D', 'a', 't', 'a', 'T', 'o', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'E', 'X', '_', 'H', 'E', 'L', 'P', 'B', 'U', 'T', 'T', 'O', 'N', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'H', 'A', 'L', 'I', 'G', 'N', '_', 'C', 'E', 'N', 'T', 'R', 'E', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'V', 'A', 'L', 'I', 'G', 'N', '_', 'B', 'O', 'T', 'T', 'O', 'M', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'V', 'A', 'L', 'I', 'G', 'N', '_', 'C', 'E', 'N', 'T', 'R', 'E', 0,
    'w', 'x', 'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'D', 'a', 't', 'e', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'w', 'x', 'O', 'w', 'n', 'e', 'r', 'D', 'r', 'a', 'w', 'n', 'C', 'o', 'm', 'b', 'o', 'B', 'o', 'x', 0,
    'B', 'a', 'n', 'n', 'e', 'r', 'W', 'i', 'n', 'd', 'o', 'w', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'N', 'O', 'W', 'H', 'E', 'R', 'E', 0,
    'C', 'A', 'L', '_', 'N', 'O', '_', 'M', 'O', 'N', 'T', 'H', '_', 'C', 'H', 'A', 'N', 'G', 'E', 0,
    'D', 'i', 's', 'p', 'l', 'a', 'y', 'C', 'o', 'n', 't', 'e', 'x', 't', 'P', 'o', 'p', 'u', 'p', 0,
    'D', 'o', 'G', 'e', 't', 'B', 'e', 's', 't', 'C', 'l', 'i', 'e', 'n', 't', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'G', 'e', 't', 'C', 'l', 'i', 'e', 'n', 't', 'A', 'r', 'e', 'a', 'O', 'r', 'i', 'g', 'i', 'n', 0,
    'G', 'e', 't', 'S', 'h', 'e', 'e', 't', 'I', 'n', 'n', 'e', 'r', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'G', 'e', 't', 'S', 'h', 'e', 'e', 't', 'O', 'u', 't', 'e', 'r', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'H', 'a', 's', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'S', 'e', 't', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'S', 'e', 't', 'H', 'i', 'g', 'h', 'l', 'i', 'g', 'h', 't', 'C', 'o', 'l', 'o', 'u', 'r', 's', 0,
    'S', 'e', 't', 'M', 'a', 'i', 'n', 'L', 'a', 'b', 'e', 'l', 'A', 'n', 'd', 'N', 'o', 't', 'e', 0,
    'S', 'e', 't', 'S', 'h', 'e', 'e', 't', 'I', 'n', 'n', 'e', 'r', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'S', 'e', 't', 'S', 'h', 'e', 'e', 't', 'O', 'u', 't', 'e', 'r', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'B', 'o', 't', 't', 'o', 'm', 'R', 'i', 'g', 'h', 't', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'H', 'A', 'L', 'I', 'G', 'N', '_', 'R', 'I', 'G', 'H', 'T', 0,
    'm', 'i', 'l', 'l', 'i', 's', 'e', 'c', 'o', 'n', 'd', 's', 'T', 'i', 'm', 'e', 'o', 'u', 't', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'D', 'i', 's', 'p', 'o', 's', 'a', 'l', 0,
    'w', 'x', 'C', 'o', 'm', 'm', 'a', 'n', 'd', 'L', 'i', 'n', 'k', 'B', 'u', 't', 't', 'o', 'n', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'C', 'L', 'I', 'C', 'K', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'C', 'A', 'N', 'C', 'E', 'L', 0,
    'w', 'x', 'E', 'x', 't', 'H', 'e', 'l', 'p', 'C', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', 0,
    'w', 'x', 'L', 'a', 'y', 'o', 'u', 't', 'O', 'r', 'i', 'e', 'n', 't', 'a', 't', 'i', 'o', 'n', 0,
    'A', 'N', 'I', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'N', 'I', 0,
    'A', 'N', 'I', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'N', 'Y', 0,
    'A', 'N', 'I', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'Y', 'P', 'E', '_', 'G', 'I', 'F', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'H', 'E', 'A', 'D', 'E', 'R', 0,
    'C', 'A', 'L', '_', 'N', 'O', '_', 'Y', 'E', 'A', 'R', '_', 'C', 'H', 'A', 'N', 'G', 'E', 0,
    'D', 'o', 'S', 'e', 't', 'W', 'i', 'n', 'd', 'o', 'w', 'V', 'a', 'r', 'i', 'a', 'n', 't', 0,
    'D', 'r', 'a', 'w', 'T', 'o', 'D', 'C', 'C', 'l', 'i', 'p', 'p', 'e', 'd', 'R', 'g', 'n', 0,
    'E', 'n', 'a', 'b', 'l', 'e', 'V', 'i', 's', 'i', 'b', 'l', 'e', 'F', 'o', 'c', 'u', 's', 0,
    'G', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 'P', 'l', 'a', 'c', 'e', 'm', 'e', 'n', 't', 0,
    'G', 'e', 't', 'E', 'x', 't', 'r', 'a', 'B', 'o', 'r', 'd', 'e', 'r', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'F', 'r', 'a', 'm', 'e', 'P', 'a', 'r', 'a', 'm', 'e', 't', 'e', 'r', 's', 0,
    'G', 'e', 't', 'H', 'o', 'l', 'i', 'd', 'a', 'y', 'C', 'o', 'l', 'o', 'u', 'r', 'B', 'g', 0,
    'G', 'e', 't', 'H', 'o', 'l', 'i', 'd', 'a', 'y', 'C', 'o', 'l', 'o', 'u', 'r', 'F', 'g', 0,
    'G', 'e', 't', 'N', 'u', 'm', 'b', 'e', 'r', 'J', 'o', 'y', 's', 't', 'i', 'c', 'k', 's', 0,
    'G', 'e', 't', 'R', 'e', 'q', 'u', 'e', 's', 't', 'e', 'd', 'L', 'e', 'n', 'g', 't', 'h', 0,
    'G', 'e', 't', 'S', 't', 'r', 'i', 'n', 'g', 'S', 'e', 'l', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'W', 'i', 'd', 'e', 's', 't', 'I', 't', 'e', 'm', 'W', 'i', 'd', 't', 'h', 0,
    'O', 'D', 'C', 'B', '_', 'D', 'C', 'L', 'I', 'C', 'K', '_', 'C', 'Y', 'C', 'L', 'E', 'S', 0,
    'O', 'n', 'M', 'e', 'a', 's', 'u', 'r', 'e', 'I', 't', 'e', 'm', 'W', 'i', 'd', 't', 'h', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'L', 'I', 'S', 'T', 'B', 'O', 'O', 'K', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'N', 'O', 'T', 'E', 'B', 'O', 'O', 'K', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'T', 'O', 'O', 'L', 'B', 'O', 'O', 'K', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'T', 'R', 'E', 'E', 'B', 'O', 'O', 'K', 0,
    'S', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 'P', 'l', 'a', 'c', 'e', 'm', 'e', 'n', 't', 0,
    'S', 'e', 't', 'E', 'x', 't', 'r', 'a', 'B', 'o', 'r', 'd', 'e', 'r', 'S', 'i', 'z', 'e', 0,
    'S', 'e', 't', 'F', 'r', 'a', 'm', 'e', 'P', 'a', 'r', 'a', 'm', 'e', 't', 'e', 'r', 's', 0,
    'S', 'e', 't', 'L', 'o', 'g', 'i', 'c', 'a', 'l', 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'R', 'e', 'q', 'u', 'e', 's', 't', 'e', 'd', 'L', 'e', 'n', 'g', 't', 'h', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'B', 'o', 't', 't', 'o', 'm', 'L', 'e', 'f', 't', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'H', 'A', 'L', 'I', 'G', 'N', '_', 'L', 'E', 'F', 'T', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'D', 'e', 'c', 'o', 'd', 'e', 'r', 0,
    'w', 'x', 'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'D', 'a', 't', 'e', 'A', 't', 't', 'r', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'D', 'A', 'T', 'E', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'S', 'A', 'S', 'H', '_', 'D', 'R', 'A', 'G', 'G', 'E', 'D', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'A', 'S', 'K', 'B', 'A', 'R', '_', 'M', 'O', 'V', 'E', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'T', 'I', 'M', 'E', '_', 'C', 'H', 'A', 'N', 'G', 'E', 'D', 0,
    'w', 'x', 'S', 'a', 's', 'h', 'E', 'd', 'g', 'e', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'w', 'x', 'S', 'a', 's', 'h', 'L', 'a', 'y', 'o', 'u', 't', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'w', 'x', 'T', 'a', 's', 'k', 'B', 'a', 'r', 'I', 'c', 'o', 'n', 'E', 'v', 'e', 'n', 't', 0,
    'w', 'x', 'W', 'i', 'z', 'a', 'r', 'd', 'P', 'a', 'g', 'e', 'S', 'i', 'm', 'p', 'l', 'e', 0,
    'A', 'N', 'I', 'M', '_', 'T', 'O', 'B', 'A', 'C', 'K', 'G', 'R', 'O', 'U', 'N', 'D', 0,
    'C', 'A', 'L', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'S', 'Q', 'U', 'A', 'R', 'E', 0,
    'C', 'A', 'L', '_', 'S', 'H', 'O', 'W', '_', 'H', 'O', 'L', 'I', 'D', 'A', 'Y', 'S', 0,
    'D', 'o', 'S', 'e', 't', 'P', 'o', 'p', 'u', 'p', 'C', 'o', 'n', 't', 'r', 'o', 'l', 0,
    'E', 'n', 'a', 'b', 'l', 'e', 'M', 'o', 'n', 't', 'h', 'C', 'h', 'a', 'n', 'g', 'e', 0,
    'F', 'i', 'n', 'd', 'O', 'b', 'j', 'e', 'c', 't', 's', 'B', 'y', 'B', 'B', 'o', 'x', 0,
    'G', 'e', 't', 'D', 'i', 's', 'p', 'o', 's', 'a', 'l', 'M', 'e', 't', 'h', 'o', 'd', 0,
    'G', 'e', 't', 'H', 'e', 'a', 'd', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 'B', 'g', 0,
    'G', 'e', 't', 'H', 'e', 'a', 'd', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 'F', 'g', 0,
    'G', 'e', 't', 'I', 'n', 'a', 'c', 't', 'i', 'v', 'e', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'G', 'e', 't', 'I', 'n', 's', 'e', 'r', 't', 'i', 'o', 'n', 'P', 'o', 'i', 'n', 't', 0,
    'G', 'e', 't', 'M', 'a', 'n', 'u', 'f', 'a', 'c', 't', 'u', 'r', 'e', 'r', 'I', 'd', 0,
    'G', 'e', 't', 'P', 'O', 'V', 'C', 'T', 'S', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'R', 'u', 'd', 'd', 'e', 'r', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'I', 'n', 'h', 'e', 'r', 'i', 't', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 's', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', 0,
    'O', 'n', 'C', 'a', 'l', 'c', 'u', 'l', 'a', 't', 'e', 'L', 'a', 'y', 'o', 'u', 't', 0,
    'O', 'n', 'C', 'r', 'e', 'a', 't', 'e', 'S', 't', 'a', 't', 'u', 's', 'B', 'a', 'r', 0,
    'O', 'n', 'Q', 'u', 'e', 'r', 'y', 'L', 'a', 'y', 'o', 'u', 't', 'I', 'n', 'f', 'o', 0,
    'P', 'R', 'O', 'P', 'S', 'H', 'E', 'E', 'T', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', 0,
    'S', 'P', 'L', 'A', 'S', 'H', '_', 'N', 'O', '_', 'T', 'I', 'M', 'E', 'O', 'U', 'T', 0,
    'S', 'e', 't', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 'M', 'o', 'd', 'e', 0,
    'S', 'e', 't', 'H', 'o', 'l', 'i', 'd', 'a', 'y', 'C', 'o', 'l', 'o', 'u', 'r', 's', 0,
    'S', 'e', 't', 'I', 'n', 'a', 'c', 't', 'i', 'v', 'e', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'S', 'e', 't', 'T', 'e', 'x', 't', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 0,
    'S', 'e', 't', 'T', 'e', 'x', 't', 'F', 'o', 'r', 'e', 'g', 'r', 'o', 'u', 'n', 'd', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'V', 'A', 'L', 'I', 'G', 'N', '_', 'T', 'O', 'P', 0,
    'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e', 'O', 't', 'h', 'e', 'r', 'D', 'i', 'r', 0,
    'm', 'i', 'l', 'l', 'i', 's', 'e', 'c', 'o', 'n', 'd', 's', 'D', 'e', 'l', 'a', 'y', 0,
    'w', 'x', 'A', 'b', 'o', 'u', 't', 'D', 'i', 'a', 'l', 'o', 'g', 'I', 'n', 'f', 'o', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'W', 'I', 'Z', 'A', 'R', 'D', '_', 'H', 'E', 'L', 'P', 0,
    'w', 'x', 'E', 'd', 'i', 't', 'a', 'b', 'l', 'e', 'L', 'i', 's', 't', 'B', 'o', 'x', 0,
    'w', 'x', 'L', 'a', 'y', 'o', 'u', 't', 'A', 'l', 'g', 'o', 'r', 'i', 't', 'h', 'm', 0,
    'w', 'x', 'L', 'a', 'y', 'o', 'u', 't', 'A', 'l', 'i', 'g', 'n', 'm', 'e', 'n', 't', 0,
    'w', 'x', 'T', 'a', 's', 'k', 'B', 'a', 'r', 'I', 'c', 'o', 'n', 'T', 'y', 'p', 'e', 0,
    'A', 'C', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'S', 'T', 'Y', 'L', 'E', 0,
    'A', 'C', '_', 'N', 'O', '_', 'A', 'U', 'T', 'O', 'R', 'E', 'S', 'I', 'Z', 'E', 0,
    'A', 'N', 'I', 'M', '_', 'D', 'O', 'N', 'O', 'T', 'R', 'E', 'M', 'O', 'V', 'E', 0,
    'A', 'N', 'I', 'M', '_', 'U', 'N', 'S', 'P', 'E', 'C', 'I', 'F', 'I', 'E', 'D', 0,
    'C', 'A', 'L', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'R', 'O', 'U', 'N', 'D', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'W', 'E', 'E', 'K', 0,
    'C', 'A', 'L', '_', 'M', 'O', 'N', 'D', 'A', 'Y', '_', 'F', 'I', 'R', 'S', 'T', 0,
    'C', 'A', 'L', '_', 'S', 'U', 'N', 'D', 'A', 'Y', '_', 'F', 'I', 'R', 'S', 'T', 0,
    'D', 'i', 's', 'p', 'l', 'a', 'y', 'T', 'e', 'x', 't', 'P', 'o', 'p', 'u', 'p', 0,
    'D', 'r', 'a', 'w', 'C', 'u', 'r', 'r', 'e', 'n', 't', 'F', 'r', 'a', 'm', 'e', 0,
    'E', 'L', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'S', 'T', 'Y', 'L', 'E', 0,
    'E', 'n', 'a', 'b', 'l', 'e', 'Y', 'e', 'a', 'r', 'C', 'h', 'a', 'n', 'g', 'e', 0,
    'G', 'e', 't', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'C', 'o', 'n', 't', 'e', 'n', 't', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'G', 'e', 't', 'D', 'e', 'f', 'a', 'u', 'l', 't', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'G', 'e', 't', 'E', 'v', 'e', 'n', 't', 'C', 'a', 't', 'e', 'g', 'o', 'r', 'y', 0,
    'G', 'e', 't', 'F', 'r', 'a', 'm', 'e', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'N', 'u', 'm', 'b', 'e', 'r', 'B', 'u', 't', 't', 'o', 'n', 's', 0,
    'G', 'e', 't', 'P', 'a', 'g', 'e', 'A', 'r', 'e', 'a', 'S', 'i', 'z', 'e', 'r', 0,
    'G', 'e', 't', 'T', 'e', 'x', 't', 'S', 'e', 'l', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'V', 'i', 's', 'i', 't', 'e', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'H', 'L', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'S', 'T', 'Y', 'L', 'E', 0,
    'I', 's', 'C', 'o', 'm', 'p', 'a', 't', 'i', 'b', 'l', 'e', 'W', 'i', 't', 'h', 0,
    'I', 's', 'K', 'e', 'y', 'P', 'o', 'p', 'u', 'p', 'T', 'o', 'g', 'g', 'l', 'e', 0,
    'O', 'n', 'D', 'r', 'a', 'w', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 0,
    'S', 'P', 'L', 'A', 'S', 'H', '_', 'N', 'O', '_', 'C', 'E', 'N', 'T', 'R', 'E', 0,
    'S', 'e', 'n', 'd', 'D', 'e', 's', 't', 'r', 'o', 'y', 'E', 'v', 'e', 'n', 't', 0,
    'S', 'e', 't', 'H', 'e', 'a', 'd', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 's', 0,
    'S', 'e', 't', 'T', 'e', 'x', 't', 'S', 'e', 'l', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'V', 'i', 's', 'i', 't', 'e', 'd', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'T', 'B', 'I', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'T', 'Y', 'P', 'E', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'T', 'o', 'p', 'R', 'i', 'g', 'h', 't', 0,
    'n', 'e', 'w', 'F', 'r', 'a', 'm', 'e', 'E', 'a', 'c', 'h', 'T', 'i', 'm', 'e', 0,
    'u', 's', 'e', 'W', 'i', 'n', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 0,
    'w', 'x', 'B', 'i', 't', 'm', 'a', 'p', 'C', 'o', 'm', 'b', 'o', 'B', 'o', 'x', 0,
    'w', 'x', 'D', 'a', 't', 'e', 'P', 'i', 'c', 'k', 'e', 'r', 'C', 't', 'r', 'l', 0,
    'w', 'x', 'H', 'y', 'p', 'e', 'r', 'l', 'i', 'n', 'k', 'E', 'v', 'e', 'n', 't', 0,
    'w', 'x', 'S', 'a', 's', 'h', 'D', 'r', 'a', 'g', 'S', 't', 'a', 't', 'u', 's', 0,
    'w', 'x', 'T', 'i', 'm', 'e', 'P', 'i', 'c', 'k', 'e', 'r', 'C', 't', 'r', 'l', 0,
    'A', 'N', 'I', 'M', '_', 'T', 'O', 'P', 'R', 'E', 'V', 'I', 'O', 'U', 'S', 0,
    'C', 'A', 'L', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'N', 'O', 'N', 'E', 0,
    'C', 'A', 'L', '_', 'H', 'I', 'T', 'T', 'E', 'S', 'T', '_', 'D', 'A', 'Y', 0,
    'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'N', 'a', 'm', 'e', 'S', 't', 'r', 0,
    'C', 'l', 'e', 'a', 'n', 'U', 'p', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 's', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'P', 'o', 'p', 'u', 'p', 'M', 'e', 'n', 'u', 0,
    'D', 'i', 's', 'p', 'l', 'a', 'y', 'C', 'o', 'n', 't', 'e', 'n', 't', 's', 0,
    'D', 'o', 'G', 'e', 't', 'C', 'l', 'i', 'e', 'n', 't', 'S', 'i', 'z', 'e', 0,
    'D', 'o', 'S', 'e', 't', 'C', 'l', 'i', 'e', 'n', 't', 'S', 'i', 'z', 'e', 0,
    'D', 'r', 'a', 'w', 'E', 'l', 'l', 'i', 'p', 't', 'i', 'c', 'A', 'r', 'c', 0,
    'D', 'r', 'a', 'w', 'R', 'o', 't', 'a', 't', 'e', 'd', 'T', 'e', 'x', 't', 0,
    'D', 'r', 'a', 'w', 'T', 'o', 'D', 'C', 'C', 'l', 'i', 'p', 'p', 'e', 'd', 0,
    'E', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'D', 'E', 'L', 'E', 'T', 'E', 0,
    'G', 'e', 'n', 'e', 'r', 'i', 'c', 'A', 'b', 'o', 'u', 't', 'B', 'o', 'x', 0,
    'G', 'e', 't', 'B', 'a', 'c', 'k', 'i', 'n', 'g', 'S', 't', 'o', 'r', 'e', 0,
    'G', 'e', 't', 'B', 'o', 'r', 'd', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'G', 'e', 't', 'M', 'a', 'x', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'X', 0,
    'G', 'e', 't', 'M', 'a', 'x', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'Y', 0,
    'G', 'e', 't', 'M', 'i', 'n', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'X', 0,
    'G', 'e', 't', 'M', 'i', 'n', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'Y', 0,
    'G', 'e', 't', 'N', 'o', 'r', 'm', 'a', 'l', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'G', 'e', 't', 'P', 'a', 'r', 'e', 'n', 't', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'H', 'L', '_', 'A', 'L', 'I', 'G', 'N', '_', 'C', 'E', 'N', 'T', 'R', 'E', 0,
    'H', 'a', 's', 'B', 'o', 'r', 'd', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'I', 's', 'I', 'c', 'o', 'n', 'I', 'n', 's', 't', 'a', 'l', 'l', 'e', 'd', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', 0,
    'O', 'n', 'C', 'r', 'e', 'a', 't', 'e', 'T', 'o', 'o', 'l', 'B', 'a', 'r', 0,
    'S', 'e', 't', 'B', 'o', 'r', 'd', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'S', 'e', 't', 'M', 'a', 'x', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'X', 0,
    'S', 'e', 't', 'M', 'a', 'x', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'Y', 0,
    'S', 'e', 't', 'M', 'i', 'n', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'X', 0,
    'S', 'e', 't', 'M', 'i', 'n', 'i', 'm', 'u', 'm', 'S', 'i', 'z', 'e', 'Y', 0,
    'S', 'e', 't', 'N', 'o', 'r', 'm', 'a', 'l', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'S', 'e', 't', 'P', 'a', 'r', 'e', 'n', 't', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'T', 'o', 'p', 'L', 'e', 'f', 't', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'C', 't', 'r', 'l', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 'T', 'y', 'p', 'e', 0,
    'w', 'x', 'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'E', 'v', 'e', 'n', 't', 0,
    'w', 'x', 'E', 'V', 'T', '_', 'H', 'Y', 'P', 'E', 'R', 'L', 'I', 'N', 'K', 0,
    'w', 'x', 'H', 'y', 'p', 'e', 'r', 'l', 'i', 'n', 'k', 'C', 't', 'r', 'l', 0,
    'C', 'o', 'n', 'v', 'e', 'r', 't', 'T', 'o', 'I', 'm', 'a', 'g', 'e', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'B', 'o', 'o', 'k', 'C', 't', 'r', 'l', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'F', 'r', 'o', 'm', 'D', 'a', 't', 'a', 0,
    'D', 'P', '_', 'S', 'H', 'O', 'W', 'C', 'E', 'N', 'T', 'U', 'R', 'Y', 0,
    'D', 'i', 's', 'p', 'l', 'a', 'y', 'S', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'D', 'o', 'S', 'e', 't', 'S', 'i', 'z', 'e', 'H', 'i', 'n', 't', 's', 0,
    'G', 'e', 't', 'B', 'u', 't', 't', 'o', 'n', 'S', 't', 'a', 't', 'e', 0,
    'G', 'e', 't', 'C', 'u', 'r', 'r', 'e', 'n', 't', 'P', 'a', 'g', 'e', 0,
    'G', 'e', 't', 'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'H', 'o', 'v', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'G', 'e', 't', 'I', 'd', 'G', 'r', 'e', 'y', 'e', 'd', 'O', 'u', 't', 0,
    'G', 'e', 't', 'L', 'o', 'n', 'g', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'O', 'r', 'i', 'e', 'n', 't', 'a', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'P', 'O', 'V', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'P', 'r', 'o', 'd', 'u', 'c', 't', 'N', 'a', 'm', 'e', 0,
    'G', 'e', 't', 'S', 'a', 's', 'h', 'V', 'i', 's', 'i', 'b', 'l', 'e', 0,
    'G', 'e', 't', 'S', 'p', 'l', 'a', 's', 'h', 'S', 't', 'y', 'l', 'e', 0,
    'G', 'e', 't', 'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'o', 'r', 's', 0,
    'H', 'L', '_', 'A', 'L', 'I', 'G', 'N', '_', 'R', 'I', 'G', 'H', 'T', 0,
    'H', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', 'M', 'E', 'N', 'U', 0,
    'H', 'a', 's', 'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0,
    'H', 'a', 's', 'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'o', 'r', 's', 0,
    'L', 'a', 'y', 'o', 'u', 't', 'M', 'D', 'I', 'F', 'r', 'a', 'm', 'e', 0,
    'O', 'n', 'I', 'n', 't', 'e', 'r', 'n', 'a', 'l', 'I', 'd', 'l', 'e', 0,
    'R', 'e', 'l', 'e', 'a', 's', 'e', 'C', 'a', 'p', 't', 'u', 'r', 'e', 0,
    'S', 'A', 'S', 'H', '_', 'S', 'T', 'A', 'T', 'U', 'S', '_', 'O', 'K', 0,
    'S', 'P', 'L', 'A', 'S', 'H', '_', 'T', 'I', 'M', 'E', 'O', 'U', 'T', 0,
    'S', 'e', 't', 'D', 'e', 'f', 'a', 'u', 'l', 't', 'S', 'i', 'z', 'e', 0,
    'S', 'e', 't', 'D', 'e', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'H', 'o', 'v', 'e', 'r', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'S', 'e', 't', 'I', 'd', 'G', 'r', 'e', 'y', 'e', 'd', 'O', 'u', 't', 0,
    'S', 'e', 't', 'O', 'r', 'i', 'e', 'n', 't', 'a', 't', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'S', 'a', 's', 'h', 'V', 'i', 's', 'i', 'b', 'l', 'e', 0,
    'S', 'e', 't', 'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'o', 'r', 's', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'B', 'o', 't', 't', 'o', 'm', 0,
    'U', 's', 'e', 'T', 'a', 's', 'k', 'B', 'a', 'r', 'I', 'c', 'o', 'n', 0,
    'w', 'x', 'B', 'a', 'n', 'n', 'e', 'r', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'w', 'x', 'C', 'a', 'l', 'e', 'n', 'd', 'a', 'r', 'C', 't', 'r', 'l', 0,
    'w', 'x', 'S', 'p', 'l', 'a', 's', 'h', 'S', 'c', 'r', 'e', 'e', 'n', 0,
    'A', 'd', 'd', 'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'o', 'r', 0,
    'C', 'r', 'e', 'a', 't', 'e', 'B', 'u', 't', 't', 'o', 'n', 's', 0,
    'D', 'o', 'G', 'e', 't', 'B', 'e', 's', 't', 'S', 'i', 'z', 'e', 0,
    'D', 'o', 'G', 'e', 't', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'D', 'r', 'a', 'w', 'C', 'h', 'e', 'c', 'k', 'M', 'a', 'r', 'k', 0,
    'D', 'r', 'a', 'w', 'R', 'e', 'c', 't', 'a', 'n', 'g', 'l', 'e', 0,
    'E', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'E', 'D', 'I', 'T', 0,
    'E', 'L', '_', 'N', 'O', '_', 'R', 'E', 'O', 'R', 'D', 'E', 'R', 0,
    'G', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'C', 'u', 'r', 'r', 'e', 'n', 't', 'T', 'i', 'p', 0,
    'G', 'e', 't', 'D', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', 0,
    'G', 'e', 't', 'D', 'o', 'c', 'W', 'r', 'i', 't', 'e', 'r', 's', 0,
    'G', 'e', 't', 'D', 'o', 'w', 'n', 'B', 'u', 't', 't', 'o', 'n', 0,
    'G', 'e', 't', 'D', 'r', 'a', 'g', 'S', 't', 'a', 't', 'u', 's', 0,
    'G', 'e', 't', 'E', 'd', 'g', 'e', 'M', 'a', 'r', 'g', 'i', 'n', 0,
    'G', 'e', 't', 'E', 'd', 'i', 't', 'B', 'u', 't', 't', 'o', 'n', 0,
    'G', 'e', 't', 'F', 'r', 'a', 'm', 'e', 'C', 'o', 'u', 'n', 't', 0,
    'G', 'e', 't', 'I', 'n', 'n', 'e', 'r', 'S', 'i', 'z', 'e', 'r', 0,
    'G', 'e', 't', 'I', 't', 'e', 'm', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'G', 'e', 't', 'M', 'a', 'x', 'B', 'u', 't', 't', 'o', 'n', 's', 0,
    'G', 'e', 't', 'N', 'u', 'm', 'b', 'e', 'r', 'A', 'x', 'e', 's', 0,
    'G', 'e', 't', 'P', 'o', 'l', 'l', 'i', 'n', 'g', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'P', 'o', 'l', 'l', 'i', 'n', 'g', 'M', 'i', 'n', 0,
    'G', 'e', 't', 'S', 'h', 'e', 'e', 't', 'S', 't', 'y', 'l', 'e', 0,
    'G', 'e', 't', 'T', 'e', 'x', 't', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'G', 'e', 't', 'W', 'e', 'b', 'S', 'i', 't', 'e', 'U', 'R', 'L', 0,
    'G', 'e', 't', 'W', 'i', 'd', 'e', 's', 't', 'I', 't', 'e', 'm', 0,
    'H', 'L', '_', 'A', 'L', 'I', 'G', 'N', '_', 'L', 'E', 'F', 'T', 0,
    'H', 'a', 's', 'D', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', 0,
    'H', 'a', 's', 'D', 'o', 'c', 'W', 'r', 'i', 't', 'e', 'r', 's', 0,
    'H', 'a', 's', 'T', 'e', 'x', 't', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'I', 'n', 's', 'e', 'r', 't', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 0,
    'K', 'e', 'y', 'w', 'o', 'r', 'd', 'S', 'e', 'a', 'r', 'c', 'h', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'B', 'O', 'T', 'T', 'O', 'M', 0,
    'N', 'u', 'l', 'l', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 0,
    'O', 'n', 'B', 'u', 't', 't', 'o', 'n', 'C', 'l', 'i', 'c', 'k', 0,
    'O', 'n', 'M', 'e', 'a', 's', 'u', 'r', 'e', 'I', 't', 'e', 'm', 0,
    'S', 'e', 't', 'B', 'a', 'c', 'k', 'g', 'r', 'o', 'u', 'n', 'd', 0,
    'S', 'e', 't', 'D', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', 0,
    'S', 'e', 't', 'D', 'o', 'c', 'W', 'r', 'i', 't', 'e', 'r', 's', 0,
    'S', 'e', 't', 'D', 'r', 'a', 'g', 'S', 't', 'a', 't', 'u', 's', 0,
    'S', 'e', 't', 'I', 'n', 'n', 'e', 'r', 'S', 'i', 'z', 'e', 'r', 0,
    'S', 'e', 't', 'I', 't', 'e', 'm', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'S', 'e', 't', 'S', 'h', 'e', 'e', 't', 'S', 't', 'y', 'l', 'e', 0,
    'S', 'e', 't', 'T', 'e', 'x', 't', 'C', 'o', 'l', 'o', 'u', 'r', 0,
    'T', 'i', 'm', 'e', 'o', 'u', 't', '_', 'N', 'e', 'v', 'e', 'r', 0,
    'c', 'a', 's', 'e', 'S', 'e', 'n', 's', 'i', 't', 'i', 'v', 'e', 0,
    's', 'h', 'o', 'w', 'A', 't', 'S', 't', 'a', 'r', 't', 'u', 'p', 0,
    'w', 'x', 'R', 'i', 'c', 'h', 'T', 'o', 'o', 'l', 'T', 'i', 'p', 0,
    'w', 'x', 'T', 'a', 's', 'k', 'B', 'a', 'r', 'I', 'c', 'o', 'n', 0,
    'w', 'x', 'T', 'i', 'p', 'P', 'r', 'o', 'v', 'i', 'd', 'e', 'r', 0,
    'w', 'x', 'W', 'i', 'z', 'a', 'r', 'd', 'E', 'v', 'e', 'n', 't', 0,
    'A', 'c', 'c', 'e', 'p', 't', 's', 'F', 'o', 'c', 'u', 's', 0,
    'A', 'd', 'd', 'D', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 0,
    'A', 'd', 'd', 'D', 'o', 'c', 'W', 'r', 'i', 't', 'e', 'r', 0,
    'D', 'P', '_', 'A', 'L', 'L', 'O', 'W', 'N', 'O', 'N', 'E', 0,
    'D', 'i', 's', 'p', 'l', 'a', 'y', 'B', 'l', 'o', 'c', 'k', 0,
    'D', 'o', 'M', 'o', 'v', 'e', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'E', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'N', 'E', 'W', 0,
    'G', 'e', 't', 'A', 'l', 'i', 'g', 'n', 'm', 'e', 'n', 't', 0,
    'G', 'e', 't', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', 0,
    'G', 'e', 't', 'D', 'a', 't', 'e', 'R', 'a', 'n', 'g', 'e', 0,
    'G', 'e', 't', 'D', 'e', 'l', 'B', 'u', 't', 't', 'o', 'n', 0,
    'G', 'e', 't', 'D', 'i', 'r', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'F', 'r', 'a', 'm', 'e', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'M', 'a', 'i', 'n', 'L', 'a', 'b', 'e', 'l', 0,
    'G', 'e', 't', 'N', 'e', 'w', 'B', 'u', 't', 't', 'o', 'n', 0,
    'G', 'e', 't', 'P', 'o', 'p', 'u', 'p', 'M', 'e', 'n', 'u', 0,
    'G', 'e', 't', 'P', 'r', 'o', 'd', 'u', 'c', 't', 'I', 'd', 0,
    'G', 'e', 't', 'R', 'u', 'd', 'd', 'e', 'r', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'R', 'u', 'd', 'd', 'e', 'r', 'M', 'i', 'n', 0,
    'G', 'e', 't', 'S', 'e', 'l', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'U', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'V', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'V', 'a', 'l', 'i', 'd', 'a', 't', 'o', 'r', 0,
    'G', 'e', 't', 'Z', 'P', 'o', 's', 'i', 't', 'i', 'o', 'n', 0,
    'H', 'a', 's', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'R', 'I', 'G', 'H', 'T', 0,
    'L', 'a', 'y', 'o', 'u', 't', 'D', 'i', 'a', 'l', 'o', 'g', 0,
    'M', 'S', 'W', 'U', 's', 'e', 'T', 'o', 'a', 's', 't', 's', 0,
    'P', 'r', 'o', 'c', 'e', 's', 's', 'E', 'v', 'e', 'n', 't', 0,
    'S', 'e', 't', 'A', 'l', 'i', 'g', 'n', 'm', 'e', 'n', 't', 0,
    'S', 'e', 't', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', 0,
    'S', 'e', 't', 'D', 'a', 't', 'e', 'R', 'a', 'n', 'g', 'e', 0,
    'S', 'e', 't', 'M', 'a', 'i', 'n', 'L', 'a', 'b', 'e', 'l', 0,
    'S', 'e', 't', 'S', 'e', 'l', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'T', 'i', 't', 'l', 'e', 'F', 'o', 'n', 't', 0,
    'S', 'e', 't', 'V', 'a', 'l', 'i', 'd', 'a', 't', 'o', 'r', 0,
    'T', 'i', 'm', 'e', 'o', 'u', 't', '_', 'A', 'u', 't', 'o', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'A', 'u', 't', 'o', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'N', 'o', 'n', 'e', 0,
    'U', 'S', 'E', '_', 'J', 'O', 'Y', 'S', 'T', 'I', 'C', 'K', 0,
    '_', '_', 'c', 'o', 'n', 't', 'a', 'i', 'n', 's', '_', '_', 0,
    'g', 'o', 'i', 'n', 'g', 'F', 'o', 'r', 'w', 'a', 'r', 'd', 0,
    'm', 'i', 'l', 'l', 'i', 's', 'e', 'c', 'o', 'n', 'd', 's', 0,
    'p', 'a', 'r', 'e', 'n', 't', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    's', 'h', 'o', 'r', 't', 'c', 'u', 't', 'P', 'a', 't', 'h', 0,
    'w', 'x', 'A', 'N', 'I', 'D', 'e', 'c', 'o', 'd', 'e', 'r', 0,
    'w', 'x', 'G', 'I', 'F', 'D', 'e', 'c', 'o', 'd', 'e', 'r', 0,
    'w', 'x', 'S', 'a', 's', 'h', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    'w', 'x', 'W', 'i', 'z', 'a', 'r', 'd', 'P', 'a', 'g', 'e', 0,
    'A', 'd', 'd', 'B', 'o', 'o', 'k', 'C', 't', 'r', 'l', 0,
    'A', 'n', 'i', 'm', 'a', 't', 'e', 'S', 'h', 'o', 'w', 0,
    'D', 'P', '_', 'D', 'R', 'O', 'P', 'D', 'O', 'W', 'N', 0,
    'D', 'i', 's', 'p', 'l', 'a', 'y', 'H', 'e', 'l', 'p', 0,
    'D', 'o', 'S', 'h', 'o', 'w', 'P', 'o', 'p', 'u', 'p', 0,
    'D', 'r', 'a', 'w', 'E', 'l', 'l', 'i', 'p', 's', 'e', 0,
    'D', 'r', 'a', 'w', 'P', 'o', 'l', 'y', 'g', 'o', 'n', 0,
    'F', 'i', 'n', 'd', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 0,
    'F', 'i', 'n', 'd', 'O', 'b', 'j', 'e', 'c', 't', 's', 0,
    'G', 'e', 't', 'B', 'o', 'o', 'k', 'C', 't', 'r', 'l', 0,
    'G', 'e', 't', 'D', 'r', 'a', 'g', 'R', 'e', 'c', 't', 0,
    'G', 'e', 't', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 's', 0,
    'G', 'e', 't', 'I', 'd', 'B', 'o', 'u', 'n', 'd', 's', 0,
    'G', 'e', 't', 'L', 'i', 's', 't', 'C', 't', 'r', 'l', 0,
    'G', 'e', 't', 'P', 'a', 'g', 'e', 'S', 'i', 'z', 'e', 0,
    'G', 'e', 't', 'U', 'p', 'B', 'u', 't', 't', 'o', 'n', 0,
    'H', 'a', 's', 'N', 'e', 'x', 't', 'P', 'a', 'g', 'e', 0,
    'H', 'a', 's', 'P', 'r', 'e', 'v', 'P', 'a', 'g', 'e', 0,
    'I', 's', 'A', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e', 0,
    'I', 's', 'L', 'i', 's', 't', 'E', 'm', 'p', 't', 'y', 0,
    'I', 's', 'T', 'e', 'x', 't', 'E', 'm', 'p', 't', 'y', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'L', 'E', 'F', 'T', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'N', 'O', 'N', 'E', 0,
    'L', 'a', 'y', 'o', 'u', 't', 'F', 'r', 'a', 'm', 'e', 0,
    'R', 'e', 'm', 'o', 'v', 'e', 'C', 'h', 'i', 'l', 'd', 0,
    'S', 'A', 'S', 'H', '_', 'B', 'O', 'T', 'T', 'O', 'M', 0,
    'S', 'O', 'U', 'N', 'D', '_', 'A', 'S', 'Y', 'N', 'C', 0,
    'S', 'W', '_', '3', 'D', 'B', 'O', 'R', 'D', 'E', 'R', 0,
    'S', 'W', '_', 'N', 'O', 'B', 'O', 'R', 'D', 'E', 'R', 0,
    'S', 'a', 's', 'h', 'H', 'i', 't', 'T', 'e', 's', 't', 0,
    'S', 'e', 't', 'B', 'o', 'o', 'k', 'C', 't', 'r', 'l', 0,
    'S', 'e', 't', 'C', 'a', 'n', 'F', 'o', 'c', 'u', 's', 0,
    'S', 'e', 't', 'D', 'r', 'a', 'g', 'R', 'e', 'c', 't', 0,
    'S', 'e', 't', 'G', 'r', 'a', 'd', 'i', 'e', 'n', 't', 0,
    'S', 'e', 't', 'I', 'd', 'B', 'o', 'u', 'n', 'd', 's', 0,
    'S', 'e', 't', 'N', 'u', 'l', 'l', 'T', 'e', 'x', 't', 0,
    'S', 'e', 't', 'P', 'a', 'g', 'e', 'S', 'i', 'z', 'e', 0,
    'S', 'h', 'o', 'w', 'B', 'a', 'l', 'l', 'o', 'o', 'n', 0,
    'S', 'i', 'z', 'e', 'W', 'i', 'n', 'd', 'o', 'w', 's', 0,
    'T', 'i', 'p', 'K', 'i', 'n', 'd', '_', 'T', 'o', 'p', 0,
    'T', 'r', 'a', 'n', 's', 'l', 'a', 't', 'e', 'I', 'd', 0,
    'W', 'I', 'Z', 'A', 'R', 'D', '_', 'T', 'I', 'L', 'E', 0,
    '_', '_', 'g', 'e', 't', 'i', 't', 'e', 'm', '_', '_', 0,
    '_', '_', 'n', 'o', 'n', 'z', 'e', 'r', 'o', '_', '_', 0,
    'c', 'e', 'n', 't', 'r', 'e', 'F', 'l', 'a', 'g', 's', 0,
    'l', 'o', 'n', 'g', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'o', 'r', 'i', 'e', 'n', 't', 'a', 't', 'i', 'o', 'n', 0,
    'p', 'o', 'l', 'l', 'i', 'n', 'g', 'F', 'r', 'e', 'q', 0,
    'r', 'e', 'l', 'a', 't', 'i', 'v', 'e', 'U', 'R', 'L', 0,
    's', 'p', 'l', 'a', 's', 'h', 'S', 't', 'y', 'l', 'e', 0,
    't', 'i', 'p', 'P', 'r', 'o', 'v', 'i', 'd', 'e', 'r', 0,
    't', 'i', 't', 'l', 'e', 'F', 'o', 'r', 'm', 'a', 't', 0,
    't', 'r', 'a', 'n', 's', 'l', 'a', 't', 'o', 'r', 's', 0,
    'w', 'x', 'A', 'n', 'i', 'm', 'a', 't', 'i', 'o', 'n', 0,
    'w', 'x', 'D', 'a', 't', 'e', 'E', 'v', 'e', 'n', 't', 0,
    'w', 'x', 'S', 'a', 's', 'h', 'E', 'v', 'e', 'n', 't', 0,
    'A', 'd', 'd', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 0,
    'D', 'P', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', 0,
    'D', 'o', 'G', 'i', 'v', 'e', 'H', 'e', 'l', 'p', 0,
    'D', 'r', 'a', 'w', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'D', 'r', 'a', 'w', 'C', 'i', 'r', 'c', 'l', 'e', 0,
    'D', 'r', 'a', 'w', 'I', 'd', 'T', 'o', 'D', 'C', 0,
    'D', 'r', 'a', 'w', 'S', 'p', 'l', 'i', 'n', 'e', 0,
    'F', 'i', 'n', 'd', 'S', 't', 'r', 'i', 'n', 'g', 0,
    'G', 'e', 't', 'A', 'r', 't', 'i', 's', 't', 's', 0,
    'G', 'e', 't', 'L', 'i', 'c', 'e', 'n', 'c', 'e', 0,
    'G', 'e', 't', 'M', 'a', 'x', 'A', 'x', 'e', 's', 0,
    'G', 'e', 't', 'S', 't', 'r', 'i', 'n', 'g', 's', 0,
    'G', 'e', 't', 'T', 'i', 'm', 'e', 'o', 'u', 't', 0,
    'G', 'e', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'G', 'e', 't', 'V', 'i', 's', 'i', 't', 'e', 'd', 0,
    'G', 'e', 't', 'W', 'e', 'e', 'k', 'D', 'a', 'y', 0,
    'H', 'a', 's', 'A', 'r', 't', 'i', 's', 't', 's', 0,
    'H', 'a', 's', 'L', 'i', 'c', 'e', 'n', 'c', 'e', 0,
    'H', 'a', 's', 'P', 'O', 'V', '4', 'D', 'i', 'r', 0,
    'H', 'a', 's', 'W', 'e', 'b', 'S', 'i', 't', 'e', 0,
    'I', 'n', 'i', 't', 'D', 'i', 'a', 'l', 'o', 'g', 0,
    'I', 'n', 'i', 't', 'i', 'a', 'l', 'i', 'z', 'e', 0,
    'L', 'A', 'Y', 'O', 'U', 'T', '_', 'T', 'O', 'P', 0,
    'O', 'n', 'D', 'r', 'a', 'w', 'I', 't', 'e', 'm', 0,
    'R', 'e', 'm', 'o', 'v', 'e', 'I', 'c', 'o', 'n', 0,
    'S', 'A', 'S', 'H', '_', 'R', 'I', 'G', 'H', 'T', 0,
    'S', 'O', 'U', 'N', 'D', '_', 'L', 'O', 'O', 'P', 0,
    'S', 'O', 'U', 'N', 'D', '_', 'S', 'Y', 'N', 'C', 0,
    'S', 'e', 't', 'A', 'r', 't', 'i', 's', 't', 's', 0,
    'S', 'e', 't', 'C', 'a', 'p', 't', 'u', 'r', 'e', 0,
    'S', 'e', 't', 'H', 'o', 'l', 'i', 'd', 'a', 'y', 0,
    'S', 'e', 't', 'L', 'i', 'c', 'e', 'n', 'c', 'e', 0,
    'S', 'e', 't', 'L', 'i', 'c', 'e', 'n', 's', 'e', 0,
    'S', 'e', 't', 'M', 'e', 's', 's', 'a', 'g', 'e', 0,
    'S', 'e', 't', 'S', 't', 'r', 'i', 'n', 'g', 's', 0,
    'S', 'e', 't', 'T', 'i', 'm', 'e', 'o', 'u', 't', 0,
    'S', 'e', 't', 'T', 'i', 'p', 'K', 'i', 'n', 'd', 0,
    'S', 'e', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'V', 'i', 's', 'i', 't', 'e', 'd', 0,
    'S', 'e', 't', 'W', 'e', 'b', 'S', 'i', 't', 'e', 0,
    'S', 'e', 't', 'W', 'e', 'e', 'k', 'D', 'a', 'y', 0,
    'T', 'P', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', 0,
    'c', 'l', 'i', 'e', 'n', 't', 'D', 'a', 't', 'a', 0,
    'c', 'u', 'r', 'r', 'e', 'n', 't', 'T', 'i', 'p', 0,
    'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', 0,
    'd', 'o', 'c', 'w', 'r', 'i', 't', 'e', 'r', 's', 0,
    'i', 'n', 'd', 'e', 'x', 'A', 'c', 'c', 'e', 'l', 0,
    'm', 'a', 'i', 'n', 'W', 'i', 'n', 'd', 'o', 'w', 0,
    't', 'r', 'a', 'n', 's', 'l', 'a', 't', 'o', 'r', 0,
    'w', 'i', 'd', 't', 'h', 'T', 'i', 't', 'l', 'e', 0,
    'w', 'x', 'J', 'o', 'y', 's', 't', 'i', 'c', 'k', 0,
    'w', 'x', 'P', 's', 'e', 'u', 'd', 'o', 'D', 'C', 0,
    'A', 'd', 'd', 'A', 'c', 't', 'i', 'o', 'n', 0,
    'A', 'd', 'd', 'A', 'r', 't', 'i', 's', 't', 0,
    'C', 'r', 'o', 's', 's', 'H', 'a', 'i', 'r', 0,
    'D', 'o', 'C', 'a', 'n', 'R', 'e', 'a', 'd', 0,
    'D', 'o', 'G', 'e', 't', 'S', 'i', 'z', 'e', 0,
    'D', 'o', 'S', 'e', 't', 'S', 'i', 'z', 'e', 0,
    'D', 'r', 'a', 'w', 'L', 'a', 'b', 'e', 'l', 0,
    'D', 'r', 'a', 'w', 'L', 'i', 'n', 'e', 's', 0,
    'D', 'r', 'a', 'w', 'P', 'o', 'i', 'n', 't', 0,
    'F', 'i', 't', 'T', 'o', 'P', 'a', 'g', 'e', 0,
    'F', 'l', 'o', 'o', 'd', 'F', 'i', 'l', 'l', 0,
    'G', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'G', 'e', 't', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'G', 'e', 't', 'S', 't', 'r', 'i', 'n', 'g', 0,
    'H', 'a', 's', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'H', 'a', 's', 'P', 'O', 'V', 'C', 'T', 'S', 0,
    'H', 'a', 's', 'R', 'u', 'd', 'd', 'e', 'r', 0,
    'H', 'i', 'd', 'e', 'P', 'o', 'p', 'u', 'p', 0,
    'I', 's', 'H', 'o', 'l', 'i', 'd', 'a', 'y', 0,
    'I', 's', 'P', 'l', 'a', 'y', 'i', 'n', 'g', 0,
    'I', 's', 'R', 'u', 'n', 'n', 'i', 'n', 'g', 0,
    'P', 'l', 'a', 'y', 'S', 'o', 'u', 'n', 'd', 0,
    'R', 'e', 'm', 'o', 'v', 'e', 'A', 'l', 'l', 0,
    'R', 'e', 's', 'e', 't', 'A', 't', 't', 'r', 0,
    'R', 'u', 'n', 'W', 'i', 'z', 'a', 'r', 'd', 0,
    'S', 'A', 'S', 'H', '_', 'L', 'E', 'F', 'T', 0,
    'S', 'A', 'S', 'H', '_', 'N', 'O', 'N', 'E', 0,
    'S', 'W', '_', '3', 'D', 'S', 'A', 'S', 'H', 0,
    'S', 'W', '_', 'B', 'O', 'R', 'D', 'E', 'R', 0,
    'S', 'e', 't', 'B', 'i', 't', 'm', 'a', 'p', 0,
    'S', 'e', 't', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'S', 'e', 't', 'P', 'a', 'r', 'e', 'n', 't', 0,
    'S', 'e', 't', 'S', 't', 'r', 'i', 'n', 'g', 0,
    'S', 'e', 't', 'V', 'i', 'e', 'w', 'e', 'r', 0,
    'T', 'r', 'y', 'B', 'e', 'f', 'o', 'r', 'e', 0,
    'a', 'l', 'i', 'g', 'n', 'm', 'e', 'n', 't', 0,
    'c', 'o', 'l', 'B', 'o', 'r', 'd', 'e', 'r', 0,
    'c', 'o', 'l', 'u', 'm', 'n', 'M', 'a', 'x', 0,
    'c', 'o', 'l', 'u', 'm', 'n', 'M', 'i', 'n', 0,
    'c', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', 0,
    'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 0,
    'd', 'i', 'r', 'e', 'c', 't', 'i', 'o', 'n', 0,
    'd', 'o', 'c', 'w', 'r', 'i', 't', 'e', 'r', 0,
    'f', 'i', 'l', 'l', 'S', 't', 'y', 'l', 'e', 0,
    'f', 'i', 'r', 's', 't', 'P', 'a', 'g', 'e', 0,
    'g', 'e', 'n', 'e', 'r', 'a', 't', 'o', 'r', 0,
    'l', 'o', 'w', 'e', 'r', 'd', 'a', 't', 'e', 0,
    'm', 'a', 'i', 'n', 'L', 'a', 'b', 'e', 'l', 0,
    'p', 'l', 'a', 'c', 'e', 'm', 'e', 'n', 't', 0,
    's', 'e', 'c', 't', 'i', 'o', 'n', 'N', 'o', 0,
    's', 'i', 'z', 'e', 'F', 'l', 'a', 'g', 's', 0,
    't', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', 0,
    't', 'o', 'l', 'e', 'r', 'a', 'n', 'c', 'e', 0,
    'u', 'p', 'p', 'e', 'r', 'd', 'a', 't', 'e', 0,
    'v', 'a', 'l', 'i', 'd', 'a', 't', 'o', 'r', 0,
    'w', 'x', 'T', 'i', 'p', 'K', 'i', 'n', 'd', 0,
    'A', 'd', 'd', 'C', 'h', 'i', 'l', 'd', 0,
    'C', 'a', 'n', 'P', 'a', 's', 't', 'e', 0,
    'D', 'o', 'E', 'n', 'a', 'b', 'l', 'e', 0,
    'D', 'o', 'F', 'r', 'e', 'e', 'z', 'e', 0,
    'D', 'r', 'a', 'w', 'I', 'c', 'o', 'n', 0,
    'D', 'r', 'a', 'w', 'L', 'i', 'n', 'e', 0,
    'D', 'r', 'a', 'w', 'T', 'e', 'x', 't', 0,
    'D', 'r', 'a', 'w', 'T', 'o', 'D', 'C', 0,
    'G', 'e', 't', 'C', 'o', 'u', 'n', 't', 0,
    'G', 'e', 't', 'D', 'e', 'l', 'a', 'y', 0,
    'G', 'e', 't', 'F', 'l', 'a', 'g', 's', 0,
    'G', 'e', 't', 'F', 'r', 'a', 'm', 'e', 0,
    'G', 'e', 't', 'L', 'a', 'b', 'e', 'l', 0,
    'G', 'e', 't', 'R', 'a', 'n', 'g', 'e', 0,
    'G', 'e', 't', 'V', 'a', 'l', 'u', 'e', 0,
    'L', 'o', 'a', 'd', 'F', 'i', 'l', 'e', 0,
    'R', 'e', 'm', 'o', 'v', 'e', 'I', 'd', 0,
    'S', 'A', 'S', 'H', '_', 'T', 'O', 'P', 0,
    'S', 'e', 't', 'B', 'r', 'u', 's', 'h', 0,
    'S', 'e', 't', 'F', 'l', 'a', 'g', 's', 0,
    'S', 'e', 't', 'L', 'a', 'b', 'e', 'l', 0,
    'S', 'e', 't', 'R', 'a', 'n', 'g', 'e', 0,
    'S', 'e', 't', 'T', 'i', 't', 'l', 'e', 0,
    'S', 'e', 't', 'V', 'a', 'l', 'u', 'e', 0,
    'S', 'h', 'o', 'w', 'P', 'a', 'g', 'e', 0,
    'T', 'B', 'I', '_', 'D', 'O', 'C', 'K', 0,
    'T', 'r', 'y', 'A', 'f', 't', 'e', 'r', 0,
    'V', 'a', 'l', 'i', 'd', 'a', 't', 'e', 0,
    '_', '_', 'b', 'o', 'o', 'l', '_', '_', 0,
    '_', '_', 'i', 't', 'e', 'r', '_', '_', 0,
    '_', '_', 'n', 'e', 'x', 't', '_', '_', 0,
    'a', 'c', 't', 'i', 'o', 'n', 'i', 'd', 0,
    'a', 'n', 'i', 'm', 'T', 'y', 'p', 'e', 0,
    'b', 'o', 'o', 'k', 'C', 't', 'r', 'l', 0,
    'c', 'a', 'n', 'F', 'o', 'c', 'u', 's', 0,
    'f', 'i', 'l', 'e', 'N', 'a', 'm', 'e', 0,
    'f', 'i', 'l', 'e', 'n', 'a', 'm', 'e', 0,
    'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', 0,
    'i', 'c', 'o', 'n', 'T', 'y', 'p', 'e', 0,
    'j', 'o', 'y', 's', 't', 'i', 'c', 'k', 0,
    'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0,
    's', 'i', 'z', 'e', 'P', 'a', 'g', 'e', 0,
    'w', 'x', 'W', 'i', 'z', 'a', 'r', 'd', 0,
    'C', 'a', 'n', 'C', 'o', 'p', 'y', 0,
    'C', 'a', 'n', 'R', 'e', 'd', 'o', 0,
    'C', 'a', 'n', 'U', 'n', 'd', 'o', 0,
    'C', 'l', 'e', 'a', 'r', 'I', 'd', 0,
    'D', 'P', '_', 'S', 'P', 'I', 'N', 0,
    'D', 'e', 's', 't', 'r', 'o', 'y', 0,
    'D', 'i', 's', 'm', 'i', 's', 's', 0,
    'D', 'r', 'a', 'w', 'A', 'r', 'c', 0,
    'G', 'e', 't', 'A', 't', 't', 'r', 0,
    'G', 'e', 't', 'D', 'a', 't', 'e', 0,
    'G', 'e', 't', 'E', 'd', 'g', 'e', 0,
    'G', 'e', 't', 'F', 'o', 'n', 't', 0,
    'G', 'e', 't', 'I', 'c', 'o', 'n', 0,
    'G', 'e', 't', 'M', 'a', 'r', 'k', 0,
    'G', 'e', 't', 'N', 'a', 'm', 'e', 0,
    'G', 'e', 't', 'N', 'e', 'x', 't', 0,
    'G', 'e', 't', 'N', 'o', 't', 'e', 0,
    'G', 'e', 't', 'P', 'a', 'g', 'e', 0,
    'G', 'e', 't', 'P', 'r', 'e', 'v', 0,
    'G', 'e', 't', 'R', 'e', 'c', 't', 0,
    'G', 'e', 't', 'T', 'i', 'm', 'e', 0,
    'G', 'e', 't', 'T', 'y', 'p', 'e', 0,
    'G', 'e', 't', 'U', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'U', 'M', 'i', 'n', 0,
    'G', 'e', 't', 'V', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'V', 'M', 'i', 'n', 0,
    'G', 'e', 't', 'X', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'X', 'M', 'i', 'n', 0,
    'G', 'e', 't', 'Y', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'Y', 'M', 'i', 'n', 0,
    'G', 'e', 't', 'Z', 'M', 'a', 'x', 0,
    'G', 'e', 't', 'Z', 'M', 'i', 'n', 0,
    'H', 'a', 's', 'F', 'o', 'n', 't', 0,
    'H', 'a', 's', 'I', 'c', 'o', 'n', 0,
    'S', 'e', 't', 'A', 't', 't', 'r', 0,
    'S', 'e', 't', 'D', 'a', 't', 'e', 0,
    'S', 'e', 't', 'E', 'd', 'g', 'e', 0,
    'S', 'e', 't', 'F', 'o', 'n', 't', 0,
    'S', 'e', 't', 'I', 'c', 'o', 'n', 0,
    'S', 'e', 't', 'M', 'a', 'r', 'k', 0,
    'S', 'e', 't', 'N', 'a', 'm', 'e', 0,
    'S', 'e', 't', 'N', 'e', 'x', 't', 0,
    'S', 'e', 't', 'N', 'o', 't', 'e', 0,
    'S', 'e', 't', 'P', 'r', 'e', 'v', 0,
    'S', 'e', 't', 'R', 'e', 'c', 't', 0,
    'S', 'e', 't', 'T', 'e', 'x', 't', 0,
    'S', 'e', 't', 'T', 'i', 'm', 'e', 0,
    'S', 'h', 'o', 'w', 'F', 'o', 'r', 0,
    'S', 'h', 'o', 'w', 'T', 'i', 'p', 0,
    '_', '_', 'l', 'e', 'n', '_', '_', 0,
    'a', 'r', 't', 'i', 's', 't', 's', 0,
    'b', 'l', 'o', 'c', 'k', 'N', 'o', 0,
    'c', 'h', 'o', 'i', 'c', 'e', 's', 0,
    'c', 'o', 'l', 'B', 'a', 'c', 'k', 0,
    'c', 'o', 'l', 'T', 'e', 'x', 't', 0,
    'd', 'i', 's', 'p', 'l', 'a', 'y', 0,
    'e', 'n', 'a', 'b', 'l', 'e', 'd', 0,
    'e', 'v', 't', 'T', 'y', 'p', 'e', 0,
    'g', 'r', 'e', 'y', 'o', 'u', 't', 0,
    'h', 'a', 'n', 'd', 'l', 'e', 'r', 0,
    'h', 'o', 'l', 'i', 'd', 'a', 'y', 0,
    'l', 'i', 'c', 'e', 'n', 'c', 'e', 0,
    'm', 'e', 's', 's', 'a', 'g', 'e', 0,
    's', 'e', 'c', 't', 'i', 'o', 'n', 0,
    's', 't', 'r', 'i', 'n', 'g', 's', 0,
    't', 'i', 'm', 'e', 'o', 'u', 't', 0,
    't', 'i', 'p', 'K', 'i', 'n', 'd', 0,
    't', 'o', 'o', 'l', 't', 'i', 'p', 0,
    'u', 'n', 'i', 't', 'M', 'a', 'x', 0,
    'u', 'n', 'i', 't', 'M', 'i', 'n', 0,
    'u', 's', 'e', 'M', 'a', 's', 'k', 0,
    'v', 'a', 'r', 'i', 'a', 'n', 't', 0,
    'v', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'v', 'i', 's', 'i', 'b', 'l', 'e', 0,
    'v', 'i', 's', 'i', 't', 'e', 'd', 0,
    'w', 'x', '.', '_', 'a', 'd', 'v', 0,
    'w', 'x', 'S', 'o', 'u', 'n', 'd', 0,
    'x', 'o', 'f', 'f', 's', 'e', 't', 0,
    'y', 'o', 'f', 'f', 's', 'e', 't', 0,
    'A', 'p', 'p', 'e', 'n', 'd', 0,
    'C', 'a', 'n', 'C', 'u', 't', 0,
    'C', 'r', 'e', 'a', 't', 'e', 0,
    'D', 'o', 'T', 'h', 'a', 'w', 0,
    'G', 'e', 't', 'L', 'e', 'n', 0,
    'G', 'e', 't', 'T', 'i', 'p', 0,
    'G', 'e', 't', 'U', 'R', 'L', 0,
    'H', 'a', 's', 'P', 'O', 'V', 0,
    'I', 'n', 's', 'e', 'r', 't', 0,
    'O', 'n', 'Q', 'u', 'i', 't', 0,
    'S', 'e', 't', 'P', 'e', 'n', 0,
    'S', 'e', 't', 'U', 'R', 'L', 0,
    'a', 'r', 't', 'i', 's', 't', 0,
    'b', 'i', 't', 'm', 'a', 'p', 0,
    'b', 'o', 'r', 'd', 'e', 'r', 0,
    'c', 'l', 'i', 'e', 'n', 't', 0,
    'c', 'o', 'l', 'E', 'n', 'd', 0,
    'c', 'o', 'l', 'o', 'u', 'r', 0,
    'c', 'o', 'l', 'u', 'm', 'n', 0,
    'd', 'i', 'a', 'l', 'o', 'g', 0,
    'e', 'n', 'a', 'b', 'l', 'e', 0,
    'h', 'e', 'i', 'g', 'h', 't', 0,
    'l', 'e', 'n', 'g', 't', 'h', 0,
    'l', 'o', 'o', 'p', 'e', 'd', 0,
    'p', 'a', 'r', 'e', 'n', 't', 0,
    'p', 'o', 'i', 'n', 't', 's', 0,
    'r', 'a', 'd', 'i', 'u', 's', 0,
    'r', 'e', 'g', 'i', 'o', 'n', 0,
    'r', 'o', 'w', 'M', 'a', 'x', 0,
    'r', 'o', 'w', 'M', 'i', 'n', 0,
    's', 'e', 'c', 'o', 'n', 'd', 0,
    's', 't', 'a', 't', 'u', 's', 0,
    's', 't', 'r', 'e', 'a', 'm', 0,
    's', 't', 'r', 'i', 'n', 'g', 0,
    't', 'b', 'I', 'c', 'o', 'n', 0,
    'v', 'i', 'e', 'w', 'e', 'r', 0,
    'C', 'h', 'a', 'i', 'n', 0,
    'C', 'l', 'e', 'a', 'r', 0,
    'C', 'l', 'o', 'n', 'e', 0,
    'C', 'l', 'o', 's', 'e', 0,
    'S', 'W', '_', '3', 'D', 0,
    'S', 'e', 't', 'I', 'd', 0,
    'a', 'p', 'p', 'I', 'd', 0,
    'b', 'r', 'u', 's', 'h', 0,
    'c', 'h', 'i', 'l', 'd', 0,
    'c', 'o', 'l', 'B', 'g', 0,
    'c', 'o', 'l', 'F', 'g', 0,
    'c', 'o', 'u', 'n', 't', 0,
    'e', 'v', 'e', 'n', 't', 0,
    'f', 'i', 'r', 's', 't', 0,
    'f', 'l', 'a', 'g', 's', 0,
    'f', 'r', 'a', 'm', 'e', 0,
    'f', 'r', 'o', 'm', '_', 0,
    'i', 'm', 'a', 'g', 'e', 0,
    'i', 'n', 'd', 'e', 'x', 0,
    'l', 'a', 'b', 'e', 'l', 0,
    'l', 'e', 'v', 'e', 'l', 0,
    'o', 't', 'h', 'e', 'r', 0,
    'p', 'o', 'p', 'u', 'p', 0,
    's', 'c', 'a', 'l', 'e', 0,
    's', 'i', 'z', 'e', 'r', 0,
    's', 't', 'a', 'r', 't', 0,
    's', 't', 'y', 'l', 'e', 0,
    't', 'i', 't', 'l', 'e', 0,
    'v', 'a', 'l', 'u', 'e', 0,
    'w', 'i', 'd', 't', 'h', 0,
    'w', 'i', 'n', 'i', 'd', 0,
    'H', 'a', 's', 'U', 0,
    'H', 'a', 's', 'V', 0,
    'H', 'a', 's', 'Z', 0,
    'I', 's', 'O', 'k', 0,
    'L', 'o', 'a', 'd', 0,
    'P', 'l', 'a', 'y', 0,
    'S', 't', 'o', 'p', 0,
    'a', 'n', 'i', 'm', 0,
    'a', 't', 't', 'r', 0,
    'a', 'x', 'i', 's', 0,
    'd', 'a', 't', 'a', 0,
    'd', 'e', 's', 'c', 0,
    'e', 'd', 'g', 'e', 0,
    'f', 'i', 'l', 'e', 0,
    'f', 'o', 'n', 't', 0,
    'f', 'r', 'o', 'm', 0,
    'h', 'o', 'u', 'r', 0,
    'i', 'c', 'o', 'n', 0,
    'i', 'n', 'c', 'H', 0,
    'i', 'n', 'c', 'W', 0,
    'i', 'n', 'f', 'o', 0,
    'i', 't', 'e', 'm', 0,
    'm', 'a', 'r', 'k', 0,
    'm', 'a', 'x', 'H', 0,
    'm', 'a', 'x', 'W', 0,
    'm', 'e', 'n', 'u', 0,
    'm', 'i', 'n', 'H', 0,
    'm', 'i', 'n', 'W', 0,
    'm', 'o', 'd', 'e', 0,
    'm', 's', 'e', 'c', 0,
    'n', 'e', 'x', 't', 0,
    'n', 'o', 't', 'e', 0,
    'p', 'a', 'g', 'e', 0,
    'p', 'r', 'e', 'v', 0,
    'r', 'e', 'c', 't', 0,
    's', 'h', 'o', 'w', 0,
    's', 'i', 'z', 'e', 0,
    't', 'e', 'x', 't', 0,
    't', 'i', 'm', 'e', 0,
    't', 'y', 'p', 'e', 0,
    'u', 'n', 'i', 't', 0,
    'b', 'm', 'p', 0,
    'c', 'o', 'l', 0,
    'd', 'i', 'r', 0,
    'd', 't', '1', 0,
    'd', 't', '2', 0,
    'i', 'd', 'x', 0,
    'm', 'i', 'n', 0,
    'm', 's', 'g', 0,
    'o', 'b', 'j', 0,
    'p', 'e', 'n', 0,
    'p', 'o', 's', 0,
    'p', 't', '1', 0,
    'p', 't', '2', 0,
    'r', 'o', 'w', 0,
    't', 'o', '_', 0,
    'u', 'r', 'l', 0,
    'w', 'i', 'n', 0,
    'b', 'g', 0,
    'c', 'i', 0,
    'd', 'c', 0,
    'd', 't', 0,
    'd', 'y', 0,
    'p', 't', 0,
    's', 'z', 0,
    'w', 'd', 0,
    'x', '1', 0,
    'x', '2', 0,
    'x', 'c', 0,
    'y', '1', 0,
    'y', '2', 0,
    'y', 'c', 0,
};
/////////////////////////////////////////////////////////////////////////////
// Name:        src/pseudodc.cpp
// Purpose:     Implementation of the wxPseudoDC classes
// Author:      Paul Lanier
// Modified by: Robin Dunn
//
// Created:     25-May-2006
// Copyright:   (c) 2006-2020 Total Control Software
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

// For compilers that support precompilation, includes "wx.h".
//include "wx/wxprec.h"

//#undef DEBUG

// wxList based class definitions
#include <wx/listimpl.cpp>
WX_DEFINE_LIST(pdcOpList);
WX_DEFINE_LIST(pdcObjectList);

//----------------------------------------------------------------------------
// Helper functions used for drawing greyed out versions of objects
//----------------------------------------------------------------------------
wxColour &MakeColourGrey(const wxColour &c)
{
    static wxColour rval;
    rval.Set(byte((230-c.Red())*0.7+c.Red()),
             byte((230-c.Green())*0.7+c.Green()),
             byte((230-c.Blue())*0.7+c.Blue()));
    return rval;
}
wxBrush &GetGreyBrush(wxBrush &brush)
{
    static wxBrush b;
    wxColour c;
    b = brush;
    c = MakeColourGrey(brush.GetColour());
    b.SetColour(c);
    return b;
}

wxPen &GetGreyPen(wxPen &pen)
{
    static wxPen p;
    wxColour c;
    p = pen;
    c = MakeColourGrey(pen.GetColour());
    p.SetColour(c);
    return p;
}

void GreyOutImage(wxImage &img)
{
    unsigned char *data = img.GetData();
    unsigned char r,g,b;
    unsigned char mr,mg,mb;
    int i, tst;
    int len = img.GetHeight()*img.GetWidth()*3;
    if (img.HasMask())
    {
        mr = img.GetMaskRed();
        mg = img.GetMaskGreen();
        mb = img.GetMaskBlue();
    }
    tst=0;
    for (i=0;i<len;i+=3)
    {
        r=data[i]; g=data[i+1]; b=data[i+2];
        if (!img.HasMask() ||
            r!=mr || g!=mg || b!=mb)
        {
            if (!tst)
            {
                tst=1;
            }
            r = (unsigned char)((230.0-r)*0.7+r);
            g = (unsigned char)((230.0-g)*0.7+g);
            b = (unsigned char)((230.0-b)*0.7+b);
            data[i]=r; data[i+1]=g; data[i+2]=b;
        }
    }
}

wxIcon &GetGreyIcon(wxIcon &icon)
{
    wxBitmap bmp;
    bmp.CopyFromIcon(icon);
    wxImage img = bmp.ConvertToImage();
    GreyOutImage(img);
    wxBitmap bmp2(img,32);
    static wxIcon rval;
    rval.CopyFromBitmap(bmp2);
    return rval;
}

wxBitmap &GetGreyBitmap(wxBitmap &bmp)
{
    wxImage img = bmp.ConvertToImage();
    GreyOutImage(img);
    static wxBitmap rval(img,32);
    return rval;
}

// ============================================================================
// various pdcOp class implementation methods
// ============================================================================

// ----------------------------------------------------------------------------
// pdcDrawPolyPolygonOp
// ----------------------------------------------------------------------------
pdcDrawPolyPolygonOp::pdcDrawPolyPolygonOp(int n, int count[], wxPoint points[],
                 wxCoord xoffset, wxCoord yoffset, wxPolygonFillMode fillStyle)
{
    m_n=n; m_xoffset=xoffset; m_yoffset=yoffset; m_fillStyle=fillStyle;
    int total_n=0;
    if (n)
    {
        m_count = new int[n];
        for(int i=0; i<n; i++)
        {
            total_n+=count[i];
            m_count[i]=count[i];
        }
        if (total_n)
        {
            m_points = new wxPoint[total_n];
            for(int j=0; j<total_n; j++)
                m_points[j] = points[j];
        }
        else m_points=NULL;
    }
    else
    {
        m_points=NULL;
        m_count=NULL;
    }
    m_totaln = total_n;
}


pdcDrawPolyPolygonOp::~pdcDrawPolyPolygonOp()
{
    if (m_points) delete[] m_points;
    if (m_count) delete[] m_count;
    m_points=NULL;
    m_count=NULL;
}


// ----------------------------------------------------------------------------
// pdcDrawLinesOp
// ----------------------------------------------------------------------------
pdcDrawLinesOp::pdcDrawLinesOp(const wxPointList* points,
                               wxCoord xoffset,
                               wxCoord yoffset)
{
    m_xoffset = xoffset;
    m_yoffset = yoffset;

    m_points = new wxPointList;
    wxPointList::const_iterator iter;
    for (iter = points->begin(); iter != points->end(); iter++)
    {
        // The first * gives us a wxPoint ptr, second * dereferences that ptr
        m_points->push_back(new wxPoint(**iter));
    }
}


pdcDrawLinesOp::~pdcDrawLinesOp()
{
    m_points->clear();
    delete m_points;
    m_points = NULL;
}


void pdcDrawLinesOp::Translate(wxCoord dx, wxCoord dy)
{
    wxPointList::const_iterator iter;
    for (iter = m_points->begin(); iter != m_points->end(); iter++)
    {
        (*iter)->x += dx;
        (*iter)->y += dy;
    }
}

// ----------------------------------------------------------------------------
// pdcDrawPolygonOp
// ----------------------------------------------------------------------------
pdcDrawPolygonOp::pdcDrawPolygonOp(const wxPointList* points,
                                   wxCoord xoffset,
                                   wxCoord yoffset,
                                   wxPolygonFillMode fillStyle)
{
    m_xoffset = xoffset;
    m_yoffset = yoffset;
    m_fillStyle = fillStyle;

    m_points = new wxPointList;
    wxPointList::const_iterator iter;
    for (iter = points->begin(); iter != points->end(); ++iter)
    {
        // The first * gives us a wxPoint ptr, second * dereferences that ptr
        m_points->push_back(new wxPoint(**iter));
    }
}


pdcDrawPolygonOp::~pdcDrawPolygonOp()
{
    m_points->clear();
    delete m_points;
}


void pdcDrawPolygonOp::Translate(wxCoord dx, wxCoord dy)
{
    wxPointList::const_iterator iter;
    for (iter = m_points->begin(); iter != m_points->end(); iter++)
    {
        (*iter)->x += dx;
        (*iter)->y += dy;
    }
}

#if wxUSE_SPLINES
// ----------------------------------------------------------------------------
// pdcDrawSplineOp
// ----------------------------------------------------------------------------
pdcDrawSplineOp::pdcDrawSplineOp(const wxPointList* points)
{
    m_points = new wxPointList;
    wxPointList::const_iterator iter;
    for (iter = points->begin(); iter != points->end(); iter++)
    {
        // The first * gives us a wxPoint ptr, second * dereferences that ptr
        m_points->push_back(new wxPoint(**iter));
    }
}


pdcDrawSplineOp::~pdcDrawSplineOp()
{
    m_points->clear();
    delete m_points;
}


void pdcDrawSplineOp::Translate(wxCoord dx, wxCoord dy)
{
    wxPointList::const_iterator iter;
    for (iter = m_points->begin(); iter != m_points->end(); iter++)
    {
        (*iter)->x += dx;
        (*iter)->y += dy;
    }
}

#endif // wxUSE_SPLINES

// ============================================================================
// pdcObject implementation
// ============================================================================

// ----------------------------------------------------------------------------
// DrawToDC - play back the op list to the DC
// ----------------------------------------------------------------------------
void pdcObject::DrawToDC(wxDC *dc)
{
    pdcOpList::compatibility_iterator node = m_oplist.GetFirst();
    while(node)
    {
        node->GetData()->DrawToDC(dc, m_greyedout);
        node = node->GetNext();
    }
}

// ----------------------------------------------------------------------------
// Translate - translate all the operations by some dx,dy
// ----------------------------------------------------------------------------
void pdcObject::Translate(wxCoord dx, wxCoord dy)
{
    pdcOpList::compatibility_iterator node = m_oplist.GetFirst();
    while(node)
    {
        node->GetData()->Translate(dx,dy);
        node = node->GetNext();
    }
    if (m_bounded)
    {
        m_bounds.x += dx;
        m_bounds.y += dy;
    }
}

// ----------------------------------------------------------------------------
// SetGreyedOut - set the greyout member and cache grey versions of everything
// if greyout is true
// ----------------------------------------------------------------------------
void pdcObject::SetGreyedOut(bool greyout)
{
    m_greyedout=greyout;
    if (greyout)
    {
        pdcOpList::compatibility_iterator node = m_oplist.GetFirst();
        pdcOp *obj;
        while(node)
        {
            obj = node->GetData();
            obj->CacheGrey();
            node = node->GetNext();
        }
    }
}

// ============================================================================
// wxPseudoDC implementation
// ============================================================================

// ----------------------------------------------------------------------------
// Destructor
// ----------------------------------------------------------------------------
wxPseudoDC::~wxPseudoDC()
{
    // delete all the nodes in the list
    RemoveAll();

}

// ----------------------------------------------------------------------------
// ClearAll - remove all nodes from list
// ----------------------------------------------------------------------------
void wxPseudoDC::RemoveAll(void)
{
    m_objectlist.Clear();
    m_objectIndex.clear();
    m_currId = -1;
    m_lastObject = NULL;

}

// ----------------------------------------------------------------------------
// GetLen - return the number of operations in the current op list
// ----------------------------------------------------------------------------
int wxPseudoDC::GetLen(void)
{
    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
    int len=0;
    while (pt)
    {
        len += pt->GetData()->GetLen();
        pt = pt->GetNext();
    }
    return len;
}

// ----------------------------------------------------------------------------
// FindObject - find and return an object node by id.  If node doesn't exist
//               and create is true then create one and return it.  Otherwise
//               return NULL.
// ----------------------------------------------------------------------------
pdcObject *wxPseudoDC::FindObject(int id, bool create)
{
    // see if last operation was for same id
    //~ if (m_lastObject && m_lastObject->GetId() == id)
        //~ return m_lastObject;
    // if not then search for it
    pdcObjectHash::iterator lookup = m_objectIndex.find(id);
    if (lookup == m_objectIndex.end()) {//not found
        if (create) {
            m_lastObject = new pdcObject(id);
            m_objectlist.Append(m_lastObject);
            pdcObjectHash::value_type insert(id, m_lastObject);
            m_objectIndex.insert(insert);
            return m_lastObject;
        } else {
            return NULL;
        }
    } else { //found
        return lookup->second;
    }
}

// ----------------------------------------------------------------------------
// AddToList - Add a node to the list at the end (preserve draw order)
// ----------------------------------------------------------------------------
void wxPseudoDC::AddToList(pdcOp *newOp)
{
    pdcObject *obj = FindObject(m_currId, true);
    obj->AddOp(newOp);
}

// ----------------------------------------------------------------------------
// ClearID - remove all the operations associated with a single ID
// ----------------------------------------------------------------------------
void wxPseudoDC::ClearId(int id)
{
    pdcObject *obj = FindObject(id);
    if (obj) obj->Clear();
}

// ----------------------------------------------------------------------------
// RemoveID - Remove the object node (and all operations) associated with an id
// ----------------------------------------------------------------------------
void wxPseudoDC::RemoveId(int id)
{
    pdcObject *obj = FindObject(id);
    if (obj)
    {
        if (m_lastObject == obj)
            m_lastObject = obj;
        m_objectlist.DeleteObject(obj);
    }
    m_objectIndex.erase(id);
}

// ----------------------------------------------------------------------------
// SetIdBounds - Set the bounding rect for a given id
// ----------------------------------------------------------------------------
void wxPseudoDC::SetIdBounds(int id, wxRect& rect)
{
    pdcObject *obj = FindObject(id, true);
    obj->SetBounds(rect);
}

// ----------------------------------------------------------------------------
// GetIdBounds - Get the bounding rect for a given id
// ----------------------------------------------------------------------------
wxRect wxPseudoDC::GetIdBounds(int id)
{
    wxRect rect;

    pdcObject *obj = FindObject(id);
    if (obj && obj->IsBounded())
        rect = obj->GetBounds();
    else
        rect.x = rect.y = rect.width = rect.height = 0;
    return rect;
}

// ----------------------------------------------------------------------------
// TranslateId - Translate all the operations of a single id
// ----------------------------------------------------------------------------
void wxPseudoDC::TranslateId(int id, wxCoord dx, wxCoord dy)
{
    pdcObject *obj = FindObject(id);
    if (obj) obj->Translate(dx,dy);
}

// ----------------------------------------------------------------------------
// DrawIdToDC - Draw a specific id to the dc passed in
// ----------------------------------------------------------------------------
void wxPseudoDC::DrawIdToDC(int id, wxDC *dc)
{
    pdcObject *obj = FindObject(id);
    if (obj) obj->DrawToDC(dc);
}

// ----------------------------------------------------------------------------
// SetIdGreyedOut - Set the greyedout member of id
// ----------------------------------------------------------------------------
void wxPseudoDC::SetIdGreyedOut(int id, bool greyout)
{
    pdcObject *obj = FindObject(id);
    if (obj) obj->SetGreyedOut(greyout);
}

// ----------------------------------------------------------------------------
// GetIdGreyedOut - Get the greyedout member of id
// ----------------------------------------------------------------------------
bool wxPseudoDC::GetIdGreyedOut(int id)
{
    pdcObject *obj = FindObject(id);
    if (obj) return obj->GetGreyedOut();
    else return false;
}

// ----------------------------------------------------------------------------
// FindObjectsByBBox - Return a list of all the ids whose bounding boxes
//                     contain (x,y)
// ----------------------------------------------------------------------------
PyObject *wxPseudoDC::FindObjectsByBBox(wxCoord x, wxCoord y)
{
    wxPyThreadBlocker blocker;
    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
    pdcObject *obj;
    PyObject* pyList = NULL;
    pyList = PyList_New(0);
    wxRect r;
    while (pt)
    {
        obj = pt->GetData();
        r = obj->GetBounds();
        if (obj->IsBounded() && r.Contains(x,y))
        {
            PyObject* pyObj = wxPyInt_FromLong((long)obj->GetId());
            PyList_Insert(pyList, 0, pyObj);
            Py_DECREF(pyObj);
        }
        pt = pt->GetNext();
    }
    return pyList;
}

// ----------------------------------------------------------------------------
// FindObjects - Return a list of all the ids that draw to (x,y)
// ----------------------------------------------------------------------------
PyObject *wxPseudoDC::FindObjects(wxCoord x, wxCoord y,
                                  wxCoord radius, const wxColor& bg)
{
    wxPyThreadBlocker blocker;
    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
    pdcObject *obj;
    PyObject* pyList = NULL;
    pyList = PyList_New(0);
    wxBrush bgbrush(bg);
    wxPen bgpen(bg);
    // special case radius = 0
    if (radius == 0)
    {
        wxBitmap bmp(4,4,24);
        wxMemoryDC memdc;
        wxColor pix;
        wxRect viewrect(x-2,y-2,4,4);
        // setup the memdc for rendering
        memdc.SelectObject(bmp);
        memdc.SetBackground(bgbrush);
        memdc.Clear();
        memdc.SetDeviceOrigin(2-x,2-y);
        while (pt)
        {
            obj = pt->GetData();
            if (obj->IsBounded() && obj->GetBounds().Contains(x,y))
            {
                // start clean
                memdc.SetBrush(bgbrush);
                memdc.SetPen(bgpen);
                memdc.DrawRectangle(viewrect);
                // draw the object
                obj->DrawToDC(&memdc);
                memdc.GetPixel(x,y,&pix);
                // clear and update rgn2
                if (pix != bg)
                {
                    PyObject* pyObj = wxPyInt_FromLong((long)obj->GetId());
                    PyList_Insert(pyList, 0, pyObj);
                    Py_DECREF(pyObj);
                }
            }
            pt = pt->GetNext();
        }
        memdc.SelectObject(wxNullBitmap);
    }
    else
    {
        wxRect viewrect(x-radius,y-radius,2*radius,2*radius);
        wxBitmap maskbmp(2*radius,2*radius,24);
        wxMemoryDC maskdc;
        // create bitmap with circle for masking
        maskdc.SelectObject(maskbmp);
        maskdc.SetBackground(*wxBLACK_BRUSH);
        maskdc.Clear();
        maskdc.SetBrush(*wxWHITE_BRUSH);
        maskdc.SetPen(*wxWHITE_PEN);
        maskdc.DrawCircle(radius,radius,radius);
        // now setup a memdc for rendering our object
        wxBitmap bmp(2*radius,2*radius,24);
        wxMemoryDC memdc;
        memdc.SelectObject(bmp);
        // set the origin so (x,y) is in the bmp center
        memdc.SetDeviceOrigin(radius-x,radius-y);
        // a region will be used to see if the result is empty
        wxRegion rgn2;
        while (pt)
        {
            obj = pt->GetData();
            if (obj->IsBounded() && viewrect.Intersects(obj->GetBounds()))
            {
                // start clean
                //memdc.Clear();
                memdc.SetBrush(bgbrush);
                memdc.SetPen(bgpen);
                memdc.DrawRectangle(viewrect);
                // draw the object
                obj->DrawToDC(&memdc);
                // remove background color
                memdc.SetLogicalFunction(wxXOR);
                memdc.SetBrush(bgbrush);
                memdc.SetPen(bgpen);
                memdc.DrawRectangle(viewrect);
                memdc.SetLogicalFunction(wxCOPY);
                memdc.Blit(x-radius,y-radius,2*radius,2*radius,&maskdc,0,0,wxCOPY);
                // clear and update rgn2
                memdc.SelectObject(wxNullBitmap);
                rgn2.Clear();
                rgn2.Union(bmp, *wxBLACK);
                //rgn2.Intersect(rgn);
                memdc.SelectObject(bmp);
                if (!rgn2.IsEmpty())
                {
                    PyObject* pyObj = wxPyInt_FromLong((long)obj->GetId());
                    PyList_Insert(pyList, 0, pyObj);
                    Py_DECREF(pyObj);
                }
            }
            pt = pt->GetNext();
        }
        maskdc.SelectObject(wxNullBitmap);
        memdc.SelectObject(wxNullBitmap);
    }
     return pyList;
}

// ----------------------------------------------------------------------------
// DrawToDCClipped - play back the op list to the DC but clip any objects
//                   known to be not in rect.  This is a coarse level of
//                   clipping to speed things up when lots of objects are off
//                   screen and doesn't affect the dc level clipping
// ----------------------------------------------------------------------------
void wxPseudoDC::DrawToDCClipped(wxDC *dc, const wxRect& rect)
{
    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
    pdcObject *obj;
    while (pt)
    {
        obj = pt->GetData();
        if (!obj->IsBounded() || rect.Intersects(obj->GetBounds()))
            obj->DrawToDC(dc);
        pt = pt->GetNext();
    }
}
void wxPseudoDC::DrawToDCClippedRgn(wxDC *dc, const wxRegion& region)
{
    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
    pdcObject *obj;
    while (pt)
    {
        obj = pt->GetData();
        if (!obj->IsBounded() ||
            (region.Contains(obj->GetBounds()) != wxOutRegion))
            obj->DrawToDC(dc);
        pt = pt->GetNext();
    }
}

// ----------------------------------------------------------------------------
// DrawToDC - play back the op list to the DC
// ----------------------------------------------------------------------------
void wxPseudoDC::DrawToDC(wxDC *dc)
{
    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
    while (pt)
    {
        pt->GetData()->DrawToDC(dc);
        pt = pt->GetNext();
    }
}

 ::wxBookCtrlBase* sipVH__adv_70(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxBookCtrlBase* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxBookCtrlBase, &sipRes);

    return sipRes;
}

void sipVH__adv_69(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxSizer*sizer)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", sizer, sipType_wxSizer, SIP_NULLPTR);
}

bool sipVH__adv_68(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxWizardPage*page,bool goingForward)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "Db", page, sipType_wxWizardPage, SIP_NULLPTR, goingForward);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_67(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxSize& sizePage)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "N", new  ::wxSize(sizePage), sipType_wxSize, SIP_NULLPTR);
}

bool sipVH__adv_66(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxWizardPage*page)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "D", page, sipType_wxWizardPage, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

 ::wxSizer* sipVH__adv_65(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxSizer* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxSizer, &sipRes);

    return sipRes;
}

void sipVH__adv_64(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxWizardPage*firstPage)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", const_cast< ::wxWizardPage *>(firstPage), sipType_wxWizardPage, SIP_NULLPTR);
}

 ::wxWizardPage* sipVH__adv_63(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxWizardPage* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxWizardPage, &sipRes);

    return sipRes;
}

 ::wxBitmap sipVH__adv_62(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxBitmap sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxBitmap, &sipRes);

    return sipRes;
}

 ::wxCoord sipVH__adv_61(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, size_t item)
{
     ::wxCoord sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "=", item);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "i", &sipRes);

    return sipRes;
}

void sipVH__adv_60(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxDC& dc,const  ::wxRect& rect,int item,int flags)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "DNii", &dc, sipType_wxDC, SIP_NULLPTR, new  ::wxRect(rect), sipType_wxRect, SIP_NULLPTR, item, flags);
}

int sipVH__adv_59(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
    int sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "i", &sipRes);

    return sipRes;
}

void sipVH__adv_58(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int n)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "i", n);
}

int sipVH__adv_57(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& string,bool caseSensitive)
{
    int sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "Nb", new  ::wxString(string), sipType_wxString, SIP_NULLPTR, caseSensitive);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "i", &sipRes);

    return sipRes;
}

void sipVH__adv_56(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint n,const  ::wxString& s)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "uN", n, new  ::wxString(s), sipType_wxString, SIP_NULLPTR);
}

 ::wxString sipVH__adv_55(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint n)
{
     ::wxString sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "u", n);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxString, &sipRes);

    return sipRes;
}

uint sipVH__adv_54(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
    uint sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "u", &sipRes);

    return sipRes;
}

bool sipVH__adv_53(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxKeyEvent& event)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "N", new  ::wxKeyEvent(event), sipType_wxKeyEvent, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__adv_52(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxRect& rect,int flags)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "Ni", new  ::wxRect(rect), sipType_wxRect, SIP_NULLPTR, flags);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_51(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxComboPopup*popup)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", popup, sipType_wxComboPopup, SIP_NULLPTR);
}

void sipVH__adv_50(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxRect& rect,int flags)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "Ni", new  ::wxRect(rect), sipType_wxRect, SIP_NULLPTR, flags);
}

void sipVH__adv_49(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& text,bool show)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "Nb", new  ::wxString(text), sipType_wxString, SIP_NULLPTR, show);
}

 ::wxStatusBar* sipVH__adv_48(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int number,long style, ::wxWindowID id,const  ::wxString& name)
{
     ::wxStatusBar* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "iliN", number, style, id, new  ::wxString(name), sipType_wxString, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxStatusBar, &sipRes);

    return sipRes;
}

 ::wxToolBar* sipVH__adv_47(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, long style, ::wxWindowID id,const  ::wxString& name)
{
     ::wxToolBar* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "liN", style, id, new  ::wxString(name), sipType_wxString, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxToolBar, &sipRes);

    return sipRes;
}

 ::wxColour sipVH__adv_46(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint frame)
{
     ::wxColour sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "u", frame);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxColour, &sipRes);

    return sipRes;
}

long sipVH__adv_45(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint frame)
{
    long sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "u", frame);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "l", &sipRes);

    return sipRes;
}

 ::wxAnimationDisposal sipVH__adv_44(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint frame)
{
     ::wxAnimationDisposal sipRes = ::wxANIM_UNSPECIFIED;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "u", frame);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "F", sipType_wxAnimationDisposal, &sipRes);

    return sipRes;
}

 ::wxPoint sipVH__adv_43(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint frame)
{
     ::wxPoint sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "u", frame);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxPoint, &sipRes);

    return sipRes;
}

 ::wxSize sipVH__adv_42(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint frame)
{
     ::wxSize sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "u", frame);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxSize, &sipRes);

    return sipRes;
}

bool sipVH__adv_41(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, uint frame, ::wxImage*image)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "uD", frame, image, sipType_wxImage, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

 ::wxAnimationType sipVH__adv_40(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxAnimationType sipRes = ::wxANIMATION_TYPE_INVALID;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "F", sipType_wxAnimationType, &sipRes);

    return sipRes;
}

 ::wxAnimationDecoder* sipVH__adv_39(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxAnimationDecoder* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxAnimationDecoder, &sipRes);

    return sipRes;
}

bool sipVH__adv_38(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxInputStream& stream)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "D", &stream, sipType_wxInputStream, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_37(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxBitmapBundle& bmp)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "N", new  ::wxBitmapBundle(bmp), sipType_wxBitmapBundle, SIP_NULLPTR);
}

void sipVH__adv_36(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxAnimation& anim)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "N", new  ::wxAnimation(anim), sipType_wxAnimation, SIP_NULLPTR);
}

bool sipVH__adv_35(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxInputStream& file, ::wxAnimationType animType)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "DF", &file, sipType_wxInputStream, SIP_NULLPTR, animType, sipType_wxAnimationType);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__adv_34(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& file, ::wxAnimationType animType)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "NF", new  ::wxString(file), sipType_wxString, SIP_NULLPTR, animType, sipType_wxAnimationType);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

 ::wxMenu* sipVH__adv_33(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxMenu* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxMenu, &sipRes);

    return sipRes;
}

 ::wxMenu* sipVH__adv_32(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxMenu* sipRes = 0;
        // VirtualCatcherCode for wxTaskBarIcon.CreatePopupMenu
        PyObject *sipResObj = sipCallMethod(0, sipMethod, "");
        if (!sipResObj || sipParseResult(0, sipMethod, sipResObj, "H0", sipType_wxMenu, &sipRes) < 0)
            PyErr_Print();
        if (sipRes) {
            sipTransferTo(sipResObj, Py_None);
        }

    Py_DECREF(sipMethod);

    SIP_RELEASE_GIL(sipGILState)

    return sipRes;
}

bool sipVH__adv_31(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxBitmapBundle& icon,const  ::wxString& tooltip)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "NN", new  ::wxBitmapBundle(icon), sipType_wxBitmapBundle, SIP_NULLPTR, new  ::wxString(tooltip), sipType_wxString, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__adv_30(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxMenu*menu)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "D", menu, sipType_wxMenu, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

 ::wxString sipVH__adv_29(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxString sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxString, &sipRes);

    return sipRes;
}

 ::wxEventCategory sipVH__adv_28(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxEventCategory sipRes = ::wxEVT_CATEGORY_UI;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "F", sipType_wxEventCategory, &sipRes);

    return sipRes;
}

 ::wxEvent* sipVH__adv_27(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxEvent* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H2", sipType_wxEvent, &sipRes);

    return sipRes;
}

 ::wxSize sipVH__adv_26(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxSize sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxSize, &sipRes);

    return sipRes;
}

 ::wxBorder sipVH__adv_25(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxBorder sipRes = ::wxBORDER_DEFAULT;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "F", sipType_wxBorder, &sipRes);

    return sipRes;
}

void sipVH__adv_24(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxWindowVariant variant)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "F", variant, sipType_wxWindowVariant);
}

void sipVH__adv_23(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int x,int y,int width,int height)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "iiii", x, y, width, height);
}

void sipVH__adv_22(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int minW,int minH,int maxW,int maxH,int incW,int incH)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "iiiiii", minW, minH, maxW, maxH, incW, incH);
}

void sipVH__adv_21(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int width,int height)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "ii", width, height);
}

void sipVH__adv_20(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int x,int y,int width,int height,int sizeFlags)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "iiiii", x, y, width, height, sizeFlags);
}

void sipVH__adv_19(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int*x,int*y)
{
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "(ii)", x, y);
}

void sipVH__adv_18(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxValidator& validator)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", const_cast< ::wxValidator *>(&validator), sipType_wxValidator, SIP_NULLPTR);
}

 ::wxValidator* sipVH__adv_17(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxValidator* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxValidator, &sipRes);

    return sipRes;
}

 ::wxPoint sipVH__adv_16(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxPoint sipRes;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H5", sipType_wxPoint, &sipRes);

    return sipRes;
}

bool sipVH__adv_15(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int direction,int size,int availableOtherDir)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "iii", direction, size, availableOtherDir);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_14(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, bool canFocus)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "b", canFocus);
}

bool sipVH__adv_13(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxEvent& event)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "D", &event, sipType_wxEvent, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_12(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxWindowBase*child)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", child, sipType_wxWindowBase, SIP_NULLPTR);
}

bool sipVH__adv_11(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, long blockNo)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "l", blockNo);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__adv_10(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, int sectionNo)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "i", sectionNo);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__adv_9(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& text,const  ::wxPoint& pos)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "NN", new  ::wxString(text), sipType_wxString, SIP_NULLPTR, new  ::wxPoint(pos), sipType_wxPoint, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

 ::wxFrame* sipVH__adv_8(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxSize*size, ::wxPoint*pos,bool*newFrameEachTime)
{
     ::wxFrame* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "DD", size, sipType_wxSize, SIP_NULLPTR, pos, sipType_wxPoint, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "(H0b)", sipType_wxFrame, &sipRes, newFrameEachTime);

    return sipRes;
}

 ::wxWindow* sipVH__adv_7(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
     ::wxWindow* sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "H0", sipType_wxWindow, &sipRes);

    return sipRes;
}

bool sipVH__adv_6(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& k, ::wxHelpSearchMode mode)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "NF", new  ::wxString(k), sipType_wxString, SIP_NULLPTR, mode, sipType_wxHelpSearchMode);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__adv_5(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& file)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "N", new  ::wxString(file), sipType_wxString, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_4(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "");
}

bool sipVH__adv_3(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "");

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__adv_2(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& titleFormat,const  ::wxSize& size,const  ::wxPoint& pos,bool newFrameEachTime)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "NNNb", new  ::wxString(titleFormat), sipType_wxString, SIP_NULLPTR, new  ::wxSize(size), sipType_wxSize, SIP_NULLPTR, new  ::wxPoint(pos), sipType_wxPoint, SIP_NULLPTR, newFrameEachTime);
}

void sipVH__adv_1(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod,  ::wxWindow*parentWindow)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", parentWindow, sipType_wxWindow, SIP_NULLPTR);
}

void sipVH__adv_0(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const  ::wxString& viewer,long flags)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "Nl", new  ::wxString(viewer), sipType_wxString, SIP_NULLPTR, flags);
}


PyDoc_STRVAR(doc_ShowTip, "ShowTip(parent, tipProvider, showAtStartup=True) -> bool\n"
"\n"
"This function shows a \"startup tip\" to the user.");

extern "C" {static PyObject *func_ShowTip(PyObject *,PyObject *, PyObject *);}
static PyObject *func_ShowTip(PyObject *,PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::wxWindow* parent;
         ::wxTipProvider* tipProvider;
        bool showAtStartup = 1;

        static const char *sipKwdList[] = {
            sipName_parent,
            sipName_tipProvider,
            sipName_showAtStartup,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J8J8|b", sipType_wxWindow, &parent, sipType_wxTipProvider, &tipProvider, &showAtStartup))
        {
            bool sipRes;
    if (!wxPyCheckForApp()) return NULL;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = wxShowTip(parent,tipProvider,showAtStartup);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoFunction(sipParseErr, sipName_ShowTip, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_CreateFileTipProvider, "CreateFileTipProvider(filename, currentTip) -> TipProvider\n"
"\n"
"This function creates a wxTipProvider which may be used with\n"
"wxShowTip().");

extern "C" {static PyObject *func_CreateFileTipProvider(PyObject *,PyObject *, PyObject *);}
static PyObject *func_CreateFileTipProvider(PyObject *,PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxString* filename;
        int filenameState = 0;
        size_t currentTip;

        static const char *sipKwdList[] = {
            sipName_filename,
            sipName_currentTip,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J1=", sipType_wxString, &filename, &filenameState, &currentTip))
        {
             ::wxTipProvider*sipRes;
    if (!wxPyCheckForApp()) return NULL;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = wxCreateFileTipProvider(*filename,currentTip);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(filename), sipType_wxString, filenameState);

            if (PyErr_Occurred())
                return 0;

            return sipConvertFromNewType(sipRes,sipType_wxTipProvider,SIP_NULLPTR);
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoFunction(sipParseErr, sipName_CreateFileTipProvider, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_GenericAboutBox, "GenericAboutBox(info, parent=None)\n"
"\n"
"This function does the same thing as wxAboutBox() except that it\n"
"always uses the generic wxWidgets version of the dialog instead of the\n"
"native one.");

extern "C" {static PyObject *func_GenericAboutBox(PyObject *,PyObject *, PyObject *);}
static PyObject *func_GenericAboutBox(PyObject *,PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxAboutDialogInfo* info;
         ::wxWindow* parent = 0;

        static const char *sipKwdList[] = {
            sipName_info,
            sipName_parent,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J9|J8", sipType_wxAboutDialogInfo, &info, sipType_wxWindow, &parent))
        {
    if (!wxPyCheckForApp()) return NULL;
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            wxGenericAboutBox(*info,parent);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoFunction(sipParseErr, sipName_GenericAboutBox, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_AboutBox, "AboutBox(info, parent=None)\n"
"\n"
"This function shows the standard about dialog containing the\n"
"information specified in info.");

extern "C" {static PyObject *func_AboutBox(PyObject *,PyObject *, PyObject *);}
static PyObject *func_AboutBox(PyObject *,PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxAboutDialogInfo* info;
         ::wxWindow* parent = 0;

        static const char *sipKwdList[] = {
            sipName_info,
            sipName_parent,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J9|J8", sipType_wxAboutDialogInfo, &info, sipType_wxWindow, &parent))
        {
    if (!wxPyCheckForApp()) return NULL;
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            wxAboutBox(*info,parent);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoFunction(sipParseErr, sipName_AboutBox, SIP_NULLPTR);

    return SIP_NULLPTR;
}
static sipEnumTypeDef enumTypes[] = {
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxAnimationDisposal, SIP_NULLPTR, 0}, sipNameNr_AnimationDisposal, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxAnimationType, SIP_NULLPTR, 0}, sipNameNr_AnimationType, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxCalendarDateBorder, SIP_NULLPTR, 0}, sipNameNr_CalendarDateBorder, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxCalendarHitTestResult, SIP_NULLPTR, 0}, sipNameNr_CalendarHitTestResult, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxLayoutAlignment, SIP_NULLPTR, 0}, sipNameNr_LayoutAlignment, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxLayoutOrientation, SIP_NULLPTR, 0}, sipNameNr_LayoutOrientation, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxOwnerDrawnComboBoxPaintingFlags, SIP_NULLPTR, 0}, sipNameNr_OwnerDrawnComboBoxPaintingFlags, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxPropertySheetDialogFlags, SIP_NULLPTR, 0}, sipNameNr_PropertySheetDialogFlags, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxSashDragStatus, SIP_NULLPTR, 0}, sipNameNr_SashDragStatus, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxSashEdgePosition, SIP_NULLPTR, 0}, sipNameNr_SashEdgePosition, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxTaskBarIconType, SIP_NULLPTR, 0}, sipNameNr_TaskBarIconType, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxTipKind, SIP_NULLPTR, 0}, sipNameNr_TipKind, -1, SIP_NULLPTR},
};

/* These are the enum members of all global enums. */
static sipEnumMemberDef enummembers[] = {
    {sipName_ANIMATION_TYPE_ANI, static_cast<int>(::wxANIMATION_TYPE_ANI), 8},
    {sipName_ANIMATION_TYPE_ANY, static_cast<int>(::wxANIMATION_TYPE_ANY), 8},
    {sipName_ANIMATION_TYPE_GIF, static_cast<int>(::wxANIMATION_TYPE_GIF), 8},
    {sipName_ANIMATION_TYPE_INVALID, static_cast<int>(::wxANIMATION_TYPE_INVALID), 8},
    {sipName_ANIM_DONOTREMOVE, static_cast<int>(::wxANIM_DONOTREMOVE), 7},
    {sipName_ANIM_TOBACKGROUND, static_cast<int>(::wxANIM_TOBACKGROUND), 7},
    {sipName_ANIM_TOPREVIOUS, static_cast<int>(::wxANIM_TOPREVIOUS), 7},
    {sipName_ANIM_UNSPECIFIED, static_cast<int>(::wxANIM_UNSPECIFIED), 7},
    {sipName_CAL_BORDER_NONE, static_cast<int>(::wxCAL_BORDER_NONE), 14},
    {sipName_CAL_BORDER_ROUND, static_cast<int>(::wxCAL_BORDER_ROUND), 14},
    {sipName_CAL_BORDER_SQUARE, static_cast<int>(::wxCAL_BORDER_SQUARE), 14},
    {sipName_CAL_HITTEST_DAY, static_cast<int>(::wxCAL_HITTEST_DAY), 16},
    {sipName_CAL_HITTEST_DECMONTH, static_cast<int>(::wxCAL_HITTEST_DECMONTH), 16},
    {sipName_CAL_HITTEST_HEADER, static_cast<int>(::wxCAL_HITTEST_HEADER), 16},
    {sipName_CAL_HITTEST_INCMONTH, static_cast<int>(::wxCAL_HITTEST_INCMONTH), 16},
    {sipName_CAL_HITTEST_NOWHERE, static_cast<int>(::wxCAL_HITTEST_NOWHERE), 16},
    {sipName_CAL_HITTEST_SURROUNDING_WEEK, static_cast<int>(::wxCAL_HITTEST_SURROUNDING_WEEK), 16},
    {sipName_CAL_HITTEST_WEEK, static_cast<int>(::wxCAL_HITTEST_WEEK), 16},
    {sipName_LAYOUT_BOTTOM, static_cast<int>(::wxLAYOUT_BOTTOM), 30},
    {sipName_LAYOUT_HORIZONTAL, static_cast<int>(::wxLAYOUT_HORIZONTAL), 31},
    {sipName_LAYOUT_LEFT, static_cast<int>(::wxLAYOUT_LEFT), 30},
    {sipName_LAYOUT_NONE, static_cast<int>(::wxLAYOUT_NONE), 30},
    {sipName_LAYOUT_RIGHT, static_cast<int>(::wxLAYOUT_RIGHT), 30},
    {sipName_LAYOUT_TOP, static_cast<int>(::wxLAYOUT_TOP), 30},
    {sipName_LAYOUT_VERTICAL, static_cast<int>(::wxLAYOUT_VERTICAL), 31},
    {sipName_ODCB_PAINTING_CONTROL, static_cast<int>(::wxODCB_PAINTING_CONTROL), 34},
    {sipName_ODCB_PAINTING_SELECTED, static_cast<int>(::wxODCB_PAINTING_SELECTED), 34},
    {sipName_PROPSHEET_BUTTONTOOLBOOK, static_cast<int>(::wxPROPSHEET_BUTTONTOOLBOOK), 36},
    {sipName_PROPSHEET_CHOICEBOOK, static_cast<int>(::wxPROPSHEET_CHOICEBOOK), 36},
    {sipName_PROPSHEET_DEFAULT, static_cast<int>(::wxPROPSHEET_DEFAULT), 36},
    {sipName_PROPSHEET_LISTBOOK, static_cast<int>(::wxPROPSHEET_LISTBOOK), 36},
    {sipName_PROPSHEET_NOTEBOOK, static_cast<int>(::wxPROPSHEET_NOTEBOOK), 36},
    {sipName_PROPSHEET_SHRINKTOFIT, static_cast<int>(::wxPROPSHEET_SHRINKTOFIT), 36},
    {sipName_PROPSHEET_TOOLBOOK, static_cast<int>(::wxPROPSHEET_TOOLBOOK), 36},
    {sipName_PROPSHEET_TREEBOOK, static_cast<int>(::wxPROPSHEET_TREEBOOK), 36},
    {sipName_SASH_BOTTOM, static_cast<int>(::wxSASH_BOTTOM), 41},
    {sipName_SASH_LEFT, static_cast<int>(::wxSASH_LEFT), 41},
    {sipName_SASH_NONE, static_cast<int>(::wxSASH_NONE), 41},
    {sipName_SASH_RIGHT, static_cast<int>(::wxSASH_RIGHT), 41},
    {sipName_SASH_STATUS_OK, static_cast<int>(::wxSASH_STATUS_OK), 40},
    {sipName_SASH_STATUS_OUT_OF_RANGE, static_cast<int>(::wxSASH_STATUS_OUT_OF_RANGE), 40},
    {sipName_SASH_TOP, static_cast<int>(::wxSASH_TOP), 41},
    {sipName_TBI_CUSTOM_STATUSITEM, static_cast<int>(::wxTBI_CUSTOM_STATUSITEM), 49},
    {sipName_TBI_DEFAULT_TYPE, static_cast<int>(::wxTBI_DEFAULT_TYPE), 49},
    {sipName_TBI_DOCK, static_cast<int>(::wxTBI_DOCK), 49},
    {sipName_TipKind_Auto, static_cast<int>(::wxTipKind_Auto), 51},
    {sipName_TipKind_Bottom, static_cast<int>(::wxTipKind_Bottom), 51},
    {sipName_TipKind_BottomLeft, static_cast<int>(::wxTipKind_BottomLeft), 51},
    {sipName_TipKind_BottomRight, static_cast<int>(::wxTipKind_BottomRight), 51},
    {sipName_TipKind_None, static_cast<int>(::wxTipKind_None), 51},
    {sipName_TipKind_Top, static_cast<int>(::wxTipKind_Top), 51},
    {sipName_TipKind_TopLeft, static_cast<int>(::wxTipKind_TopLeft), 51},
    {sipName_TipKind_TopRight, static_cast<int>(::wxTipKind_TopRight), 51},
};


/*
 * This defines each type in this module.
 */
sipTypeDef *sipExportedTypes__adv[] = {
    &sipTypeDef__adv_wxANIDecoder.ctd_base,
    &sipTypeDef__adv_wxAboutDialogInfo.ctd_base,
    &sipTypeDef__adv_wxAnimation.ctd_base,
    &sipTypeDef__adv_wxAnimationCtrl.ctd_base,
    &sipTypeDef__adv_wxAnimationDecoder.ctd_base,
    &sipTypeDef__adv_wxAnimationDecoderList.ctd_base,
    &sipTypeDef__adv_wxAnimationDecoderList_iterator.ctd_base,
    &enumTypes[0].etd_base,
    &enumTypes[1].etd_base,
    &sipTypeDef__adv_wxBannerWindow.ctd_base,
    &sipTypeDef__adv_wxBitmapComboBox.ctd_base,
    &sipTypeDef__adv_wxCalculateLayoutEvent.ctd_base,
    &sipTypeDef__adv_wxCalendarCtrl.ctd_base,
    &sipTypeDef__adv_wxCalendarDateAttr.ctd_base,
    &enumTypes[2].etd_base,
    &sipTypeDef__adv_wxCalendarEvent.ctd_base,
    &enumTypes[3].etd_base,
    &sipTypeDef__adv_wxCommandLinkButton.ctd_base,
    &sipTypeDef__adv_wxDateEvent.ctd_base,
    &sipTypeDef__adv_wxDatePickerCtrl.ctd_base,
    &sipTypeDef__adv_wxDatePickerCtrlGeneric.ctd_base,
    &sipTypeDef__adv_wxEditableListBox.ctd_base,
    &sipTypeDef__adv_wxExtHelpController.ctd_base,
    &sipTypeDef__adv_wxGIFDecoder.ctd_base,
    &sipTypeDef__adv_wxGenericAnimationCtrl.ctd_base,
    &sipTypeDef__adv_wxGenericCalendarCtrl.ctd_base,
    &sipTypeDef__adv_wxHyperlinkCtrl.ctd_base,
    &sipTypeDef__adv_wxHyperlinkEvent.ctd_base,
    &sipTypeDef__adv_wxJoystick.ctd_base,
    &sipTypeDef__adv_wxLayoutAlgorithm.ctd_base,
    &enumTypes[4].etd_base,
    &enumTypes[5].etd_base,
    &sipTypeDef__adv_wxNotificationMessage.ctd_base,
    &sipTypeDef__adv_wxOwnerDrawnComboBox.ctd_base,
    &enumTypes[6].etd_base,
    &sipTypeDef__adv_wxPropertySheetDialog.ctd_base,
    &enumTypes[7].etd_base,
    &sipTypeDef__adv_wxPseudoDC.ctd_base,
    &sipTypeDef__adv_wxQueryLayoutInfoEvent.ctd_base,
    &sipTypeDef__adv_wxRichToolTip.ctd_base,
    &enumTypes[8].etd_base,
    &enumTypes[9].etd_base,
    &sipTypeDef__adv_wxSashEvent.ctd_base,
    &sipTypeDef__adv_wxSashLayoutWindow.ctd_base,
    &sipTypeDef__adv_wxSashWindow.ctd_base,
    &sipTypeDef__adv_wxSound.ctd_base,
    &sipTypeDef__adv_wxSplashScreen.ctd_base,
    &sipTypeDef__adv_wxTaskBarIcon.ctd_base,
    &sipTypeDef__adv_wxTaskBarIconEvent.ctd_base,
    &enumTypes[10].etd_base,
    &sipTypeDef__adv_wxTimePickerCtrl.ctd_base,
    &enumTypes[11].etd_base,
    &sipTypeDef__adv_wxTipProvider.ctd_base,
    &sipTypeDef__adv_wxWizard.ctd_base,
    &sipTypeDef__adv_wxWizardEvent.ctd_base,
    &sipTypeDef__adv_wxWizardPage.ctd_base,
    &sipTypeDef__adv_wxWizardPageSimple.ctd_base,
};


/* This defines the types that this module needs to import from _core. */
sipImportedTypeDef sipImportedTypes__adv__core[] = {
    {"wxAnyButton"},
    {"wxArrayString"},
    {"wxBitmap"},
    {"wxBitmapBundle"},
    {"wxBitmapButton"},
    {"wxBookCtrlBase"},
    {"wxBorder"},
    {"wxBrush"},
    {"wxButton"},
    {"wxClassInfo"},
    {"wxClientData"},
    {"wxColour"},
    {"wxComboCtrl"},
    {"wxComboPopup"},
    {"wxCommandEvent"},
    {"wxControl"},
    {"wxDC"},
    {"wxDateTime"},
    {"wxDateTime::WeekDay"},
    {"wxDialog"},
    {"wxDirection"},
    {"wxEvent"},
    {"wxEventCategory"},
    {"wxEvtHandler"},
    {"wxFloodFillStyle"},
    {"wxFont"},
    {"wxFrame"},
    {"wxHelpControllerBase"},
    {"wxHelpSearchMode"},
    {"wxIcon"},
    {"wxImage"},
    {"wxInputStream"},
    {"wxItemContainer"},
    {"wxItemContainerImmutable"},
    {"wxKeyEvent"},
    {"wxListCtrl"},
    {"wxMDIParentFrame"},
    {"wxMenu"},
    {"wxNonOwnedWindow"},
    {"wxNotifyEvent"},
    {"wxObject"},
    {"wxPanel"},
    {"wxPen"},
    {"wxPoint"},
    {"wxPointList"},
    {"wxPolygonFillMode"},
    {"wxPyBuffer"},
    {"wxRasterOperationMode"},
    {"wxRect"},
    {"wxRefCounter"},
    {"wxRegion"},
    {"wxSize"},
    {"wxSizer"},
    {"wxStatusBar"},
    {"wxString"},
    {"wxTextEntry"},
    {"wxToolBar"},
    {"wxTopLevelWindow"},
    {"wxTrackable"},
    {"wxValidator"},
    {"wxVisualAttributes"},
    {"wxWindow"},
    {"wxWindowBase"},
    {"wxWindowVariant"},
    {SIP_NULLPTR}
};


/* This defines the modules that this module needs to import. */
static sipImportedModuleDef importsTable[] = {
    {"wx._core", sipImportedTypes__adv__core, SIP_NULLPTR, SIP_NULLPTR},
    {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR}
};


/* Define the strings to be added to this module dictionary. */
static sipStringInstanceDef stringInstances[] = {
    {sipName_AnimationCtrlNameStr, wxAnimationCtrlNameStr, 'N'},
    {sipName_BannerWindowNameStr, wxBannerWindowNameStr, 'N'},
    {sipName_BitmapComboBoxNameStr, wxBitmapComboBoxNameStr, 'N'},
    {sipName_CalendarNameStr, wxCalendarNameStr, 'N'},
    {sipName_EditableListBoxNameStr, wxEditableListBoxNameStr, 'N'},
    {sipName_HyperlinkCtrlNameStr, wxHyperlinkCtrlNameStr, 'N'},
    {sipName_TimePickerCtrlNameStr, (const char *)wxTimePickerCtrlNameStr, 'W'},
    {0, 0, 0}
};


/* Define the enum members and ints to be added to this module. */
static sipIntInstanceDef intInstances[] = {
    {sipName_AC_DEFAULT_STYLE, wxAC_DEFAULT_STYLE},
    {sipName_AC_NO_AUTORESIZE, wxAC_NO_AUTORESIZE},
    {sipName_EL_ALLOW_DELETE, wxEL_ALLOW_DELETE},
    {sipName_EL_ALLOW_EDIT, wxEL_ALLOW_EDIT},
    {sipName_EL_ALLOW_NEW, wxEL_ALLOW_NEW},
    {sipName_EL_DEFAULT_STYLE, wxEL_DEFAULT_STYLE},
    {sipName_EL_NO_REORDER, wxEL_NO_REORDER},
    {sipName_HL_ALIGN_CENTRE, wxHL_ALIGN_CENTRE},
    {sipName_HL_ALIGN_LEFT, wxHL_ALIGN_LEFT},
    {sipName_HL_ALIGN_RIGHT, wxHL_ALIGN_RIGHT},
    {sipName_HL_CONTEXTMENU, wxHL_CONTEXTMENU},
    {sipName_HL_DEFAULT_STYLE, wxHL_DEFAULT_STYLE},
    {sipName_SOUND_ASYNC, wxSOUND_ASYNC},
    {sipName_SOUND_LOOP, wxSOUND_LOOP},
    {sipName_SOUND_SYNC, wxSOUND_SYNC},
    {sipName_SPLASH_CENTRE_ON_PARENT, wxSPLASH_CENTRE_ON_PARENT},
    {sipName_SPLASH_CENTRE_ON_SCREEN, wxSPLASH_CENTRE_ON_SCREEN},
    {sipName_SPLASH_NO_CENTRE, wxSPLASH_NO_CENTRE},
    {sipName_SPLASH_NO_TIMEOUT, wxSPLASH_NO_TIMEOUT},
    {sipName_SPLASH_TIMEOUT, wxSPLASH_TIMEOUT},
    {sipName_SW_3D, wxSW_3D},
    {sipName_SW_3DBORDER, wxSW_3DBORDER},
    {sipName_SW_3DSASH, wxSW_3DSASH},
    {sipName_SW_BORDER, wxSW_BORDER},
    {sipName_SW_NOBORDER, wxSW_NOBORDER},
    {sipName_USE_JOYSTICK, wxUSE_JOYSTICK},
    {sipName_WIZARD_EX_HELPBUTTON, wxWIZARD_EX_HELPBUTTON},
    {sipName_WIZARD_HALIGN_CENTRE, wxWIZARD_HALIGN_CENTRE},
    {sipName_WIZARD_HALIGN_LEFT, wxWIZARD_HALIGN_LEFT},
    {sipName_WIZARD_HALIGN_RIGHT, wxWIZARD_HALIGN_RIGHT},
    {sipName_WIZARD_TILE, wxWIZARD_TILE},
    {sipName_WIZARD_VALIGN_BOTTOM, wxWIZARD_VALIGN_BOTTOM},
    {sipName_WIZARD_VALIGN_CENTRE, wxWIZARD_VALIGN_CENTRE},
    {sipName_WIZARD_VALIGN_TOP, wxWIZARD_VALIGN_TOP},
    {sipName_wxEVT_CALCULATE_LAYOUT, wxEVT_CALCULATE_LAYOUT},
    {sipName_wxEVT_CALENDAR_DAY_CHANGED, wxEVT_CALENDAR_DAY_CHANGED},
    {sipName_wxEVT_CALENDAR_DOUBLECLICKED, wxEVT_CALENDAR_DOUBLECLICKED},
    {sipName_wxEVT_CALENDAR_MONTH_CHANGED, wxEVT_CALENDAR_MONTH_CHANGED},
    {sipName_wxEVT_CALENDAR_PAGE_CHANGED, wxEVT_CALENDAR_PAGE_CHANGED},
    {sipName_wxEVT_CALENDAR_SEL_CHANGED, wxEVT_CALENDAR_SEL_CHANGED},
    {sipName_wxEVT_CALENDAR_WEEKDAY_CLICKED, wxEVT_CALENDAR_WEEKDAY_CLICKED},
    {sipName_wxEVT_CALENDAR_WEEK_CLICKED, wxEVT_CALENDAR_WEEK_CLICKED},
    {sipName_wxEVT_CALENDAR_YEAR_CHANGED, wxEVT_CALENDAR_YEAR_CHANGED},
    {sipName_wxEVT_DATE_CHANGED, wxEVT_DATE_CHANGED},
    {sipName_wxEVT_HYPERLINK, wxEVT_HYPERLINK},
    {sipName_wxEVT_NOTIFICATION_MESSAGE_ACTION, wxEVT_NOTIFICATION_MESSAGE_ACTION},
    {sipName_wxEVT_NOTIFICATION_MESSAGE_CLICK, wxEVT_NOTIFICATION_MESSAGE_CLICK},
    {sipName_wxEVT_NOTIFICATION_MESSAGE_DISMISSED, wxEVT_NOTIFICATION_MESSAGE_DISMISSED},
    {sipName_wxEVT_QUERY_LAYOUT_INFO, wxEVT_QUERY_LAYOUT_INFO},
    {sipName_wxEVT_SASH_DRAGGED, wxEVT_SASH_DRAGGED},
    {sipName_wxEVT_TASKBAR_BALLOON_CLICK, wxEVT_TASKBAR_BALLOON_CLICK},
    {sipName_wxEVT_TASKBAR_BALLOON_TIMEOUT, wxEVT_TASKBAR_BALLOON_TIMEOUT},
    {sipName_wxEVT_TASKBAR_CLICK, wxEVT_TASKBAR_CLICK},
    {sipName_wxEVT_TASKBAR_LEFT_DCLICK, wxEVT_TASKBAR_LEFT_DCLICK},
    {sipName_wxEVT_TASKBAR_LEFT_DOWN, wxEVT_TASKBAR_LEFT_DOWN},
    {sipName_wxEVT_TASKBAR_LEFT_UP, wxEVT_TASKBAR_LEFT_UP},
    {sipName_wxEVT_TASKBAR_MOVE, wxEVT_TASKBAR_MOVE},
    {sipName_wxEVT_TASKBAR_RIGHT_DCLICK, wxEVT_TASKBAR_RIGHT_DCLICK},
    {sipName_wxEVT_TASKBAR_RIGHT_DOWN, wxEVT_TASKBAR_RIGHT_DOWN},
    {sipName_wxEVT_TASKBAR_RIGHT_UP, wxEVT_TASKBAR_RIGHT_UP},
    {sipName_wxEVT_TIME_CHANGED, wxEVT_TIME_CHANGED},
    {sipName_wxEVT_WIZARD_BEFORE_PAGE_CHANGED, wxEVT_WIZARD_BEFORE_PAGE_CHANGED},
    {sipName_wxEVT_WIZARD_CANCEL, wxEVT_WIZARD_CANCEL},
    {sipName_wxEVT_WIZARD_FINISHED, wxEVT_WIZARD_FINISHED},
    {sipName_wxEVT_WIZARD_HELP, wxEVT_WIZARD_HELP},
    {sipName_wxEVT_WIZARD_PAGE_CHANGED, wxEVT_WIZARD_PAGE_CHANGED},
    {sipName_wxEVT_WIZARD_PAGE_CHANGING, wxEVT_WIZARD_PAGE_CHANGING},
    {sipName_wxEVT_WIZARD_PAGE_SHOWN, wxEVT_WIZARD_PAGE_SHOWN},
    {sipName_TP_DEFAULT, static_cast<int>(::wxTP_DEFAULT)},
    {sipName_ODCB_DCLICK_CYCLES, static_cast<int>(::wxODCB_DCLICK_CYCLES)},
    {sipName_ODCB_STD_CONTROL_PAINT, static_cast<int>(::wxODCB_STD_CONTROL_PAINT)},
    {sipName_CAL_SUNDAY_FIRST, static_cast<int>(::wxCAL_SUNDAY_FIRST)},
    {sipName_CAL_MONDAY_FIRST, static_cast<int>(::wxCAL_MONDAY_FIRST)},
    {sipName_CAL_SHOW_HOLIDAYS, static_cast<int>(::wxCAL_SHOW_HOLIDAYS)},
    {sipName_CAL_NO_YEAR_CHANGE, static_cast<int>(::wxCAL_NO_YEAR_CHANGE)},
    {sipName_CAL_NO_MONTH_CHANGE, static_cast<int>(::wxCAL_NO_MONTH_CHANGE)},
    {sipName_CAL_SEQUENTIAL_MONTH_SELECTION, static_cast<int>(::wxCAL_SEQUENTIAL_MONTH_SELECTION)},
    {sipName_CAL_SHOW_SURROUNDING_WEEKS, static_cast<int>(::wxCAL_SHOW_SURROUNDING_WEEKS)},
    {sipName_CAL_SHOW_WEEK_NUMBERS, static_cast<int>(::wxCAL_SHOW_WEEK_NUMBERS)},
    {sipName_DP_DEFAULT, static_cast<int>(::wxDP_DEFAULT)},
    {sipName_DP_SPIN, static_cast<int>(::wxDP_SPIN)},
    {sipName_DP_DROPDOWN, static_cast<int>(::wxDP_DROPDOWN)},
    {sipName_DP_SHOWCENTURY, static_cast<int>(::wxDP_SHOWCENTURY)},
    {sipName_DP_ALLOWNONE, static_cast<int>(::wxDP_ALLOWNONE)},
    {0, 0}
};


/* This defines this module. */
sipExportedModuleDef sipModuleAPI__adv = {
    SIP_NULLPTR,
    8,
    sipNameNr_wx__adv,
    0,
    sipStrings__adv,
    importsTable,
    SIP_NULLPTR,
    57,
    sipExportedTypes__adv,
    SIP_NULLPTR,
    53,
    enummembers,
    0,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, stringInstances, intInstances, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
};


/* The SIP API and the APIs of any imported modules. */
const sipAPIDef *sipAPI__adv;


/* The Python module initialisation function. */
#if defined(SIP_STATIC_MODULE)
extern "C" PyObject *PyInit__adv()
#else
PyMODINIT_FUNC PyInit__adv()
#endif
{
    static PyMethodDef sip_methods[] = {
        {sipName_ShowTip, SIP_MLMETH_CAST(func_ShowTip), METH_VARARGS|METH_KEYWORDS, doc_ShowTip},
        {sipName_CreateFileTipProvider, SIP_MLMETH_CAST(func_CreateFileTipProvider), METH_VARARGS|METH_KEYWORDS, doc_CreateFileTipProvider},
        {sipName_GenericAboutBox, SIP_MLMETH_CAST(func_GenericAboutBox), METH_VARARGS|METH_KEYWORDS, doc_GenericAboutBox},
        {sipName_AboutBox, SIP_MLMETH_CAST(func_AboutBox), METH_VARARGS|METH_KEYWORDS, doc_AboutBox},
        {SIP_NULLPTR, SIP_NULLPTR, 0, SIP_NULLPTR}
    };

    static PyModuleDef sip_module_def = {
        PyModuleDef_HEAD_INIT,
        "wx._adv",
        SIP_NULLPTR,
        -1,
        sip_methods,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_NULLPTR
    };

    PyObject *sipModule, *sipModuleDict;
    PyObject *sip_sipmod, *sip_capiobj;

    /* Initialise the module and get it's dictionary. */
    if ((sipModule = PyModule_Create(&sip_module_def)) == SIP_NULLPTR)
        return SIP_NULLPTR;

    sipModuleDict = PyModule_GetDict(sipModule);

    /* Get the SIP module's API. */
    if ((sip_sipmod = PyImport_ImportModule("wx.siplib")) == SIP_NULLPTR)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    sip_capiobj = PyDict_GetItemString(PyModule_GetDict(sip_sipmod), "_C_API");
    Py_DECREF(sip_sipmod);

    if (sip_capiobj == SIP_NULLPTR || !PyCapsule_CheckExact(sip_capiobj))
    {
        PyErr_SetString(PyExc_AttributeError, "wx.siplib._C_API is missing or has the wrong type");
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    sipAPI__adv = reinterpret_cast<const sipAPIDef *>(PyCapsule_GetPointer(sip_capiobj, "wx.siplib._C_API"));

    if (sipAPI__adv == SIP_NULLPTR)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }
        wxPyReinitializeModules();
    /* Export the module and publish it's API. */
    if (sipExportModule(&sipModuleAPI__adv, 12, 8, 0) < 0)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }
    /* Initialise the module now all its dependencies have been set up. */
    if (sipInitModule(&sipModuleAPI__adv,sipModuleDict) < 0)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    /*
     * Define the class, mapped type and enum instances that have to be
     * added inline.
     */
    sipAddTypeInstance(sipModuleDict,sipName_NullAnimation,& ::wxNullAnimation,sipType_wxAnimation);

    return sipModule;
}
