+
    i                         ^ RI t^ RIt^ RIt^ RIt^ RIt^RIHt R tR t	R t
R t]P                  ! 4       t]P                  ^3R lt ! R R	]4      tRR
 ltRtR t ! R R]4      tR# )    N)libc           
         . p\        V R 4      ;_uu_ 4       pVP                  4       pVP                  R4       Fz  pVP                  R4      pVR8X  d   VP	                  \        V4      4       K7  \        VRV 4      p\        WE^,           R 4      pVP                  \        Wg^,           4      4       K|  	  RRR4       V#   + '       g   i     T# ; i)r,-N)openreadsplitfindappendintextendrange)pathcpusfcpus_range_str	cpu_rangerangeopstartends   &       +/usr/lib/python3/dist-packages/bcc/utils.py_read_cpu_ranger      s    D	dCA'--c2InnS)G"}C	N+Ihw/0)AIJ/0E%Q/0 3 
 K 
 Ks   B CC	c                      \        R 4      # )z/sys/devices/system/cpu/onliner        r   get_online_cpusr   $   s    ;<<r   c                      \        R 4      # )z /sys/devices/system/cpu/possibler   r   r   r   get_possible_cpusr!   '   s    =>>r   c                     \         P                  ! V4      p\        P                  ! V\        P                  4      P
                  P                  4       pW09   d   V# R # N)r   bcc_procutils_languagectcastc_char_pvaluedecode)
candidatespidreslanguages   &&  r   detect_languager.   *   sE    

$
$S
)CwwsBKK(..557H-8747r   c                    \        VR4      '       d   VP                  MTpVP                  V 4       V'       d   VP                  R4       VP                  4        R# )z5
printb(s)

print a bytes object to stdout and flush
buffer   
N)hasattrr0   writeflush)sfilenlbufs   &&& r   printbr9   1   s>     !x00$++dCIIaL			%JJLr   c                   6   a  ] tR t^>t o RtR tR tR tRtV t	R# )	ArgStringz
ArgString(arg)

encapsulate a system argument that can be easily coerced to a bytes()
object, which is better for comparing to kernel or probe data (which should
never be en/decode()'ed).
c                    \         P                  ^ ,          ^8  d	   Wn        R# VP                  \        4      V n        R# )r   N)sysversion_infor5   r)   FILESYSTEMENCODING)selfargs   &&r   __init__ArgString.__init__F   s+    A!#FZZ 23DFr   c                @    V P                   P                  \        4      # r#   )r5   encoder?   r@   s   &r   	__bytes__ArgString.__bytes__L   s    vv}}/00r   c                    V P                   # r#   r5   rF   s   &r   __str__ArgString.__str__O   s    vvr   rJ   N)
__name__
__module____qualname____firstlineno____doc__rB   rG   rK   __static_attributes____classdictcell____classdict__s   @r   r;   r;   >   s     41 r   r;   c           	          \        VR 4      '       d   TM\        P                  p\        P                  ! \        P
                  ! ^4      VR7       VP                  \        P                  ! WW#V4      4       R# )r3   )r   r6   N)	r2   r=   stderr	tracebackprint_stack	_getframer3   warningsformatwarning)messagecategoryfilenamelinenor6   linelogs   &&&&&& r   warn_with_tracebackrc   R   sM    $(($cjjCCMM!,37IIh$$W$OPr   Fc                    V f   V # \         '       d%   \        V 4      \        J g   Q RV ,          4       h V # \        V 4      \        Jd=   \        P                  ! RV ,          \
        ^4       \        V 4      P                  4       # V # )Nznot a bytes object: %r)_strict_bytestypebytesr[   warnDeprecationWarningr;   rG   )rA   s   &r   _assert_is_bytesrj   [   sr    
{
}CyE!A#;c#AA! J 
c%	.46H!L~''))Jr   c                   @   a  ] tR t^et o ]R 4       t]R 4       tRtV tR# )StrcmpRewritec                F    R V,          pVRV: RV : RV: R2,          pWB3# )zstreq_%dz
static inline bool z?(char const *ignored, uintptr_t str) {
        char needle[] = z1;
        char haystack[sizeof(needle)];
        z(&haystack, sizeof(haystack), (void *)str);
        for (int i = 0; i < sizeof(needle) - 1; ++i) {
                if (needle[i] != haystack[i]) {
                        return false;
                }
        }
        return true;
}
        r   )stringprobe_read_funcstreq_functionsprobeidfnames   &&&& r   _generate_streq_function&StrcmpRewrite._generate_streq_functionf   s1     W$ fo/ 	/ %%r   c                X   V'       d   R pMRp\         P                  ! W`4      pV Fx  pVP                  ^4      p	Rp
V'       g%   VP                  ^4      P                  4       V9   d   Rp
\        P                  WWE4      w  rV^,          pV P                  RV^4      p Kz  	  RV RVRV/pV# )zSTRCMP\("([^"]+)\",(.+?)\)zSTRCMP\(("[^"]+\"),(.+?)\)bpf_probe_readbpf_probe_read_userSTRCMPexprrp   rq   )refinditergroupstriprl   rs   replace)ry   bin_cmpis_userprobe_user_listrp   rq   	STRCMP_REmatchesmatchrn   ro   rr   rdicts   &&&&&&       r   rewrite_exprStrcmpRewrite.rewrite_expry   s     8I7I++i.E[[^F.O A$$&/9&;O%2%K%K,2,;&F"E qLG<<%3D  Dw

 r   r   N)	rM   rN   rO   rP   staticmethodrs   r   rR   rS   rT   s   @r   rl   rl   e   s+     & &$  r   rl   )NN)ctypesr%   r=   rX   r[   rz   libbccr   r   r   r!   r.   getfilesystemencodingr?   stdoutr9   objectr;   rc   re   rj   rl   r   r   r   <module>r      sv     
   	 =?8
 ..0 ::!  (Q .F .r   