ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ ;Pc@sdZdZdZdZdddYZdddYZddd YZd dd YZd dd YZdS(cCs|dkrgSg}d}x|t|kr||}|dt|kr||djrd}|d}x[|t|kr||jr|dt||}|d7}qxWn|d7}d}x!t|D]}|j|qWqW|S(Nt_iii (tlentisdigittinttrangetappend(tstatrtitvtntj((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt str_as_atrs"  * % cCs|s dSg}djg|D]}t|^q}d}x|t|kr||}|d}x0|t|kr|||kr|d7}qjW||dkr|j||jt||n*x'||kr|j||d7}qW|}qAWdj|S(NRtiii(tjointstrRR(RtprefltxtprestrRtcR ((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt atr_as_strs$(  %   cCs-gt|D]}t|td^q S(Nta(R tord(Rtch((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt str_as_ixl,scCs-tg|D]}t|td^q S(NR(RtchrR(tixltix((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt ixl_as_str/stPathscBsPeZedddZdZdZdZdZdZdZ RS( ic Cs[||_|j|_||_||_||_|j|j|_||_i|_|j}x/|dk r|j j |j|j <|j }qcWt|tr|jj|nt|ttfr2|j}xft|D]L\}} |dkrtdn| dk r"| |j|j (tbrieftlstriptrstrip(R7tset((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt#get_str_of_path_component_singletonSsccsd}d}d}|j}d}x|dk r|jdkrH|}n|tkr]|}n|}d||}|j}|dddtjtt|t||d}||jtj t|V|j}|t7}q$WdS(NtSourcetTargettViait is: ( R%R(R,R+tdepthtindincRt getsummaryRt line_length(R7tsrcttgttviaR9tindentRtname((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytsource_to_target_infoVs"     9 cCst|d|jfS(Nsget_line_iter_%s(tgetattrR&(R7((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt_oh_get_line_iterlscCsdS(NR ((R7t startindext lastindex((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt_oh_get_more_state_msgosc#sjjjdjdfVdjdkrKdndfdfd}x|D] }|VqWdS( Ns"Paths from source %r to target %r.Rii iic 3s|jx|D]\}}}d|j|f}jrMj|}nd}d|ddt|t|||f}|Vdkrqnfd} x,| ||D] } | VqWqWdS(Ns%s[%d]R s %s %s %s %sRDi(c3s|jj@}xt|jjD]\}}jj|j|j}xq|D]i}|jjkroqQn|jj krd}nt |d}d|}|||fVqQWq#WdS(Ns??R RD( t referentsR?R2tbyidtpartstPatht relationsttheonetidentityt norelationR(R!R?tparsetRtptrelstreltk(RLRFRtpar(sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytget_nkss  (R,R+R#R@RR(( R9tksRLR!RR?tsidxtstrsingtvlineRbtline(tgenlinesRFRR7(RLRasE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRhs"    &c3sbx[tjjD]G\}}d|}|dddt|j }|||fVqWdS(Ns[%d] s -ii$(R2RURVRRE(RRR`(R%tsrcset(sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytget_kss #(RR%R?R+RE(R7RjRg((RhRFRR7R%RisE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytget_line_iter_1rs    & c #sjj j}d jdfVd jdkrKdndgiddkrdd }x|rt|jkrt|jnttt|jjkrttt|jjn|j}qWn f dxSt jj j@j j D].\}}x ||D] }|VqpWqQWdS(Ns"Paths from source %r to target %r.Rii ic3s"d|j|jf<|j}d|}dkr|j}d|dd|t|t||f}|jdkr|d|j7}qn|d|ddt|t||f}|d jd|j7}|jdk r|d 7}n|d |j7}|jdkrYd d|f}dcd7 #%d(tnodesRER+RR,R(R<RTR?R'RWRXR)tisoRYR2RURVtbyterRZR[RRRtget(R9tparttidxRdtidxsRLRfRTRXRoRRR]ttR^t relstringsR_R`trelsstrtseenlnoRg( RhRFtindirtlnotmax_ixlstr_lentmax_str_len_setRtseenR7R%(sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRhsX    /#   $   L    ( RR%R?R+RERRRnR,R2R'RURV(R7RiR9RR]Rg(( RhRFRzR{R|R}RR~R7R%sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytget_line_iter_2s0       $!*;0(( t__name__t __module__tTrueR:R@RNRPRSRkR(((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR3s     >t RefPatItercBs&eZddZdZdZRS(icCs"||_|j|_||_dS(N(R"R R(R7R"tstart((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR:s  cCs|S(N((R7((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt__iter__scCsAy|j|j}Wntk r-tnX|jd7_|S(Ni(R"Rt IndexErrort StopIteration(R7R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytnexts   (RRR:RR(((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRs  t RefPatRowcBs,eZdZdZdZdZRS(cCs||_|j|_||_|\|_|_||_||_||_|dk rk|j d|_ n d|_ d|_ |j |_ |j j |_t||_d|_g|_dS(Nii(R"R tkindsettkindR?tseenlineRR,R(REtindextmaxdepthRRHt max_str_lenRR+tisreadytchildren(R7R"RRRR,((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR:#s            cCs d|j|jf}|jd@r0dd}n dd}t|}||d|j!}|jrvd|jj}n`|jrd}nN|jd kr|j|jjkrd }n!|j|j krd }nd }d |||f}d||j |j t|fS(Ns%2d: %s iRDidt-i s[^ %s]s[R]is[S]s[-]s[+]s%s%s %s s%s%s( RR+RRERtisrootR?R"tstopkindRRGR(R7Rtfillpattlpstfilltreftprefix((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt__str__8s"       $  cCsMx?|t|jkrA|j rA|jjt|jjqW|j|S(N(RRRR"tgeneratetlines(R7R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytgetchildQs" cCs/|j|j}}|jj|||}|S(N(RR?tfamtget_str_refpat(R7tmax_lenRR?tsummary((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRGWs(RRR:RRRG(((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR"s   tReferencePatterncBseZdZdZdZdZdZdZddZdZ d Z d Z d Z d Z d ZddZdZdZdZddZddZdZdZdZdZdZRS(s .(Rqt classifiert get_byname(R7((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt _cv_getheaderscCs |jS(N(R(R7((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt _cv_getlabelscCs5|j}||IJx|D]}||IJqWdS(N(R(R7tfiletlabelRg((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyt _cv_prints   cCsM|jrCdt|jt|jjdd|f}nd}|S(Ns%d more lines. s iR (tisfullygeneratedRRRtsplit(R7RQRRtmsg((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRSs  7ccsTx"|jjdD] }|VqW|jd}x|D]}t|Vq;WdS(Ns i(RRt iterlinesR(R7Rgtittel((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRPs   cCsx|dks0|dks0|t|jkry|jj|jjWntk rjd|_dSXt|jd|jd_qWdS(Niii( R(RRRtlgRRRR(R7R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRs0  cCsHy g|Wn5tk r)|j|Stk rC|j|SXdS(N(R4RRR(R7R!((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR$s     cCs|j||j|S(N(RR(R7R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRs cCs^|jd}xHt|D]:}y|j|}Wqtk rUtd|qXqW|S(Nis%Reference pattern has no row named %r(RRRRR3(R7RMR9R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRs ccsQ|dkrd}nx5y|j|VWntk r>dSX|d7}qWdS(Nii(R(RR(R7R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRs   c csT|\}}|jj|j}t|}t|||fd|d|d|}|j|}| |_|dkr||j|j| dkrfd} q>| dkrd} q>t| r)| } q>tdn d } |d krVj}nt|||| |||} | S( srp(X, depth=None, er=None, imdom=0, bf=0, src=None, stopkind=None, nocyc=False, ref=None) Reference pattern forming. Arguments X Set of objects for which a reference pattern is sought. depth The depth to which the pattern will be generated. The default is taken from depth of this module. er The equivalence relation to partition the referrers. The default is Clodo. imdom If true, the immediate dominators will be used instead of the referrers. This will take longer time to calculate, but may be useful to reduce the complexity of the reference pattern. bf If true, the pattern will be printed in breadth-first order instead of depth-first. (Experimental.) src If specified, an alternative reference source instead of the default root. stopkind nocyc ref Description Return a reference pattern object based on the objects in the set X. The reference pattern object is of class ReferencePattern. It is described in XXX. cSs|jS(N(timdom(tX((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pytjR RcSs|jS(N(t referrers_gc(R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRmR tgcxcs.|jjjjjjjjjj S(N( RRtguppytsetst ImmNodeSett_parenttheapyct NodeGraphRtObservationList(R(R7(sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRosRcSs|jS(N(R(R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRtR s1ref should be 'gc', 'gcx', 'imdom', or a callablecSs|jS(N(t referrers(R((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR{R N(R(REtUniSett idset_adaptRRtRoottheapytRefPatR0RnRtrootR)tidsetRqtcallableR3RR( R7RRERqRRRIRRRRR"((R7sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyR"@s8                  !(R (R"(RqR(s_parent:OutputHandlings _parent:Parts _parent:Paths_parent:UniSets _parent:Uses _parent:Views_parent.View:_hiding_tag_N( RRt _preload_RERHt_uniset_exportst _chgable_t _imports_RRR(tFalseR"(((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyRs"  N(((((( R RRRRRRRR(((sE/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/RefPat.pyts    :