
    q&f                     Z   d dl Z d dlZddl ddlmZ ej                  rddlmZ ej                  Zej                  Z	dZ
dgdz  Zej                  ee	j                  <   ej                  ee	j                  <   ej                   ee	j"                  <   ej$                  ee	j&                  <   ej(                  ee	j*                  <   ej,                  ee	j.                  <   ej0                  ee	j2                  <    G d	 d
      Zej7                  dd      Zej;                  de
      Zd ZddZ yy)    N   )*)pycompat   )_osutili      c                       e Zd Zd Zy)stat_resc                 .    || _         || _        || _        y )Nst_modest_mtimest_size)selfr   r   r   s       7/usr/lib/python3/dist-packages/mercurial/cffi/osutil.py__init__zstat_res.__init__%   s    "DL$DM"DL    N)__name__
__module____qualname__r    r   r   r
   r
   $   s    	#r   r
   s   struct timespecs   tv_secs   char[]c           
      T   g }	 t         j                  | |t        t        d      }|dk(  r	 |S |dk(  r;t	        t
        j                  t        j                  t
        j                              t
        j                  dt              }t        |      D ]  }|j                  }|t
        j                  d|      d   k(  sJ |j                  j                  }	|j                  j                  }
t
        j                  dd      }t!        t
        j#                  t
        j                  d|      |z   |	z   |
dz
              }t$        |j&                     }|d	k(  s|d
k(  r||k(  r|t(        j*                  k(  rg c S |rb|j,                  j.                  }|j0                  t         j2                   z  |z  }|j5                  ||t7        |||j8                        f       n|j5                  ||f       t
        j                  dt;        t
        j                  d|            |z         } &)Nr   s   val_attrs_t*s	   uint32_t*s   val_attrs_ts	   name_infos   char*r      .s   ..r   s   intptr_t)libgetattrlistbulkbuflistdir_batch_sizeOSErrorffierrnoosstrerrorcastrangelength	name_infoattr_dataoffsetattr_lengthoffsetofbytesbuffer	attrkindsobj_typestatmodS_ISDIRmtimetv_sec
accessmaskS_IFMTappendr
   
datalengthint)dfdreqstatskipretrcurilgtofsstr_lgtbase_ofsnametpr1   modes                   r   listdirinternalrG   -   s   ##Cc3EqIAAvN 
M BwciiSYY)?@@((?C0C1X "jjchh|S9!<<<<mm33--33<<EJJ3/(:S@'A+
 s||,4<45=4<B'//$9III,,ENNcjj[8B>DJJ $(,).(+
 JJbz*hh#S+s)C%Ds%JA" r   c                    t         j                  d      }t        j                  |_        t        j
                  t        j                  z  t        j                  z  t        j                  z  t        j                  z  |_
        t        j                  |_        t        j                  | t        j                  d      }|dk(  r;t        t         j                   t#        j$                  t         j                               	 t'        ||||      }	 t        j)                  |       |S # t*        $ r Y |S w xY w# 	 t        j)                  |       w # t*        $ r Y w w xY wxY w)Ns   struct attrlist*r   r   )r    newr   ATTR_BIT_MAP_COUNTbitmapcountATTR_CMN_RETURNED_ATTRSATTR_CMN_NAMEATTR_CMN_OBJTYPEATTR_CMN_ACCESSMASKATTR_CMN_MODTIME
commonattrATTR_FILE_DATALENGTHfileattropenO_RDONLYr   r!   r"   r#   rG   closeBaseException)pathr:   r;   r9   r8   r<   s         r   listdirrY   [   s   gg)*00'' ""# %%& ""	# 	 //hhtS\\1-"9#))R[[%;<<	!#sD$7C		# 
 ! 
		#  sB   ?D5 D% %	D21D25E7EE	EEEE)FN)!r"   r:   r/   pure.osutil r   isdarwinr   r    r   r   r-   S_IFREGVREGS_IFDIRVDIRS_IFLNKVLNKS_IFBLKVBLKS_IFCHRVCHRS_IFIFOVFIFOS_IFSOCKVSOCKr
   r*   
tv_sec_ofsrI   r   rG   rY   r   r   r   <module>rl      s   
   
++C
++C I!//Ichh!//Ichh!//Ichh!//Ichh!//Ichh"??Icii"++Icii# # 0)<J
'')/
0C,\W r   