grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B ¢ò×9–d?d@dAœZ#dŒdBdC„Z$dDdE„Z%d�dGdH„Z&dIdJ„Z'dŽdKdL„Z(dMdN„Z)dOdP„Z*d�dQdR„Z+dSdT„Z,d�dUdV„Z-d‘dWdX„Z.dYdZd[d-œZ/ejddfd\d]„Z0e 1d^d_¡Z2da3d`da„Z4dbdc„Z5ddde„Z6dfdg„Z7dhdi„Z8djdk„Z9dldm„Z:e dnej¡Z;e doej¡ZiZ?d’drds„Z@dtdu„ZAdvdw„ZBdxdy„ZCdzd{„ZDd|d}„ZEd~d„ZFd€d�„ZGiZHd“d‚dƒ„Z eId„k�rd…ejJk�pìd†ejJkZKd‡ejJk�odˆejJkZLeMe eLeKƒƒe Nd¡dS)”a Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee or royalty is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation or portions thereof, including modifications, that you make. EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE ! z1.0.8éN)ÚdosÚwin32Úwin16ZNULz /dev/nullz/etcé ééé(é2éÈ) ZdevZalphaÚaZbetaÚbÚcZRCÚrcÚplÚpz([0-9]+|[._+-])c Csfg}x\t |¡D]N}|dkryt|dƒ}d}Wn tk rNt |d¡}YnX| ||f¡qW|S)Nz._+-rédr)Ú _component_reÚsplitÚintÚ ValueErrorÚ _ver_stagesÚgetÚextend)ÚversionÚresultÚvÚt©rú-/opt/alt/python37/lib64/python3.7/platform.pyÚ_comparable_versionœs rsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)Úi@c CsŽt}ttjdƒrtj |¡}t|dƒ��X}| |¡}d}�x@|t|ƒk�rzd|ksZd|krht  ||¡}nd}|r€|  ¡t|ƒkr¸| |¡} | r²|t |t|ƒdƒd…| }d}q<|s¸Pdd„|  ¡Dƒ\} } } } }}| rä|säd }nŒ| �r|d krüd }| }n|| ƒ||ƒk�rp| }n\| �rp|d k�rpd }|�rJ|�rF||ƒ||ƒk�rJ|}|�rp|t|ƒ d…|k�rp||}|  ¡}qÖszlibc_ver..ZlibcÚglibc) rÚhasattrÚosÚpathr!ÚopenÚreadÚlenÚ _libc_searchÚsearchÚendÚmaxÚgroups)Ú executableÚlibrZ chunksizeÚVÚfZbinaryÚposÚmÚchunkZlibcinitr(Z glibcversionZsoZthreadsZ soversionrrrÚlibc_ver°sJ     r;c Csptj d¡rˆd}tdƒ�`}xX|D]P}| ¡}t|ƒdkr |\}}nq |dkrV| ¡}q |dkr | d¡}|d}q WWdQRX|||fStj d¡rætdƒ�D}x<|D]4}| d¡} t| ƒdkr¤| dd kr¤d | d |fSq¤WWdQRXtj d ¡�rft d ¡} x:t t| ƒd d d ƒD]"} | | dd …dk�r| | =�qW| �rf|   ¡d}| d d d…}|||fS|||fS)Nz/var/adm/inst-log/infoÚSuSEéZMIN_DIST_VERSIONZ DIST_IDENTú-z/etc/.installedrZ OpenLinuxéz/usr/lib/setupéÿÿÿÿézslack-version-Ú slackware) r*r+Úexistsr,rr.ÚstripÚisdirÚlistdirÚrangeÚsort) ÚdistnamerÚidr7ÚlineZtvÚtagÚvalueÚvaluesZpkgZverfilesÚnrrrÚ_dist_try_harderês>               rPz(\w+)[-_](release|version)z'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?z1([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?)r<ZdebianZfedoraZredhatZcentosZmandrakeZmandrivaZrocksrBZ yellowdogZgentooZ UnitedLinuxZ turbolinuxZarchZmageiacCszd}d}t |¡}|dk r&t| ¡ƒSt |¡}|dk rDt| ¡ƒS| ¡ ¡}|rp|d}t|ƒdkrp|d}d||fS)Nr rr?)Ú_lsb_release_versionÚmatchÚtupler3Ú_release_versionrDrr.)Ú firstlinerrJr9ÚlrrrÚ_parse_release_file0s      rWr?cCs(ddl}|jdtdd�t|||||ƒS)NrzFdist() and linux_distribution() functions are deprecated in Python 3.5r=)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarningÚ_linux_distribution)rIrrJÚsupported_distsÚfull_distribution_namerYrrrÚlinux_distributionKs   r_c CsÚyt t¡}Wntk r(|||fSX| ¡xD|D]0}t |¡}|dk r8| ¡\}} ||kr8|}Pq8Wt|||ƒSt tj   t|¡dddd��} |   ¡} WdQRXt | ƒ\}} } |rÀ|rÀ|}| rÈ| }| rÐ| }|||fS)NÚrzutf-8Úsurrogateescape)ÚencodingÚerrors)r*rFÚ _UNIXCONFDIRÚOSErrorrHÚ_release_filenamerRr3rPr,r+ÚjoinÚreadlinerW)rIrrJr]r^ZetcÚfiler9Z _distnameZdummyr7rUZ_versionZ_idrrrr\Us0      r\cCs*ddl}|jdtdd�t||||dd�S)NrzFdist() and linux_distribution() functions are deprecated in Python 3.5r=)rX)r]r^)rYrZr[r\)rIrrJr]rYrrrÚdist‹s  rjr`r@cCs&ddl}|jdtdd�t |||¡S)Nrzuse os.popen insteadr=)rX)rYrZr[r*Úpopen)ÚcmdÚmodeÚbufsizerYrrrrk srkcCsd| d¡}|r| |¡ytt|ƒ}Wntk r>|}YnXttt|ƒƒ}d |dd…¡}|S)NÚ.é)rÚappendÚmaprrÚlistÚstrrg)rÚbuildrVZintsÚstringsrrrÚ _norm_version©s   rwz'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])©rrrc Csätj|kr|||fSxddD]R}y&t |¡}| ¡}| ¡rBtdƒ‚Wn$tk rh}zwWdd}~XYqXPqW|||fS| ¡}t  |¡}|dk rÚ|  ¡\}}}|ddkrº|dd…}|ddkrÒ|dd…}t |ƒ}|||fS)N)Zverzcommand /c verz cmd /c verzcommand failedr@ro) ÚsysÚplatformr*rkr-ÚclosererDÚ _ver_outputrRr3rw) ÚsystemÚreleaserZsupported_platformsrlÚpipeÚinfoZwhyr9rrrÚ _syscmd_verÇs,           r�Z2000ZXPZ 2003ServerZpost2003ÚVistaÚ7Ú8z8.1zpost8.1Z10Zpost10) )ér)r…r?)r…r=)r…N)ér)r†r?)r†r=)r†rp)r†N)rr)rNZ 2008ServerZ 2008ServerR2Z 2012ServerZ 2012ServerR2Zpost2012ServerR2))r…r=)r†r)r†r?)r†r=)r†rp)r†Nc Cs¨yddlm}Wntk r,||||fSX|ƒ}|jpD|dd…\}}}d |||¡}t ||f¡pxt |df¡px|}|dd…||fkrÔyd |j¡}Wn4tk rÒ|dd…dkrÎd |dd…}YnXt |d dƒdk�r t  ||f¡�pt  |df¡�p|}y0y ddl } Wntk �r6ddl } YnXWntk �rPYnLXy2d } |   | j| ¡�} |  | d ¡d}WdQRXWntk �ršYnX||||fS) Nr)Úgetwindowsversionrpz {0}.{1}.{2}r=zSP{}é z Service Pack ZSPZ product_typez,SOFTWARE\Microsoft\Windows NT\CurrentVersionZ CurrentType)ryr‡Ú ImportErrorZplatform_versionÚformatÚ_WIN32_CLIENT_RELEASESrZservice_pack_majorÚAttributeErrorÚgetattrÚ_WIN32_SERVER_RELEASESÚwinregÚ_winregZ OpenKeyExÚHKEY_LOCAL_MACHINEZ QueryValueExre) r~rÚcsdÚptyper‡ZwinverZmajÚminrur�ZcvkeyÚkeyrrrÚ win32_versD r–c Cs‚d}tj |¡sdSy ddl}Wntk r4dSXt|dƒ�}| |¡}WdQRX|d}d}t ¡j}|dkrxd}|||fS)Nz0/System/Library/CoreServices/SystemVersion.plistrr"ZProductVersion)r r r )ZppczPower MacintoshZPowerPC) r*r+rCÚplistlibr‰r,ÚloadÚunameÚmachine)Úfnr—r7rr~Ú versioninforšrrrÚ _mac_ver_xmlEs    r�©r r r cCstƒ}|dk r|S|||fS)N)r�)r~rœršr€rrrÚmac_ver[s rŸcCs@ddlm}y| |¡}|dkr$|S|Stk r:|SXdS)Nr)ÚSystem)Ú java.langr Z getPropertyrŒ)ÚnameÚdefaultr rMrrrÚ _java_getpropns  r¤c Cs®y ddl}Wntk r(||||fSXtd|ƒ}td|ƒ}|\}}}td|ƒ}td|ƒ}td|ƒ}|||f}|\}} } td| ƒ} td|ƒ}td | ƒ} || | f}||||fS) Nrz java.vendorz java.versionz java.vm.namezjava.vm.vendorzjava.vm.versionz java.os.archz java.os.namezjava.os.version)r¡r‰r¤) r~ÚvendorÚvminfoÚosinfoÚjavaZvm_nameZ vm_releaseZ vm_vendorÚos_nameÚ os_versionÚos_archrrrÚjava_verys"              r¬cCsÌ|dkrd|||fS|dkr–|dkr0|||fS| d¡}|r‚yt|dƒ}Wntk rbYn X|d}t|ƒ|d<d |¡}|dkr�d }qÂd }n,|d kr¶d }|r°|d }qÂd }n |dkrÂd}|||fS)NZRhapsodyzMacOS X ServerZSunOSÚ5rorrpÚ6ZSolarisZIRIX64ZIRIXz (64bit)Ú64bit)rrÚWindows)rrrrtrg)r}r~rrVÚmajorrrrÚ system_aliasœs2      r²cGsÈd dd„tt|ƒDƒ¡}| dd¡}| dd¡}| dd¡}| dd¡}| d d¡}| d d¡}| d d¡}| d d¡}| d d¡}x| dd¡}||kržP|}qˆWx|ddkrÂ|dd…}q¨W|S)Nr>css|]}| ¡VqdS)N)rD)r%Úxrrrú Øsz_platform..ú Ú_ú/ú\ú:ú;ú"ú(ú)Úunknownr z--r@)rgÚfilterr.Úreplace)ÚargsrzZcleanedrrrÚ _platformÒs$          rÂcCsDy ddl}Wntk r |SXy| ¡Stk r>|SXdS)Nr)Úsocketr‰Z gethostnamere)r£rÃrrrÚ_nodeòs rÄcCsFtj |¡}x4tj |¡r@tj tj tj |¡t |¡¡¡}qW|S)N)r*r+ÚabspathÚislinkÚnormpathrgÚdirnameÚreadlink)ÚfilepathrrrÚ_follow_symlinkss  "rËc Csftjdkr|Syt d|tf¡}Wnttfk r<|SX| ¡ ¡}|  ¡}|rZ|r^|S|SdS)N)rrrzuname %s 2> %s) ryrzr*rkÚDEV_NULLrŒrer-rDr{)Úoptionr£r7ÚoutputrrrrÚ _syscmd_uname s  rÏc Csztjdkr|St|ƒ}ytjd|gtjtjd�}Wnttfk rJ|SX|  ¡d  d¡}|  ¡}|rn|rr|S|SdS)N)rrrri)ÚstdoutÚstderrrzlatin-1) ryrzrËÚ subprocessÚPopenÚPIPEZSTDOUTrŒreZ communicater$Úwait)Útargetr£ÚprocrÎrrrrÚ _syscmd_files  rØ)r Ú WindowsPE)r r°)r ÚMSDOScCs*|sLddl}y| d¡}Wn |jk r:| d¡}YnXt|dƒd}|r\t|dƒ}nd}|sž|tjkržtjtkr–ttj\}}|rŽ|}|r–|}||fSd|kr®||fSd|kr¼d }nd |krÊd }n d |krÖd }d|kräd}n>d|k�rd|krüd}nd}n d|k�rd}nd|k�r"d}n||fS)NrÚPrVéÚbitr r4z32-bitÚ32bitZN32Zn32bitz64-bitr¯ZELFZPEr°rÙZCOFFzMS-DOSrÚ) ÚstructÚcalcsizeÚerrorrtrØryr4rzÚ_default_architecture)r4ÚbitsÚlinkagerßÚsizeZfileoutr rVrrrÚ architectureBsL      ræÚ uname_resultz-system node release version machine processorcCsœd}tdk rtSd}yt ¡\}}}}}Wntk rBd}YnX|sbttd|||||fƒƒ�sœ|r~tj}d}d}tƒ}d}d}|dkrât ƒ\}}}} |r¤|r¤d}|sÐdtj krÂtj   dd¡}ntj   dd¡}|sâtj   d|¡}|�r:t |ƒ\}}}|dk�rd }n4|d k�r:|d k�r:d }d |dd …k�r6d }nd}|dk�rd|�s^|dk�rZd}nd}d }n8|dd…dk�rœt ƒ\}} } } d}d | ¡}|�sœ| }|dk�r|�r¶|dk�r¾|}d}y ddl} Wntk �ràYn&X|  dd¡\}}|dk�rd}nd}|�stddƒ}|dk�r$d}|dk�r2d}|dk�r@d}|dk�rNd}|dk�r\d}|dk�rjd}|d k�r†|d k�r†d }d }t||||||ƒatS)Nrr r?rZPROCESSOR_ARCHITEW6432ZPROCESSOR_ARCHITECTUREZPROCESSOR_IDENTIFIERzMicrosoft Windowsr°Z Microsoftz6.0rpr‚)rrrÞZ16bitér¨ÚJavaz, ZOpenVMSÚ0zSYI$_CPUé€ZAlphaZVAXz-pr¾)Ú _uname_cacher*r™rŒrsr¿ryrzrÄr–Úenvironrr�r¬rgÚvms_libr‰ZgetsyirÏrç)Z no_os_unameÚ processorr}Únoder~rršZuse_syscmd_verr’r“r¥r¦r§rîZcsidZ cpu_numberrrrr™›sž                  r™cCstƒjS)N)r™r}rrrrr}%sr}cCstƒjS)N)r™rðrrrrrð.srðcCstƒjS)N)r™r~rrrrr~8sr~cCstƒjS)N)r™rrrrrrAsrcCstƒjS)N)r™ršrrrrršJsršcCstƒjS)N)r™rïrrrrrïSs rïzL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?cCs|dkrtj}t |d¡}|dk r&|Sd|kr‚d}| d¡rHt |¡}n t |¡}|dkrjtdt |ƒƒ‚|  ¡\}}}d}d}nütj  d¡rÚd}t  |¡}|dkr´tdt |ƒƒ‚|  ¡\}}}} } |dkrÒd}tj }n¤d|k�r"d}t  |¡}|dk�r tdt |ƒƒ‚|  ¡\}}}} d}n\t  |¡}|dk�rFtd t |ƒƒ‚|  ¡\}}}} }d }|dk�rld}n| �r~|d | }ttd ƒ�r˜tj\} } } n"ttd ƒ�r²tj\} } } nd} d} | d¡} t| ƒdk�ræ|  d¡d | ¡}||| | |||f}|t|<|S)NZ IronPythonz*failed to parse IronPython sys.version: %sr r¨ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonrµÚ_gitÚ _mercurialror=rê)ryrÚ_sys_version_cacherÚ startswithÚ_ironpython_sys_version_parserrRÚ _ironpython26_sys_version_parserrÚreprr3rzÚ_sys_version_parserÚ_pypy_sys_version_parserr)rñròrr.rqrg)Ú sys_versionrr¢rRrZ alt_versionZcompilerZbuildnoZ builddateZ buildtimer¶ÚbranchZrevisionrVrrrÚ _sys_version}sx                      rücCs tƒdS)Nr)rürrrrÚpython_implementationås rýcCs tƒdS)Nr?)rürrrrÚpython_versionòsrþcCsttƒd d¡ƒS)Nr?ro)rSrürrrrrÚpython_version_tupleüs rÿcCs tƒdS)Nr=)rürrrrÚ python_branchs rcCs tƒdS)Nrp)rürrrrÚpython_revisions rcCstƒdd…S)Nrèr†)rürrrrÚ python_build"srcCs tƒdS)Nr†)rürrrrÚpython_compiler*src CsÄt ||fd¡}|dk r|Stƒ\}}}}}}||kr:d}|rPt|||ƒ\}}}|dkrŠt|ƒ\} } } } |rxt||ƒ} nt|||| ƒ} �n*|dk�r t ¡�"t ddt ¡t dƒ\}}}WdQRX|rä|sät||||d|||ƒ} n$t t j ƒ\}}t||||d||ƒ} nª|dk�rXtƒ\}}}\}}}|�s4|�sBt|||ƒ} nt|||d|||ƒ} n\|d k�r‚|�rtt||ƒ} n t|||ƒ} n2|�r”t||ƒ} n tt j ƒ\}}t||||||ƒ} | t||f<| S) Nr r°)ZLinuxÚignorez?dist\(\) and linux_distribution\(\) functions are deprecated .*ÚwithréZonZMacOS)Ú_platform_cacherr™r²r–rÂrYÚcatch_warningsÚfilterwarningsr[rjr;ryr4r¬ræ)ÚaliasedÚterserr}rðr~rršrïZrelZversr’r“rzrIZ distversionZdistidZlibcnameZ libcversionr`rr¦r©rªr«rãrärrrrz6s\               rzÚ__main__r z--terseZ nonaliasedz --nonaliased)r`r@)r )r r r rx)r r r r )r ržr )r r ržrž)r )r )r )N)rr)OZ __copyright__Ú __version__Ú collectionsryr*ÚrerÒrYÚdevnullrÌrŒrzrdrÚcompilerrÚASCIIr/r4r;rPrfrQrTZ_supported_distsrWr_r\rjrkrwr|r�r‹rŽr–r�rŸr¤r¬r²rÂrÄrËrÏrØrâræÚ namedtuplerçrìr™r}rðr~rršrïrørõrörùrórürýrþrÿrrrrrÚ__name__Úargvr r ÚprintÚexitrrrrÚosÜ      :2 6    0 0  #6   T       h      [