flE gdZddlmZddlmZddlmZeddZ dZ Gdd Z d*d Z d Z GddZddlZejdjfdZd+dZdZ d,dZdZ d,dZdZ d-dZdefdZddefd Zd!Zd"Zd#Zd$ZGd%d&e Z![d'Z"d(Z#e$d)kr e#dSdS).) get_close_matchesndiffrestoreSequenceMatcherDifferIS_CHARACTER_JUNK IS_LINE_JUNK context_diff unified_diff diff_bytesHtmlDiffMatch)nlargest) namedtuple) GenericAliasr za b sizec|rd|z|z SdS)Ng@?)matcheslengths ./opt/alt/python311/lib64/python3.11/difflib.py_calculate_ratior's &W}v%% 3cteZdZ ddZdZdZdZdZdd Zd Z d Z ddZ dZ dZ dZeeZdS)rNTcl ||_dx|_|_||_|||dSN)isjunkabautojunkset_seqs)selfrrr r!s r__init__zSequenceMatcher.__init__xs@ t    arc\ ||||dSr)set_seq1set_seq2)r#rr s rr"zSequenceMatcher.set_seqss3  a arcH ||jurdS||_dx|_|_dSr)rmatching_blocksopcodes)r#rs rr&zSequenceMatcher.set_seq1s3 ( ;; F.22t|||rc~ ||jurdS||_dx|_|_d|_|dSr)r r)r* fullbcount_SequenceMatcher__chain_b)r#r s rr'zSequenceMatcher.set_seq2sL ( ;; F.22t| rcn|j}ix|_}t|D]0\}}||g}||1t x|_}|j}|r?|D]"}||r| |#|D]}||=t x|_ }t|} |j rX| dkrT| dzdz} | D]-\}} t| | kr| |.|D] }||=dSdSdS)Nd)r b2j enumerate setdefaultappendsetbjunkrkeysaddbpopularlenr!items) r#r r2ieltindicesjunkrpopularnntestidxss r __chain_bzSequenceMatcher.__chain_b ss F3ll  FAsnnS"--G NN1     EE! T  xxzz " "6#;;"HHSMMM  HH#&%%'  FF = Q#XXHqLE YY[[ % % Tt99u$$KK$$$  HH   XX   rrc |j|j|j|jjf\}}}}|t |}|t |}||d} } } i} g} t ||D]j}| j}i}|||| D]@}||kr ||krn0||dz ddzx}||<|| kr||z dz||z dz|} } } A|} k| |kry| |krs||| dz s_|| dz || dz krG| dz | dz | dz} } } | |kr2| |kr,||| dz s|| dz || dz kG| | z|krx| | z|kro||| | zs[|| | z|| | zkrC| dz } | | z|kr5| | z|kr,||| | zs|| | z|| | zkC| |kry| |krs||| dz r_|| dz || dz krG| dz | dz | dz} } } | |kr2| |kr,||| dz r|| dz || dz kG| | z|krx| | z|kro||| | zr[|| | z|| | zkrC| dz} | | z|kr5| | z|kr,||| | zr|| | z|| | zkCt| | | SNrr1) rr r2r7 __contains__r;rangegetr )r#aloahiblobhirr r2isbjunkbestibestjbestsizej2lennothingr=j2lengetnewj2lenjks rfind_longest_matchz"SequenceMatcher.find_longest_match1s+ r"VTVTXtz7NN1c7 ;a&&C ;a&&C!$c1husC  AyHHWWQqT7++ = =s7788E"*(1Q3"2"2Q"66HQKx<<-.qSUAaCE1(5EEE ckkeckk'!E!G*%%*ajAeAgJ&&%*1WeAgxz(5Eckkeckk'!E!G*%%*ajAeAgJ&&Hns""uX~';';'!E(N+,,(<h1U8^#444 MHHns""uX~';';'!E(N+,,(<h1U8^#444ckkeckkgaaj!!*ajAeAgJ&&%*1WeAgxz(5Eckkeckkgaaj!!*ajAeAgJ&&Hns""uX~';';gah'(((<h1U8^#444!|HHns""uX~';';gah'(((<h1U8^#444UE8,,,rcV |j|jSt|jt|j}}d|d|fg}g}|r|\}}}}|||||x\} } } } | rk|| || kr|| kr||| || f| | z|kr(| | z|kr|| | z|| | z|f||dx} x}}g}|D]>\}}}| |z|kr||z|kr||z }|r|| ||f|||}}} ?|r|| ||f|||dftttj ||_|jSNr) r)r;rr poprYr5sortlistmapr _make)r#lalbqueuer)rKrLrMrNr=rWrXxi1j1k1 non_adjacenti2j2k2s rget_matching_blocksz#SequenceMatcher.get_matching_blockss $   +' 'TVc$&kkBRB  7!& Cc311#sCEE EGAq!a 7&&q)))77sQwwLL#q#q!1222Q3991sLL!A#sAaC!5666 7  R" ) ( (JBBBw"}}bBb 6 ''R 555RB  .   R - - -b"a[***#C \$B$BCC##rc< |j|jSdx}}gx|_}|D]j\}}}d}||kr ||krd}n||krd}n||krd}|r||||||f||z||z}}|r|d||||fk|S)Nrrreplacedeleteinsertequal)r*rlr5)r#r=rWansweraibjsizetags r get_opcodeszSequenceMatcher.get_opcodess 8 < #<  A "" v 4466 9 9LBD C2vv!b&&RR 5 QAr2444d7BtGqA 9 QA6888 rc #K |}|sdg}|dddkr:|d\}}}}}|t|||z |t|||z |f|d<|dddkr:|d\}}}}}||t|||z|t|||zf|d<||z}g} |D]\}}}}}|dkrq||z |krh| ||t|||z|t|||zf| Vg} t|||z t|||z }}| |||||f| r+t | dkr| dddks| VdSdSdS)N)rqrr1rr1rrqr1)rwmaxminr5r;) r#rBcodesrvrerirfrjnngroups rget_grouped_opcodesz#SequenceMatcher.get_grouped_opcodes#s 0  "" ,*+E 8A;' ! !"'( CRRCBqDMM2s2r!t}}b@E!H 9Q<7 " ""') CRRRRACBqDMMAE"I U#( 0 0 CRRg~~"R%"** c2s2r!t}}b#b"Q$--HIII RAB1 B LL#r2r2. / / / /  #e**a--E!HQK7,B,BKKKKK  ,B,Brc td|D}t|t|jt|jzS)Nc3&K|] }|dV dS)rzNr).0triples r z(SequenceMatcher.ratio..ks&JJVfRjJJJJJJr)sumrlrr;rr )r#rs rratiozSequenceMatcher.ratioUsV *JJt/G/G/I/IJJJJJTVs46{{)BCCCrc |j/ix|_}|jD]}||ddz||<|j}i}|jd}}|jD]?}||r ||}n||d}|dz ||<|dkr|dz}@t |t |jt |jzSrG)r,r rJrHrrr;)r#r,r>availavailhasrnumbs r quick_ratiozSequenceMatcher.quick_rations  ? "+- -DOjv = =",..a"8"81"< 3_ !.'6 & &Cx}} .Sz!~~c1--E#Jaxx!A+TVs46{{)BCCCrc t|jt|j}}tt ||||zSr)r;rr rr|)r#rarbs rreal_quick_ratioz SequenceMatcher.real_quick_ratios@ TVc$&kkB B R"W555r)NrrT)rNrN)rx)__name__ __module__ __qualname__r$r"r&r'r-rYrlrwrrrr classmethodr__class_getitem__rrrrr,sHT>>>>@   3334X%%%Nr-r-r-r-hE$E$E$N555n0000dDDD2DDD: 6 6 6$ L11rrrx333333?c |dkstd|d|cxkrdksntd|g}t}|||D]}||||krY||krA||kr)|||ft||}d|DS)Nrzn must be > 0: grzcutoff must be in [0.0, 1.0]: cg|]\}}|Srr)rscorerds r z%get_close_matches..s % % %(%A % % %r) ValueErrorrr'r&rrrr5 _nlargest)word possibilitiesrBcutoffresultsrds rrrs8 66j3444 &    C    jvvGHHH FAJJt ** 1    6 ) ) ==??f $ $ 7799   MM17799a. ) ) )q& ! !F % %f % % %%rc^ ddt||DS)Nrc3XK|]%\}}|dkr|r|n|V&dS) N)isspace)rctag_cs rrz$_keep_original_ws..sR Auc\\aiikk\ur)joinzip)rtag_ss r_keep_original_wsrs?K 77Au   rc<eZdZ d dZdZdZdZdZdZdZ dS) rNc$ ||_||_dSrlinejunkcharjunk)r#rrs rr$zDiffer.__init__*s &!   rc #K t|j||}|D]\}}}}}|dkr|||||||} no|dkr|d|||} nP|dkr|d|||} n1|dkr|d|||} nt d|| Ed{VdS) Nrnro-rp+rqr unknown tag )rrrw_fancy_replace_dumpr) r#rr cruncherrvrKrLrMrNgs rcomparezDiffer.compareAs 2#4=!Q77'/';';'='=   #Cc3i''3QSAAJJsAsC00JJsAsC00JJsAsC00 jSS!:;;;LLLLLLLL  rc#PK t||D]}|d||VdS)Nr)rI)r#rvrdlohir=s rrz Differ._dumpjsHBr2 ( (A SS!A$$' ' ' ' ' ( (rc#K||z ||z kr1|d|||}|d|||}n0|d|||}|d|||}||fD] } | Ed{V dS)Nrr)r) r#rrKrLr rMrNfirstsecondrs r_plain_replacezDiffer._plain_replaceos 9sSy ZZQS11EZZQS11FFZZQS11EZZQS11F  ALLLLLLLL  rc#K d\}}t|j} d\} } t||D]} || } | | t||D]}||}|| kr| || } } | || |krH| |kr0| |kr| || }}}||kr+| "|||||||Ed{VdS| | d}}}nd} | ||||||Ed{V||||}}| dx}}| ||| D]o\}}}}}||z ||z }}|dkr|d|zz }|d|zz })|dkr |d|zz }8|d kr |d |zz }G|d kr|d |zz }|d |zz }^td || ||||Ed{Vnd|zV| ||dz|||dz|Ed{VdS)N)gGz?g?NNrrrn^rorrprrqrr r1)rrrIr'r&rrrr _fancy_helperr"rwr_qformat)r#rrKrLr rMrN best_ratiorreqieqjrWrtr=rsbest_ibest_jaeltbeltatagsbtagsrvai1ai2bj1bj2rarbs rrzDiffer._fancy_replace}s0 (( F"4=11S sC H HA1B   b ! ! !3__ H HqT88{#$aS!!"%%%,,..;;**,,z99nn&&33191A1A1aJ! H"   {..q#sAsCHHHHHHHHH),c3JFFFC %%afafEEEEEEEEEvY& d ; EE   dD ) ) )+3+?+?+A+A @ @'S#sCsC#IB)##S2X%ES2X%EEH__S2X%EEH__S2X%EEG^^S2X%ES2X%EE$*%>???}}T4>> > > > > > > > >+   %%a36!8SIIIIIIIIIIIrc#Kg}||kr:||kr|||||||}n7|d|||}n||kr|d|||}|Ed{VdS)Nrr)rr)r#rrKrLr rMrNrs rrzDiffer._fancy_helpers  99Syy''3QSAAJJsAsC00 3YY 33,,A rc#K t||}t||}d|zV|rd|dVd|zV|r d|dVdSdS)N- z?  + )rrstrip)r#alineblinerrs rrzDiffer._qformats "%//6688!%//6688Ul  ! u... Ul  ! u...  ! !rr) rrrr$rrrrrrrrrrrsSj!!!!.'''R(((   \J\J\J|   !!!!!rrNz \s*(?:#\s*)?$c ||duSrr)linepats rrrs  3t99D  r c ||vSrr)chwss rrr%s  8Orc |dz}||z }|dkrd|S|s|dz}d||SNr1z{}z{},{}formatstartstop beginningrs r_format_range_unifiedr<sW& I E\F {{{{9%%% Q >>)V , ,,rrrc #K t|||||||d}td|||D]"} |sfd}|rd|nd} |rd|nd} d|| |Vd|| |V| d| d} } t | d | d }t | d | d }d |||V| D]S\}}}}}|dkr|||D] }d|zV #|dvr|||D] }d|zV |dvr|||D] }d|zV T$dS)NFT {}r --- {}{}{}z +++ {}{}{}rrzr1rxz@@ -{} +{} @@{}rqr>rornr>rprnr) _check_typesrrrr)rr fromfiletofile fromfiledate tofiledaterBlinetermstartedrfromdatetodaterlast file1_range file2_rangervrerirfrjrs rr r Gs%NAxz8LLLG a**>>qAA%% @G6BJv}}\222H2<DV]]:..."F%%h(CC C C C%%ffh?? ? ? ?Ahb t+E!Hd1g>> +E!Hd1g>> &&{KJJJJJ#( % % CRRg~~beH%%D*$$$$+++beH%%D*$$$$+++beH%%D*$$$$ %%%rc |dz}||z }|s|dz}|dkrd|Sd|||zdz Srrrs r_format_range_contextrsa& I E\F Q  {{{{9%%% >>)Y%7!%; < <rornNrrrv_s rrzcontext_diff..2IIQ1as++IIIIIIrrprxrz --- {} ----{}c3*K|]\}}}}}|dvVdS)>rprnNrrs rrzcontext_diff..rrro)rdictrrrrany)rr rrrrrBrprefixrrrrrrrrvrerirrrrfrjs rr r sc(TAxz8LLL dD E E EFG a**>>qAA11 @G6BJv}}\222H2<DV]]:..."F%%h(CC C C C%%ffh?? ? ? ?Ahb t(****+E!Hd1g>> $$[(;;;;; II5III I I 1%* 1 1!RQ(?? !"R%11$SkD00000+E!Hd1g>> $$[(;;;;; II5III I I 1%* 1 1!Q2r(?? !"R%11$SkD00000711rc|rOt|dts4tdt|djd|dd|rOt|dts4tdt|djd|dd|D])}t|tstd|*dS)Nrz"lines to compare must be str, not  ()z all arguments must be str, not: ) isinstancestr TypeErrortyper)rr argsargs rrrs 5AaD#&&5iad,,,addd455 55AaD#&&5iad,,,addd455 5KK#s## K)CCIJJ J KKKrr c #RK d} tt| |}tt| |}| |}| |}| |}| |}| |}|||||||||} | D]} | ddVdS)Nc |ddS#t$r0}dt|jd|d}t ||d}~wwxYw)Nasciisurrogateescapez!all arguments must be bytes, not rr)decodeAttributeErrorr rr )rerrmsgs rrzdiff_bytes..decodesm *88G%677 7 * * * *GG$$$aaa)CC..c ) *s A+A  Arr)r^r_encode) dfuncrr rrrrrBrrlinesrs rr r s*** S^^A S^^AvhH VF^^F6,''L ##JvhH E!Q&, Ax P PE66kk'#455555566rcL t||||Sr)rr)rr rrs rrrs*!D (H % % - -a 3 33rc#8K ddl}|jdt||||ddgffd fdfd}|}| |Ed{VdS|dz }d} ddg|z} } d} | dur< t|\} } } n#t$rYdSwxYw| |z}| | | f| |<| dz } | du<| |krd V|}n| }d} |r| |z}| dz } | |V|dz}||dz } |r)t|\} } } | r|dz }n|dz}| | | fV|)n#t$rYdSwxYw) Nrz (\++|\-+|\^+)c ||xxdz cc<|%|||dddfS|dkr|d|d}}g}|fd} ||t|D]1\}\} } |d| dz|z|| | zdz|| dz}2|dd}n,|ddd}|sd}d|z|zdz}|||fS) Nr1rr?c||dd|g|dS)Nr1r)r5rspan) match_objectsub_infos rrecord_sub_infoz3_mdiff.._make_line..record_sub_infosL!3!3A!6!6q!9,:K:K:M:M NOOO#))!,,,rr)r\subreversed) r format_keyside num_linestextmarkersr"r#keybeginend change_res r _make_linez_mdiff.._make_linefs\ , $1  dOEIIaLL$45 5   !IIaLL%))A,,'DH6> - - - - MM/' 2 2 2$,H#5#5 N NKU3AeG}T)#-d59o=dB4:M8DD99Q<<#D *$t+d2D$%%rc3~K g}d\}} t|dkr6|tdt|dk6dd|D}|dr|}n|dr|dd |dd dfV|d r|d z}|d d ddfV|d r|d d d}}|d z d }}nZ|dr|dd |dd dfVC|dr|dd |dd dfVw|d r|d z}|d d ddfV|dr|d z }d|dd dfV|drd|dd }}|d zd }}nj|dr|d z }d|dd dfV-|dr'|dddd |dd dfVi|d kr|d z }dV|d k|d kr|d z}dV|d k|drdS||dfV)N)rrTrXrcg|] }|d S)rr)rrs rrz2_mdiff.._line_iterator..s333Ta333rz-?+?rrr1z--++r)z--?+z--+rz-+?z-?+z+--r)rz+-rF)NrrT)r5NT)r;r5nextr startswith)rnum_blanks_pendingnum_blanks_to_yieldr from_lineto_liner1diff_lines_iterators r_line_iteratorz_mdiff.._line_iterators 26//F -e**q.. T"5s;;<<<e**q..33U33344A||C  3 '9##f%%.  js1--zz%A/F/FLLLLf%%* #a'" js1--tT9999344$ %/JuS$;$;T' 9KA9Ma$6##e$$  jtA.. 5Q0G0GMMMMe$$  js1--zz%Q/G/GMMMMc"" "a'" js1--tT9999e$$ #a'"JJuS33T9999l++ %)::eC+B+B7 9KA9Ma$6##c"" "a'"JJuS33T9999c""  jqqq$q11**U42J2J5PPPP&))#q(#))))&))&))#q(#))))&))||C   -,,,,MF -rc3K }gg}} t|dkst|dkr~ t|\}}}n#t$rYdSwxYw||||f||||ft|dkkt|dk~|d\}}|d\}}|||p|fV)NTr)r;r6 StopIterationr5r\) line_iterator fromlinestolinesr:r; found_difffromDiffto_diffr=s r_line_pair_iteratorz#_mdiff.._line_pair_iterators+ '(( R'  :y>>1$$G a59-5H5H2Iw $FF($$i %;<<<&NNGJ#7888y>>1$$G a#,--"2"2 Ix&{{1~~ GWWX%89 9 9 9 :sA AAr1TF)NNN)recompilerr6r?)rArBcontextrrrGrFline_pair_iteratorlines_to_writeindex contextLinesrCr:r;r=r=r1r0r<s @@@@r_mdiffrN<sz@III +,,I '(8DD78e6&6&6&6&6&6&pV-V-V-V-V-V-p:::::B-,..%%%%%%%%%% 1 ( #$dVW%5 %(table)s%(legend)s aH table.diff {font-family:Courier; border:medium;} .diff_header {background-color:#e0e0e0} td.diff_header {text-align:right} .diff_next {background-color:#c0c0c0} .diff_add {background-color:#aaffaa} .diff_chg {background-color:#ffff77} .diff_sub {background-color:#ffaaaa}aZ %(header_row)s %(data_rows)s
a
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op
c|eZdZ eZeZeZeZdZdddefdZ ddd d Z d Z d Z d Z dZdZdZdZ ddZdS)r rNc@ ||_||_||_||_dSr)_tabsize _wrapcolumn _linejunk _charjunk)r#tabsize wrapcolumnrrs rr$zHtmlDiff.__init__s*   %!!rrFzutf-8)charsetc  |jt|j|j||||||||z|d|S)N)rInumlines)styleslegendtablerYxmlcharrefreplace)_file_templater_styles_legend make_tablerr)r#rArBfromdesctodescrIr[rYs r make_filezHtmlDiff.make_filesy "#d<<//)Wh*1H"FF ' ' '  6'. / /w  @rcR fdfd|D}fd|D}||fS)Nc|dd}|j}|dd}|dddS)Nrr$ r)rn expandtabsrRr)rr#s r expand_tabsz2HtmlDiff._tab_newline_replace..expand_tabss`<<D))D??4=11D<<D))D<<S))0066 6rc&g|] }|Srrrrrks rrz1HtmlDiff._tab_newline_replace..s#===4[[&&===rc&g|] }|Srrrms rrz1HtmlDiff._tab_newline_replace..s#999;;t$$999rr)r#rArBrks` @r_tab_newline_replacezHtmlDiff._tab_newline_replacesa  7 7 7 7 7>===9=== 9999999  rc> |s|||fdSt|}|j}||ks||ddzz |kr|||fdSd}d}d}||krO||krI||dkr|dz }||}|dz }n||dkr|dz }d}n |dz }|dz }||kr||kI|d|} ||d} |r | dz} d|z| z} ||| f||d| dS)Nr$rxrrr1r%>)r5r;rScount _split_line) r# data_listline_numr+rur{r=rBmarkline1line2s rrszHtmlDiff._split_lines     ht_ - - - F4yy CKKdTZZ%5%5a%78S@@   ht_ - - - F  #gg!d((Aw$QAwQaDQQQ#gg!d((RaRQRR  (DLE4K%'E (5)*** 3u-----rc#2K |D]\}}}||||fV||c\}}\}}gg} } || |||| ||| s| r?| r| d}nd}| r| d}nd}|||fV| =| ?dS)Nr)rr)rsr\) r#diffsfromdatatodataflagfromlinefromtexttolinetotextfromlisttolists r _line_wrapperzHtmlDiff._line_wrappersC%* + + HVD|vd****2:6 / Xh!VH   Xhx 8 8 8   VF6 2 2 2 +f +('||AHH'H&#ZZ]]FF%Fvd**** +f + + +rcV ggg}}}|D]\}}} ||jd|g|R||jd|g|Rn:#t$r-|d|dYnwxYw|||||fSrG)r5 _format_liner )r#rzrrflaglistr{r|r}s r_collect_lineszHtmlDiff._collect_lines.s $&b$) " " HVD $ 1 1!D C( C C CDDD /d/$????@@@@ $ $ $%%% d##### $ OOD ! ! ! !x''sAA4B  B c@ d|z}d|j||d}n#t$rd}YnwxYw|ddddd d }|d d }d |d|d|dS)Nz%dz id=""r&z&rqz>z)_prefixr rnr)r#r)r}linenumr+ids rrzHtmlDiff._format_lineCs  WnGG!%d!3!3GGG|sdg}dg}dg}d} |rd g}|}nd gx}}|dsd |z|d<d |z|| <|||||fS) Nr1r)rFrTz id="difflib_chg_%s_%d"z"nFz2 No Differences Found z( Empty File z!fz#t)rr;r3r{)r#rrrrIr[rnext_id next_hrefnum_chg in_changerr=r}s r_convert_flagszHtmlDiff._convert_flagsesV(<?$s8}}$DX& %)) " "FAd " + $IDQqzN++A!:hw=O!OGAJqLG&J!'N+'+IdO"  QwHdGID QPQ!%O$PP6{ J>IIaL?8L $x '99rc  ||||\}}|r|}nd}t||||j|j}|jr||}||\} } } || | | ||\} } } } } g}d}tt| D]a}| ||dkr| d&| || || || || || |fzb|s|rddd|zdd|zd}nd }|j td |||jd  z}|d d ddddddddS)NrzV %s%s%s%s rz) z z!
z+%sz rr1) data_rows header_rowrz+zz-zz^zr%zrir)rrorNrTrUrSrrrrIr;r5_table_templaterrrrn)r#rArBrdrerIr[ context_linesrzrrrrrrfmtr=rr^s rrczHtmlDiff.make_tablesO $ !55iHH '  !$MM My#~///   .&&u--E$(#6#6u#=#= 6:5H5H VHWX676727 7s8}}%% D DA{"q55HHJKKK#IaL!+4Q<q !CCDDDD  v 33=HH33=FFF HJJ J$tggajj!<?($($($$ }}U#<==WU#<==WU#<==WT),,WT(++  ,r)rrFrX)rrrr`rarrbrrr$rfrorsrrrrrrcrrrr r s $NG%OGO4+"""""AC*+@8?@@@@@6!!!.5.5.5.n+++8(((*###. - - --:-:-:^INK,K,K,K,K,K,rr c#K dddt|}n!#t$rtd|zdwxYwd|f}|D]}|dd|vr |ddVdS)Nrr)r1rz)unknown delta choice (must be 1 or 2): %rrr)intKeyErrorr)deltawhichrvprefixesrs rrrs*.4  U, ...D"#$$)- ..c{H 8x  qrr(NNNs<c<ddl}ddl}||Sr[)doctestdifflibtestmod)rrs r_testrs, ??7 # ##r__main__)rxr)r)rrrrrxr)rrrrrxr)%__all__heapqrr collectionsr _namedtupletypesrr rrrrrrGrHmatchrrrr rr rr rrNr`rarrbobjectr rrrrrrrs8 > > >('''''111111 GZ(( k 2k 2k 2k 2k 2k 2k 2k 2\.&.&.&.&bl!l!l!l!l!l!l!l!~  %2:&677=!!!! . - - -=?.2B%B%B%B%R = = =,.?CJ1J1J1J1XKKK"25?D6666<(9#4#4#4#4J(,d%KKKK\ ( 0 "],],],],],v],],],~ @$$$ z EGGGGGr