#ifndef MYPYC_NATIVE_81d243bd2c585b0f4821_H
#define MYPYC_NATIVE_81d243bd2c585b0f4821_H
#include <Python.h>
#include <CPy.h>
#ifndef MYPYC_DECLARED_tuple_T2II
#define MYPYC_DECLARED_tuple_T2II
typedef struct tuple_T2II {
    CPyTagged f0;
    CPyTagged f1;
} tuple_T2II;
#endif

#ifndef MYPYC_DECLARED_tuple_T3CIO
#define MYPYC_DECLARED_tuple_T3CIO
typedef struct tuple_T3CIO {
    char f0;
    CPyTagged f1;
    PyObject *f2;
} tuple_T3CIO;
#endif

#ifndef MYPYC_DECLARED_tuple_T4CIOO
#define MYPYC_DECLARED_tuple_T4CIOO
typedef struct tuple_T4CIOO {
    char f0;
    CPyTagged f1;
    PyObject *f2;
    PyObject *f3;
} tuple_T4CIOO;
#endif

#ifndef MYPYC_DECLARED_tuple_T2CC
#define MYPYC_DECLARED_tuple_T2CC
typedef struct tuple_T2CC {
    char f0;
    char f1;
} tuple_T2CC;
#endif

#ifndef MYPYC_DECLARED_tuple_T2OF
#define MYPYC_DECLARED_tuple_T2OF
typedef struct tuple_T2OF {
    PyObject *f0;
    double f1;
} tuple_T2OF;
#endif

#ifndef MYPYC_DECLARED_tuple_T2OI
#define MYPYC_DECLARED_tuple_T2OI
typedef struct tuple_T2OI {
    PyObject *f0;
    CPyTagged f1;
} tuple_T2OI;
#endif

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    PyObject *_character;
    char _printable;
    char _alpha;
    char _upper;
    char _lower;
    char _space;
    char _digit;
    char _is_ascii;
    char _case_variable;
    CPyTagged _flags;
    char _accentuated;
    char _latin;
    char _is_cjk;
    char _is_arabic;
    char _is_glyph;
    char _punct;
    char _sym;
} charset_normalizer___md___CharInfoObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
} charset_normalizer___md___MessDetectorPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __punctuation_count;
    CPyTagged __symbol_count;
    CPyTagged __character_count;
    PyObject *__last_printable_char;
    char __frenzy_symbol_in_word;
} charset_normalizer___md___TooManySymbolOrPunctuationPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __character_count;
    CPyTagged __accentuated_count;
} charset_normalizer___md___TooManyAccentuatedPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __unprintable_count;
    CPyTagged __character_count;
} charset_normalizer___md___UnprintablePluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __successive_count;
    CPyTagged __character_count;
    PyObject *__last_latin_character;
    char __last_was_accentuated;
} charset_normalizer___md___SuspiciousDuplicateAccentPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __suspicious_successive_range_count;
    CPyTagged __character_count;
    PyObject *__last_printable_seen;
    PyObject *__last_printable_range;
} charset_normalizer___md___SuspiciousRangeObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __word_count;
    CPyTagged __bad_word_count;
    CPyTagged __foreign_long_count;
    char __is_current_word_bad;
    char __foreign_long_watch;
    CPyTagged __character_count;
    CPyTagged __bad_character_count;
    CPyTagged __buffer_length;
    PyObject *__buffer_last_char;
    char __buffer_last_char_accentuated;
    CPyTagged __buffer_accent_count;
    CPyTagged __buffer_glyph_count;
    CPyTagged __buffer_upper_count;
} charset_normalizer___md___SuperWeirdWordPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __character_count;
    CPyTagged __uncommon_count;
} charset_normalizer___md___CjkUncommonPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    char __buf;
    CPyTagged __character_count_since_last_sep;
    CPyTagged __successive_upper_lower_count;
    CPyTagged __successive_upper_lower_count_final;
    CPyTagged __character_count;
    PyObject *__last_alpha_seen;
    char __last_alpha_seen_upper;
    char __last_alpha_seen_lower;
    char __current_ascii_only;
} charset_normalizer___md___ArchaicUpperLowerPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    CPyTagged __character_count;
    CPyTagged __isolated_form_count;
} charset_normalizer___md___ArabicIsolatedFormPluginObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    uint32_t bitmap;
    PyObject *___mypyc_self__;
    PyObject *_characters;
    char _ignore_non_latin;
    PyObject *_languages;
    PyObject *_characters_set;
    PyObject *_character;
    char _source_have_accents;
    PyObject *_language;
    PyObject *_language_characters;
    char _target_have_accents;
    char _target_pure_latin;
    CPyTagged _character_count;
    CPyTagged _character_match_count;
    double _ratio;
} charset_normalizer___cd___alphabet_languages_envObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    vectorcallfunc vectorcall;
    PyObject *___mypyc_env__;
} charset_normalizer___cd_____mypyc_lambda__0_alphabet_languages_objObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    uint32_t bitmap;
    PyObject *___mypyc_self__;
    PyObject *_results;
    PyObject *_per_language_ratios;
    PyObject *_result;
    tuple_T2OF _sub_result;
    PyObject *_language;
    double _ratio;
    PyObject *_merge;
} charset_normalizer___cd___merge_coherence_ratios_envObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    vectorcallfunc vectorcall;
    PyObject *___mypyc_env__;
} charset_normalizer___cd_____mypyc_lambda__1_merge_coherence_ratios_objObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    uint32_t bitmap;
    PyObject *___mypyc_self__;
    PyObject *_decoded_sequence;
    double _threshold;
    PyObject *_lg_inclusion;
    uint32_t ___bitmap;
    PyObject *_results;
    char _ignore_non_latin;
    CPyTagged _sufficient_match_count;
    PyObject *_lg_inclusion_list;
    PyObject *_layer;
    PyObject *_sequence_frequencies;
    PyObject *_most_common;
    CPyTagged _character_count;
    PyObject *_c;
    CPyTagged _o;
    PyObject *_popular_character_ordered;
    PyObject *_language;
    double _ratio;
} charset_normalizer___cd___coherence_ratio_envObject;

typedef struct {
    PyObject_HEAD
    CPyVTableItem *vtable;
    vectorcallfunc vectorcall;
    PyObject *___mypyc_env__;
} charset_normalizer___cd_____mypyc_lambda__2_coherence_ratio_objObject;

#endif
