VULN_CHECK_I913V6 j ddlmZddlmZddlmZddlmZddlZddl Zddl Z dZ dZ d Z d Zeid d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5Zd6Zd7Zy)8)absolute_import)unicode_literals) transaction) is_py3bytesNctj|}|jtjtj zt jj}t jj}t jjrt|d}t|d}t jjD]}t jjr t|d} |jd|}t)|sI t+|}|d} d} d} |tj.j1|} |tj6| } |tj8| }| tj:k(r|r|d ||j5dfvr|} t=|tj.|tj6|tj8D]]\}} }t?|t&r t|d}||k(r| tj:k(r|r|} ||k(sE| tj:k(sY|s\|} _ tE| r t'| d} tE| r t'| d} tE| r t'| d} | | | fcSy #ttj f$r0}t j"j%dt'|zd}~wwxYw#t,$r"d}t j"j%|wxYw#t2$r5|tj.j1|j5d} YwxYw#t2t@tBf$rY wxYw) zCalculate the release version for the system, including releasever_major and releasever_minor if they are overriden by the system-release-major or system-release-minor provides.)rootutf-8providesz Error: %sNz:Error: rpmdb failed to list provides. Try: rpm --rebuilddbversionutf8name)NNN)#rinitReadOnlyTransaction pushVSFlagsrpm_RPMVSF_NOSIGNATURES_RPMVSF_NODIGESTSdnfconstDISTROVER_MAJOR_PKGDISTROVER_MINOR_PKGpycompPY3bytes DISTROVERPKGdbMatch TypeErrorerror exceptionsErrorstrlennext StopIterationRPMTAG_PROVIDENAMEindex ValueErrordecodeRPMTAG_PROVIDEFLAGSRPMTAG_PROVIDEVERSIONRPMSENSE_EQUALzip isinstanceKeyError IndexErrorr) installroottsdistrover_major_pkgdistrover_minor_pkg distroverpkgidxehdrmsg releaseverreleasever_majorreleasever_minoroffflagverprovides 5/usr/lib/python3.12/site-packages/dnf/rpm/__init__.pydetect_releaseversrAs  , ,+ >BNNS--0E0EEFG))77))77 zz~~#$7A#$7A .. ::>> w7L =**Z6C3x  ,s)C^   U#00177 Es../4Dc//05Cs)))cv;|\5H5H5P&QQ!$J&)..///0112'4"sgs+#GW5G11dc>P>P6PUX'*$11dc>P>P6PUX'*$'4 z "Z1J ' ("#3W=  ' ("#3W= +-===i/j a399% =..&&{SV';< < =  ,NC..&&s+ + , U#00177 8K8KF8ST U*Hj1   sg3J K ("L CM*M>MMK-+KK +L :M M M  MM'&M'c$t|\}}}|S)z-Calculate the release version for the system.)rA)r0r9_s r@detect_releaseverrDds*+6J1 cHtj}t|5}|j} |j |}|cdddS#t j $r4}tjjdj||d}~wwxYw#1swYyxYw)zReturn RPM header of the file.z {0}: '{1}'N) rropenfileno hdrFromFdnorrrrr format)pathr1packagefdnor7r6s r@_headerrNls  , , .B dw~~ E..&C yy E..&&|':':1d'CD D E s.BABB!/BBBB!cH|Dcic]}||D]}||c}}Scc}}wN)dctkvs r@_invertrUxs* .#Qs1v!AqDvA# .. .saarch64)rValpha) rWalphaev4 alphaev45alphaev5 alphaev56alphaev6 alphaev67 alphaev68alphaev7 alphapca56arm) armv5tejlarmv5telarmv5tlarmv6larmv7larmv8larmhfp)armv6hlarmv7hlarmv7hnlarmv8hli386)rmathlongeodermi486i586i686ia64)rsmips)rtmipsel)rumips64)rvmips64el)rw loongarch64)rxnoarch)ryppc)rzppc64)r{ ppc64iseriesppc64p7 ppc64pseriesppc64le)rriscv32)rriscv64)r)riscv128)s390)s390x)sh3)sh4sh4a)sparcsparc64sparc64vsparcv8sparcv9sparcv9v)x86_64amd64ia32e) x86_64_v2)rrrrrrrrct|SrP) _BASEARCH_MAP)archs r@basearchrs  rEc>||}t|r t|d}|S)z Returns value of rpm_hdr[key] as a string. Rpm has switched from bytes to str and we need to handle both properly. r )rr!)rpm_hdrkeyvalues r@ getheaderrs& CLE5E7# LrE) __future__rrr dnf.pycompr dnf.constrdnf.exceptionsrrArDrNrUrrrrQrEr@rs?(''" DN / | N M   ;   G  I I k k # k 8 A |!" #$ %&    *7 > rE