+
    Bi4                     N   ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIH	t	 ^ RI
Ht ]	! RR.R7      t]	! RR.R7      t ! R	 R
4      t] P                  ! ]RJ R4       ! R R]] P                   4      4       t ! R R]] P                   4      t]R8X  d   ] P(                  ! 4        R# R# )    N)is_apple	os_helpersocket_helper)import_fresh_module)TESTFNstat_stat)fresh)blockedc                   &  a  ] tR t^t o Rt0 RRmt0 RSmt0 RTmtR^ R^R^R^R^R^R^R	^R
^R^	/
t/ RRbRRbRRbRRbRRbRRbRRbR^bR^bR^@bR^@bR^8bR^ bR^bR^bR ^bR!^bR"^R#^/Ct	/ R$^ bR%RbR&^@bR'^bR(R)bR*^bR+R,bR-^bR.R/bR0R1bR2R3bR4^bR5RbR6RbR7^bR8RbR9R:bt
R; t]t]R<3R= ltR> t]P"                  R? 4       t]P"                  R@ 4       t]P(                  RA 4       t]P.                  ! ]! ]RB4      RC4      RD 4       t]P.                  ! ]P6                  RE8H  RF4      RG 4       t]P<                  RH 4       tRI t RJ t!]P.                  ! ]"PF                  RK8H  RL4      RM 4       t$]P.                  ! ]"PF                  RN8H  RO4      RP 4       t%RQt&V t'R# )UTestFilemodeNST_MODEST_INOST_DEVST_NLINKST_UIDST_GIDST_SIZEST_ATIMEST_MTIMEST_CTIMES_ISUID   S_ISGID   S_ENFMTS_ISVTX   S_IRWXU  S_IRUSR   S_IREADS_IWUSRS_IWRITES_IXUSRS_IEXECS_IRWXGS_IRGRPS_IWGRPS_IXGRPS_IRWXOS_IROTHS_IWOTHS_IXOTHFILE_ATTRIBUTE_ARCHIVEFILE_ATTRIBUTE_COMPRESSEDFILE_ATTRIBUTE_DEVICEFILE_ATTRIBUTE_DIRECTORYFILE_ATTRIBUTE_ENCRYPTED @  FILE_ATTRIBUTE_HIDDENFILE_ATTRIBUTE_INTEGRITY_STREAM   FILE_ATTRIBUTE_NORMAL"FILE_ATTRIBUTE_NOT_CONTENT_INDEXED    FILE_ATTRIBUTE_NO_SCRUB_DATA   FILE_ATTRIBUTE_OFFLINE   FILE_ATTRIBUTE_READONLYFILE_ATTRIBUTE_REPARSE_POINTFILE_ATTRIBUTE_SPARSE_FILEFILE_ATTRIBUTE_SYSTEMFILE_ATTRIBUTE_TEMPORARYFILE_ATTRIBUTE_VIRTUAL   c                     \         P                  ! \        4       R #   \         d3     \         P                  ! \        4        R #   \         d      R # i ; ii ; iN)osremover   OSErrorrmdirselfs   &%/usr/lib/python3.14/test/test_stat.pysetUpTestFilemode.setUpR   sE    	IIf 	  	s&    AAAAAATc                    V'       d"   \         P                  ! V4      P                  pM \         P                  ! V4      P                  pV P                  P                  V4      pW43# rH   )rI   lstatst_moder   statmodfilemode)rN   fnamerS   rT   modestrs   &&&  rO   get_modeTestFilemode.get_mode\   sH    hhuo--Gggen,,G,,''0    c                   \        V P                  R VP                  R4      ,           4      pV P                  V P                  P	                  V4      V4       RV,           pV P
                   Fg  p\        V P                  VR4      pVf   WT8X  d   \        V4      hK1  WT8X  d   V P                  V! V4      4       KP  V P                  V! V4      4       Ki  	  R# )S_IFFS_ISN)	getattrrU   lstripassertEqualS_IFMTformat_funcs
ValueError
assertTrueassertFalse)rN   namemodefmttestnamefuncnamefuncs   &&&    rO   
assertS_ISTestFilemode.assertS_ISd   s    dllFT[[-=$=>,,T2C8D=))H4<<48D|'$X..#T
+  d, *r[   c                   \        \        R 4      ;_uu_ 4         RRR4       \        P                  R8X  Ed\   \        P                  ! \        R4       V P                  4       w  rV P                  VR4       V P                  RV4       V P                  P                  V4      pV P                  VV P                  P                  4       V P                  V P                  P                  V4      R4       \        P                  ! \        ^84       V P                  4       w  rV P                  VR4       V P                  RV4       V P                  V P                  P                  V4      V P                  P                  4       \        P                  ! \        ^4       V P                  4       w  rV P                  VR4       V P                  RV4       V P                  V P                  P                  V4      V P                  P                  4       \        P                  ! \        R	4       V P                  4       w  rV P                  RV4       V P                  VR
4       V P                  V P                  P                  V4      R	4       R# \        P                  ! \        R4       V P                  4       w  rV P                  VR,          R4       V P                  RV4       V P                  V P                  P                  V4      R	4       \        P                  ! \        R4       V P                  4       w  rV P                  VR4       V P                  RV4       V P                  V P                  P                  V4      V P                  P                   4       V P                  V P                  P                  V4      R4       R#   + '       g   i     EL; i)wNposixr    z
-rwx------REGz
?rwx------z
----rwx---z
-------rwxi$  z
-r--r--r--i@  :N   Nz-r-z-rwi  )openr   rI   rh   chmodrY   rb   rn   rU   S_IMODEr   rV   r(   r,   assertStartsWithrc   S_IFREG)rN   rT   rX   imodes   &   rO   	test_modeTestFilemode.test_modeu   s   &# 77gHHVU##}}GWl3OOE7+LL((1EU!\\113T\\2259)+ HHVU##}}GWl3OOE7+T\\11':!\\113 HHVU##}}GWl3OOE7+T\\11':!\\113 HHVU##}}GOOE7+Wl3T\\11':EBHHVU##}}GWR[%0OOE7+T\\11':EBHHVU##}}G!!'51OOE7+T\\009!\\113T\\11':EB[ s   OO%	c                <   \         P                  ! \        4       \         P                  ! \        R 4       V P	                  4       w  rV P                  RV4       \         P                  R8X  d   V P                  VR4       R# V P                  V^ ,          R4       R# )r    DIRrr   z
drwx------dN)rI   mkdirr   rv   rY   rn   rh   rb   )rN   rT   rX   s   &  rO   test_directoryTestFilemode.test_directory   sh    

==?w'77gWl3WQZ-r[   c                N    \         P                  ! \         P                  ! 4       \        4       V P	                  4       w  rV P                  V^ ,          R4       V P                  RV4       R#   \        \        3 d%   p\        P                  ! \        T4      4      hRp?ii ; i)r   lLNKN)rI   symlinkgetcwdr   rY   rb   rn   rK   NotImplementedErrorunittestSkipTeststr)rN   rT   rX   errs   &   rO   	test_linkTestFilemode.test_link   sz    	,JJryy{F+  $}}GWQZ-OOE7+ ,- 	.##CH--	.s   .A/ /B$ BB$mkfifozos.mkfifo not availablec                   \         P                  R 8X  d&   \        P                  P	                  R\
        4      pM\
        pV P                  \        P                  V4        \        P                  ! VR4       V P                  V4      w  r4V P                  VR4       V P                  RV4       R#   \         d#   pT P                  RT,          4        Rp?LaRp?ii ; i)vxworksz/fifos/r    zos.mkfifo(): %sNz
prwx------FIFO)sysplatformrI   pathjoinr   
addCleanupr   unlinkr   PermissionErrorskipTestrY   rb   rn   )rN   	fifo_patherT   rX   s   &    rO   	test_fifoTestFilemode.test_fifo   s    <<9$Y7II	(()4	1IIi'  ==3,/(	  	1MM+a/00	1s   "B2 2C=CCrr   zrequires Posixc                   \         P                  P                  \         P                  4      '       dO   V P	                  \         P                  R R7      w  rV P                  V^ ,          R4       V P                  RV4       R Fk  p\         P                  P                  V4      '       g   K*  V P	                  VR R7      w  rV P                  V^ ,          R4       V P                  RV4        R# 	  R# )F)rS   cCHRbBLKN)z/dev/sdaz/dev/hda)rI   r   existsdevnullrY   rb   rn   )rN   rT   rX   blockdevs   &   rO   test_devicesTestFilemode.test_devices   s    77>>"**%%#}}RZZu}EGWQZ-OOE7+0Hww~~h''#'===#G   S1w/ 1r[   c                <   \         P                   ! \         P                  4      ;_uu_ 4       pVP                  \        4       V P	                  4       w  r#V P                  V^ ,          R4       V P                  RV4       RRR4       R#   + '       g   i     R# ; i)r   sSOCKN)socketAF_UNIXbindr   rY   rb   rn   )rN   r   rT   rX   s   &   rO   test_socketTestFilemode.test_socket   sa    ]]6>>**aFF6N#}}GWQZ-OOFG,	 +***s   AB

B	c                   V P                   P                  4        F-  w  r\        V P                  V4      pV P	                  W#V4       K/  	  V P
                  P                  4        F-  w  r\        V P                  V4      pV P	                  W#V4       K/  	  V P                   F/  p\        V P                  V4      pV P                  V\        4       K1  	  V P                   F/  p\        V P                  V4      pV P                  V\        4       K1  	  V P                   FK  p\        V P                  V4      pV P                  \        V4      4       V P	                  V! ^ 4      ^ 4       KM  	  R# )r   N)stat_structitemsr`   rU   rb   permission_bits
file_flagsassertIsInstanceintformatsrd   rf   callable)rN   keyvaluemodvaluerm   s   &    rO   test_module_attributes#TestFilemode.test_module_attributes   s    **002JCt||S1HUc2 3 ..446JCt||S1HUc2 7 ??Ct||S1H!!(C0 # <<Ct||S1H!!(C0   $$C4<<-DOOHTN+T!Wa( %r[   c                J   V P                  V P                  P                  V P                  P                  ,          4       V P                   EFQ  pVP                  R 4      '       dG   V P                  \        V P                  V4      V P                  P                  ,          V R24       Ka  \        '       d   V P                  \        J d   VR8X  d   V P                  V P                  P                  V P                  P                  ,          R4       V P                  V P                  P                  V P                  P                  ,          R4       EK  V P                  \        V P                  V4      V P                  P                  ,          V R24       EKT  	  R# )UFz not in UF_SETTABLESF_DATALESSzSF_DATALESS not in SF_SYNTHETICzSF_DATALESS in SF_SETTABLEz notin SF_SETTABLEN)rg   rU   UF_SETTABLESF_SETTABLEr   
startswithrf   r`   r   c_statr   SF_SYNTHETIC)rN   flags   & rO   test_flags_consistent"TestFilemode.test_flags_consistent   s   11DLL4L4LLMOODt$$d ;dll>V>V V[_Z``sXtudllf49N 8 84<<;T;T TVwx  !9!9DLL<T<T!TVrsd ;dll>V>V V[_Z``rXst $r[   win32z-FILE_ATTRIBUTE_* constants are Win32 specificc                    \        V P                  P                  4       4       FI  w  rV P                  V P                  V4       \        V P                  V4      pV P                  W#V4       KK  	  R # rH   )sortedfile_attributesr   assertHasAttrrU   r`   rb   )rN   r   r   r   s   &   rO   test_file_attribute_constants*TestFilemode.test_file_attribute_constants   sX     !!5!5!;!;!=>JCt||S1t||S1HUc2 ?r[   darwinzmacOS system checkc                   V P                  V P                  P                  R 4       V P                  V P                  P                  ^4       V P                  V P                  P                  ^4       V P                  V P                  P
                  ^4       V P                  V P                  P                  ^4       V P                  V P                  P                  ^ 4       V P                  V P                  P                  ^@4       V P                  V P                  P                  ^4       V P                  V P                  P                  R4       V P                  \        J dt   V P                  V P                  P                  R4       V P                  V P                  P                  R4       V P                  V P                  P                  R4       M&V P                  V P                  P                  R4       V P                  V P                  P                  R4       V P                  V P                  P                   R4       V P                  V P                  P"                  R4       V P                  V P                  P$                  R	4       V P                  V P                  P&                  R
4       V P                  V P                  P(                  R4       V P                  V P                  P*                  R4       V P-                  \/        V P                  P0                  \2        4      4       V P                  V P                  P4                  R4       V P                  V P                  P6                  R4       V P                  V P                  P8                  R4       V P                  V P                  P:                  R4       V P                  V P                  P<                  R4       V P                  V P                  P>                  R4       V P                  V P                  P@                  R4       V P                  \        J d'   V P                  V P                  PB                  R4       V P                  V P                  PD                  R4       V P                  V P                  PF                  R4       V P                  V P                  PH                  ^4       V P                  V P                  PJ                  ^@4       V P                  V P                  PL                  ^84       V P                  V P                  PN                  ^ 4       V P                  V P                  PP                  ^4       V P                  V P                  PR                  ^4       V P                  V P                  PT                  ^4       V P                  V P                  PV                  ^4       V P                  V P                  PX                  ^4       V P                  V P                  PZ                  ^4       V P                  V P                  P\                  R4       V P                  V P                  P^                  R4       V P                  V P                  P`                  R4       V Pc                  V P                  R4       V P                  V P                  Pd                  V P                  PF                  4       V P                  V P                  Pf                  V P                  PH                  4       V P                  V P                  Ph                  V P                  PJ                  4       R# )i  r8   i   i  ?l        l      rF   r=   i   i   i   i   i   @r?   r;   r5   i `  i   i   i   r    r"   r   r   r   S_ISTXTN)5rb   rU   r   	UF_NODUMPUF_IMMUTABLE	UF_APPEND	UF_OPAQUEUF_COMPRESSED
UF_TRACKEDUF_DATAVAULT	UF_HIDDENr   SF_SUPPORTEDr   r   SF_ARCHIVEDSF_IMMUTABLE	SF_APPENDSF_RESTRICTEDSF_NOUNLINKSF_FIRMLINKr   rg   
isinstancerc   r   S_IFIFOS_IFCHRS_IFDIRS_IFBLKry   S_IFLNKS_IFSOCKS_IFWHTr   r!   r$   r&   r(   r)   r*   r+   r,   r-   r.   r/   r   r   r   assertNotHasAttrr#   r%   r'   rM   s   &rO   test_macosx_attribute_values)TestFilemode.test_macosx_attribute_values  s   11:>//<22J?//<//<33Z@00*=22J?//<<<6!T\\66
CT\\55zBT\\66
CT\\55zB11:>22J?//<33Z@11:>11:>11:>DLL$7$7=>--x8--x8--x8--x8--x8--x8..9<<6!T\\118<--x8--x8--x8--x8--x8--x8--x8--x8--x8--x8--x8--x8--x8--x8--x8dllI6--t||/C/CD..0D0DE--t||/C/CDr[    >   r   r   r   r   r   r   r   r   r   r   r   SF_SNAPSHOTUF_NOUNLINKr   r   r   r   r   r   >
   r   r   r   r   r   ry   r   S_IFDOORS_IFPORTr   >
   S_ISBLKS_ISCHRS_ISDIRS_ISLNKS_ISREGS_ISWHTS_ISDOORS_ISFIFOS_ISPORTS_ISSOCK)(__name__
__module____qualname____firstlineno__rU   r   r   rd   r   r   r   rP   tearDownr   rY   rn   r   skip_unless_working_chmodr{   r   skip_unless_symlinkr   r   
skipUnlesshasattrrI   r   rh   r   r   skip_unless_bind_unix_socketr   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @rO   r   r      sN    G?JIGNL 	1!!A!!1AAA
K66 	6 	6	
 	5 	5 	5 	5 	E 	5 	5 	5 	5 	5 	5  	5!" 	5#$ 	55'O,) ")#T) 	 ) 	#B	)
 	#E) 	 ) 	*5) 	 ) 	-d) 	') 	!$) 	"1) 	') 	%c) 	 )  	#C!)" 	!%#)O& H#4  -" ((.C ).C` ((. ). "", #, X.0IJ) K) G+-=> ? //- 0-)$
u 0HJ3J3 13GH8E I8Er[   r   zneed _stat extensionc                       ] tR tRt]tRtR# )TestFilemodeCStatiD  r   N)r   r   r   r   r   rU   r  r   r[   rO   r  r  D  s    Gr[   r  c                       ] tR tRt]tRtR# )TestFilemodePyStatiI  r   N)r   r   r   r   py_statrU   r  r   r[   rO   r  r  I  s    Gr[   r  __main__)r   rI   r   r   test.supportr   r   r   test.support.import_helperr   test.support.os_helperr   r   r  r   skipIfTestCaser  r  r   mainr   r[   rO   <module>r     s     	  
 ; ; : ) 
VG9	5
fwi
8sE sEn	 
4!78h&7&7  9x'8'8  zMMO r[   