# This file was automatically generated by SWIG (http://www.swig.org).
# Version 2.0.11
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.





from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_selinux', [dirname(__file__)])
        except ImportError:
            import _selinux
            return _selinux
        if fp is not None:
            try:
                _mod = imp.load_module('_selinux', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _selinux = swig_import_helper()
    del swig_import_helper
else:
    import _selinux
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


import shutil, os, stat

DISABLED = -1
PERMISSIVE = 0
ENFORCING = 1

def restorecon(path, recursive=False):
    """ Restore SELinux context on a given path """

    try:
        mode = os.lstat(path)[stat.ST_MODE]
        status, context = matchpathcon(path, mode)
    except OSError:
        path = os.path.realpath(os.path.expanduser(path))
        mode = os.lstat(path)[stat.ST_MODE]
        status, context = matchpathcon(path, mode)

    if status == 0:
        status, oldcontext = lgetfilecon(path)
        if context != oldcontext:
            lsetfilecon(path, context)

        if recursive:
            for root, dirs, files in os.walk(path):
                for name in files + dirs:
                   restorecon(os.path.join(root, name))

def chcon(path, context, recursive=False):
    """ Set the SELinux context on a given path """
    lsetfilecon(path, context)
    if recursive:
        for root, dirs, files in os.walk(path):
            for name in files + dirs:
               lsetfilecon(os.path.join(root,name), context)

def copytree(src, dest):
    """ An SELinux-friendly shutil.copytree method """
    shutil.copytree(src, dest)
    restorecon(dest, recursive=True)

def install(src, dest):
    """ An SELinux-friendly shutil.move method """
    shutil.move(src, dest)
    restorecon(dest, recursive=True)

class security_id(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, security_id, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, security_id, name)
    __repr__ = _swig_repr
    __swig_setmethods__["ctx"] = _selinux.security_id_ctx_set
    __swig_getmethods__["ctx"] = _selinux.security_id_ctx_get
    if _newclass:ctx = _swig_property(_selinux.security_id_ctx_get, _selinux.security_id_ctx_set)
    __swig_setmethods__["refcnt"] = _selinux.security_id_refcnt_set
    __swig_getmethods__["refcnt"] = _selinux.security_id_refcnt_get
    if _newclass:refcnt = _swig_property(_selinux.security_id_refcnt_get, _selinux.security_id_refcnt_set)
    def __init__(self): 
        this = _selinux.new_security_id()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_security_id
    __del__ = lambda self : None;
security_id_swigregister = _selinux.security_id_swigregister
security_id_swigregister(security_id)


def avc_sid_to_context(*args):
  return _selinux.avc_sid_to_context(*args)
avc_sid_to_context = _selinux.avc_sid_to_context

def avc_sid_to_context_raw(*args):
  return _selinux.avc_sid_to_context_raw(*args)
avc_sid_to_context_raw = _selinux.avc_sid_to_context_raw

def avc_context_to_sid(*args):
  return _selinux.avc_context_to_sid(*args)
avc_context_to_sid = _selinux.avc_context_to_sid

def avc_context_to_sid_raw(*args):
  return _selinux.avc_context_to_sid_raw(*args)
avc_context_to_sid_raw = _selinux.avc_context_to_sid_raw

def sidget(*args):
  return _selinux.sidget(*args)
sidget = _selinux.sidget

def sidput(*args):
  return _selinux.sidput(*args)
sidput = _selinux.sidput

def avc_get_initial_sid(*args):
  return _selinux.avc_get_initial_sid(*args)
avc_get_initial_sid = _selinux.avc_get_initial_sid
class avc_entry_ref(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avc_entry_ref, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avc_entry_ref, name)
    __repr__ = _swig_repr
    __swig_setmethods__["ae"] = _selinux.avc_entry_ref_ae_set
    __swig_getmethods__["ae"] = _selinux.avc_entry_ref_ae_get
    if _newclass:ae = _swig_property(_selinux.avc_entry_ref_ae_get, _selinux.avc_entry_ref_ae_set)
    def __init__(self): 
        this = _selinux.new_avc_entry_ref()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_avc_entry_ref
    __del__ = lambda self : None;
avc_entry_ref_swigregister = _selinux.avc_entry_ref_swigregister
avc_entry_ref_swigregister(avc_entry_ref)

class avc_memory_callback(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avc_memory_callback, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avc_memory_callback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["func_malloc"] = _selinux.avc_memory_callback_func_malloc_set
    __swig_getmethods__["func_malloc"] = _selinux.avc_memory_callback_func_malloc_get
    if _newclass:func_malloc = _swig_property(_selinux.avc_memory_callback_func_malloc_get, _selinux.avc_memory_callback_func_malloc_set)
    __swig_setmethods__["func_free"] = _selinux.avc_memory_callback_func_free_set
    __swig_getmethods__["func_free"] = _selinux.avc_memory_callback_func_free_get
    if _newclass:func_free = _swig_property(_selinux.avc_memory_callback_func_free_get, _selinux.avc_memory_callback_func_free_set)
    def __init__(self): 
        this = _selinux.new_avc_memory_callback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_avc_memory_callback
    __del__ = lambda self : None;
avc_memory_callback_swigregister = _selinux.avc_memory_callback_swigregister
avc_memory_callback_swigregister(avc_memory_callback)

class avc_log_callback(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avc_log_callback, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avc_log_callback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["func_log"] = _selinux.avc_log_callback_func_log_set
    __swig_getmethods__["func_log"] = _selinux.avc_log_callback_func_log_get
    if _newclass:func_log = _swig_property(_selinux.avc_log_callback_func_log_get, _selinux.avc_log_callback_func_log_set)
    __swig_setmethods__["func_audit"] = _selinux.avc_log_callback_func_audit_set
    __swig_getmethods__["func_audit"] = _selinux.avc_log_callback_func_audit_get
    if _newclass:func_audit = _swig_property(_selinux.avc_log_callback_func_audit_get, _selinux.avc_log_callback_func_audit_set)
    def __init__(self): 
        this = _selinux.new_avc_log_callback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_avc_log_callback
    __del__ = lambda self : None;
avc_log_callback_swigregister = _selinux.avc_log_callback_swigregister
avc_log_callback_swigregister(avc_log_callback)

class avc_thread_callback(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avc_thread_callback, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avc_thread_callback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["func_create_thread"] = _selinux.avc_thread_callback_func_create_thread_set
    __swig_getmethods__["func_create_thread"] = _selinux.avc_thread_callback_func_create_thread_get
    if _newclass:func_create_thread = _swig_property(_selinux.avc_thread_callback_func_create_thread_get, _selinux.avc_thread_callback_func_create_thread_set)
    __swig_setmethods__["func_stop_thread"] = _selinux.avc_thread_callback_func_stop_thread_set
    __swig_getmethods__["func_stop_thread"] = _selinux.avc_thread_callback_func_stop_thread_get
    if _newclass:func_stop_thread = _swig_property(_selinux.avc_thread_callback_func_stop_thread_get, _selinux.avc_thread_callback_func_stop_thread_set)
    def __init__(self): 
        this = _selinux.new_avc_thread_callback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_avc_thread_callback
    __del__ = lambda self : None;
avc_thread_callback_swigregister = _selinux.avc_thread_callback_swigregister
avc_thread_callback_swigregister(avc_thread_callback)

class avc_lock_callback(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avc_lock_callback, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avc_lock_callback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["func_alloc_lock"] = _selinux.avc_lock_callback_func_alloc_lock_set
    __swig_getmethods__["func_alloc_lock"] = _selinux.avc_lock_callback_func_alloc_lock_get
    if _newclass:func_alloc_lock = _swig_property(_selinux.avc_lock_callback_func_alloc_lock_get, _selinux.avc_lock_callback_func_alloc_lock_set)
    __swig_setmethods__["func_get_lock"] = _selinux.avc_lock_callback_func_get_lock_set
    __swig_getmethods__["func_get_lock"] = _selinux.avc_lock_callback_func_get_lock_get
    if _newclass:func_get_lock = _swig_property(_selinux.avc_lock_callback_func_get_lock_get, _selinux.avc_lock_callback_func_get_lock_set)
    __swig_setmethods__["func_release_lock"] = _selinux.avc_lock_callback_func_release_lock_set
    __swig_getmethods__["func_release_lock"] = _selinux.avc_lock_callback_func_release_lock_get
    if _newclass:func_release_lock = _swig_property(_selinux.avc_lock_callback_func_release_lock_get, _selinux.avc_lock_callback_func_release_lock_set)
    __swig_setmethods__["func_free_lock"] = _selinux.avc_lock_callback_func_free_lock_set
    __swig_getmethods__["func_free_lock"] = _selinux.avc_lock_callback_func_free_lock_get
    if _newclass:func_free_lock = _swig_property(_selinux.avc_lock_callback_func_free_lock_get, _selinux.avc_lock_callback_func_free_lock_set)
    def __init__(self): 
        this = _selinux.new_avc_lock_callback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_avc_lock_callback
    __del__ = lambda self : None;
avc_lock_callback_swigregister = _selinux.avc_lock_callback_swigregister
avc_lock_callback_swigregister(avc_lock_callback)

AVC_OPT_UNUSED = _selinux.AVC_OPT_UNUSED
AVC_OPT_SETENFORCE = _selinux.AVC_OPT_SETENFORCE

def avc_init(*args):
  return _selinux.avc_init(*args)
avc_init = _selinux.avc_init

def avc_open(*args):
  return _selinux.avc_open(*args)
avc_open = _selinux.avc_open

def avc_cleanup():
  return _selinux.avc_cleanup()
avc_cleanup = _selinux.avc_cleanup

def avc_reset():
  return _selinux.avc_reset()
avc_reset = _selinux.avc_reset

def avc_destroy():
  return _selinux.avc_destroy()
avc_destroy = _selinux.avc_destroy

def avc_has_perm_noaudit(*args):
  return _selinux.avc_has_perm_noaudit(*args)
avc_has_perm_noaudit = _selinux.avc_has_perm_noaudit

def avc_has_perm(*args):
  return _selinux.avc_has_perm(*args)
avc_has_perm = _selinux.avc_has_perm

def avc_audit(*args):
  return _selinux.avc_audit(*args)
avc_audit = _selinux.avc_audit

def avc_compute_create(*args):
  return _selinux.avc_compute_create(*args)
avc_compute_create = _selinux.avc_compute_create

def avc_compute_member(*args):
  return _selinux.avc_compute_member(*args)
avc_compute_member = _selinux.avc_compute_member
AVC_CALLBACK_GRANT = _selinux.AVC_CALLBACK_GRANT
AVC_CALLBACK_TRY_REVOKE = _selinux.AVC_CALLBACK_TRY_REVOKE
AVC_CALLBACK_REVOKE = _selinux.AVC_CALLBACK_REVOKE
AVC_CALLBACK_RESET = _selinux.AVC_CALLBACK_RESET
AVC_CALLBACK_AUDITALLOW_ENABLE = _selinux.AVC_CALLBACK_AUDITALLOW_ENABLE
AVC_CALLBACK_AUDITALLOW_DISABLE = _selinux.AVC_CALLBACK_AUDITALLOW_DISABLE
AVC_CALLBACK_AUDITDENY_ENABLE = _selinux.AVC_CALLBACK_AUDITDENY_ENABLE
AVC_CALLBACK_AUDITDENY_DISABLE = _selinux.AVC_CALLBACK_AUDITDENY_DISABLE
AVC_CACHE_STATS = _selinux.AVC_CACHE_STATS
class avc_cache_stats(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avc_cache_stats, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avc_cache_stats, name)
    __repr__ = _swig_repr
    __swig_setmethods__["entry_lookups"] = _selinux.avc_cache_stats_entry_lookups_set
    __swig_getmethods__["entry_lookups"] = _selinux.avc_cache_stats_entry_lookups_get
    if _newclass:entry_lookups = _swig_property(_selinux.avc_cache_stats_entry_lookups_get, _selinux.avc_cache_stats_entry_lookups_set)
    __swig_setmethods__["entry_hits"] = _selinux.avc_cache_stats_entry_hits_set
    __swig_getmethods__["entry_hits"] = _selinux.avc_cache_stats_entry_hits_get
    if _newclass:entry_hits = _swig_property(_selinux.avc_cache_stats_entry_hits_get, _selinux.avc_cache_stats_entry_hits_set)
    __swig_setmethods__["entry_misses"] = _selinux.avc_cache_stats_entry_misses_set
    __swig_getmethods__["entry_misses"] = _selinux.avc_cache_stats_entry_misses_get
    if _newclass:entry_misses = _swig_property(_selinux.avc_cache_stats_entry_misses_get, _selinux.avc_cache_stats_entry_misses_set)
    __swig_setmethods__["entry_discards"] = _selinux.avc_cache_stats_entry_discards_set
    __swig_getmethods__["entry_discards"] = _selinux.avc_cache_stats_entry_discards_get
    if _newclass:entry_discards = _swig_property(_selinux.avc_cache_stats_entry_discards_get, _selinux.avc_cache_stats_entry_discards_set)
    __swig_setmethods__["cav_lookups"] = _selinux.avc_cache_stats_cav_lookups_set
    __swig_getmethods__["cav_lookups"] = _selinux.avc_cache_stats_cav_lookups_get
    if _newclass:cav_lookups = _swig_property(_selinux.avc_cache_stats_cav_lookups_get, _selinux.avc_cache_stats_cav_lookups_set)
    __swig_setmethods__["cav_hits"] = _selinux.avc_cache_stats_cav_hits_set
    __swig_getmethods__["cav_hits"] = _selinux.avc_cache_stats_cav_hits_get
    if _newclass:cav_hits = _swig_property(_selinux.avc_cache_stats_cav_hits_get, _selinux.avc_cache_stats_cav_hits_set)
    __swig_setmethods__["cav_probes"] = _selinux.avc_cache_stats_cav_probes_set
    __swig_getmethods__["cav_probes"] = _selinux.avc_cache_stats_cav_probes_get
    if _newclass:cav_probes = _swig_property(_selinux.avc_cache_stats_cav_probes_get, _selinux.avc_cache_stats_cav_probes_set)
    __swig_setmethods__["cav_misses"] = _selinux.avc_cache_stats_cav_misses_set
    __swig_getmethods__["cav_misses"] = _selinux.avc_cache_stats_cav_misses_get
    if _newclass:cav_misses = _swig_property(_selinux.avc_cache_stats_cav_misses_get, _selinux.avc_cache_stats_cav_misses_set)
    def __init__(self): 
        this = _selinux.new_avc_cache_stats()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_avc_cache_stats
    __del__ = lambda self : None;
avc_cache_stats_swigregister = _selinux.avc_cache_stats_swigregister
avc_cache_stats_swigregister(avc_cache_stats)


def avc_av_stats():
  return _selinux.avc_av_stats()
avc_av_stats = _selinux.avc_av_stats

def avc_sid_stats():
  return _selinux.avc_sid_stats()
avc_sid_stats = _selinux.avc_sid_stats

def avc_netlink_open(*args):
  return _selinux.avc_netlink_open(*args)
avc_netlink_open = _selinux.avc_netlink_open

def avc_netlink_loop():
  return _selinux.avc_netlink_loop()
avc_netlink_loop = _selinux.avc_netlink_loop

def avc_netlink_close():
  return _selinux.avc_netlink_close()
avc_netlink_close = _selinux.avc_netlink_close

def selinux_status_open(*args):
  return _selinux.selinux_status_open(*args)
selinux_status_open = _selinux.selinux_status_open

def selinux_status_close():
  return _selinux.selinux_status_close()
selinux_status_close = _selinux.selinux_status_close

def selinux_status_updated():
  return _selinux.selinux_status_updated()
selinux_status_updated = _selinux.selinux_status_updated

def selinux_status_getenforce():
  return _selinux.selinux_status_getenforce()
selinux_status_getenforce = _selinux.selinux_status_getenforce

def selinux_status_policyload():
  return _selinux.selinux_status_policyload()
selinux_status_policyload = _selinux.selinux_status_policyload

def selinux_status_deny_unknown():
  return _selinux.selinux_status_deny_unknown()
selinux_status_deny_unknown = _selinux.selinux_status_deny_unknown
COMMON_FILE__IOCTL = _selinux.COMMON_FILE__IOCTL
COMMON_FILE__READ = _selinux.COMMON_FILE__READ
COMMON_FILE__WRITE = _selinux.COMMON_FILE__WRITE
COMMON_FILE__CREATE = _selinux.COMMON_FILE__CREATE
COMMON_FILE__GETATTR = _selinux.COMMON_FILE__GETATTR
COMMON_FILE__SETATTR = _selinux.COMMON_FILE__SETATTR
COMMON_FILE__LOCK = _selinux.COMMON_FILE__LOCK
COMMON_FILE__RELABELFROM = _selinux.COMMON_FILE__RELABELFROM
COMMON_FILE__RELABELTO = _selinux.COMMON_FILE__RELABELTO
COMMON_FILE__APPEND = _selinux.COMMON_FILE__APPEND
COMMON_FILE__UNLINK = _selinux.COMMON_FILE__UNLINK
COMMON_FILE__LINK = _selinux.COMMON_FILE__LINK
COMMON_FILE__RENAME = _selinux.COMMON_FILE__RENAME
COMMON_FILE__EXECUTE = _selinux.COMMON_FILE__EXECUTE
COMMON_FILE__SWAPON = _selinux.COMMON_FILE__SWAPON
COMMON_FILE__QUOTAON = _selinux.COMMON_FILE__QUOTAON
COMMON_FILE__MOUNTON = _selinux.COMMON_FILE__MOUNTON
COMMON_SOCKET__IOCTL = _selinux.COMMON_SOCKET__IOCTL
COMMON_SOCKET__READ = _selinux.COMMON_SOCKET__READ
COMMON_SOCKET__WRITE = _selinux.COMMON_SOCKET__WRITE
COMMON_SOCKET__CREATE = _selinux.COMMON_SOCKET__CREATE
COMMON_SOCKET__GETATTR = _selinux.COMMON_SOCKET__GETATTR
COMMON_SOCKET__SETATTR = _selinux.COMMON_SOCKET__SETATTR
COMMON_SOCKET__LOCK = _selinux.COMMON_SOCKET__LOCK
COMMON_SOCKET__RELABELFROM = _selinux.COMMON_SOCKET__RELABELFROM
COMMON_SOCKET__RELABELTO = _selinux.COMMON_SOCKET__RELABELTO
COMMON_SOCKET__APPEND = _selinux.COMMON_SOCKET__APPEND
COMMON_SOCKET__BIND = _selinux.COMMON_SOCKET__BIND
COMMON_SOCKET__CONNECT = _selinux.COMMON_SOCKET__CONNECT
COMMON_SOCKET__LISTEN = _selinux.COMMON_SOCKET__LISTEN
COMMON_SOCKET__ACCEPT = _selinux.COMMON_SOCKET__ACCEPT
COMMON_SOCKET__GETOPT = _selinux.COMMON_SOCKET__GETOPT
COMMON_SOCKET__SETOPT = _selinux.COMMON_SOCKET__SETOPT
COMMON_SOCKET__SHUTDOWN = _selinux.COMMON_SOCKET__SHUTDOWN
COMMON_SOCKET__RECVFROM = _selinux.COMMON_SOCKET__RECVFROM
COMMON_SOCKET__SENDTO = _selinux.COMMON_SOCKET__SENDTO
COMMON_SOCKET__RECV_MSG = _selinux.COMMON_SOCKET__RECV_MSG
COMMON_SOCKET__SEND_MSG = _selinux.COMMON_SOCKET__SEND_MSG
COMMON_SOCKET__NAME_BIND = _selinux.COMMON_SOCKET__NAME_BIND
COMMON_IPC__CREATE = _selinux.COMMON_IPC__CREATE
COMMON_IPC__DESTROY = _selinux.COMMON_IPC__DESTROY
COMMON_IPC__GETATTR = _selinux.COMMON_IPC__GETATTR
COMMON_IPC__SETATTR = _selinux.COMMON_IPC__SETATTR
COMMON_IPC__READ = _selinux.COMMON_IPC__READ
COMMON_IPC__WRITE = _selinux.COMMON_IPC__WRITE
COMMON_IPC__ASSOCIATE = _selinux.COMMON_IPC__ASSOCIATE
COMMON_IPC__UNIX_READ = _selinux.COMMON_IPC__UNIX_READ
COMMON_IPC__UNIX_WRITE = _selinux.COMMON_IPC__UNIX_WRITE
COMMON_DATABASE__CREATE = _selinux.COMMON_DATABASE__CREATE
COMMON_DATABASE__DROP = _selinux.COMMON_DATABASE__DROP
COMMON_DATABASE__GETATTR = _selinux.COMMON_DATABASE__GETATTR
COMMON_DATABASE__SETATTR = _selinux.COMMON_DATABASE__SETATTR
COMMON_DATABASE__RELABELFROM = _selinux.COMMON_DATABASE__RELABELFROM
COMMON_DATABASE__RELABELTO = _selinux.COMMON_DATABASE__RELABELTO
FILESYSTEM__MOUNT = _selinux.FILESYSTEM__MOUNT
FILESYSTEM__REMOUNT = _selinux.FILESYSTEM__REMOUNT
FILESYSTEM__UNMOUNT = _selinux.FILESYSTEM__UNMOUNT
FILESYSTEM__GETATTR = _selinux.FILESYSTEM__GETATTR
FILESYSTEM__RELABELFROM = _selinux.FILESYSTEM__RELABELFROM
FILESYSTEM__RELABELTO = _selinux.FILESYSTEM__RELABELTO
FILESYSTEM__TRANSITION = _selinux.FILESYSTEM__TRANSITION
FILESYSTEM__ASSOCIATE = _selinux.FILESYSTEM__ASSOCIATE
FILESYSTEM__QUOTAMOD = _selinux.FILESYSTEM__QUOTAMOD
FILESYSTEM__QUOTAGET = _selinux.FILESYSTEM__QUOTAGET
DIR__IOCTL = _selinux.DIR__IOCTL
DIR__READ = _selinux.DIR__READ
DIR__WRITE = _selinux.DIR__WRITE
DIR__CREATE = _selinux.DIR__CREATE
DIR__GETATTR = _selinux.DIR__GETATTR
DIR__SETATTR = _selinux.DIR__SETATTR
DIR__LOCK = _selinux.DIR__LOCK
DIR__RELABELFROM = _selinux.DIR__RELABELFROM
DIR__RELABELTO = _selinux.DIR__RELABELTO
DIR__APPEND = _selinux.DIR__APPEND
DIR__UNLINK = _selinux.DIR__UNLINK
DIR__LINK = _selinux.DIR__LINK
DIR__RENAME = _selinux.DIR__RENAME
DIR__EXECUTE = _selinux.DIR__EXECUTE
DIR__SWAPON = _selinux.DIR__SWAPON
DIR__QUOTAON = _selinux.DIR__QUOTAON
DIR__MOUNTON = _selinux.DIR__MOUNTON
DIR__ADD_NAME = _selinux.DIR__ADD_NAME
DIR__REMOVE_NAME = _selinux.DIR__REMOVE_NAME
DIR__REPARENT = _selinux.DIR__REPARENT
DIR__SEARCH = _selinux.DIR__SEARCH
DIR__RMDIR = _selinux.DIR__RMDIR
DIR__OPEN = _selinux.DIR__OPEN
FILE__IOCTL = _selinux.FILE__IOCTL
FILE__READ = _selinux.FILE__READ
FILE__WRITE = _selinux.FILE__WRITE
FILE__CREATE = _selinux.FILE__CREATE
FILE__GETATTR = _selinux.FILE__GETATTR
FILE__SETATTR = _selinux.FILE__SETATTR
FILE__LOCK = _selinux.FILE__LOCK
FILE__RELABELFROM = _selinux.FILE__RELABELFROM
FILE__RELABELTO = _selinux.FILE__RELABELTO
FILE__APPEND = _selinux.FILE__APPEND
FILE__UNLINK = _selinux.FILE__UNLINK
FILE__LINK = _selinux.FILE__LINK
FILE__RENAME = _selinux.FILE__RENAME
FILE__EXECUTE = _selinux.FILE__EXECUTE
FILE__SWAPON = _selinux.FILE__SWAPON
FILE__QUOTAON = _selinux.FILE__QUOTAON
FILE__MOUNTON = _selinux.FILE__MOUNTON
FILE__EXECUTE_NO_TRANS = _selinux.FILE__EXECUTE_NO_TRANS
FILE__ENTRYPOINT = _selinux.FILE__ENTRYPOINT
FILE__EXECMOD = _selinux.FILE__EXECMOD
FILE__OPEN = _selinux.FILE__OPEN
LNK_FILE__IOCTL = _selinux.LNK_FILE__IOCTL
LNK_FILE__READ = _selinux.LNK_FILE__READ
LNK_FILE__WRITE = _selinux.LNK_FILE__WRITE
LNK_FILE__CREATE = _selinux.LNK_FILE__CREATE
LNK_FILE__GETATTR = _selinux.LNK_FILE__GETATTR
LNK_FILE__SETATTR = _selinux.LNK_FILE__SETATTR
LNK_FILE__LOCK = _selinux.LNK_FILE__LOCK
LNK_FILE__RELABELFROM = _selinux.LNK_FILE__RELABELFROM
LNK_FILE__RELABELTO = _selinux.LNK_FILE__RELABELTO
LNK_FILE__APPEND = _selinux.LNK_FILE__APPEND
LNK_FILE__UNLINK = _selinux.LNK_FILE__UNLINK
LNK_FILE__LINK = _selinux.LNK_FILE__LINK
LNK_FILE__RENAME = _selinux.LNK_FILE__RENAME
LNK_FILE__EXECUTE = _selinux.LNK_FILE__EXECUTE
LNK_FILE__SWAPON = _selinux.LNK_FILE__SWAPON
LNK_FILE__QUOTAON = _selinux.LNK_FILE__QUOTAON
LNK_FILE__MOUNTON = _selinux.LNK_FILE__MOUNTON
CHR_FILE__IOCTL = _selinux.CHR_FILE__IOCTL
CHR_FILE__READ = _selinux.CHR_FILE__READ
CHR_FILE__WRITE = _selinux.CHR_FILE__WRITE
CHR_FILE__CREATE = _selinux.CHR_FILE__CREATE
CHR_FILE__GETATTR = _selinux.CHR_FILE__GETATTR
CHR_FILE__SETATTR = _selinux.CHR_FILE__SETATTR
CHR_FILE__LOCK = _selinux.CHR_FILE__LOCK
CHR_FILE__RELABELFROM = _selinux.CHR_FILE__RELABELFROM
CHR_FILE__RELABELTO = _selinux.CHR_FILE__RELABELTO
CHR_FILE__APPEND = _selinux.CHR_FILE__APPEND
CHR_FILE__UNLINK = _selinux.CHR_FILE__UNLINK
CHR_FILE__LINK = _selinux.CHR_FILE__LINK
CHR_FILE__RENAME = _selinux.CHR_FILE__RENAME
CHR_FILE__EXECUTE = _selinux.CHR_FILE__EXECUTE
CHR_FILE__SWAPON = _selinux.CHR_FILE__SWAPON
CHR_FILE__QUOTAON = _selinux.CHR_FILE__QUOTAON
CHR_FILE__MOUNTON = _selinux.CHR_FILE__MOUNTON
CHR_FILE__EXECUTE_NO_TRANS = _selinux.CHR_FILE__EXECUTE_NO_TRANS
CHR_FILE__ENTRYPOINT = _selinux.CHR_FILE__ENTRYPOINT
CHR_FILE__EXECMOD = _selinux.CHR_FILE__EXECMOD
CHR_FILE__OPEN = _selinux.CHR_FILE__OPEN
BLK_FILE__IOCTL = _selinux.BLK_FILE__IOCTL
BLK_FILE__READ = _selinux.BLK_FILE__READ
BLK_FILE__WRITE = _selinux.BLK_FILE__WRITE
BLK_FILE__CREATE = _selinux.BLK_FILE__CREATE
BLK_FILE__GETATTR = _selinux.BLK_FILE__GETATTR
BLK_FILE__SETATTR = _selinux.BLK_FILE__SETATTR
BLK_FILE__LOCK = _selinux.BLK_FILE__LOCK
BLK_FILE__RELABELFROM = _selinux.BLK_FILE__RELABELFROM
BLK_FILE__RELABELTO = _selinux.BLK_FILE__RELABELTO
BLK_FILE__APPEND = _selinux.BLK_FILE__APPEND
BLK_FILE__UNLINK = _selinux.BLK_FILE__UNLINK
BLK_FILE__LINK = _selinux.BLK_FILE__LINK
BLK_FILE__RENAME = _selinux.BLK_FILE__RENAME
BLK_FILE__EXECUTE = _selinux.BLK_FILE__EXECUTE
BLK_FILE__SWAPON = _selinux.BLK_FILE__SWAPON
BLK_FILE__QUOTAON = _selinux.BLK_FILE__QUOTAON
BLK_FILE__MOUNTON = _selinux.BLK_FILE__MOUNTON
BLK_FILE__OPEN = _selinux.BLK_FILE__OPEN
SOCK_FILE__IOCTL = _selinux.SOCK_FILE__IOCTL
SOCK_FILE__READ = _selinux.SOCK_FILE__READ
SOCK_FILE__WRITE = _selinux.SOCK_FILE__WRITE
SOCK_FILE__CREATE = _selinux.SOCK_FILE__CREATE
SOCK_FILE__GETATTR = _selinux.SOCK_FILE__GETATTR
SOCK_FILE__SETATTR = _selinux.SOCK_FILE__SETATTR
SOCK_FILE__LOCK = _selinux.SOCK_FILE__LOCK
SOCK_FILE__RELABELFROM = _selinux.SOCK_FILE__RELABELFROM
SOCK_FILE__RELABELTO = _selinux.SOCK_FILE__RELABELTO
SOCK_FILE__APPEND = _selinux.SOCK_FILE__APPEND
SOCK_FILE__UNLINK = _selinux.SOCK_FILE__UNLINK
SOCK_FILE__LINK = _selinux.SOCK_FILE__LINK
SOCK_FILE__RENAME = _selinux.SOCK_FILE__RENAME
SOCK_FILE__EXECUTE = _selinux.SOCK_FILE__EXECUTE
SOCK_FILE__SWAPON = _selinux.SOCK_FILE__SWAPON
SOCK_FILE__QUOTAON = _selinux.SOCK_FILE__QUOTAON
SOCK_FILE__MOUNTON = _selinux.SOCK_FILE__MOUNTON
FIFO_FILE__IOCTL = _selinux.FIFO_FILE__IOCTL
FIFO_FILE__READ = _selinux.FIFO_FILE__READ
FIFO_FILE__WRITE = _selinux.FIFO_FILE__WRITE
FIFO_FILE__CREATE = _selinux.FIFO_FILE__CREATE
FIFO_FILE__GETATTR = _selinux.FIFO_FILE__GETATTR
FIFO_FILE__SETATTR = _selinux.FIFO_FILE__SETATTR
FIFO_FILE__LOCK = _selinux.FIFO_FILE__LOCK
FIFO_FILE__RELABELFROM = _selinux.FIFO_FILE__RELABELFROM
FIFO_FILE__RELABELTO = _selinux.FIFO_FILE__RELABELTO
FIFO_FILE__APPEND = _selinux.FIFO_FILE__APPEND
FIFO_FILE__UNLINK = _selinux.FIFO_FILE__UNLINK
FIFO_FILE__LINK = _selinux.FIFO_FILE__LINK
FIFO_FILE__RENAME = _selinux.FIFO_FILE__RENAME
FIFO_FILE__EXECUTE = _selinux.FIFO_FILE__EXECUTE
FIFO_FILE__SWAPON = _selinux.FIFO_FILE__SWAPON
FIFO_FILE__QUOTAON = _selinux.FIFO_FILE__QUOTAON
FIFO_FILE__MOUNTON = _selinux.FIFO_FILE__MOUNTON
FIFO_FILE__OPEN = _selinux.FIFO_FILE__OPEN
FD__USE = _selinux.FD__USE
SOCKET__IOCTL = _selinux.SOCKET__IOCTL
SOCKET__READ = _selinux.SOCKET__READ
SOCKET__WRITE = _selinux.SOCKET__WRITE
SOCKET__CREATE = _selinux.SOCKET__CREATE
SOCKET__GETATTR = _selinux.SOCKET__GETATTR
SOCKET__SETATTR = _selinux.SOCKET__SETATTR
SOCKET__LOCK = _selinux.SOCKET__LOCK
SOCKET__RELABELFROM = _selinux.SOCKET__RELABELFROM
SOCKET__RELABELTO = _selinux.SOCKET__RELABELTO
SOCKET__APPEND = _selinux.SOCKET__APPEND
SOCKET__BIND = _selinux.SOCKET__BIND
SOCKET__CONNECT = _selinux.SOCKET__CONNECT
SOCKET__LISTEN = _selinux.SOCKET__LISTEN
SOCKET__ACCEPT = _selinux.SOCKET__ACCEPT
SOCKET__GETOPT = _selinux.SOCKET__GETOPT
SOCKET__SETOPT = _selinux.SOCKET__SETOPT
SOCKET__SHUTDOWN = _selinux.SOCKET__SHUTDOWN
SOCKET__RECVFROM = _selinux.SOCKET__RECVFROM
SOCKET__SENDTO = _selinux.SOCKET__SENDTO
SOCKET__RECV_MSG = _selinux.SOCKET__RECV_MSG
SOCKET__SEND_MSG = _selinux.SOCKET__SEND_MSG
SOCKET__NAME_BIND = _selinux.SOCKET__NAME_BIND
TCP_SOCKET__IOCTL = _selinux.TCP_SOCKET__IOCTL
TCP_SOCKET__READ = _selinux.TCP_SOCKET__READ
TCP_SOCKET__WRITE = _selinux.TCP_SOCKET__WRITE
TCP_SOCKET__CREATE = _selinux.TCP_SOCKET__CREATE
TCP_SOCKET__GETATTR = _selinux.TCP_SOCKET__GETATTR
TCP_SOCKET__SETATTR = _selinux.TCP_SOCKET__SETATTR
TCP_SOCKET__LOCK = _selinux.TCP_SOCKET__LOCK
TCP_SOCKET__RELABELFROM = _selinux.TCP_SOCKET__RELABELFROM
TCP_SOCKET__RELABELTO = _selinux.TCP_SOCKET__RELABELTO
TCP_SOCKET__APPEND = _selinux.TCP_SOCKET__APPEND
TCP_SOCKET__BIND = _selinux.TCP_SOCKET__BIND
TCP_SOCKET__CONNECT = _selinux.TCP_SOCKET__CONNECT
TCP_SOCKET__LISTEN = _selinux.TCP_SOCKET__LISTEN
TCP_SOCKET__ACCEPT = _selinux.TCP_SOCKET__ACCEPT
TCP_SOCKET__GETOPT = _selinux.TCP_SOCKET__GETOPT
TCP_SOCKET__SETOPT = _selinux.TCP_SOCKET__SETOPT
TCP_SOCKET__SHUTDOWN = _selinux.TCP_SOCKET__SHUTDOWN
TCP_SOCKET__RECVFROM = _selinux.TCP_SOCKET__RECVFROM
TCP_SOCKET__SENDTO = _selinux.TCP_SOCKET__SENDTO
TCP_SOCKET__RECV_MSG = _selinux.TCP_SOCKET__RECV_MSG
TCP_SOCKET__SEND_MSG = _selinux.TCP_SOCKET__SEND_MSG
TCP_SOCKET__NAME_BIND = _selinux.TCP_SOCKET__NAME_BIND
TCP_SOCKET__CONNECTTO = _selinux.TCP_SOCKET__CONNECTTO
TCP_SOCKET__NEWCONN = _selinux.TCP_SOCKET__NEWCONN
TCP_SOCKET__ACCEPTFROM = _selinux.TCP_SOCKET__ACCEPTFROM
TCP_SOCKET__NODE_BIND = _selinux.TCP_SOCKET__NODE_BIND
TCP_SOCKET__NAME_CONNECT = _selinux.TCP_SOCKET__NAME_CONNECT
UDP_SOCKET__IOCTL = _selinux.UDP_SOCKET__IOCTL
UDP_SOCKET__READ = _selinux.UDP_SOCKET__READ
UDP_SOCKET__WRITE = _selinux.UDP_SOCKET__WRITE
UDP_SOCKET__CREATE = _selinux.UDP_SOCKET__CREATE
UDP_SOCKET__GETATTR = _selinux.UDP_SOCKET__GETATTR
UDP_SOCKET__SETATTR = _selinux.UDP_SOCKET__SETATTR
UDP_SOCKET__LOCK = _selinux.UDP_SOCKET__LOCK
UDP_SOCKET__RELABELFROM = _selinux.UDP_SOCKET__RELABELFROM
UDP_SOCKET__RELABELTO = _selinux.UDP_SOCKET__RELABELTO
UDP_SOCKET__APPEND = _selinux.UDP_SOCKET__APPEND
UDP_SOCKET__BIND = _selinux.UDP_SOCKET__BIND
UDP_SOCKET__CONNECT = _selinux.UDP_SOCKET__CONNECT
UDP_SOCKET__LISTEN = _selinux.UDP_SOCKET__LISTEN
UDP_SOCKET__ACCEPT = _selinux.UDP_SOCKET__ACCEPT
UDP_SOCKET__GETOPT = _selinux.UDP_SOCKET__GETOPT
UDP_SOCKET__SETOPT = _selinux.UDP_SOCKET__SETOPT
UDP_SOCKET__SHUTDOWN = _selinux.UDP_SOCKET__SHUTDOWN
UDP_SOCKET__RECVFROM = _selinux.UDP_SOCKET__RECVFROM
UDP_SOCKET__SENDTO = _selinux.UDP_SOCKET__SENDTO
UDP_SOCKET__RECV_MSG = _selinux.UDP_SOCKET__RECV_MSG
UDP_SOCKET__SEND_MSG = _selinux.UDP_SOCKET__SEND_MSG
UDP_SOCKET__NAME_BIND = _selinux.UDP_SOCKET__NAME_BIND
UDP_SOCKET__NODE_BIND = _selinux.UDP_SOCKET__NODE_BIND
RAWIP_SOCKET__IOCTL = _selinux.RAWIP_SOCKET__IOCTL
RAWIP_SOCKET__READ = _selinux.RAWIP_SOCKET__READ
RAWIP_SOCKET__WRITE = _selinux.RAWIP_SOCKET__WRITE
RAWIP_SOCKET__CREATE = _selinux.RAWIP_SOCKET__CREATE
RAWIP_SOCKET__GETATTR = _selinux.RAWIP_SOCKET__GETATTR
RAWIP_SOCKET__SETATTR = _selinux.RAWIP_SOCKET__SETATTR
RAWIP_SOCKET__LOCK = _selinux.RAWIP_SOCKET__LOCK
RAWIP_SOCKET__RELABELFROM = _selinux.RAWIP_SOCKET__RELABELFROM
RAWIP_SOCKET__RELABELTO = _selinux.RAWIP_SOCKET__RELABELTO
RAWIP_SOCKET__APPEND = _selinux.RAWIP_SOCKET__APPEND
RAWIP_SOCKET__BIND = _selinux.RAWIP_SOCKET__BIND
RAWIP_SOCKET__CONNECT = _selinux.RAWIP_SOCKET__CONNECT
RAWIP_SOCKET__LISTEN = _selinux.RAWIP_SOCKET__LISTEN
RAWIP_SOCKET__ACCEPT = _selinux.RAWIP_SOCKET__ACCEPT
RAWIP_SOCKET__GETOPT = _selinux.RAWIP_SOCKET__GETOPT
RAWIP_SOCKET__SETOPT = _selinux.RAWIP_SOCKET__SETOPT
RAWIP_SOCKET__SHUTDOWN = _selinux.RAWIP_SOCKET__SHUTDOWN
RAWIP_SOCKET__RECVFROM = _selinux.RAWIP_SOCKET__RECVFROM
RAWIP_SOCKET__SENDTO = _selinux.RAWIP_SOCKET__SENDTO
RAWIP_SOCKET__RECV_MSG = _selinux.RAWIP_SOCKET__RECV_MSG
RAWIP_SOCKET__SEND_MSG = _selinux.RAWIP_SOCKET__SEND_MSG
RAWIP_SOCKET__NAME_BIND = _selinux.RAWIP_SOCKET__NAME_BIND
RAWIP_SOCKET__NODE_BIND = _selinux.RAWIP_SOCKET__NODE_BIND
NODE__TCP_RECV = _selinux.NODE__TCP_RECV
NODE__TCP_SEND = _selinux.NODE__TCP_SEND
NODE__UDP_RECV = _selinux.NODE__UDP_RECV
NODE__UDP_SEND = _selinux.NODE__UDP_SEND
NODE__RAWIP_RECV = _selinux.NODE__RAWIP_RECV
NODE__RAWIP_SEND = _selinux.NODE__RAWIP_SEND
NODE__ENFORCE_DEST = _selinux.NODE__ENFORCE_DEST
NODE__DCCP_RECV = _selinux.NODE__DCCP_RECV
NODE__DCCP_SEND = _selinux.NODE__DCCP_SEND
NODE__RECVFROM = _selinux.NODE__RECVFROM
NODE__SENDTO = _selinux.NODE__SENDTO
NETIF__TCP_RECV = _selinux.NETIF__TCP_RECV
NETIF__TCP_SEND = _selinux.NETIF__TCP_SEND
NETIF__UDP_RECV = _selinux.NETIF__UDP_RECV
NETIF__UDP_SEND = _selinux.NETIF__UDP_SEND
NETIF__RAWIP_RECV = _selinux.NETIF__RAWIP_RECV
NETIF__RAWIP_SEND = _selinux.NETIF__RAWIP_SEND
NETIF__DCCP_RECV = _selinux.NETIF__DCCP_RECV
NETIF__DCCP_SEND = _selinux.NETIF__DCCP_SEND
NETIF__INGRESS = _selinux.NETIF__INGRESS
NETIF__EGRESS = _selinux.NETIF__EGRESS
NETLINK_SOCKET__IOCTL = _selinux.NETLINK_SOCKET__IOCTL
NETLINK_SOCKET__READ = _selinux.NETLINK_SOCKET__READ
NETLINK_SOCKET__WRITE = _selinux.NETLINK_SOCKET__WRITE
NETLINK_SOCKET__CREATE = _selinux.NETLINK_SOCKET__CREATE
NETLINK_SOCKET__GETATTR = _selinux.NETLINK_SOCKET__GETATTR
NETLINK_SOCKET__SETATTR = _selinux.NETLINK_SOCKET__SETATTR
NETLINK_SOCKET__LOCK = _selinux.NETLINK_SOCKET__LOCK
NETLINK_SOCKET__RELABELFROM = _selinux.NETLINK_SOCKET__RELABELFROM
NETLINK_SOCKET__RELABELTO = _selinux.NETLINK_SOCKET__RELABELTO
NETLINK_SOCKET__APPEND = _selinux.NETLINK_SOCKET__APPEND
NETLINK_SOCKET__BIND = _selinux.NETLINK_SOCKET__BIND
NETLINK_SOCKET__CONNECT = _selinux.NETLINK_SOCKET__CONNECT
NETLINK_SOCKET__LISTEN = _selinux.NETLINK_SOCKET__LISTEN
NETLINK_SOCKET__ACCEPT = _selinux.NETLINK_SOCKET__ACCEPT
NETLINK_SOCKET__GETOPT = _selinux.NETLINK_SOCKET__GETOPT
NETLINK_SOCKET__SETOPT = _selinux.NETLINK_SOCKET__SETOPT
NETLINK_SOCKET__SHUTDOWN = _selinux.NETLINK_SOCKET__SHUTDOWN
NETLINK_SOCKET__RECVFROM = _selinux.NETLINK_SOCKET__RECVFROM
NETLINK_SOCKET__SENDTO = _selinux.NETLINK_SOCKET__SENDTO
NETLINK_SOCKET__RECV_MSG = _selinux.NETLINK_SOCKET__RECV_MSG
NETLINK_SOCKET__SEND_MSG = _selinux.NETLINK_SOCKET__SEND_MSG
NETLINK_SOCKET__NAME_BIND = _selinux.NETLINK_SOCKET__NAME_BIND
PACKET_SOCKET__IOCTL = _selinux.PACKET_SOCKET__IOCTL
PACKET_SOCKET__READ = _selinux.PACKET_SOCKET__READ
PACKET_SOCKET__WRITE = _selinux.PACKET_SOCKET__WRITE
PACKET_SOCKET__CREATE = _selinux.PACKET_SOCKET__CREATE
PACKET_SOCKET__GETATTR = _selinux.PACKET_SOCKET__GETATTR
PACKET_SOCKET__SETATTR = _selinux.PACKET_SOCKET__SETATTR
PACKET_SOCKET__LOCK = _selinux.PACKET_SOCKET__LOCK
PACKET_SOCKET__RELABELFROM = _selinux.PACKET_SOCKET__RELABELFROM
PACKET_SOCKET__RELABELTO = _selinux.PACKET_SOCKET__RELABELTO
PACKET_SOCKET__APPEND = _selinux.PACKET_SOCKET__APPEND
PACKET_SOCKET__BIND = _selinux.PACKET_SOCKET__BIND
PACKET_SOCKET__CONNECT = _selinux.PACKET_SOCKET__CONNECT
PACKET_SOCKET__LISTEN = _selinux.PACKET_SOCKET__LISTEN
PACKET_SOCKET__ACCEPT = _selinux.PACKET_SOCKET__ACCEPT
PACKET_SOCKET__GETOPT = _selinux.PACKET_SOCKET__GETOPT
PACKET_SOCKET__SETOPT = _selinux.PACKET_SOCKET__SETOPT
PACKET_SOCKET__SHUTDOWN = _selinux.PACKET_SOCKET__SHUTDOWN
PACKET_SOCKET__RECVFROM = _selinux.PACKET_SOCKET__RECVFROM
PACKET_SOCKET__SENDTO = _selinux.PACKET_SOCKET__SENDTO
PACKET_SOCKET__RECV_MSG = _selinux.PACKET_SOCKET__RECV_MSG
PACKET_SOCKET__SEND_MSG = _selinux.PACKET_SOCKET__SEND_MSG
PACKET_SOCKET__NAME_BIND = _selinux.PACKET_SOCKET__NAME_BIND
KEY_SOCKET__IOCTL = _selinux.KEY_SOCKET__IOCTL
KEY_SOCKET__READ = _selinux.KEY_SOCKET__READ
KEY_SOCKET__WRITE = _selinux.KEY_SOCKET__WRITE
KEY_SOCKET__CREATE = _selinux.KEY_SOCKET__CREATE
KEY_SOCKET__GETATTR = _selinux.KEY_SOCKET__GETATTR
KEY_SOCKET__SETATTR = _selinux.KEY_SOCKET__SETATTR
KEY_SOCKET__LOCK = _selinux.KEY_SOCKET__LOCK
KEY_SOCKET__RELABELFROM = _selinux.KEY_SOCKET__RELABELFROM
KEY_SOCKET__RELABELTO = _selinux.KEY_SOCKET__RELABELTO
KEY_SOCKET__APPEND = _selinux.KEY_SOCKET__APPEND
KEY_SOCKET__BIND = _selinux.KEY_SOCKET__BIND
KEY_SOCKET__CONNECT = _selinux.KEY_SOCKET__CONNECT
KEY_SOCKET__LISTEN = _selinux.KEY_SOCKET__LISTEN
KEY_SOCKET__ACCEPT = _selinux.KEY_SOCKET__ACCEPT
KEY_SOCKET__GETOPT = _selinux.KEY_SOCKET__GETOPT
KEY_SOCKET__SETOPT = _selinux.KEY_SOCKET__SETOPT
KEY_SOCKET__SHUTDOWN = _selinux.KEY_SOCKET__SHUTDOWN
KEY_SOCKET__RECVFROM = _selinux.KEY_SOCKET__RECVFROM
KEY_SOCKET__SENDTO = _selinux.KEY_SOCKET__SENDTO
KEY_SOCKET__RECV_MSG = _selinux.KEY_SOCKET__RECV_MSG
KEY_SOCKET__SEND_MSG = _selinux.KEY_SOCKET__SEND_MSG
KEY_SOCKET__NAME_BIND = _selinux.KEY_SOCKET__NAME_BIND
UNIX_STREAM_SOCKET__IOCTL = _selinux.UNIX_STREAM_SOCKET__IOCTL
UNIX_STREAM_SOCKET__READ = _selinux.UNIX_STREAM_SOCKET__READ
UNIX_STREAM_SOCKET__WRITE = _selinux.UNIX_STREAM_SOCKET__WRITE
UNIX_STREAM_SOCKET__CREATE = _selinux.UNIX_STREAM_SOCKET__CREATE
UNIX_STREAM_SOCKET__GETATTR = _selinux.UNIX_STREAM_SOCKET__GETATTR
UNIX_STREAM_SOCKET__SETATTR = _selinux.UNIX_STREAM_SOCKET__SETATTR
UNIX_STREAM_SOCKET__LOCK = _selinux.UNIX_STREAM_SOCKET__LOCK
UNIX_STREAM_SOCKET__RELABELFROM = _selinux.UNIX_STREAM_SOCKET__RELABELFROM
UNIX_STREAM_SOCKET__RELABELTO = _selinux.UNIX_STREAM_SOCKET__RELABELTO
UNIX_STREAM_SOCKET__APPEND = _selinux.UNIX_STREAM_SOCKET__APPEND
UNIX_STREAM_SOCKET__BIND = _selinux.UNIX_STREAM_SOCKET__BIND
UNIX_STREAM_SOCKET__CONNECT = _selinux.UNIX_STREAM_SOCKET__CONNECT
UNIX_STREAM_SOCKET__LISTEN = _selinux.UNIX_STREAM_SOCKET__LISTEN
UNIX_STREAM_SOCKET__ACCEPT = _selinux.UNIX_STREAM_SOCKET__ACCEPT
UNIX_STREAM_SOCKET__GETOPT = _selinux.UNIX_STREAM_SOCKET__GETOPT
UNIX_STREAM_SOCKET__SETOPT = _selinux.UNIX_STREAM_SOCKET__SETOPT
UNIX_STREAM_SOCKET__SHUTDOWN = _selinux.UNIX_STREAM_SOCKET__SHUTDOWN
UNIX_STREAM_SOCKET__RECVFROM = _selinux.UNIX_STREAM_SOCKET__RECVFROM
UNIX_STREAM_SOCKET__SENDTO = _selinux.UNIX_STREAM_SOCKET__SENDTO
UNIX_STREAM_SOCKET__RECV_MSG = _selinux.UNIX_STREAM_SOCKET__RECV_MSG
UNIX_STREAM_SOCKET__SEND_MSG = _selinux.UNIX_STREAM_SOCKET__SEND_MSG
UNIX_STREAM_SOCKET__NAME_BIND = _selinux.UNIX_STREAM_SOCKET__NAME_BIND
UNIX_STREAM_SOCKET__CONNECTTO = _selinux.UNIX_STREAM_SOCKET__CONNECTTO
UNIX_STREAM_SOCKET__NEWCONN = _selinux.UNIX_STREAM_SOCKET__NEWCONN
UNIX_STREAM_SOCKET__ACCEPTFROM = _selinux.UNIX_STREAM_SOCKET__ACCEPTFROM
UNIX_DGRAM_SOCKET__IOCTL = _selinux.UNIX_DGRAM_SOCKET__IOCTL
UNIX_DGRAM_SOCKET__READ = _selinux.UNIX_DGRAM_SOCKET__READ
UNIX_DGRAM_SOCKET__WRITE = _selinux.UNIX_DGRAM_SOCKET__WRITE
UNIX_DGRAM_SOCKET__CREATE = _selinux.UNIX_DGRAM_SOCKET__CREATE
UNIX_DGRAM_SOCKET__GETATTR = _selinux.UNIX_DGRAM_SOCKET__GETATTR
UNIX_DGRAM_SOCKET__SETATTR = _selinux.UNIX_DGRAM_SOCKET__SETATTR
UNIX_DGRAM_SOCKET__LOCK = _selinux.UNIX_DGRAM_SOCKET__LOCK
UNIX_DGRAM_SOCKET__RELABELFROM = _selinux.UNIX_DGRAM_SOCKET__RELABELFROM
UNIX_DGRAM_SOCKET__RELABELTO = _selinux.UNIX_DGRAM_SOCKET__RELABELTO
UNIX_DGRAM_SOCKET__APPEND = _selinux.UNIX_DGRAM_SOCKET__APPEND
UNIX_DGRAM_SOCKET__BIND = _selinux.UNIX_DGRAM_SOCKET__BIND
UNIX_DGRAM_SOCKET__CONNECT = _selinux.UNIX_DGRAM_SOCKET__CONNECT
UNIX_DGRAM_SOCKET__LISTEN = _selinux.UNIX_DGRAM_SOCKET__LISTEN
UNIX_DGRAM_SOCKET__ACCEPT = _selinux.UNIX_DGRAM_SOCKET__ACCEPT
UNIX_DGRAM_SOCKET__GETOPT = _selinux.UNIX_DGRAM_SOCKET__GETOPT
UNIX_DGRAM_SOCKET__SETOPT = _selinux.UNIX_DGRAM_SOCKET__SETOPT
UNIX_DGRAM_SOCKET__SHUTDOWN = _selinux.UNIX_DGRAM_SOCKET__SHUTDOWN
UNIX_DGRAM_SOCKET__RECVFROM = _selinux.UNIX_DGRAM_SOCKET__RECVFROM
UNIX_DGRAM_SOCKET__SENDTO = _selinux.UNIX_DGRAM_SOCKET__SENDTO
UNIX_DGRAM_SOCKET__RECV_MSG = _selinux.UNIX_DGRAM_SOCKET__RECV_MSG
UNIX_DGRAM_SOCKET__SEND_MSG = _selinux.UNIX_DGRAM_SOCKET__SEND_MSG
UNIX_DGRAM_SOCKET__NAME_BIND = _selinux.UNIX_DGRAM_SOCKET__NAME_BIND
PROCESS__FORK = _selinux.PROCESS__FORK
PROCESS__TRANSITION = _selinux.PROCESS__TRANSITION
PROCESS__SIGCHLD = _selinux.PROCESS__SIGCHLD
PROCESS__SIGKILL = _selinux.PROCESS__SIGKILL
PROCESS__SIGSTOP = _selinux.PROCESS__SIGSTOP
PROCESS__SIGNULL = _selinux.PROCESS__SIGNULL
PROCESS__SIGNAL = _selinux.PROCESS__SIGNAL
PROCESS__PTRACE = _selinux.PROCESS__PTRACE
PROCESS__GETSCHED = _selinux.PROCESS__GETSCHED
PROCESS__SETSCHED = _selinux.PROCESS__SETSCHED
PROCESS__GETSESSION = _selinux.PROCESS__GETSESSION
PROCESS__GETPGID = _selinux.PROCESS__GETPGID
PROCESS__SETPGID = _selinux.PROCESS__SETPGID
PROCESS__GETCAP = _selinux.PROCESS__GETCAP
PROCESS__SETCAP = _selinux.PROCESS__SETCAP
PROCESS__SHARE = _selinux.PROCESS__SHARE
PROCESS__GETATTR = _selinux.PROCESS__GETATTR
PROCESS__SETEXEC = _selinux.PROCESS__SETEXEC
PROCESS__SETFSCREATE = _selinux.PROCESS__SETFSCREATE
PROCESS__NOATSECURE = _selinux.PROCESS__NOATSECURE
PROCESS__SIGINH = _selinux.PROCESS__SIGINH
PROCESS__SETRLIMIT = _selinux.PROCESS__SETRLIMIT
PROCESS__RLIMITINH = _selinux.PROCESS__RLIMITINH
PROCESS__DYNTRANSITION = _selinux.PROCESS__DYNTRANSITION
PROCESS__SETCURRENT = _selinux.PROCESS__SETCURRENT
PROCESS__EXECMEM = _selinux.PROCESS__EXECMEM
PROCESS__EXECSTACK = _selinux.PROCESS__EXECSTACK
PROCESS__EXECHEAP = _selinux.PROCESS__EXECHEAP
PROCESS__SETKEYCREATE = _selinux.PROCESS__SETKEYCREATE
PROCESS__SETSOCKCREATE = _selinux.PROCESS__SETSOCKCREATE
IPC__CREATE = _selinux.IPC__CREATE
IPC__DESTROY = _selinux.IPC__DESTROY
IPC__GETATTR = _selinux.IPC__GETATTR
IPC__SETATTR = _selinux.IPC__SETATTR
IPC__READ = _selinux.IPC__READ
IPC__WRITE = _selinux.IPC__WRITE
IPC__ASSOCIATE = _selinux.IPC__ASSOCIATE
IPC__UNIX_READ = _selinux.IPC__UNIX_READ
IPC__UNIX_WRITE = _selinux.IPC__UNIX_WRITE
SEM__CREATE = _selinux.SEM__CREATE
SEM__DESTROY = _selinux.SEM__DESTROY
SEM__GETATTR = _selinux.SEM__GETATTR
SEM__SETATTR = _selinux.SEM__SETATTR
SEM__READ = _selinux.SEM__READ
SEM__WRITE = _selinux.SEM__WRITE
SEM__ASSOCIATE = _selinux.SEM__ASSOCIATE
SEM__UNIX_READ = _selinux.SEM__UNIX_READ
SEM__UNIX_WRITE = _selinux.SEM__UNIX_WRITE
MSGQ__CREATE = _selinux.MSGQ__CREATE
MSGQ__DESTROY = _selinux.MSGQ__DESTROY
MSGQ__GETATTR = _selinux.MSGQ__GETATTR
MSGQ__SETATTR = _selinux.MSGQ__SETATTR
MSGQ__READ = _selinux.MSGQ__READ
MSGQ__WRITE = _selinux.MSGQ__WRITE
MSGQ__ASSOCIATE = _selinux.MSGQ__ASSOCIATE
MSGQ__UNIX_READ = _selinux.MSGQ__UNIX_READ
MSGQ__UNIX_WRITE = _selinux.MSGQ__UNIX_WRITE
MSGQ__ENQUEUE = _selinux.MSGQ__ENQUEUE
MSG__SEND = _selinux.MSG__SEND
MSG__RECEIVE = _selinux.MSG__RECEIVE
SHM__CREATE = _selinux.SHM__CREATE
SHM__DESTROY = _selinux.SHM__DESTROY
SHM__GETATTR = _selinux.SHM__GETATTR
SHM__SETATTR = _selinux.SHM__SETATTR
SHM__READ = _selinux.SHM__READ
SHM__WRITE = _selinux.SHM__WRITE
SHM__ASSOCIATE = _selinux.SHM__ASSOCIATE
SHM__UNIX_READ = _selinux.SHM__UNIX_READ
SHM__UNIX_WRITE = _selinux.SHM__UNIX_WRITE
SHM__LOCK = _selinux.SHM__LOCK
SECURITY__COMPUTE_AV = _selinux.SECURITY__COMPUTE_AV
SECURITY__COMPUTE_CREATE = _selinux.SECURITY__COMPUTE_CREATE
SECURITY__COMPUTE_MEMBER = _selinux.SECURITY__COMPUTE_MEMBER
SECURITY__CHECK_CONTEXT = _selinux.SECURITY__CHECK_CONTEXT
SECURITY__LOAD_POLICY = _selinux.SECURITY__LOAD_POLICY
SECURITY__COMPUTE_RELABEL = _selinux.SECURITY__COMPUTE_RELABEL
SECURITY__COMPUTE_USER = _selinux.SECURITY__COMPUTE_USER
SECURITY__SETENFORCE = _selinux.SECURITY__SETENFORCE
SECURITY__SETBOOL = _selinux.SECURITY__SETBOOL
SECURITY__SETSECPARAM = _selinux.SECURITY__SETSECPARAM
SECURITY__SETCHECKREQPROT = _selinux.SECURITY__SETCHECKREQPROT
SYSTEM__IPC_INFO = _selinux.SYSTEM__IPC_INFO
SYSTEM__SYSLOG_READ = _selinux.SYSTEM__SYSLOG_READ
SYSTEM__SYSLOG_MOD = _selinux.SYSTEM__SYSLOG_MOD
SYSTEM__SYSLOG_CONSOLE = _selinux.SYSTEM__SYSLOG_CONSOLE
CAPABILITY__CHOWN = _selinux.CAPABILITY__CHOWN
CAPABILITY__DAC_OVERRIDE = _selinux.CAPABILITY__DAC_OVERRIDE
CAPABILITY__DAC_READ_SEARCH = _selinux.CAPABILITY__DAC_READ_SEARCH
CAPABILITY__FOWNER = _selinux.CAPABILITY__FOWNER
CAPABILITY__FSETID = _selinux.CAPABILITY__FSETID
CAPABILITY__KILL = _selinux.CAPABILITY__KILL
CAPABILITY__SETGID = _selinux.CAPABILITY__SETGID
CAPABILITY__SETUID = _selinux.CAPABILITY__SETUID
CAPABILITY__SETPCAP = _selinux.CAPABILITY__SETPCAP
CAPABILITY__LINUX_IMMUTABLE = _selinux.CAPABILITY__LINUX_IMMUTABLE
CAPABILITY__NET_BIND_SERVICE = _selinux.CAPABILITY__NET_BIND_SERVICE
CAPABILITY__NET_BROADCAST = _selinux.CAPABILITY__NET_BROADCAST
CAPABILITY__NET_ADMIN = _selinux.CAPABILITY__NET_ADMIN
CAPABILITY__NET_RAW = _selinux.CAPABILITY__NET_RAW
CAPABILITY__IPC_LOCK = _selinux.CAPABILITY__IPC_LOCK
CAPABILITY__IPC_OWNER = _selinux.CAPABILITY__IPC_OWNER
CAPABILITY__SYS_MODULE = _selinux.CAPABILITY__SYS_MODULE
CAPABILITY__SYS_RAWIO = _selinux.CAPABILITY__SYS_RAWIO
CAPABILITY__SYS_CHROOT = _selinux.CAPABILITY__SYS_CHROOT
CAPABILITY__SYS_PTRACE = _selinux.CAPABILITY__SYS_PTRACE
CAPABILITY__SYS_PACCT = _selinux.CAPABILITY__SYS_PACCT
CAPABILITY__SYS_ADMIN = _selinux.CAPABILITY__SYS_ADMIN
CAPABILITY__SYS_BOOT = _selinux.CAPABILITY__SYS_BOOT
CAPABILITY__SYS_NICE = _selinux.CAPABILITY__SYS_NICE
CAPABILITY__SYS_RESOURCE = _selinux.CAPABILITY__SYS_RESOURCE
CAPABILITY__SYS_TIME = _selinux.CAPABILITY__SYS_TIME
CAPABILITY__SYS_TTY_CONFIG = _selinux.CAPABILITY__SYS_TTY_CONFIG
CAPABILITY__MKNOD = _selinux.CAPABILITY__MKNOD
CAPABILITY__LEASE = _selinux.CAPABILITY__LEASE
CAPABILITY__AUDIT_WRITE = _selinux.CAPABILITY__AUDIT_WRITE
CAPABILITY__AUDIT_CONTROL = _selinux.CAPABILITY__AUDIT_CONTROL
CAPABILITY__SETFCAP = _selinux.CAPABILITY__SETFCAP
CAPABILITY2__MAC_OVERRIDE = _selinux.CAPABILITY2__MAC_OVERRIDE
CAPABILITY2__MAC_ADMIN = _selinux.CAPABILITY2__MAC_ADMIN
PASSWD__PASSWD = _selinux.PASSWD__PASSWD
PASSWD__CHFN = _selinux.PASSWD__CHFN
PASSWD__CHSH = _selinux.PASSWD__CHSH
PASSWD__ROOTOK = _selinux.PASSWD__ROOTOK
PASSWD__CRONTAB = _selinux.PASSWD__CRONTAB
X_DRAWABLE__CREATE = _selinux.X_DRAWABLE__CREATE
X_DRAWABLE__DESTROY = _selinux.X_DRAWABLE__DESTROY
X_DRAWABLE__READ = _selinux.X_DRAWABLE__READ
X_DRAWABLE__WRITE = _selinux.X_DRAWABLE__WRITE
X_DRAWABLE__BLEND = _selinux.X_DRAWABLE__BLEND
X_DRAWABLE__GETATTR = _selinux.X_DRAWABLE__GETATTR
X_DRAWABLE__SETATTR = _selinux.X_DRAWABLE__SETATTR
X_DRAWABLE__LIST_CHILD = _selinux.X_DRAWABLE__LIST_CHILD
X_DRAWABLE__ADD_CHILD = _selinux.X_DRAWABLE__ADD_CHILD
X_DRAWABLE__REMOVE_CHILD = _selinux.X_DRAWABLE__REMOVE_CHILD
X_DRAWABLE__LIST_PROPERTY = _selinux.X_DRAWABLE__LIST_PROPERTY
X_DRAWABLE__GET_PROPERTY = _selinux.X_DRAWABLE__GET_PROPERTY
X_DRAWABLE__SET_PROPERTY = _selinux.X_DRAWABLE__SET_PROPERTY
X_DRAWABLE__MANAGE = _selinux.X_DRAWABLE__MANAGE
X_DRAWABLE__OVERRIDE = _selinux.X_DRAWABLE__OVERRIDE
X_DRAWABLE__SHOW = _selinux.X_DRAWABLE__SHOW
X_DRAWABLE__HIDE = _selinux.X_DRAWABLE__HIDE
X_DRAWABLE__SEND = _selinux.X_DRAWABLE__SEND
X_DRAWABLE__RECEIVE = _selinux.X_DRAWABLE__RECEIVE
X_SCREEN__GETATTR = _selinux.X_SCREEN__GETATTR
X_SCREEN__SETATTR = _selinux.X_SCREEN__SETATTR
X_SCREEN__HIDE_CURSOR = _selinux.X_SCREEN__HIDE_CURSOR
X_SCREEN__SHOW_CURSOR = _selinux.X_SCREEN__SHOW_CURSOR
X_SCREEN__SAVER_GETATTR = _selinux.X_SCREEN__SAVER_GETATTR
X_SCREEN__SAVER_SETATTR = _selinux.X_SCREEN__SAVER_SETATTR
X_SCREEN__SAVER_HIDE = _selinux.X_SCREEN__SAVER_HIDE
X_SCREEN__SAVER_SHOW = _selinux.X_SCREEN__SAVER_SHOW
X_GC__CREATE = _selinux.X_GC__CREATE
X_GC__DESTROY = _selinux.X_GC__DESTROY
X_GC__GETATTR = _selinux.X_GC__GETATTR
X_GC__SETATTR = _selinux.X_GC__SETATTR
X_GC__USE = _selinux.X_GC__USE
X_FONT__CREATE = _selinux.X_FONT__CREATE
X_FONT__DESTROY = _selinux.X_FONT__DESTROY
X_FONT__GETATTR = _selinux.X_FONT__GETATTR
X_FONT__ADD_GLYPH = _selinux.X_FONT__ADD_GLYPH
X_FONT__REMOVE_GLYPH = _selinux.X_FONT__REMOVE_GLYPH
X_FONT__USE = _selinux.X_FONT__USE
X_COLORMAP__CREATE = _selinux.X_COLORMAP__CREATE
X_COLORMAP__DESTROY = _selinux.X_COLORMAP__DESTROY
X_COLORMAP__READ = _selinux.X_COLORMAP__READ
X_COLORMAP__WRITE = _selinux.X_COLORMAP__WRITE
X_COLORMAP__GETATTR = _selinux.X_COLORMAP__GETATTR
X_COLORMAP__ADD_COLOR = _selinux.X_COLORMAP__ADD_COLOR
X_COLORMAP__REMOVE_COLOR = _selinux.X_COLORMAP__REMOVE_COLOR
X_COLORMAP__INSTALL = _selinux.X_COLORMAP__INSTALL
X_COLORMAP__UNINSTALL = _selinux.X_COLORMAP__UNINSTALL
X_COLORMAP__USE = _selinux.X_COLORMAP__USE
X_PROPERTY__CREATE = _selinux.X_PROPERTY__CREATE
X_PROPERTY__DESTROY = _selinux.X_PROPERTY__DESTROY
X_PROPERTY__READ = _selinux.X_PROPERTY__READ
X_PROPERTY__WRITE = _selinux.X_PROPERTY__WRITE
X_PROPERTY__APPEND = _selinux.X_PROPERTY__APPEND
X_PROPERTY__GETATTR = _selinux.X_PROPERTY__GETATTR
X_PROPERTY__SETATTR = _selinux.X_PROPERTY__SETATTR
X_SELECTION__READ = _selinux.X_SELECTION__READ
X_SELECTION__WRITE = _selinux.X_SELECTION__WRITE
X_SELECTION__GETATTR = _selinux.X_SELECTION__GETATTR
X_SELECTION__SETATTR = _selinux.X_SELECTION__SETATTR
X_CURSOR__CREATE = _selinux.X_CURSOR__CREATE
X_CURSOR__DESTROY = _selinux.X_CURSOR__DESTROY
X_CURSOR__READ = _selinux.X_CURSOR__READ
X_CURSOR__WRITE = _selinux.X_CURSOR__WRITE
X_CURSOR__GETATTR = _selinux.X_CURSOR__GETATTR
X_CURSOR__SETATTR = _selinux.X_CURSOR__SETATTR
X_CURSOR__USE = _selinux.X_CURSOR__USE
X_CLIENT__DESTROY = _selinux.X_CLIENT__DESTROY
X_CLIENT__GETATTR = _selinux.X_CLIENT__GETATTR
X_CLIENT__SETATTR = _selinux.X_CLIENT__SETATTR
X_CLIENT__MANAGE = _selinux.X_CLIENT__MANAGE
X_DEVICE__GETATTR = _selinux.X_DEVICE__GETATTR
X_DEVICE__SETATTR = _selinux.X_DEVICE__SETATTR
X_DEVICE__USE = _selinux.X_DEVICE__USE
X_DEVICE__READ = _selinux.X_DEVICE__READ
X_DEVICE__WRITE = _selinux.X_DEVICE__WRITE
X_DEVICE__GETFOCUS = _selinux.X_DEVICE__GETFOCUS
X_DEVICE__SETFOCUS = _selinux.X_DEVICE__SETFOCUS
X_DEVICE__BELL = _selinux.X_DEVICE__BELL
X_DEVICE__FORCE_CURSOR = _selinux.X_DEVICE__FORCE_CURSOR
X_DEVICE__FREEZE = _selinux.X_DEVICE__FREEZE
X_DEVICE__GRAB = _selinux.X_DEVICE__GRAB
X_DEVICE__MANAGE = _selinux.X_DEVICE__MANAGE
X_SERVER__GETATTR = _selinux.X_SERVER__GETATTR
X_SERVER__SETATTR = _selinux.X_SERVER__SETATTR
X_SERVER__RECORD = _selinux.X_SERVER__RECORD
X_SERVER__DEBUG = _selinux.X_SERVER__DEBUG
X_SERVER__GRAB = _selinux.X_SERVER__GRAB
X_SERVER__MANAGE = _selinux.X_SERVER__MANAGE
X_EXTENSION__QUERY = _selinux.X_EXTENSION__QUERY
X_EXTENSION__USE = _selinux.X_EXTENSION__USE
X_RESOURCE__READ = _selinux.X_RESOURCE__READ
X_RESOURCE__WRITE = _selinux.X_RESOURCE__WRITE
X_EVENT__SEND = _selinux.X_EVENT__SEND
X_EVENT__RECEIVE = _selinux.X_EVENT__RECEIVE
X_SYNTHETIC_EVENT__SEND = _selinux.X_SYNTHETIC_EVENT__SEND
X_SYNTHETIC_EVENT__RECEIVE = _selinux.X_SYNTHETIC_EVENT__RECEIVE
NETLINK_ROUTE_SOCKET__IOCTL = _selinux.NETLINK_ROUTE_SOCKET__IOCTL
NETLINK_ROUTE_SOCKET__READ = _selinux.NETLINK_ROUTE_SOCKET__READ
NETLINK_ROUTE_SOCKET__WRITE = _selinux.NETLINK_ROUTE_SOCKET__WRITE
NETLINK_ROUTE_SOCKET__CREATE = _selinux.NETLINK_ROUTE_SOCKET__CREATE
NETLINK_ROUTE_SOCKET__GETATTR = _selinux.NETLINK_ROUTE_SOCKET__GETATTR
NETLINK_ROUTE_SOCKET__SETATTR = _selinux.NETLINK_ROUTE_SOCKET__SETATTR
NETLINK_ROUTE_SOCKET__LOCK = _selinux.NETLINK_ROUTE_SOCKET__LOCK
NETLINK_ROUTE_SOCKET__RELABELFROM = _selinux.NETLINK_ROUTE_SOCKET__RELABELFROM
NETLINK_ROUTE_SOCKET__RELABELTO = _selinux.NETLINK_ROUTE_SOCKET__RELABELTO
NETLINK_ROUTE_SOCKET__APPEND = _selinux.NETLINK_ROUTE_SOCKET__APPEND
NETLINK_ROUTE_SOCKET__BIND = _selinux.NETLINK_ROUTE_SOCKET__BIND
NETLINK_ROUTE_SOCKET__CONNECT = _selinux.NETLINK_ROUTE_SOCKET__CONNECT
NETLINK_ROUTE_SOCKET__LISTEN = _selinux.NETLINK_ROUTE_SOCKET__LISTEN
NETLINK_ROUTE_SOCKET__ACCEPT = _selinux.NETLINK_ROUTE_SOCKET__ACCEPT
NETLINK_ROUTE_SOCKET__GETOPT = _selinux.NETLINK_ROUTE_SOCKET__GETOPT
NETLINK_ROUTE_SOCKET__SETOPT = _selinux.NETLINK_ROUTE_SOCKET__SETOPT
NETLINK_ROUTE_SOCKET__SHUTDOWN = _selinux.NETLINK_ROUTE_SOCKET__SHUTDOWN
NETLINK_ROUTE_SOCKET__RECVFROM = _selinux.NETLINK_ROUTE_SOCKET__RECVFROM
NETLINK_ROUTE_SOCKET__SENDTO = _selinux.NETLINK_ROUTE_SOCKET__SENDTO
NETLINK_ROUTE_SOCKET__RECV_MSG = _selinux.NETLINK_ROUTE_SOCKET__RECV_MSG
NETLINK_ROUTE_SOCKET__SEND_MSG = _selinux.NETLINK_ROUTE_SOCKET__SEND_MSG
NETLINK_ROUTE_SOCKET__NAME_BIND = _selinux.NETLINK_ROUTE_SOCKET__NAME_BIND
NETLINK_ROUTE_SOCKET__NLMSG_READ = _selinux.NETLINK_ROUTE_SOCKET__NLMSG_READ
NETLINK_ROUTE_SOCKET__NLMSG_WRITE = _selinux.NETLINK_ROUTE_SOCKET__NLMSG_WRITE
NETLINK_FIREWALL_SOCKET__IOCTL = _selinux.NETLINK_FIREWALL_SOCKET__IOCTL
NETLINK_FIREWALL_SOCKET__READ = _selinux.NETLINK_FIREWALL_SOCKET__READ
NETLINK_FIREWALL_SOCKET__WRITE = _selinux.NETLINK_FIREWALL_SOCKET__WRITE
NETLINK_FIREWALL_SOCKET__CREATE = _selinux.NETLINK_FIREWALL_SOCKET__CREATE
NETLINK_FIREWALL_SOCKET__GETATTR = _selinux.NETLINK_FIREWALL_SOCKET__GETATTR
NETLINK_FIREWALL_SOCKET__SETATTR = _selinux.NETLINK_FIREWALL_SOCKET__SETATTR
NETLINK_FIREWALL_SOCKET__LOCK = _selinux.NETLINK_FIREWALL_SOCKET__LOCK
NETLINK_FIREWALL_SOCKET__RELABELFROM = _selinux.NETLINK_FIREWALL_SOCKET__RELABELFROM
NETLINK_FIREWALL_SOCKET__RELABELTO = _selinux.NETLINK_FIREWALL_SOCKET__RELABELTO
NETLINK_FIREWALL_SOCKET__APPEND = _selinux.NETLINK_FIREWALL_SOCKET__APPEND
NETLINK_FIREWALL_SOCKET__BIND = _selinux.NETLINK_FIREWALL_SOCKET__BIND
NETLINK_FIREWALL_SOCKET__CONNECT = _selinux.NETLINK_FIREWALL_SOCKET__CONNECT
NETLINK_FIREWALL_SOCKET__LISTEN = _selinux.NETLINK_FIREWALL_SOCKET__LISTEN
NETLINK_FIREWALL_SOCKET__ACCEPT = _selinux.NETLINK_FIREWALL_SOCKET__ACCEPT
NETLINK_FIREWALL_SOCKET__GETOPT = _selinux.NETLINK_FIREWALL_SOCKET__GETOPT
NETLINK_FIREWALL_SOCKET__SETOPT = _selinux.NETLINK_FIREWALL_SOCKET__SETOPT
NETLINK_FIREWALL_SOCKET__SHUTDOWN = _selinux.NETLINK_FIREWALL_SOCKET__SHUTDOWN
NETLINK_FIREWALL_SOCKET__RECVFROM = _selinux.NETLINK_FIREWALL_SOCKET__RECVFROM
NETLINK_FIREWALL_SOCKET__SENDTO = _selinux.NETLINK_FIREWALL_SOCKET__SENDTO
NETLINK_FIREWALL_SOCKET__RECV_MSG = _selinux.NETLINK_FIREWALL_SOCKET__RECV_MSG
NETLINK_FIREWALL_SOCKET__SEND_MSG = _selinux.NETLINK_FIREWALL_SOCKET__SEND_MSG
NETLINK_FIREWALL_SOCKET__NAME_BIND = _selinux.NETLINK_FIREWALL_SOCKET__NAME_BIND
NETLINK_FIREWALL_SOCKET__NLMSG_READ = _selinux.NETLINK_FIREWALL_SOCKET__NLMSG_READ
NETLINK_FIREWALL_SOCKET__NLMSG_WRITE = _selinux.NETLINK_FIREWALL_SOCKET__NLMSG_WRITE
NETLINK_TCPDIAG_SOCKET__IOCTL = _selinux.NETLINK_TCPDIAG_SOCKET__IOCTL
NETLINK_TCPDIAG_SOCKET__READ = _selinux.NETLINK_TCPDIAG_SOCKET__READ
NETLINK_TCPDIAG_SOCKET__WRITE = _selinux.NETLINK_TCPDIAG_SOCKET__WRITE
NETLINK_TCPDIAG_SOCKET__CREATE = _selinux.NETLINK_TCPDIAG_SOCKET__CREATE
NETLINK_TCPDIAG_SOCKET__GETATTR = _selinux.NETLINK_TCPDIAG_SOCKET__GETATTR
NETLINK_TCPDIAG_SOCKET__SETATTR = _selinux.NETLINK_TCPDIAG_SOCKET__SETATTR
NETLINK_TCPDIAG_SOCKET__LOCK = _selinux.NETLINK_TCPDIAG_SOCKET__LOCK
NETLINK_TCPDIAG_SOCKET__RELABELFROM = _selinux.NETLINK_TCPDIAG_SOCKET__RELABELFROM
NETLINK_TCPDIAG_SOCKET__RELABELTO = _selinux.NETLINK_TCPDIAG_SOCKET__RELABELTO
NETLINK_TCPDIAG_SOCKET__APPEND = _selinux.NETLINK_TCPDIAG_SOCKET__APPEND
NETLINK_TCPDIAG_SOCKET__BIND = _selinux.NETLINK_TCPDIAG_SOCKET__BIND
NETLINK_TCPDIAG_SOCKET__CONNECT = _selinux.NETLINK_TCPDIAG_SOCKET__CONNECT
NETLINK_TCPDIAG_SOCKET__LISTEN = _selinux.NETLINK_TCPDIAG_SOCKET__LISTEN
NETLINK_TCPDIAG_SOCKET__ACCEPT = _selinux.NETLINK_TCPDIAG_SOCKET__ACCEPT
NETLINK_TCPDIAG_SOCKET__GETOPT = _selinux.NETLINK_TCPDIAG_SOCKET__GETOPT
NETLINK_TCPDIAG_SOCKET__SETOPT = _selinux.NETLINK_TCPDIAG_SOCKET__SETOPT
NETLINK_TCPDIAG_SOCKET__SHUTDOWN = _selinux.NETLINK_TCPDIAG_SOCKET__SHUTDOWN
NETLINK_TCPDIAG_SOCKET__RECVFROM = _selinux.NETLINK_TCPDIAG_SOCKET__RECVFROM
NETLINK_TCPDIAG_SOCKET__SENDTO = _selinux.NETLINK_TCPDIAG_SOCKET__SENDTO
NETLINK_TCPDIAG_SOCKET__RECV_MSG = _selinux.NETLINK_TCPDIAG_SOCKET__RECV_MSG
NETLINK_TCPDIAG_SOCKET__SEND_MSG = _selinux.NETLINK_TCPDIAG_SOCKET__SEND_MSG
NETLINK_TCPDIAG_SOCKET__NAME_BIND = _selinux.NETLINK_TCPDIAG_SOCKET__NAME_BIND
NETLINK_TCPDIAG_SOCKET__NLMSG_READ = _selinux.NETLINK_TCPDIAG_SOCKET__NLMSG_READ
NETLINK_TCPDIAG_SOCKET__NLMSG_WRITE = _selinux.NETLINK_TCPDIAG_SOCKET__NLMSG_WRITE
NETLINK_NFLOG_SOCKET__IOCTL = _selinux.NETLINK_NFLOG_SOCKET__IOCTL
NETLINK_NFLOG_SOCKET__READ = _selinux.NETLINK_NFLOG_SOCKET__READ
NETLINK_NFLOG_SOCKET__WRITE = _selinux.NETLINK_NFLOG_SOCKET__WRITE
NETLINK_NFLOG_SOCKET__CREATE = _selinux.NETLINK_NFLOG_SOCKET__CREATE
NETLINK_NFLOG_SOCKET__GETATTR = _selinux.NETLINK_NFLOG_SOCKET__GETATTR
NETLINK_NFLOG_SOCKET__SETATTR = _selinux.NETLINK_NFLOG_SOCKET__SETATTR
NETLINK_NFLOG_SOCKET__LOCK = _selinux.NETLINK_NFLOG_SOCKET__LOCK
NETLINK_NFLOG_SOCKET__RELABELFROM = _selinux.NETLINK_NFLOG_SOCKET__RELABELFROM
NETLINK_NFLOG_SOCKET__RELABELTO = _selinux.NETLINK_NFLOG_SOCKET__RELABELTO
NETLINK_NFLOG_SOCKET__APPEND = _selinux.NETLINK_NFLOG_SOCKET__APPEND
NETLINK_NFLOG_SOCKET__BIND = _selinux.NETLINK_NFLOG_SOCKET__BIND
NETLINK_NFLOG_SOCKET__CONNECT = _selinux.NETLINK_NFLOG_SOCKET__CONNECT
NETLINK_NFLOG_SOCKET__LISTEN = _selinux.NETLINK_NFLOG_SOCKET__LISTEN
NETLINK_NFLOG_SOCKET__ACCEPT = _selinux.NETLINK_NFLOG_SOCKET__ACCEPT
NETLINK_NFLOG_SOCKET__GETOPT = _selinux.NETLINK_NFLOG_SOCKET__GETOPT
NETLINK_NFLOG_SOCKET__SETOPT = _selinux.NETLINK_NFLOG_SOCKET__SETOPT
NETLINK_NFLOG_SOCKET__SHUTDOWN = _selinux.NETLINK_NFLOG_SOCKET__SHUTDOWN
NETLINK_NFLOG_SOCKET__RECVFROM = _selinux.NETLINK_NFLOG_SOCKET__RECVFROM
NETLINK_NFLOG_SOCKET__SENDTO = _selinux.NETLINK_NFLOG_SOCKET__SENDTO
NETLINK_NFLOG_SOCKET__RECV_MSG = _selinux.NETLINK_NFLOG_SOCKET__RECV_MSG
NETLINK_NFLOG_SOCKET__SEND_MSG = _selinux.NETLINK_NFLOG_SOCKET__SEND_MSG
NETLINK_NFLOG_SOCKET__NAME_BIND = _selinux.NETLINK_NFLOG_SOCKET__NAME_BIND
NETLINK_XFRM_SOCKET__IOCTL = _selinux.NETLINK_XFRM_SOCKET__IOCTL
NETLINK_XFRM_SOCKET__READ = _selinux.NETLINK_XFRM_SOCKET__READ
NETLINK_XFRM_SOCKET__WRITE = _selinux.NETLINK_XFRM_SOCKET__WRITE
NETLINK_XFRM_SOCKET__CREATE = _selinux.NETLINK_XFRM_SOCKET__CREATE
NETLINK_XFRM_SOCKET__GETATTR = _selinux.NETLINK_XFRM_SOCKET__GETATTR
NETLINK_XFRM_SOCKET__SETATTR = _selinux.NETLINK_XFRM_SOCKET__SETATTR
NETLINK_XFRM_SOCKET__LOCK = _selinux.NETLINK_XFRM_SOCKET__LOCK
NETLINK_XFRM_SOCKET__RELABELFROM = _selinux.NETLINK_XFRM_SOCKET__RELABELFROM
NETLINK_XFRM_SOCKET__RELABELTO = _selinux.NETLINK_XFRM_SOCKET__RELABELTO
NETLINK_XFRM_SOCKET__APPEND = _selinux.NETLINK_XFRM_SOCKET__APPEND
NETLINK_XFRM_SOCKET__BIND = _selinux.NETLINK_XFRM_SOCKET__BIND
NETLINK_XFRM_SOCKET__CONNECT = _selinux.NETLINK_XFRM_SOCKET__CONNECT
NETLINK_XFRM_SOCKET__LISTEN = _selinux.NETLINK_XFRM_SOCKET__LISTEN
NETLINK_XFRM_SOCKET__ACCEPT = _selinux.NETLINK_XFRM_SOCKET__ACCEPT
NETLINK_XFRM_SOCKET__GETOPT = _selinux.NETLINK_XFRM_SOCKET__GETOPT
NETLINK_XFRM_SOCKET__SETOPT = _selinux.NETLINK_XFRM_SOCKET__SETOPT
NETLINK_XFRM_SOCKET__SHUTDOWN = _selinux.NETLINK_XFRM_SOCKET__SHUTDOWN
NETLINK_XFRM_SOCKET__RECVFROM = _selinux.NETLINK_XFRM_SOCKET__RECVFROM
NETLINK_XFRM_SOCKET__SENDTO = _selinux.NETLINK_XFRM_SOCKET__SENDTO
NETLINK_XFRM_SOCKET__RECV_MSG = _selinux.NETLINK_XFRM_SOCKET__RECV_MSG
NETLINK_XFRM_SOCKET__SEND_MSG = _selinux.NETLINK_XFRM_SOCKET__SEND_MSG
NETLINK_XFRM_SOCKET__NAME_BIND = _selinux.NETLINK_XFRM_SOCKET__NAME_BIND
NETLINK_XFRM_SOCKET__NLMSG_READ = _selinux.NETLINK_XFRM_SOCKET__NLMSG_READ
NETLINK_XFRM_SOCKET__NLMSG_WRITE = _selinux.NETLINK_XFRM_SOCKET__NLMSG_WRITE
NETLINK_SELINUX_SOCKET__IOCTL = _selinux.NETLINK_SELINUX_SOCKET__IOCTL
NETLINK_SELINUX_SOCKET__READ = _selinux.NETLINK_SELINUX_SOCKET__READ
NETLINK_SELINUX_SOCKET__WRITE = _selinux.NETLINK_SELINUX_SOCKET__WRITE
NETLINK_SELINUX_SOCKET__CREATE = _selinux.NETLINK_SELINUX_SOCKET__CREATE
NETLINK_SELINUX_SOCKET__GETATTR = _selinux.NETLINK_SELINUX_SOCKET__GETATTR
NETLINK_SELINUX_SOCKET__SETATTR = _selinux.NETLINK_SELINUX_SOCKET__SETATTR
NETLINK_SELINUX_SOCKET__LOCK = _selinux.NETLINK_SELINUX_SOCKET__LOCK
NETLINK_SELINUX_SOCKET__RELABELFROM = _selinux.NETLINK_SELINUX_SOCKET__RELABELFROM
NETLINK_SELINUX_SOCKET__RELABELTO = _selinux.NETLINK_SELINUX_SOCKET__RELABELTO
NETLINK_SELINUX_SOCKET__APPEND = _selinux.NETLINK_SELINUX_SOCKET__APPEND
NETLINK_SELINUX_SOCKET__BIND = _selinux.NETLINK_SELINUX_SOCKET__BIND
NETLINK_SELINUX_SOCKET__CONNECT = _selinux.NETLINK_SELINUX_SOCKET__CONNECT
NETLINK_SELINUX_SOCKET__LISTEN = _selinux.NETLINK_SELINUX_SOCKET__LISTEN
NETLINK_SELINUX_SOCKET__ACCEPT = _selinux.NETLINK_SELINUX_SOCKET__ACCEPT
NETLINK_SELINUX_SOCKET__GETOPT = _selinux.NETLINK_SELINUX_SOCKET__GETOPT
NETLINK_SELINUX_SOCKET__SETOPT = _selinux.NETLINK_SELINUX_SOCKET__SETOPT
NETLINK_SELINUX_SOCKET__SHUTDOWN = _selinux.NETLINK_SELINUX_SOCKET__SHUTDOWN
NETLINK_SELINUX_SOCKET__RECVFROM = _selinux.NETLINK_SELINUX_SOCKET__RECVFROM
NETLINK_SELINUX_SOCKET__SENDTO = _selinux.NETLINK_SELINUX_SOCKET__SENDTO
NETLINK_SELINUX_SOCKET__RECV_MSG = _selinux.NETLINK_SELINUX_SOCKET__RECV_MSG
NETLINK_SELINUX_SOCKET__SEND_MSG = _selinux.NETLINK_SELINUX_SOCKET__SEND_MSG
NETLINK_SELINUX_SOCKET__NAME_BIND = _selinux.NETLINK_SELINUX_SOCKET__NAME_BIND
NETLINK_AUDIT_SOCKET__IOCTL = _selinux.NETLINK_AUDIT_SOCKET__IOCTL
NETLINK_AUDIT_SOCKET__READ = _selinux.NETLINK_AUDIT_SOCKET__READ
NETLINK_AUDIT_SOCKET__WRITE = _selinux.NETLINK_AUDIT_SOCKET__WRITE
NETLINK_AUDIT_SOCKET__CREATE = _selinux.NETLINK_AUDIT_SOCKET__CREATE
NETLINK_AUDIT_SOCKET__GETATTR = _selinux.NETLINK_AUDIT_SOCKET__GETATTR
NETLINK_AUDIT_SOCKET__SETATTR = _selinux.NETLINK_AUDIT_SOCKET__SETATTR
NETLINK_AUDIT_SOCKET__LOCK = _selinux.NETLINK_AUDIT_SOCKET__LOCK
NETLINK_AUDIT_SOCKET__RELABELFROM = _selinux.NETLINK_AUDIT_SOCKET__RELABELFROM
NETLINK_AUDIT_SOCKET__RELABELTO = _selinux.NETLINK_AUDIT_SOCKET__RELABELTO
NETLINK_AUDIT_SOCKET__APPEND = _selinux.NETLINK_AUDIT_SOCKET__APPEND
NETLINK_AUDIT_SOCKET__BIND = _selinux.NETLINK_AUDIT_SOCKET__BIND
NETLINK_AUDIT_SOCKET__CONNECT = _selinux.NETLINK_AUDIT_SOCKET__CONNECT
NETLINK_AUDIT_SOCKET__LISTEN = _selinux.NETLINK_AUDIT_SOCKET__LISTEN
NETLINK_AUDIT_SOCKET__ACCEPT = _selinux.NETLINK_AUDIT_SOCKET__ACCEPT
NETLINK_AUDIT_SOCKET__GETOPT = _selinux.NETLINK_AUDIT_SOCKET__GETOPT
NETLINK_AUDIT_SOCKET__SETOPT = _selinux.NETLINK_AUDIT_SOCKET__SETOPT
NETLINK_AUDIT_SOCKET__SHUTDOWN = _selinux.NETLINK_AUDIT_SOCKET__SHUTDOWN
NETLINK_AUDIT_SOCKET__RECVFROM = _selinux.NETLINK_AUDIT_SOCKET__RECVFROM
NETLINK_AUDIT_SOCKET__SENDTO = _selinux.NETLINK_AUDIT_SOCKET__SENDTO
NETLINK_AUDIT_SOCKET__RECV_MSG = _selinux.NETLINK_AUDIT_SOCKET__RECV_MSG
NETLINK_AUDIT_SOCKET__SEND_MSG = _selinux.NETLINK_AUDIT_SOCKET__SEND_MSG
NETLINK_AUDIT_SOCKET__NAME_BIND = _selinux.NETLINK_AUDIT_SOCKET__NAME_BIND
NETLINK_AUDIT_SOCKET__NLMSG_READ = _selinux.NETLINK_AUDIT_SOCKET__NLMSG_READ
NETLINK_AUDIT_SOCKET__NLMSG_WRITE = _selinux.NETLINK_AUDIT_SOCKET__NLMSG_WRITE
NETLINK_AUDIT_SOCKET__NLMSG_RELAY = _selinux.NETLINK_AUDIT_SOCKET__NLMSG_RELAY
NETLINK_AUDIT_SOCKET__NLMSG_READPRIV = _selinux.NETLINK_AUDIT_SOCKET__NLMSG_READPRIV
NETLINK_AUDIT_SOCKET__NLMSG_TTY_AUDIT = _selinux.NETLINK_AUDIT_SOCKET__NLMSG_TTY_AUDIT
NETLINK_IP6FW_SOCKET__IOCTL = _selinux.NETLINK_IP6FW_SOCKET__IOCTL
NETLINK_IP6FW_SOCKET__READ = _selinux.NETLINK_IP6FW_SOCKET__READ
NETLINK_IP6FW_SOCKET__WRITE = _selinux.NETLINK_IP6FW_SOCKET__WRITE
NETLINK_IP6FW_SOCKET__CREATE = _selinux.NETLINK_IP6FW_SOCKET__CREATE
NETLINK_IP6FW_SOCKET__GETATTR = _selinux.NETLINK_IP6FW_SOCKET__GETATTR
NETLINK_IP6FW_SOCKET__SETATTR = _selinux.NETLINK_IP6FW_SOCKET__SETATTR
NETLINK_IP6FW_SOCKET__LOCK = _selinux.NETLINK_IP6FW_SOCKET__LOCK
NETLINK_IP6FW_SOCKET__RELABELFROM = _selinux.NETLINK_IP6FW_SOCKET__RELABELFROM
NETLINK_IP6FW_SOCKET__RELABELTO = _selinux.NETLINK_IP6FW_SOCKET__RELABELTO
NETLINK_IP6FW_SOCKET__APPEND = _selinux.NETLINK_IP6FW_SOCKET__APPEND
NETLINK_IP6FW_SOCKET__BIND = _selinux.NETLINK_IP6FW_SOCKET__BIND
NETLINK_IP6FW_SOCKET__CONNECT = _selinux.NETLINK_IP6FW_SOCKET__CONNECT
NETLINK_IP6FW_SOCKET__LISTEN = _selinux.NETLINK_IP6FW_SOCKET__LISTEN
NETLINK_IP6FW_SOCKET__ACCEPT = _selinux.NETLINK_IP6FW_SOCKET__ACCEPT
NETLINK_IP6FW_SOCKET__GETOPT = _selinux.NETLINK_IP6FW_SOCKET__GETOPT
NETLINK_IP6FW_SOCKET__SETOPT = _selinux.NETLINK_IP6FW_SOCKET__SETOPT
NETLINK_IP6FW_SOCKET__SHUTDOWN = _selinux.NETLINK_IP6FW_SOCKET__SHUTDOWN
NETLINK_IP6FW_SOCKET__RECVFROM = _selinux.NETLINK_IP6FW_SOCKET__RECVFROM
NETLINK_IP6FW_SOCKET__SENDTO = _selinux.NETLINK_IP6FW_SOCKET__SENDTO
NETLINK_IP6FW_SOCKET__RECV_MSG = _selinux.NETLINK_IP6FW_SOCKET__RECV_MSG
NETLINK_IP6FW_SOCKET__SEND_MSG = _selinux.NETLINK_IP6FW_SOCKET__SEND_MSG
NETLINK_IP6FW_SOCKET__NAME_BIND = _selinux.NETLINK_IP6FW_SOCKET__NAME_BIND
NETLINK_IP6FW_SOCKET__NLMSG_READ = _selinux.NETLINK_IP6FW_SOCKET__NLMSG_READ
NETLINK_IP6FW_SOCKET__NLMSG_WRITE = _selinux.NETLINK_IP6FW_SOCKET__NLMSG_WRITE
NETLINK_DNRT_SOCKET__IOCTL = _selinux.NETLINK_DNRT_SOCKET__IOCTL
NETLINK_DNRT_SOCKET__READ = _selinux.NETLINK_DNRT_SOCKET__READ
NETLINK_DNRT_SOCKET__WRITE = _selinux.NETLINK_DNRT_SOCKET__WRITE
NETLINK_DNRT_SOCKET__CREATE = _selinux.NETLINK_DNRT_SOCKET__CREATE
NETLINK_DNRT_SOCKET__GETATTR = _selinux.NETLINK_DNRT_SOCKET__GETATTR
NETLINK_DNRT_SOCKET__SETATTR = _selinux.NETLINK_DNRT_SOCKET__SETATTR
NETLINK_DNRT_SOCKET__LOCK = _selinux.NETLINK_DNRT_SOCKET__LOCK
NETLINK_DNRT_SOCKET__RELABELFROM = _selinux.NETLINK_DNRT_SOCKET__RELABELFROM
NETLINK_DNRT_SOCKET__RELABELTO = _selinux.NETLINK_DNRT_SOCKET__RELABELTO
NETLINK_DNRT_SOCKET__APPEND = _selinux.NETLINK_DNRT_SOCKET__APPEND
NETLINK_DNRT_SOCKET__BIND = _selinux.NETLINK_DNRT_SOCKET__BIND
NETLINK_DNRT_SOCKET__CONNECT = _selinux.NETLINK_DNRT_SOCKET__CONNECT
NETLINK_DNRT_SOCKET__LISTEN = _selinux.NETLINK_DNRT_SOCKET__LISTEN
NETLINK_DNRT_SOCKET__ACCEPT = _selinux.NETLINK_DNRT_SOCKET__ACCEPT
NETLINK_DNRT_SOCKET__GETOPT = _selinux.NETLINK_DNRT_SOCKET__GETOPT
NETLINK_DNRT_SOCKET__SETOPT = _selinux.NETLINK_DNRT_SOCKET__SETOPT
NETLINK_DNRT_SOCKET__SHUTDOWN = _selinux.NETLINK_DNRT_SOCKET__SHUTDOWN
NETLINK_DNRT_SOCKET__RECVFROM = _selinux.NETLINK_DNRT_SOCKET__RECVFROM
NETLINK_DNRT_SOCKET__SENDTO = _selinux.NETLINK_DNRT_SOCKET__SENDTO
NETLINK_DNRT_SOCKET__RECV_MSG = _selinux.NETLINK_DNRT_SOCKET__RECV_MSG
NETLINK_DNRT_SOCKET__SEND_MSG = _selinux.NETLINK_DNRT_SOCKET__SEND_MSG
NETLINK_DNRT_SOCKET__NAME_BIND = _selinux.NETLINK_DNRT_SOCKET__NAME_BIND
DBUS__ACQUIRE_SVC = _selinux.DBUS__ACQUIRE_SVC
DBUS__SEND_MSG = _selinux.DBUS__SEND_MSG
NSCD__GETPWD = _selinux.NSCD__GETPWD
NSCD__GETGRP = _selinux.NSCD__GETGRP
NSCD__GETHOST = _selinux.NSCD__GETHOST
NSCD__GETSTAT = _selinux.NSCD__GETSTAT
NSCD__ADMIN = _selinux.NSCD__ADMIN
NSCD__SHMEMPWD = _selinux.NSCD__SHMEMPWD
NSCD__SHMEMGRP = _selinux.NSCD__SHMEMGRP
NSCD__SHMEMHOST = _selinux.NSCD__SHMEMHOST
NSCD__GETSERV = _selinux.NSCD__GETSERV
NSCD__SHMEMSERV = _selinux.NSCD__SHMEMSERV
ASSOCIATION__SENDTO = _selinux.ASSOCIATION__SENDTO
ASSOCIATION__RECVFROM = _selinux.ASSOCIATION__RECVFROM
ASSOCIATION__SETCONTEXT = _selinux.ASSOCIATION__SETCONTEXT
ASSOCIATION__POLMATCH = _selinux.ASSOCIATION__POLMATCH
NETLINK_KOBJECT_UEVENT_SOCKET__IOCTL = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__IOCTL
NETLINK_KOBJECT_UEVENT_SOCKET__READ = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__READ
NETLINK_KOBJECT_UEVENT_SOCKET__WRITE = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__WRITE
NETLINK_KOBJECT_UEVENT_SOCKET__CREATE = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__CREATE
NETLINK_KOBJECT_UEVENT_SOCKET__GETATTR = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__GETATTR
NETLINK_KOBJECT_UEVENT_SOCKET__SETATTR = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__SETATTR
NETLINK_KOBJECT_UEVENT_SOCKET__LOCK = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__LOCK
NETLINK_KOBJECT_UEVENT_SOCKET__RELABELFROM = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__RELABELFROM
NETLINK_KOBJECT_UEVENT_SOCKET__RELABELTO = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__RELABELTO
NETLINK_KOBJECT_UEVENT_SOCKET__APPEND = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__APPEND
NETLINK_KOBJECT_UEVENT_SOCKET__BIND = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__BIND
NETLINK_KOBJECT_UEVENT_SOCKET__CONNECT = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__CONNECT
NETLINK_KOBJECT_UEVENT_SOCKET__LISTEN = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__LISTEN
NETLINK_KOBJECT_UEVENT_SOCKET__ACCEPT = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__ACCEPT
NETLINK_KOBJECT_UEVENT_SOCKET__GETOPT = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__GETOPT
NETLINK_KOBJECT_UEVENT_SOCKET__SETOPT = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__SETOPT
NETLINK_KOBJECT_UEVENT_SOCKET__SHUTDOWN = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__SHUTDOWN
NETLINK_KOBJECT_UEVENT_SOCKET__RECVFROM = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__RECVFROM
NETLINK_KOBJECT_UEVENT_SOCKET__SENDTO = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__SENDTO
NETLINK_KOBJECT_UEVENT_SOCKET__RECV_MSG = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__RECV_MSG
NETLINK_KOBJECT_UEVENT_SOCKET__SEND_MSG = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__SEND_MSG
NETLINK_KOBJECT_UEVENT_SOCKET__NAME_BIND = _selinux.NETLINK_KOBJECT_UEVENT_SOCKET__NAME_BIND
APPLETALK_SOCKET__IOCTL = _selinux.APPLETALK_SOCKET__IOCTL
APPLETALK_SOCKET__READ = _selinux.APPLETALK_SOCKET__READ
APPLETALK_SOCKET__WRITE = _selinux.APPLETALK_SOCKET__WRITE
APPLETALK_SOCKET__CREATE = _selinux.APPLETALK_SOCKET__CREATE
APPLETALK_SOCKET__GETATTR = _selinux.APPLETALK_SOCKET__GETATTR
APPLETALK_SOCKET__SETATTR = _selinux.APPLETALK_SOCKET__SETATTR
APPLETALK_SOCKET__LOCK = _selinux.APPLETALK_SOCKET__LOCK
APPLETALK_SOCKET__RELABELFROM = _selinux.APPLETALK_SOCKET__RELABELFROM
APPLETALK_SOCKET__RELABELTO = _selinux.APPLETALK_SOCKET__RELABELTO
APPLETALK_SOCKET__APPEND = _selinux.APPLETALK_SOCKET__APPEND
APPLETALK_SOCKET__BIND = _selinux.APPLETALK_SOCKET__BIND
APPLETALK_SOCKET__CONNECT = _selinux.APPLETALK_SOCKET__CONNECT
APPLETALK_SOCKET__LISTEN = _selinux.APPLETALK_SOCKET__LISTEN
APPLETALK_SOCKET__ACCEPT = _selinux.APPLETALK_SOCKET__ACCEPT
APPLETALK_SOCKET__GETOPT = _selinux.APPLETALK_SOCKET__GETOPT
APPLETALK_SOCKET__SETOPT = _selinux.APPLETALK_SOCKET__SETOPT
APPLETALK_SOCKET__SHUTDOWN = _selinux.APPLETALK_SOCKET__SHUTDOWN
APPLETALK_SOCKET__RECVFROM = _selinux.APPLETALK_SOCKET__RECVFROM
APPLETALK_SOCKET__SENDTO = _selinux.APPLETALK_SOCKET__SENDTO
APPLETALK_SOCKET__RECV_MSG = _selinux.APPLETALK_SOCKET__RECV_MSG
APPLETALK_SOCKET__SEND_MSG = _selinux.APPLETALK_SOCKET__SEND_MSG
APPLETALK_SOCKET__NAME_BIND = _selinux.APPLETALK_SOCKET__NAME_BIND
PACKET__SEND = _selinux.PACKET__SEND
PACKET__RECV = _selinux.PACKET__RECV
PACKET__RELABELTO = _selinux.PACKET__RELABELTO
PACKET__FLOW_IN = _selinux.PACKET__FLOW_IN
PACKET__FLOW_OUT = _selinux.PACKET__FLOW_OUT
PACKET__FORWARD_IN = _selinux.PACKET__FORWARD_IN
PACKET__FORWARD_OUT = _selinux.PACKET__FORWARD_OUT
KEY__VIEW = _selinux.KEY__VIEW
KEY__READ = _selinux.KEY__READ
KEY__WRITE = _selinux.KEY__WRITE
KEY__SEARCH = _selinux.KEY__SEARCH
KEY__LINK = _selinux.KEY__LINK
KEY__SETATTR = _selinux.KEY__SETATTR
KEY__CREATE = _selinux.KEY__CREATE
CONTEXT__TRANSLATE = _selinux.CONTEXT__TRANSLATE
CONTEXT__CONTAINS = _selinux.CONTEXT__CONTAINS
DCCP_SOCKET__IOCTL = _selinux.DCCP_SOCKET__IOCTL
DCCP_SOCKET__READ = _selinux.DCCP_SOCKET__READ
DCCP_SOCKET__WRITE = _selinux.DCCP_SOCKET__WRITE
DCCP_SOCKET__CREATE = _selinux.DCCP_SOCKET__CREATE
DCCP_SOCKET__GETATTR = _selinux.DCCP_SOCKET__GETATTR
DCCP_SOCKET__SETATTR = _selinux.DCCP_SOCKET__SETATTR
DCCP_SOCKET__LOCK = _selinux.DCCP_SOCKET__LOCK
DCCP_SOCKET__RELABELFROM = _selinux.DCCP_SOCKET__RELABELFROM
DCCP_SOCKET__RELABELTO = _selinux.DCCP_SOCKET__RELABELTO
DCCP_SOCKET__APPEND = _selinux.DCCP_SOCKET__APPEND
DCCP_SOCKET__BIND = _selinux.DCCP_SOCKET__BIND
DCCP_SOCKET__CONNECT = _selinux.DCCP_SOCKET__CONNECT
DCCP_SOCKET__LISTEN = _selinux.DCCP_SOCKET__LISTEN
DCCP_SOCKET__ACCEPT = _selinux.DCCP_SOCKET__ACCEPT
DCCP_SOCKET__GETOPT = _selinux.DCCP_SOCKET__GETOPT
DCCP_SOCKET__SETOPT = _selinux.DCCP_SOCKET__SETOPT
DCCP_SOCKET__SHUTDOWN = _selinux.DCCP_SOCKET__SHUTDOWN
DCCP_SOCKET__RECVFROM = _selinux.DCCP_SOCKET__RECVFROM
DCCP_SOCKET__SENDTO = _selinux.DCCP_SOCKET__SENDTO
DCCP_SOCKET__RECV_MSG = _selinux.DCCP_SOCKET__RECV_MSG
DCCP_SOCKET__SEND_MSG = _selinux.DCCP_SOCKET__SEND_MSG
DCCP_SOCKET__NAME_BIND = _selinux.DCCP_SOCKET__NAME_BIND
DCCP_SOCKET__NODE_BIND = _selinux.DCCP_SOCKET__NODE_BIND
DCCP_SOCKET__NAME_CONNECT = _selinux.DCCP_SOCKET__NAME_CONNECT
MEMPROTECT__MMAP_ZERO = _selinux.MEMPROTECT__MMAP_ZERO
DB_DATABASE__CREATE = _selinux.DB_DATABASE__CREATE
DB_DATABASE__DROP = _selinux.DB_DATABASE__DROP
DB_DATABASE__GETATTR = _selinux.DB_DATABASE__GETATTR
DB_DATABASE__SETATTR = _selinux.DB_DATABASE__SETATTR
DB_DATABASE__RELABELFROM = _selinux.DB_DATABASE__RELABELFROM
DB_DATABASE__RELABELTO = _selinux.DB_DATABASE__RELABELTO
DB_DATABASE__ACCESS = _selinux.DB_DATABASE__ACCESS
DB_DATABASE__INSTALL_MODULE = _selinux.DB_DATABASE__INSTALL_MODULE
DB_DATABASE__LOAD_MODULE = _selinux.DB_DATABASE__LOAD_MODULE
DB_DATABASE__GET_PARAM = _selinux.DB_DATABASE__GET_PARAM
DB_DATABASE__SET_PARAM = _selinux.DB_DATABASE__SET_PARAM
DB_TABLE__CREATE = _selinux.DB_TABLE__CREATE
DB_TABLE__DROP = _selinux.DB_TABLE__DROP
DB_TABLE__GETATTR = _selinux.DB_TABLE__GETATTR
DB_TABLE__SETATTR = _selinux.DB_TABLE__SETATTR
DB_TABLE__RELABELFROM = _selinux.DB_TABLE__RELABELFROM
DB_TABLE__RELABELTO = _selinux.DB_TABLE__RELABELTO
DB_TABLE__USE = _selinux.DB_TABLE__USE
DB_TABLE__SELECT = _selinux.DB_TABLE__SELECT
DB_TABLE__UPDATE = _selinux.DB_TABLE__UPDATE
DB_TABLE__INSERT = _selinux.DB_TABLE__INSERT
DB_TABLE__DELETE = _selinux.DB_TABLE__DELETE
DB_TABLE__LOCK = _selinux.DB_TABLE__LOCK
DB_PROCEDURE__CREATE = _selinux.DB_PROCEDURE__CREATE
DB_PROCEDURE__DROP = _selinux.DB_PROCEDURE__DROP
DB_PROCEDURE__GETATTR = _selinux.DB_PROCEDURE__GETATTR
DB_PROCEDURE__SETATTR = _selinux.DB_PROCEDURE__SETATTR
DB_PROCEDURE__RELABELFROM = _selinux.DB_PROCEDURE__RELABELFROM
DB_PROCEDURE__RELABELTO = _selinux.DB_PROCEDURE__RELABELTO
DB_PROCEDURE__EXECUTE = _selinux.DB_PROCEDURE__EXECUTE
DB_PROCEDURE__ENTRYPOINT = _selinux.DB_PROCEDURE__ENTRYPOINT
DB_COLUMN__CREATE = _selinux.DB_COLUMN__CREATE
DB_COLUMN__DROP = _selinux.DB_COLUMN__DROP
DB_COLUMN__GETATTR = _selinux.DB_COLUMN__GETATTR
DB_COLUMN__SETATTR = _selinux.DB_COLUMN__SETATTR
DB_COLUMN__RELABELFROM = _selinux.DB_COLUMN__RELABELFROM
DB_COLUMN__RELABELTO = _selinux.DB_COLUMN__RELABELTO
DB_COLUMN__USE = _selinux.DB_COLUMN__USE
DB_COLUMN__SELECT = _selinux.DB_COLUMN__SELECT
DB_COLUMN__UPDATE = _selinux.DB_COLUMN__UPDATE
DB_COLUMN__INSERT = _selinux.DB_COLUMN__INSERT
DB_TUPLE__RELABELFROM = _selinux.DB_TUPLE__RELABELFROM
DB_TUPLE__RELABELTO = _selinux.DB_TUPLE__RELABELTO
DB_TUPLE__USE = _selinux.DB_TUPLE__USE
DB_TUPLE__SELECT = _selinux.DB_TUPLE__SELECT
DB_TUPLE__UPDATE = _selinux.DB_TUPLE__UPDATE
DB_TUPLE__INSERT = _selinux.DB_TUPLE__INSERT
DB_TUPLE__DELETE = _selinux.DB_TUPLE__DELETE
DB_BLOB__CREATE = _selinux.DB_BLOB__CREATE
DB_BLOB__DROP = _selinux.DB_BLOB__DROP
DB_BLOB__GETATTR = _selinux.DB_BLOB__GETATTR
DB_BLOB__SETATTR = _selinux.DB_BLOB__SETATTR
DB_BLOB__RELABELFROM = _selinux.DB_BLOB__RELABELFROM
DB_BLOB__RELABELTO = _selinux.DB_BLOB__RELABELTO
DB_BLOB__READ = _selinux.DB_BLOB__READ
DB_BLOB__WRITE = _selinux.DB_BLOB__WRITE
DB_BLOB__IMPORT = _selinux.DB_BLOB__IMPORT
DB_BLOB__EXPORT = _selinux.DB_BLOB__EXPORT
PEER__RECV = _selinux.PEER__RECV
X_APPLICATION_DATA__PASTE = _selinux.X_APPLICATION_DATA__PASTE
X_APPLICATION_DATA__PASTE_AFTER_CONFIRM = _selinux.X_APPLICATION_DATA__PASTE_AFTER_CONFIRM
X_APPLICATION_DATA__COPY = _selinux.X_APPLICATION_DATA__COPY
class context_s_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, context_s_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, context_s_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["ptr"] = _selinux.context_s_t_ptr_set
    __swig_getmethods__["ptr"] = _selinux.context_s_t_ptr_get
    if _newclass:ptr = _swig_property(_selinux.context_s_t_ptr_get, _selinux.context_s_t_ptr_set)
    def __init__(self): 
        this = _selinux.new_context_s_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_context_s_t
    __del__ = lambda self : None;
context_s_t_swigregister = _selinux.context_s_t_swigregister
context_s_t_swigregister(context_s_t)


def context_new(*args):
  return _selinux.context_new(*args)
context_new = _selinux.context_new

def context_str(*args):
  return _selinux.context_str(*args)
context_str = _selinux.context_str

def context_free(*args):
  return _selinux.context_free(*args)
context_free = _selinux.context_free

def context_type_get(*args):
  return _selinux.context_type_get(*args)
context_type_get = _selinux.context_type_get

def context_range_get(*args):
  return _selinux.context_range_get(*args)
context_range_get = _selinux.context_range_get

def context_role_get(*args):
  return _selinux.context_role_get(*args)
context_role_get = _selinux.context_role_get

def context_user_get(*args):
  return _selinux.context_user_get(*args)
context_user_get = _selinux.context_user_get

def context_type_set(*args):
  return _selinux.context_type_set(*args)
context_type_set = _selinux.context_type_set

def context_range_set(*args):
  return _selinux.context_range_set(*args)
context_range_set = _selinux.context_range_set

def context_role_set(*args):
  return _selinux.context_role_set(*args)
context_role_set = _selinux.context_role_set

def context_user_set(*args):
  return _selinux.context_user_set(*args)
context_user_set = _selinux.context_user_set
SECCLASS_SECURITY = _selinux.SECCLASS_SECURITY
SECCLASS_PROCESS = _selinux.SECCLASS_PROCESS
SECCLASS_SYSTEM = _selinux.SECCLASS_SYSTEM
SECCLASS_CAPABILITY = _selinux.SECCLASS_CAPABILITY
SECCLASS_FILESYSTEM = _selinux.SECCLASS_FILESYSTEM
SECCLASS_FILE = _selinux.SECCLASS_FILE
SECCLASS_DIR = _selinux.SECCLASS_DIR
SECCLASS_FD = _selinux.SECCLASS_FD
SECCLASS_LNK_FILE = _selinux.SECCLASS_LNK_FILE
SECCLASS_CHR_FILE = _selinux.SECCLASS_CHR_FILE
SECCLASS_BLK_FILE = _selinux.SECCLASS_BLK_FILE
SECCLASS_SOCK_FILE = _selinux.SECCLASS_SOCK_FILE
SECCLASS_FIFO_FILE = _selinux.SECCLASS_FIFO_FILE
SECCLASS_SOCKET = _selinux.SECCLASS_SOCKET
SECCLASS_TCP_SOCKET = _selinux.SECCLASS_TCP_SOCKET
SECCLASS_UDP_SOCKET = _selinux.SECCLASS_UDP_SOCKET
SECCLASS_RAWIP_SOCKET = _selinux.SECCLASS_RAWIP_SOCKET
SECCLASS_NODE = _selinux.SECCLASS_NODE
SECCLASS_NETIF = _selinux.SECCLASS_NETIF
SECCLASS_NETLINK_SOCKET = _selinux.SECCLASS_NETLINK_SOCKET
SECCLASS_PACKET_SOCKET = _selinux.SECCLASS_PACKET_SOCKET
SECCLASS_KEY_SOCKET = _selinux.SECCLASS_KEY_SOCKET
SECCLASS_UNIX_STREAM_SOCKET = _selinux.SECCLASS_UNIX_STREAM_SOCKET
SECCLASS_UNIX_DGRAM_SOCKET = _selinux.SECCLASS_UNIX_DGRAM_SOCKET
SECCLASS_SEM = _selinux.SECCLASS_SEM
SECCLASS_MSG = _selinux.SECCLASS_MSG
SECCLASS_MSGQ = _selinux.SECCLASS_MSGQ
SECCLASS_SHM = _selinux.SECCLASS_SHM
SECCLASS_IPC = _selinux.SECCLASS_IPC
SECCLASS_PASSWD = _selinux.SECCLASS_PASSWD
SECCLASS_X_DRAWABLE = _selinux.SECCLASS_X_DRAWABLE
SECCLASS_X_SCREEN = _selinux.SECCLASS_X_SCREEN
SECCLASS_X_GC = _selinux.SECCLASS_X_GC
SECCLASS_X_FONT = _selinux.SECCLASS_X_FONT
SECCLASS_X_COLORMAP = _selinux.SECCLASS_X_COLORMAP
SECCLASS_X_PROPERTY = _selinux.SECCLASS_X_PROPERTY
SECCLASS_X_SELECTION = _selinux.SECCLASS_X_SELECTION
SECCLASS_X_CURSOR = _selinux.SECCLASS_X_CURSOR
SECCLASS_X_CLIENT = _selinux.SECCLASS_X_CLIENT
SECCLASS_X_DEVICE = _selinux.SECCLASS_X_DEVICE
SECCLASS_X_SERVER = _selinux.SECCLASS_X_SERVER
SECCLASS_X_EXTENSION = _selinux.SECCLASS_X_EXTENSION
SECCLASS_NETLINK_ROUTE_SOCKET = _selinux.SECCLASS_NETLINK_ROUTE_SOCKET
SECCLASS_NETLINK_FIREWALL_SOCKET = _selinux.SECCLASS_NETLINK_FIREWALL_SOCKET
SECCLASS_NETLINK_TCPDIAG_SOCKET = _selinux.SECCLASS_NETLINK_TCPDIAG_SOCKET
SECCLASS_NETLINK_NFLOG_SOCKET = _selinux.SECCLASS_NETLINK_NFLOG_SOCKET
SECCLASS_NETLINK_XFRM_SOCKET = _selinux.SECCLASS_NETLINK_XFRM_SOCKET
SECCLASS_NETLINK_SELINUX_SOCKET = _selinux.SECCLASS_NETLINK_SELINUX_SOCKET
SECCLASS_NETLINK_AUDIT_SOCKET = _selinux.SECCLASS_NETLINK_AUDIT_SOCKET
SECCLASS_NETLINK_IP6FW_SOCKET = _selinux.SECCLASS_NETLINK_IP6FW_SOCKET
SECCLASS_NETLINK_DNRT_SOCKET = _selinux.SECCLASS_NETLINK_DNRT_SOCKET
SECCLASS_DBUS = _selinux.SECCLASS_DBUS
SECCLASS_NSCD = _selinux.SECCLASS_NSCD
SECCLASS_ASSOCIATION = _selinux.SECCLASS_ASSOCIATION
SECCLASS_NETLINK_KOBJECT_UEVENT_SOCKET = _selinux.SECCLASS_NETLINK_KOBJECT_UEVENT_SOCKET
SECCLASS_APPLETALK_SOCKET = _selinux.SECCLASS_APPLETALK_SOCKET
SECCLASS_PACKET = _selinux.SECCLASS_PACKET
SECCLASS_KEY = _selinux.SECCLASS_KEY
SECCLASS_CONTEXT = _selinux.SECCLASS_CONTEXT
SECCLASS_DCCP_SOCKET = _selinux.SECCLASS_DCCP_SOCKET
SECCLASS_MEMPROTECT = _selinux.SECCLASS_MEMPROTECT
SECCLASS_DB_DATABASE = _selinux.SECCLASS_DB_DATABASE
SECCLASS_DB_TABLE = _selinux.SECCLASS_DB_TABLE
SECCLASS_DB_PROCEDURE = _selinux.SECCLASS_DB_PROCEDURE
SECCLASS_DB_COLUMN = _selinux.SECCLASS_DB_COLUMN
SECCLASS_DB_TUPLE = _selinux.SECCLASS_DB_TUPLE
SECCLASS_DB_BLOB = _selinux.SECCLASS_DB_BLOB
SECCLASS_PEER = _selinux.SECCLASS_PEER
SECCLASS_CAPABILITY2 = _selinux.SECCLASS_CAPABILITY2
SECCLASS_X_RESOURCE = _selinux.SECCLASS_X_RESOURCE
SECCLASS_X_EVENT = _selinux.SECCLASS_X_EVENT
SECCLASS_X_SYNTHETIC_EVENT = _selinux.SECCLASS_X_SYNTHETIC_EVENT
SECCLASS_X_APPLICATION_DATA = _selinux.SECCLASS_X_APPLICATION_DATA
SECINITSID_KERNEL = _selinux.SECINITSID_KERNEL
SECINITSID_SECURITY = _selinux.SECINITSID_SECURITY
SECINITSID_UNLABELED = _selinux.SECINITSID_UNLABELED
SECINITSID_FS = _selinux.SECINITSID_FS
SECINITSID_FILE = _selinux.SECINITSID_FILE
SECINITSID_FILE_LABELS = _selinux.SECINITSID_FILE_LABELS
SECINITSID_INIT = _selinux.SECINITSID_INIT
SECINITSID_ANY_SOCKET = _selinux.SECINITSID_ANY_SOCKET
SECINITSID_PORT = _selinux.SECINITSID_PORT
SECINITSID_NETIF = _selinux.SECINITSID_NETIF
SECINITSID_NETMSG = _selinux.SECINITSID_NETMSG
SECINITSID_NODE = _selinux.SECINITSID_NODE
SECINITSID_IGMP_PACKET = _selinux.SECINITSID_IGMP_PACKET
SECINITSID_ICMP_SOCKET = _selinux.SECINITSID_ICMP_SOCKET
SECINITSID_TCP_SOCKET = _selinux.SECINITSID_TCP_SOCKET
SECINITSID_SYSCTL_MODPROBE = _selinux.SECINITSID_SYSCTL_MODPROBE
SECINITSID_SYSCTL = _selinux.SECINITSID_SYSCTL
SECINITSID_SYSCTL_FS = _selinux.SECINITSID_SYSCTL_FS
SECINITSID_SYSCTL_KERNEL = _selinux.SECINITSID_SYSCTL_KERNEL
SECINITSID_SYSCTL_NET = _selinux.SECINITSID_SYSCTL_NET
SECINITSID_SYSCTL_NET_UNIX = _selinux.SECINITSID_SYSCTL_NET_UNIX
SECINITSID_SYSCTL_VM = _selinux.SECINITSID_SYSCTL_VM
SECINITSID_SYSCTL_DEV = _selinux.SECINITSID_SYSCTL_DEV
SECINITSID_KMOD = _selinux.SECINITSID_KMOD
SECINITSID_POLICY = _selinux.SECINITSID_POLICY
SECINITSID_SCMP_PACKET = _selinux.SECINITSID_SCMP_PACKET
SECINITSID_DEVNULL = _selinux.SECINITSID_DEVNULL
SECINITSID_NUM = _selinux.SECINITSID_NUM
SELINUX_DEFAULTUSER = _selinux.SELINUX_DEFAULTUSER

def get_ordered_context_list(*args):
  return _selinux.get_ordered_context_list(*args)
get_ordered_context_list = _selinux.get_ordered_context_list

def get_ordered_context_list_with_level(*args):
  return _selinux.get_ordered_context_list_with_level(*args)
get_ordered_context_list_with_level = _selinux.get_ordered_context_list_with_level

def get_default_context(*args):
  return _selinux.get_default_context(*args)
get_default_context = _selinux.get_default_context

def get_default_context_with_level(*args):
  return _selinux.get_default_context_with_level(*args)
get_default_context_with_level = _selinux.get_default_context_with_level

def get_default_context_with_role(*args):
  return _selinux.get_default_context_with_role(*args)
get_default_context_with_role = _selinux.get_default_context_with_role

def get_default_context_with_rolelevel(*args):
  return _selinux.get_default_context_with_rolelevel(*args)
get_default_context_with_rolelevel = _selinux.get_default_context_with_rolelevel

def query_user_context():
  return _selinux.query_user_context()
query_user_context = _selinux.query_user_context

def manual_user_enter_context(*args):
  return _selinux.manual_user_enter_context(*args)
manual_user_enter_context = _selinux.manual_user_enter_context

def selinux_default_type_path():
  return _selinux.selinux_default_type_path()
selinux_default_type_path = _selinux.selinux_default_type_path

def get_default_type(*args):
  return _selinux.get_default_type(*args)
get_default_type = _selinux.get_default_type
SELABEL_CTX_FILE = _selinux.SELABEL_CTX_FILE
SELABEL_CTX_MEDIA = _selinux.SELABEL_CTX_MEDIA
SELABEL_CTX_X = _selinux.SELABEL_CTX_X
SELABEL_CTX_DB = _selinux.SELABEL_CTX_DB
SELABEL_CTX_ANDROID_PROP = _selinux.SELABEL_CTX_ANDROID_PROP
SELABEL_OPT_UNUSED = _selinux.SELABEL_OPT_UNUSED
SELABEL_OPT_VALIDATE = _selinux.SELABEL_OPT_VALIDATE
SELABEL_OPT_BASEONLY = _selinux.SELABEL_OPT_BASEONLY
SELABEL_OPT_PATH = _selinux.SELABEL_OPT_PATH
SELABEL_OPT_SUBSET = _selinux.SELABEL_OPT_SUBSET
SELABEL_NOPT = _selinux.SELABEL_NOPT

def selabel_open(*args):
  return _selinux.selabel_open(*args)
selabel_open = _selinux.selabel_open

def selabel_close(*args):
  return _selinux.selabel_close(*args)
selabel_close = _selinux.selabel_close

def selabel_lookup(*args):
  return _selinux.selabel_lookup(*args)
selabel_lookup = _selinux.selabel_lookup

def selabel_lookup_raw(*args):
  return _selinux.selabel_lookup_raw(*args)
selabel_lookup_raw = _selinux.selabel_lookup_raw

def selabel_partial_match(*args):
  return _selinux.selabel_partial_match(*args)
selabel_partial_match = _selinux.selabel_partial_match

def selabel_lookup_best_match(*args):
  return _selinux.selabel_lookup_best_match(*args)
selabel_lookup_best_match = _selinux.selabel_lookup_best_match

def selabel_lookup_best_match_raw(*args):
  return _selinux.selabel_lookup_best_match_raw(*args)
selabel_lookup_best_match_raw = _selinux.selabel_lookup_best_match_raw

def selabel_stats(*args):
  return _selinux.selabel_stats(*args)
selabel_stats = _selinux.selabel_stats
SELABEL_X_PROP = _selinux.SELABEL_X_PROP
SELABEL_X_EXT = _selinux.SELABEL_X_EXT
SELABEL_X_CLIENT = _selinux.SELABEL_X_CLIENT
SELABEL_X_EVENT = _selinux.SELABEL_X_EVENT
SELABEL_X_SELN = _selinux.SELABEL_X_SELN
SELABEL_X_POLYPROP = _selinux.SELABEL_X_POLYPROP
SELABEL_X_POLYSELN = _selinux.SELABEL_X_POLYSELN
SELABEL_DB_DATABASE = _selinux.SELABEL_DB_DATABASE
SELABEL_DB_SCHEMA = _selinux.SELABEL_DB_SCHEMA
SELABEL_DB_TABLE = _selinux.SELABEL_DB_TABLE
SELABEL_DB_COLUMN = _selinux.SELABEL_DB_COLUMN
SELABEL_DB_SEQUENCE = _selinux.SELABEL_DB_SEQUENCE
SELABEL_DB_VIEW = _selinux.SELABEL_DB_VIEW
SELABEL_DB_PROCEDURE = _selinux.SELABEL_DB_PROCEDURE
SELABEL_DB_BLOB = _selinux.SELABEL_DB_BLOB
SELABEL_DB_TUPLE = _selinux.SELABEL_DB_TUPLE
SELABEL_DB_LANGUAGE = _selinux.SELABEL_DB_LANGUAGE
SELABEL_DB_EXCEPTION = _selinux.SELABEL_DB_EXCEPTION
SELABEL_DB_DATATYPE = _selinux.SELABEL_DB_DATATYPE

def is_selinux_enabled():
  return _selinux.is_selinux_enabled()
is_selinux_enabled = _selinux.is_selinux_enabled

def is_selinux_mls_enabled():
  return _selinux.is_selinux_mls_enabled()
is_selinux_mls_enabled = _selinux.is_selinux_mls_enabled

def getcon():
  return _selinux.getcon()
getcon = _selinux.getcon

def getcon_raw():
  return _selinux.getcon_raw()
getcon_raw = _selinux.getcon_raw

def setcon(*args):
  return _selinux.setcon(*args)
setcon = _selinux.setcon

def setcon_raw(*args):
  return _selinux.setcon_raw(*args)
setcon_raw = _selinux.setcon_raw

def getpidcon(*args):
  return _selinux.getpidcon(*args)
getpidcon = _selinux.getpidcon

def getpidcon_raw(*args):
  return _selinux.getpidcon_raw(*args)
getpidcon_raw = _selinux.getpidcon_raw

def getprevcon():
  return _selinux.getprevcon()
getprevcon = _selinux.getprevcon

def getprevcon_raw():
  return _selinux.getprevcon_raw()
getprevcon_raw = _selinux.getprevcon_raw

def getexeccon():
  return _selinux.getexeccon()
getexeccon = _selinux.getexeccon

def getexeccon_raw():
  return _selinux.getexeccon_raw()
getexeccon_raw = _selinux.getexeccon_raw

def setexeccon(*args):
  return _selinux.setexeccon(*args)
setexeccon = _selinux.setexeccon

def setexeccon_raw(*args):
  return _selinux.setexeccon_raw(*args)
setexeccon_raw = _selinux.setexeccon_raw

def getfscreatecon():
  return _selinux.getfscreatecon()
getfscreatecon = _selinux.getfscreatecon

def getfscreatecon_raw():
  return _selinux.getfscreatecon_raw()
getfscreatecon_raw = _selinux.getfscreatecon_raw

def setfscreatecon(*args):
  return _selinux.setfscreatecon(*args)
setfscreatecon = _selinux.setfscreatecon

def setfscreatecon_raw(*args):
  return _selinux.setfscreatecon_raw(*args)
setfscreatecon_raw = _selinux.setfscreatecon_raw

def getkeycreatecon():
  return _selinux.getkeycreatecon()
getkeycreatecon = _selinux.getkeycreatecon

def getkeycreatecon_raw():
  return _selinux.getkeycreatecon_raw()
getkeycreatecon_raw = _selinux.getkeycreatecon_raw

def setkeycreatecon(*args):
  return _selinux.setkeycreatecon(*args)
setkeycreatecon = _selinux.setkeycreatecon

def setkeycreatecon_raw(*args):
  return _selinux.setkeycreatecon_raw(*args)
setkeycreatecon_raw = _selinux.setkeycreatecon_raw

def getsockcreatecon():
  return _selinux.getsockcreatecon()
getsockcreatecon = _selinux.getsockcreatecon

def getsockcreatecon_raw():
  return _selinux.getsockcreatecon_raw()
getsockcreatecon_raw = _selinux.getsockcreatecon_raw

def setsockcreatecon(*args):
  return _selinux.setsockcreatecon(*args)
setsockcreatecon = _selinux.setsockcreatecon

def setsockcreatecon_raw(*args):
  return _selinux.setsockcreatecon_raw(*args)
setsockcreatecon_raw = _selinux.setsockcreatecon_raw

def getfilecon(*args):
  return _selinux.getfilecon(*args)
getfilecon = _selinux.getfilecon

def getfilecon_raw(*args):
  return _selinux.getfilecon_raw(*args)
getfilecon_raw = _selinux.getfilecon_raw

def lgetfilecon(*args):
  return _selinux.lgetfilecon(*args)
lgetfilecon = _selinux.lgetfilecon

def lgetfilecon_raw(*args):
  return _selinux.lgetfilecon_raw(*args)
lgetfilecon_raw = _selinux.lgetfilecon_raw

def fgetfilecon(*args):
  return _selinux.fgetfilecon(*args)
fgetfilecon = _selinux.fgetfilecon

def fgetfilecon_raw(*args):
  return _selinux.fgetfilecon_raw(*args)
fgetfilecon_raw = _selinux.fgetfilecon_raw

def setfilecon(*args):
  return _selinux.setfilecon(*args)
setfilecon = _selinux.setfilecon

def setfilecon_raw(*args):
  return _selinux.setfilecon_raw(*args)
setfilecon_raw = _selinux.setfilecon_raw

def lsetfilecon(*args):
  return _selinux.lsetfilecon(*args)
lsetfilecon = _selinux.lsetfilecon

def lsetfilecon_raw(*args):
  return _selinux.lsetfilecon_raw(*args)
lsetfilecon_raw = _selinux.lsetfilecon_raw

def fsetfilecon(*args):
  return _selinux.fsetfilecon(*args)
fsetfilecon = _selinux.fsetfilecon

def fsetfilecon_raw(*args):
  return _selinux.fsetfilecon_raw(*args)
fsetfilecon_raw = _selinux.fsetfilecon_raw

def getpeercon(*args):
  return _selinux.getpeercon(*args)
getpeercon = _selinux.getpeercon

def getpeercon_raw(*args):
  return _selinux.getpeercon_raw(*args)
getpeercon_raw = _selinux.getpeercon_raw
class av_decision(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, av_decision, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, av_decision, name)
    __repr__ = _swig_repr
    __swig_setmethods__["allowed"] = _selinux.av_decision_allowed_set
    __swig_getmethods__["allowed"] = _selinux.av_decision_allowed_get
    if _newclass:allowed = _swig_property(_selinux.av_decision_allowed_get, _selinux.av_decision_allowed_set)
    __swig_setmethods__["decided"] = _selinux.av_decision_decided_set
    __swig_getmethods__["decided"] = _selinux.av_decision_decided_get
    if _newclass:decided = _swig_property(_selinux.av_decision_decided_get, _selinux.av_decision_decided_set)
    __swig_setmethods__["auditallow"] = _selinux.av_decision_auditallow_set
    __swig_getmethods__["auditallow"] = _selinux.av_decision_auditallow_get
    if _newclass:auditallow = _swig_property(_selinux.av_decision_auditallow_get, _selinux.av_decision_auditallow_set)
    __swig_setmethods__["auditdeny"] = _selinux.av_decision_auditdeny_set
    __swig_getmethods__["auditdeny"] = _selinux.av_decision_auditdeny_get
    if _newclass:auditdeny = _swig_property(_selinux.av_decision_auditdeny_get, _selinux.av_decision_auditdeny_set)
    __swig_setmethods__["seqno"] = _selinux.av_decision_seqno_set
    __swig_getmethods__["seqno"] = _selinux.av_decision_seqno_get
    if _newclass:seqno = _swig_property(_selinux.av_decision_seqno_get, _selinux.av_decision_seqno_set)
    __swig_setmethods__["flags"] = _selinux.av_decision_flags_set
    __swig_getmethods__["flags"] = _selinux.av_decision_flags_get
    if _newclass:flags = _swig_property(_selinux.av_decision_flags_get, _selinux.av_decision_flags_set)
    def __init__(self): 
        this = _selinux.new_av_decision()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_av_decision
    __del__ = lambda self : None;
av_decision_swigregister = _selinux.av_decision_swigregister
av_decision_swigregister(av_decision)

SELINUX_AVD_FLAGS_PERMISSIVE = _selinux.SELINUX_AVD_FLAGS_PERMISSIVE
class selinux_opt(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, selinux_opt, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, selinux_opt, name)
    __repr__ = _swig_repr
    __swig_setmethods__["type"] = _selinux.selinux_opt_type_set
    __swig_getmethods__["type"] = _selinux.selinux_opt_type_get
    if _newclass:type = _swig_property(_selinux.selinux_opt_type_get, _selinux.selinux_opt_type_set)
    __swig_setmethods__["value"] = _selinux.selinux_opt_value_set
    __swig_getmethods__["value"] = _selinux.selinux_opt_value_get
    if _newclass:value = _swig_property(_selinux.selinux_opt_value_get, _selinux.selinux_opt_value_set)
    def __init__(self): 
        this = _selinux.new_selinux_opt()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_selinux_opt
    __del__ = lambda self : None;
selinux_opt_swigregister = _selinux.selinux_opt_swigregister
selinux_opt_swigregister(selinux_opt)

class selinux_callback(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, selinux_callback, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, selinux_callback, name)
    __repr__ = _swig_repr
    __swig_setmethods__["func_log"] = _selinux.selinux_callback_func_log_set
    __swig_getmethods__["func_log"] = _selinux.selinux_callback_func_log_get
    if _newclass:func_log = _swig_property(_selinux.selinux_callback_func_log_get, _selinux.selinux_callback_func_log_set)
    __swig_setmethods__["func_audit"] = _selinux.selinux_callback_func_audit_set
    __swig_getmethods__["func_audit"] = _selinux.selinux_callback_func_audit_get
    if _newclass:func_audit = _swig_property(_selinux.selinux_callback_func_audit_get, _selinux.selinux_callback_func_audit_set)
    __swig_setmethods__["func_validate"] = _selinux.selinux_callback_func_validate_set
    __swig_getmethods__["func_validate"] = _selinux.selinux_callback_func_validate_get
    if _newclass:func_validate = _swig_property(_selinux.selinux_callback_func_validate_get, _selinux.selinux_callback_func_validate_set)
    __swig_setmethods__["func_setenforce"] = _selinux.selinux_callback_func_setenforce_set
    __swig_getmethods__["func_setenforce"] = _selinux.selinux_callback_func_setenforce_get
    if _newclass:func_setenforce = _swig_property(_selinux.selinux_callback_func_setenforce_get, _selinux.selinux_callback_func_setenforce_set)
    __swig_setmethods__["func_policyload"] = _selinux.selinux_callback_func_policyload_set
    __swig_getmethods__["func_policyload"] = _selinux.selinux_callback_func_policyload_get
    if _newclass:func_policyload = _swig_property(_selinux.selinux_callback_func_policyload_get, _selinux.selinux_callback_func_policyload_set)
    def __init__(self): 
        this = _selinux.new_selinux_callback()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_selinux_callback
    __del__ = lambda self : None;
selinux_callback_swigregister = _selinux.selinux_callback_swigregister
selinux_callback_swigregister(selinux_callback)

SELINUX_CB_LOG = _selinux.SELINUX_CB_LOG
SELINUX_CB_AUDIT = _selinux.SELINUX_CB_AUDIT
SELINUX_CB_VALIDATE = _selinux.SELINUX_CB_VALIDATE
SELINUX_CB_SETENFORCE = _selinux.SELINUX_CB_SETENFORCE
SELINUX_CB_POLICYLOAD = _selinux.SELINUX_CB_POLICYLOAD

def selinux_get_callback(*args):
  return _selinux.selinux_get_callback(*args)
selinux_get_callback = _selinux.selinux_get_callback

def selinux_set_callback(*args):
  return _selinux.selinux_set_callback(*args)
selinux_set_callback = _selinux.selinux_set_callback
SELINUX_ERROR = _selinux.SELINUX_ERROR
SELINUX_WARNING = _selinux.SELINUX_WARNING
SELINUX_INFO = _selinux.SELINUX_INFO
SELINUX_AVC = _selinux.SELINUX_AVC
SELINUX_TRANS_DIR = _selinux.SELINUX_TRANS_DIR

def security_compute_av(*args):
  return _selinux.security_compute_av(*args)
security_compute_av = _selinux.security_compute_av

def security_compute_av_raw(*args):
  return _selinux.security_compute_av_raw(*args)
security_compute_av_raw = _selinux.security_compute_av_raw

def security_compute_av_flags(*args):
  return _selinux.security_compute_av_flags(*args)
security_compute_av_flags = _selinux.security_compute_av_flags

def security_compute_av_flags_raw(*args):
  return _selinux.security_compute_av_flags_raw(*args)
security_compute_av_flags_raw = _selinux.security_compute_av_flags_raw

def security_compute_create(*args):
  return _selinux.security_compute_create(*args)
security_compute_create = _selinux.security_compute_create

def security_compute_create_raw(*args):
  return _selinux.security_compute_create_raw(*args)
security_compute_create_raw = _selinux.security_compute_create_raw

def security_compute_create_name(*args):
  return _selinux.security_compute_create_name(*args)
security_compute_create_name = _selinux.security_compute_create_name

def security_compute_create_name_raw(*args):
  return _selinux.security_compute_create_name_raw(*args)
security_compute_create_name_raw = _selinux.security_compute_create_name_raw

def security_compute_relabel(*args):
  return _selinux.security_compute_relabel(*args)
security_compute_relabel = _selinux.security_compute_relabel

def security_compute_relabel_raw(*args):
  return _selinux.security_compute_relabel_raw(*args)
security_compute_relabel_raw = _selinux.security_compute_relabel_raw

def security_compute_member(*args):
  return _selinux.security_compute_member(*args)
security_compute_member = _selinux.security_compute_member

def security_compute_member_raw(*args):
  return _selinux.security_compute_member_raw(*args)
security_compute_member_raw = _selinux.security_compute_member_raw

def security_compute_user(*args):
  return _selinux.security_compute_user(*args)
security_compute_user = _selinux.security_compute_user

def security_compute_user_raw(*args):
  return _selinux.security_compute_user_raw(*args)
security_compute_user_raw = _selinux.security_compute_user_raw

def security_load_policy(*args):
  return _selinux.security_load_policy(*args)
security_load_policy = _selinux.security_load_policy

def security_get_initial_context(*args):
  return _selinux.security_get_initial_context(*args)
security_get_initial_context = _selinux.security_get_initial_context

def security_get_initial_context_raw(*args):
  return _selinux.security_get_initial_context_raw(*args)
security_get_initial_context_raw = _selinux.security_get_initial_context_raw

def selinux_mkload_policy(*args):
  return _selinux.selinux_mkload_policy(*args)
selinux_mkload_policy = _selinux.selinux_mkload_policy

def selinux_init_load_policy():
  return _selinux.selinux_init_load_policy()
selinux_init_load_policy = _selinux.selinux_init_load_policy
class SELboolean(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SELboolean, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SELboolean, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _selinux.SELboolean_name_set
    __swig_getmethods__["name"] = _selinux.SELboolean_name_get
    if _newclass:name = _swig_property(_selinux.SELboolean_name_get, _selinux.SELboolean_name_set)
    __swig_setmethods__["value"] = _selinux.SELboolean_value_set
    __swig_getmethods__["value"] = _selinux.SELboolean_value_get
    if _newclass:value = _swig_property(_selinux.SELboolean_value_get, _selinux.SELboolean_value_set)
    def __init__(self): 
        this = _selinux.new_SELboolean()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_SELboolean
    __del__ = lambda self : None;
SELboolean_swigregister = _selinux.SELboolean_swigregister
SELboolean_swigregister(SELboolean)


def security_set_boolean_list(*args):
  return _selinux.security_set_boolean_list(*args)
security_set_boolean_list = _selinux.security_set_boolean_list

def security_load_booleans(*args):
  return _selinux.security_load_booleans(*args)
security_load_booleans = _selinux.security_load_booleans

def security_check_context(*args):
  return _selinux.security_check_context(*args)
security_check_context = _selinux.security_check_context

def security_check_context_raw(*args):
  return _selinux.security_check_context_raw(*args)
security_check_context_raw = _selinux.security_check_context_raw

def security_canonicalize_context(*args):
  return _selinux.security_canonicalize_context(*args)
security_canonicalize_context = _selinux.security_canonicalize_context

def security_canonicalize_context_raw(*args):
  return _selinux.security_canonicalize_context_raw(*args)
security_canonicalize_context_raw = _selinux.security_canonicalize_context_raw

def security_getenforce():
  return _selinux.security_getenforce()
security_getenforce = _selinux.security_getenforce

def security_setenforce(*args):
  return _selinux.security_setenforce(*args)
security_setenforce = _selinux.security_setenforce

def security_deny_unknown():
  return _selinux.security_deny_unknown()
security_deny_unknown = _selinux.security_deny_unknown

def security_disable():
  return _selinux.security_disable()
security_disable = _selinux.security_disable

def security_policyvers():
  return _selinux.security_policyvers()
security_policyvers = _selinux.security_policyvers

def security_get_boolean_names():
  return _selinux.security_get_boolean_names()
security_get_boolean_names = _selinux.security_get_boolean_names

def security_get_boolean_pending(*args):
  return _selinux.security_get_boolean_pending(*args)
security_get_boolean_pending = _selinux.security_get_boolean_pending

def security_get_boolean_active(*args):
  return _selinux.security_get_boolean_active(*args)
security_get_boolean_active = _selinux.security_get_boolean_active

def security_set_boolean(*args):
  return _selinux.security_set_boolean(*args)
security_set_boolean = _selinux.security_set_boolean

def security_commit_booleans():
  return _selinux.security_commit_booleans()
security_commit_booleans = _selinux.security_commit_booleans
class security_class_mapping(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, security_class_mapping, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, security_class_mapping, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _selinux.security_class_mapping_name_set
    __swig_getmethods__["name"] = _selinux.security_class_mapping_name_get
    if _newclass:name = _swig_property(_selinux.security_class_mapping_name_get, _selinux.security_class_mapping_name_set)
    __swig_setmethods__["perms"] = _selinux.security_class_mapping_perms_set
    __swig_getmethods__["perms"] = _selinux.security_class_mapping_perms_get
    if _newclass:perms = _swig_property(_selinux.security_class_mapping_perms_get, _selinux.security_class_mapping_perms_set)
    def __init__(self): 
        this = _selinux.new_security_class_mapping()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _selinux.delete_security_class_mapping
    __del__ = lambda self : None;
security_class_mapping_swigregister = _selinux.security_class_mapping_swigregister
security_class_mapping_swigregister(security_class_mapping)


def selinux_set_mapping(*args):
  return _selinux.selinux_set_mapping(*args)
selinux_set_mapping = _selinux.selinux_set_mapping

def mode_to_security_class(*args):
  return _selinux.mode_to_security_class(*args)
mode_to_security_class = _selinux.mode_to_security_class

def string_to_security_class(*args):
  return _selinux.string_to_security_class(*args)
string_to_security_class = _selinux.string_to_security_class

def security_class_to_string(*args):
  return _selinux.security_class_to_string(*args)
security_class_to_string = _selinux.security_class_to_string

def security_av_perm_to_string(*args):
  return _selinux.security_av_perm_to_string(*args)
security_av_perm_to_string = _selinux.security_av_perm_to_string

def string_to_av_perm(*args):
  return _selinux.string_to_av_perm(*args)
string_to_av_perm = _selinux.string_to_av_perm

def security_av_string(*args):
  return _selinux.security_av_string(*args)
security_av_string = _selinux.security_av_string

def print_access_vector(*args):
  return _selinux.print_access_vector(*args)
print_access_vector = _selinux.print_access_vector
MATCHPATHCON_BASEONLY = _selinux.MATCHPATHCON_BASEONLY
MATCHPATHCON_NOTRANS = _selinux.MATCHPATHCON_NOTRANS
MATCHPATHCON_VALIDATE = _selinux.MATCHPATHCON_VALIDATE

def set_matchpathcon_flags(*args):
  return _selinux.set_matchpathcon_flags(*args)
set_matchpathcon_flags = _selinux.set_matchpathcon_flags

def matchpathcon_init(*args):
  return _selinux.matchpathcon_init(*args)
matchpathcon_init = _selinux.matchpathcon_init

def matchpathcon_init_prefix(*args):
  return _selinux.matchpathcon_init_prefix(*args)
matchpathcon_init_prefix = _selinux.matchpathcon_init_prefix

def matchpathcon_fini():
  return _selinux.matchpathcon_fini()
matchpathcon_fini = _selinux.matchpathcon_fini

def realpath_not_final(*args):
  return _selinux.realpath_not_final(*args)
realpath_not_final = _selinux.realpath_not_final

def matchpathcon(*args):
  return _selinux.matchpathcon(*args)
matchpathcon = _selinux.matchpathcon

def matchpathcon_index(*args):
  return _selinux.matchpathcon_index(*args)
matchpathcon_index = _selinux.matchpathcon_index

def matchpathcon_filespec_add(*args):
  return _selinux.matchpathcon_filespec_add(*args)
matchpathcon_filespec_add = _selinux.matchpathcon_filespec_add

def matchpathcon_filespec_destroy():
  return _selinux.matchpathcon_filespec_destroy()
matchpathcon_filespec_destroy = _selinux.matchpathcon_filespec_destroy

def matchpathcon_filespec_eval():
  return _selinux.matchpathcon_filespec_eval()
matchpathcon_filespec_eval = _selinux.matchpathcon_filespec_eval

def matchpathcon_checkmatches(*args):
  return _selinux.matchpathcon_checkmatches(*args)
matchpathcon_checkmatches = _selinux.matchpathcon_checkmatches

def matchmediacon(*args):
  return _selinux.matchmediacon(*args)
matchmediacon = _selinux.matchmediacon

def selinux_getenforcemode():
  return _selinux.selinux_getenforcemode()
selinux_getenforcemode = _selinux.selinux_getenforcemode

def selinux_boolean_sub(*args):
  return _selinux.selinux_boolean_sub(*args)
selinux_boolean_sub = _selinux.selinux_boolean_sub

def selinux_getpolicytype():
  return _selinux.selinux_getpolicytype()
selinux_getpolicytype = _selinux.selinux_getpolicytype

def selinux_policy_root():
  return _selinux.selinux_policy_root()
selinux_policy_root = _selinux.selinux_policy_root

def selinux_set_policy_root(*args):
  return _selinux.selinux_set_policy_root(*args)
selinux_set_policy_root = _selinux.selinux_set_policy_root

def selinux_current_policy_path():
  return _selinux.selinux_current_policy_path()
selinux_current_policy_path = _selinux.selinux_current_policy_path

def selinux_binary_policy_path():
  return _selinux.selinux_binary_policy_path()
selinux_binary_policy_path = _selinux.selinux_binary_policy_path

def selinux_failsafe_context_path():
  return _selinux.selinux_failsafe_context_path()
selinux_failsafe_context_path = _selinux.selinux_failsafe_context_path

def selinux_removable_context_path():
  return _selinux.selinux_removable_context_path()
selinux_removable_context_path = _selinux.selinux_removable_context_path

def selinux_default_context_path():
  return _selinux.selinux_default_context_path()
selinux_default_context_path = _selinux.selinux_default_context_path

def selinux_user_contexts_path():
  return _selinux.selinux_user_contexts_path()
selinux_user_contexts_path = _selinux.selinux_user_contexts_path

def selinux_file_context_path():
  return _selinux.selinux_file_context_path()
selinux_file_context_path = _selinux.selinux_file_context_path

def selinux_file_context_homedir_path():
  return _selinux.selinux_file_context_homedir_path()
selinux_file_context_homedir_path = _selinux.selinux_file_context_homedir_path

def selinux_file_context_local_path():
  return _selinux.selinux_file_context_local_path()
selinux_file_context_local_path = _selinux.selinux_file_context_local_path

def selinux_file_context_subs_path():
  return _selinux.selinux_file_context_subs_path()
selinux_file_context_subs_path = _selinux.selinux_file_context_subs_path

def selinux_file_context_subs_dist_path():
  return _selinux.selinux_file_context_subs_dist_path()
selinux_file_context_subs_dist_path = _selinux.selinux_file_context_subs_dist_path

def selinux_homedir_context_path():
  return _selinux.selinux_homedir_context_path()
selinux_homedir_context_path = _selinux.selinux_homedir_context_path

def selinux_media_context_path():
  return _selinux.selinux_media_context_path()
selinux_media_context_path = _selinux.selinux_media_context_path

def selinux_virtual_domain_context_path():
  return _selinux.selinux_virtual_domain_context_path()
selinux_virtual_domain_context_path = _selinux.selinux_virtual_domain_context_path

def selinux_virtual_image_context_path():
  return _selinux.selinux_virtual_image_context_path()
selinux_virtual_image_context_path = _selinux.selinux_virtual_image_context_path

def selinux_lxc_contexts_path():
  return _selinux.selinux_lxc_contexts_path()
selinux_lxc_contexts_path = _selinux.selinux_lxc_contexts_path

def selinux_x_context_path():
  return _selinux.selinux_x_context_path()
selinux_x_context_path = _selinux.selinux_x_context_path

def selinux_sepgsql_context_path():
  return _selinux.selinux_sepgsql_context_path()
selinux_sepgsql_context_path = _selinux.selinux_sepgsql_context_path

def selinux_systemd_contexts_path():
  return _selinux.selinux_systemd_contexts_path()
selinux_systemd_contexts_path = _selinux.selinux_systemd_contexts_path

def selinux_contexts_path():
  return _selinux.selinux_contexts_path()
selinux_contexts_path = _selinux.selinux_contexts_path

def selinux_securetty_types_path():
  return _selinux.selinux_securetty_types_path()
selinux_securetty_types_path = _selinux.selinux_securetty_types_path

def selinux_booleans_subs_path():
  return _selinux.selinux_booleans_subs_path()
selinux_booleans_subs_path = _selinux.selinux_booleans_subs_path

def selinux_booleans_path():
  return _selinux.selinux_booleans_path()
selinux_booleans_path = _selinux.selinux_booleans_path

def selinux_customizable_types_path():
  return _selinux.selinux_customizable_types_path()
selinux_customizable_types_path = _selinux.selinux_customizable_types_path

def selinux_users_path():
  return _selinux.selinux_users_path()
selinux_users_path = _selinux.selinux_users_path

def selinux_usersconf_path():
  return _selinux.selinux_usersconf_path()
selinux_usersconf_path = _selinux.selinux_usersconf_path

def selinux_translations_path():
  return _selinux.selinux_translations_path()
selinux_translations_path = _selinux.selinux_translations_path

def selinux_colors_path():
  return _selinux.selinux_colors_path()
selinux_colors_path = _selinux.selinux_colors_path

def selinux_netfilter_context_path():
  return _selinux.selinux_netfilter_context_path()
selinux_netfilter_context_path = _selinux.selinux_netfilter_context_path

def selinux_path():
  return _selinux.selinux_path()
selinux_path = _selinux.selinux_path

def selinux_check_access(*args):
  return _selinux.selinux_check_access(*args)
selinux_check_access = _selinux.selinux_check_access

def selinux_check_passwd_access(*args):
  return _selinux.selinux_check_passwd_access(*args)
selinux_check_passwd_access = _selinux.selinux_check_passwd_access

def checkPasswdAccess(*args):
  return _selinux.checkPasswdAccess(*args)
checkPasswdAccess = _selinux.checkPasswdAccess

def selinux_check_securetty_context(*args):
  return _selinux.selinux_check_securetty_context(*args)
selinux_check_securetty_context = _selinux.selinux_check_securetty_context

def set_selinuxmnt(*args):
  return _selinux.set_selinuxmnt(*args)
set_selinuxmnt = _selinux.set_selinuxmnt

def selinuxfs_exists():
  return _selinux.selinuxfs_exists()
selinuxfs_exists = _selinux.selinuxfs_exists

def fini_selinuxmnt():
  return _selinux.fini_selinuxmnt()
fini_selinuxmnt = _selinux.fini_selinuxmnt

def setexecfilecon(*args):
  return _selinux.setexecfilecon(*args)
setexecfilecon = _selinux.setexecfilecon

def rpm_execcon(*args):
  return _selinux.rpm_execcon(*args)
rpm_execcon = _selinux.rpm_execcon

def is_context_customizable(*args):
  return _selinux.is_context_customizable(*args)
is_context_customizable = _selinux.is_context_customizable

def selinux_trans_to_raw_context(*args):
  return _selinux.selinux_trans_to_raw_context(*args)
selinux_trans_to_raw_context = _selinux.selinux_trans_to_raw_context

def selinux_raw_to_trans_context(*args):
  return _selinux.selinux_raw_to_trans_context(*args)
selinux_raw_to_trans_context = _selinux.selinux_raw_to_trans_context

def selinux_raw_context_to_color(*args):
  return _selinux.selinux_raw_context_to_color(*args)
selinux_raw_context_to_color = _selinux.selinux_raw_context_to_color

def getseuserbyname(*args):
  return _selinux.getseuserbyname(*args)
getseuserbyname = _selinux.getseuserbyname

def getseuser(*args):
  return _selinux.getseuser(*args)
getseuser = _selinux.getseuser

def selinux_file_context_cmp(*args):
  return _selinux.selinux_file_context_cmp(*args)
selinux_file_context_cmp = _selinux.selinux_file_context_cmp

def selinux_file_context_verify(*args):
  return _selinux.selinux_file_context_verify(*args)
selinux_file_context_verify = _selinux.selinux_file_context_verify

def selinux_lsetfilecon_default(*args):
  return _selinux.selinux_lsetfilecon_default(*args)
selinux_lsetfilecon_default = _selinux.selinux_lsetfilecon_default

def selinux_reset_config():
  return _selinux.selinux_reset_config()
selinux_reset_config = _selinux.selinux_reset_config
# This file is compatible with both classic and new-style classes.


