§
    
Á³gu"  ã            	       ó.  — d Z ddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ ddlmZ  ej        e¦  «        Zeez   Z	 ddlZeez  Zn # e$ r e                     d¦  «         Y nw xY w	 ddlZeez  Zn # e$ r e                     d	¦  «         Y nw xY wd
efd„Zded
e	e         fd„Z dee         d
e!fd„Z"deded
e!fd„Z#ded
dfd„Z$ded
e!fd„Z%ddedede!d
dfd„Z&deded
dfd„Z'	 ddedede
e         d
dfd„Z(dS ) zUtilities related archives.
é    N)ÚIterableÚListÚOptional)ÚZipInfo)ÚInstallationError)ÚBZ2_EXTENSIONSÚTAR_EXTENSIONSÚXZ_EXTENSIONSÚZIP_EXTENSIONS)Ú
ensure_dirzbz2 module is not availablezlzma module is not availableÚreturnc                  óV   — t          j        d¦  «        } t          j        | ¦  «         | S )zBGet the current umask which involves having to set it temporarily.r   )ÚosÚumask)Úmasks    ú[/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_internal/utils/unpacking.pyÚcurrent_umaskr   +   s!   € åŒ8�A‰;Œ;€DÝ„HˆT�N„N€NØ€Kó    Úpathc                 ó*  — |                       d¦  «                              d¦  «        } d| v rJd| v r,|                      d¦  «        |                      d¦  «        k     sd| vr|                      dd¦  «        S d| v r|                      dd¦  «        S | dgS )Nú/ú\é   Ú )ÚlstripÚfindÚsplit©r   s    r   Úsplit_leading_dirr   2   s–   € Ø�;Š;�sÑÔ×"Ò" 4Ñ(Ô(€DØ
ˆd€{€{Ø	�ˆˆ˜$Ÿ)š) C™.œ.¨4¯9ª9°T©?¬?Ò:Ð:¸tÈ4Ð?OÐ?Oà�zŠz˜#˜qÑ!Ô!Ð!Ø	�ˆˆØ�zŠz˜$ Ñ"Ô"Ð"à�bˆzÐr   Úpathsc                 ó^   — d}| D ]'}t          |¦  «        \  }}|s dS |€|}Œ||k    r dS Œ(dS )zyReturns true if all the paths have the same leading path name
    (i.e., everything is in one subdirectory in an archive)NFT)r   )r    Úcommon_prefixr   ÚprefixÚrests        r   Úhas_leading_dirr%   >   sa   € ð €MØð ð ˆÝ(¨Ñ.Ô.‰ˆ�Øð 	Ø�5�5ØÐ"Ø"ˆMˆMØ�}Ò$Ð$Ø�5�5ð %àˆ4r   Ú	directoryÚtargetc                 óÌ   — t           j                             | ¦  «        }t           j                             |¦  «        }t           j                             ||g¦  «        }||k    S )zL
    Return true if the absolute path of target is within the directory
    )r   r   ÚabspathÚcommonprefix)r&   r'   Úabs_directoryÚ
abs_targetr#   s        r   Úis_within_directoryr-   M   sO   € õ ”G—O’O IÑ.Ô.€MÝ”—’ Ñ(Ô(€JåŒW×!Ò! =°*Ð"=Ñ>Ô>€FØ�]Ò"Ð"r   c                 óV   — t          j        | dt          ¦   «          z  dz  ¦  «         dS )zx
    Make file present at path have execute for user/group/world
    (chmod +x) is no-op on windows per python docs
    iÿ  éI   N)r   Úchmodr   r   s    r   Ú2set_extracted_file_to_default_mode_plus_executabler1   X   s-   € õ
 „HˆT�E�]™_œ_Ð,Ñ,¨uÑ4Ñ6Ô6Ð6Ð6Ð6r   Úinfoc                 óf   — | j         dz	  }t          |ot          j        |¦  «        o|dz  ¦  «        S )Né   r/   )Úexternal_attrÚboolÚstatÚS_ISREG)r2   Úmodes     r   Úzip_item_is_executabler:   `   s7   € ØÔ Ñ#€Dõ �Ð<�œ dÑ+Ô+Ð<°°u±Ñ=Ô=Ð=r   TÚfilenameÚlocationÚflattenc                 ó|  — t          |¦  «         t          | d¦  «        }	 t          j        |d¬¦  «        }t	          |                     ¦   «         ¦  «        o|}|                     ¦   «         D �]ž}|j        }|}|rt          |¦  «        d         }t          j
                             ||¦  «        }t          j
                             |¦  «        }	t          ||¦  «        s&d}
t          |
                     | ||¦  «        ¦  «        ‚|                     d¦  «        s|                     d¦  «        rt          |¦  «         ŒÒt          |	¦  «         |                     |¦  «        }	 t          |d¦  «        5 }t#          j        ||¦  «         d	d	d	¦  «         n# 1 swxY w Y   |                     ¦   «          t)          |¦  «        rt+          |¦  «         �Œh# |                     ¦   «          t)          |¦  «        rt+          |¦  «         w w xY w	 |                     ¦   «          d	S # |                     ¦   «          w xY w)
aŸ  
    Unzip the file (with path `filename`) to the destination `location`.  All
    files are written based on system defaults and umask (i.e. permissions are
    not preserved), except that regular file members with any execute
    permissions (user, group, or world) have "chmod +x" applied after being
    written. Note that for windows, any execute changes using os.chmod are
    no-ops per the python docs.
    ÚrbT)Ú
allowZip64r   zQThe zip file ({}) has a file ({}) trying to install outside target directory ({})r   r   ÚwbN)r   ÚopenÚzipfileÚZipFiler%   ÚnamelistÚinfolistr;   r   r   r   ÚjoinÚdirnamer-   r   ÚformatÚendswithÚshutilÚcopyfileobjÚcloser:   r1   )r;   r<   r=   ÚzipfpÚzipÚleadingr2   ÚnameÚfnÚdirÚmessageÚfpÚdestfps                r   Ú
unzip_filerW   g   sX  € õ ˆxÑÔÐÝ�˜4Ñ Ô €Eð ÝŒo˜e°Ð5Ñ5Ô5ˆÝ! #§,¢,¡.¤.Ñ1Ô1Ð=°gˆØ—L’L‘N”Nð 	Oñ 	OˆDØ”=ˆDØˆBØð 0Ý& tÑ,Ô,¨QÔ/�Ý”—’˜h¨Ñ+Ô+ˆBÝ”'—/’/ "Ñ%Ô%ˆCÝ& x°Ñ4Ô4ð Pð4ð õ (¨¯ª°xÀÀXÑ(NÔ(NÑOÔOÐOØ�{Š{˜3ÑÔð O 2§;¢;¨tÑ#4Ô#4ð Oå˜2‘”��å˜3‘”�ð —X’X˜d‘^”^�ðOÝ˜b $™œð 7¨6ÝÔ*¨2¨vÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð —H’H‘J”J�JÝ-¨dÑ3Ô3ð OÝJÈ2ÑNÔNÐNùøð —H’H‘J”J�JÝ-¨dÑ3Ô3ð OÝJÈ2ÑNÔNÐNÐNðOøøøð5	Oð: 	�Š‰Œˆˆˆøˆ�Š‰ŒˆˆøøøsH   ¡EH% Å%GÅ5FÆGÆF	ÆGÆF	ÆGÆ"4H% Ç5HÈH% È%H;c                 ó.  — t          |¦  «         |                      ¦   «                              d¦  «        s'|                      ¦   «                              d¦  «        rd}n¥|                      ¦   «                              t          ¦  «        rd}nv|                      ¦   «                              t          ¦  «        rd}nG|                      ¦   «                              d¦  «        rd}nt
                               d| ¦  «         d	}t          j        | |d
¬¦  «        }	 t          d„ | 
                    ¦   «         D ¦   «         ¦  «        }| 
                    ¦   «         D �]}|j        }|rt          |¦  «        d         }t          j                             ||¦  «        }t!          ||¦  «        s&d}t#          |                     | ||¦  «        ¦  «        ‚|                     ¦   «         rt          |¦  «         Œ›|                     ¦   «         rQ	 |                     ||¦  «         ŒÇ# t,          $ r,}	t
                               d| |j        |	¦  «         Y d}	~	Œød}	~	ww xY w	 |                     |¦  «        }
nA# t0          t2          f$ r-}	t
                               d| |j        |	¦  «         Y d}	~	�ŒPd}	~	ww xY wt          t          j                             |¦  «        ¦  «         |
€J ‚t          |d¦  «        5 }t7          j        |
|¦  «         ddd¦  «         n# 1 swxY w Y   |
                     ¦   «          |                     ||¦  «         |j        dz  rtA          |¦  «         �Œ
	 |                     ¦   «          dS # |                     ¦   «          w xY w)aŸ  
    Untar the file (with path `filename`) to the destination `location`.
    All files are written based on system defaults and umask (i.e. permissions
    are not preserved), except that regular file members with any execute
    permissions (user, group, or world) have "chmod +x" applied after being
    written.  Note that for windows, any execute changes using os.chmod are
    no-ops per the python docs.
    z.gzz.tgzzr:gzzr:bz2zr:xzz.tarÚrz-Cannot determine compression type for file %szr:*zutf-8)Úencodingc                 ó   — g | ]	}|j         ‘Œ
S © )rQ   )Ú.0Úmembers     r   ú
<listcomp>zuntar_file.<locals>.<listcomp>¯   s   € Ð"NÐ"NÐ"N°6 6¤;Ð"NÐ"NÐ"Nr   r   zQThe tar file ({}) has a file ({}) trying to install outside target directory ({})z/In the tar file %s the member %s is invalid: %sNrA   r/   )!r   ÚlowerrJ   r   r
   ÚloggerÚwarningÚtarfilerB   r%   Ú
getmembersrQ   r   r   r   rG   r-   r   rI   ÚisdirÚissymÚ_extract_memberÚ	ExceptionÚextractfileÚKeyErrorÚAttributeErrorrH   rK   rL   rM   Úutimer9   r1   )r;   r<   r9   ÚtarrP   r^   rR   r   rT   ÚexcrU   rV   s               r   Ú
untar_filero   •   sÚ  € õ ˆxÑÔÐØ‡~‚~ÑÔ× Ò  Ñ'Ô'ð ¨8¯>ª>Ñ+;Ô+;×+DÒ+DÀVÑ+LÔ+Lð ØˆˆØ	�ŠÑ	Ô	×	"Ò	"¥>Ñ	2Ô	2ð ØˆˆØ	�ŠÑ	Ô	×	"Ò	"¥=Ñ	1Ô	1ð 	ØˆˆØ	�ŠÑ	Ô	×	"Ò	" 6Ñ	*Ô	*ð Øˆˆå�ŠØ;Øñ	
ô 	
ð 	
ð ˆÝ
Œ,�x °Ð
8Ñ
8Ô
8€Cð4Ý!Ð"NÐ"N¸S¿^º^Ñ=MÔ=MÐ"NÑ"NÔ"NÑOÔOˆØ—n’nÑ&Ô&ð 0	Mñ 0	MˆFØ”ˆBØð .Ý& rÑ*Ô*¨1Ô-�Ý”7—<’< ¨"Ñ-Ô-ˆDÝ& x°Ñ6Ô6ð Rð4ð õ (¨¯ª°xÀÀxÑ(PÔ(PÑQÔQÐQØ�|Š|‰~Œ~ð %MÝ˜4Ñ Ô Ð Ð Ø—’‘”ð #MðØ×'Ò'¨°Ñ5Ô5Ð5Ð5øÝ ð 	ð 	ð 	õ —N’NØIØ ØœØñ	ô ð ð �H�H�H�Høøøøð	øøøðØŸš¨Ñ0Ô0�B�BøÝ ¥.Ð1ð 	ð 	ð 	õ —N’NØIØ ØœØñ	ô ð ð �H�H�H‘Høøøøð	øøøõ �2œ7Ÿ?š?¨4Ñ0Ô0Ñ1Ô1Ð1Ø�~�~�~Ý˜$ Ñ%Ô%ð 3¨ÝÔ& r¨6Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3à—’‘
”
�
à—	’	˜& $Ñ'Ô'Ð'à”; Ñ&ð MÝFÀtÑLÔLÐLùða0	Mðd 	�	Š	‰Œˆˆˆøˆ�	Š	‰Œˆˆøøøs‡   ÄC.M> ÈH$È#M> È$
IÈ."IÉM> ÉIÉM> ÉI4É3M> É4J2Ê"J-Ê'M> Ê-J2Ê2AM> Ë5LÌM> ÌL	ÌM> ÌL	ÌAM> Í>NÚcontent_typec                 óJ  — t           j                             | ¦  «        } |dk    s@|                      ¦   «                              t
          ¦  «        st          j        | ¦  «        r(t          | ||                      d¦  «         ¬¦  «         d S |dk    sPt          j
        | ¦  «        s<|                      ¦   «                              t          t          z   t          z   ¦  «        rt          | |¦  «         d S t                               d| ||¦  «         t#          d|› �¦  «        ‚)Nzapplication/zipz.whl)r=   zapplication/x-gzipzZCannot unpack file %s (downloaded from %s, content-type: %s); cannot detect archive formatz#Cannot determine archive format of )r   r   Úrealpathr`   rJ   r   rC   Ú
is_zipfilerW   rc   Ú
is_tarfiler	   r   r
   ro   ra   Úcriticalr   )r;   r<   rp   s      r   Úunpack_filerv   å   s&  € õ
 Œw×Ò Ñ)Ô)€HàÐ)Ò)Ð)Ø�>Š>ÑÔ×$Ò$¥^Ñ4Ô4ð 	*åÔ˜hÑ'Ô'ð 	*õ 	�8˜X°8×3DÒ3DÀVÑ3LÔ3LÐ/LÐMÑMÔMÐMÐMÐMàÐ,Ò,Ð,ÝÔ˜hÑ'Ô'ð 	-à�>Š>ÑÔ×$Ò$¥^µnÑ%DÅ}Ñ%TÑUÔUð 	-õ 	�8˜XÑ&Ô&Ð&Ð&Ð&õ 	�Šð+àØØñ	
ô 	
ð 	
õ  Ð PÀhÐ PÐ PÑQÔQÐQr   )T)N))Ú__doc__Úloggingr   rK   r7   rc   rC   Útypingr   r   r   r   Úpip._internal.exceptionsr   Úpip._internal.utils.filetypesr   r	   r
   r   Úpip._internal.utils.miscr   Ú	getLoggerÚ__name__ra   ÚSUPPORTED_EXTENSIONSÚbz2ÚImportErrorÚdebugÚlzmaÚintr   Ústrr   r6   r%   r-   r1   r:   rW   ro   rv   r\   r   r   ú<module>r†      s.  ððð ð €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð à 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /à	ˆÔ	˜8Ñ	$Ô	$€ð &¨Ñ6Ð ð0Ø€J€J€Jà˜NÑ*ÐÐøØð 0ð 0ð 0Ø
‡L‚LÐ.Ñ/Ô/Ð/Ð/Ð/ð0øøøð1à€K€K€Kà˜MÑ)ÐÐøØð 1ð 1ð 1Ø
‡L‚LÐ/Ñ0Ô0Ð0Ð0Ð0ð1øøøð�sð ð ð ð ð	˜Cð 	 D¨¤Ið 	ð 	ð 	ð 	ð˜8 Cœ=ð ¨Tð ð ð ð ð# 3ð #°ð #¸ð #ð #ð #ð #ð7¸Sð 7ÀTð 7ð 7ð 7ð 7ð> ð >¨Tð >ð >ð >ð >ð+ð +˜ð +¨ð +°dð +Àdð +ð +ð +ð +ð\M˜ð M¨ð M°ð Mð Mð Mð Mðf #'ðRð RØðRàðRð ˜3”-ðRð 
ð	Rð Rð Rð Rð Rð Rs$   Á	A# Á#B Á?B Â	B ÂB+Â*B+