� !A?h5�� ��� dZdZddlZddlZddlZddlZddlZddlZddddddddd d d � Zej d ��Z d �Z ej d ej ��Z d^d�Zd_d�Zej d��Z d`d�Zdddddddddddd � Zdd!d"d#d$d%d&�Zd'�Zd(�Zdad)�Zd*�Zdbd,�Zd-�Zdcd.�Zd/�Zd0�Zd_d1�Zd2�Zd_d3�Zd4d5d6d�Z ej!ddfd7�Z"d8�Z#Gd9�d:��Z$d;�Z%Gd<�d=ej&d>d?����Z'da(d@�Z)dA�Z*dB�Z+dC�Z,dD�Z-dE�Z.dF�Z/ej dGej ��Z0ej dHej ��Z1ej dI��Z2ej dJ��Z3iZ4dddK�Z5dL�Z6dM�Z7dN�Z8dO�Z9dP�Z:dQ�Z;dR�Zej dT��Z?ej dU��Z@dVZAdaBdW�ZCdX�ZDeEdYkrKdZejFvpd[ejFvZGd\ejFvod]ejFvZHeIe>eHeG����ejJd��dSdS)fa Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:[email protected] Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:[email protected] 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� ���(�2��) �dev�alpha�a�beta�b�c�RC�rc�pl�pz([0-9]+|[._+-])c���g}t�|��D]\}|dvrV t|d��}d}n+#t$rt�|d��}YnwxYw|�||f���]|S)Nz._+-r�dr)� _component_re�split�int� ValueError� _ver_stages�get�extend)�version�result�v�ts �5/opt/alt/python-internal/lib64/python3.11/platform.py�_comparable_versionr!�s��� �F� � � �� )� )�"�"�� �F�?�?� *���2�J�J������� *� *� *��O�O�A�q�)�)���� *���� �M�M�1�a�&� !� !� !�� �Ms�7�%A�AsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)��@c�� |s} tjd��}|�d���}t|��dkrt |��Sn#t t tf$rYnwxYwtj }|s||fSt}tj � |��}t|d��5}|�|��}d} | t|��k�r\d|vsd|vrt�|| ��} nd} | r%| ���t|��krH|�|��} | r.|t%| t|��d z ��d�| z}d} ��| sn�d �| ���D��\} } }}}}| r|sd }ns| r&|d krd }|}nf||��||��kr|}nK|rI|d krCd }|r|r||��||��kr|}|r!|t|�� d�|kr||z}| ���} | t|��k��\ddd��n #1swxYwY||fS) N�CS_GNU_LIBC_VERSION�)�maxsplit��rbrslibcsGLIBCi�c�@�g|]}|�|�d��n|��S)N�latin1)�decode)�.0�ss r � zlibc_ver..�sC��E%�E%�E%��'(�m�����"�"�"��E%�E%�E%��libc�glibc)�os�confstrr�len�tuple�AttributeErrorr�OSError�sys� executabler!�path�realpath�open�read� _libc_search�search�end�max�groups)r:�libr� chunksize�ver�parts�V�f�binary�pos�m�chunk�libcinitr2� glibcversion�so�threads� soversions r �libc_verrS�s�� � � � ��*�2�3�3�C��I�I�q�I�)�)�E��5�z�z�Q����U�|�|�#���� �G�4� � � � �D� �����^� �� ���<� ��A���!�!�*�-�-�J� �j�$� � �"�1���� �"�"�����C��K�K����&� � �H��$6�$6� �'�'���4�4������ ������3�v�;�;�.�.����y�)�)����#�C��S��[�[�4�-?�$@�$@�$A�$A�B�U�J�F��C�����E%�E%������E%�E%�E%� A�H�e�\�2�w� �� 4�� 4����� 4��'�>�>�!�C�*�G�G��Q�|�_�_�q�q��z�z�1�1�*�G��� 4��'�>�>� �C� �,�'�,�Q�Q�y�\�\�A�A�g�J�J�5N�5N�"+���4�7�C��L�L�=�>�>�#:�g�#E�#E�")�G�"3���%�%�'�'�C�?�C��K�K���"�"�"�"�"�"�"�"�"�"�"����"�"�"�"�F ��<�s%�A A�A,�+A,�7FI � I�Ic �,� |�d��}|r|�|�� ttttt |������}n#t $r|}YnwxYwd�|dd���}|S)N�.�)r�append�list�map�strrr�join)r�build�l�stringss r � _norm_versionr_�s���� � � �c���A� �� ���������s�3��C�� � �,�,�-�-���� �������������h�h�w�r��r�{�#�#�G� �Ns�5A%�% A4�3A4z'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])��win32�win16�dosc ��� tj|vr|||fSddl}dD]G} |�||j|jddd���}n##t |jf$r }Yd}~�@d}~wwxYw|||fS|���}t� |��}|�S|� ��\}}}|ddkr |dd�}|ddkr |dd�}t|��}|||fS)Nr)rFzcommand /c verz cmd /c verT�locale)�stdin�stderr�text�encoding�shell�����rU) r9�platform� subprocess� check_output�DEVNULLr8�CalledProcessError�strip� _ver_output�matchrCr_) �system�releaser�supported_platformsrm�cmd�info�whyrLs r � _syscmd_verrzsP�� � �|�.�.�.��w��'�'�����6�(�(�� ��*�*�3�1;�1C�2<�2D�04�4<�15� +�7�7�D� �E�� ��6�7� � � � �H�H�H�H����� ���� �w��'�'� �:�:�<�<�D����$���A��}�#$�8�8�:�:� ���� �2�;�#� � ��c�r�c�l�G� �2�;�#� � ��c�r�c�l�G� ��(�(�� �7�G� #�#s�%A�A �A �2000�XP� 2003Server�post2003�Vista�7�8z8.1zpost8.1�10�post10) )�r)r�r&�r�r()r�N��r�r�r&�r�r(�r�rV�r�N)rr)rN� 2008Server� 2008ServerR2� 2012Server� 2012ServerR2�post2012ServerR2)r�r�r�r�r�r�c�"�t��dvS)N)�IoTUAP� NanoServer�WindowsCoreHeadless� IoTEdgeOS)� win32_edition�r0r � win32_is_iotr�Vs�� �?�?�Z� Z�Zr0c�"� ddl}n#t$rddl}YnwxYw d}|�|j|��5}|�|d��dcddd��S#1swxYwYn #t $rYnwxYw#t$rYnwxYwdS)Nr�,SOFTWARE\Microsoft\Windows NT\CurrentVersion� EditionId)�winreg� ImportError�_winreg� OpenKeyEx�HKEY_LOCAL_MACHINE� QueryValueExr8)r��cvkey�keys r r�r�Ys6�� � %� �M�M�M�M��� %� %� %� $� $� $� $� $� $� %����  �C�E��!�!�&�";�U�C�C� @�s��*�*�3� �<�<�Q�?� @� @� @� @� @� @� @� @� @� @� @� @���� @� @� @� @� @��� � � � �D� ����� � � � � �� ���� �4s[��A?��A?��A?�A/�A#� A/�#A'�'A/�*A'�+A/�/ A<�;A<�? B � B c�2� ddlm}n#t$r ||||fcYSwxYw|��} ttt ��d�d����\}}}n%#t$r|jp |dd�\}}}YnwxYwd� |||��}t� ||f��pt� |df��p|}|dd�||fkrG d� |j ��}n+#t$r|dd�d kr d |dd�z}YnwxYwt|d d��dkr:t� ||f��pt� |df��p|} ddl} n#t$rddl} YnwxYw d } | �| j| ��5} | �| d ��d}ddd��n #1swxYwYn #t*$rYnwxYw#t$rYnwxYw||||fS)Nr)�getwindowsversionr(rUrVz {0}.{1}.{2}zSP{}� z Service Pack �SP� product_typer�� CurrentType)r9r�r�rYrrzrr�platform_version�format�_WIN32_CLIENT_RELEASESr�service_pack_majorr7�getattr�_WIN32_SERVER_RELEASESr�r�r�r�r�r8) rur�csd�ptyper��winver�major�minorr\r�r�r�s r � win32_verr�ks"��,�)�)�)�)�)�)�)�� �,�,�,����e�+�+�+�+�,����� � � �F�D�!�#�{�}�}�Q�'7�'=�'=�c�'B�'B�C�C���u�e�e�� �D�D�D�$�5�C��������u�e�e�e�D�����"�"�5�%��7�7�G�%�)�)�5�%�.�9�9��%�)�)�5�$�-�8�8��� ��b�q�b�z�e�U�^�#�#� &��-�-�� 9�:�:�C�C��� &� &� &��3�B�3�x�?�*�*��S����X�o���� &���� �v�~�t�,�,��1�1�)�-�-�u�e�n�=�=��)�-�-�u�d�m�<�<��� � � %� �M�M�M�M��� %� %� %� $� $� $� $� $� $� %����  �C�E��!�!�&�";�U�C�C� C�s��+�+�C��?�?��B�� C� C� C� C� C� C� C� C� C� C� C���� C� C� C� C���� � � � �D� ����� � � � � �� ���� �G�S�%� '�'s�� ���>A)�)B � B �0D � %D3�2D3�F � H� F�H�F�H�!G3�>G'� G3�'G+�+G3�.G+�/G3�3 H�?H� H�Hc�J�d}tj�|��sdS ddl}n#t$rYdSwxYwt |d��5}|�|��}ddd��n #1swxYwY|d}d}tj��j}|dvrd}|||fS)Nz0/System/Library/CoreServices/SystemVersion.plistrr)�ProductVersion�r"r"r")�ppczPower Macintosh�PowerPC) r3r;�exists�plistlibr�r=�load�uname�machine)�fnr�rIrru� versioninfor�s r � _mac_ver_xmlr��s�� ;�B� �7�>�>�"� � ���t�������� �����t�t����� �b�$����1� �]�]�1� � ���������������������!�"�G��K��h�j�j� �G��,�,�,��� �K�� (�(s�*� 8�8� A-�-A1�4A1r�c�2� t��}|�|S|||fS�N)r�)rur�r�rxs r �mac_verr��s,��� �>�>�D� ��� � �K�� (�(r0c�j�ddlm} |�|��}|�|S|S#t$r|cYSwxYw)Nr)�System)� java.langr�� getPropertyr7)�name�defaultr��values r � _java_getpropr��s_�� � � � � � ���"�"�4�(�(�� �=��N�� �� �����������s�#�#� 2�2c�t� ddl}n#t$r ||||fcYSwxYwtd|��}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�) ru�vendor�vminfo�osinfo�java�vm_name� vm_release� vm_vendor�os_name� os_version�os_archs r �java_verr��s�� �/������� �/�/�/�����.�.�.�.�/�����=�&� 1� 1�F��N�G�4�4�G�%+�"�G�Z���N�G�4�4�G��.� �:�:�I��0�*�=�=�J� �j�)� +�F�#)� �G�Z���N�G�4�4�G��N�G�4�4�G��0�*�=�=�J� �j�'� )�F� �F�F�F� *�*s ���c�(� |dkr�|dkr|||fS|�d��}|rS t|d��}|dz }t|��|d<d�|��}n#t$rYnwxYw|dkrd}n d}n|dvrd }|||fS) N�SunOS�5rUrrV�6�Solaris�rarb�Windows)rrrZr[r)rtrurr]r�s r � system_aliasr��s�������� �S�=�=��7�G�+� +� �M�M�#� � �� � &� &��A�a�D� � ���� ���5�z�z��!���(�(�1�+�+���� � � � ��� ���� �S�=�=��F�F��F�F� �%� %� %��� �7�G� #�#s�A-�- A:�9A:c�~� d�d�tt|��D����}|�dd��}|�dd��}|�dd��}|�dd��}|�dd��}|�d d��}|�d d��}|�d d��}|�d d ��} |�dd��}||krn|}� |ddkr|dd�}|ddk�|S)N�-c3�>K�|]}|���V��dSr�)rq)r-�xs r � z_platform..%s*����=�=�a���� � �=�=�=�=�=�=r0� �_�/�\�:�;�"�(�)�unknownr"r&z--rk)r[�filterr5�replace)�argsrl�cleaneds r � _platformr�s\����x�x�=�=�6�#�t�+<�+<�=�=�=�=�=�H�����S�)�)�H�����S�)�)�H�����c�*�*�H�����S�)�)�H�����S�)�)�H�����S�)�)�H�����S�)�)�H�����S�)�)�H���� �2�.�.�H���"�"�4��-�-�� �h� � � ��� � �2�,�#� � ��C�R�C�=�� �2�,�#� � � �Or0c�� ddl}n#t$r|cYSwxYw |���S#t$r|cYSwxYw�Nr)�socketr�� gethostnamer8)r�r�s r �_noder�?sv����� � � � �� ��������������!�!�#�#�#�� �����������s�� ��/� >�>c�� tj�|��}tj�|��r�tj�tj�tj�|��tj|������}tj�|����|Sr�)r3r;�abspath�islink�normpathr[�dirname�readlink)�filepaths r �_follow_symlinksrNs�����w���x�(�(�H� �'�.�.�� "� "�L��7�#�#� �G�L�L������2�2�B�K��4I�4I� J� J�L�L�� �'�.�.�� "� "�L� �Or0c�P� tjdvr|S ddl}n#t$r|cYSwxYwt |��}t t jd���} |�dd|g|j |���}n#t|j f$r|cYSwxYw|s|S|� d��S) N)rcrarbr�C)�LC_ALL�filez-b)rg�envzlatin-1) r9rlrmr�r�dictr3�environrnror8rpr,)�targetr�rmr�outputs r � _syscmd_filer Zs���� �|�0�0�0���������� ������������ �f� %� %�F� �r�z�#� &� &� &�C���(�(�&�$��)?�0:�0B�-0�)�2�2���� �Z�2� 3������������ ���� �=�=�� #� #�#s�� '�'� A6�6B � B )r"� WindowsPE)r"r�)r"�MSDOSc�� |s.ddl}|�d��}t|dz��dz}|rt|d��}nd}|sI|tjkr9tjtvr"ttj\}}|r|}|r|}||fSd|vrd|vr||fSd|vrd }nd |vrd }d |vrd }nd |vr d|vrd}nd }nd|vrd}nd|vrd}n ||fS)Nr�P��bitr"r:z shared objectz32-bit�32bitz64-bit�64bit�ELF�PEr�r �COFFzMS-DOSr)�struct�calcsizerZr r9r:rl�_default_architecture)r:�bits�linkager�size�fileoutr r]s r � architecturer�sd���* �%�� � � ����s�#�#���4�!�8�}�}�u�$�����z�2�.�.����� � ��S�^�#�#� �<�0� 0� 0�(���6�D�A�q�� ���� ����W�}���7�"�"��g�'E�'E��W�}���7������ �W� � ��� ������� ���� �� � �!�G�G��G�G� �7� � ���� �W� � ���� � ��=�r0c��tj�dd��ptj�dd��S)N�PROCESSOR_ARCHITEW6432r"�PROCESSOR_ARCHITECTURE)r3r rr�r0r �_get_machine_win32r#�s6�� � ���/��4�4� 5� � ���/��4�4�r0c�6�eZdZed���Zd�Zd�Zd�ZdS)� _Processorc�`�t|dtj��|j��}|��pdS)N�get_r")r�r9rl�from_subprocess)�cls�funcs r rz_Processor.get�s1���s�1�3�<�1�1�3�3F�G�G���t�v�v�|��r0c�Z�tj�dt����S)N�PROCESSOR_IDENTIFIER)r3r rr#r�r0r � get_win32z_Processor.get_win32�s ���z�~�~�4�6H�6J�6J�K�K�Kr0c�t� ddl}|�dd��\}}|dkrdndS#t$rYdSwxYw)NrzSYI$_CPU��Alpha�VAX)�vms_lib�getsyir�)r2�csid� cpu_numbers r � get_OpenVMSz_Processor.get_OpenVMS�sb�� ;� �N�N�N� '�~�~�j�!�<�<� �D�*�(�C�/�/�7�7�U� :�� � � � � �D�D� ���s �)� 7�7c��� ddl}n#t$rYdSwxYw |�ddg|jdd������S#t |jf$rYdSwxYw)Nrr�z-pT�utf8)rgrhri)rmr�rnrorqr8rp)rms r r(z_Processor.from_subprocess�s��� � � � � � � ��� � � ��4�4� ���� ��*�*��$��!�)��� +��� �e�g�g�  �� ��6�7� � � � �D�D� ���s�� ��1A � A!� A!N)�__name__� __module__� __qualname__� classmethodrr-r6r(r�r0r r%r%�s]����������[��L�L�L�;�;�;�����r0r%c��|dkrdn|S)Nr�r"r�)�vals r �_unknown_as_blankr?s��� �!�!�2�2�s�*r0c�l��eZdZ dZejd���Z�fd�Zed���Z d�Z d�Z d�Z �xZ S)� uname_result)rt�noderurr�� processorc�N�tt�����Sr�)r?r%r��selfs r rCzuname_result.processors�� ����!1�!1�2�2�2r0c�v��tjt�����|jf��Sr�)� itertools�chain�super�__iter__rC)rF� __class__s �r rKzuname_result.__iter__s2����� �G�G� � � � � �^� � � � r0c���t|j��dz }|j|g|�R�}t|��|dzkr$d|�dt|����}t|���|S)Nr&z Expected z arguments, got )r5�_fields�__new__� TypeError)r)�iterable� num_fieldsr�msgs r �_makezuname_result._make"sr�����%�%��)� ����S�,�8�,�,�,�� �v�;�;�*�q�.� (� (�G�j�G�G�#�f�+�+�G�G�C��C�.�.� �� r0c�,�t|��|Sr�)r6)rFr�s r � __getitem__zuname_result.__getitem__,s���T�{�{�3��r0c�T�ttt|������Sr�)r5r6�iterrEs r �__len__zuname_result.__len__/s���5��d���$�$�%�%�%r0c�h�tt|��dt|j��dz �fS�Nr&)rAr6r5rNrEs r � __reduce__zuname_result.__reduce__2s-���U�4�[�[�)?�#�d�l�*;�*;�a�*?�)?�@�@�@r0)r9r:r;rN� functools�cached_propertyrCrKr<rTrVrYr\� __classcell__)rLs@r rArA s�������� �O�G���3�3���3� � � � � � ����[�� � � �&�&�&�A�A�A�A�A�A�Ar0rA�uname_result_basez#system node release version machinec��� t�tS tj��x\}}}}}}n2#t$r%tj}t ��}dx}x}}d}YnwxYwt|��s�|dkr#t��\}}}}|p t��}|r|s=t|��\}}}|dkrd}n!|dkr|dkrd}d|dd�krd }nd}|d vr|s |dkrd }nd }d}n<|dd �dkr.t��\}}} } d}d� | ��}|s|}|dkr |r|dkr|}d}|dkr |dkrd}d }|||||f} ttt| ���atS)Nr"r�razMicrosoft Windowsr�� Microsoftz6.0rVrr�r�16bit�r��Java�, �OpenVMS�0)� _uname_cacher3r�r7r9rlr��anyr�r#rzr�r[rArYr?) rtrBrurr��infosr�r�r�r�r��valss r r�r�9s�� ������:<�(�*�*�D�/���g�w��%�%�� ��������w�w��&(�(��(�'�G����� ���� �u�:�:�*!� �W� � �+4�;�;� (�G�W�c�5��5�!3�!5�!5�G�� !�G� !�'2�6�':�':� $�F�G�W��,�,�,�"����;�&�&�7�i�+?�+?� #���G�B�Q�B�K�'�'�%�G�G� �G� �'� '� '�� &��W�$�$�%�G�G�%�G��F�F� �B�Q�B�Z�6� !� !�.6�j�j� +�G�V�V�V��F��i�i��'�'�G�� !� ������� �'�S�.�.��G��G������I�!5�!5����� �4��'�7� 2�D���%6��!=�!=�>�L� �s�-�,A�Ac�*� t��jSr�)r�rtr�r0r rtrt�s��� �7�7�>�r0c�*� t��jSr�)r�rBr�r0r rBrB�s��� �7�7�<�r0c�*� t��jSr�)r�rur�r0r ruru����� �7�7�?�r0c�*� t��jSr�)r�rr�r0r rr�rpr0c�*� t��jSr�)r�r�r�r0r r�r��rpr0c�*� t��jSr�)r�rCr�r0r rCrC�s��� �7�7� �r0zL([\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 [^\]]+\]?c�~� |� tj}t�|d��}|�|Sd|vr�d}|�d��rt �|��}nt�|��}|�tdt|��z���|� ��\}}}d}d}�nJtj �d��rhd}t�|��}|�tdt|��z���|� ��\}}}} } |�d}tj }n�d|vrYd}t�|��}|�tdt|��z���|� ��\}}}} d}nft�|��}|�td t|��z���|� ��\}}}} }d }|�d}n | r|d z| z}ttd ��rtj\} } } n*ttd ��rtj\} } } nd} d} |�d��} t%| ��dkr*| �d��d�| ��}||| | |||f}|t|<|S)N� IronPythonz*failed to parse IronPython sys.version: %sr"r��Jythonz&failed to parse Jython sys.version: %s�PyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %s�CPythonr��_git� _mercurialrUr(rh)r9r�_sys_version_cacher� startswith�_ironpython_sys_version_parserrs� _ironpython26_sys_version_parserr�reprrCrl�_sys_version_parser�_pypy_sys_version_parser�hasattrryrzrr5rWr[)� sys_versionrr�rsr� alt_version�compiler�buildno� builddate� buildtimer��branch�revisionr]s r � _sys_versionr��s����&���k� � � #� #�K�� 6� 6�F� ��� ��{�"�"��� � !� !�,� /� /� H�2�8�8��E�E�E�E�4�:�:�;�G�G�E� �=��<��[�!�!�"�#�#� #�*/�����&���h���� � � �� � �� (� (�$4���#�)�)�+�6�6�� �=��8��[�!�!�"�#�#� #�5:�L�L�N�N�1���)�Y�� � ��I��<��� �;� � ���(�.�.�{�;�;�� �=��C�!�+�.�.�/�0�0� 0�16�����.���)�Y����$�)�)�+�6�6�� �=��9��[�!�!�"�#�#� #��l�l�n�n� 9���)�Y���� � ��I�I� � 4�!�C��)�3�I��s�F����!�h���6�8�8� ��l� #� #��!�n���6�8�8����� � � �c���A� �1�v�v��{�{� ���� � � ��(�(�1�+�+���G�V�X�w� �8� L�F�&,��{�#� �Mr0c�,� t��dSr��r�r�r0r �python_implementationr�R���� �>�>�!� �r0c�,� t��dSr[r�r�r0r �python_versionr�_s��� �>�>�!� �r0c�l� tt��d�d����S)Nr&rU)r6r�rr�r0r �python_version_tupler�is.��� �����"�(�(��-�-� .� .�.r0c�,� t��dS)Nr(r�r�r0r � python_branchr�ts��� �>�>�!� �r0c�,� t��dS)NrVr�r�r0r �python_revisionr��r�r0c�0� t��dd�S)Nrdr�r�r�r0r � python_buildr��s��� �>�>�!�A�#� �r0c�,� t��dS)Nr�r�r�r0r �python_compilerr��s��� �>�>�!� �r0c ��� t�||fd��}|�|St��\}}}}}}||krd}|rt|||��\}}}|dkrt ��d} | rd}| }|dkr:t |��\} } } } |rt ||��}n�t |||| ��}n�|dvr)t��\}}t ||||d||z��}n�|dkrCt��\}}}\}}}|s|st |||��}nYt |||d |||��}nC|rt ||��}n0ttj ��\}}t ||||||��}|t||f<|S) Nr"�Darwinr�macOSr�)�Linux�withre�on) �_platform_cacherr�r�r�r�r�rSr�rr9r:)�aliased�terserrtrBrurr�rC� macos_release�rel�versr�r�rl�libcname� libcversion�rrr�r�r�r�rrs r rlrl�s����"� � �'�5�!1�4� 8� 8�F� ��� �:?���6�F�D�'�7�G�Y��)���� ��J�#/����#I�#I� ���� ����� � �!� � � � $��F�#�G� ���� )�'� 2� 2���T�3�� � @� ���1�1�H�H� ���'�3�?�?�H�H� �:� � � (� � ���+��V�W�g�y�#�%�k�1�3�3��� �6� � �7?�z�z�4��1�f�4�w� �G� � ?�� ?� ���'�:�:�H�H� ���'�!%�!(�*�g�?�?�H�H� � ;� ���1�1�H�H�(���8�8�M�D�'� ���'�!*�D�'�;�;�H�)1�O�W�e�$�%� �Or0zA^(?P[a-zA-Z0-9_]+)=(?P["']?)(?P.*)(?P=quote)$z\\([\\\$\"\'`]))z/etc/os-releasez/usr/lib/os-releasec���dddd�}|D]b}t�|��}|�Dt�d|�d����||�d��<�c|S)Nr��linux)�NAME�ID� PRETTY_NAMEz\1r�r�)�_os_release_liners�_os_release_unescape�sub�group)�linesrx�line�mos r �_parse_os_releaser��s������ � �D� ���� � #� #�D� )� )�� �>�%9�%=�%=��r�x�x��(�(�&�&�D����&�!�!� "�� �Kr0c�b� t��d}tD]Z} t|d���5}t|��addd��n #1swxYwYnI#t$r}|j}Yd}~�Sd}~wwxYwt |dd�t�������t���S)Nzutf-8)rizUnable to read files rf)�_os_release_cache�_os_release_candidatesr=r�r8�errnor[�copy)r�� candidaterI�es r �freedesktop_os_releaser�s���� ���/� � �I� ��)�g�6�6�6�=�!�(9�!�(<�(<�%�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=����� � � ������������� ������K�� � �2H�(I�(I�K�K��� � � !� !� #� #�#s9�A�A� A�A �A� A � A� A*�A%�%A*�__main__r�z--terse� nonaliasedz --nonaliased)Nr"r"r#)r")r"r"r"r`)r"r"r"r")r"r�r")r"r"r�r�r�)rr)K� __copyright__� __version__� collectionsr3�rer9r]rHr�compilerr!�ASCIIr?rSr_rrrzr�r�r�r�r�r�r�r�r�r�r�r�rr rr:rr#r%r?� namedtuplerArir�rtrBrurr�rCr�r}r~r�r{r�r�r�r�r�r�r�r�r�rlr�r�r�r�r�r�r9�argvr�r��print�exitr�r0r �r�s����r� �*� ����� � � � � � � � � � � � ��������� � �b� �R� � �B� �C� � � ��� �-�.�.� � � � ��r�z�B�DF�8� M�M� � H�H�H�H�T � � � ��b�j�-�.�.� �02�#<�0$�0$�0$�0$�f � � �� � � � �� �����( � � � � �!����[�[�[����$0(�0(�0(�0(�f)�)�)�,)�)�)�)�& � � �+�+�+�+�F&$�&$�&$�T���@ � � � � � � � $� $� $� $�N� � ����  �N��R�I�I�I�I�X � � �"�"�"�"�"�"�"�"�J+�+�+� )A�)A�)A�)A�)A��K���-�/�/�)A�)A�)A�X� �U�U�U�r��������������� � � �!�b�j���h�  � ��",�����8� "%�"%��$.�2�:�:�$�$� �&�2�:����� ��f�f�f�f�P � � ���� /� /� /� � � � � � ���������H�H�H�H�^�2�:�I����"�r�z�"4�5�5��C�������&$�$�$�2 �z��� ��� � 9�I���$9�E��3�8�+�N�N�c�h�4N�G� �E�(�(�7�E� "� "�#�#�#� �C�H�Q�K�K�K�K�K� �r0