R
    ¢¤Òj-%  ã                   óê  €   Q s ] QH3 ] QHGsGs ] PHs] PHs ] PHs ] PH&s	 ] PH*s
Q s\%       c   \ \Q2      %       c   Q sLPs\	%       c   \ \	Q2      %       c   Q sLPs\ \Q2      %       c   Q	 sLPs\ \Q
2      %       c   Q sLPs\
%       c   \ \
Q2      %       c   Q sLPsQ sQ sQ sQ sQQ ksQ sQ sQ sP!  \ c    Ps Kµh 9 h \ c    Ps	 K¿h 9 h \ c    Ps
 KÉh 9 h)z6
Low-level OS functionality wrappers used by pathlib.
)Ú*)ÚTextIOWrapperÚtext_encodingc                óÆ   €    [        [        O                   U 2      O                  Q2      o[
        O                  Q6  c   [        UQ2      oU!  [         c    Qo K2h 9 h)aN  Determine blocksize for fastcopying on Linux.
Hopefully the whole file will be copied in a single call.
The copying itself should be performed in a loop 'till EOF is
reached (0 return) so a blocksize smaller or bigger than the actual
file size should not make any difference, also in case the file
content changes while being copied.
i  € i   l        i   @)ÚmaxÚosÚfstatÚst_sizeÚOSErrorÚsysÚmaxsizeÚmin)ÚinfdÚ	blocksizes   & Ú(/usr/local/lib/python3.15/pathlib/_os.pyÚ_get_copy_blocksizer      sW   � ðÜœŸš ›×.Ñ.°Ó8ˆ	ô
 ‡{�{�WÔÜ˜	 7Ó+ˆ	ØÐøô ô ØŠ	ðús   ƒ*A Á	A ÁA ÁA ÚFICLONEc                óT   €   [         O                   U[         O                  U 2       P! )z¤
Perform a lightweight copy of two files, where the data blocks are
copied only when modified. This is known as Copy on Write (CoW),
instantaneous copy or reflink.
)ÚfcntlÚioctlr   ©Ú	source_fdÚ	target_fds   &&r   Ú_ficloner   +   s   � ô 	�Š�IœuŸ}™}¨iÖ8ó    Ú
_fcopyfilec                óR   €   [         O                   V[         O                  2       P! )zR
Copy a regular file content using high-performance fcopyfile(3)
syscall (macOS).
)Úposixr   Ú_COPYFILE_DATAr   s   &&r   r   r   7   s   � ô
 	×Ò˜¬u×/CÑ/CÖDr   Úcopy_file_rangec                óx   €   [        U 2      o] o [        O                   VUUQ5      oU] 6X  c   P! V4*          oJ-  )zî
Copy data from one regular mmap-like fd to another by using a
high-performance copy_file_range(2) syscall that gives filesystems
an opportunity to implement the use of reflinks or server-side
copy.
This should work on Linux >= 4.5 only.
)Ú
offset_dst)r   r   r   ©r   r   r   ÚoffsetÚsents   &&   r   Ú_copy_file_ranger%   B   s>   � ô (¨	Ó2ˆ	ØˆØÜ×%Ò% i¸IØ17ô9ˆDà�qŒyÙØ�NŠFr   Úsendfilec                ót   €   [        U 2      o] o [        O                   VV22      oU] 6X  c   P! V4*          oJ+  )zŒCopy data from one regular mmap-like fd to another by using
high-performance sendfile(2) syscall.
This should work on Linux >= 2.6.33 only.
)r   r   r&   r"   s   &&   r   Ú	_sendfiler(   W   s7   � ô
 (¨	Ó2ˆ	ØˆØÜ—;’;˜y°VÓGˆDØ�qŒyÙØ�NŠFr   Ú	CopyFile2c                ó6   €   [         O                   V] 2       P! )z?
Copy from one file to another using CopyFile2 (Windows only).
)Ú_winapir)   )ÚsourceÚtargets   &&r   Ú	copyfile2r.   h   s   � ô 	×Ò˜&¨!Ö,r   c                óÆ  €    U O                  2       oUO                  2       o [        %       c    [        V#2       P! [        %       c    [        V#2       P! [        %       c    [        V#2       P! [        %       c    [        V#2       P!  U O$                  oUO&                  oU Q2      9o%       c   U U2       J  P!  [         c2   oSO                  [        [
        [        [        17  c   Sg Po=KºPo=hh 9 h [         c(   oSO                  [        [        17  c   Sg Po=KÕPo=hh 9 h [         c(   oSO                  [        [        17  c   Sg Po=KðPo=hh 9 h [         c#   oSO                  [        6w  c   Sg Po=CKPo=hh 9 h [         c*   oS O                  Sm        SO                  Sm        SgPo=hh 9 h ["         c     CKRh 9 h)zH
Copy data from file-like object source_f to file-like object target_f.
i   )Úfilenor   r
   ÚerrnoÚEBADFÚ
EOPNOTSUPPÚETXTBSYÚEXDEVr   ÚEINVALÚENOTSUPr%   r(   ÚENOTSOCKÚnameÚfilenameÚ	filename2Ú	ExceptionÚreadÚwrite)Úsource_fÚtarget_fr   r   ÚerrÚread_sourceÚwrite_targetÚbufs   &&      r   ÚcopyfileobjrE   q   s§  � ð*Ø—O‘OÓ%ˆ	Ø—O‘OÓ%ˆ	ð$	ç‹xð"Ü˜YÔ2Ù÷ ‹zð"Ü˜yÔ4Ù÷  Óð"Ü$ YÔ:Ù÷ ‹yð"Ü˜iÔ3Ùð ð —-‘-€KØ—>‘>€LÙ˜[Ó)Ð
)ˆ#Ö
)Ù�SÖñ *øôG ô "Ø—y‘y¬´
¼GÄUÐ(KÔKØ!˜	ô Lûð"ûô ô "Ø—y‘y¬´Ð(9Ô9Ø!˜	ô :ûð"ûô ô "Ø—y‘y¬´%Ð(8Ô8Ø!˜	ô 9ûð"ûô ô "Ø—y‘y¤HÔ,Ø!˜	õ -ûð"ûô ô 	à#Ÿ=™=ˆCŒLØ$ŸM™MˆCŒMØˆIûð		ûôG ô Úðús  ƒ G ¤F ±C ¾F ÁD  ÁF Á%D5 Á2F Á?E* Ã	C=ÃC=Ã$C8Ã1C8Ã3F Ã8C=Ã=F Ä 	D2Ä
D2ÄD-Ä&D-Ä(F Ä-D2Ä2F Ä5	E'Ä?E'Å E"ÅE"ÅF Å"E'Å'F Å*	FÅ4FÅ5FÆ
FÆF ÆFÆF Æ	GÆ$GÆ%$G	Ç	GÇ	G ÇG ÇG c                 ó˜   €   [        U 2      o UO                  oU U 2      !  [         c    SO                  o[	        S Q 02      Pgh 9 h)z can't be opened for reading)ÚtypeÚ__open_reader__ÚAttributeErrorÚ__name__Ú	TypeError)ÚobjÚclsÚopen_readerÚcls_names   &   r   Ú_open_readerrP   ¨   sY   � Ü
ˆs‹)€Cð Ø×)Ñ)ˆñ
 ˜3ÓÐøô	 ô MØ—<‘<ˆÜ˜8˜*Ð$@ÐAÓBÈÐLðMúó   Ž" ¢	A	¬A	c                 ó˜   €   [        U 2      o UO                  oU V2      !  [         c    SO                  o[	        S Q 02      Pgh 9 h)z can't be opened for writing)rG   Ú__open_writer__rI   rJ   rK   )rL   ÚmoderM   Úopen_writerrO   s   &&   r   Ú_open_writerrV   ³   sY   � Ü
ˆs‹)€Cð&Ø×)Ñ)ˆñ
 ˜3Ó%Ð%øô	 ô MØ—<‘<ˆÜ˜8˜*Ð$@ÐAÓBÈÐLðMúrQ   c                 ó˜   €   [        U 2      o UO                  oU V2      !  [         c    SO                  o[	        S Q 02      Pgh 9 h)z can't be opened for updating)rG   Ú__open_updater__rI   rJ   rK   )rL   rT   rM   Úopen_updaterrO   s   &&   r   Ú_open_updaterrZ   ¾   sY   � Ü
ˆs‹)€Cð'Ø×+Ñ+ˆñ
 ˜CÓ&Ð&øô	 ô NØ—<‘<ˆÜ˜8˜*Ð$AÐBÓCÈÐMðNúrQ   c                ó  €   UP6w  c   [        Q2      gQU7  oU%       c   [        U2      o [        VV#VE2      !  [         c     Lh 9 hS%       f.   Sd   [        Q2      gSd   [        Q2      gSd   [        Q2      gPO	                  [        Q S2       2      2      oSQ6X  c   [        S 2      oL;SQ	7   c   [        X2      oL(SQ
7   c   [        X]*          2      oL[        QS 02      gS%       c   [        XsXE2      oS! )a  
Open the file pointed to by this path and return a file object, as
the built-in open() function does.

Unlike the built-in open() function, this function additionally accepts
'openable' objects, which are objects with any of these special methods:

    __open_reader__()
    __open_writer__(mode)
    __open_updater__(mode)

'__open_reader__' is called for 'r' mode; '__open_writer__' for 'a', 'w'
and 'x' modes; and '__open_updater__' for 'r+' and 'w+' modes. If text
mode is requested, the result is wrapped in an io.TextIOWrapper object.
zbuffer size can't be customizedÚbz-binary mode doesn't take an encoding argumentz+binary mode doesn't take an errors argumentz+binary mode doesn't take a newline argumentc              3   óB   €  S F      €   D  pQ 7  f   J  Uw €	   J  	  P! 3h)Úbt© )Ú.0Úcs   & r   Ú	<genexpr>Úvfsopen.<locals>.<genexpr>ì   s   ù¢Té � ¡T °d©]Ÿ!›!£Tùs   ‡”Úrzinvalid mode: )ÚaÚwÚx)z+rz+w)
Ú
ValueErrorr   ÚopenrK   ÚjoinÚsortedrP   rV   rZ   r   )rL   rT   Ú	bufferingÚencodingÚerrorsÚnewlineÚtextÚstreams   &&&&&&  r   Úvfsopenrr   É   s  � ð" �B„ÜÐ:Ó;Ð;Ø�d‰?€Dßô ! Ó*ˆðÜ�C˜y°FÓDÐDøÜô ÙðúçØÒÜÐLÓMÐMØÒÜÐJÓKÐKØÒÜÐJÓKÐKØ�7‰7”6Ñ; TÓ;Ó;Ó<€DØˆs„{Ü˜cÓ"‰Ø	�Ô	 Ü˜cÓ(‰Ø	�Ô	Ü˜s¨¥GÓ,‰ä˜>¨$¨Ð0Ó1Ð1ßÜ˜v°ÓAˆØ€Ms   ­: º	AÁAÁAc                ó˜   €   [        U 2      o UO                  oU U 2      !  [         c    SO                  o[	        QS 02      Pgh 9 h)z<
Return the string representation of a virtual path object.
z"expected JoinablePath object, not )rG   Ú__vfspath__rI   rJ   rK   )rL   rM   Úvfspath_methodrO   s   &   r   Úvfspathrv   ú   sY   � ô ˆs‹)€Cð#ØŸ™ˆñ
 ˜cÓ"Ð"øô	 ô SØ—<‘<ˆÜÐ<¸X¸JÐGÓHÈdÐRðSúrQ   c                ó¼   €   V6X  c   [        [        Q2      oL#VO                  7   c   [        [        Q2      oLP! [        U 2      Um        [        U2      Um        Ug)z>
Raise OSError(EINVAL) if the other path is within this path.
z#Source and target are the same pathz&Source path is a parent of target path)r
   r6   Úparentsrv   r:   r;   )r,   r-   rA   s   && r   Úensure_distinct_pathsry     sL   � ð ÔÜ”fÐCÓD‰Ø	—>‘>Ô	!Ü”fÐFÓG‰áÜ˜6“?€C„LÜ˜F“O€C„MØ
€Ir   c                óP  €    U O                   O                  oUO                   O                  o U 2       U 2       6w  c   P!  [        [
        Q2      o[        U 2      Um        [        U2      Um        Ug [        [        1 c     P! h 9 h [         c    X6w  c    P!  K`h 9 h)z=
Raise OSError(EINVAL) if both paths refer to the same file.
z#Source and target are the same file)	ÚinfoÚ_file_idr
   rh   rI   r6   rv   r:   r;   )r,   r-   Úsource_file_idÚtarget_file_idrA   s   &&   r   Úensure_different_filesr     s¡   � ðØŸ™×-Ñ-ˆØŸ™×-Ñ-ˆð
	ÙÓ¡>Ó#3Ô3Ùð 4ô ”&Ð?Ó
@€CÜ˜6“?€C„LÜ˜F“O€C„MØ
€Iøô œÐ$ô 	Úð	ûô ô ØÔÚñ ðús.   ƒ,B °A6 Á6BÂBÂ
BÂ	B%ÂB%Â$B%)rd   éÿÿÿÿNNN)Ú__doc__r1   Úior   r   r   r   r   ÚImportErrorr   r+   r   Úhasattrr   r   r%   r(   r.   rE   rP   rV   rZ   rr   rv   ry   r   r_   r   r   Ú<module>r…      s0  ññô ß +Û 	Û 
ðÛðÛðÛò
÷& 	‰W�U˜I×&Ò&ó9ð €H÷ 	‰W�U˜L×)Ò)óEð €Jñ ˆ2Ð ×!Ò!óð" Ðñ ˆ2ˆz×Òóð €I÷ ‰w�w ×,Ò,ó-ð €Iò4òn ò&ò'ô.òb#òô(øðc ô Ø‚Eðûð ô Ø‚Eðûð ô Ø‚GðúsE   šC ŸC ¤C& ÃCÃCÃCÃC#ÃC#Ã"C#Ã&C2Ã,C2Ã1C2