Prv8 Shell
Server : Apache
System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : matalashes ( 1004)
PHP Version : 8.1.29
Disable Function : NONE
Directory :  /proc/17567/root/usr/lib64/python2.7/site-packages/sepolicy/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/17567/root/usr/lib64/python2.7/site-packages/sepolicy/generate.pyc
�
4��]c@s�ddlZddlZddlZddlZddlZddlmZmZmZddlZddl	m
Z
ddl	mZddl	mZddl	m
Z
ddl	mZdd	l	mZdd
l	mZddl	mZddl	mZdd
l	mZddl	mZddl	mZddl	mZddl	mZddl	mZddljZddljZddlmZdZddl Z e j!ed�e j"e�ye j#ede$dd�WnMe%k
r�e j#edd�n*e&k
rddl'Z'e(e'j)d<nXd�Z*d�Z+d�Z,d�Z-dZ.dZ/dZ0d Z1d!Z2d"Z3dZ4dZ5dZ6d Z7d#Z8d$Z9d%Z:d&Z;d'Z<d(Z=d)Z>d*Z?d+Z@iZAeBd,�eAe4<eBd-�eAe5<eBd.�eAe6<eBd/�eAe7<eBd0�eAe8<eBd1�eAe9<eBd2�eAe:<eBd3�eAe;<eBd4�eAe<<eBd5�eAe=<eBd6�eAe><eBd7�eAe?<eBd8�eAe@<d9�ZCe4e5e6e9e7gZDe<e;e=e>e?gZEd:�ZFd;d=d<��YZGdS(>i����N(t
get_all_typestget_all_attributest
get_all_rolesi(t
executable(tboolean(tetc_rw(t	unit_file(t	var_cache(t	var_spool(tvar_lib(tvar_log(tvar_run(ttmp(trw(tnetwork(tscript(tspec(tuser(tutiltpolicycoreutilss/usr/share/localetunicodetcodesetsutf-8t_cCs�|d}|d}|d}tjrWtj|�}tj|�}tj|�}n|d|jd�d}|jd�d}|||gS(s6Given an RPM header return the package NVR as a stringtnametversiontreleaset-t.ii(RtPY3tdecode_inputtsplit(thdrRRRtrelease_versiont
os_version((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytget_rpm_nvr_from_headerHs


	cCsryUddl}d}|j�}|j|j|�}x|D]}t|�}Pq=WWnd|GHd}nX|S(Ni����s"Failed to retrieve rpm info for %s(trpmtNonettstdbMatchtRPMTAG_NAMER"(tpackageR#tnvrR%tmith((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytget_rpm_nvr_listXs
		
c	Cs�i}x}tjtj�D]i}|ddks|ddks|ddkrUqn|d|df||d|d|df<qW|S(	Nttypetreserved_port_ttport_tthi_reserved_port_ttrangetlowthightprotocol(tsepolicytinfotPORT(tdicttp((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
get_all_portshs1cCsQgtjtj�D]}|d^q}|jd�|jd�|j�|S(NRtsystem_utroot(R5R6tUSERtremovetsort(txtusers((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
get_all_usersss
)


iiis_admin$s_role$iiiiii	i
iisStandard Init DaemonsDBUS System DaemonsInternet Services DaemonsWeb Application/Script (CGI)tSandboxsUser ApplicationsExisting Domain Types Minimal Terminal Login User Roles!Minimal X Windows Login User RolesDesktop Login User RolesAdministrator Login User Roles Confined Root Administrator Roles!Module information for a new typecCsUttj��}|j�td�}x&|D]}|d|t|f7}q/W|S(Ns
Valid Types:
s%2s: %s
(tlisttpoltypetkeysR?R(RFtmsgtk((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytget_poltype_desc�s

cCsL|dkrgSd	}yg}x�|jd�D]�}|jd�}t|�dkr_t�nt|�dkr�t|d�}t|d�}n5t|d�}t|d�}||kr�t�nxIt||d�D]4}|dks�||krt�n|j|�q�Wq/W|SWn'tk
rGttd|���nXdS(
Ntiit,Riis8Ports must be numbers or ranges of numbers from 1 to %d i(Rtlent
ValueErrortintR1tappendR(tportstmax_portttemptatrtbegintendR9((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytverify_ports�s.			
tpolicycBseZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zdd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%d%�Z&d&�Z'd'�Z(d(�Z)d)�Z*d*�Z+d+�Z,d,�Z-d-�Z.d.�Z/d/�Z0d0�Z1d1�Z2d2�Z3d3�Z4d4�Z5d5�Z6d6�Z7d7�Z8d8�Z9d9�Z:d:�Z;d;�Z<d<�Z=d=�Z>d>�Z?d?�Z@d@�ZAdA�ZBdB�ZCdC�ZDdD�ZEdE�ZFdF�ZGdG�ZHdH�ZIdI�ZJdJ�ZKdK�ZLdL�ZMdM�ZNdN�ZOdO�ZPdP�ZQdQ�ZRdR�ZSdS�ZTdT�ZUdU�ZVdV�ZWdW�ZXdX�ZYdY�ZZdZ�Z[d[�Z\d\�Z]d]�Z^d^�Z_d_�Z`d`�Zada�Zbdb�Zcdc�Zddd�Zede�Zfdf�Zgdg�Zhdh�Zidi�Zjdj�Zkdk�Zldl�Zmdm�Zndn�Zodo�Zpdp�Zqdq�Zresjt�dr�ZuRS(scCsz	g|_g|_t�|_g|_|tkrHttd���n|skttd�t|��nyt�|_Wn5tk
r�}dGHnt	k
r�}d|fGHnXi|_
d|j
d<d|j
d<d|j
d<d	|j
d
<d	|j
d<d	|j
d<d|j
d
<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d<d|j
d <d!|j
d"<d#|j
d$<d%|j
d&<d'|j
d(<d)|j
d*<d+|j
d,<d-|j
d.<d/|j
d0<d1|j
d2<d3|j
d4<d5|j
d6<d7|j
d8<d9|j
d:<d;|j
d<<d=|j
d><d?|j
d@<dA|j
dB<dC|j
dD<dE|j
dF<dG|j
dH<dI|j
dJ<dK|j
dL<dM|j
dN<dO|j
dP<dQ|j
dR<dS|j
dT<dU|j
dV<dW|j
dX<dY|j
dZ<d[|j
d\<d]|j
d^<d_|j
d`<da|j
db<da|j
dc<da|j
dd<da|j
de<df|j
dg<df|j
dh<df|j
di<df|j
dj<df|j
dg<dk|j
dl<dm|j
dn<do|j
dp<dq|j
dr<ds|j
dt<du|j
dv<dw|j
dx<dy|j
dz<d{|j
d|<d}|j
d~<d|j
d�<d|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<d�|j
d�<i|_d�gtg|jd�<d�gt
g|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<d�gtg|jd�<i|_t
|jd�<t|jd�<t|jd�<t|jd�<t|jd�<t|jd�<t|jd�<t|jd�<d�d�d�d�d�d�d�d�d�d�d�g|_|j|jf|j|jf|j|jf|j|jf|j |j!f|j"|j#f|j$|j%f|j&|j'f|j(|j)f|j*|j'f|j+|j'f|j,|j-f|j.|j/ff
|_0t1j2d�|�s�ttd����n|t3kr�d�||_4n	||_4||_5g|_6g|_7||_8d�|_9d|_;t<t<t<gg|_=t<t<t<gg|_>t<t<t<gg|_?t<t<t<gg|_@t<|_At<|_Bt<|_Ct<|_Dt<|_Et<|_Ft<|_Gt<|_Ht<|_I|j8tJtKgk|_L|j8tJtKgk|_M|j8tJtKgk|_Nt<|_Ot<|_Pi|_Qi|_Ri|_Sg|_Tg|_Ut<|_Vt<|_Wg|_Xg|_Yg|_Zg|_[g|_\dS(�Ns"You must enter a valid policy types;You must enter a name for your policy module for your '%s'.s9Can not get port types, must be root for this informationsCan not get port typessset_use_kerberos(True)topenlogsset_use_kerb_rcache(True)sset_use_syslog(True)sset_use_resolve(True)t	gethostbytgetaddrinfotgetnameinfotkrbsset_manage_krb5_rcache(True)tgss_accept_sec_contexttkrb5_verify_init_credstkrb5_rd_reqt__syslog_chksset_use_uid(True)tgetpwnamtgetpwuidsset_use_dbus(True)tdbus_sset_use_pam(True)tpam_sset_use_audit(True)sadd_process('fork')tforksadd_process('transition')t
transitionsadd_process('sigchld')tsigchldsadd_process('sigkill')tsigkillsadd_process('sigstop')tsigstopsadd_process('signull')tsignullsadd_process('ptrace')tptracesadd_process('getsched')tgetschedsadd_process('setsched')tsetschedsadd_process('getsession')t
getsessionsadd_process('getpgid')tgetpgidsadd_process('setpgid')tsetpgidsadd_process('getcap')tgetcapsadd_process('setcap')tsetcapsadd_process('share')tsharesadd_process('getattr')tgetattrsadd_process('setexec')tsetexecsadd_process('setfscreate')tsetfscreatesadd_process('noatsecure')t
noatsecuresadd_process('siginh')tsiginhsadd_process('signal_perms')tkillsadd_process('setrlimit')t	setrlimitsadd_process('rlimitinh')t	rlimitinhsadd_process('dyntransition')t
dyntransitionsadd_process('setcurrent')t
setcurrentsadd_process('execmem')texecmemsadd_process('execstack')t	execstacksadd_process('execheap')texecheapsadd_process('setkeycreate')tsetkeycreatesadd_process('setsockcreate')t
setsockcreatesadd_capability('chown')tchownsadd_capability('dac_override')tdac_overrides!add_capability('dac_read_search')tdac_read_searchsadd_capability('fowner')tfownersadd_capability('fsetid')tfsetidsadd_capability('setgid')tsetgidtsetegidt	setresgidtsetregidsadd_capability('setuid')t	setresuidtsetuidtseteuidtsetreuidsadd_capability('setpcap')tsetpcaps!add_capability('linux_immutable')tlinux_immutables"add_capability('net_bind_service')tnet_bind_servicesadd_capability('net_broadcast')t
net_broadcastsadd_capability('net_admin')t	net_adminsadd_capability('net_raw')tnet_rawsadd_capability('ipc_lock')tipc_locksadd_capability('ipc_owner')t	ipc_ownersadd_capability('sys_module')t
sys_modulesadd_capability('sys_rawio')t	sys_rawiosadd_capability('sys_chroot')tchroott
sys_chrootsadd_capability('sys_ptrace')t
sys_ptracesadd_capability('sys_pacct')t	sys_pacctsadd_capability('sys_admin')tmounttunsharet	sys_adminsadd_capability('sys_boot')tsys_bootsadd_capability('sys_nice')tsys_nicesadd_capability('sys_resource')tsys_resourcesadd_capability('sys_time')tsys_times add_capability('sys_tty_config')tsys_tty_configsadd_capability('mknod')tmknodsadd_capability('lease')tleasesadd_capability('audit_write')taudit_writesadd_capability('audit_control')t
audit_controlsadd_capability('setfcap')tsetfcapRs/etcRs/tmpR
Rs/usr/lib/systemd/systems/lib/systemd/systems/etc/systemd/systemRs
/var/cacheR	s/var/libR
s/var/logRs/var/runRs
/var/spoolt_tmp_tt_unit_file_tt_var_cache_tt
_var_lib_tt
_var_log_tt
_var_run_tt_var_spool_tt_port_ts^[a-zA-Z0-9-_]+$sQName must be alpha numberic with no spaces. Consider using option "-n MODULENAME"shttpd_%s_scriptRJ(]trpmsRPRt	all_rolesttypesRERMRR:tRuntimeErrortsymbolstDEFAULT_DIRSRRR
RRR	R
RRtDEFAULT_EXTRtDEFAULT_KEYStgenerate_daemon_typestgenerate_daemon_rulestgenerate_dbusd_typestgenerate_dbusd_rulestgenerate_inetd_typestgenerate_inetd_rulestgenerate_cgi_typestgenerate_cgi_rulestgenerate_sandbox_typestgenerate_sandbox_rulestgenerate_userapp_typestgenerate_userapp_rulestgenerate_existing_user_typestgenerate_existing_user_rulestgenerate_min_login_user_typestgenerate_login_user_rulestgenerate_x_login_user_typestgenerate_x_login_user_rulestgenerate_login_user_typestgenerate_admin_user_typestgenerate_root_user_typestgenerate_root_user_rulestgenerate_new_typestgenerate_new_rulest
DEFAULT_TYPEStretmatchtCGIRt	file_nametcapabilitiest	processesR-t
initscriptR$tprogramtFalsetin_tcptin_udptout_tcptout_udptuse_resolvetuse_tmptuse_uidt
use_syslogtuse_kerberostmanage_krb5_rcachetuse_pamtuse_dbust	use_audittEUSERtNEWTYPEtuse_etctuse_localizationtuse_fdtuse_terminaltuse_mailtbooleanstfilestdirstfound_tcp_portstfound_udp_portst
need_tcp_typet
need_udp_typet
admin_domainstexisting_domainsttransition_domainsttransition_userstroles(tselfRR-te((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt__init__�sd				






















































































		







*																													cCs2|tp1|tp1|tp1t|t�dkS(Ni(tALLtRESERVEDt
UNRESERVEDRLtPORTS(R�tl((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
__isnetset�scCs
||_dS(N(R�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_admin_domains�scCs
||_dS(N(R�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_existing_domains�scCs
||_dS(N(R�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_admin_roles�scCs
||_dS(N(R�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_transition_domains�scCs
||_dS(N(R�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_transition_users�scCs|j|j�S(N(t_policy__isnetsetR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
use_in_udp�scCs|j|j�S(N(RR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytuse_out_udp�scCs|j�p|j�S(N(R
R(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytuse_udp�scCs|j|j�S(N(RR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
use_in_tcp�scCs|j|j�S(N(RR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytuse_out_tcp�scCs|j�p|j�S(N(RR(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytuse_tcp�scCs|j�p|j�S(N(RR(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytuse_network�sttcpcCsex^t|jj��D]G\}}}||kr||kr||kr|j|||fSqWdS(N(RDRPRFR$(R�tportR4RURVR9((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt	find_port�s%$cCs1|jtkr$ttd���n||_dS(Ns0User Role types can not be assigned executables.(R-tAPPLICATIONSRMRR�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_program�scCs1|jtkr$ttd���n||_dS(Ns)Only Daemon apps can use an init script..(R-tDAEMONRMRR�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_init_script�scCs|||t|�g|_dS(N(RWR�(R�talltreservedt
unreservedRP((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
set_in_tcp�scCs|||t|�g|_dS(N(RWR�(R�RRRRP((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
set_in_udp�scCs|ttt|�g|_dS(N(R�RWR�(R�RRP((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_out_tcp�scCs|ttt|�g|_dS(N(R�RWR�(R�RRP((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_out_udp�scCs:|tkr-|tkr-ttd���n||_dS(Ns$use_resolve must be a boolean value (tTrueR�RMRR�(R�tval((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_resolve�scCs:|tkr-|tkr-ttd���n||_dS(Ns#use_syslog must be a boolean value (R"R�RMRR�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_syslog�scCs:|tkr-|tkr-ttd���n||_dS(Ns%use_kerberos must be a boolean value (R"R�RMRR�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_kerberos�scCs:|tkr-|tkr-ttd���n||_dS(Ns+manage_krb5_rcache must be a boolean value (R"R�RMRR�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_manage_krb5_rcache�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_pam�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_dbus�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
set_use_audit�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_etc�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_localization�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
set_use_fd�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_terminal�scCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_mail�scCsZ|jtkr$ttd���n|rE|jddjd�ng|jdd<dS(Ns'USER Types automatically get a tmp types/tmpi(R-tUSERSRMRR�RO(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_tmps
cCs|tk|_dS(N(R"R�(R�R#((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytset_use_uid	scCs*|jr"tjd|jtj�SdSdS(NtTEMPLATETYPERJ(R�R�tsubRRtte_uid_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_uid_ruless	cCs*|jr"tjd|jtj�SdSdS(NR3RJ(R�R�R4RRtte_syslog_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_syslog_ruless	cCs*|jr"tjd|jtj�SdSdS(NR3RJ(R�R�R4RRtte_resolve_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_resolve_ruless	cCs*|jr"tjd|jtj�SdSdS(NR3RJ(R�R�R4RRtte_kerberos_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_kerberos_ruless	cCs*|jr"tjd|jtj�SdSdS(NR3RJ(R�R�R4RRtte_manage_krb5_rcache_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt!generate_manage_krb5_rcache_rules$s	cCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRtte_pam_rules(R�tnewte((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_pam_rules*s	cCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRtte_audit_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_audit_rules0s	cCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRtte_etc_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_etc_rules6s	cCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRtte_fd_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_fd_rules<s	cCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRtte_localization_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_localization_rulesBs	cCs@d}|jtkr<|jr<tjd|jtj�}n|S(NRJR3(R-tDBUSR�R�R4RRt
te_dbus_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_dbus_rulesHscCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRt
te_mail_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_mail_rulesNs	cCsad}d|||f}|tj�krAd||jf}nd||j|||f}|S(NRJscorenet_%s_%s_%ss	%s(%s_t)
sD
gen_require(`
    type %s_t;
')
allow %s_t %s_t:%s_socket name_%s;
(R5tget_methodsR(R�R4tactiont	port_nametlinetmethod((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_network_actionTscCs�x�|jtD]{}|jt|�d�}|dkrDt|_q|dd }|jdd|�}||jkr|jj	|�qqWx�|j
tD]{}|jt|�d�}|dkr�t|_q�|dd }|jdd|�}||jkr�|jj	|�q�q�Wx�|jtD]{}|jt|�d�}|dkr^t|_q(|dd }|jdd|�}||j
kr(|j
j	|�q(q(W|jtks�|jtkr�tjd|jtj�SdS(	NRii����tbindtconnecttudpR3RJ(R�RRRNR$R"R�RTR�ROR�R�R�R�R�R4RRtte_types(R�titrecRQRR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_network_typesbs6cCsoxI|jD]>}|j|�dkr
|j|dj|�|j|Sq
W|jddj|�|jdS(NiiR
(R�tfindRO(R�tfiletd((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt__find_path�scCs&||jkr"|jj|�ndS(N(R�RO(R�t
capability((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytadd_capability�scCs
||_dS(N(R�(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt	set_types�scCs&||jkr"|jj|�ndS(N(R�RO(R�tprocess((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytadd_process�scCs||j|<dS(N(R�(R�Rtdescription((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytadd_boolean�scCs|j|�|j|<dS(N(t_policy__find_pathR�(R�R]((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytadd_file�scCs|j|�|j|<dS(N(RgR�(R�R]((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytadd_dir�scCsNd}|jj�t|j�dkrJd|jdj|j�f}n|S(NRJis#allow %s_t self:capability { %s };
t (R�R?RLRtjoin(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_capabilities�s

"cCsNd}|jj�t|j�dkrJd|jdj|j�f}n|S(NRJis allow %s_t self:process { %s };
Rj(R�R?RLRRk(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_process�s

"cCs�d}|j�r�d}|tjd|jtj�7}|j�r]|d7}|tjd|jtj�7}|j�r�|tjd|jtj	�7}|j
r�t|jt
�dkr�|tjd|jtj�7}q�n|j
r"t|jt
�dkr"|tjd|jtj�7}n|jtrQ|tjd|jtj�7}n|jtr�|tjd|jtj�7}n|jtr�|tjd|jtj�7}n|jtr�|tjd|jtj�7}n|jtr
|tjd|jtj�7}n|jtr<|tjd|jtj�7}nx|jD]}||7}qFWn|j�r�|d7}|tjd|jtj�7}|jr�|tjd|jtj�7}n|j�r�|tjd|jtj �7}n|j!tr|tjd|jtj"�7}n|j!trI|tjd|jtj#�7}n|j!trx|tjd|jtj$�7}nx|j%D]}||7}q�Wq�n|S(NRJs
R3i(&RR�R4RRt
te_networkRtte_tcpRt	te_in_tcpR�RLR�Rtte_in_need_port_tcpR�tte_out_need_port_tcpRtte_in_all_ports_tcpRtte_in_reserved_ports_tcpRtte_in_unreserved_ports_tcptte_out_all_ports_tcptte_out_reserved_ports_tcptte_out_unreserved_ports_tcpR�Rtte_udpR�tte_in_need_port_udpR
t	te_in_udpR�tte_in_all_ports_udptte_in_reserved_ports_udptte_in_unreserved_ports_udpR�(R�R@RY((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_network_rules�sV
"%""
"
"
"
"
"
"
	""
"
"
"cCs�d}xE|jD]:}tjd|jtj�}|tjd||�7}qW|jtkr�xU|jD]G}tjd|jt	j
�}|tjd|jd�d|�7}qgWn|S(NRJR3tAPPLICATIONR=t_ui(R�R�R4RRtte_transition_rulesR-R=R�Rtte_run_rulesR(R�R@tappRtuRR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_transition_rules�s-cCs�d}|jtkr�x�|jD]�}|jd�d}|d}xi|jD]^}tjd|tj�}||j	kr�tj|d|�}n|tjd||�7}qLWqW|S|jt
kr�|tjd|jtj�7}xE|jD]:}tjd|jtj�}|tjd||�7}q�Wxq|j
D]c}|jd�d}|d|j	kr6tjd|jtj�}|tjd	||�7}q6q6Wn|S(
NRJt_tit_rR3tsystem_rR�R�R=(R-R�R�RR�R�R4Rtte_admin_domain_rulesR�tRUSERRtte_admin_rulesR�tte_admin_trans_rules(R�R@R^RtroleR�RR�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_admin_rules�s,
!#cCs1d}|jr-tjd|jtj�}n|S(NRJR3(R�R�R4RRt
if_dbus_rules(R�tnewif((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_dbus_ifs	cCs8d}|jtkr|Stjd|jtj�}|S(NRJR3(R-tSANDBOXR�R4RRtif_sandbox_rules(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_sandbox_ifs
cCsed}d}|jdkr\|tjd|jtj�7}|tjd|jtj�7}nx�|jD]z}t|j	|d�dkrf|tjd|j|j	|dj
�7}|tjd|j|j	|dj�7}qfqfW|dkratjd|jtj�}||7}|tjd|jtj
�7}||7}|tjd|jtj�7}|SdS(NRJR3iii(R�R�R4RRtif_initscript_admin_typestif_initscript_adminR�RLR�tif_admin_typestif_admin_rulestif_begin_admintif_middle_admintif_end_admin(R�R�tnewtypesR^tret((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_admin_if#s""*1

cCstjd|jtj�S(NR3(R�R4R�Rtte_cgi_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�9scCstjd|jtj�S(NR3(R�R4R�Rtte_sandbox_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�<scCstjd|jtj�S(NR3(R�R4RRtte_userapp_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�?scCstjd|jtj�S(NR3(R�R4RRtte_inetd_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�BscCstjd|jtj�S(NR3(R�R4RRtte_dbusd_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�EscCstjd|jtj�S(NR3(R�R4RRtte_min_login_user_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�HscCstjd|jtj�S(NR3(R�R4RRtte_login_user_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�KscCstjd|jtj�S(NR3(R�R4RRtte_admin_user_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�NscCs�t|j�dkr5ttd�t|j��ntjd|jt	j
�}|d7}xV|jD]K}|d|7}|jd�dd}||jkrd|d|7}qdqdW|d	7}|S(
Nis,'%s' policy modules require existing domainsR3s
gen_require(`s
        type %s;R�R�s
        role %s;s
')
(
RLR�RMRRER-R�R4RRtte_existing_user_typesRR�(R�R@R^R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�Qs 
cCstjd|jtj�S(NR3(R�R4RRtte_x_login_user_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�cscCstjd|jtj�S(NR3(R�R4RRtte_root_user_types(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�fscCsd}t|j�dkr0ttd���nx||jD]q}xh|jD]]}|j|�rJ||t|� fGH|tjd|t|� |j|j�7}PqJqJWq:Wt	r
|dkr
g}x|jD]}|j
|�q�Wttd�dj|���n|S(NRJisType field requiredR3s3You need to define a new type which ends with: 
 %ss
 (RLR�RMRR�tendswithR�R4RXR�RORk(R�R@ttRYtdefault_ext((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�is."cCsdS(NRJ((R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR�}scCsPtjd|jtj�}|jdkrL|tjd|jtj�7}n|S(NR3RJ(R�R4RRtte_daemon_typesR�tte_initscript_types(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��s"cCs*|jr"tjd|jtj�SdSdS(NR3RJ(R�R�R4RRRX(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_tmp_types�s	cCsVd}xI|jD]>}tjd|tj�}|tjd|j||�7}qW|S(NRJtBOOLEANtDESCRIPTION(R�R�R4Rt
te_boolean(R�R@tbR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_booleans�s
$cCs:d}x-|jD]"}|tjd|tj�7}qW|S(NRJR�(R�R�R4Rtte_rules(R�R@R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_boolean_rules�s cCstjd|jtj�S(NR3(R�R4RRR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_sandbox_te�scCstjd|jtj�S(NR3(R�R4RRR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_cgi_te�scCstjd|jtj�}|S(NR3(R�R4RRtte_daemon_rules(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCs�d}x{|jD]p}xg|jD]\}|j|�r |t|� d}|tjd|t|� |j|j�7}Pq q WqW|S(NRJR�R3(R�R�R�RLR�R4tif_rules(R�R�R�RYtreqtype((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_new_type_if�s.cCstjd|jtj�S(NR3(R�R4RRtte_login_user_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCstjd|jtj�}|S(NR3(R�R4RRtte_existing_user_rules(R�tnerules((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCstjd|jtj�S(NR3(R�R4RRtte_x_login_user_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCstjd|jtj�}|S(NR3(R�R4RRtte_root_user_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCstjd|jtj�S(NR3(R�R4RRtte_userapp_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCstjd|jtj�S(NR3(R�R4RRtte_inetd_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCstjd|jtj�S(NR3(R�R4RRtte_dbusd_rules(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCs*|jr"tjd|jtj�SdSdS(NR3RJ(R�R�R4RRR�(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_tmp_rules�s	cCs)d}|tjd|jtj�7}|S(NRJR3(R�R4RRtte_cgi_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCs)d}|tjd|jtj�7}|S(NRJR3(R�R4RRtte_sandbox_rules(R�R@((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyR��scCs}d}|js|jtkr<tjd|jtj�}n|jtt	t
tfkry|tjd|jtj�7}n|S(NRJR3(
R�R-R=R�R4RRtif_user_program_rulestTUSERtXUSERtAUSERtLUSERtif_role_change_rules(R�R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_user_if�s"c	Cs�d}|tjd|jtj�7}|jrP|tjd|jtj�7}n|jdkr�|tjd|jtj�7}nx�|j	D]�}t
|j|d�dkr�|tjd|j|j|dj�7}x{|j|dD]e}t
jj|�r�tjt
j|�tj�r�|tjd|j|j|dj�7}Pq�q�Wq�q�W||j�7}||j�7}||j�7}||j�7}||j�7}||j�7}|S(NRJR3iii(R�R4RRtif_heading_rulesR�tif_program_rulesR�tif_initscript_rulesR�RLR�R�tostpathtexistststattS_ISSOCKtST_MODEtif_stream_rulesR�R�R�R�R�R�(R�R�R^RY((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_if�s(	""*1*cCs|j|jd�S(Ni(R�R-(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_default_types�scCs-|j|jdr)|j|jd�SdS(NiRJ(R�R-(R�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_default_rules�scCs�d}|jttttfkr�d}t|j�dkr�|tjd|j	t
j�7}|tjd|j	t
j�7}xH|jD]:}tjd|j	t
j
�}|tjd||�7}q�Wq�n|S(NRJiR3tROLE(R-R�R�R�R�RLR�R�R4RRt
te_sudo_rulestte_newrole_rulestte_roles_rules(R�R@R�R�R((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_roles_rules�s#c
Cs�|j�}xy|jD]n}t|j|d�dkr|jtksT|dkr�|tjd|j|j|dj	�7}q�qqW|jt
kr�|d|j7}n||j�7}||j�7}||j
�7}||j�7}||j�7}||j�7}||j�7}x�|jD]�}t|j|d�dkr%|jt
kr�d}x�|jD]U}|tjd|d	 d
|j|dj�7}|tjd|jd|�7}qgWn*|tjd|j|j|dj�7}x�|j|dD]�}tjj|�r�tjtj|�tj�r�|jt
kr�xi|jD]1}|tjd|d	 |j|dj�7}qOWn*|tjd|j|j|dj�7}Pq�q�Wq%q%W||j�7}||j�7}||j�7}||j�7}||j�7}||j �7}||j!�7}||j"�7}||j#�7}||j$�7}||j%�7}||j&�7}||j'�7}||j(�7}||j)�7}||j*�7}||j+�7}|S(
NiiR
R3is@
########################################
#
# %s local policy
#
RJtTEMPLATETYPE_ti����R�tTEMPLATETYPE_rw_tt_rw_t(,R�R�RLR�R-R�R�R4RRXR�RlRmR[R�R�R�R�R�R�R�R�R�R�R�R�tte_stream_rulesR�RRGRERAR6RCR8RIR:R�RNR�R�RLR<R>(R�R@R^t	newte_tmptdomainRY((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_te
s`4/'*12*cCs�d}g}x�t|jj��D]�}tjj|�r�tjtj|�tj�r�t	j
d|j|j|dj�}n&t	j
d|j|j|dj
�}t	j
d||�}|jt	j
d|j|d|��q"Wxt|jj��D]h}t	j
d|j|j|dj�}t	j
d||�}|jt	j
d|j|d|��q�W|jttgkr�t|�dkr�tjSn|jttttgkr�|jr�ttd���n|jrt	j
d|jtj�}|jt	j
d|j|��n|jdkrit	j
d|jtj�}|jt	j
d|j|��n|j�d	j |�}|S(
NRJR3itFILENAMEtFILETYPEis<You must enter the executable path for your confined processt
EXECUTABLEs
(!RDR�RFR�R�R�R�R�R�R�R4Rtfc_sock_filetfc_fileROR�tfc_dirR-R0R�RLRtfc_userR�R�R�RMRt
fc_programR�t
fc_initscriptR?Rk(R�tnewfctfclistRYtt1tt2((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_fcHs41)&+&+
&	""
cCsZd}|jtttttfkr(|Sd}x|jD]}|d|7}q8W|dkri|d7}ntjd|j	t
j�}|tjd||�7}|jtks�|jtkrxH|jD]:}tjd|j	t
j
�}|tjd||�7}q�Wn|jtkr7|tjd|j	t
j�7}n|tjd|j	t
j�7}|S(NRJs %s_rs	 system_rR3tROLESR=(R-R�R�R�R�R�R�R�R4RRRAR�tadmin_transtmin_login_user_default_contexttx_login_user_default_context(R�tnewshR�R�RR�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_user_shks$
 "cCs�tjd|jtj�}tjd|j|�}|jtkratjdd|j|�}n7tjd|j|�}|tjd|jtj�7}|j	r�|tjd|j	tj
�7}n|jdkr�|tjd|jtj
�7}nx9t|j
j��D]"}|tjd|tj
�7}q
Wx9t|jj��D]"}|tjd|tj
�7}qFWxs|jt|jtD]Y}|j|d�dkr�tjdd	|tj�}|tjd|j|�7}q�q�Wxh|jtD]Y}|j|d
�dkr�tjdd	|tj�}|tjd|j|�7}q�q�W||j�7}|tjd|jtj�7}|S(NR3t
DOMAINTYPEtTEMPLATEFILEs%sR�RJRtPORTNUMs%dRW(R�R4R�RtcompileRR-R�tmanpageR�t
restoreconR�RDR�RFR�R�RR�RR$t	tcp_portsR�t	udp_portsR�R#(R�RRR�RYR�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgenerate_sh�s2	""  ##cCs�d}td�}|dkr'd}n
|d}|tj7}|jtkr1|tj7}|jr1|tj	d|jtj
�7}|jdkr�|tj	d|jtj
�7}nx9t|j
j��D]"}|tj	d|tj
�7}q�Wx<t|jj��D]"}|tj	d|tj
�7}qWq1n|tj	d|tj�7}tj	d|j|�}tj	d|j|�}t|j�d	kr�|d
dj|j�7}n|tj	d|jtj�7}tj	d|j|�}tj	dtjd
�|�}|jtkr+tj	dd|�}n|jtkrYtj	d|jd|�}n|jtttttfkr�tj	d|jd|�}n|S(NRJsselinux-policys0.0.0iR�tVERSIONt
MODULENAMEt
DOMAINNAMEisRequires(post): %s
s, t
TODAYSDATEs%a %b %e %Ys%relabel_filess.*%s_selinux.8.*s.*%s_u.*(R,R$Rtheader_comment_sectionR-Rtdefine_relabel_files_beginR�R�R4tdefine_relabel_files_endR�RDR�RFR�tbase_sectionR�RRLR�Rktmid_sectionttimetstrftimeR�R�R�R�R�R�(R�tnewspectselinux_policynvrtselinux_policyverRY((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
generate_spec�s>	


	" &cCsCd||jf}t|d�}|j|j��|j�|S(Ns%s/%s_selinux.spectw(R�topentwriteRtclose(R�tout_dirtspecfiletfd((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
write_spec�s

cCsCd||jf}t|d�}|j|j��|j�|S(Ns%s/%s.teR(R�RRR�R(R�RttefileR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytwrite_te�s

cCsSd||jf}t|d�}|j|j��|j�tj|d�|S(Ns%s/%s.shRi�(R�RRRRR�tchmod(R�RtshfileR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytwrite_sh�s
cCsCd||jf}t|d�}|j|j��|j�|S(Ns%s/%s.ifR(R�RRR�R(R�RtiffileR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytwrite_if�s

cCsCd||jf}t|d�}|j|j��|j�|S(Ns%s/%s.fcR(R�RRR�R(R�RtfcfileR((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytwrite_fc�s

cCsQddl}|j�}|j�xe|jj|j�D]N}|jj|j�x�|j	|j
|jD]m}xd|jD]Y}|dkr�qyn|j
|�rytjj|�r�|j|�q�|j|�qyqyWqiWx�|jj|jg�D]�}x�|j	|j
|jD]m}xd|jD]Y}|dkr9q!n|j
|�r!tjj|�rj|j|�qz|j|�q!q!WqWq�Wq8W|jjd�d}x�|jjd|g�D]�}x�|j
|j|j	D]m}xd|jD]Y}|dkrq�n|j
|�r�tjj|�r1|j|�qA|j|�q�q�Wq�Wq�WdS(Ni����s/etct/s
%s-systemd(tyumtYumBasetsetCacheDirtrpmdbtsearchProvidesR�R�RORtdirlisttfilelistt	ghostlistR�t
startswithR�R�tisfileRhRitsearchNamestbase_package_nameR(R�R'tybtpkgtfnameR�tbpkgtbinary_name((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt__extract_rpms�s@
  cCs�y|j�Wntk
r!nXtjjd|j�rR|jd|j�ntjjd|j�r�|jd|j�ntjjd|j�r�|jd|j�ntjjd|j�r�|jd|j�ntjjd|j�r|jd|j�ntjjd|j�rB|j	d|j�ng}x@t
|jj��D])}g}y|j|dd	d
}Wnt
k
r�q^nXx;|j|dD](}|j|�r�|j|�q�q�q�Wt|�d	k	r^xa|D]Y}|t
|jj��kr#|j|=q�|t
|jj��kr�|j|=q�q�q�Wt
t|j|d�t|��|j|d<q^q^WdS(Ns/var/run/%s.pids/var/run/%ss/var/log/%ss/var/log/%s.logs/var/lib/%ss/etc/rc.d/init.d/%ss/etc/rc\.d/init\.d/%siiR&(t_policy__extract_rpmstImportErrorR�R�R0RRhtisdirRiRRDR�RFt
IndexErrorR/RORLR�R�tset(R�t
temp_basepathR9t	temp_dirsRY((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt
gen_writeable sF




cBs�|jekrdSejj|j�sCejjd|j�dSej	d|j�}xS|j
�j�D]?}x6|jD]+}|j
|�r|d|j|dUq|q|WqlW|j�dS(Nsl
***************************************
Warning %s does not exist
***************************************

snm -D %s | grep Usself.%s(R-RR�R�R�R�tsyststderrRtpopentreadRR�R/R(R�RtsR�((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgen_symbolsSs	cCs�d}|d|j|�td�f7}|d|j|�td�f7}|d|j|�td�f7}|jtkr�|d|j|�td�f7}|d|j|�td�f7}n|S(NsCreated the following files:
s%s # %s
sType Enforcement filesInterface filesFile Contexts files	Spec filesSetup Script(RRR#R%R-R�RR!(R�Rtout((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pytgeneratees####&(vt__name__t
__module__RRRRR	R
RR
RRRRRRRRRRRR R!R$R%R&R'R(R)R*R+R,R-R.R/R1R2R6R8R:R<R>RARCRERGRIRLRNRTR[RgRaRbRdRfRhRiRlRmRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRRRR!R#R%R9R@RFR�tgetcwdRH(((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyRX�s�	�																																																&										8	
																									
																	>	#		#	*						*	3	((HR�RAR�R�R5RRRRt	templatesRRRRRRR	R
RRR
RRRRtsepolgen.interfacest
interfacestsepolgen.defaultstdefaultstsepolgenRtPROGNAMEtgettexttbindtextdomaint
textdomaintinstallR"t	TypeErrortIOErrortbuiltinststrt__dict__R"R,R:RBRRRRtADMIN_TRANSITION_INTERFACEtUSER_TRANSITION_INTERFACERRJtINETDR�R�R=R�R�R�R�R�R�R�RERRIRR0RWRX(((s7/usr/lib64/python2.7/site-packages/sepolicy/generate.pyt<module>s�



						

haha - 2025