python310-testsuite-3.10.15-150400.4.63.1<>, gM1p9|84ȤB&7mP4\Bj45YC ʢhIGڭI^!tx>&A <? ,d , [$(Abm zCz dz z pz jz z#zv.zȐz    ( 8 9:!BDFDGDzHzIzX@YHZt[x\|z] dz^ اb 2c d de if ll nu zv =lJw OHzx 0zy mz     (Cpython310-testsuite3.10.15150400.4.63.1Unit tests for Python and its standard libraryUnit tests that are useful for verifying integrity and functionality of the installed Python interpreter and standard library. They are a documented part of stdlib, as a module 'test'.gM1h04-armsrv2xSUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxaarch64D ###,Y,Y,Y ...!!!<<<[[[???.o-.owww $ $ $eee T T T#]#]#]--Y-111 q q q w w weee WWWNNNqqqsssmmm & & &  999 Q(s 3,)N{l_0 GI $+R!G  BJ M $ & kt2uhxNx313-P,-P 3 3/ /sDsPP555% [ h9h9 9  }W}X::>=> JJ  ol3l a ~Z~++ 111G G""h" _ 4 _a#]#7#] i Z8' YK1Q] O4  .J `,#  AH &MB6+p l-[ z2> X`  ph x:qqqH14o4{ye{879 33{3K?JK?%2Y{|}[Kkgxy ~l\g?1*RWWWSgm6561.1OaGOaGCF7GC[[[?0=*C7ASLx/)DIADDI===33 k 155---54d6ofo000kjk%%%EnD<<<  ~~22W _   '''111>>>tot 1 1cbcg+e333߹}  V,V+|'+|IINIB5B5B5_'''5?>g?  $$$[[[ hhhVVV%%% ? mN'N'N'\QQyxy!!$ $ $ zy|z KxKxKx000VAVAVAx *  :S9:S 7 ;4m;87{83j3j3jr GD=G..3(#(u?ru?LLL I I IBB^B@@RNR ssshGhGhG41+4B66``` ] ] ] , , ,:::000kkkjj   ` ` `  kjgjЍnI CI66jjjOlvl4lvTTTSeeeFFFN{NyNl"-,-qqq' 'LKLm...UUULL<+++QGQ QG4*4 ? #)#Jc[c76}7EEEQ///&&2M1}2M %  A A A A A Alkl 9,9,nh[n{I{(v(v(`IIPPPFAF!!_! ?'?'?'f#dfEEBBxt@u@5@uW0W;9;9;9[[[3.Tndn7U77UMMMEEwE]5S5S5SF %z%z%z yiyyi2!12YR3P\R3NN0N88eeegg<7<<7LsK>=>---*PpoqF>gfgqhr 434BBB ##EBa   #e##e##)#' &'  ___E%EhRRRN3V3 3VXXmXlklWWiWMMM...___09090v///.C-".C888[[[((()A)A)(t;s>t;...uմy)xy)b333bbob{x{GZ@)HPVNPV~g~g~\i\J IJ `L`L`LUUtttH-GH-@@.@{{{/// , LLsLXX*X:aa.a"D""DDpCDp77.-.(>$(> 9 9 9--Y- !aTxGGG  #=P=%=\R#R#R#IFHKP'&'VV w wCIBCINNN;7;7;7...gegyyyTT:p;@;@;@GTCGTS/-}/V9QW2]Yb]""" ' ' 'FFFaJ@bEKIKFFF+++   0&1000QQQ%T %///e0be0314rsjssj;D;D;D!i===Y:WrYr$T$!$T02x0???AAAl777 9 9 95|,5|KGLF___@=@xSxxS!!!  "":"332S2::Y: & &PNP[o2no2DDD//////666AAA%$% l ::P>oP! !//MM878ccc (>(>(>J}I;J}zDz^IY^u*)[* ""P   I I I    !!9!}.}KFKs2@@@,*D,FFFr1pNr1 6,,D, ӦӦ $ $ $KxQ434CCCfff'''rUrrU``CCC CtttuF"4'y`Q'434:NMNhngpgdm0-i=Mr _z. . ::CL34 ZxFJg`DYSFd3ZFxx240EC~ԟ$2?+sw! 0 Y%1HԹICvJnw~%* L`p$(y`01.-irxCa>$ikv37D14cF/E&O\mqKjbsx~r $>Mrz>0=1.-<~!!OtwTkz9QF>K/ng>ia( ^>dC=J>>q=?&  K)   .?d<$$w...999DAD77*D)*D445979m m > S >LdM1Ds2Bx$WW\[}_8';4v / ^]Dg  R;z f njl@?@" ^ o!gg$$BB,C!l~l:7./7L~~%}%6oyos8M,,n2( uS 16;\GW/%:$$$!D!D!D101ccc{{{}1}}1mmm"""2 2 X}WX}fffuLuPIPPIGGG;e;e;ejjij_=_WWWҌξҌ D  DL'Lp'a''a... JREpJR{52< TW0KhY *E#`Vi\2#n+ i$pWQ1(U hzRj*MT @q*xG>9.Gb6UbKh, oR"*&CHH[[&o&o&o,,,---W444%%; ;sss l l l???m n.ktSJxf7B|GB,0 9#0D I.f7RP A߂2I! $-lk81xn/*r)NO: 8,b _v$;p;3%!W] %=c!_z-Ae9P<tK3{$$$###44  NCA!!zBO2!+GY:www , $!$uBXB2BX!R(&j,g-0+5}313 v v v M M M&%&uuu! !P(PP ^```HAH: q } , :zGz&&'44+`":~~~ 3#: 00 6Ac..d.#t#_]f?p,$,L,ZZZ9:~~~_ Jvr pr !J2!JIIq1 ,"gJYA#-0t ;  {% nHl!|qHY 3bG555 r r r   HHHyyy***555^^^] i#q .! /' ]$#'>& bQ7`o)(Wj}U~7h|@1x0?.ER{]X`0~nJ:nS O:)))@@ArrrRRRA)rN&`TOOF$G]Gt9"-i =C^2--'^#rRR 5ܵbl8<*/h+r/OS FI`50o2$2 sG5$ e "Q,O0( )P9 yqj&deV%sUB4O 5f ~*2 ".~(o<+1"HJJ ^2/#2 U    $$!!\!Vxx / 8!iQ1BKk2*$ 7.Φ&Z@ 'J_P;e8D%K@ )'#i9~5Y&=*bGXsgx'!x`? oA)}5 n0 ^2_% .F aaJJ"vD<;>pUdcI1, HXH^{ zlkvE6CCRRR sss7:7:7:QQQ&&&((( b b b***ӡӡӡV7$:>$777 o o o~~~f??I?k=fMfMfM\\\>>> 2C8/}%-g O<7@wNp;PoBBB!!,,,O2O2O2!,!,!,   $*#$*0w0w0w p?s)-/A큤A큤A큤A큤A큤A큤A큤A큤A큤큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤큤큤A큤AA큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤AAA큤AA큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAA큤AA큤A큤AA큤A큤AAA큤AAA큤AAAA큤AAAA큤AAAA큤A큤AA큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤A큤A큤AA큤A큤A큤AA큤A큤A큤A큤A큤AA큤A큤A큤큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤gMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgMgM02f18a8cc5caa4e9cc32a0767d767a6b5aa23b521d680413b41ff441ef80dbb63585b4340e0d39d24b3b462a52f70df216ed6a0838334e5108843ce6900210e660634c869dc8e6684905687b013b0895380d96cf30d9cb67629594a41bb96ead60634c869dc8e6684905687b013b0895380d96cf30d9cb67629594a41bb96ead60634c869dc8e6684905687b013b0895380d96cf30d9cb67629594a41bb96ead592efa0e0489721f203eca405fb3190959271872235f180c596a0de3654b79c1592efa0e0489721f203eca405fb3190959271872235f180c596a0de3654b79c1592efa0e0489721f203eca405fb3190959271872235f180c596a0de3654b79c10b229643cf167e174063ecd5034480222e4f7c83c6104bed812b0f7975223c210b229643cf167e174063ecd5034480222e4f7c83c6104bed812b0f7975223c210b229643cf167e174063ecd5034480222e4f7c83c6104bed812b0f7975223c21150644426eaaee8bc896c2f142874e294c94270a4ce1768d9487de92c80835e3150644426eaaee8bc896c2f142874e294c94270a4ce1768d9487de92c80835e3150644426eaaee8bc896c2f142874e294c94270a4ce1768d9487de92c80835e30616e9107bf9c15d0b37a4f378c3547da3b80f122a9e0bf54e403e3a015607c00616e9107bf9c15d0b37a4f378c3547da3b80f122a9e0bf54e403e3a015607c00616e9107bf9c15d0b37a4f378c3547da3b80f122a9e0bf54e403e3a015607c0aeab8ec5832fb72ade386c48ed417fdb684befdb399c92b7d0324acf837d87bbaeab8ec5832fb72ade386c48ed417fdb684befdb399c92b7d0324acf837d87bbaeab8ec5832fb72ade386c48ed417fdb684befdb399c92b7d0324acf837d87bba7ba298abd238d46b54e6826cbbdfa7d4c5ee67d57525f1e1fe1e2dc1e9a6f0ea7ba298abd238d46b54e6826cbbdfa7d4c5ee67d57525f1e1fe1e2dc1e9a6f0ea7ba298abd238d46b54e6826cbbdfa7d4c5ee67d57525f1e1fe1e2dc1e9a6f0ec4ac6c99e4af3247aeda2b28c1d1112f8a4bc8379933d434a78fca640e01d670c4ac6c99e4af3247aeda2b28c1d1112f8a4bc8379933d434a78fca640e01d670c4ac6c99e4af3247aeda2b28c1d1112f8a4bc8379933d434a78fca640e01d670949585c05b1c40aa84fc7a11e3af612ce6942cdc34c365997ebde16e5f58b314ae52641f8a2881904e370baafa531fbbe864332ce593c2be54f32ed48f6435b3949585c05b1c40aa84fc7a11e3af612ce6942cdc34c365997ebde16e5f58b3143a187ec0ae23e61da16ce830cfc97a5d49aacee97f4ee9b1e19b97079223ffc53a187ec0ae23e61da16ce830cfc97a5d49aacee97f4ee9b1e19b97079223ffc53a187ec0ae23e61da16ce830cfc97a5d49aacee97f4ee9b1e19b97079223ffc5bf13cef7303662b2ef0cd6dab0bccacc66ecf2bfe37117e1ff4562bf33d619f6bf13cef7303662b2ef0cd6dab0bccacc66ecf2bfe37117e1ff4562bf33d619f6bf13cef7303662b2ef0cd6dab0bccacc66ecf2bfe37117e1ff4562bf33d619f66748227133664058bc7396747cfa78489b1c06a3c29ca108bfae7b5966a114976748227133664058bc7396747cfa78489b1c06a3c29ca108bfae7b5966a114976748227133664058bc7396747cfa78489b1c06a3c29ca108bfae7b5966a114979018ca91267a157a46da32d2a84d8dce16730d5a35af72733169984787a70d549018ca91267a157a46da32d2a84d8dce16730d5a35af72733169984787a70d549018ca91267a157a46da32d2a84d8dce16730d5a35af72733169984787a70d5461f36f91251c96c737ce08b961eab17b878f328e03ae551da5b9f5e2be03e8d761f36f91251c96c737ce08b961eab17b878f328e03ae551da5b9f5e2be03e8d761f36f91251c96c737ce08b961eab17b878f328e03ae551da5b9f5e2be03e8d78763939f90ecd890a4818edb5545b6018f014778c4b804f215eb45382d41a3778763939f90ecd890a4818edb5545b6018f014778c4b804f215eb45382d41a3778763939f90ecd890a4818edb5545b6018f014778c4b804f215eb45382d41a3776d170d10c9a298a983b09ddec95e87a5f4e0018236a37b910dbf08be2bf5ca4b6d170d10c9a298a983b09ddec95e87a5f4e0018236a37b910dbf08be2bf5ca4b6d170d10c9a298a983b09ddec95e87a5f4e0018236a37b910dbf08be2bf5ca4b141e005101953dfc7596525b58b43fa82c255045d8725223cf1ed6a5e172a3d9141e005101953dfc7596525b58b43fa82c255045d8725223cf1ed6a5e172a3d9141e005101953dfc7596525b58b43fa82c255045d8725223cf1ed6a5e172a3d9537780232f8b66f33c07265058a0ba4c0466bab87f46d812fd49f62b967b04a2537780232f8b66f33c07265058a0ba4c0466bab87f46d812fd49f62b967b04a2537780232f8b66f33c07265058a0ba4c0466bab87f46d812fd49f62b967b04a223a57873d73918846d50d28c72bc3b5a014254658157d68560a4183e748ad28723a57873d73918846d50d28c72bc3b5a014254658157d68560a4183e748ad28723a57873d73918846d50d28c72bc3b5a014254658157d68560a4183e748ad2873954f92bda4e79919b0853bda273745dff9533160479ebe8df7fd4241a6fae22825703092c93acfce4ddff7adc152d1353218d1b17da3f640a123396fb6ccd1c3954f92bda4e79919b0853bda273745dff9533160479ebe8df7fd4241a6fae222ea918a1e7da8410d0e34ac2bcf5a0be9ffaab42c5f8ff902820db5be63084572ea918a1e7da8410d0e34ac2bcf5a0be9ffaab42c5f8ff902820db5be63084572ea918a1e7da8410d0e34ac2bcf5a0be9ffaab42c5f8ff902820db5be6308457624d1f911fe406d335a5853cd4e4f28e5bb5b32b6b55ec37e6cb8bed00f245b7624d1f911fe406d335a5853cd4e4f28e5bb5b32b6b55ec37e6cb8bed00f245b7624d1f911fe406d335a5853cd4e4f28e5bb5b32b6b55ec37e6cb8bed00f245b704dd0536fb31d9bbd37d8b7f9cf160fb4e724823da4038dda555b08306d0384304dd0536fb31d9bbd37d8b7f9cf160fb4e724823da4038dda555b08306d0384304dd0536fb31d9bbd37d8b7f9cf160fb4e724823da4038dda555b08306d0384300fa60eb6634819001e7924c9b073485e0c345ced6546bf03cd76756237d6d9300fa60eb6634819001e7924c9b073485e0c345ced6546bf03cd76756237d6d9300fa60eb6634819001e7924c9b073485e0c345ced6546bf03cd76756237d6d93bde7dfb6625bec83c8594785cb989c5f50486ec393c1b663b7d49ed16a95c27285f166761605cf1b5b594c101c2d3a9d3931122084f70ee5b86bbc6d587ccf60bde7dfb6625bec83c8594785cb989c5f50486ec393c1b663b7d49ed16a95c272fde1095ca7dce09941faca5cca3d5e61b8c483aa598932cbe03de4b7d2827609fde1095ca7dce09941faca5cca3d5e61b8c483aa598932cbe03de4b7d2827609fde1095ca7dce09941faca5cca3d5e61b8c483aa598932cbe03de4b7d28276095d58b5f6e46b5610b46b1a20fe638f9e7708690a0d93b95cf9f8672ada6413df5d58b5f6e46b5610b46b1a20fe638f9e7708690a0d93b95cf9f8672ada6413df5d58b5f6e46b5610b46b1a20fe638f9e7708690a0d93b95cf9f8672ada6413dfaf093910226cd51c6b84f4d1eea2b6a91ace7b151c47742836f083cb8258145caf093910226cd51c6b84f4d1eea2b6a91ace7b151c47742836f083cb8258145caf093910226cd51c6b84f4d1eea2b6a91ace7b151c47742836f083cb8258145cb619eaaf093e498aa4c87ee24ccdc1dc37c650ce1981297d8e549db614fa4200b619eaaf093e498aa4c87ee24ccdc1dc37c650ce1981297d8e549db614fa4200b619eaaf093e498aa4c87ee24ccdc1dc37c650ce1981297d8e549db614fa42004dbf1454fce502a9847fd347787ea42bcb793f57a25dc0147e9bad3b9010f9ffeb557745ed1eed052732e89e14c38953a047f7b5cf58a5554ffa1eefe273d00f4dbf1454fce502a9847fd347787ea42bcb793f57a25dc0147e9bad3b9010f9ff457aea3426f6bfcc46972c28f1753f56b70f6e94d1138d42f1ffbbf44dac037cb1b6052f44940d0c2f1643cfc853bfa32683ac9120d32f649b42bfd233ae41ef457aea3426f6bfcc46972c28f1753f56b70f6e94d1138d42f1ffbbf44dac037ccf4fb7823d76694ea996e0b51c3b8c6c3583c62e90a428daf97b730b62d2fd7ecf4fb7823d76694ea996e0b51c3b8c6c3583c62e90a428daf97b730b62d2fd7ecf4fb7823d76694ea996e0b51c3b8c6c3583c62e90a428daf97b730b62d2fd7ede5342367aecde7b19671a97e1dabd950fa7a100c5bcefbf223931786759bac9de5342367aecde7b19671a97e1dabd950fa7a100c5bcefbf223931786759bac9de5342367aecde7b19671a97e1dabd950fa7a100c5bcefbf223931786759bac9aa63fbc9806fa27cc111cc12280b5b536ba532d81edec6238d28b126316f097a6bf176207671901fe79c204e15ae05208f4f355e1eeeb24b52f6b0389801da5caa63fbc9806fa27cc111cc12280b5b536ba532d81edec6238d28b126316f097a48ca8c85ae9e91d9efc95422d336acdc5e09f72c7c27d76b0c7a01017abca26c48ca8c85ae9e91d9efc95422d336acdc5e09f72c7c27d76b0c7a01017abca26c5e0da570d9950beeee972a8d52823566da66c950599283ed222eca29781929db644498595fb69ced82ff1565841e4a5c7891732637bfd293ce6fb925119bfa22644498595fb69ced82ff1565841e4a5c7891732637bfd293ce6fb925119bfa22644498595fb69ced82ff1565841e4a5c7891732637bfd293ce6fb925119bfa22de8b930317ad04812201eb1003561db7ddc167ae5a486b8f93a7559389e865dede8b930317ad04812201eb1003561db7ddc167ae5a486b8f93a7559389e865dede8b930317ad04812201eb1003561db7ddc167ae5a486b8f93a7559389e865de0b10c3257fe9cb470c5170fec014573810c8bac2b51f3ab7a45ea426ea9b9eac0b10c3257fe9cb470c5170fec014573810c8bac2b51f3ab7a45ea426ea9b9eac0b10c3257fe9cb470c5170fec014573810c8bac2b51f3ab7a45ea426ea9b9eac828361b6a73e4c5981c62eb7b5a574bff2289ccfea97556b30317f7cb32e3cab828361b6a73e4c5981c62eb7b5a574bff2289ccfea97556b30317f7cb32e3cab828361b6a73e4c5981c62eb7b5a574bff2289ccfea97556b30317f7cb32e3cab00ee998bf57d7f8e8b1c13438ccd59b50e251530645229d38d52b49c8616e36c00ee998bf57d7f8e8b1c13438ccd59b50e251530645229d38d52b49c8616e36c00ee998bf57d7f8e8b1c13438ccd59b50e251530645229d38d52b49c8616e36c2f7993af2de7fac8f814ec60745ef99ba59ca8f5a97da2cbb2839c2e5398861c2f7993af2de7fac8f814ec60745ef99ba59ca8f5a97da2cbb2839c2e5398861c2f7993af2de7fac8f814ec60745ef99ba59ca8f5a97da2cbb2839c2e5398861c4293a356dd74b41119775654d769ef5c1c6f2de8a202be42eea7f83dabaaeb344293a356dd74b41119775654d769ef5c1c6f2de8a202be42eea7f83dabaaeb344293a356dd74b41119775654d769ef5c1c6f2de8a202be42eea7f83dabaaeb34b0a771702511688808eb3b2bd843333b62997c5940e69423a990ee4218b33acdb0a771702511688808eb3b2bd843333b62997c5940e69423a990ee4218b33acdb0a771702511688808eb3b2bd843333b62997c5940e69423a990ee4218b33acdc73679bbfcf34c365dad4b5fb90afc854dc74cf54d3676521bccadc9830b2dc3c73679bbfcf34c365dad4b5fb90afc854dc74cf54d3676521bccadc9830b2dc3c73679bbfcf34c365dad4b5fb90afc854dc74cf54d3676521bccadc9830b2dc35643e1348050ef5a83002223a5f0f8477b551ada098110547edd47226b876ae25643e1348050ef5a83002223a5f0f8477b551ada098110547edd47226b876ae25643e1348050ef5a83002223a5f0f8477b551ada098110547edd47226b876ae2e5b863c0475495547ef761417c4f955be6eacb5311eee20cd259faedcc8e1c24e5b863c0475495547ef761417c4f955be6eacb5311eee20cd259faedcc8e1c24e5b863c0475495547ef761417c4f955be6eacb5311eee20cd259faedcc8e1c249e4f3c7ca5d25cca359f355f3298dd7429c478ae215d07d325a8b89d4c462b4e9e4f3c7ca5d25cca359f355f3298dd7429c478ae215d07d325a8b89d4c462b4e9e4f3c7ca5d25cca359f355f3298dd7429c478ae215d07d325a8b89d4c462b4eef286d8c411c0dbf55016463ecea93160d6b20df918ff9b5ab2eb5906e035465ef286d8c411c0dbf55016463ecea93160d6b20df918ff9b5ab2eb5906e035465ef286d8c411c0dbf55016463ecea93160d6b20df918ff9b5ab2eb5906e0354651da81ad49e5cad3340873355d784c05753340f54dacf30fc4fc59dee1aaf469f1da81ad49e5cad3340873355d784c05753340f54dacf30fc4fc59dee1aaf469f1da81ad49e5cad3340873355d784c05753340f54dacf30fc4fc59dee1aaf469fcf01fd969e56a9e192cae9833abb82b205f3da90ac0196e0fe26b28f3f91a4c361614edaf9ad6a24b4e38b4095352c3fce3ecbcc544de6d180104e3e79336672cf01fd969e56a9e192cae9833abb82b205f3da90ac0196e0fe26b28f3f91a4c3514484293889dbc2f9f90df97100f331c70cce17fadbf36f16dbef76a1f371b4514484293889dbc2f9f90df97100f331c70cce17fadbf36f16dbef76a1f371b4514484293889dbc2f9f90df97100f331c70cce17fadbf36f16dbef76a1f371b406d051b1ae38e449ac4d3fc3a5f4e2838bcc3cef19e1299058444e152b0db20306d051b1ae38e449ac4d3fc3a5f4e2838bcc3cef19e1299058444e152b0db20306d051b1ae38e449ac4d3fc3a5f4e2838bcc3cef19e1299058444e152b0db203e70bd6357bfb244c42698357115ea15c37e1dd2e4c41a3767f7a5c3ab817ee81e70bd6357bfb244c42698357115ea15c37e1dd2e4c41a3767f7a5c3ab817ee81e70bd6357bfb244c42698357115ea15c37e1dd2e4c41a3767f7a5c3ab817ee81a3433340dc3c9e058b312e079007e9475c72d4bf3e6fc1a2c1b058db8f289b51d8ac27a86f8a8f64d1b152635e6ecd0469ddbf5dadd29870a0f969538ec5cbbcbbcbb17674ce3fcb60d1edb8127572c8cc5f2e3022a4beb60f75a8f93869bca39715608adfd9443d46131b203d3ea2e60e70efb2539f22eeed3d9c65a3ecf368429bf3b0147217cfbb38bf2a3af976dc3ca4d098f035b2ecb392875debe9d3f72822ad12a0057d5dbdd40981f066beae03c1ac0c6f5ab62daac73d53e438218c09236782d5a0add20328f237ec3c077100029d197aebd224fe4f740c5a8ca6c2f42798e065d95a4847a2543f79daecebdcce6e2d80e17480db20e8283c5234c72de48a8909312a69fc104c340808bc13fd797cb43c91712c941affc4cb13d7b8e274510261c11e92a65d216fe64a3dffc189e0160a61fb01832d919d24c67636527c2bd0b524240d2b31430195a6e9cc23dbaa1a7b1f269c0f2774b6dcd54bfb2e67c91fbd2ee5085909cec073fa4c97b7b4cfc0655e6034f5a3fb5a9ef6425d90df922b1ebfa25185ccf01b3d22b82365986e4f45cae5499700e7ce54a4f69576ca89b1f53e9174c99f1230ea2a1c52607565c7eff5a612a00e0fc117dde111d9ef63fb7b762eb8a27ff9a1e2baa7651f79700c4068c55a914b445d76afba72d04ea0d55ac445635b331a4fccef38e9424e788495c360fe1da317c4f7b6a096b41f2fdd13b3f4d8548a2f0b7e5d561c2e49f86e4df8107acb6a6b2ef421460f7dd9334d30370b664b499b6e80226332f976492883fc3935fe5f2c4654897a57c66cb5a68165fd7e158d573adf12c2672d086d4b4e15515aaba654a45855f7c41a23fe2e684f4fca33991b0b65e02a5959d045b59906bf3e2557a7f777f1def3dc891b5d617d2a261527acfc1749ff8c402601f8bdc90f486ab6bfed45a0371faf92ac3f3e352a910dc13d15370b6cf53199509d176cd39d969f0570cb211049f2694dc3211773272d31fdd1f0c27bf31e09adf9a7fd9ac42e4264e5bc26b3b31eec53e948a9ff26c61f566de2c0d2c201c34c9ec547922dbc020afba259136dd7d7ff2706a6d1b1a843f3cb1f01da118d6c3032cda122c6989d4566bdcea547a723bfe187ec350b1c8d3cf1f8e7df3ca83a274b513b472a1833df6adf0a54202292a9f1b454b982a06890be38c40e4372443758e3f5ceae5c080c6f198ca212b67b1cdcd568480e515eae06293d0d71dae3d2e4f0ad612cbe439673a84c164bdcccc116f93cca059ba13a54af6f47ad22e16b2abc2dd6a0a0b2e43ce58cfe0d1e6bbf69f91736b21b68b66c5edc609fd32a364fe0c7ec32b0072c97d44dd0e8dac8e7f56da15fa162371b43c851d70844922c97c6d9908f5ad0fc3586aa4cd8a82abf64174a8a572271a3e85d7cf31317aff8036928d7503ee5c786ffbcd1fcbfdfb53c8cbae9a464105c4a3f38389c7721c9d1fd0333103b86e7c8071c9db2363cf3a39d434bb1fdecfe4d8e872db161e5b11e5262eb8ae66a0acdc73fb7200368da32f76a4c106cbeba3c92456947fbc68d1b012bc3762db1b5f9399e7be66b83ffa7aabe4a8a0b3fe98cbc1f6aaa31253b24f8db4e58304fdccf26ce85a5a89661e8555d05531985619fa54a16eccda0e15e50bc11dcc6ee9df9b3c590cdc2f3c65d439622b1f44ba6cb54a14bfb9bb9fec4a1ca47a930f067c307f32481a1f30fe454d29ec7d61e9aff7c02bca3072ab2dede632a98e0d68985b025d402ebebf011281a5c1fb7f76ccc40aad2da2aafdc96e6360e8c5f5e62d0c56d11bdf743c7b22a0dc8b4927a6d6ddba218bbe5e954f0d9f7089fdc4e00d6378a1c2d76c576c3fab33e040af706bfa799e42fd67fd82457af7627ebcf642a42b83b54d7d65444b140db8b2f2f415c8440e220e322ec865c974d9c74fa8ce03908bba066bf91a541dd63e6bd018f137db21a59fd1ede68c74bba21d91aaae374fefa40537d2b3bfa2d81a960f5e3e5ada46f39680db6ecad5c7b72754167563ea373db0c15a8e79b9fe5edfb0df4be28827dc628a32a9dc948297e16dbf183583bd4530d385d2cc2fa54d7063531169cc49c4105aa1463e54e298afcbc2f9ddb8f2675cd533cb174d6bf4a79d45e34893f6698e3527e7baa96ed1c3376a592f41591c4c7d463aa0ee94baa8aab42a1e7c53a9b5547110fffd1a85c30acc0a952bcb21605490ad5f19e2919a1dedda2a7ddb4a77389cf78f56293c97fc1343724690ac2d535399195f0b6383004f5dfd3bc309b4ff2f249f6cb99080189f7d7e55c4ef5ff839230cf999711c05b9ee030a7e843376aa51190971fd597643508cea7dc7407af8a5bf78195cef635a75fa3433feb88e8e33565eefeb66d330ac02260fd45643bf56d1884f13586d4b431ad0ae8fb9dab3a1802030d69d74c5d3d994aafd39ccb0885d7b72007c6c13d751aa3b3420ed560a7a132eb03d99a6473740bb10d643bf56d1884f13586d4b431ad0ae8fb9dab3a1802030d69d74c5d3d994aafd39f8aa2084306abe6290e99fe5702b30eb87339b65884ea9b6c7d4372c022ef9b90f9517c5ae7ddb44aae3b36b908d12a365e12d9ee06ba2776a0d6c5127be1699f8aa2084306abe6290e99fe5702b30eb87339b65884ea9b6c7d4372c022ef9bdba1f720bcab752abe919a5658dfb45d320c17eadd9d852f0023d23c0d352f6a13aab6b5ac6def009ed5804e0416e7ea337e95edd72d797cf0574116f1d4ee4ddba1f720bcab752abe919a5658dfb45d320c17eadd9d852f0023d23c0d352f6a36947d8c8f6d678de1dc17f3323375687a5bfaaeb122d6ba6547f2a91cd5550e937bec35be359ddf52e44d41cdd2efb9d6ffbfa8c89ef8269fd52858bcd8032236947d8c8f6d678de1dc17f3323375687a5bfaaeb122d6ba6547f2a91cd5550ef17a6f234bcb8e7b14f8774b6fb47cad47fa379ace58ae1e6d25366df545273778cc7f62674548ae8af40de473c5eb76b441d904f8d31fc366a39ccfafdac060f17a6f234bcb8e7b14f8774b6fb47cad47fa379ace58ae1e6d25366df5452737755883147f9183977e51505bbb4dde060923ee5d4ecf7bb7376bea2dbbffcce8e0977ecbfca9127d6379920bf4025009acb9bf3bb8dba24af23d6e3117516bfd755883147f9183977e51505bbb4dde060923ee5d4ecf7bb7376bea2dbbffcce80574f789f2dbe2f3573cb44b900786c81f5e78a086bbe193acafcc58ef516d7b33b01ad3a7891a8414634ca7e4a5aa05ccefec4b97d0bd3ef235946631667b6f0574f789f2dbe2f3573cb44b900786c81f5e78a086bbe193acafcc58ef516d7b9097b548a829bf612035307d534a65c049ae1a2b90bd0bcf061bd290830a1866bfa3b188daffeb241e159d5d2539b394b27d412c31dd329dd726df4cea8283ee9097b548a829bf612035307d534a65c049ae1a2b90bd0bcf061bd290830a18661ba5ea1d52101ecb75c44177b144b9fed49e93b9fd238c9ba9dca8b07ad5b9961f9700e5a70b2a8a72207bfc0e3910f13c136cd214550ad4df5be4ba6bcd30271ba5ea1d52101ecb75c44177b144b9fed49e93b9fd238c9ba9dca8b07ad5b9964ca55ce0d46f246aed0f42decc76216210b83d2af5566e0d8a74d2d022151c264ca55ce0d46f246aed0f42decc76216210b83d2af5566e0d8a74d2d022151c264ca55ce0d46f246aed0f42decc76216210b83d2af5566e0d8a74d2d022151c268fdc82bd86434c676d17b81e7b4f260c5d811b68f03b05c9082c667cac7ca4e680b9101b4dcf517e2746fec21aa17c4104a72421426ae32abb95a68f02ad7a398fdc82bd86434c676d17b81e7b4f260c5d811b68f03b05c9082c667cac7ca4e627fc68195a7ac21b915f6b8cef34dec6c9f1e5c6dd4fd81b16d915e7732b330b16d8d57718f15ef9430135683281c1bff8ee78594ddce30bbf3eb8b10b3e3c9427fc68195a7ac21b915f6b8cef34dec6c9f1e5c6dd4fd81b16d915e7732b330bdcc7b765a6a92dfa5a4d44fa677499413124c9129bb3fc65b3f468811ab214f605fcaeacfc8af633d61bc3aae908e6144e747b316fe19a677c7f57bbb7cffa69dcc7b765a6a92dfa5a4d44fa677499413124c9129bb3fc65b3f468811ab214f68b960db5cf1f12944991807fed6f0c089ee812b68a4329272743e9e2594ea477a7777543240a7e08fb88cfdc6994e8e5b23fe0a4a57037bfa236b7a8277ecce88b960db5cf1f12944991807fed6f0c089ee812b68a4329272743e9e2594ea477ccb22a3ea0a070d293634fc22d861a88de8c8d05c61a064b32ceaf63a75012083758081dcb0f407c9e8e6527f63dbb28c1ca1b3badb9b05b1d3a5897739bcb5accb22a3ea0a070d293634fc22d861a88de8c8d05c61a064b32ceaf63a75012088a7a4b7bc32bb7958d8ac38f2cbc181ef9349f6a588b006e18c067a07a2fac56492c1d8747287484efd1f011b9870cad0f961acc65002e5d455924bfac8b52908a7a4b7bc32bb7958d8ac38f2cbc181ef9349f6a588b006e18c067a07a2fac561ea1c6676fc4a4dfb28687e5c1595f21a5cb30365251fd581f88563be2eefcee9911f9c3218845e96d1b1040b52f5cbcc153c5e53cd1d730eaaaa3f5ba96e3681ea1c6676fc4a4dfb28687e5c1595f21a5cb30365251fd581f88563be2eefceef4635e00d0d440cae49aabbe0fab446e68ca4cc77f99903063a5def7b4c1a8da329028f36862773e5fc78be4a6d73dfb6c0b176f43a82119a39d9fbadb1e2df6f4635e00d0d440cae49aabbe0fab446e68ca4cc77f99903063a5def7b4c1a8dadf84facda4957a7c25f469555cbc8c7556984b201eb21062512fdba8bd311cd3117a75e6a3c5f0a101a8e9d4a3e0967d0977818887cfd05139d64be77ae8c8cedf84facda4957a7c25f469555cbc8c7556984b201eb21062512fdba8bd311cd3647f5dff5cb843dc5664d95ebc95eaf328cae1757645a2272af5d5dfcbb0fc23931e2738d7309b2e9498ff6237eedc10fe4f76ded84402218c447cccafbe4d8a647f5dff5cb843dc5664d95ebc95eaf328cae1757645a2272af5d5dfcbb0fc23e576000b4d6bb69f63a7e810afb17810e83be1780274a9d4fcbaf7d67bffcc91636c5f8c0c6cb0a1fb015d3f46efdc9fcc3358345d732f3a5096844240531bbbe576000b4d6bb69f63a7e810afb17810e83be1780274a9d4fcbaf7d67bffcc91f829a2746d9724bac875fd764b4f386d6b68561ab74f51cc7c459dc43b6c21eb850468fef4824cb03e8c770ae250f8e487e56360710807443b6210368223050bf829a2746d9724bac875fd764b4f386d6b68561ab74f51cc7c459dc43b6c21eb6aaa371f2b4e7f83be6e018363f3a4ff4e4363f424d2ad914d3ef94c8c0e4b750ed202c752c784385f221b32f20a505c507521ed3707ad7b723598d800cca0a66aaa371f2b4e7f83be6e018363f3a4ff4e4363f424d2ad914d3ef94c8c0e4b75669f9ab3f8f6e265047bd7d6587de4c2501a0e06cb1a7c4165eda0418769324a1db313ca2d898be0f85687ed0f3f9795ee1e64d3e6282f037f8d900d2b925059669f9ab3f8f6e265047bd7d6587de4c2501a0e06cb1a7c4165eda0418769324a07f60fe5925d754f672350bb9bb6557e7a983f1a19ee9d50ccb88d771b9beef306e6f579e2e0a878ae9f5d96ce110a2f324be07c804c419bf4217d7c22bfadf807f60fe5925d754f672350bb9bb6557e7a983f1a19ee9d50ccb88d771b9beef3419b87f872c7fe3998f03a543e98240c51e813083932d9767d2614b57d9b1c20d96225f57881c0f5d0b379940f9953fd3f778d87b3f93097cf9e9c5d49378b29419b87f872c7fe3998f03a543e98240c51e813083932d9767d2614b57d9b1c20be56149252a8c6a40e05821ed87b1ddfb0693f3c473dbd9cbec461d637640a72f0811fd562fc83a39cbd78f76213f7e80f23240a12bc554b51cc35e5fe979b59be56149252a8c6a40e05821ed87b1ddfb0693f3c473dbd9cbec461d637640a72f14617852635e971bb437370f5651dfa5988816ce6a82343aee5c339bbd090afc9d6f20cd24574a7ee034d816ada3a880aa37e45e0e471f3619677873de20024f14617852635e971bb437370f5651dfa5988816ce6a82343aee5c339bbd090af895c250133e2fd473a2291ef642cf897fc70d38f3cc9b921191101494df5bac62b0fca13a16cb22a58a7db162caeb58f29fbea293f67849eb02daf752fc04999895c250133e2fd473a2291ef642cf897fc70d38f3cc9b921191101494df5bac6ff541f48147af00c38256aad34c5a83e6a31f419b67795b459fc5217e584ac73d14015f38ca271910db7e90a7845c1f70e0bb323ca7567924483638982b1b6f6ff541f48147af00c38256aad34c5a83e6a31f419b67795b459fc5217e584ac738f5c0a78defcd72690894336917104ec0c9b6ee9b79bec5b4f08399a400a87e5d76d203a73109d3469cc0bff0fad1fa34a3e910b1da8639ff67e5fcf53eb09398f5c0a78defcd72690894336917104ec0c9b6ee9b79bec5b4f08399a400a87e5ec22507620709d42fbfb96981c597c9da2e181d96e2acd8700c74ce6e8d090bbfe5dd471ffba54ae862c4285ff09b9e87365be43ea0cd05c855794a2151955f0ec22507620709d42fbfb96981c597c9da2e181d96e2acd8700c74ce6e8d090bb61853064471581710f72a2f8389429aa32921ea9b15dc3a2641873ac05a4e934a084b7b4064f6b0d064604cb719accdf0c0d469ebde6cf2df6aa2b60eee4be2b61853064471581710f72a2f8389429aa32921ea9b15dc3a2641873ac05a4e9341e1ab4e1af92c9915bc052fb802adbb2f7c47e898b04d0378ea312b075588c9c0addba0da4ce39a926b6aaaeefd20e2a5b5b2483418b94998c22e4ab1b02eae11e1ab4e1af92c9915bc052fb802adbb2f7c47e898b04d0378ea312b075588c9c95a17de79cbd86b64fa8282e04195d9adbe89566664e4114ad4955ade9854b2bcb789f32aa7fb17c0bf696b6fdb0aab7af0631e0f4e1ab89ec42baf2a27adda595a17de79cbd86b64fa8282e04195d9adbe89566664e4114ad4955ade9854b2baada5d0e2c1fceb9a6e3783cfbd4a5b1f9c49e59b137517d324e17bbe2ae900c6f6537cbdeca8dae765d189603c9290f671207baba949f8de37d012be2382f2aaada5d0e2c1fceb9a6e3783cfbd4a5b1f9c49e59b137517d324e17bbe2ae900cbcfbfc90ff10d11748c00b7bc59d41fbea18387b0c0c15705b3a59dde96d459d9f2abad52de976ec33af1fc4eee98c2af2bcf3024c559ef9ba47d5f074f39c39bcfbfc90ff10d11748c00b7bc59d41fbea18387b0c0c15705b3a59dde96d459d5f93e05cb874f9c9f96204fd655f1a382d25d29bf750cd2b9934e862f46775f1a964d7978db3c347741a6c9fbe5bda54df6fe8afcb9047435011fc73043c74bc5f93e05cb874f9c9f96204fd655f1a382d25d29bf750cd2b9934e862f46775f123cc052e600d07d6f145cb892e1363aaceec210014727aef343021af81f3792397be8c991e12f8abd3957f0a22e8ff5be7766078b06a94e7d8b64ebaea1d678d23cc052e600d07d6f145cb892e1363aaceec210014727aef343021af81f37923b0df5753e1d93a2c2e5998e609816c8120c96369a6ef6ed91b437165836f621dd6c3968ff1eeac6f90270157120a9990c506385d80bf3a7d4f57375944b93f4db0df5753e1d93a2c2e5998e609816c8120c96369a6ef6ed91b437165836f621d634c067cddab443e2d4fd06b2a08cd00366494dd568cfa804432b9aa5af24e71fb9e6912358eb96c9eed04a674fcbd4fb7f9497e2ee604d770c6935e2ff605b0634c067cddab443e2d4fd06b2a08cd00366494dd568cfa804432b9aa5af24e719ea72642077e6da70e875cf91164a2bbd955ee8c056624b48a23c7a441f7ea1efd4c908f55bbcfded662161ff7a21d2150908b4abe7c882db008a978617a69d59ea72642077e6da70e875cf91164a2bbd955ee8c056624b48a23c7a441f7ea1e7dca982dd963a91a68fd666631b9490975f958085f84bb625df1a9059d5fe22678090a9b90b7da8574f48cf390c3199f6ab200099363fde7d005d78b81400bb87dca982dd963a91a68fd666631b9490975f958085f84bb625df1a9059d5fe2261a766ccac6850b0424118733e2b086803921e0829f98ad0719be671a5da4263cf7649fe69f9eae66781747a72550c3743a197608ca6b37d5607930570a80438483bf2ee3296935e9a7cc528e903c5bd4632501f5a659453da9576f95b5ee133a48ceba7378dd0d0ed0e3983d120c4fbc3793a35d8bf47cb32f13f18f61a1f854fbe9884e5e1a28ff1d01c087bae2aff7fce7f80884f16b7e3941945e977f3ec285385f211bc84e188d73acec80e5023db03cccd4dea606c02c2d52ee2d42f55fe40ec9e60ee10385af078bf41b8a2fa126fc4f0919547e0a68f0b1aa2517f046c21e2ce5937429a9aeb92686b192e4751eb28399dd7af44bf524b5706c2237e8c13bcc9b849ba70fa7e49baffc922fb2ad03671cbd989e28217220a65fc5bad1e79ebbde7cb44634761b906c45315cf054c360184844bb7274dfeb010088c9a81eeea30b412c1f9375c86965528f0fcea92cb59a9f6f7f827ad639f6d50d5432046407fe31a1b3416acbd34df0c4622c7f7e6fecf9859bcebd4214b6b62c505f03950ad7681549157802d8c38005c59ed3c5df5d9f328636701bf24c9953984faf860768e940633cd0dda9bdb10d3faa9f018e4e94bcb29975cbfa8fcb7fe424f0e86363c03e17fcf28d44938d2d064d3de8419705acfa6f6f7a286a66e4b7ba1c0e82ceed789b3bd1c1de73d40a79c623b8698f07aad0299921bb4ab9f758ea792a8948fd5d79a77bad54d65b92f4a8bbfa2d54211ecb93a8884066f56427e8f05ece1f6896864213519c9ebd6dcc3b68afe35769aff55de9d5c1a37e354908ab94a3e3cc02359e455af7fed69ab8dc2266bf58a3b10d4153ace9a776b28fb66dc13cad79303d04b81a83a9d556775a442e1369d45121a0e0ab8f13242328c144a92518311e69ba5e32529650673c6ac61b300b97800f8cd5423b429ca2abf171ea4a132597be2891b931d7f1ccb5ff7811aa6353bc13bd9490df7ef18feabc01eed22047545deacb1b4448b55589a9941df362a28570dd225606776d47c22543f8091f014358761d806c4f7a69347afec116f37093c0a01991a9d58cf59b5da15e902307d415403251a223f52fb90345030025b133231188b2bfa1b1ca725b2e45219abaa569087b5f0a0c0c930ec92538672c79e4034e368f324ddef02110e0a29d16cffd3997def9179353eb6ae020644c2e59a5d4dc5ec1583da51eab7eabbddc109ef35ed9aca855ca57629ff38f775f7a972da5771df9654e0bcdf8aab7bb725739e88f1529897190c26c969689735852da29b39f1fa962a7875dd5310a7e1d6f6befd7aa20f4acc0b9154f3206565a2ea5c81b71ad7b255d2b9195f8e79dada8f4e68c15b1ceb61f1f35354106972a6e3f29b69f351d701ad1ff3690284acd052027b622bc696be5fd2068fb149cb82a10e6dd15537175604c1a212e0d1dde41db44732b7bb09f00ecb0359d6c9434ddbe3065ea0ee3a93a9035543b0250ba18275c1b7b4d54a7e5e5b2353d0408b938baae10783661d24123dc31d07b14aa02788e3ec8f3f68aa73120bdfdb9771aba3c4f0db6af2482707322fcb594ac8098d4663d41cbfb8893d3af3b633c06bb40dfe898a0f76a96bf10bcafe7a5398489113f8b7a878b6bcccccba5a1a8bbea3857a285c3c3d3ffde8903e0b2dbf3f1b388f55a2ac4c13336f2814fdc862ad52e88a93c7eca7cb3e68d2d8d9aafdec9265cc15f2dd52e11128ff9ea6fc75a47c39d3d079ef9953c0a14108eae5acabcbf6ad46d7c6cd0a3ab45796872944e8ddf21fa89c0cca6f1ecbb1cc7339a795b1ede038ac9c2ab16e1f852c17bd5c00e29d22c0c9e2d02ce8224fb74f99fad90df09845d5dd4b654f375c929f5532e2e243f77ab102aaeabf39a71e7e5690003c23752f77c7ea1108cd51dd7e9b0ca7021ad925aa982bae5bcd2f988b00a3bcc0446de7d7092d3b36b4b908c2aa7278c91188d399faa6e511df87daee80c12599b2d09e15df759cad2b60b5e196c25675853550410fe80db52bf0d152384d49a2e26b1f54280fd6b621c3139ffe0bced96f6361d01d7a10bb23874f746d3e04ea90d48dea989a99fe8e60f2e1308476b7b64ba77f78da8d4ce81c64c23fa29ffdd6537d721322450cc64fb969cefed0fbe385a81df056be7debe7f0d35747d745f219e46adbd7878b0fad06fddf62f91f9c41dd4c71738caa4502dc86f92c9985816fd744127b11fe50111ba9de3b0e4c1887cfeaead5f99cb9bf51c8d26003f7d437e73e8a17ce1e7dd1e1938b7e64a71b7c455f0537ae20992dcbd28fa37815bc58faf84ce8b2056659b5686709583e2f81a5ce6b3f82639a18a55266af7ab5586854297ec737d4aa485b96f13641a556106223eba0d761a5fb962eacb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3c1526812d548872aec890c41e39a2c9ad38ca4b2ab625d8a87711a129f372180a1526812d548872aec890c41e39a2c9ad38ca4b2ab625d8a87711a129f372180a1526812d548872aec890c41e39a2c9ad38ca4b2ab625d8a87711a129f372180ae3b9a24b1418f9fb72168433c3a6b877a6eff6d6ac3dbebd989f0f77876a2a49e3b9a24b1418f9fb72168433c3a6b877a6eff6d6ac3dbebd989f0f77876a2a49e3b9a24b1418f9fb72168433c3a6b877a6eff6d6ac3dbebd989f0f77876a2a49ef09c89ffb19893c77d268a85cf33c1509a3724b59b6f5ea5a77585a9b2e5fc6a4cbc973d7e8e9c64d7f248eabe206fa44ab14fc1b530322565a577d12834576ef09c89ffb19893c77d268a85cf33c1509a3724b59b6f5ea5a77585a9b2e5fc6d8d1bbb65414a2a1242996a952789dae9add3a78bfbbffb3b3d10599cc055ab50fb5b122ff49fa3609bea80a453fc5dd6d5ff833b7a7392ffde9cabba06c4dcfd8d1bbb65414a2a1242996a952789dae9add3a78bfbbffb3b3d10599cc055ab5363ddc7a22a1731f88401487a5978005787711120c8bf26928cc490e5ec082edc84e39312de7dcc1855a4af4e80e64a8e22954e1edbdae8d97f12505da053760363ddc7a22a1731f88401487a5978005787711120c8bf26928cc490e5ec082ed2268e9f8566cd40fba96a865a629e19b1ade92f0a4940166292d52a05acfc8852ebb8f7dd1564d91aa500caff97c3bb4f0077505d9f6a2467be9a76b182293f22268e9f8566cd40fba96a865a629e19b1ade92f0a4940166292d52a05acfc885f483d01dd99a079c2c8a906c7a835cb9ee710f9fa670f743431f28888c2a744ab3adbc940fb23cf231eb361768dcca941fb8a97e832caaa4a3473ecd58a6b24cf483d01dd99a079c2c8a906c7a835cb9ee710f9fa670f743431f28888c2a744a91655b789de50cb6a0acbed78087bb9027483cf31e10a69819eb379d6191e00bd050408b829bf6ffcd83baf303f41c8f1660c62b6f5c768374f7f3f0e5b0476791655b789de50cb6a0acbed78087bb9027483cf31e10a69819eb379d6191e00bbc1a09cde893d1b943df77ada9f74a600ea0654dfcae7b3f30c12e3469b62a6afebbd0c5523293acfc000f5f08fbd31c974280ecf9ddcbe84b0fd41e0c68ab0fa22729d69133233760684bb0c9e1bd8717ccc2c78ea639ec8ca2dc9e1706cee71e34a9053e552f6ec8c25a69549bcb8164ef533b0e00d63bd4f6d8e8d16cb72fa7501a5a80972fcccc2acb755f978ff24b784f9ec3f1996820fb92718fb69b351e34a9053e552f6ec8c25a69549bcb8164ef533b0e00d63bd4f6d8e8d16cb72f86ff98071fed218aa9d8cbe2ea7c06107ab10fdc7a887f8e60a4a7757d596ef83ea015b445b6431d8465962a46d0fa2dd007508d87137949d77567873f4dd23f86ff98071fed218aa9d8cbe2ea7c06107ab10fdc7a887f8e60a4a7757d596ef883999cc221401dc2fccca9d3dbe395c82a9f009db310a00e811c68c60654771916c62c93da9ed9338601adb171f1aac3d28c1c9cae35ee1b6de7948de837e436d910ad886333abf3664a4fb4290d3b81307a16c6d9ca14356b3644a9aae6e714997e7fe3cee72d5a5d86ea6e3b33713f021abb13d753faf765632fb12d9210f4552f388dd8d5d0ae4776304c47e69b34bf059ea1ea8b7f3e4c8d6cc6207e5e72b78e533e055c607b009b1ad93dbbf16a3595f6522b95536eff974b202a34e8fde3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e46f1bf431aa68e36406b32cd94afaafd109452df427aa726855be4176077b56a2e3c4212f38d27aff680c0a7f6c377829438a7c7a4f85ad4789b22de7ca73a9042acb60984c6f721fa89c42cebe22572acc9434cc7f27d2fb4362b3602deb1d627f9028bbdde32e61ceceeb929520023607de25aebdc039c2d568d9c1a8d1dbc7c15747f0d13d0884b48d424c3b38d5e05cfece09c539c906d5dec48be3d083c0a16cfbe6b674abb6534c984f06af296a01668b208f0967f25f8a4348e625a36d9acb2151507735aa72c6aeaf15142a75cb0d3b37b48215ac45ee17106adc18b8f8f36cea94f8189a18558ae6badafbe89f20e5edc5471c7068ed53d1e2c031253e51525c7e1ef847ab32b2556bc4213371e636fb498e0040980036bdd3f8ed6b7a9e6082077b5ea379c0dcefe21455a21c57f69e51e9f16d1efe25176d0663fb2ba8b926bd5652d450834a5c951ba6041c4bffa4ba9d0545d7935c4563b92dd00dd6cf406be2cd020e16ffefc4e01c8bc45324e02341a71c52993f07ef5c346794fe0491d3587f50932556ed87a85b59f0b22dd01ff31b2f12149a24cf94968a9f1197a95ada1732be8815d4f2228ac90c05d4af7435fd1464380a10e3ca173f61027bbcdf521589b58fca01c3a5d2cf9ee40f69e48567b2175647fb5e2cbb275051121a652b3f17928d42f6d0d6d50a5e8f1d9a4986ab4cbfd53841d2f5a26fbcd26438397c6c3de40f4546c7112c81f784356e614ae529d8c90570d40f711a12117d8c600e848b41f0c89ec1758d650a8425dd9bc40b502fce6298d4cdc002c744eb87a94e5ebd94e5966e103dcf29da97b458543600f3aa79c8158d47a9e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855200509c4467d758ba8b99b25a3319eb8bb6d44a475e9f3391bc6b0695ecbf4d1200509c4467d758ba8b99b25a3319eb8bb6d44a475e9f3391bc6b0695ecbf4d1200509c4467d758ba8b99b25a3319eb8bb6d44a475e9f3391bc6b0695ecbf4d1f4940b2ad6cc8b1688067e6c2cd3748b9cc2b5a43168e89519adbe7c5edb789af4940b2ad6cc8b1688067e6c2cd3748b9cc2b5a43168e89519adbe7c5edb789af4940b2ad6cc8b1688067e6c2cd3748b9cc2b5a43168e89519adbe7c5edb789a50338ca78cb6f38d36ad1e2b48f22fdc057b392e4848e9ff1d377cd1c6882e5dc70012aaf05ac0c7919a4cacf58faf966ba4ef4f6a8b417e1fa7494b8dde9630ea4c874577a109b670b6122063b9918ca95ed07541ce8bbd7067e76e0e64ad1e83df5411b765b226f64f25a4aa953e51fa4ae0aefde11c99f7becadfb7b4d58783df5411b765b226f64f25a4aa953e51fa4ae0aefde11c99f7becadfb7b4d58783df5411b765b226f64f25a4aa953e51fa4ae0aefde11c99f7becadfb7b4d587a09a7517ffceae22fab3a9ce1e9e6ab6897fb3afb21910993cca1355522ca6556faac3fd3ef4f6369b5eef9eb9b4168cfcc54c6f15742e3a25c58cb2119f0164a09a7517ffceae22fab3a9ce1e9e6ab6897fb3afb21910993cca1355522ca655e6151d24f73b741e48638e7e988f17afb69630142e1afa484dc218a0b122cc3216c54045ca286744b81f6c8f0e56d88c12b92ad47307d2981e5c81aa99782858e6151d24f73b741e48638e7e988f17afb69630142e1afa484dc218a0b122cc32b5fd791c3e300bfc3a6d9ca894c8735d0c92982fbd8dfd36d52c9c70eca59c7d9411beb7018625ccedeff19b2909d96678a2c457c0ae4cc62b313c0551cb1286b5fd791c3e300bfc3a6d9ca894c8735d0c92982fbd8dfd36d52c9c70eca59c7d7b2f022a53c7e2984652c3c98089cd17ce8bc339595b29da5de77da7e3a1005503fd73b4af6f2a598f809e1664af1440997d91aab2fda4e76e432307c4edc0577b2f022a53c7e2984652c3c98089cd17ce8bc339595b29da5de77da7e3a100552f8a5d8e4a3c263a1044644e67de67ee8ac2ace791b61c09b68ba6b983f00027fa4ee585aed7c15cb96ea0ca833e70efac0f63a0ac163a8de2d9edab97bc496e2f8a5d8e4a3c263a1044644e67de67ee8ac2ace791b61c09b68ba6b983f000273a27abc76f8fa6cadc1655261c5e9e902e7e90206740d0d98a2fa47d948f7d023a27abc76f8fa6cadc1655261c5e9e902e7e90206740d0d98a2fa47d948f7d023a27abc76f8fa6cadc1655261c5e9e902e7e90206740d0d98a2fa47d948f7d022d7961e945d0c571af44a6586d15ba896f502c3b91fbcf6fc57b3da62975f8058522c6ca7fc5adbee6d9a47d743468df7fd901eceed023b43c5cb009ee854a3b0ccd2581033cd6f1e05202b9893c1413abd8b0b0257ca7a8a593130a85921583de3be9debf00fcef806b0177eb34abce60e8630f50bfbe42816872d6386f20dabc468ba5bb1d3ba96b3918640fa3ea85958ff8b79eba4e18e7bc4b556f1e640db002dbce60daca8e6e2b1ab4d012a2a52d36107024556bd69b86b587e058009bc5b2faf4ee246c959e8dce6cc1bfa5d328daf17c60b0ef8c2ccd68df02235c3eee0565f06cd8732a9236f81de8c1015a8d638e23e9d4a231748f9ed56c8793577d0ca2ab9ca5e9c99fffcdf138017d19988f28b68c907e16153110477397068f1933965d3f03aa674c8ada3b5d73a2287d71e35bd8e4fa6d732724ba951dd27a836cdb388117cf81e78d9fa2a141cca1b14b0179733322e710067749a1b16fe94baae068f2729566e70947faa81deef8d863ed837f05da1004a390bad4134294d5060a9170c4a560d61d5a7564b7fe77840f99121903b851098c9ccee1db480fd5060a9170c4a560d61d5a7564b7fe77840f99121903b851098c9ccee1db480fd5060a9170c4a560d61d5a7564b7fe77840f99121903b851098c9ccee1db480f7b6b091f653cea89707b5a190855e4d352e3a4029eeed26788010d39f156c4267b6b091f653cea89707b5a190855e4d352e3a4029eeed26788010d39f156c4267b6b091f653cea89707b5a190855e4d352e3a4029eeed26788010d39f156c426997a27f86dca4ee33a490dc4114d3a253a2d8f96cdd38cb290dc477f0de62e0e9a3b880f5fa03ea69f18454cba70b375d2b061ce9a13c4eab1984ee1e5050877997a27f86dca4ee33a490dc4114d3a253a2d8f96cdd38cb290dc477f0de62e0ea39221a1e8c01d72271d43f38667bbd471d050a05a45b3fd4bd0b02eab63e14107237ee7b070e7bfa6d72584cda26b32fca6a96fc2d9e9d666013d1fe24ba051a39221a1e8c01d72271d43f38667bbd471d050a05a45b3fd4bd0b02eab63e14103a621728ae116c19f2cd10212a865fea1ba89e92aada803105a97753130c0d903a621728ae116c19f2cd10212a865fea1ba89e92aada803105a97753130c0d903a621728ae116c19f2cd10212a865fea1ba89e92aada803105a97753130c0d9643bf95bcdbd614d3e0146d2c2c6ad525d80744a97096cf975edf062fc394ba692c4f88a3b2d1c96747b112f011a9a82b0ec1cfe00db8f652579d7a458dec75c2cd77b4da95ebc23810959cea9a55889c1b5cf5fbb73770f17b83406e5ee12332723f4d8cb4f2e9314e4e8f7cc3046fe670ef6e9a70c762619cb1ca791270da773150e8b54a54f45bb40949d6a306edda1a496a3e765c4ad13511a175d78dac12723f4d8cb4f2e9314e4e8f7cc3046fe670ef6e9a70c762619cb1ca791270da7928abd44569f4017c13309ced141fcb9bd976ab78906b297bf5497ccabdd0b266972c16310da617f9aa8ed5bfb4db37629f0128ebc6d42e3adf105ebfd34fb23928abd44569f4017c13309ced141fcb9bd976ab78906b297bf5497ccabdd0b26186280848a32065cd5a01afae97a5e6f80a8b0a67fe6acc6b1bb5268589fccb9ced53908a08680f6dd025de11539646f53a750004f67145c597440bc8f43b335186280848a32065cd5a01afae97a5e6f80a8b0a67fe6acc6b1bb5268589fccb9c153fd4517fca8ae306dcd85d38537770cba01aeb5c4c839968cbb3c84b65e1826dfde0ac7629cddacd65f709f0ec86d3d25a7b9311808a73b7c9a7c717608aec153fd4517fca8ae306dcd85d38537770cba01aeb5c4c839968cbb3c84b65e18cc6d5eed8ae3022b08e43fa85dba77cd14512c60ea78477dd4f7379259a3f085cc6d5eed8ae3022b08e43fa85dba77cd14512c60ea78477dd4f7379259a3f085cc6d5eed8ae3022b08e43fa85dba77cd14512c60ea78477dd4f7379259a3f08591f8b4af20af68db7740396cba95ce5b852f508b091945e263ff0a82438995f191f8b4af20af68db7740396cba95ce5b852f508b091945e263ff0a82438995f191f8b4af20af68db7740396cba95ce5b852f508b091945e263ff0a82438995f150493f34a466bc65b3b5111603071c8ddb9afb18fcce8940335b14d6aaccdb9f50493f34a466bc65b3b5111603071c8ddb9afb18fcce8940335b14d6aaccdb9f50493f34a466bc65b3b5111603071c8ddb9afb18fcce8940335b14d6aaccdb9f0d2b51f325f47b2cad7b7e23ec660633a3a8fa45027459b1aaa0583c7450dbe447b001fbaae2688e665858cd77721ac4044887b6c9b7575c6bd4a49295dc21f20d2b51f325f47b2cad7b7e23ec660633a3a8fa45027459b1aaa0583c7450dbe41026be03ee1f0872c151c07bbfef74dcc4073cdeedd85cb69a4bcfd1430f36e41026be03ee1f0872c151c07bbfef74dcc4073cdeedd85cb69a4bcfd1430f36e41026be03ee1f0872c151c07bbfef74dcc4073cdeedd85cb69a4bcfd1430f36e4178cbfc2036fec4d41afc49ed1747244269a0854978b416e007a11e88cb125745632e80145c0629a258272143b6d0329655824b6d10ef20271b0fc6152f28f6fd6df6675091a124c1a0225fd243506c9ceb8fb9d686ccad1807b38be689681c911c9d2f0bea571bd4d5e1d2cec83c3641d6bb9639d8442e6f3b26ff4e2f4db6f11c9d2f0bea571bd4d5e1d2cec83c3641d6bb9639d8442e6f3b26ff4e2f4db6f11c9d2f0bea571bd4d5e1d2cec83c3641d6bb9639d8442e6f3b26ff4e2f4db6ffd822fa2dd1a44938bde2da47f250f7a63e3817c2e9c705ca7ec0260ec8b54e5fd822fa2dd1a44938bde2da47f250f7a63e3817c2e9c705ca7ec0260ec8b54e5fd822fa2dd1a44938bde2da47f250f7a63e3817c2e9c705ca7ec0260ec8b54e50428ace9d5a474c9ab4e029c96847c7afeef924b445e69ccbc78730feba654a59d580a33b7ec365cd89cf380b856b4478024f20dbfcd6011603522b925b5049a0428ace9d5a474c9ab4e029c96847c7afeef924b445e69ccbc78730feba654a5fa5c927ed6b03f904499ea26bbf139f4888234562487f9da893f7ddd2aad160bfa5c927ed6b03f904499ea26bbf139f4888234562487f9da893f7ddd2aad160bfa5c927ed6b03f904499ea26bbf139f4888234562487f9da893f7ddd2aad160b4aa6e6e54ac8776045fd2e4c8107febd50b43d7267d532b9fb069006e35057927427cd4b7cec87236d2657ed576eacfd21b6b0284c936e34530bb50bf090d3964aa6e6e54ac8776045fd2e4c8107febd50b43d7267d532b9fb069006e35057929e474a9bc50a17d81969bbeec0c70520c590c652076f2a58d1ce55472226a0a89e474a9bc50a17d81969bbeec0c70520c590c652076f2a58d1ce55472226a0a89e474a9bc50a17d81969bbeec0c70520c590c652076f2a58d1ce55472226a0a8d38be97364ecf83895c8169a9a769ad7f57b5bfdcf55a5f8b56ee10f6713e9c2d38be97364ecf83895c8169a9a769ad7f57b5bfdcf55a5f8b56ee10f6713e9c2d38be97364ecf83895c8169a9a769ad7f57b5bfdcf55a5f8b56ee10f6713e9c2fdaeceebbe6acd7cef101fbafe313a824b7aa428e227b21b8be9db547a4b9f3ffdaeceebbe6acd7cef101fbafe313a824b7aa428e227b21b8be9db547a4b9f3ffdaeceebbe6acd7cef101fbafe313a824b7aa428e227b21b8be9db547a4b9f3fb7eabbc16c06eeda2e48f871a7d1966e7d43848bafc4a5eac66795f97048a86eb7eabbc16c06eeda2e48f871a7d1966e7d43848bafc4a5eac66795f97048a86eb7eabbc16c06eeda2e48f871a7d1966e7d43848bafc4a5eac66795f97048a86ed3bcf6f6a2a4fe0cef8a2b7af9c82f90e6a44739af034a6f0e4283b9e856ee72d3bcf6f6a2a4fe0cef8a2b7af9c82f90e6a44739af034a6f0e4283b9e856ee72d3bcf6f6a2a4fe0cef8a2b7af9c82f90e6a44739af034a6f0e4283b9e856ee721cd87a3c76049a76732c4631c77748dcf295c2cc992b03bc1a8c0dd780fc763f1cd87a3c76049a76732c4631c77748dcf295c2cc992b03bc1a8c0dd780fc763f1cd87a3c76049a76732c4631c77748dcf295c2cc992b03bc1a8c0dd780fc763fc7ef282a739ab67b948bde3ad1eac1fb1e7fe4b2431b690c55f6871693eb00e6c7ef282a739ab67b948bde3ad1eac1fb1e7fe4b2431b690c55f6871693eb00e6c7ef282a739ab67b948bde3ad1eac1fb1e7fe4b2431b690c55f6871693eb00e6c11ab3a20eb69806c92bbd168e462a64c86a4442eb62a9242715099d91968d4cd92c65b90baa83ae7dc05d1565b0fcf034e64fdecb68adbc7d1f9aeaaeff74f2fd4394b6553ad5c0ab1aa18c77bba0c3a023a222d5e38235089a60eff95fc8a958be5d8ace32f0a4a642bd1644adca7e0b699818b22d20627e0121af56b6e8d858be5d8ace32f0a4a642bd1644adca7e0b699818b22d20627e0121af56b6e8d858be5d8ace32f0a4a642bd1644adca7e0b699818b22d20627e0121af56b6e8d85dde34aaa63a04def1741afa57b5b7ae0e61cb7de9bf3b0d4edab38a91a0f2152289a266b29b5b7fcb5ad62f35711a71a7785aa271a66a844cd02d5103241da85dde34aaa63a04def1741afa57b5b7ae0e61cb7de9bf3b0d4edab38a91a0f215df4ba0c281b198da0a19b02ee70df274f01eb2851c94701c1f2b82feac851d80aff47123d2c4074b869456d2863ed22372e6af5bc9d2b2685d2f6c9166583c62df4ba0c281b198da0a19b02ee70df274f01eb2851c94701c1f2b82feac851d80b5255b897942069761dece6344ebd7e15e95a322197faf55fed792003517155cb5255b897942069761dece6344ebd7e15e95a322197faf55fed792003517155c108fe1f5d988910e0efc5d6c0b90489fa05b510a965a3f182bc99cbcd5a372bd8f9bfe09f951fa6db071d416811e4da81c31f814f84bd52f9612d0c4144ff8a60a46cff0403c8ac9c5fa8e627625ccdca072561a8fbdb7c17ec4019e4bdfa7158f9bfe09f951fa6db071d416811e4da81c31f814f84bd52f9612d0c4144ff8a6b83eb02d21efbd2e515170e87624eac2a99f7a1562c8c5b91423ca188926a18645c5c4475005a848dae875b116916462f7cf8679dba8a659b3bf260ca65b0773b83eb02d21efbd2e515170e87624eac2a99f7a1562c8c5b91423ca188926a186288bd90f3520bcf182c6d4d571c368e483cddff16c1f83f4789ffaacb78a98e375efa5f5e94abd1d0a88dcc3f30f71b1e541dff45c1816d2b341a881965f002d288bd90f3520bcf182c6d4d571c368e483cddff16c1f83f4789ffaacb78a98e30b0cb0aec4f2ca16e3d5f3766985150c84398e721d5dd2592a5e11a696429bae5e24bc5ef2c6b0d02947a2661d333a6ed669fd785564864dafb594918af3d4960b0cb0aec4f2ca16e3d5f3766985150c84398e721d5dd2592a5e11a696429baeeb770171ec5d6261dec910cef510b21ad32711b7388ce43abf605c34c25fb5b8a2ca3f26d6ffc8c3ab5e4ce3dd526d81285b04cc5e0a08907ee9c6fa1d15e0d7eb770171ec5d6261dec910cef510b21ad32711b7388ce43abf605c34c25fb5b886c5c6fb6ec1ca8762927a974a34f7616fa4077acb420fce23a382ea304caebb86c5c6fb6ec1ca8762927a974a34f7616fa4077acb420fce23a382ea304caebb86c5c6fb6ec1ca8762927a974a34f7616fa4077acb420fce23a382ea304caebba1566f1a52a9bc02e14d1a0d75ed09977f11ae3dcfe7a797e0466b0bfb46cbada1566f1a52a9bc02e14d1a0d75ed09977f11ae3dcfe7a797e0466b0bfb46cbada1566f1a52a9bc02e14d1a0d75ed09977f11ae3dcfe7a797e0466b0bfb46cbad8716a173e312cb815582da4896efbfc626e8dbbe470505cd2cef503d2231cf008716a173e312cb815582da4896efbfc626e8dbbe470505cd2cef503d2231cf008716a173e312cb815582da4896efbfc626e8dbbe470505cd2cef503d2231cf00b6f2b3b08f05e75050b8dc5de41060661d8e749d2b579538f9f53f5de5b1b1ed1fb266cdec4b73bfb813b4281809e2a0e09175a4e4a24274e5f5b51e4b52f147b6f2b3b08f05e75050b8dc5de41060661d8e749d2b579538f9f53f5de5b1b1edfd444dafd555e8a2e52495ea3637dc4f199e03f0c96a47cbc7de86b2319d927574a61f114ebad7c6089522ebafcb41ebbf35156a97f7d58f1973b767c34ea8fafd444dafd555e8a2e52495ea3637dc4f199e03f0c96a47cbc7de86b2319d92757a406248aedfe744f6713cacd1c1a638b1a4c58782b233553a0e1ff42be55ddb7a406248aedfe744f6713cacd1c1a638b1a4c58782b233553a0e1ff42be55ddb7a406248aedfe744f6713cacd1c1a638b1a4c58782b233553a0e1ff42be55ddbeb0b3406a5bf8a7ccd8082cfcec6dd69c633e1e9df7235cc38da8670917b8d39eb0b3406a5bf8a7ccd8082cfcec6dd69c633e1e9df7235cc38da8670917b8d39eb0b3406a5bf8a7ccd8082cfcec6dd69c633e1e9df7235cc38da8670917b8d392d8b98c7fcdf1064dfcdb6e289e4b5056dcd80a391194bf31bfe56d24f2e6fd52d8b98c7fcdf1064dfcdb6e289e4b5056dcd80a391194bf31bfe56d24f2e6fd52d8b98c7fcdf1064dfcdb6e289e4b5056dcd80a391194bf31bfe56d24f2e6fd521342434fb2f88d38a8d0ad5255b33be613c98c38635210b7b3220a77e31fddf07a918d849658959dbd9a0aa783696bea594cd5dfb5ef0752d8e2eb1161a634921342434fb2f88d38a8d0ad5255b33be613c98c38635210b7b3220a77e31fddf518e8997e11d69f2d346254f00b2f557dc2d3c906cb9ead13129f65727d97a45ace8eb9f5820fc1b9374e1d6ca064d57da47339ada6cf71bf41fd01c1cec8e69518e8997e11d69f2d346254f00b2f557dc2d3c906cb9ead13129f65727d97a45453cc7e4d33c9b302d808e569bb7b1c92af413c782aff65ec187e485994c2c160c9d21964ce31f758f22108aff51047f15149fd2c22cbdff3091f0cfa5e85851453cc7e4d33c9b302d808e569bb7b1c92af413c782aff65ec187e485994c2c16ee02573d1c181183e11f78ab2fcdbdba724cf0f53b417de36985d00f94120385455f55e7aac3501bb0d2c628694281994ed337c4f575c2edd665d2c8aaec93c3ee02573d1c181183e11f78ab2fcdbdba724cf0f53b417de36985d00f941203854b3a9e11264100248d066b2dc54ff994796e021fca1965cc9fafab5fb36b61ae8722c4f9ce19eb24889c4ecad2d9ecd4615d74653062b5f3384c14bb2b0511d34b3a9e11264100248d066b2dc54ff994796e021fca1965cc9fafab5fb36b61ae174e39a36840bf83c16839ef2e9b80921d2176641385ba1658a689f1a2ed54c65cbcabfb169bddbb6aca0154edd6ca4515284e3d56f7c2c6860514fdad982b3d174e39a36840bf83c16839ef2e9b80921d2176641385ba1658a689f1a2ed54c6615b7820088fabb8610fba228dbc0b7f1aa2dae1a4bab11567193099fa86f1df9d9e04bb8753d4b7e0331557141e76cb6a9ddd0de2d20de405d323adc12d656f615b7820088fabb8610fba228dbc0b7f1aa2dae1a4bab11567193099fa86f1df7faa24e3ccdf25d571386cdf42d5caf67a172dbff177f0e5b5e2cd4fbe0382fb7faa24e3ccdf25d571386cdf42d5caf67a172dbff177f0e5b5e2cd4fbe0382fb7faa24e3ccdf25d571386cdf42d5caf67a172dbff177f0e5b5e2cd4fbe0382fb0ff8eff95ae518b6f5a98418bbaf991bee6186602fbdfc7d98e716c72b22c0d10ff8eff95ae518b6f5a98418bbaf991bee6186602fbdfc7d98e716c72b22c0d10ff8eff95ae518b6f5a98418bbaf991bee6186602fbdfc7d98e716c72b22c0d1e2b61086fbfee8e355038a0b5f85eedc059fd7367732c98182b3cd6e49aef5dbe2b61086fbfee8e355038a0b5f85eedc059fd7367732c98182b3cd6e49aef5db9b81167112df6c7b5298ce3bc82800d44005da26e7bb5e6891512ba60162da8548aece5e7e2c837678d9db538f175526dc2903d0b5689df094b6135f91ef934828dfd8bc934e53937334561c2e552a9563db77c799f8513fece897a01e9bc738e431d5b300db0e42d1357913c5f1660e6f1a23d3cc52689fa53765d5adf3ee5eb50e6f37e6e911c7b5bbdf0117c7b2e56c7f43ccc4d95c4893c5f8108df5d4c333585b8e32dcda41aaa27b5a88c12cbc31f06962a6991f6d521a5e3864fdfef4b50e6f37e6e911c7b5bbdf0117c7b2e56c7f43ccc4d95c4893c5f8108df5d4c387ef0d874505ff3161d6cde577964c6afc41060e500912c19e6935f21cd2290dc8f5de5b08547954047cf6761c7380d028cf13d0e71c6f825ceeec1a78abfc4087ef0d874505ff3161d6cde577964c6afc41060e500912c19e6935f21cd2290d3cf346d4b6288f957fbce483879a9dbe9ccff78bdcf25d1b3f05e390ae53b900d68a676061f21e059c8faa3580197fb87c355ba41faa17cd77c3d4b8267cd8ba3cf346d4b6288f957fbce483879a9dbe9ccff78bdcf25d1b3f05e390ae53b9003cbfdbe1284b62b680a398206af81972e195772da5f5871b433bbbfb120b36c0c28d153d4afe3ae0051b76b4e6b2761820adf2595c8fef7f9c787ab042297cfa3cbfdbe1284b62b680a398206af81972e195772da5f5871b433bbbfb120b36c08b1f2f3b24974a7a743c2c579459caceea1011218b978cd133bc331903e88e08ac75abe54698d98703a35021733d0a24f92ef6cf0af007e3c52931be928ad6d88b1f2f3b24974a7a743c2c579459caceea1011218b978cd133bc331903e88e08c17d3daf506d9db5612ab062d59086545701bfd38463b141a2560d9094438537c17d3daf506d9db5612ab062d59086545701bfd38463b141a2560d9094438537c17d3daf506d9db5612ab062d59086545701bfd38463b141a2560d9094438537f34d1913f05352ba6a37657425b37ff6c1896f3fa879262ed28c496455898b2d5cdc2326dd829cbce9cb11c04ce2a44ca3b9884eac200357c68f0803ce2fa4183a37f1ec8d91bcfe547d30618ff160d9d0dfc7717dbadbafcb115c0d9bf3645ae45a713f7bbfafd78f7eaf277dc4379d4565f941959eb331fe1620abb33865e5e45a713f7bbfafd78f7eaf277dc4379d4565f941959eb331fe1620abb33865e5e45a713f7bbfafd78f7eaf277dc4379d4565f941959eb331fe1620abb33865e51b257661eac7a19524e5fc8578907353a65a765b4c38662fd015f6099c05c9f11b257661eac7a19524e5fc8578907353a65a765b4c38662fd015f6099c05c9f11b257661eac7a19524e5fc8578907353a65a765b4c38662fd015f6099c05c9f123c2616222f4525440f562bc4bea890bf69fed619c883ba01b1e6a28e53d0ce56fce5aafe02dab7bfb011657e974d1040e6527d16d560e2b172765355e6ae6c423c2616222f4525440f562bc4bea890bf69fed619c883ba01b1e6a28e53d0ce50ede121f623d389443bacad81e56cb8316a62749e8900757d38c94c2b9f941c30ede121f623d389443bacad81e56cb8316a62749e8900757d38c94c2b9f941c30ede121f623d389443bacad81e56cb8316a62749e8900757d38c94c2b9f941c3bf330ef89eb199f15196a98e10e44c10113f8ea605e22b1d1cc61a369421e8edbf8f4b5e7cfc28ff9d778158288850757c1ed628be2245039e9b0e54d75e93a3bf330ef89eb199f15196a98e10e44c10113f8ea605e22b1d1cc61a369421e8edd61eb6b10e248616aa9ae37f5c249684cfe196b8ca53b1c3866b67ae652e8fb75e06dc18625a3233cd5f898bfde9cef0b9661f7b0d019c11295850ed3072c7ffd61eb6b10e248616aa9ae37f5c249684cfe196b8ca53b1c3866b67ae652e8fb7430deb2dddfe92134593ff00f0dbcb3a56ff35c011c0ad56405c18424a9de2d7430deb2dddfe92134593ff00f0dbcb3a56ff35c011c0ad56405c18424a9de2d7430deb2dddfe92134593ff00f0dbcb3a56ff35c011c0ad56405c18424a9de2d7d6357540fa663af2fb7aa0fcde4ad9794cfd216b5938a6331e7e4d0bc538d6f9ffc0ba547b1186444ba50109b2191ba4818eeacf4f2fad104fc5eb34d91a259dcafab1a1c21381eac1ecec5c3b841b5520eefbb373f29adeccb668481e149eaaa62c403c62a3b0c61c0048a1a1d1d827d1c875be195fca2d0f45e8e811ada2232db2cfe8fbc3d0628351ca803ccfb49c122c2152e77b2f93853212dedd100529a62c403c62a3b0c61c0048a1a1d1d827d1c875be195fca2d0f45e8e811ada223d7ba4d437771f13059b65c6b6e110c6c86364bf29ced22a0094911c76f643659d7ba4d437771f13059b65c6b6e110c6c86364bf29ced22a0094911c76f643659d7ba4d437771f13059b65c6b6e110c6c86364bf29ced22a0094911c76f64365943603957eeef5f9dc3ff4fa386f0334722b16a49fcf7cbbf470e861b575d5dabc8b0cb72454711d1aed21d63ce992d0e2fc4aa1bb0e1889e07c5c9ed1d138e8243603957eeef5f9dc3ff4fa386f0334722b16a49fcf7cbbf470e861b575d5dabc3ade080f3dd0567830c8394efcd54968b047e6725805bb84cf90fa247462557c3ade080f3dd0567830c8394efcd54968b047e6725805bb84cf90fa247462557c3ade080f3dd0567830c8394efcd54968b047e6725805bb84cf90fa247462557cb395c321c3452a801a1417c8ff328c881fc1cc53fc2dfa3082a86a4c05e4f68cb395c321c3452a801a1417c8ff328c881fc1cc53fc2dfa3082a86a4c05e4f68cb395c321c3452a801a1417c8ff328c881fc1cc53fc2dfa3082a86a4c05e4f68d062ca53cf4c6710ce4a30c4495c8a9ba5f594448e0f7f9001104d527999d6600614d2e53cb398cc19bb62dbdde656a7e1999856fedc7fbb6fc60a8381d5c47ed062ca53cf4c6710ce4a30c4495c8a9ba5f594448e0f7f9001104d527999d660e56dad918e90b39d4a0865549f58bf1937cabd4713a2633a83418ca965647b71e56dad918e90b39d4a0865549f58bf1937cabd4713a2633a83418ca965647b71e56dad918e90b39d4a0865549f58bf1937cabd4713a2633a83418ca965647b71719cf017beff86054398f6f9adf080428c2c75876bb7bf99d9eb2b358e46684bb3ed615506cae179019bbc2363701bb7053df96414232c8105dc248447729e92719cf017beff86054398f6f9adf080428c2c75876bb7bf99d9eb2b358e46684b2db8aca5ceae06d7d21f9fabd3c27929d521575abd43b02adc777592f27a123268b5c30ac0371d95ed35d184a7cb997eb51339f7a716052642a6bfeb91d73ece585c2dc750a74ea79a9e1c21473cf3018ed3123aaf4be8fcb07c0cfe427406e583ee61df787c828983e722bcbe13dfc78e39ea4f2eaf0480448345c1062eb804cb9b750bbab83bc265865d1782028134808a5d16873ad027debe089b2c0d825683ee61df787c828983e722bcbe13dfc78e39ea4f2eaf0480448345c1062eb804187b1c08578f9142af664d0f576ba6340ff531328b874a22c4dad1be8c777f4f66faf9ff02745315b7ef7be51abd8b121e7a6482ee526eb4cdc86938606ca940187b1c08578f9142af664d0f576ba6340ff531328b874a22c4dad1be8c777f4f2d7313f326282ed1884604208c1b30e8a400f01843275b308fa6871a98555fb22d7313f326282ed1884604208c1b30e8a400f01843275b308fa6871a98555fb22d7313f326282ed1884604208c1b30e8a400f01843275b308fa6871a98555fb26374edfb33ad6fc8a90e776626bc4bbd07664501464621a091221c52b60be3c6f3e4c14c450526164c57df11b12ea34fd0da850bb7700587bab82bf00d381c1f0d6ab99c462c1b2aecb18fe3bb0dc5ecbc96b76e3ec9ca56d44ab9c0821d5cccb5d8537a016f7f1b531c2879270dfcc84b6556b9ccb414d61055f39f24d84e76a28f9b9d7f9ae36019ed4e97d8e708dee81534a99dd4754d26c2907a5eb17e46b5d8537a016f7f1b531c2879270dfcc84b6556b9ccb414d61055f39f24d84e76db01b51909354f9c26900d9adbbe128390a9b0b9124465259ffaadcebd6354b805502a3171c94ad1b7be42a1b06f2047aa099ae670b00f22ad061679b89cf1e5db01b51909354f9c26900d9adbbe128390a9b0b9124465259ffaadcebd6354b8b30cf80605922c6390dbbf6afeec64632897808a07c12dca6eb9a2734491cde6b648711d2c04e725095ce042136ff9f190001c965d9964b57abb4fd8936f3c254449ee4b522d1b66b13ae1a59638a8881dfa3f044528f0c6e36ddeaf6bb77d13f8f69b015043af3649ab3513fb56057a383214c3597f41b54057f617c0728235b48aa9bbb6731051b96598f0e7bd4e755b02a15d648a3b2488e680e886e8f2faf8f69b015043af3649ab3513fb56057a383214c3597f41b54057f617c0728235160483f3dd7297670f677552182f6f1df68c8ba34a30d19bc82ba183fc83eb2f160483f3dd7297670f677552182f6f1df68c8ba34a30d19bc82ba183fc83eb2f160483f3dd7297670f677552182f6f1df68c8ba34a30d19bc82ba183fc83eb2f6398726852ee4bc26be468c206bcfe30e5883dbe7c36a6e0665112651cc692fd6bfea77bba728ad95ab7e206fddbd06eec58106d0e442c3db05ef539c55d11d76398726852ee4bc26be468c206bcfe30e5883dbe7c36a6e0665112651cc692fd37f1c9a9efac6c50975b08a219a4e509c49f6b58c1c692127dbf16a8d6d6b11837f1c9a9efac6c50975b08a219a4e509c49f6b58c1c692127dbf16a8d6d6b11837f1c9a9efac6c50975b08a219a4e509c49f6b58c1c692127dbf16a8d6d6b1181caa4edcadb84f560eaa5b03f9743d29dfa0e240ff1502310c7aff38178df6dd1caa4edcadb84f560eaa5b03f9743d29dfa0e240ff1502310c7aff38178df6dd1caa4edcadb84f560eaa5b03f9743d29dfa0e240ff1502310c7aff38178df6ddc60b51ff39aa79a87cf486eea222e876b52fa6a445167af2f8b74a44809b3c94bcb3d7b055438875027e19cb1df42c185d1b5c9811bc8c9a555d5f5ce426d50fc60b51ff39aa79a87cf486eea222e876b52fa6a445167af2f8b74a44809b3c940505484c20acc0398f16b7f2cd213d99def91fd9b49f77f0434e1e99c28515b9b2cb90507b3dbecbe00a0e64d31f7b68ab85d5f34ab55fd7b381fe8166d10ab40505484c20acc0398f16b7f2cd213d99def91fd9b49f77f0434e1e99c28515b95d62e89d73d8703d5f229be59498724f0dd3c110d04c0d8296885f5c9c63e2be5d62e89d73d8703d5f229be59498724f0dd3c110d04c0d8296885f5c9c63e2be5d62e89d73d8703d5f229be59498724f0dd3c110d04c0d8296885f5c9c63e2be608c45aeda4cf208a53dfbed9cd6a4061ac2a0117c5e9861b56cdd13e75f2953083e8f2036900c4cf1d6196c414eebfea96359e61ef36aeffe8fd2afd5270cd5608c45aeda4cf208a53dfbed9cd6a4061ac2a0117c5e9861b56cdd13e75f2953ecc94985fa9a4b1e0c42e113256d145832f232bda214af93395bb2c438335ee5ac7508a0de806bf6433cf7734d484197aed8980dc6d060b03403e5e749c13cabeca3c38c664ca8739052a74029377e3349cdc3e2de8c835372dc731866572ff982eed1e54346cb6d2fa9f3d87ef98b550475faea74e6b459d0f2fc29d9223d268b78b1b165fb266f899acb10271244c4ba7e3d40123703ffe12aa8c4b59c364b82eed1e54346cb6d2fa9f3d87ef98b550475faea74e6b459d0f2fc29d9223d26a5e57fb139936a62cfbe73b540322a8ae25c641561147e1f5a898fe73463b0613fc64140752f3141a746bb4a737c248c56d5ebe11ede2478f69ff1a95ac11b67a5e57fb139936a62cfbe73b540322a8ae25c641561147e1f5a898fe73463b06190cb7fc5da94b8c6c3e4c2a5ea4a269b1d354646e438674fa0f121f1f8435add6c8703e3ff9546aea306cba0959e45b243d77149e2388bd89acbd564eb31a3b190cb7fc5da94b8c6c3e4c2a5ea4a269b1d354646e438674fa0f121f1f8435add0400e909fca452c558e7aca88afc2e7a9480e2d192ec42be878f09967d87420f9779bfcbd6a4de62e4754a77dad2336f49d6bbf953ffaf77352b53e74700f4430400e909fca452c558e7aca88afc2e7a9480e2d192ec42be878f09967d87420fc8e96f41e812ddd847cb9723a2ceab9aadf0cb170ca71b2cccad084f7a7d8cec6e1a967d7ce51200014b1f235d094c0feb97e7c3f818528ef7b4cee323f4a579c8e96f41e812ddd847cb9723a2ceab9aadf0cb170ca71b2cccad084f7a7d8cec0f3270df98fd02800beedc83b9f23fc9ec4f8a63904c8ee56f8d987b8e3d283e12cda50d2ac3b05e1d89fd629e0a45c4facd35df9765754e17a60dedfa9af0670f3270df98fd02800beedc83b9f23fc9ec4f8a63904c8ee56f8d987b8e3d283eed8c39ba17592f19bbc2097496809ea0ddf4901f2cbef4f2ae812a94253eb609ed8c39ba17592f19bbc2097496809ea0ddf4901f2cbef4f2ae812a94253eb609ed8c39ba17592f19bbc2097496809ea0ddf4901f2cbef4f2ae812a94253eb6093bc30908e84def33014f2b876726c0ca4efcecd86fc4b419de69b428eb52f7f434a38b3e6df0b430fe59870660da367ecd9abdec1d32c27e06ba06cb838f53f63bc30908e84def33014f2b876726c0ca4efcecd86fc4b419de69b428eb52f7f45cc27ecec0eda31a812088620ce9a362535de64900889c01aec8b296db7aeb735cc27ecec0eda31a812088620ce9a362535de64900889c01aec8b296db7aeb735cc27ecec0eda31a812088620ce9a362535de64900889c01aec8b296db7aeb73169afe8e1cc83df0f480598654b98a97847c10f60bab094eeb8a27ce6b8324e704e324641a3c20bcc605a5871dbed72278fcb4388c95bb712f18d67370ec25e896785e5445a82d9f2c21bb8754fe44e4d7e7164d3d6866eebc21ac14992d3b24a88475fc2f0500a726c4ff717327c6ca236a0ef8bc567a17cb57b72cca8594aab17db7d047f76c77cd1ef409274088f9d3abe8a05b4b090947c417fef1faae0fa88475fc2f0500a726c4ff717327c6ca236a0ef8bc567a17cb57b72cca8594aadb036588f0be0536ece51b829ba48ee3740696fd905b57dff77402310443cfac2aa3457add994c38f4634981a13de3ee6d1ac90483ede2274305019bc5208943db036588f0be0536ece51b829ba48ee3740696fd905b57dff77402310443cfac1149744464560015ff4b937dfabd93a22592816f2f3f270812d60caed17d44e23f6a88904bba7d3003a8f79ab69156889f780584be121a189011e3faa10f56061149744464560015ff4b937dfabd93a22592816f2f3f270812d60caed17d44e21591e1eb19a7c7ea597f166e4cec8883fecd8abfd8caba6d42c1cbace2a057631591e1eb19a7c7ea597f166e4cec8883fecd8abfd8caba6d42c1cbace2a057631591e1eb19a7c7ea597f166e4cec8883fecd8abfd8caba6d42c1cbace2a05763cc21520ca48508294ba5c2a53eff95dafe5803fcec055fad3ba9af05a4321aa81e2c61075b4f5eccac99a4edca4771e7b3e3fc348cdfded2b1cf839feea7dab0cc21520ca48508294ba5c2a53eff95dafe5803fcec055fad3ba9af05a4321aa831f36eb82ef535860460a0c2f4618cdc9fa05256da6df8210ab068aff1489b4e31f36eb82ef535860460a0c2f4618cdc9fa05256da6df8210ab068aff1489b4e31f36eb82ef535860460a0c2f4618cdc9fa05256da6df8210ab068aff1489b4eacedef08fad03da0ca9cde1a04544a7dfed5e46b07da8b4f80fcaab774aedfabacedef08fad03da0ca9cde1a04544a7dfed5e46b07da8b4f80fcaab774aedfabacedef08fad03da0ca9cde1a04544a7dfed5e46b07da8b4f80fcaab774aedfab5115c68cb2de8bafecf243fa38cd7d780a4f1fc3bd5780379f845f5a6b23bc4feaf32c89908eb82778a49e145154a99aad05b69c04cce49adda51cd3920cede85115c68cb2de8bafecf243fa38cd7d780a4f1fc3bd5780379f845f5a6b23bc4f60a6885a0fe27b21d74ca6975c7b6e09d4ae45f0e70ca7c8244c4509ac7dfae560a6885a0fe27b21d74ca6975c7b6e09d4ae45f0e70ca7c8244c4509ac7dfae560a6885a0fe27b21d74ca6975c7b6e09d4ae45f0e70ca7c8244c4509ac7dfae55c0c7c3ecd5bb9e2fdc5d4c88e95eed3fedfbc5574e727408bce51313a09ecd04b3aba1467afb6ecb5ad1291311684937d48aead6b0a24364d5716e213eeb72d5c0c7c3ecd5bb9e2fdc5d4c88e95eed3fedfbc5574e727408bce51313a09ecd0564edfe9a5ef357d9a39fe095d8e74851154b5a5312ac08b6ef243334c9ec118564edfe9a5ef357d9a39fe095d8e74851154b5a5312ac08b6ef243334c9ec118252acfaa9dcc66f47637cf5753b3e8e4f23ea69ceaa1b844cf1ae2796760a887cef9487a3a12a69686f2d9df924521b449519bebf5609514fd69bbe4d9c2744241dbe81acc5c84664daceb27a1698fe3abe7f30ecce9d17f46fa88ad524489ebcef9487a3a12a69686f2d9df924521b449519bebf5609514fd69bbe4d9c27442e25d72f33532c8de9c9766d9911252b3d3b9d236ef0728b89ce98df04383dd863a16e0721111da57062bf4cc4b87aced773e959d8979578d72e704d554a132a2e25d72f33532c8de9c9766d9911252b3d3b9d236ef0728b89ce98df04383dd86e241eec06818439e9b3e1f5d5af7aa32023c3051d18131036ee1d402023567a9e241eec06818439e9b3e1f5d5af7aa32023c3051d18131036ee1d402023567a9e241eec06818439e9b3e1f5d5af7aa32023c3051d18131036ee1d402023567a91bcd65e5c3d45e4785e5e92d0bed4c21bb143c5407d4bea923123e39ab57b3621bcd65e5c3d45e4785e5e92d0bed4c21bb143c5407d4bea923123e39ab57b3621bcd65e5c3d45e4785e5e92d0bed4c21bb143c5407d4bea923123e39ab57b3622f0c7353b71b287a896d18b14ecb35ebc5b17fdbb0a743f90f32c441230dee9f05bdef02e6ff752676bed11474d36051e54bae4b9fa33be010151a1ad41db8b1acf57749cab7cc1ad1d31d17689e06ab3de8f19a582581222dfc29d73e0e9db681975c2784987db2ee67d14f37fea8855a9d916de71aa4299299a1289e2739242b98b2555342969b568522154cbaeae238ce670025f0b9feca6d61cb7f4f085781975c2784987db2ee67d14f37fea8855a9d916de71aa4299299a1289e273924aa459f94f893181e8d751099483986bdb28f614ae02a8ab774038a74cb90c198aa459f94f893181e8d751099483986bdb28f614ae02a8ab774038a74cb90c198aa459f94f893181e8d751099483986bdb28f614ae02a8ab774038a74cb90c1987c7a259c19d4ae69c0f2434c0cc330b6998aae578b9425884d85fc2293ac69d67c7a259c19d4ae69c0f2434c0cc330b6998aae578b9425884d85fc2293ac69d67c7a259c19d4ae69c0f2434c0cc330b6998aae578b9425884d85fc2293ac69d6f2f0b243b55f19bc84b43c9980f6b54c95cedbce2d510addfc33e2c23913ecbcf2f0b243b55f19bc84b43c9980f6b54c95cedbce2d510addfc33e2c23913ecbcf2f0b243b55f19bc84b43c9980f6b54c95cedbce2d510addfc33e2c23913ecbc6158bc4f1a0b22cf584348bbfc4ca9a5533c53e35f36e8af80b29d362dcdf00e6158bc4f1a0b22cf584348bbfc4ca9a5533c53e35f36e8af80b29d362dcdf00e6158bc4f1a0b22cf584348bbfc4ca9a5533c53e35f36e8af80b29d362dcdf00eb1a4f605a88f478ba97da26489741e382eb4e82bd0a2dc079a93304ff17fe564b1a4f605a88f478ba97da26489741e382eb4e82bd0a2dc079a93304ff17fe564b1a4f605a88f478ba97da26489741e382eb4e82bd0a2dc079a93304ff17fe56402895e964c519138fffe6033bc35be842887eeecfbc9b42c141b86decb7409c502895e964c519138fffe6033bc35be842887eeecfbc9b42c141b86decb7409c502895e964c519138fffe6033bc35be842887eeecfbc9b42c141b86decb7409c5673081e0e641dfa9b2b6a52fbd1135cf8289e34d2b05165b89e2bd5f2ebdfeb7673081e0e641dfa9b2b6a52fbd1135cf8289e34d2b05165b89e2bd5f2ebdfeb7673081e0e641dfa9b2b6a52fbd1135cf8289e34d2b05165b89e2bd5f2ebdfeb757907718da75b23de6fd5d1efd99ca8e110715bf24fb63215df9ccf23f84ab4657907718da75b23de6fd5d1efd99ca8e110715bf24fb63215df9ccf23f84ab4657907718da75b23de6fd5d1efd99ca8e110715bf24fb63215df9ccf23f84ab46dff3d1453b0b6a65f7a1f5bb9176f5db4bf860188433104c9f9f250d55125667dff3d1453b0b6a65f7a1f5bb9176f5db4bf860188433104c9f9f250d55125667dff3d1453b0b6a65f7a1f5bb9176f5db4bf860188433104c9f9f250d55125667a70d46ca2786ccc01101590f848cc00f24959f078262a261805f74bced88d7cba70d46ca2786ccc01101590f848cc00f24959f078262a261805f74bced88d7cba70d46ca2786ccc01101590f848cc00f24959f078262a261805f74bced88d7cb96ba92fe98e79e5832a6afa0d0af5925669d5eec5465aaddef9410a41989a1f496ba92fe98e79e5832a6afa0d0af5925669d5eec5465aaddef9410a41989a1f496ba92fe98e79e5832a6afa0d0af5925669d5eec5465aaddef9410a41989a1f4ec350e86f6d67a0549ef67c43c92678e58367fd7b941c24bf8046bea7401a765ec350e86f6d67a0549ef67c43c92678e58367fd7b941c24bf8046bea7401a765ec350e86f6d67a0549ef67c43c92678e58367fd7b941c24bf8046bea7401a7658ff35ce7574f6d8b9d38d94cb0ca2d7097035684e47439e677b9fd59630c6936147f001bd0cb078cc20b1d192cbc55e64afffaea5331d3039862ad95cefb51f88ff35ce7574f6d8b9d38d94cb0ca2d7097035684e47439e677b9fd59630c6936ecc04b63d63599b3d257ff004bad577eae7f7974585533191044a832e25966fd679a4358feaa732f4b1f0544679bae98bf7c7db1b5d9f19bbe9f18d2f9a17ce5ecc04b63d63599b3d257ff004bad577eae7f7974585533191044a832e25966fd2e51cd7807b31937fbd5ecb43b730f376998dffd3e9e96eae4c29bce6f8ec1f18edc7dec17ff0ea2631d8271bf9c165cd2bbd24d40b34c8ffe6d48723a583ace2e51cd7807b31937fbd5ecb43b730f376998dffd3e9e96eae4c29bce6f8ec1f1dba961b9ca568c9b254b92602b3895edd70a26c70330de72243d65dd85ea57ebdba961b9ca568c9b254b92602b3895edd70a26c70330de72243d65dd85ea57ebdba961b9ca568c9b254b92602b3895edd70a26c70330de72243d65dd85ea57eb93fb0c645a2d56bffc3c54167e2a3177d1b6dbe8672a4a228d95d84c59418b8943565ca6a3458118a9db1e6882773cfdb324d0bcdc98628d0f5d11f67c9f0b2393fb0c645a2d56bffc3c54167e2a3177d1b6dbe8672a4a228d95d84c59418b899ffb444c904ba846278bd768d18312c7d5df4325a2fbbbdbc0c1a2782bccc69bd1197596aa7608c4a652375e8886863ec00c07e8e80bd22d0cc21357806fc086a404bf550b6a2b69f814d689ee17ec3b705a78667d09aa4adcc73775dc4c16240674610daadcc09308eb31271bec882c3e3334dd91e7c063cdfe256dd497734075efeae1ff7841393a268875383d198378c08e49410659de6ef558c42220845c9dc0ef6dd39bfcf0b4f586f520a7b5643f0c4e99bed5e8ff89b95f2fa25547bea5e4d518ad02ed0e92990712fcabb2ed06da54e751d9ef8af959b4c2ac68b2b7726b5276213a7203edb02c7c37e2913504eac859052e0e187618af6f2fa332f3a5e4d518ad02ed0e92990712fcabb2ed06da54e751d9ef8af959b4c2ac68b2b71ca354112eb75c1e0cb34d87a283ea7c5e3ea565bcf9f5b2ac3ccd7878f5193744cf6ffd4799ae90d86ec3184c7e192c6e87f1d378569a3fdb15493b870a44424f7e20439f75e8df68a8198df8c143f8d304b871c0452a8dc4794fbceb413588719452089992c8a8c3d881eb172b9c388f6cb639e3c3bb1db1d7c09f00ea145e404f3ca0a6157c73989f3112b977d6d16055ab64a6a0367d43a7967427ce89db719452089992c8a8c3d881eb172b9c388f6cb639e3c3bb1db1d7c09f00ea145e2194257127169de5be50cf372495b4c28f0ca74b7ebcb65b8081ad354cbb75e347b79b97eb9f35dd8841ab705eca06f79aaba22cda670015dba340a49e39e3fe2194257127169de5be50cf372495b4c28f0ca74b7ebcb65b8081ad354cbb75e31e5bf17ff348e4a867cbec36fc6e5fbc46337b08c1c40e0af1c93b7af4a9f50ecc7ab5ac0175f9ff3a979e273342dd9feb09027f1c269aa587d46e34fbd290387cdc8f63b9c963c7599775ad4ea379b4aec6cbe651b6c777652a8d66e878bd7eb79479a1542f4aa40a969d18eb5850f6842fba4d8adcc35ffdc81c3b1e27e8ff24bb025f8b00bce51d7ace92883d6f40d2808a6fad161bea8fc688b43271552ab79479a1542f4aa40a969d18eb5850f6842fba4d8adcc35ffdc81c3b1e27e8ffcce2982ecd09db90dc7fe2f5a8bcbda09ad2449cccf914c4a96052afc1bdddc7b0b3e7733823c19fc94cd913a6706d722312acdf4d306a51617fd5ac362f4fdacce2982ecd09db90dc7fe2f5a8bcbda09ad2449cccf914c4a96052afc1bdddc7a81721638b9de7d01b6e8b5da29bd5a8def20720850bc8bce06e565c74fee490394817424e5d3e2f5403f21fd1714800d270c307b7d746926642f2ba60d60142a81721638b9de7d01b6e8b5da29bd5a8def20720850bc8bce06e565c74fee49043c6027e559fdfc9af572b166a3e80f5c5022da625d0501394557d18cacc730b43c6027e559fdfc9af572b166a3e80f5c5022da625d0501394557d18cacc730b43c6027e559fdfc9af572b166a3e80f5c5022da625d0501394557d18cacc730b90187eebcfe1e969acf235234458d9d236fc99a28a558ae25f5ca3c0485d27d790187eebcfe1e969acf235234458d9d236fc99a28a558ae25f5ca3c0485d27d7d620a5df4e7dfe2aae79a39cec6cedfc602ca50370ce3255cae635209ecf7203ed91a61a916112e6684405a00b656417d41b0e83750bbf10daf1d8e382837070d75e9fc57635d8be7bf769b3e8a61cf8bc8f1b1e934af4e83591e3f003a4c412ed91a61a916112e6684405a00b656417d41b0e83750bbf10daf1d8e3828370702b598072ac6a07658ade1d97ad45881c147a82e9f8824b1632ba054b857fd5162b598072ac6a07658ade1d97ad45881c147a82e9f8824b1632ba054b857fd5162b598072ac6a07658ade1d97ad45881c147a82e9f8824b1632ba054b857fd516386bb1a8c7994a7ad5723c11f1d39c04952e5a61ef514d8ce04afaf5ecc70040386bb1a8c7994a7ad5723c11f1d39c04952e5a61ef514d8ce04afaf5ecc70040386bb1a8c7994a7ad5723c11f1d39c04952e5a61ef514d8ce04afaf5ecc700403b786f9c7a43410b1ecabc807fc053cf197e55de2d3f6da031a78f53b65726d98e1d3c5c0ed003b8bace453a09b5aa75fc2809055bbeecb455fa0a29a25bc81a3b786f9c7a43410b1ecabc807fc053cf197e55de2d3f6da031a78f53b65726d9b601a818f11463dbb51f8dcdd4294f4ad227ff1e98f82df0309e64a18131cc11b601a818f11463dbb51f8dcdd4294f4ad227ff1e98f82df0309e64a18131cc11b601a818f11463dbb51f8dcdd4294f4ad227ff1e98f82df0309e64a18131cc11fb962ee0f92d2fa29ea0e5b500494f4ffe827654d83102c9d0660110658dfbfbfb962ee0f92d2fa29ea0e5b500494f4ffe827654d83102c9d0660110658dfbfbfb962ee0f92d2fa29ea0e5b500494f4ffe827654d83102c9d0660110658dfbfb9dd7a36f0463362c1312854e91231969010c9953e295d4d33a6785457fd36d0a83a716fe8e27bbe0dad7e8b2f2c9c66748b112d5bbd5c52b13e5aa8f841cbff2e94bd385f4975097103c84500cc5ebee514ffd1a0a0c150927b5cfe2cb84095e0b4b96b45ccdc034f4b644a710d65e9588d1e1bb7ea85f650d254803593367720b4b96b45ccdc034f4b644a710d65e9588d1e1bb7ea85f650d254803593367720b4b96b45ccdc034f4b644a710d65e9588d1e1bb7ea85f650d25480359336772ca9370db662c4983a23f4e388e4fcc2000e45d88040574c4f03fd5efa49deaa4a0795d4becc2127d1c2fe3bf23f5e5adf1e413eae76ee5d1523fbf4e747c7e21c050d4c4c0aba845c808f04db22b08352d8434aab08b7ccbc912ad318aeab5e9f7d8aecd223c5c513de00a874b4377d74cc1de73c54bccd8859f44816cd59aff3cca6af9b615d4e38c141c80c9df0401e0eec3c31ba6968d51368868737133f0f7d8aecd223c5c513de00a874b4377d74cc1de73c54bccd8859f44816cd59affac43d4311d5f3fc56087741681921d0273d804bf74aa1e26f1693e21074f79b0ac43d4311d5f3fc56087741681921d0273d804bf74aa1e26f1693e21074f79b0ac43d4311d5f3fc56087741681921d0273d804bf74aa1e26f1693e21074f79b0db9b73c88601f19dabdc85fc6879095e41974be8f0de9b142133628250cef45cdb9b73c88601f19dabdc85fc6879095e41974be8f0de9b142133628250cef45cdb9b73c88601f19dabdc85fc6879095e41974be8f0de9b142133628250cef45cd16aea893446f2da33c8978d508beb89bb313a25e3867f1c6a5426f578c303799122529b219ad9d64eced07f2dbdd3512b6cb868b06b282c17e5e8705af2650fd16aea893446f2da33c8978d508beb89bb313a25e3867f1c6a5426f578c303792f5d14d4f380d0bad03de9a53d977b9b2223660ef84a59de5dcf0e855b638dcc69489996a8a73a0cffca0741bd61e44d2e56e45c758bf52c0f7c1dd45d6b0ab600022b28522dd429f8014b073a7e695e75653bf36acc380acfd5a5bec5ccedbe0d87d6ba4cf867557ef4cac2d2b55955e0890d26e22d6bf5502621b7d1f7ca32aad8386c1056e43c44b07d14bd049a6d2aeea07920677987a89039c08ec3a61d0d87d6ba4cf867557ef4cac2d2b55955e0890d26e22d6bf5502621b7d1f7ca32a7b905f636d7633d696685e54a920e29537c94dccaeb7c950771375192f386b1a7b905f636d7633d696685e54a920e29537c94dccaeb7c950771375192f386b197fd134e1e96185eae484f058ba88047f61bd584ae9a5f4bfec50a086e43e524dca46bee195acdf8d436cea45fc83fb027e0b87b49061216c2671a18bf621f1236737f58df62e8a0d281476c94c04621656a9f2a5edd10ab41be65f0252b5238f81d0b651ad35e59b2625cb7e760585d94fd350e6ce168161201b5c056223007de9bdcce5604cee1b275cdae54269df608f2b386ddb06c6b18e13baf521c8a4dde9bdcce5604cee1b275cdae54269df608f2b386ddb06c6b18e13baf521c8a4dde9bdcce5604cee1b275cdae54269df608f2b386ddb06c6b18e13baf521c8a4d7647690e08989794b14f0d766e4b460cf22d112c827acc770e3621c7a6c7c3bc7647690e08989794b14f0d766e4b460cf22d112c827acc770e3621c7a6c7c3bc7647690e08989794b14f0d766e4b460cf22d112c827acc770e3621c7a6c7c3bc84500de2aa71d07000d9ecde32b82fbb780b82467b6804d82bc4852abf20d8af9b15445ff67c0a0d8ea695151af26904ff277978b852203d5ddab5f8b8a737f584500de2aa71d07000d9ecde32b82fbb780b82467b6804d82bc4852abf20d8afd6025b738d149596fd6baa1e8611f950b628809e8e60789898fbb2daeac08ce6021d1a8d48c7d33214283d6e0b7ba3ed98a0e17e953badfeb1f8140b92e2b869d6025b738d149596fd6baa1e8611f950b628809e8e60789898fbb2daeac08ce643fdd7ec23e59b84634cc7861274e36dcad63a2c3f5b2dbdf0fe1b37a534ab1543fdd7ec23e59b84634cc7861274e36dcad63a2c3f5b2dbdf0fe1b37a534ab1543fdd7ec23e59b84634cc7861274e36dcad63a2c3f5b2dbdf0fe1b37a534ab159226e36adfb2850024d6abc87c406d24e15062a6b2557ca88a545aece729aa5f9226e36adfb2850024d6abc87c406d24e15062a6b2557ca88a545aece729aa5f9226e36adfb2850024d6abc87c406d24e15062a6b2557ca88a545aece729aa5ffc4e97056de6dc2fec1595546ebaf3b591cc6fb0790fe44da5c843f1272537e22590181b392a0942453764c70d7de9fa69da9fda787253528aa98ce4125a97c6fc4e97056de6dc2fec1595546ebaf3b591cc6fb0790fe44da5c843f1272537e2c5ab8e6fe873df498e9ba653bb49406cbc6613f9f0130281a694a1a50f9c203fe373efca8e2f542972887fcf47725a99f91eec06079d675dfd800897161eb895e0b89bb2aa05e9fecf5bdbda219165d888f3598050775a7a1cdac4d6a370e5dafb9a3d4e0607e09718352137b7e8442aa64f245620c7b2ece25c3fa5500eb206f496b3267e7af5387a02b8b821a05409992c533bd9b3b465e59537b9e2a9d94cfb9a3d4e0607e09718352137b7e8442aa64f245620c7b2ece25c3fa5500eb2061001ab11ed75f4f78a2333678e72b346a2a1e7f4870aae880025529e2f9f05fd60dac557c92e080f330429476c262f78dfca5169298a78507536bca0ecbf25fb1001ab11ed75f4f78a2333678e72b346a2a1e7f4870aae880025529e2f9f05fd595910ce8405d4fe2a0211f83fe9e0d6e8bdda6070e9550a742ffbdccc7f170ee1b59c5cc732a932c57d716230c3e348ac62e13d4c3ad185639615dfb581d18e595910ce8405d4fe2a0211f83fe9e0d6e8bdda6070e9550a742ffbdccc7f170ead0162d54ceca97e126014e9028678fd50d7f3a135cccd3dd19d0beab1ac6008c41f4b87698ad8c22a0cd60da685928bfa1f81b0cc534ab8c6c154a7ecb2945ead0162d54ceca97e126014e9028678fd50d7f3a135cccd3dd19d0beab1ac6008bfcbba6bbddc9e1886bebd7ab50e9d81aeada4d1168491cfadf5612258a5d0097eb7d609315b0a4390f60689b16f32b829b133639207ae7fb56de9c50ebd49e7bfcbba6bbddc9e1886bebd7ab50e9d81aeada4d1168491cfadf5612258a5d0096283f69d186b6da4aab3a1f757463179e2fe04a21e19b0446866b49f3172ecede49d9984a2292589c1a89fe00cdb09d1a81c94fc71b26f2a1f0327c9c74309c56283f69d186b6da4aab3a1f757463179e2fe04a21e19b0446866b49f3172ecedd7de6ee96dcf3519419b3a27f0f494f146df2f661d71236654a44fa7ae05a96a810c2db4485389143fce42f1358bef90520da507bbe7868ad608e3c63a1dcd8cd7de6ee96dcf3519419b3a27f0f494f146df2f661d71236654a44fa7ae05a96a6928d2d3106034b6485f6b30afdf006aa0434c08a529ee230174d238fe77712b6928d2d3106034b6485f6b30afdf006aa0434c08a529ee230174d238fe77712b6928d2d3106034b6485f6b30afdf006aa0434c08a529ee230174d238fe77712bb7d88026f222b6a8ce0887c41f0ba424130cfffb80cedcd9a195047cc4449f515a564a49a3cb3c4543a2124a0154d56e4702c0b53deef06b0760a6621d9867e2b7d88026f222b6a8ce0887c41f0ba424130cfffb80cedcd9a195047cc4449f510c011da8b603295fed4e7c30716af50657c9f08c51ced2bedb992ffa5e6261580c011da8b603295fed4e7c30716af50657c9f08c51ced2bedb992ffa5e6261580c011da8b603295fed4e7c30716af50657c9f08c51ced2bedb992ffa5e626158f0aaaf43a5fcba7f04a6f6f8e0e59f4d7113396e0ff2ae8aabf6b3efb1caf843a351b20bfea3dc9a4a1eb0457d9246da9c177bcfe3795a411ec834decf77c662f0aaaf43a5fcba7f04a6f6f8e0e59f4d7113396e0ff2ae8aabf6b3efb1caf8439e15f00a6d0b7f26818611f6bf4832097a9451df7d50a8e683ea50b0403ef744cd6ffdedb120e1b9cff63f918626bf2fabdae3193b26e13d4ec9f5b70b665c929e15f00a6d0b7f26818611f6bf4832097a9451df7d50a8e683ea50b0403ef74445083c0a0a30270804ed6b8388d450e6cfb532b9fef5112f8dec9c751157f62741b46ecde363a71217aef98cd8e02a94e40920efc6b0c93d04cb9e8f5cd2312445083c0a0a30270804ed6b8388d450e6cfb532b9fef5112f8dec9c751157f6275d9bc02c3f1c04121eaf995fbabe076b42a0f178568d3d4bc77691b5e72f1e36d1ea161f36fdf925ff4e6a566f2544a20b2a0e7c43b48a7562e5a6d659020c335d9bc02c3f1c04121eaf995fbabe076b42a0f178568d3d4bc77691b5e72f1e36eb161a19d9d5b2e0a6535f229a896046c19cb2149eacbeced3d231d20b0ede32499c2d4f26bec59a6b18823b4e834b1210f262b148a06ac66b973dd24dde3750eb161a19d9d5b2e0a6535f229a896046c19cb2149eacbeced3d231d20b0ede32685618996a108508ac567507bfed90c789415aaf4fda0349473e5d8a5a6f7208685618996a108508ac567507bfed90c789415aaf4fda0349473e5d8a5a6f7208685618996a108508ac567507bfed90c789415aaf4fda0349473e5d8a5a6f7208edbf6da4516d71f0997f0b32184a59480c96be132f919474294b42207b501fdeedbf6da4516d71f0997f0b32184a59480c96be132f919474294b42207b501fdeedbf6da4516d71f0997f0b32184a59480c96be132f919474294b42207b501fde452dfea37655742085cc15a2c97459a116d4d8099f3d8d758af3a117610da2afc462ef0d30b208da5b10f209611c3651ff4308575bf4225d53b8c343aedcaadeb31c5394c94aefa8d85a5487e4dcb2bde00c77d639c961dfc8580f5e52d58e15dca07f7688339ed1299a47760eab26d2c5296f2bfd66353d84fb0d3c702b6c95b6dba1a5f03a8ecb58cda4d471bebd5e5727ac7cd07e8e578c319d118b3623c9dca07f7688339ed1299a47760eab26d2c5296f2bfd66353d84fb0d3c702b6c958dd1c0da53d33cf956cec17331613ce3878dbb059f5040eb6e9c8d610ca55f7d37d8e9bcede7212096affae6fd759eef82cad32e50615cd7e799e1b448e5dff88dd1c0da53d33cf956cec17331613ce3878dbb059f5040eb6e9c8d610ca55f7d182c68cd7b0f779923054085923df7340b1f4412238ee29f662ad3baff693e520e24f3bcc9b80427badd4517e69f09b2af39fa6881c239315be82b3513147bc7182c68cd7b0f779923054085923df7340b1f4412238ee29f662ad3baff693e5283cdde31518acf269658424b7f60767bffa883629db659939f1070c9be7e214783cdde31518acf269658424b7f60767bffa883629db659939f1070c9be7e2147bb2f111f8cfc65510416ee7b163f8a3d403f40ec4e9b38e77578164cff27b1e7fb345cc83030fb95f8a493df85a5142c0800d457f1a52c71ca978c9fedb48404bc368d9ee4c22d82a278ec2a32df77ec24ab0eddabc33483c6a8fb1b97a85f1120fa27af7caf8018cf05928aab53e9cc4427fe60a1e27375e8deb715c526a27faf7afbf6a5a715901fb52fb37d14d12edaabeca3769021a0acdce8e7a836445f5aa9fc6105956c6425e7172b0b74ef9b05860d1edc04894b9e1e2b035052cba3af7afbf6a5a715901fb52fb37d14d12edaabeca3769021a0acdce8e7a836445f3f81e27a4b703785a957a4024c4d30a44250521c9adf96a413b5a925f8d383c9337f68907aad8c2d4d9f8b606cb152c6cae498d69ec478c55f73cd018482cc713f81e27a4b703785a957a4024c4d30a44250521c9adf96a413b5a925f8d383c928cb4ad0c6d470018523107073a6972e5fcec344f976822be7703398754b97c128cb4ad0c6d470018523107073a6972e5fcec344f976822be7703398754b97c128cb4ad0c6d470018523107073a6972e5fcec344f976822be7703398754b97c13b5e67018e3f0d5260b6f25b7f0d06ef07e4d832b06d8945eb8e754dc4c159132a8a193d74b908f5c4309ce063f32cf2ab85d4531df60a908d7963bd4a25ac611198f4e4d9d13be3b0382bc7d80d2b6b7241db0823bc772ffacfdb17954fa6ecc8a01560820d276d1d1878c70cf690e226ee218471d3ec5a2c9a8cae7155b2c6c8a01560820d276d1d1878c70cf690e226ee218471d3ec5a2c9a8cae7155b2c6c8a01560820d276d1d1878c70cf690e226ee218471d3ec5a2c9a8cae7155b2c63e34673dd3ac00d49fcf9dd1d46974a033b994f9aca05bb21fdc8fd962f6c9bb3e34673dd3ac00d49fcf9dd1d46974a033b994f9aca05bb21fdc8fd962f6c9bb3e34673dd3ac00d49fcf9dd1d46974a033b994f9aca05bb21fdc8fd962f6c9bbebdc8061fb287904a36f902c2e5e0a5176b4a8d514276fb221356ba1f0845c759f879548f48ae70453cc76408643631d0c9da7de31fa382c7f46fa6e79f17e15ebdc8061fb287904a36f902c2e5e0a5176b4a8d514276fb221356ba1f0845c754e514f038a2837f8afa912c15983f5e726dc86457a6566c6474c270417ba0dfe4f8a1614eedb70bef70e09e73facd885c5781e9411612f04fd218c305071c97e4e514f038a2837f8afa912c15983f5e726dc86457a6566c6474c270417ba0dfe6cfe401b42750cfe58746df102d49db6fb1ca9cae2e1851452ba45385626cffa6cfe401b42750cfe58746df102d49db6fb1ca9cae2e1851452ba45385626cffa6cfe401b42750cfe58746df102d49db6fb1ca9cae2e1851452ba45385626cffa36510e2088df4d1fba053051c3424d1c83be2d7d5798082394393fc6ec94443927b00c14167a0e1fc1b6c0cdebf9c740d21e146a9bba633778d51531d5a33deacce6ace36134ec1b47eb7d37fcf57065414be7682593e3a6e543f401ff41cf5a4bbdb9447921731ad1b717e843a204f559c8f9fd536797f8b0ea3145e21e22983d8d2a0dae18fc8a548299df64830987c4d520fa1e54b08cab77cc917ef966474bbdb9447921731ad1b717e843a204f559c8f9fd536797f8b0ea3145e21e22980638f427706272a745ed0b20c68ac9e345599186e224f556cc72fa0f6a2a60766b2e6f45dbf229da6971a4b024e26c69387fd1f75781ec108ff09677f6a597550638f427706272a745ed0b20c68ac9e345599186e224f556cc72fa0f6a2a60760e226e08e0213c1deefd7200f2affe1b71e60245fce2c6bddf79772fb3a87ada21a7a20f44e02ea5237cba93882fe727a7a93e490cdc34c99801c851ecbbfdef0e226e08e0213c1deefd7200f2affe1b71e60245fce2c6bddf79772fb3a87ada49860f3f9596b244244897b8400519ade4fe5d12209570e31cd251e9abfb2ed9c5b2dec866fe4f837708365470f08fb7321f1b8a1391a11661a02c9529e15e1020595ffe0cd50f5025e49bf64a16b57f71da09404b40921d348b8f4b0a45d2f685afa722631d0e4683ab0044e92ba3f92d4dc33278bec270ea714f9810c1ca538b50760055efdc4d940ad9bf9a2eccef51fa05f9b140e2a940e51b7d83ec766d85afa722631d0e4683ab0044e92ba3f92d4dc33278bec270ea714f9810c1ca53f243850f84a0101e02254568a35b0589d412f9904106fa9da0adf366b718ee147511af8c54f4b156ea932bac9f661391d50ba4fe8424bc19a089f2f7c9b0ee10f243850f84a0101e02254568a35b0589d412f9904106fa9da0adf366b718ee147e87b73e57e6dd562c656ab90c34312d4fe80c7de9ec402e85d6b0292149a3597e87b73e57e6dd562c656ab90c34312d4fe80c7de9ec402e85d6b0292149a3597e87b73e57e6dd562c656ab90c34312d4fe80c7de9ec402e85d6b0292149a359044272eb913ecdda8bab0329713292cb12d15b7740ff65c0c6b41bdb2a9c2528044272eb913ecdda8bab0329713292cb12d15b7740ff65c0c6b41bdb2a9c2528044272eb913ecdda8bab0329713292cb12d15b7740ff65c0c6b41bdb2a9c252863e0439de2d434604448d7f457866d4aead1e9d6a03198d66e2bc062d23b0d7a63e0439de2d434604448d7f457866d4aead1e9d6a03198d66e2bc062d23b0d7a63e0439de2d434604448d7f457866d4aead1e9d6a03198d66e2bc062d23b0d7ab1a7ef2e241c78fdf042408217876bd80f02cb35b77477385a55eb994f8b8d6fb1a7ef2e241c78fdf042408217876bd80f02cb35b77477385a55eb994f8b8d6fb1a7ef2e241c78fdf042408217876bd80f02cb35b77477385a55eb994f8b8d6f7efb0f15a059d30be7ee090f801384fd95298b931cd1c04f33203803f001ad05274cbc444bc8be5a45e12185fc8fb33f427f38f2c0bc8b9c3f98f6fbb7c02600374b5e85bd2a42358c129fa9b1b22192799c3e804dc0aa8917eae5a77f1b83ca01927b807aac70a21dd6ef1d7a1e490a8b75603c0ff2abb9777e15c8e64da0cdf197d5c2d433ca32001312dc015d58665b15680b74808ab30edcf90975992d7701927b807aac70a21dd6ef1d7a1e490a8b75603c0ff2abb9777e15c8e64da0cdbd7e92377437e98d5d52b75be42aa9357894317fddd5dcc31c772c05b729e298bd7e92377437e98d5d52b75be42aa9357894317fddd5dcc31c772c05b729e298bd7e92377437e98d5d52b75be42aa9357894317fddd5dcc31c772c05b729e29850d460baa0839db9875281b31a58ce8397e693e62897e87a8d3f54b8a0a335a950d460baa0839db9875281b31a58ce8397e693e62897e87a8d3f54b8a0a335a99e147e93771a5a3d3a179943ccd34f91c64a0abb4605c94596a66c5525697e9e37950b3d0e09322581c828deda8abb6f3b1da2009c8f4b65e6fb9b3e2e81d794db7098e971f6a197abfd58c7b96143049f02bc13bfd105865f2bdb6e3c49f82e37950b3d0e09322581c828deda8abb6f3b1da2009c8f4b65e6fb9b3e2e81d79405e74b8843fb30f91da411a681096fd8a613064c7103d36d93a4147aa7eae74705e74b8843fb30f91da411a681096fd8a613064c7103d36d93a4147aa7eae74705e74b8843fb30f91da411a681096fd8a613064c7103d36d93a4147aa7eae7479b968df378eef152fa4999588afd3975fc537498ddac464e323ab78f5d2fc78d1b239572e007ef22f9e1eab7e24678c7867aab149b96968423788bbf0eb401e99b968df378eef152fa4999588afd3975fc537498ddac464e323ab78f5d2fc78d264cad65c272e35024f76c02c600a8594248aa0b18aadbea77e51038ea1fed98264cad65c272e35024f76c02c600a8594248aa0b18aadbea77e51038ea1fed98264cad65c272e35024f76c02c600a8594248aa0b18aadbea77e51038ea1fed985b35576942f4b454a03e0fb045f787a41243cfb90a503eb00f0dd7783209abdb5b35576942f4b454a03e0fb045f787a41243cfb90a503eb00f0dd7783209abdb5b35576942f4b454a03e0fb045f787a41243cfb90a503eb00f0dd7783209abdbe9e283311b3e4aac8b63ac59cdaf25932f7c4bd5017d32aebde7cb4f1e3acbb3e9e283311b3e4aac8b63ac59cdaf25932f7c4bd5017d32aebde7cb4f1e3acbb3e9e283311b3e4aac8b63ac59cdaf25932f7c4bd5017d32aebde7cb4f1e3acbb39ad85918eaf69f7f67ee343a0f052a1cf899ebf2c6a5ad4c5a6885a624c72bb9dac72847854e73a2e2c1f578f4817bd8554449b46e9b72bb42051ab8f41d7b619ad85918eaf69f7f67ee343a0f052a1cf899ebf2c6a5ad4c5a6885a624c72bb9e7a59c3c5362ca2a472ffd89e46866f967838d939df05d2f812fb14336db375ce7a59c3c5362ca2a472ffd89e46866f967838d939df05d2f812fb14336db375ce7a59c3c5362ca2a472ffd89e46866f967838d939df05d2f812fb14336db375c404be2a003d95f516e9532999b19716b2b9994f1b451a2cd67e8c9ea4aa73a57bbf4628e05694d0d45c12acf733a8563d56e4e9b6d8fc79deee470587c6a41ff404be2a003d95f516e9532999b19716b2b9994f1b451a2cd67e8c9ea4aa73a57a6c5119a3f552e89d1c28196b6b840ba688c9f0734c670c4055a290c9b0e5ed4f658b26fd279e1290b95c325730b7c512c9235c8390277854272fbc13a9c663faf8bab5b84da0c02b1c489696b81d9bf225a4b73429cadf0344feccf66b07e54a1410d76a7caf5401a2a4b87d56046f67de4baf600e8411116ebba74c9bb56a1a1410d76a7caf5401a2a4b87d56046f67de4baf600e8411116ebba74c9bb56a1a1410d76a7caf5401a2a4b87d56046f67de4baf600e8411116ebba74c9bb56a1a25f08663c77f93f54d1fdd9307dff10dff6834e7b40f8da5aaae08002917384c30ea4cbd732d79b6e840970a58b8c928a22f17e2f73df2ed655fabb65a18eeea25f08663c77f93f54d1fdd9307dff10dff6834e7b40f8da5aaae08002917384b12cc47bccac73ba7c07614d2ff7dc448f1dbd079b7b44e25e23cffc2e63df3a5b43d6869e5a6904ca6852a56d4c14d07b076f68afa031b8ca93c412896db2a7b12cc47bccac73ba7c07614d2ff7dc448f1dbd079b7b44e25e23cffc2e63df3a5b6a5a4fcff307b6130f8855fc2f6c043277103c67961fdd96d2e059840bba69d7b470c42bd7051c127594a9e50de95ffd09684e997ceae9f1bccb9ea000ec49382680e74ade4846a44b9425136566965d1afd5fc20f4af21861aff29dea0808dec69cd4012cb4bc44acbf20c363f960ca602098853e7989eed19c9c9d98553833418dd7d7e36e29fc08c74b75f6d7e9a648ab86325e4fdf4120a9ac38b1a7f4d9abc728dfe281d23a746552ba5f8a0c32f21adfda26b44fef9f03dd8056872b9af623f51059e8bc08c6c63f9e7f85bc081ed2f8cda993b7f01bd871e9596e390c40ce31dfe739ed716b600b5339dda29890369ac1fc5565e95cc66a65271dbf9af623f51059e8bc08c6c63f9e7f85bc081ed2f8cda993b7f01bd871e9596e39e07a48518098a962d4e69ed30a3d7e99f7edfb2e9640d1b3ff303ce3e343633eec73fd64ce15efc61acdce939686e99c114cc74387ee05d879bc84efb5c5caade07a48518098a962d4e69ed30a3d7e99f7edfb2e9640d1b3ff303ce3e343633e7999378ab93722fa546c4625d707968db461029eb40ee4b9886e42304d7e08d3e8cd345d44c6426d03e096cac99dc70630fb8d8c3550da0994eb55391b10c8177999378ab93722fa546c4625d707968db461029eb40ee4b9886e42304d7e08d34653c96774d3e44781439c2a18857e1f6cbc7e464bc904e69dfd68fce901e1bf76a5253e2ada6fa733bc534618f2d6ae0d81c910a3a4f584de14a41bdc4bbc8d4653c96774d3e44781439c2a18857e1f6cbc7e464bc904e69dfd68fce901e1bf7699b48201d03a55bbdcd25f3126fd7afd815572111962d0ae370c571a42c0ce9e632aeb00e76f3be08cb788082a05d90f7fe514222f71861bbc83fdc85221937699b48201d03a55bbdcd25f3126fd7afd815572111962d0ae370c571a42c0cec612dc53dd7aeff307bdff3c7702f64b6cef927810cd4e863a71a4bdd31c736a6388249e857207157f6e4ffe62dd44045225c61707686668f08b85b8a6e63496c612dc53dd7aeff307bdff3c7702f64b6cef927810cd4e863a71a4bdd31c736a1e0ae6432e9046a43015d5dfbd924c3caefce885a9297e6a4b281a2d86dc58030e1ba6c7936fc230fdea5a87d946931e11c78e81f9f6fa2b3a869a3c3703f65a1e0ae6432e9046a43015d5dfbd924c3caefce885a9297e6a4b281a2d86dc58035154fa1c5029151e54035e355f9008346fdc97479a2198dabdae348d3f23e10b2503b793da3dd5697cdd0ee542f467bd0beb0f7dbc89d0a119745f3bc0693aa85154fa1c5029151e54035e355f9008346fdc97479a2198dabdae348d3f23e10b382114e9b652d476d4a61689558ab16bd05911b0605a55255fc138e8f0b6926b382114e9b652d476d4a61689558ab16bd05911b0605a55255fc138e8f0b6926b382114e9b652d476d4a61689558ab16bd05911b0605a55255fc138e8f0b6926b323b4d58423fc8165dc88e8cbab9f687b2b7af765ea859de8a0a3049e282266e567b3602d16614cea8d4597620086653e8cfcdcdbb540766c95a03a50d6c4e40fc7927669e74844683203c96f35760939a44c91abf00d5f8f7b873adab799603a87d754b0113610b35c6c884bf563a1c199ad60b8d0311809b77b1e478bef8eda87d754b0113610b35c6c884bf563a1c199ad60b8d0311809b77b1e478bef8eda87d754b0113610b35c6c884bf563a1c199ad60b8d0311809b77b1e478bef8edace784b7a24faada7f4f26999714343d00519b7585f6c9847ea8e24b60ca67f106dd0df57863f9f7fe841052d5b5e85ce5df4e1e685332cf858d3588c3c1b340ace784b7a24faada7f4f26999714343d00519b7585f6c9847ea8e24b60ca67f1bdfd5f8fbfbcb0803cc8e991e0e254f35c75809a51f4f8f92eed4657063d1436bdfd5f8fbfbcb0803cc8e991e0e254f35c75809a51f4f8f92eed4657063d1436b1bc4c63869662ce1ce54e136479aa888e801337d509c5425a67135d7fb49af00571802890cce61d8fd2bcccf00fce35dfcced4dfc6af784bae97ea9f1ce3df16d79a462d5ac00aaced6cb10ec12f49c054485d5b0ffdd60735cbe7a9e72d8422847b52584b5ced2e4f5e91c8f94e3e487af59f691214138b1cb3773cf8750464fe70315e836170cf4925c0e9311b7e90440705758ad1fe37139848d9ca643a5092d5f578764dda8a3ec85b22304501aef6b176b4a0f5031211d3eea6c1fdc17c35cc5949d61b6466af5c18182840d170da0ab66134f198bfde30e667179a187aed3c2225b9c89122bcca0ca5ccbc1b3da7de92a11ad195bcf4aba4cb76a00760ce1cd5cedef0f8e0799e6d50c9acae88b991157055e48ee3b2024e643744097aed3c2225b9c89122bcca0ca5ccbc1b3da7de92a11ad195bcf4aba4cb76a0076af6b4c40de175061bbe1afd419897ba88cb719e0f3820d3b3ec0de191534cedc073821aa9a1bdc336edce1adbb8343e2badfb91ea1d3e5d9b29290a01f77a13faf6b4c40de175061bbe1afd419897ba88cb719e0f3820d3b3ec0de191534cedc59bd4a1ff7f7b1cc78932eb377f81eb56522a162a78a801562690c5f1b0045d66790ba9d995f3a0f76a75cb0b3506e5e01afe1906bdf0799302706e58f67cd699675fcec07eab8fd77e1843e3d51faa6fbb6ad74d615c3d4f3e9646b97d7791526077b533d002d79cd425c1ed7aa899c0b7f4d7f0063472c21e27f0bf499949326077b533d002d79cd425c1ed7aa899c0b7f4d7f0063472c21e27f0bf499949326077b533d002d79cd425c1ed7aa899c0b7f4d7f0063472c21e27f0bf499949395c363e87af2a7310b737df7c15f725e333755f3dca1fc1629331ebb34003b3624eda3570c3dcf34383b9567dbc80b35c17b9ebd72cb06191cda213ddeb52f9d95c363e87af2a7310b737df7c15f725e333755f3dca1fc1629331ebb34003b363dd2b6c2d32e93b0b2beb7b0b9e6ff829b4f2338c69db1c945444a879cb9232876bc6bcfa7903b7cb5e6a71eaa74fad07784502f1961c7d126f3c2d3608e36dd3dd2b6c2d32e93b0b2beb7b0b9e6ff829b4f2338c69db1c945444a879cb92328d11b4b0b748c4f477c4284fdf0af204e9d3c312bb387b2498feff4dfe30c8aa90a0a38b2274ebedff178031926ce3fd59b1c4a7439a634df7120f0bfbbfc598e2ffd726a9236a718a49afdae6404a6bb2078d570c967b5d1c4d17ce135e9046cf9c2fde1ec619c1cddbbd0b8b898b7e2cdd7649be2e3f178d38752cdd45c787d7e0cc205bcc3545d4782a7562d05042393fbb72de5099e81f23e056aa6a88d82f9c2fde1ec619c1cddbbd0b8b898b7e2cdd7649be2e3f178d38752cdd45c787dec1f58d88a317c57faaf80fbce7feba524be8faa486e6964ee0c37eed7519ee41783e9670592e7a391e3456d9dbf1bf3f6bb27cc627869c9c14d2992d6b79f8348a9ac9918462e5aa4eedaf97aae212989b54b62c8201ad4bef3dfc0d1fd276849bf3ee332de630344bde8c3e92001149c9e09506d75d3663d9113345bfecc8a49bf3ee332de630344bde8c3e92001149c9e09506d75d3663d9113345bfecc8a49bf3ee332de630344bde8c3e92001149c9e09506d75d3663d9113345bfecc8a0989c470d7e48559972bbb558039fab354bf8b9450c4b79338c939d0a8b32627c71fd3820bb89be48c0f7e595f22348ad027c28000d460cf7f89a1ca44420ad60989c470d7e48559972bbb558039fab354bf8b9450c4b79338c939d0a8b326275f594ed2aff7d2ef62b621030dd558792fb1f499a6776d59ef19947e9fd300a7a7754520877c07504cbde30bd1f0ef5d1f91c443ff58b80e95cb295cac3ccd0d5f594ed2aff7d2ef62b621030dd558792fb1f499a6776d59ef19947e9fd300a7a46998419e5d8253146c12bb9d132076f205ec55043aba682e9ea0d18d8ff99bc8cdb9dfed59c0646e35f0043348e780c60962d86d36ab0653d9c7ec75df5387a46998419e5d8253146c12bb9d132076f205ec55043aba682e9ea0d18d8ff99b812424acc09bc7b2062f58586b46841f241820a379f9472f323bfb74dc507fe7812424acc09bc7b2062f58586b46841f241820a379f9472f323bfb74dc507fe7812424acc09bc7b2062f58586b46841f241820a379f9472f323bfb74dc507fe7edff2598da5ba26130003e52f2f581ea33adb5054f62716f5c905762e1df56622e0046e923123e35e953330032a2489df2e9bca4bc664c447fed036bc4314f1aedff2598da5ba26130003e52f2f581ea33adb5054f62716f5c905762e1df5662c3be63007a0c25f1b19d1f9250660c3826e754c30f36fb5898eccc59347d3bd4c3be63007a0c25f1b19d1f9250660c3826e754c30f36fb5898eccc59347d3bd4c3be63007a0c25f1b19d1f9250660c3826e754c30f36fb5898eccc59347d3bd4de5f736c75dc487dc2d1b3dea1242c217fe201371872e423a79772c9752eebbfde5f736c75dc487dc2d1b3dea1242c217fe201371872e423a79772c9752eebbfde5f736c75dc487dc2d1b3dea1242c217fe201371872e423a79772c9752eebbfd63b8f449271042a458d0f3e8fcee6652d8bb3ef1fc717f9eb689dde3eeb03f8d63b8f449271042a458d0f3e8fcee6652d8bb3ef1fc717f9eb689dde3eeb03f8d63b8f449271042a458d0f3e8fcee6652d8bb3ef1fc717f9eb689dde3eeb03f81483e4442be9e11523cac1426f5c1f9cfd8228a8533bd4942b29f73a007e531c2b0ddda2d8b9882ea0aa414ea68918f11250da8b0dd81e202efe056e226ca16f1483e4442be9e11523cac1426f5c1f9cfd8228a8533bd4942b29f73a007e531c779857445d8ffe5e2f8ab26b08684640e867d7e2862fe61521ba1f396300e7de2d52c4b9abd17706f1b6b18badaa6fdf3af70c8e83b4a1b8c897b1efb7ac32ad779857445d8ffe5e2f8ab26b08684640e867d7e2862fe61521ba1f396300e7de55fa76029fc853a7d5c4b9f655095826324baa249b2f87b38074cf6fd47f224f3d7b1dbc6159995ede4cf32934a56a2b91cc35121f6d0c28f30a20b19342bc42930f9110a2615f22f49fd56a0e68b53f6854b46534c7ac5f2203c8e81943f8240f759015d1f2cb021a8fb8cd997c1534c503839d2b80186ab3a5d9d9adac0c0e0f759015d1f2cb021a8fb8cd997c1534c503839d2b80186ab3a5d9d9adac0c0e0f759015d1f2cb021a8fb8cd997c1534c503839d2b80186ab3a5d9d9adac0c0eec7b1dc80860490a50a92f617de74b4440d14e5eb41f47d1a0274dc979d637cbc4196db3d0fc5f1c23e002eb73abef6f87be9053c2275917f2977f992c5fc7c7ec7b1dc80860490a50a92f617de74b4440d14e5eb41f47d1a0274dc979d637cb4938b2c307a4dfa518ff99eb04ca0ef85869e279b1c71617fa2f84b4192f094e08ef2830c0d21d7a027170e873078e0d7a228d386261f4f45d09a0856bdca7b84938b2c307a4dfa518ff99eb04ca0ef85869e279b1c71617fa2f84b4192f094e08f37a94e7d6661f1d058b17144d750c94d3518b20c5b6adaacedbb017dccad808f37a94e7d6661f1d058b17144d750c94d3518b20c5b6adaacedbb017dccad808f37a94e7d6661f1d058b17144d750c94d3518b20c5b6adaacedbb017dccad8ae2fe626fde281b1dbbddbd2d24cb9a888faa1cd6c6b97e3749abb3b84979eb618774fe2634030e397a0bc571234a8e76911a739957f34d8a5bc226d219eeaeaae2fe626fde281b1dbbddbd2d24cb9a888faa1cd6c6b97e3749abb3b84979eb6bfd44d3688e729fd45ce3e4911d7351e19f3f49898ca8fa45e2ee3ee892388047acb08a00b00a9fb39fdc1d6f57dd8e3c2e69b404f49a0426303b57f3b9b4f84bfd44d3688e729fd45ce3e4911d7351e19f3f49898ca8fa45e2ee3ee89238804037b29aaf36b265385362f1719b719104db3630983a476e2781555a9fc99c42f2e83e872d84aaee3fe922ddb3f39e04fb960ed3028a9879f28a7dc96db8e52ef037b29aaf36b265385362f1719b719104db3630983a476e2781555a9fc99c42f02f9417e31fa23aa4831e7c791968e6b3f4d26e613564e37d075daac6fff1dce3aae861526647869713352ebbb1f65125b29a7637f8d6a4684866090702082e102f9417e31fa23aa4831e7c791968e6b3f4d26e613564e37d075daac6fff1dcef3adb3660350aa06df4760e098335512109df95a23b9a672bd00133a901d8fc5f3adb3660350aa06df4760e098335512109df95a23b9a672bd00133a901d8fc5f3adb3660350aa06df4760e098335512109df95a23b9a672bd00133a901d8fc5fbc2519d47225fab67e58d1c48c491956bc7b4d92d6ccac604dee2a1d677d0acfbc2519d47225fab67e58d1c48c491956bc7b4d92d6ccac604dee2a1d677d0acfbc2519d47225fab67e58d1c48c491956bc7b4d92d6ccac604dee2a1d677d0acb5af069313002bbfd8b50a4436bb953291af262313d0ccafbc0954344883cc8eb5af069313002bbfd8b50a4436bb953291af262313d0ccafbc0954344883cc8eb5af069313002bbfd8b50a4436bb953291af262313d0ccafbc0954344883cc8e725bd80e0bf434fecfedc5932324a1fc4c666d3f454c0bac389f2e016391ddb7725bd80e0bf434fecfedc5932324a1fc4c666d3f454c0bac389f2e016391ddb7f5487f8583f50389fee7f14cd3b760cadba43794f2a65bf06e93a915e407a608e7041a032878d79bc2ff45c0448301410bcf5312a0fc34262637326dacfe9472e7041a032878d79bc2ff45c0448301410bcf5312a0fc34262637326dacfe9472be9ffd4b794c0a0ad47b63a792aba4850b1998f274b4d81807e5c15e8defa8fdb59bd24254b40086e385a3cec8e3af60a62e27e15184210118cc88ce2f550a49b59bd24254b40086e385a3cec8e3af60a62e27e15184210118cc88ce2f550a49b59bd24254b40086e385a3cec8e3af60a62e27e15184210118cc88ce2f550a493a4a2be4c151f033fa82dd189137768c4ac6fadc6a353fb027d793361a9bbe42e1e2c6c9d2bf917c6fc70d137df1db9916acae711b6274cdbb85efd30f398b333a4a2be4c151f033fa82dd189137768c4ac6fadc6a353fb027d793361a9bbe4279887aac4df946f786a918db929229abffa99467a3d2439fe1673b95cefa986279887aac4df946f786a918db929229abffa99467a3d2439fe1673b95cefa986279887aac4df946f786a918db929229abffa99467a3d2439fe1673b95cefa98629b6c55e1e28c3bc0c18cd13b1969e160bf73702a89d6ea85cc8c3c6718a32b9a9b6c55e1e28c3bc0c18cd13b1969e160bf73702a89d6ea85cc8c3c6718a32b9a9b6c55e1e28c3bc0c18cd13b1969e160bf73702a89d6ea85cc8c3c6718a32b9a308d68ce73be0b24da1cc419bce91d12c567eb17dc524e4e87575e92b82e7338308d68ce73be0b24da1cc419bce91d12c567eb17dc524e4e87575e92b82e7338308d68ce73be0b24da1cc419bce91d12c567eb17dc524e4e87575e92b82e7338a35bbebc9e85f5c8af32cae7bda19d17d51f411b3d6ebdd1d63ab271ce05a853a35bbebc9e85f5c8af32cae7bda19d17d51f411b3d6ebdd1d63ab271ce05a853bc8358a346ac3fa7a4b99e8be559a6513a5399497aabe7be6a0dd1d974d578cf1047c8e90b056e4f8755fe6aa02e3145d3f441e8c4a36a516e51e000989090781047c8e90b056e4f8755fe6aa02e3145d3f441e8c4a36a516e51e000989090781047c8e90b056e4f8755fe6aa02e3145d3f441e8c4a36a516e51e00098909078f8d594b36751a3a1cd799b55a028912b07fef430f6fa8475da66895d151263930061e05582e1c171022ba7ffce69a279df5908413090d72da05a3db397d5d62bf8d594b36751a3a1cd799b55a028912b07fef430f6fa8475da66895d151263935292e77092e4ac967178cc6c1ac44a671896104356a2bb5243612fdf7657bca05292e77092e4ac967178cc6c1ac44a671896104356a2bb5243612fdf7657bca05292e77092e4ac967178cc6c1ac44a671896104356a2bb5243612fdf7657bca07d7ddc200427a7e8b8564a43ef0545a782f8344a131ab2e6eb99433a214c9d827d7ddc200427a7e8b8564a43ef0545a782f8344a131ab2e6eb99433a214c9d827d7ddc200427a7e8b8564a43ef0545a782f8344a131ab2e6eb99433a214c9d8207838134b8d9c64b70a9015f07a0b5735d74f33c0f794d06ba294b770c57f908e813f2d1361830119af1da75df8c2b7cf97e0b1b53f53c327e45755852cc76a2cae2ec407abb2de33a6344bb28dd93bd376b23d491222a9c52e17ded3622e1f5fdfe2c39f622ca407af723730ee20bfc7e7468cd33935cffb58a26dc3497aaae986ccf731d93ad940a155b5b5cbecffe69344d5c71bcaa7c5e3b6153387035bcfdfe2c39f622ca407af723730ee20bfc7e7468cd33935cffb58a26dc3497aaae18082d416798a8fbade1404bf69bc1746d44b85c6513cf89932d4f4ff79d92b10681d1826f9cba95b29ee9479ffdbab0e910930b502930e0b8b18e96902c7c7d18082d416798a8fbade1404bf69bc1746d44b85c6513cf89932d4f4ff79d92b114373cb9dd97521ee44da7a89094b91f54385406073843d499d42255f7018cbe14373cb9dd97521ee44da7a89094b91f54385406073843d499d42255f7018cbe4f85c72b893c6eaad9e746e8f1af112e785ed23d67cd614e5fdf3cdf53fb9fd994288a2282f881a49fc005a3f724dc23847d14388f57a7384d3b41261e5603c694288a2282f881a49fc005a3f724dc23847d14388f57a7384d3b41261e5603c694288a2282f881a49fc005a3f724dc23847d14388f57a7384d3b41261e5603c6abaa51c7d4f4ca0c7ee6203648370f5e35ffcbb0160936fe783620f46b8c2ce7abaa51c7d4f4ca0c7ee6203648370f5e35ffcbb0160936fe783620f46b8c2ce7abaa51c7d4f4ca0c7ee6203648370f5e35ffcbb0160936fe783620f46b8c2ce7c4716f1f51042cadb40a54abdcd91ed5b357b176d91ca8330c4ca1629f905f71ea8319d3c99cdf40b701c52c3cc233385b968b0d7e9a1802cd2f87817abec6b8c4716f1f51042cadb40a54abdcd91ed5b357b176d91ca8330c4ca1629f905f71da4eaf6160f941220960455fc88aa92aea45ef01a0b2f61091bebe641f0c22aa63e38b34181622ce251100e90d510464b20352de9027a32727c0040491ecb114da4eaf6160f941220960455fc88aa92aea45ef01a0b2f61091bebe641f0c22aa210845bfbe78934fe71a5704991fd767dcc63e6283ecb1f8da6697282fef7bb86065a2451f0e8d037fb64e83b857df77b1cb4554dab2af9d902e13fa6d713a5d210845bfbe78934fe71a5704991fd767dcc63e6283ecb1f8da6697282fef7bb886791cd6bc657c3bf087bcdf609b357d739427efbb727630618defdd1e6ac5615f2398cc306c00ff060b937f2421479ef5499346ac40c2ae31e81d69a6e5b748b6d4947cfdcdf19314b60b4337091ee68d1371a0cf028ba5b8dc1d55c52abda1dfc6f397e83117de4d5276b2f32b64a21601b39a1ee09b69630394b9999e5550dfc6f397e83117de4d5276b2f32b64a21601b39a1ee09b69630394b9999e5550dfc6f397e83117de4d5276b2f32b64a21601b39a1ee09b69630394b9999e5550781bfbb652c12c6cfcf02fdae288dc45fe596ba1900da3274e3598324dae2ed20bd290e44e4de9c12efe6372d41c5deec7bd971556c840d96047611e20340e04781bfbb652c12c6cfcf02fdae288dc45fe596ba1900da3274e3598324dae2ed217b5a87cd0be7853aad4cfe42c333b0b154814ca3578eb33e4e485e9f6059aa12b37f8c595dce000742329fb024933f698743dc9d193873b08d47f1aa969a20617b5a87cd0be7853aad4cfe42c333b0b154814ca3578eb33e4e485e9f6059aa103091eb32a595f2fd1fae08f8fd35b7e63d15fe526497f43a8c36799c639cd4303091eb32a595f2fd1fae08f8fd35b7e63d15fe526497f43a8c36799c639cd43f1533e3550c84c3e4d033e3146122a84d3a7accdb8de4068ac76405b8a23ef32facf29f7a318940923454647f4f397ed3aa5d95d5575b99da9b42f699a35569c20c451fa75a90ee0bd4ce3b62c8fd0b832369383aa1a1e02f067d7c27ae9c141facf29f7a318940923454647f4f397ed3aa5d95d5575b99da9b42f699a35569cbaf10747e3462783e408a7bcfa10317aac0484bebe7d2f9bc87af64ea8a441cce113c39b2798113ba50ec66102b4539483d2764a61c2a4f83a6e4230a18827f5baf10747e3462783e408a7bcfa10317aac0484bebe7d2f9bc87af64ea8a441cce926d4ba745ae54093badbe71b7cf6146ddb525b2f52f68ad61ea77c6fd57bd5e926d4ba745ae54093badbe71b7cf6146ddb525b2f52f68ad61ea77c6fd57bd5e926d4ba745ae54093badbe71b7cf6146ddb525b2f52f68ad61ea77c6fd57bd51746ee7f3f679954ecb9f0539cc7310c8543e0accf65a115999feb64a637d01fad38690133b17eebb25c150bc85cbf2ae3235481015138b72f9c3413e05908791746ee7f3f679954ecb9f0539cc7310c8543e0accf65a115999feb64a637d01fb1a85d37164869c991f31e8a6feec543a8de4388303e26eb24d4cee9c75dd075b1a85d37164869c991f31e8a6feec543a8de4388303e26eb24d4cee9c75dd075b1a85d37164869c991f31e8a6feec543a8de4388303e26eb24d4cee9c75dd075758e833c36139e81146dd463de3eaf02c2276d60d5bf609c89ad92cfff60235b758e833c36139e81146dd463de3eaf02c2276d60d5bf609c89ad92cfff60235b758e833c36139e81146dd463de3eaf02c2276d60d5bf609c89ad92cfff60235baf7935c2d804d9e771c36274614d612e38ae296c30d00ee1dd30b1bd79a5c2d8af7935c2d804d9e771c36274614d612e38ae296c30d00ee1dd30b1bd79a5c2d8af7935c2d804d9e771c36274614d612e38ae296c30d00ee1dd30b1bd79a5c2d8414e61a770a1c38fa874c6aa7b4c6e1fb390d4674e61b0d0be1b51d76fb4114e060482bbe480a5a38e64ad3f914763cc36d594b03b260317591b5c53349b4627414e61a770a1c38fa874c6aa7b4c6e1fb390d4674e61b0d0be1b51d76fb4114ef0c5fd00eba6d49153d228819ea160a72fb0ccc617b230beee4a72466c6be19b62f831ed874315c5376241c83b85955975f57d4a59033f22834988ad06db9da3f0c5fd00eba6d49153d228819ea160a72fb0ccc617b230beee4a72466c6be19b77fdce3943d070453d6057b43ddc322536da5c29d1112dbc05516c311dfc923a77fdce3943d070453d6057b43ddc322536da5c29d1112dbc05516c311dfc923a77fdce3943d070453d6057b43ddc322536da5c29d1112dbc05516c311dfc923a85eb812ddacf9d76248117763d26b5d414c45c737a25a0f91ded335bef0d7d4785eb812ddacf9d76248117763d26b5d414c45c737a25a0f91ded335bef0d7d4785eb812ddacf9d76248117763d26b5d414c45c737a25a0f91ded335bef0d7d478934190a93b2d20348115615411ef02b062a2f8e47e2f97045d7cafa936577bdab0394a88ab64eb6255025da8b82d77b202b25458c5a1adf79c83f5819cf83c18934190a93b2d20348115615411ef02b062a2f8e47e2f97045d7cafa936577bd937ad5574d4e9b1786ea05e49f6a78e8d9395b44c82e05f47482786bc7cde9b8f75260185014b88cf764ef3427d87250a462db7a2a6823e8f951219fc461ea004594e81a94f3cb81c6d6cfb0ca184d76b17530423a21e686d180b4cb208a32775798de629607ee441b503ed82ca078a0e0a9d8b2acc33517855188d21cda97ebdc37632a349c4031e642ac09d69aa9df36ac783564c214258e879ed0a79257ca62ad9a4e2caa7b326b231ae6295666fe4c253fd1be0cd2910127dea8133299f104a7a20568e705c03ef87420eb65804979f598256907bf2300eb237857890121887a31cbfa71537bd31e286f9800e94d3ef2bf2b056a42a6ecab4ed05181a07839e8d51e4b9dcc28b039e04fec8489935fc3c1585301ebb6303a154dabebbc675892f61cba5295dfd9b8d3a1b32224e66d08896e88cf24819b64612610bb0cdca94e3e1fd5477a262eba0592088b537a5fcf2160574dd0395be748d516f036365892f61cba5295dfd9b8d3a1b32224e66d08896e88cf24819b64612610bb0cdca3bca5f15a17a7e798f064f91bbcdbb1a87eb2185261ea1f7ea30a89c5254b5aa3bca5f15a17a7e798f064f91bbcdbb1a87eb2185261ea1f7ea30a89c5254b5aa3bca5f15a17a7e798f064f91bbcdbb1a87eb2185261ea1f7ea30a89c5254b5a8e432458b778fb8cb915d95af26bba940f055c6b69d6975dd15bec68863759ac8e432458b778fb8cb915d95af26bba940f055c6b69d6975dd15bec68863759ac8e432458b778fb8cb915d95af26bba940f055c6b69d6975dd15bec68863759aca9db8a192f34334553d1c7331db3ef517e6d866dedde7559f1ba91d239413ee5d005dcca2d4775684ef847142811ca20cc781a6e08cc4845c07e1b4c43fce273a9db8a192f34334553d1c7331db3ef517e6d866dedde7559f1ba91d239413ee5b7f3b4a707aa1ced52bc1bad431291b8a894b8846f4e61bad589d29319c193cd9ac810366f3544fde023bff862d7db215001c41772cb1ff725756c8772e1abc2b7f3b4a707aa1ced52bc1bad431291b8a894b8846f4e61bad589d29319c193cd61dc314461c383b8cb08bb02cda05d0eb14a8cafea8be4e466509e06be00fcfcfa2476f6d78f2d6d6de474714d7badaf3f2f1e003d22dd274c0f673e830ac19d61dc314461c383b8cb08bb02cda05d0eb14a8cafea8be4e466509e06be00fcfc1ec852ead579373305c551df0fdfa92cc1709815e6c37dc7ef0e73aa6942e13c606d5d11a281e1bc50aed142b4eb0ead5629ec2486d21ba11a70d4caeb3af4df1ec852ead579373305c551df0fdfa92cc1709815e6c37dc7ef0e73aa6942e13c04610a74aa3cf3516b694a9adcf6da3981ee5bb532e47a703c6636e8117db35b5c6fd738bf161eb8b394e38136806e8f5e26c7a8aeb977afbc59ee704e7fc59704610a74aa3cf3516b694a9adcf6da3981ee5bb532e47a703c6636e8117db35b0d1e890b7c5f066692261873d03460d73c0a63eda3438e79866d9d9f4f1c7b7e31b204ca9d742169d7b1eabbabdfe0ad1fa34f038051a24882a87d243789288d0d1e890b7c5f066692261873d03460d73c0a63eda3438e79866d9d9f4f1c7b7e8a2efb9631a51aaa23079b2eb57edcc0f3740cb5d57ede454bc328fbc7bad5408a2efb9631a51aaa23079b2eb57edcc0f3740cb5d57ede454bc328fbc7bad5408a2efb9631a51aaa23079b2eb57edcc0f3740cb5d57ede454bc328fbc7bad54043cfc134ab1983aacbeeb16bf8831185973f3ea3a14780502d246d6c63fc73d7f11d97be76409a6cc52a6c9edd582f9cc86681c593475e0ba8e49ca3a47a6e36929f75b32b5b6d5bbf61405cf04999192cea753aba132150881e9c9ae6f89b44ff3ded2fcb38acdd1476fe2955256c30f3849e55f1cf503d17ff79399f058b943c37de05e80528ddee5717152ed4dbd619c61cd298a5634c8aa6c812cf4642ab55d25186f8a2d61dd8c0d5059f9a1e993b85816fc1130b41847eaea5f006b14794619e6c75c18eabb12c52cc24f3346d267364e7b4f1cd184bd1ffbc1bd35eb0ee54790d37c6b5f1318462e3b7442935e0dc0b75da9f6a9ff24b8dc71cd0fd29bc8f306931900833366d7fd26cb5dbb50c61e6016bec2117d6c92e60dd3212b49ed0707ba85179299dd670c7382d43028faf01a1ca8e1c58e93474d09b2fdd4d6a4d266aca5839ba44847438578137dfc49161d472946e75876a30164ec5da9f9ed0707ba85179299dd670c7382d43028faf01a1ca8e1c58e93474d09b2fdd4d0a332c347c9a6b2888ee6290b3f05b52c059ba1a4b23aa0182e8c8a758fa80060a332c347c9a6b2888ee6290b3f05b52c059ba1a4b23aa0182e8c8a758fa80060a332c347c9a6b2888ee6290b3f05b52c059ba1a4b23aa0182e8c8a758fa8006b8d59140d266ec5fd80b7297f89f57bc52be3ee2626f4962560f1b9a737fec2cb8d59140d266ec5fd80b7297f89f57bc52be3ee2626f4962560f1b9a737fec2c078e4774e7b49247e59bf7a004894444574eb86d81e27baf663bf992765725cd12bc8746872f46a18a0aa0dc59bd6200dbfdc836079da8a70990b5bab72a15a233e4d3a1b00e0aa971b5dc98441da55cc19186bbdf5b355c72d9a4938934ec4ae5acd3fc2c8295fbd6ebcdd8c7d960835513477444384f034a1c5574a7eda2c342c2966b18a5987eaf59a0ca4f522aef991996e117e2927114f6282a54638964b3da92c7185defcb6c9517413d4fa9b0e3fa0e52fdd03576952014bb48cf036042c2966b18a5987eaf59a0ca4f522aef991996e117e2927114f6282a54638964f32d9565be27060edf01e20b8d715bbc8d9c936589f3d4fbbde2a94572556c3ff32d9565be27060edf01e20b8d715bbc8d9c936589f3d4fbbde2a94572556c3ff32d9565be27060edf01e20b8d715bbc8d9c936589f3d4fbbde2a94572556c3f2e84b6b35a3897b333d39979fe7a93b48fb92f43cbbc266e1c0ed4c890dcfced72b9e1c15500fc92d8453479564d5d123d9fd8ec3baf6b561212b0bae77f2f2cda6f8b2821e819a6394a80f2ff1c1fbecc6f6751893dcd47aa7b822db91900e072c16bd37f0a6076740fb48c70720c4088217ea390b89c02940ba00ee3b3091288db2153eefd6d1923498665b19e0b4a6fcbeb3522b778b017bda812c6962b5d72c16bd37f0a6076740fb48c70720c4088217ea390b89c02940ba00ee3b3091210408b2ea0f27adcd312e46d460d9a1ae4b28192cffcb31a23a2f5142a46367919f3ec73302fc529cb0913cb9a46a1b1d1e85f7bd6aa16f23d69d99578d4033a10408b2ea0f27adcd312e46d460d9a1ae4b28192cffcb31a23a2f5142a463679bae40b7734d93434a706efeedae00cd79b8dfeba9df91c595c3739c38026fcc69075b641ee0fa6c6e3515c831997b97460594d54a14112c8c5dc98596d000b97bae40b7734d93434a706efeedae00cd79b8dfeba9df91c595c3739c38026fcc6f37782fbdbd60e5772d8efe295a405fa1ef7279c58e318a5b09e7c6b3f58072bdc01e5ebde51686f2e91e86a447ca610b9a67465c59605ef13f1e18502529bf7f37782fbdbd60e5772d8efe295a405fa1ef7279c58e318a5b09e7c6b3f58072bc82b7fa7039112a080032b352a751d4528323ba9ff37185d626768bc68099ad0c82b7fa7039112a080032b352a751d4528323ba9ff37185d626768bc68099ad0c82b7fa7039112a080032b352a751d4528323ba9ff37185d626768bc68099ad094b4495220fdc4a0ddf2efe347467650a91e29d9efd1025f6e747c6955d1021694b4495220fdc4a0ddf2efe347467650a91e29d9efd1025f6e747c6955d1021694b4495220fdc4a0ddf2efe347467650a91e29d9efd1025f6e747c6955d102164a52548885830796e028e73b9b7acde03a82755c768460961e2b61ee18a5c580c116fcc277c5682b2df0a5d95524a00978947afe91d90b435e6e00075e546c984a52548885830796e028e73b9b7acde03a82755c768460961e2b61ee18a5c580fc9d37bbaa57e5adb456a11f469132bab1667970a3e88e09bc8801713d1ac6b7fc9d37bbaa57e5adb456a11f469132bab1667970a3e88e09bc8801713d1ac6b7fc9d37bbaa57e5adb456a11f469132bab1667970a3e88e09bc8801713d1ac6b7120c2d13a8d4f2d560848a935a9d01fd715ab8f84e80ca1d72c4e6d06b48b66ed318ff9e2ec4d5e820de2fa9d13888d73a2cb7b8a64df34c28fdaacd6b8814df120c2d13a8d4f2d560848a935a9d01fd715ab8f84e80ca1d72c4e6d06b48b66e032bdb518b4d46bfc3d7ec01fa2f7a708dca1fafbf1103e3a48fea41c8c67323032bdb518b4d46bfc3d7ec01fa2f7a708dca1fafbf1103e3a48fea41c8c67323032bdb518b4d46bfc3d7ec01fa2f7a708dca1fafbf1103e3a48fea41c8c6732388b5888bad57dee543e4386524855b581ca5a67327f1205998c2213e398a8ed688b5888bad57dee543e4386524855b581ca5a67327f1205998c2213e398a8ed61f2e0fe139af082ae995c2ca3aae7e866edaf4322f835773e29e96e29d24580aabe8c722d40f1953c06cfc73388b8ff6320e546d865b3a19204ae7bc1e02f299abe8c722d40f1953c06cfc73388b8ff6320e546d865b3a19204ae7bc1e02f299abe8c722d40f1953c06cfc73388b8ff6320e546d865b3a19204ae7bc1e02f299474e528ab7bb96cac76c2cba7afa2f390e8474de4d6f3dadfd506678885c70131a4adf56d94fff27332986e1a7f2298317063845154b3b026ba325348e4749b2474e528ab7bb96cac76c2cba7afa2f390e8474de4d6f3dadfd506678885c70132a01ea7f7d3b4757e08c0bb6712b801af8323ebe522f126ac4eb35e6d48d501c617fca2db3ea32c38d9333df691becdd85dad885385dbf0250b0f9ccc39d0346da683e96c105196f6bc536f19cc2a098245e7af770158f0faa3d0f3683a00fb571b09b0ed48fd8bc70cfa6e6859a288287043d7f55156b9e1e2479297ec78c2c71b09b0ed48fd8bc70cfa6e6859a288287043d7f55156b9e1e2479297ec78c2c71b09b0ed48fd8bc70cfa6e6859a288287043d7f55156b9e1e2479297ec78c2cfbd91da2891e4377ad9a9b48339ff108170510cabf33574273c6a7c9493ba203fbd91da2891e4377ad9a9b48339ff108170510cabf33574273c6a7c9493ba203fbd91da2891e4377ad9a9b48339ff108170510cabf33574273c6a7c9493ba2031ad08546e4564a8219347b0cd4266f89c6ada024dc366cfce8fc0d60985fea6589dd255d1d81b6bb8b478ede47bf8f7446fa267ebc98d103a2ab789b11f5bab71ad08546e4564a8219347b0cd4266f89c6ada024dc366cfce8fc0d60985fea6511cc7bbe9963fc73877947bf21ab6b8698d49ce6ef776c5967f18361c8ce479211cc7bbe9963fc73877947bf21ab6b8698d49ce6ef776c5967f18361c8ce479211cc7bbe9963fc73877947bf21ab6b8698d49ce6ef776c5967f18361c8ce47922a99fc49e2a7023242ce2c7fdd467b7702740b0c4a0ff8a5618dfa520f8ac06d61edf33f37d8a45b7a177408ed6b2ff3b3828219ae49fadf22874188569fe57568b168b31a09eb1de2a56f72422026064a7bf42bbac93c6801773ab7177bb06bf7e061c06d2a177f0fc2519d043b16acc51cf4615eefa20149457f068031b7ee48e4210f8539ae2d86dbe29cff5622860a375663b4a06d12deb59870ee7cd6a9f7e061c06d2a177f0fc2519d043b16acc51cf4615eefa20149457f068031b7ee0a570ac32c435fb154fd5d897d0d2da1b7308976800679bf4a7ae7b618d0890e35b67ba6ebfc1d7b5d8ef9aaca04b4d916288b4fa03fc4bbb9d6f21d8e11ce5f36e64be0de6393de5bb1c8175803b042b86ed2b6282cc3d37cb48be4e968e35594d097005648450ddb3145eae54863c66448394a21331c4a4542069a4624b052cdc7412fd8a4af4ad1f142e687b925e372bbf6a763c0e82025be0ec14253b85394d097005648450ddb3145eae54863c66448394a21331c4a4542069a4624b0527cff473298372f7246387418a2658b1ef05d4741f93761df268fafccc1529a0a603fc587c1ae4f4fc479b3a302320125d5e7b6d534737b778e626348e7c2dd8b7cff473298372f7246387418a2658b1ef05d4741f93761df268fafccc1529a0a37cd58aecd92441526d338b96a9521674164331a466074263ea1c9b379734309f2cf896e0dae4aa81bd89159f53a4973822fa2ce6e7de0ba9e18bd00af95e65237cd58aecd92441526d338b96a9521674164331a466074263ea1c9b3797343095cd082a1d45a45af1385268e63fcd4a614af00a6922b3616640bd058b0ca599a5cd082a1d45a45af1385268e63fcd4a614af00a6922b3616640bd058b0ca599a5cd082a1d45a45af1385268e63fcd4a614af00a6922b3616640bd058b0ca599acf3e117700be0de8705bd30952391ccf42e75346dda660e4444deee04ef2ef82cf3e117700be0de8705bd30952391ccf42e75346dda660e4444deee04ef2ef82cf3e117700be0de8705bd30952391ccf42e75346dda660e4444deee04ef2ef829b2a447c267fe5799e6fea8452fdde27b4bfd956058aafaf80c674b2ca9c8c139b2a447c267fe5799e6fea8452fdde27b4bfd956058aafaf80c674b2ca9c8c139b2a447c267fe5799e6fea8452fdde27b4bfd956058aafaf80c674b2ca9c8c13f7a884c48c7a1844628f57778e17f847f405451f44d637707167f7f77a1a61fdf7a884c48c7a1844628f57778e17f847f405451f44d637707167f7f77a1a61fdf7a884c48c7a1844628f57778e17f847f405451f44d637707167f7f77a1a61fd791476f14fe909c985fb3d0b5ceb5ddab8ab186b60830bef1bef94bc95947c6f4bcb8cfc6767842f325e843697f005fe4605ff66f85ee0a1c2901f63cd1b486ca0fa83107b83cbf126e3a7b9c99c6a1b1b26c9fdc3db8f370e20d04287b61374ec90745b8b8546f912b552ebd2de6fb3070b98d230eada4ade4daf3030fd281a1b0fb25c7e8524a3e01b8094629b7ddfc9de197bc2e6a810b8b9753e0ffbd17dec90745b8b8546f912b552ebd2de6fb3070b98d230eada4ade4daf3030fd281a8736ffac1ef09aee4692645576ec2a4db4b64ca670e527cffbd1b62e6d0654118736ffac1ef09aee4692645576ec2a4db4b64ca670e527cffbd1b62e6d0654118736ffac1ef09aee4692645576ec2a4db4b64ca670e527cffbd1b62e6d065411c62850c8ae4a007f626256f05019c73ebda48d0d46370e71f692278a04386a6cc62850c8ae4a007f626256f05019c73ebda48d0d46370e71f692278a04386a6cc62850c8ae4a007f626256f05019c73ebda48d0d46370e71f692278a04386a6cb6643db5d002bf8c287f67abf0997ece4c4629b0307f9137b22b862d7dab484fb6643db5d002bf8c287f67abf0997ece4c4629b0307f9137b22b862d7dab484fb6643db5d002bf8c287f67abf0997ece4c4629b0307f9137b22b862d7dab484f881e5f44543347fd340673e03c8ab9fcc53042391d24d384738f923a08c22332881e5f44543347fd340673e03c8ab9fcc53042391d24d384738f923a08c22332881e5f44543347fd340673e03c8ab9fcc53042391d24d384738f923a08c223327e4582b06161bd93b23f355ab0d1afb8d5fb980b290939eae42066d08484c26188535fa69f621c9dd2796508ec2c7a5aab03280c3bad27c2a91ed552d8fdd65914247135d2711d900e4d0bc3cbd343765f5c9b66c27f18b1622d2e769ee64ea801d055447b67ecfeb221287050fbbda4f23d084876937d0d3ec37e5f7cd47c1401d055447b67ecfeb221287050fbbda4f23d084876937d0d3ec37e5f7cd47c1401d055447b67ecfeb221287050fbbda4f23d084876937d0d3ec37e5f7cd47c14da10a36c8de3bb687c612af78eae68de9eefbbeeeeb4b15e7eec95cfa50958c1da10a36c8de3bb687c612af78eae68de9eefbbeeeeb4b15e7eec95cfa50958c1da10a36c8de3bb687c612af78eae68de9eefbbeeeeb4b15e7eec95cfa50958c173d0a8fbf4040b2814e3c760208c8292f89c64e933eedf9084946e982ac40dfc8965e010e191d95ba8e7c9508f5945a54f9c01c50dff27340168cf2b1b8ad2e10537c885b577972a246eeb4e278a269badc71a6ff46e2ec6e2b2b4f3d2f9b4e106911ee65a5408d281a8bfea08bcab8986a47de87911eb769d02bdfaf6c9a0ecc0ae2f60c742c3c3449a2261afcca91fc53e4fa304018a4e19f766c15abd6d0106911ee65a5408d281a8bfea08bcab8986a47de87911eb769d02bdfaf6c9a0ec641312272aab5469ac8aa13d4563b12b4b0cfb6973785662591255ca007b722d641312272aab5469ac8aa13d4563b12b4b0cfb6973785662591255ca007b722d641312272aab5469ac8aa13d4563b12b4b0cfb6973785662591255ca007b722d4b1a6fbe09e3703f5a7588a34dd4e681f92b4710ab1d3e9b475a411a88fbfa83877997fbe7d4cf17e71f9c8d606a6b9843f5cf292075e742d31243de2ce8ac4f2813d31fd7b77db1637f6194268689ed8d2802cdfe4f8a287a41ec8f99602e5795b0edd8c270d1c889947cfbc1782103e3528871e34b5916fbb92a5637030aac95b0edd8c270d1c889947cfbc1782103e3528871e34b5916fbb92a5637030aac95b0edd8c270d1c889947cfbc1782103e3528871e34b5916fbb92a5637030aac664242502de9a93e7d6dcd9097520409065bb358ffbd63edb80940bc4c239da1d32fff071274589773595f2bdc82ceadb9099070c6030eb60dbc82fbe2cf1e7c664242502de9a93e7d6dcd9097520409065bb358ffbd63edb80940bc4c239da14ca2beee6e50158f070ceb19c54de7dc4dc86b1333ae24b75d843ad0519f129a9926f1508c421d28f7d212e35d5e11dffabe2531b3b99707a8a150ec07dd6dc33762335f7a973a3c06bbcff58ce124cdecdeeb1d8adff72ba4945d3f1271cc4c62c712746b62ac70b48114252c293221d1afe3abd29dc1a3332c0308b25856e829326f731352de48bc6a3f843ce46cd38f53fef12baa86dabe3e86c70c2a9c3c62c712746b62ac70b48114252c293221d1afe3abd29dc1a3332c0308b25856e83e9c7b59d78b6f964a9a2b61bd30e73ff9cd301d2155f01d841cee14ede6227c3e9c7b59d78b6f964a9a2b61bd30e73ff9cd301d2155f01d841cee14ede6227c3e9c7b59d78b6f964a9a2b61bd30e73ff9cd301d2155f01d841cee14ede6227c67775c9cd3cbf52a858da55a7580db628cc3a3c356273e771cc45cb56ea7cce567775c9cd3cbf52a858da55a7580db628cc3a3c356273e771cc45cb56ea7cce567775c9cd3cbf52a858da55a7580db628cc3a3c356273e771cc45cb56ea7cce5533a800e8ce8c2cf865e404d18c151a2e57d7b3458ba5edbb3c5baf2b15000f364db9769308098aacb2ae91202b6e6bf7d17cbb10417c187e7c65f1da78bd8b0533a800e8ce8c2cf865e404d18c151a2e57d7b3458ba5edbb3c5baf2b15000f39be942f009ec4c999db7d423f6dd54899f7c554f176b01334f77d958267a43129be942f009ec4c999db7d423f6dd54899f7c554f176b01334f77d958267a43129be942f009ec4c999db7d423f6dd54899f7c554f176b01334f77d958267a43124fff6c2a2706fa2a258afdd2553db0babfda87ac9be76d673913c212a1990f1484d6b1a54d4e410b634b1cb73e33447f07ec6a6f838521587406557f5d8a54c34fff6c2a2706fa2a258afdd2553db0babfda87ac9be76d673913c212a1990f14dd2fec82ac2eb313c4a7d276ce9efda0df4125156cec53d07961d311a9dffbb946bb7d433567218291d1cf712ea0ac7f5bf9c29f6752df452bcc5f12a6c8a5eddd2fec82ac2eb313c4a7d276ce9efda0df4125156cec53d07961d311a9dffbb9a6c337d2c2f535a30500b7120cf2bdfdc5852c811dff86d10454d61ef9404f9d37dfad6c613bf5ead336defc47ea41c1066b1526a2efe90a2eac5d0395519d963e2a2b01079a8a8b2637ed1acc2cad34467df9467cf576596b295d5854cc7d6389f2ac2b90486b4e4407b3bebd72b7390c76aae795bdb3e03257f091b5b2bf2d66ae0004aed33ea161d4d5b6932476b06d2fb5f42bb3b9c3024001a63138ae5d89f2ac2b90486b4e4407b3bebd72b7390c76aae795bdb3e03257f091b5b2bf2d8eb4b49bb5d828e5af0e66b00a54b536bf01c19c4090301b96cd50b76ef7bee9c0e99512e240b1f71fbad86870616a57a22a5f9d34051ca696e35e9462a9c3da8eb4b49bb5d828e5af0e66b00a54b536bf01c19c4090301b96cd50b76ef7bee9c9ad83aad91a30460ebc042d6a626377441ed9515ef3231ed18ce8eee27de33cc9ad83aad91a30460ebc042d6a626377441ed9515ef3231ed18ce8eee27de33cc9ad83aad91a30460ebc042d6a626377441ed9515ef3231ed18ce8eee27de33c91fcb015ff70c22a7d4eeeb242a32bc00443b2369d2369ea8ca14e844a606f606bee9c125329ccbab74e7a33880af19550c7eec532dc3790ec0bc6dbc12bff1791fcb015ff70c22a7d4eeeb242a32bc00443b2369d2369ea8ca14e844a606f60804400eb57f3e3c01762a3f0f61af44d57edb7af04905d0a5ce9bb63ad196cfc8b249b442218a548e86979e7246ec7e5de7f872ce026b136a4b2fcf4d3a06eedee5b4418b0f6ecd004cabb5a16390f53fd6be71ca043986b66340c926d919d6cb43cac03b93e3fdbd2028092e7531a389558e3e93ac8d62b8e51ccfc9cfae4fbb43cac03b93e3fdbd2028092e7531a389558e3e93ac8d62b8e51ccfc9cfae4fbb43cac03b93e3fdbd2028092e7531a389558e3e93ac8d62b8e51ccfc9cfae4fb26bd57769c971915f8bd7373ce2c3a6499456a9f8c88af254993ec379135fb6d26bd57769c971915f8bd7373ce2c3a6499456a9f8c88af254993ec379135fb6d26bd57769c971915f8bd7373ce2c3a6499456a9f8c88af254993ec379135fb6d42eda34eff03cd3e9a3ac5772f6fdadd69a3ae6b4bd7a07e2e6099929d151069953a78e8ce8d4a4f38e6a3d1278dec38ede9ee848207a9ca9898dec9a8e1364f42eda34eff03cd3e9a3ac5772f6fdadd69a3ae6b4bd7a07e2e6099929d151069984321f4b074214e31e9e8a9e7af77e443ff798ad8740cca2c3f7fabb82acba75fcea7878bcbdce777bc51c8a0102089971f098493aafb6c6bc779472452cf15f25447ee9d112e3f824cc99c96dfcaff874c9879f28f738fb52c4c2c1131a3b760b2e56d4f5f6b5dea1e5cc32aa6657d098072071f07d017864e0f21cbd8862760b2e56d4f5f6b5dea1e5cc32aa6657d098072071f07d017864e0f21cbd8862760b2e56d4f5f6b5dea1e5cc32aa6657d098072071f07d017864e0f21cbd886270c14cdc52a59b23ab6b570bea8b289f234f96a3509718061767573b6b15f05e859b6eefac5b190f1c3cdf6baa89b069e476bc8088d3c09a2bd7c7d26f2120e54e4927df3af75f28ec6fab28e46402e0c8de3db694b4323be66348fcaabb8ddcc2311426d7489928566f392b5f4035be245a966c37beb9604f75b361e772dcd4174d8bfa197b0bcf19d95bacb191781ff78f2f37c018ce842de9d2124f87588b62311426d7489928566f392b5f4035be245a966c37beb9604f75b361e772dcd414206a91df449072ba091ca32895fed8462f3ff69c8b2b556e06de3293ff1fb45a8baf75d91ce5c361a9218622534ac4d0b3b8b0db300c2ee09aec2be31e15a4d4206a91df449072ba091ca32895fed8462f3ff69c8b2b556e06de3293ff1fb4572c6ab4b8b2ff50680ad948c74cef96d8d29998db01e0e649de4e97ec69d4a0ab9d2001c7f7be2e28ef26bc4f577860813ecf8fc72ef93ef125957318498903b72c6ab4b8b2ff50680ad948c74cef96d8d29998db01e0e649de4e97ec69d4a0ad7a76afddc592628888772f3a935e1cc57ed87824536cae44cc6bfac0da6970bf758d744b9e46da06dd25d8d56bd7800af393ef1de170aaeed788d120d130782d7a76afddc592628888772f3a935e1cc57ed87824536cae44cc6bfac0da6970b9efe4e1afef6041442a613ce86b22af4592b43a2bd852c4e9cb7357caf86998cd81e13d7b2ff31bfd9b3498521d73d51f09c924996edec5c1615f5770a340d6c9efe4e1afef6041442a613ce86b22af4592b43a2bd852c4e9cb7357caf86998c23bf74eb8c7abda956a73a0393391e23288b16beb4eed4abb591d7bc0ce33eff4ae4cd2b4527b64477e9b6495eed254ccbbfb13c54e6b34dd5145ccf0d9ce81d23bf74eb8c7abda956a73a0393391e23288b16beb4eed4abb591d7bc0ce33eff7252a7f5fcb84916f90ca8ebe843f540c5844446e9039777f6f8724280adf2f4a9cb0f9a296b6b1f2be2fb6d49a6df0b6eea3c5a3fc57517adb57775fbe32a997252a7f5fcb84916f90ca8ebe843f540c5844446e9039777f6f8724280adf2f4e7d65ab2df53e6631f4dc686d611fb2b1ab989b0f44e33c41bdeff703278c159aa813f6f963c41e1551e271c2852effe1fd250c402dbc102a622d2743f62af12e7d65ab2df53e6631f4dc686d611fb2b1ab989b0f44e33c41bdeff703278c15961cad941ea6b5b88885dfcc610022d5f939276c85020bc448f60af786d12e1e30d6765b98440f8470f826e35a16ab6b44e39a8e05c6584f172ebfecae0f7556061cad941ea6b5b88885dfcc610022d5f939276c85020bc448f60af786d12e1e37c2a1526375c24feb2c66427e97840e9c88bbce8f2f67a34510541a5e09c1f2476a276591ed5a5124367a13dafa1405ce8c5c4b7ebfeba9bf2c170c1df6198487c2a1526375c24feb2c66427e97840e9c88bbce8f2f67a34510541a5e09c1f2425b681e101b960dd79cea4950bddafa08a25023cdc43b9ede51d33a547c6ecc825b681e101b960dd79cea4950bddafa08a25023cdc43b9ede51d33a547c6ecc825b681e101b960dd79cea4950bddafa08a25023cdc43b9ede51d33a547c6ecc8ff2e2dbcebcc2f31dffc0ee27dc918678be0111a429c97e31f6a9a4e22544ff3ff2e2dbcebcc2f31dffc0ee27dc918678be0111a429c97e31f6a9a4e22544ff3ff2e2dbcebcc2f31dffc0ee27dc918678be0111a429c97e31f6a9a4e22544ff3bb0298afc6a5b026a7bfe464c21cacb3cedbfbd4d0c92e6d7d14ac35344be32e486eb99276f4877fb1ddc6a502519a6dff1111bd71e4b0eee4141d57f8c174d1bb0298afc6a5b026a7bfe464c21cacb3cedbfbd4d0c92e6d7d14ac35344be32edc2a180b74b4a4fa22e59a1aebb3f4dd44db9eb9cac5974612f3d024897b114282166165f1f3dfab2aa1af8429a66d1a46b35391cd4d649f5a06b54d52d7116cdc2a180b74b4a4fa22e59a1aebb3f4dd44db9eb9cac5974612f3d024897b114276417e6cc4ec0a7bbbe302bbe7ad044240c6aed33348ddbb121fac74d25dd3483053a7253586290a2c4b9d5b39c8f96c93a6e065b060bbd8e0ad5f4df1bc653076417e6cc4ec0a7bbbe302bbe7ad044240c6aed33348ddbb121fac74d25dd348f8d6dc316972fcc7bdae0ae001e1115424de0b11717769bf4bf2399145b46ea9cfd10bcd53fc21b8a493cc9e6e0323cf923221912b5447aac115219b09bdfd98f8d6dc316972fcc7bdae0ae001e1115424de0b11717769bf4bf2399145b46ea9e8bb5702baec3358aae36afbfef3a14879d73803d22a93748fc11d0f191111d1e8bb5702baec3358aae36afbfef3a14879d73803d22a93748fc11d0f191111d1e8bb5702baec3358aae36afbfef3a14879d73803d22a93748fc11d0f191111d1cafceb77465aadfe03bd2bcc2fd98605585360f8c7a11fd6837e39b4ce555134cafceb77465aadfe03bd2bcc2fd98605585360f8c7a11fd6837e39b4ce555134cafceb77465aadfe03bd2bcc2fd98605585360f8c7a11fd6837e39b4ce555134282274fdd62ea3c98446a0a4cf2a162b5b7261557d153741584ef68769f8ddfd282274fdd62ea3c98446a0a4cf2a162b5b7261557d153741584ef68769f8ddfd971c6babec32d72c72bc596b0bd3224aefb5350c898d6ad3e691263f0a77f9f631e92e38b5f2e4b0e8a4f0b7b13b93ddbf04b72039f17062bd992794f7dd1dd931e92e38b5f2e4b0e8a4f0b7b13b93ddbf04b72039f17062bd992794f7dd1dd931e92e38b5f2e4b0e8a4f0b7b13b93ddbf04b72039f17062bd992794f7dd1dd98c67e7a5952f5c9b15dca3e04be0bb677eaedcdb421d87ad2f60b24b783452678c67e7a5952f5c9b15dca3e04be0bb677eaedcdb421d87ad2f60b24b783452678c67e7a5952f5c9b15dca3e04be0bb677eaedcdb421d87ad2f60b24b78345267cddaf405f2f6ef3dc376ce36fdb2ef84e8315350c338a2e15cc8f7c5e6e6f30b669a423a1e0b3ddd1d84dd10bbef386cfc21185ba263842e24228d55a6a43f6b86dae110d693e9733b3a6af5ebf9461b6d00002c5e1eb125704c65764f256e7cc722de306b0f6f99a42f1541c916dfe14dc83e9274f3e3ccaf450826d60e7758c22c3f5688f58b8728659903dbfd292d7554bef722712bca22aa5db2aecb8accc722de306b0f6f99a42f1541c916dfe14dc83e9274f3e3ccaf450826d60e7758fd2543ed8c3e34da84e10d3046cac46d94a6fa742b616adbacbf5ab099e275e218f536c73650191d6fe5a7a75757ec4afe7c58e718176c48cb3bacc7450e799388e1dde29836a3d5bce41200252623fd2df12f87297cb5f541e18ec7dcc224bd24256d406d95fa3404520dabf149bef11f7fe68b2fd09d691a0dd229fe550104632d1a744363cc10ee785c94339f37c88cd399313a1a575758037c6110b6c8bdd27d207d2b55de7bad4bc26464ca18262dc134cda4c01fa01baa206d3919ae2e5c994519eae7dac8aa45ef554a4a67229435243c05341f95dbad65fc8f718f200cfed7d07a81c300a02662960c4f9e8b0badf71b57af1f8a8713493977ce8ab25c994519eae7dac8aa45ef554a4a67229435243c05341f95dbad65fc8f718f20335d0d93dda464d4bee6e96878edc90f6ac193680ed0e3f8c0efa86ec6706f2a886204051cc68c3b68aac3d32512dea89d0f7a2451a5851c0f485106abee054b335d0d93dda464d4bee6e96878edc90f6ac193680ed0e3f8c0efa86ec6706f2a18add0db21b2527dac5f3c4cee40b10346bcfd6d203a665cbff532d4dc059605311f3ea69ad11d4e597e81286605eee27f6f89776aa4be6a8c973a281670e8c318add0db21b2527dac5f3c4cee40b10346bcfd6d203a665cbff532d4dc059605d1292bc26fd036f4f6fb2a1d9da090a1aaeee613bca017080ec51de640b8df48d1292bc26fd036f4f6fb2a1d9da090a1aaeee613bca017080ec51de640b8df48d1292bc26fd036f4f6fb2a1d9da090a1aaeee613bca017080ec51de640b8df48999463385b4e258b3bc13aa26348029f307499c2f98122410da14fc6be3a1a9b999463385b4e258b3bc13aa26348029f307499c2f98122410da14fc6be3a1a9b999463385b4e258b3bc13aa26348029f307499c2f98122410da14fc6be3a1a9b670b94c05ac7f7b0cd9335a40a2be3df6e7cfd8daf2848d368edcda1cacf4335670b94c05ac7f7b0cd9335a40a2be3df6e7cfd8daf2848d368edcda1cacf4335670b94c05ac7f7b0cd9335a40a2be3df6e7cfd8daf2848d368edcda1cacf4335f41e358584b4c9c6f10ed9d0ceac9508d6b16785509e6c112a8e549d2ccab6083938be715b6704f613a4a5abfa5114fa74cb8afae1f7af02ea87cbd16386a0c3f41e358584b4c9c6f10ed9d0ceac9508d6b16785509e6c112a8e549d2ccab6080170d24fb3aeebd6bf3f64fe08eaa2bc64dee5c176aa1adac7a36b67429426ab0170d24fb3aeebd6bf3f64fe08eaa2bc64dee5c176aa1adac7a36b67429426ab0170d24fb3aeebd6bf3f64fe08eaa2bc64dee5c176aa1adac7a36b67429426ab59765ea55e00bee880eb3c343b432cc9a4ff7c654ee40e19b821a73a4939dd6d59765ea55e00bee880eb3c343b432cc9a4ff7c654ee40e19b821a73a4939dd6d59765ea55e00bee880eb3c343b432cc9a4ff7c654ee40e19b821a73a4939dd6d2d5d7b559230e676790c4ee8096fdcb8f90ebc33b6d3b557fd4e1d45a6d262b32d5d7b559230e676790c4ee8096fdcb8f90ebc33b6d3b557fd4e1d45a6d262b32d5d7b559230e676790c4ee8096fdcb8f90ebc33b6d3b557fd4e1d45a6d262b30c7ba8fc419f45c0e387d0ed23a8b4f8eb93835fe4196b835d7820c29b1690f20c7ba8fc419f45c0e387d0ed23a8b4f8eb93835fe4196b835d7820c29b1690f20c7ba8fc419f45c0e387d0ed23a8b4f8eb93835fe4196b835d7820c29b1690f2a299cb2c0d5e28022f33fab31191beb90673d7958b505abfb9af558a4c5de9ab5289bb13ae687afd30e386723f71641c49a828437ff62655404d455c7229e9c3a299cb2c0d5e28022f33fab31191beb90673d7958b505abfb9af558a4c5de9ab5929333ba6015c0affa5fc3ad6fb5c4634bf3e73be090e8e778fd0d5a417e86a735dce11320704c9ffc7f07c1926b680281ac41cfd3b6f88937e42f312d1c6b95929333ba6015c0affa5fc3ad6fb5c4634bf3e73be090e8e778fd0d5a417e86a7912094ff52cb9255f96ca9c97efe602356566d5b69ccbdbb57edf3f32f025e0b062c867953129d90c8e0220a3f752837fb3343814ce17a86901383418bc0b22edd76a38e2471776d855ebf1e1e5a36daa3c1e29c6d948ebc8bea0d72f850f627b6245a05bb9f17ce9c32942f682b24fe9248b17dea0f5205e21bdbcfe265152e288a8f5dcbecffbaf420c39267f8904eb9e82d15ce7b450297e889efc04e76bef8d4fd599a4879a74b44bcd432c1a46faeba5725b139bfec64f54412925f27ca4a66dec64c7bf26a56f90ac0f348a09567c0e0e8b0651056c81cc435317f4fd05581092ff0e01b65b3d4816e71b8a00d7e115a78a53662abbddb2be54af31e0a4a66dec64c7bf26a56f90ac0f348a09567c0e0e8b0651056c81cc435317f4fdec88b0dd38f60f641fd93f14c19eb37e0d82b8c51e85c38f206cedb07555e414b941d681db3416005c4db91e0dbe36ed7d9e9a3337399a44a562591670516984ec88b0dd38f60f641fd93f14c19eb37e0d82b8c51e85c38f206cedb07555e414379bd4202574a9cf9ad5b6ac6c4244dfad8f344975dd3ca4cacc53d4d45bbadfcabd5a8cdc5cb64027e916f809a2bf41ccd2c21dcb99dcbcd498d90a9f6969dd379bd4202574a9cf9ad5b6ac6c4244dfad8f344975dd3ca4cacc53d4d45bbadf3558b0987965b3642a4731cc9a56259cdb1ca8201797b19817d8ac95531c49cab6e3df50277cd1dea35bf6a74e5fb71efa761c3deeab9e0d764e9ecfb2a200eaa6f33fb02c404df3054cafba312945cb558257a51dfebf85b8e5684684b833de04468100fd01e849aca3de2f7617021fa7bd55985dc9e185661ff1392450a0b004468100fd01e849aca3de2f7617021fa7bd55985dc9e185661ff1392450a0b004468100fd01e849aca3de2f7617021fa7bd55985dc9e185661ff1392450a0b00e1f1b220605c99656925a509acdd6bc7eba9b499107996e586b1ccab9716d7a0e1f1b220605c99656925a509acdd6bc7eba9b499107996e586b1ccab9716d7a0e1f1b220605c99656925a509acdd6bc7eba9b499107996e586b1ccab9716d7ad0ac3dab22b4b63e6e513706b97143892a753550a5d109b322737533e60d77b5d0ac3dab22b4b63e6e513706b97143892a753550a5d109b322737533e60d77b5d0ac3dab22b4b63e6e513706b97143892a753550a5d109b322737533e60d77b57b3a0e61654731e99dc5eb063e663dcc231f117641087e7989284799cd6d3877de291db3b0f50ab20b8e2371f93efdff18e55b953a9b4ea1954624702916f0587b3a0e61654731e99dc5eb063e663dcc231f117641087e7989284799cd6d387726dd1ecdde172332f2fda77653b0ef9f80e28a4185f56d2055009597a0f9b78b26dd1ecdde172332f2fda77653b0ef9f80e28a4185f56d2055009597a0f9b78b26dd1ecdde172332f2fda77653b0ef9f80e28a4185f56d2055009597a0f9b78bc0070123fcd34c1762b0a9c7d116615c9d01dc88c0a88d3a67d1ce7d5c0da9a37373046e92e2d89d7c53fa5525f087b4fbe5609ea29c70a19229e9c29491b9c8c0070123fcd34c1762b0a9c7d116615c9d01dc88c0a88d3a67d1ce7d5c0da9a33c7801ecae78516a8b09fe3827c5e5778876c5ed6a5bab80a1ce1f1a8fe5dbb5f592718c0dae3213d9f0477952bea91708e526cb18f572472ea37d50581729f83c7801ecae78516a8b09fe3827c5e5778876c5ed6a5bab80a1ce1f1a8fe5dbb568981e8f4e3d3808175e5e2c0c50a4e6d0f848969dad836b8d1bea8521095d346ab081b407755199623ebf132e18cf7c90e99eca40edc05ef4367d2a29d186ca68981e8f4e3d3808175e5e2c0c50a4e6d0f848969dad836b8d1bea8521095d34f1e0c3a9c90081ad7ffb91c49aada02c28daa29d91302b1567fe3b03b28f4b3f20ca10665a094069e82fbe125430ef86ac824f62ccff6ec701d838500d927c70f1e0c3a9c90081ad7ffb91c49aada02c28daa29d91302b1567fe3b03b28f4b3ff3695f09243dd565a9e73639c0aceebca94f7b68fb0258d461f04c147ee8a14ca93739265e93acd762d26374bd6d11483cfca6817b7d2549e1f7134e43b90f8cf3695f09243dd565a9e73639c0aceebca94f7b68fb0258d461f04c147ee8a14cfef74457a2a471d646953541fba237b1f9cdf3636de9c1f71810925df081c503fef74457a2a471d646953541fba237b1f9cdf3636de9c1f71810925df081c503fef74457a2a471d646953541fba237b1f9cdf3636de9c1f71810925df081c503c0fddf346d619be8444bf62104592271b998b66d6817dbfd3be85d7c9f09b942102e90d1424c25c5eaadfc4108c1c316c80a12cecf066c5aacab9e6a3e45b9454fba1147c9dba5b95d7e95f331550c796785e7c51f6da512b4bf9b100bf2f5ea534408f026a67be0fa0929ae05a7f80995c37c72044536a9af04473fa8f16fb6534408f026a67be0fa0929ae05a7f80995c37c72044536a9af04473fa8f16fb6dffac4bf550c19582798ac9eb3b620ab4255a0518831400a8fa4a5c14384dc38918e49f6503c8317588483bedf3852f6fba9c3f90deac14b4b883bffb5f9eb8a05ae8a6225f4840fa6bd3d41dbc5c7eba614c0137a74d0b0d1c0d2709a3cf6d3918e49f6503c8317588483bedf3852f6fba9c3f90deac14b4b883bffb5f9eb8a8cb98e42496b96dbb2de805d930d3bf39bb00d9fb75d089d4d1c44e5c342f2e7694f3a975dd96f0bcc3744cd0c527cafd2b666cb19eb089c7b6941e4f1e41bdc8cb98e42496b96dbb2de805d930d3bf39bb00d9fb75d089d4d1c44e5c342f2e7c284d11403bfe83ab85fdf985ea04ea982ae15c5c334310846ed4c6614a0d703c284d11403bfe83ab85fdf985ea04ea982ae15c5c334310846ed4c6614a0d703c284d11403bfe83ab85fdf985ea04ea982ae15c5c334310846ed4c6614a0d703a67545c04b026792116218c8664bda9b2f3fbfd197b79afd5ff5febfb04c9565a67545c04b026792116218c8664bda9b2f3fbfd197b79afd5ff5febfb04c9565a67545c04b026792116218c8664bda9b2f3fbfd197b79afd5ff5febfb04c95653a56c19e4543e3ff6914e17543ff2bfc580fc8b9c4646cd62033149c81c3b2b3552c0ba63b9bde770c3f450b1dba640aab13b666255927562729eabe5ec501fa3a56c19e4543e3ff6914e17543ff2bfc580fc8b9c4646cd62033149c81c3b2b36e629148a276dddc7a912fd34b002a484150fad9770849cc67db1d7e567a6e4fd4b361639f69b94a9f1f2a70f63d5195d52386638b4f97d159c8dbda8e3372286e629148a276dddc7a912fd34b002a484150fad9770849cc67db1d7e567a6e4fb19c6c219a6e1f7d7e6cd82637479d1f6a4d48baa914350e5c2d4e7ac4af4618b19c6c219a6e1f7d7e6cd82637479d1f6a4d48baa914350e5c2d4e7ac4af4618b19c6c219a6e1f7d7e6cd82637479d1f6a4d48baa914350e5c2d4e7ac4af4618f75c07427f5e7f6da37b293dc2d197b69d953948cd7ee6770979d1d1900f3f3deee1467019dd8c5cc1c23a9e14cc181c4463592f57439fee8b3e27487a31a285f75c07427f5e7f6da37b293dc2d197b69d953948cd7ee6770979d1d1900f3f3db72894f5f7740cddb26b1f8ef333a25d4ad3cf09f66ba9a80d804d122267d39ef6571b4f7ef2679bb80c4423a214c4ba86f3ccd094e19a4609c87a8971276d67b72894f5f7740cddb26b1f8ef333a25d4ad3cf09f66ba9a80d804d122267d39e6c0db196681ccbaaaa5bac5ba48bf64c74de63361f0e2b7651b04cb431d2e02f6c0db196681ccbaaaa5bac5ba48bf64c74de63361f0e2b7651b04cb431d2e02f6c0db196681ccbaaaa5bac5ba48bf64c74de63361f0e2b7651b04cb431d2e02f6e094f2b3db4932b3c201bf1ee2026c46cf39f5ae1175e92582dbb02c63e54d033e1c1732ba3ccce7e8248a340cda1ea05bbd2614968e959ff5f6e9aa97197d46e094f2b3db4932b3c201bf1ee2026c46cf39f5ae1175e92582dbb02c63e54d0f99d67879c1fd1ae68816fd4d0ad66c3422435463dbbe4d9060c6b78a14f92dbf99d67879c1fd1ae68816fd4d0ad66c3422435463dbbe4d9060c6b78a14f92dbf99d67879c1fd1ae68816fd4d0ad66c3422435463dbbe4d9060c6b78a14f92db1a58db04cc58d29013b6e1db3659cfc6b4417a219cf8dc67a72582707be987bd1a58db04cc58d29013b6e1db3659cfc6b4417a219cf8dc67a72582707be987bd1a58db04cc58d29013b6e1db3659cfc6b4417a219cf8dc67a72582707be987bd096e63e2ba91ed0d63d9ca66de5e6bf41831e1c4007e7729364a41adef4e119a0f56b27cfae7d6b06b7ee587f6a7ac4075a2afb1b26a827dad58ca1f6cf5bac6096e63e2ba91ed0d63d9ca66de5e6bf41831e1c4007e7729364a41adef4e119aff19d7cf26d1a3b7218288e4ffb45b27d2c1bcd40e27cc11cd4f9b50ff71a4ee4902823fea94d407bfe9ebaf8074571ed7cbb3ebe6f23e4d87fe6a8e1ecdef98ff19d7cf26d1a3b7218288e4ffb45b27d2c1bcd40e27cc11cd4f9b50ff71a4eeb208992b6257f60d9c2ad5dbbc5373d27c0affacdba6fd85dcc4847d0416bc08e31b615330f6d0f494fa37acf83ccedeebb34a4b6351c033e514d89537cdcc69b208992b6257f60d9c2ad5dbbc5373d27c0affacdba6fd85dcc4847d0416bc080029847c624638e6215a51b9face77e6937eff2610fd15f1530aed292b4ab8483f45a44f59a963ac1bcef15394b66a20776ae25d151bca1145bd72cf19e8eeaaeb70b7b1bb4c0aa9f7659b20a9c941e89b59c4646fe3726a483a0b8fd7b7c7cbc26118b2042c297a4548573992adf4b3fde99df008d6c042f735ca47edb9a360c26118b2042c297a4548573992adf4b3fde99df008d6c042f735ca47edb9a360c26118b2042c297a4548573992adf4b3fde99df008d6c042f735ca47edb9a360efea044684420336a2d2b0c97953b66bc25747f02994cefd3eb36055f24570fdefea044684420336a2d2b0c97953b66bc25747f02994cefd3eb36055f24570fd533232506a757f61ed2bf725a39835c89a57f0243eb443ebd2a646be95a5a304ca513cae65dea5a76cc10fa0563103a721a1eb0aa03d93ffbdcba6e62146f9cbca513cae65dea5a76cc10fa0563103a721a1eb0aa03d93ffbdcba6e62146f9cbca513cae65dea5a76cc10fa0563103a721a1eb0aa03d93ffbdcba6e62146f9cbbbc6f118f3cb657fce2cc1d06f98c6702b0cec360cd69e69e43993a88868e2a894f315f4cd48342d9bfae01bc5092ebb35aab0c9ee478a35920889d4525875e5bbc6f118f3cb657fce2cc1d06f98c6702b0cec360cd69e69e43993a88868e2a83c8c1450b87d0379683ddfc3799bcfa50a5c4aa03e67191092ad93e6431e1b3bf0ef7b3527bddd3e66f444331c5375066652ca7427502eb4982619973c83b77e3c8c1450b87d0379683ddfc3799bcfa50a5c4aa03e67191092ad93e6431e1b3b84a13ecac6bbbb796b2a71445a615e8a6bb67e126ceee53e2b3bafc7884f364884a13ecac6bbbb796b2a71445a615e8a6bb67e126ceee53e2b3bafc7884f364884a13ecac6bbbb796b2a71445a615e8a6bb67e126ceee53e2b3bafc7884f364872f54cc8da77deb74c5b46b80f0d4fb0ee1dd045b07fa05115aa9e46ec006f6f72f54cc8da77deb74c5b46b80f0d4fb0ee1dd045b07fa05115aa9e46ec006f6f72f54cc8da77deb74c5b46b80f0d4fb0ee1dd045b07fa05115aa9e46ec006f6fd4a582e03227258ecc519ab47e7846c8d0d74fe762f2a5a6334e36ca02ae1d4257aaec2e194b6594d5513d3f0a095d9deed142cd7b12e6d968cdd7b560793b90d4a582e03227258ecc519ab47e7846c8d0d74fe762f2a5a6334e36ca02ae1d42a0de5eb28b0cae87222645f5e4fe904b224ecd68b9ca0c65f598be78152e035da0de5eb28b0cae87222645f5e4fe904b224ecd68b9ca0c65f598be78152e035da0de5eb28b0cae87222645f5e4fe904b224ecd68b9ca0c65f598be78152e035da738ea43a5de9cfff5bd7c82fd295b2c42ed960603b7bbcfbb48c2fa19a2ef2852505c5d1ceb7f5467c6b92c779444b34d92052f2af4ecd83cae00ab097891d84c615714bc555e5d4ed5797f7997b922fd34fbe646fcad65f67b2f80dd0711f2cbe7bf4f9ff9c4a5f4b86ca4875afa637134c3a742b4b0143fb968401216e306827922b618d7df58a2021200036a087d0f4026b6949469a91ac998d8ebfc729eb6e7f6eeef758dd9f2f3f2645029471f09b8a8eb25670045d9d91fd24c59762914c92d11f7e53a1d315e9125458a68105097d152dbee27cd063c9f6664c7453c2f1214af1113c659b37ff02aa9727f3341812e066c82524c471e4325bcde6f72c72c7dfa54f5af1bb9ad263964adf130597666ae1e5cd125f5a435b565d6c15f084149ce7f90a847acf09ab5d6295f770f5078d0c696a06c0019842583ebc6f05de0b82d1083ca378f5731bb0d5215f04d26fee7243d50b29d9f2cd55ea6a7f424085a59861d397d516cd5ff993ad664f08c84720035798ee862998181133916c89b087f49b924b4f49dfd5f2da2f69bb4de8dc93d3363f948869e95a3aed43cbd180a1145d18611e620bf7e5baa5b29f4afbaebc894befcb303251b5ccdbab84559920a8cb9ea62be33023d6dd183bea88bc20bad1b4caeb196decb9e5fb6e6cc925dc8ed7705c2bd444542091169073445d907f5cade9579da83e8d2568ad80c7b9ee51db4a46087da7530ade979f38e5de7a2e068b5a58cc9cc543aa8e394663c223c95e77edf64bf88b2fb3f9ab385866187630a4914c7c17ed7221c9f820f7ff61582b28115c56fe3127a4a203aefed876bd4f7e8d8c20224afce0ffe97802304af89c305a0d5feb8bf6ba9c7b3abfb6d5e620ba6d4f4d69277ef315e226b03ea1d93a88bf105909313e5661b5f35c281bece7485a9b997a621cd59f9ac2a4dc7a2a75969654a60ae333bdda0b53be979e0db035daa9780f202d9faea3dac87068283e5d1d92cfe4dfb2cc50d5ea5341d5ac0efadfa47db48595daafcfc93e79b29fca6d56488393712285db29e7e5a75c693f9be4008cde600b2b81700b5e6b23aea484f7a4312bf613b75417b78419056d4c9918b3a2cf6b5a616f6e75b7af05fa928568dc9dbf39845da83a48720e019214a0f250aa5e8de0ebec4bb64b1c3671c38f4657ff67b9508572bfc5aed3d0537d4428fa5607a5fda208e87975103191246d69aac4eb605cf6d84969b2054bee95dcccbe7824a99ae26e6fabb24009573f88b990c922fdc65adddec1312e30373dc635c6099912d4f836a41963c93fafcb826c1f368cf3c033605cc8b196ccc18d9fe2d364a8ce34372882ac3711f6d637f96d1651d1be3c519b7f009c69d1f96544f959e13d6c9a0c8c9897a28d17ee86bc89e86be4fa9caad026644498fb9da087d615cdaa485e1640fcbffd93515dbe0bc61779aafb3cdf11e4c32d229e120139bfc38d3ea54b95a76e38cf248d2b943c380e0f50a3b80293de6d739f8a6a7ebfc182d81ee7663e04aa15b20876c0a4f4c0c655a5d6334e94345e34123df42d0a3b8b6293df936cabbc01510bb97211de7561cbd6266596527959b50a32d710e557693be66c42c9bf2c3c855e2f48f814bf478e5b904a220368e897847f75da7a8bffe9f84e561d08e92262a107916641c7f211ac5898c0177535cd0bdc5aa872cc6e883842694d8f52181a04af69c7f806ec39ab2cac5f0fa7fa8beb6802601105355fb3e606151405d7a72d9ed8bed3d8e10d9a4b2013ffe79c6cd6367254e5baad1286d43552890eca2bda6762d72412b721f1a4fb6d82f22a9e7dd0f206743ec6a2e8294eb745c41516bb5b3c534faf4aa1d74eca204ede64060e98ac77adcb79d02c0ad50007c23db1c6b7c24ecb33eab8cdf14ce4ad5c0dd0ea56caef49af1399c7508897a4ec7a1d7eaeefd2e2a7b3f0814d36dac96b5208a278703ef1e1af4cbd41013dd5ead1dd371ec51b0bf2da49c5796c219238b6aa1ddef5631608c61518647cfc7b6fe56409312c0fdefb1f77dc7ee86bd131c5eb7a2b4a9885812b52828f7ecc485ada4dc8f1f947d52cd86d4d830ef677a2f04d337a29ddff32b53edaeca152e21c190acfbdbfe5d1ea7f28e0ee87ec387c806df1c62b5da0f958126201f40a8e87a8d39a6286aca58ab1a43ffd9f84e0758243334f579c6a7e3c082cf55a96a9f6dc47ca0d603c7f5bb6ac262692c2c6c4052fe17ee8b4674e846b5c0a9513424fe2d0a2fc18aec63afcc8b579b23ade273a2394b9875c35367690b6a293dcd7e6dc0e0773a79dceb622ef6410577c19c1e177fb2eb9c623a49340de3c9f1de25602d0a2fc18aec63afcc8b579b23ade273a2394b9875c35367690b6a293dcd7e6dc0e0773a79dceb622ef6410577c19c1e177fb2eb9c623a49340de3c9f1de2560882cb60873b718a2ac2bfa3b6a792e4aa75cf0ef3fa2fc1dc156ef71076ba740882cb60873b718a2ac2bfa3b6a792e4aa75cf0ef3fa2fc1dc156ef71076ba740198e4881db3ad935ec51a772196302df943deb3a651833c973996ffb082188b26fb2881acee2f256c276ad2f6365a269f381adeba08ae4b236525b21789d67e55ba95511417ebecef59e8f548925709e0b099469b0224406290158aad1ffad78b4f0b58a20fd68347ccb827e7a62c688e3710572b97ff19ad48a07b186af2ec743c21b213b1fc167b642af992768ac2249680e57247ff539999d9060094342d7d00f4861f1eb15bace0e9f19d9975f52b2b2153e6dc7111717965332f337187220f803a24c94538a7f05049a0e848cc3d6c5617253f7e9b3d5381cba4c898bbd175e984c0c7bd073f037b0aaa6df4d8aadacb6f1b8898484a567b5e70f5a5837c9aef9d40b86c56d54db8d1c6b229322d74b3f761c31809dd8a76cb9d1a9800821cb011018b58c87f2c824e08085d24f9379244bcde6fbb6b46da2f6431540c7c27282fd2ae5688be2831fd6c76aaffb7a7577026de0fd2bb8d41326dacb2e7aa6bbfb8ecb911d13581f7713391f8c0ceea1edd41537fdb300bbb4d62dd72e9bba0998b7a6a1b2fc45f847dbea1d2f9dc889104832b0042b5ebe335e677efd30094a6a62abf390c3376e5ed6515082bbcd70c2a6cb335a9f0378a1222d08f7d25bc47b4bc6d60577ca938da25b3ae68271de889b383b4cfbac55d8e41d47639097d18ce1d42da357521f5af5803816d3c4bade38950f69cff512a236f763585be4de892443028c3f230ab37e0c658f5bd0246b07147005580c2904b733ecf4fc3624859618c952810487e41736753cf32f4570dc6248fda1091771f56019a3f96e4ceb607215ff447544cb0d785493e1e855852f874af7c67d8e8afe859f539547112543abe89682d8ccd47e7fedb25447a4c5133f8db313772ab6ed87729371b91e1c1c38b7150cbc174a2f0c06bd1d60a411222d09e21927254b7a861039481fe0a36192ef7643adb06b14979e006c17834874e7df605d915e549e3025e8ae832d96c16368e74f1615d025cc296472cff2507b0f0824959ef98f86fd677637a6bbfb8ecb911d13581f7713391f8c0ceea1edd41537fdb300bbb4d62dd72e9b4fd472cf3011f3f9d3b072eac5592b4c58c7895ed2c41763590258ee8551ef7a78099b6154509ce59732b68a909ef7dc465724f68b184383ce2400642e6501d508255f32eea017d306e286d9e6db090a05d26f0088719b122209819b6f73396d175e984c0c7bd073f037b0aaa6df4d8aadacb6f1b8898484a567b5e70f5a5837972de213c408d10c381f44fec786787844141c7590506e001452e8e25f262be8a6bbfb8ecb911d13581f7713391f8c0ceea1edd41537fdb300bbb4d62dd72e9b73cdabebfb92b4eaf6b8af8442953da1041fa8141a0513279b8df215879d424621cb011018b58c87f2c824e08085d24f9379244bcde6fbb6b46da2f6431540c70bee94ba2d980eac331c16af1f6ea7583260dad3e592e5a263209aab26c821a99c791c1d3e049680311525f04f83c5723a3a4070a9c841c20d7f81e5b897eb5c3abf78b5deddbd2e98eb8d2194e94a3e960ed413b36ca03f52e9ef2ae9f7dca7798aae7206b2a921c09f0754f215d0d809180f08413f87d77f82908eda01968cfcaf5430e2cd52642d9e470d28605713a7820b01d0b0119066daceec1b73e426069731c30b8e35c0e62e28fc43463f19f514afe86fa65bb1fad29574a3a3cb3bb7f5e7b0da4ee72ad65d0c6ef765037c7a26518b1558f32e7b06ecc1a26490d543c54096c3a8f83e1c3461f6fbbb110ed26a913f8cfeec5ed117257cd776f464d0db5b8fc6e45a2139721b806f1e01199c7754c68d262c2264a8e333791fa90b9af63db46e8b76f28aaa4abb86b3dbc35c82e31f94eafeea5784a7669cc429821274341e8132110bb9797f33f733800277e6f1ac8c690ba9df6385944236aca16c4add09ca1dadb04fec0cfe23818ca7cbcd9d32e4f04fe63813ea520d9bf401c8a8b1c618b693f0473338ef78315f7dc3462b0c3bc33c0b6024f72d6c10c4e7c807ff5789d9236766419d5da5e6e2b07229a255f3bb5746169d3e1b00ddfc6aade5a5ccf2480560b9638148842270d01b9fba615a1645803e05bfac94c9f46b7ea4e03bc24630d2ce308498959d856506503097b8ff85294b741d38069b33097b0907453745ef5721d89c77fc1c48503474260b458f24127e1b3f0bfe11dbc3d643dbeb4125c5511acfbf917cc8141cceb06e76e4f0fef30adf25ff1b12863a72b4a13b865a333dcf9b94a3c88d25800227d5b0afecef97980b685f9d85049501eaea73444519136a6572c2eb6ea958d0d38f3223c6805b91ff4464b61a3983b89d53697530bb18933de6e01d98d72e7a39de2d946e5bfaeb38de7340f083a902de30424d9642545e1cdb566b895c61fc537ad4e11f309d225344824cb61ed42edfc5c30da21615a6b7163097d49301fb6ee70792d5dd74f9c5fc47d85e4dbef1e732a7567e3ee4eb0b1ce4d5f99737532622e77a365e8773ae3273264868cedc029f6e776f414660996c23d3522deca07327e8b1d397aca00eb4b06f8fce3fa3d752a7bd753e36a2dbfd537621a4902794af4d614626325a5e6d850baa967acbe2fb6df9a317ce17c2765b2265af94fc55c9e4d266169adaf756473008b6e446598fb15155dfef47686b54ddd4fc61db04ea2490528684175e9d3435ab12fe9366ebeb202c8c224b5b785fc5d7e09d4c40b877f9d27f195a894caad57f383fa19d87acb8957d4e18d2ecaad4a70d0908528a046850712b7d2193f94792848495fae33b33f1e9a4eb8610540f4184502c51360c296f28bd97553bf1dc44c5bb24d0c49d5e92d40d72ba8a721284e4a383a486a48ed3f3b772fb8ef578edef1f0ae9573ffda2ea4da86c02e1c11b3f8cd6f577e8f4f1cec54d5a04625cd7a457ddb9c219a0b46c0b5d41b5cd5f8bc664b33d9824773c955d3ccdba066bd4e630abe3488e156e7a860f84f79e78d0b09f6d5627ba469304de3c5042d0c3e878ec87a88512cf122e3e4a88e0d3ef779d0f3b7be91dc8408a02ba63472aa58f7fda54e58d114d57f056bf90cb4bc9b54db2d7104248aabd317954c668077d1657364fc915133757cd5c2ad758dd1deb574ed7f95c37c1b0a5ab099687f1439a3ec8f3443420e464473d2271a09cb22864525ed92e4eaf1ca972a865a7b3bdfabb923fdcfba2d740fbde069695b979c5ea874fe44b2c1798942deb2e91c24a4e75d6fbb7e76df1b65befbe724a6b33274e2c0128e4772d0215a36a2f589ac9b45f13d3c3e0a8a3360c02c07a0fbfb6c1cd0613ff0782018900ff2000b805c68d2ff69a3d09ef879b5435cf0b6e910de4ab94827ff7d618087c9a62ccc91473d08c4b5db02badbe1f2c9e1a07eb44947b81cf20e01db6e79f116c0284f59f4f0ecb5f9117453204628442809d951b1432f941f776f944328a3cf4335cfe5e8142c4e363a5fa620a031bd89779b7ce19e055bec495d5e72bf1d24bdd811b80469d1551aa11df94289e2e84623511c4d46f5f0b58ae0af831bae0b396019cfea86d3ebd082b60c5314086fb2b8668587f6818e6a6a6783e1a54cc7f3a43239c102e567611f5843d17caf7fc134881d94a2bce6bb3a1febfee646ffd0cf98bbeeb68d0e58131e73494a1371f4d173aa5ca53eb3733b198fe48b1b39279cd0ddfb03590db793bb12817267238f230b36b020c1227e76e71a6830baba170878a44f70dce4f6c573f45c63df49a72f71d3553495e525faee06aedcf86d09c0b195d9201297b8b899b53c8e3c2201d27d2eaee0a900e107c86379d1fe74d161ac89aacda75984a33114001d531b601d932959d05b8ec17a31f9d541a9a7670b1580967e04517aad11875a134606bec01c6b06a956d6cdbaf5e661f05d4d6e8659ceae44a0618f36c06011731342f56f139cb2dc13fb7377a5ca76053e25e201eac9d7f348364a027e4f2e2ad3aff90f82849872f07b31bc1a0370164bbf5f6370e2e9f1176cf2cbbcb94c168f5c88cc677715a57e2d1e8adb9e9c75e5ca539b5aee06047cda577f069ab2042dcfb4a0391cc37ed702c23c9b77edc1f50cc859c5fa86be7c6c0cefbe40302e21228689a46e89918fc129e9baf571eb115d2b4717fbf00ae77093052cf58c95b5ec36671ee9e13c9aa598caa4c5794ee7588e5760750dfea06eb5ff7cb373834e083fb6abbbb8f7b32ffe4e814b4619bb1ab12db352e37b6a98dc9980e5ff85c23fcc04bb3a4604453a0109a66a09ab4097f4acb732d487f6b15d6d0b87d77619ec3f6d67460984e588687071cb02e4a4b746bd7405be1e655ec0de64a3c875c46cdbfc08aa2c915e5ba6f6e40961605dd840ac2d80d95414bae8dcabfa9ee4172c5a8e97bd82b8faadb7e790353e1cb9b9a05c05717690bc382cbbbe38878ab88707a889b9c4a90ee3e8a1413dacb31ea467899c46e096c86d9840282ced7520a9c5fdbdc4a98164690e3fcd1acc6dfcb049d9a669ad4a70c6ad3254e8174e0d90c33b6f22cd3462e0691eae840d2a2b85d2e7446708b92f485e8d2b6170049da06c710b873ad6f79072f94b96800c71ad8a079695c72217b40489bc96d1116a30f307df03858b93b9771b444ade53cd13799995d5883f92528a1d3de269327678d81f59ea754b48fac3f1e634d6df20db84e1bb844577868a402f2aa0e6ddc6c1c96a781890237be3905cfb1f86b3dd7879ec42fbff62ddf28c177a8be4d5c325db9c8357907b046bcf3160fe998192c81da2b3b756cc31ed7b96e688d667631f55c2373c8b82b13a535db30231def9f9feab8ce5196e04d96766b3086d3b98ede72cd5c9f98eca908fd9a72410b2679a0c6aa2e9e39c2543098ca9b069d126dee02241b449754a110ddeb06011501741b2c0da718c417b7c907ad418102a9060278d1e79a430b95eb5cd3dd7b571586a47db5155b7f2bb02f58f5709d1fe760c0fffbb8a2bf39e1f6c1bdf3d36d324a179c52686faa549f47c1e4b25ee809a4147cef51637234d4d360bd5e989f46f2cc8be591e04a0fadb43e90a363e5f39e958b73481dd03695193b8c8bc6894b7afe4591d33b4a695646e51a488ceb485870c49565aaed29eaa58c803824c2b11b6f7b1ee1ea5d13d71a4ebd19a61544600d39573978ef33af969ce6c7a740019ad29fb4d299511b10244daa59567c172e56fff0d90147d407a460cd21f6b2c704ab683cbbf569b98445f5ebaabb2b1362cb112f7abc40bbb0894dc84ea49ad6aab9b6f8d6b9cd3389583eee62ff3db418635fbb1b0157116e1f44c32ddeb1b2bf6d156eba35a24ec955e689e4eb4404c3e58229b4fb7b93eef39e2c5deaf757ed813023c20dd3eb09d4c775711a1f4d8a8821323d401375da9642bf6514c0970709bc77d3fe9622cb06db37b592c25a067e6c69f8c94d032392663a5cbe58b4ebfe74e46858252214c40a2599bdb395c4fc8094ae4b92920bc54e5b84e89c5a9a2cadacf59be0dc153aafed476687acaa1bc254095b3df4d8e6542980c32f07e65d343bd49a1a76c09f5a9daf649a796590d12c564846a5627aa321eacc100404851a44da8c4595ec28cc1b93ce6b2fc998ff6b663ae00525a7553130d94cdc9625754b8d5170b945271f6f322520e1ca1ed6f4cdc3c2bd472d59ab741e0e3edb3883f12b8a93e2bf2bbfb997c6d1af30f2b996eb7b8b6ed811aff39c252b83393475bd8e5d33ce95332c79fe801a5f972461bb6055d4a3241579d1c2c9a7f5fc82f4e7aa9fd0e3865b504566e27eabc396033090ea3eb8f4c46f4cbe09b3315aeb9937cc89ec36b0d40cf9dd544e740aa467dde13541ad10c942600518cc436b1f5562bdf1be54a7d8ea952da312fbc0a138f7093f9d98bde6c2864fb833eb5a2c8dbd336854a535bfa21d8015a43af7eac4cfc71db6c6012b60c4afef3329d0dc2053b244322a646de9bcf447c8482870d22f17077331bf9ebb8a3c0c8cdd3a85481148e31df0096661e8419302212753606551bf8e49bd801e9d110bd77b4b2006bb7c8340e8f7ace8ae2e77628f59d1dadd589ccd9235a53008cc43ff8a77b3925249b04b35a61af5d32f10b89479cfd28202f3a5dc91216fee0be038eef0c27b7a636c01f33b693ac433858a67c7eedf75b74d7a255a655733f59dd1be4419dc578d58eec509707c0275c863bd78715b62bc2b153270b24b942c5093eb0a3157b91a40a99adaa0163a150ca27235c84f6438f8471179f04b1c7cd53bcdf556d44bf0826474fbb8969ea96851f427582edaa35f8dbafadec2485f3d3242b223a1e6fbf09db082e1f094520fa122654ff1722f7580d851e5a5c35096211a7a2d63c0beceb5c96a48366d708dd66fdb696bf88e9dd28ff159c97908a856e487fa1d5f538aceb22470dcedc161311ed31a58f0108faa3e5a09efff9928d7672028c672c8fbb4b5b446922e49be8743f06c4b150a1fce409a53028fca4805e85a19be0f982d246d1ca33a50412576808262534768f1803492fbef19106a0ed3a09f82669d4e92223797a0c300c93ef17f6820ad8afdca92dfac738065cfe707ec7244043a99ee445ff02d7b93748b2103b5ff3f5c61e86328c4cea68c265356b11da18a9e4a1d169033fed4fbd207160bccdd82b270cefb483e3866a07fbe06a3100c0dd615f75e35f6dfdbf80e4bdb71134bc10353b6157335da0587d38779ee8a3b746f83a63030ccac681949bb4e71938dbceeaeba4922721855d77e1d63c5c5b11b70b8161b2d096d573bae1cd40b58403adad689c9c3dbe9331b2d4a046c4fe22d2849f05307cd5eda1549257d26d90d2d205f72baf9ef3c2aeedad7f1b08bafffed4646e1785f1220af19084b38dc0baa0a5260df9ae11e73c29a4a433ca6f295e46fd2a58d496ee5a87c7c687d533c49049a189528a197862064343ee56654bd86448d6ff88e5d24db74455f718aaef619281720964b7184bf9a6ca599b98c32d427291b5083a2593bd5d72e862bfc7d5c3f7d118b984033875f8d93bba94bd68625d9e2c249cc06a72bc90b0b6bb3dfdada363da0931a766676c77d42ddb83ff21b3f8b7629348b6fea3133ece8f19fd24bc4bf85cca8d12e6adf8c91ab2982cb36fe54e9920809e7011c2864d118271342ec48275bf9106474e0b276f2bd36cda005de19c3786dec3858ec95e266d5b71d990dca911c47b7576ccdd4623d0de3033b49fdce7bdecc7e4967dee4e1a2acfdeea55bc8515496b947a98309ba418ad8ea33ac15c7fe6fd25c1984823d905ce7a72eb1f5a8e80c79ec324b1c51cf6bb26ee59caf252eaf2dad82b16ea75d97764ccd6014d345766be5784b67b2ca3a45457dbcab8d44be79f6253bfd3180f087415c53d5cb9d2ca665a3030ba09897503bbd20815a678707009de9374398d25b20e7b24838987c18405341dbb2b5a7fe0f3bd2a10150e25026037b0abbdf4f94bca13ff022c24d7af19fd37061569756017519e78a672885b2041461f85b5cf2988c9fc09dc6868ab9df865484f9c873e4b4675944f6e6199b4e493281bea8747ed979d5ec2637b5d2cb9d418441cd9495dbb0d2b8d624407ef24026f267e96615b666001352077da66479109793d2e217eb52b4ea5946871cb24c521b7947e587a3dceef06f1a26c773a3b442dff87d99d291dc391c740d75e61d2c6c195962d449a1add3d0f360895d70436610518cf6952628eeebc168c6645187e1915a64998d7b79fdd66371c161efc01c4d02f916a0050edfc4ab627a3a005dcf2c9eaffd996ac0982ce18ad5e135ef39dc65c0d69495984d5d8ed95b9cf6750cd3b0ee046dc018d0fa41b391521d23b854a10884abd6967b20f99cb0c19b75b6c84c78f9e75c381dea9b8a2b5264019b2fd0f6d737872f0bce2decb119d7440a408127c46ef60368a18b342c583f176612f58bbff4cc5014489b8e79dcfc6b1b7222ffa83fe458fe1d5d785f430b7c2c863a1fd522e7133dd55b5e9c7428026370098b9afd67c64921ce78b7c6f193fe8612da3120de00a2d4cfdb9b174b45f1b619a8cd19e5e4b97508f5218ebed3bd7aec420cce393d2c55727b030963ab728e9228ecaebab7ecff8186dea480b49b959a649160b1a8f0f1807fa24142e0990db44fd734b755edfdce78bf655b19096f00be31840e6703d25202b5127a3c53347d2bcce28ee47ad72e542d45629b5e23c4beaf46064d2515e665e0c81f2555f9b19e72cff8e9344e7f2ba25a77d9b87a5c9f58bf051089bef257c721ce64ae236c28ec6725c35e3b819c96ea206a9ce65c956769ceeb88c2ddf2d13e5b644cc0bebb4592fc1b2190bcf30b0e7560aee514e770e371ff4e35855d574cf7609a93a4f747616efa6b8a6f5a6bafb6b28a73dd838377b295dfa2bb637db4f575a95d80381e2b757fff1747222b28a8c8eeb28ad08478e3b65b1be0e69b290b47859078dc0223892c32777ad4ea92934f61f42ebe545c0adce9738f6396d6e73d8fa259dc01a349718c6291d41dddcc93ece56c863353aab29ba1a314e889139897f88bd64535fdd19d12557fadcb274ab0f3ae782bd3bc400b42fd6a5ca853c78e71e81dab55dc337dc9e11ff48f2826d0c644ede44041ca5d052f6d96cab519ee55d8ec941fa0dc10fe344ca24c6ba2769831ccdb466b2b5d052f6d96cab519ee55d8ec941fa0dc10fe344ca24c6ba2769831ccdb466b2b5d052f6d96cab519ee55d8ec941fa0dc10fe344ca24c6ba2769831ccdb466b2b21e16dfe631140a89be506dc9e63944300c1ab015cfc0fff1bc24ddbe9a5625e21e16dfe631140a89be506dc9e63944300c1ab015cfc0fff1bc24ddbe9a5625e21e16dfe631140a89be506dc9e63944300c1ab015cfc0fff1bc24ddbe9a5625e5ff14b07c254144d1cb97691cf9271e0cf9ed98f859204be11a49749a33e05ab5ff14b07c254144d1cb97691cf9271e0cf9ed98f859204be11a49749a33e05ab5ff14b07c254144d1cb97691cf9271e0cf9ed98f859204be11a49749a33e05abcc5c3214b0d4ab5f8ec0fd1d860fa178356078b9e09742ceed02a827062e5dcbcc5c3214b0d4ab5f8ec0fd1d860fa178356078b9e09742ceed02a827062e5dcbcc5c3214b0d4ab5f8ec0fd1d860fa178356078b9e09742ceed02a827062e5dcbe82598d4bfb28e92f2f6323226bb3d3b6c6793d6dd470ab3e649001f322eea8e8d0efbdd8f75e5874739247927762a19f96930723628060adbdb86922bdc276d25452d95bace5961797f3bc134f4fd2a1ad4bafc121794c467ed8a296686c96281b46c8691e5f38eb7bb657a7e9107a0416ad88bf141e0d1fc42bea3499d4ea3d17a7485ecceec917aeb26d8a8f81b15d63b115fd2e1420aa784e447d53cdb8c23294b14dc5e1a9028f679edfbb0c9f04e556997662fa827c278b1dc8a7acef30077c553ae28326ef59c06e3743a6ddf5e046d9482eb9becfa8e06ff5bd37e2e8e8c9f3f9cb2e5f8437d71de433d6d4591ed3798efad7179160fc7c55364e9a645dfffe1e238a1f3b4415239fba22b9dda57b660ced8594c1bce69fb9ae534c977828e96ce02141aa8bb6cb1264e47f5d1e74bc31d2466dfe6adc7bf0dfae16fbccf53fcd34551789105da747c60b0940e96a2209f52e0b698b6c112e485d7f0acdfb818d7a349c046cfd8d52fbc06892578a88ef9a171a7aded856b0387d0a610f52b26d8b238bfdccbdd7e60f343c33854db86221fe19897d41dbc755a6676f68933da6eccd49fe9a4c86d0e475152487499ad8773d17a33070739434112838be8f42061d87f1a3072108604201f49a7e1942f754a174fea856f2e4b98e3ab1619e39a392aaa84f796d035423569cbdb25f0610646d89322a84d0f4d26b3a30d5216ca5f84c64bd63fae69edc59341ff18d8b4b84e81107efaa29b19877dfacaabc9a81be207a31ec0bc8d8260567bb478bfd68d67ef7464a68c9f227b6981432933ba799009c7ae09e85027a9046878acf728effc63d7965eba4b29c7cbe8432933ba799009c7ae09e85027a9046878acf728effc63d7965eba4b29c7cbe8432933ba799009c7ae09e85027a9046878acf728effc63d7965eba4b29c7cbe8f7c96bc7c50cec0e0b6cf6140db9d5500c560bd9d57a407cab848976183fea50f7c96bc7c50cec0e0b6cf6140db9d5500c560bd9d57a407cab848976183fea50f7c96bc7c50cec0e0b6cf6140db9d5500c560bd9d57a407cab848976183fea506ec33f0bb5d196348c32265a35e5dabec2bef0e2215d586072993f88b13a155e6ec33f0bb5d196348c32265a35e5dabec2bef0e2215d586072993f88b13a155e6ec33f0bb5d196348c32265a35e5dabec2bef0e2215d586072993f88b13a155e7879299a86de5e7bda68136e07221d3aabecd775a7545911bc676a2bd106479a2d004fc894a5f080c84b96451a2553eae9c36b97b40b6be47b70be3807697473464523a8da669722328acdf05a6434e5a601d6b970adbb7a07dce8917421fa0e1ce7e4f76ea1ca631f8c7f6f111a79da0459abbdb3b7ffb75889016aa063f49b9c644cf9301063d9556bc9f6a15f32fd2f7077bedbfaa898cc0bba189abed9560cdd2f11108246a21a38c0803da64f7371693b6e20a7e2d766b056bd5bcc43d09f6ff59deff9a407d6d7f7f41759eef338bb6ebb5d3abae9180efe6c9589b34f5f06b5d05d9dc965ea27d229c87bc3c1a30b3da1451ae2d80c80b1dba0d3cb56220712cfdcb43c8f5d292b5226a036a0453f958379594d6a89b8c29fde14a4af7441da993ceb5cc9e9813855b42071025f5fde39f5d37b7b466b9bd85eb06ec232e7c81e22943c773d06dc7466c9d92d1c07a993563cb9f7928ef06f431dfe49377a1a38bb781f29d2c58296ce2d67925893594092f3b55d8b3038332ebb53635bcf1fbf4606c5ea0ab13bd0a95271ebc6bb30e8dcdd44592c575efff7ab819be018176ceda72da4521485d8143cfbf610179b33d90c4734eebc701f4122f2b279fb464618bfc96071929c4fee798f065106b1cd2d3692fcb6b8d1ef46b83b9e410c26b109ce9d32d35c0e4bc6dc92a7579910ce706939a056323de5801a7a87abcfa16526dd3d1f31954f88813928de507f4bf2911f30d08ff756d8b46baee54fce1d82a5a062eaff3ba90478641f671ce5da6f6ba7bdf49029df9eefca2f870171178ae901e108f56305aff7e36268a690bc49933a24b1aaa587fda00f4d3b7151dc8ebdca81804c959266b14122bf74e62cab773dd8e2f37b379aac1052663c27b4cdc7089ddb410ddb81a5ccf42662972e07dfc44fc429d3056af6dd128e480ac039362a15a7738ba76dffe807fd03fa29f7edaa8eb21ca0057c44a1ee8ca7f21a2c5226b7d35ccac23780ae535921353b54bf7d7e61f1ad9b021167ba6c10e37c432b4b93a7d257fbb890636fa7f6f376321cca47d5919ea5b6adc75d3858ba5f2c20d320c3f5390ff9778e03d341957bd37c5d3cf0c3327976979f2e01f19a80d1c7d5d758dcea82276e73150454212a5136b19c5fc2727786132ddafdd87f8d1367c93897805ee274c0e53ddbb0a46525aadb7dd32756fb85ad74e8b0fd3864c058e3cddf5ce304faa4f47e6aa8b70fe1672836fd8ed7d1681821800f0a1947e554a9aa27c99dc9a1b21bab0de325db6bd9a60e8823bb2112273bbce4a4f7a0185ebd1e6fc8cd79fbfd1bf5ff1c68fd7caa373b76ba98f86a80caa6af2343f94f6085c88acd1dc1000882c726fdebaaa14004e2b00a2d5c03e4f486470c9c665429a34dc1ec6832ff33d62ed05798ce0953dd681481b6330eb84a3c623100c0f9c80ee313ba939ba7870a6da629f55b3b6afc2ba2ba952706cb2bd934e9ea40815a00612f56b6534c812c10766ed9ba2fc497219737d1577ecc1ccbbbaa64d5312536a9db635df3b591992eee4d6e535169943d30ec5da07efc607401cfd723672e8205a30f93aa14e24ef5b0264c41db367b50cfa0b6fcb83d8819473772f8e0b1d195a925ea83650aa433b41fc60f47bebecfe4df029c13351a118316285baf776fd9abe7c58c629db7f5a9dd4c8fb6a5a9da4c0631437dfe0156d31663266778f115c4273bd59940d635b3c5779b39672d57b4e1847cb3a0718dc1fede78d1ae0cafe988ca047250e56bdd0c876b9183336ca2220824d4279f40fc3b1c911edaca8ea6cf925c80807eb8a52bdae00f29839bf79e3260df6f4924ab1c1f3d80c98c898903f66bd42b18e372b9b17fafdedee819421ae76cb36fbb231c1f3d80c98c898903f66bd42b18e372b9b17fafdedee819421ae76cb36fbb231c1f3d80c98c898903f66bd42b18e372b9b17fafdedee819421ae76cb36fbb235a05555a49dbe64e7f6fafc77dd9e23d82642099735e9129b07e194cc41b73255a05555a49dbe64e7f6fafc77dd9e23d82642099735e9129b07e194cc41b73255a05555a49dbe64e7f6fafc77dd9e23d82642099735e9129b07e194cc41b7325464dc1f61c08743902612eb4e348a854d52cbd7b2d5b50021acdfd2b355e40db45c27258468f790ee8597bc358b9026a4a94660e6c592a80f7547fc2ca0c0345464dc1f61c08743902612eb4e348a854d52cbd7b2d5b50021acdfd2b355e40db02bf18455f236d23d4e0b8efa0bc6eb93c98328e7bacb3bf862be9f82c5b74b202bf18455f236d23d4e0b8efa0bc6eb93c98328e7bacb3bf862be9f82c5b74b202bf18455f236d23d4e0b8efa0bc6eb93c98328e7bacb3bf862be9f82c5b74b23f7b7385ad601a84dda61ea13abc1c7e18f839a8271fd59880aab8960a8171f82d13d780ae87cbcc49fddeb4b0bc39091296db59a7af6919173e281f734ff0eb3f7b7385ad601a84dda61ea13abc1c7e18f839a8271fd59880aab8960a8171f881aba7ab33c53136199693768e6cff2129422c7b2da7174e746d159839985a367961249b8d6d096e21b522f0c33394f29225948ab721f403cd6b7e2f2d22223c81aba7ab33c53136199693768e6cff2129422c7b2da7174e746d159839985a36d3b384d50a9bbc2b84e12d37a66e19a7fd611ad4759be541f211c0b93ea29ebbedc9d9cb2b91565025207b1b3a75fb2172504e89d2a6cbdc0aa75530daf6feadbcf5bb6f8797a732c8fffde80919c910a0a79501b0c3841121ba70fd4784f0564f352291021ebcd6aeb5b58f9dec337e39c570efbf8c19690f952f25d0764e9e2bfdc0da82794f326d26b093e3044b9b11abaebf77fcc552006a883acd59ffb34f352291021ebcd6aeb5b58f9dec337e39c570efbf8c19690f952f25d0764e9efa4a67c3a98e4bfef2b97dd91eba6218f5e6eea30173c246104c36dae38b8799bf2bd54a23f0efd3bcd8aade652da0e78356b220a9189a296c818d5c92f8ceccfa4a67c3a98e4bfef2b97dd91eba6218f5e6eea30173c246104c36dae38b879952e02a94bdb9ae0ca765099d7a23e21d00acbc37c169e423d7ab6beb501c6f595377e9794445d7a6053097c4e3938aaef454f4c371c3d0aa9d1a1caae43e323152e02a94bdb9ae0ca765099d7a23e21d00acbc37c169e423d7ab6beb501c6f594469fc4cab54b2758318e62555528618ca7cff12d58b7e7881a236a927e201d0e5deb2d68ce17dd81feab1f9b1edb10c38cebbf865ae9c77d0ebf394d255dc444469fc4cab54b2758318e62555528618ca7cff12d58b7e7881a236a927e201d02a12bd5b68dbe0686a7f01141570da6bc358e11c89bb4ca3ca1e7b240495bd499d081388182355fd963b494a46c38c426bb211d2094b07955316e3589413b579bc7f21cd716d847a97a080168fd22d8b813366e094ad505a715c9427745112e8fe5e99745320acf4af396ab3b7235841dc7a141c0d86e2bb5cc3bad9340f4451f1bc9a1e54915ef3a1d14146146d1641eae9a41570aea4c426bea04b799ecc8d12703d47aee3172051e16e71f3795506a6dee59450e271e4e8fa17abfc646081b501d3a042de73bfe50862db437dd786b63aac59f8c5b0786c829cec626045d37cbfdb0bbec54fd7c16a4b4ef5e2eee30ec6f003b199e69cd7af551023649b2e7ca087edc9d9b2c56075a29169a9cf77f01da7de90fb364fda0a7a9821fce575ab386b317a06bad95c56f04f735853abe5c71fe611cf16a7bc728b36d4e34da191af09fbfb58263521c1c64e793ffb97ba36abf94b7a48fe046d47849fa496b1f9686415f0f3a768b5956b97995f3fa7c904b94b38e3c1f1ab442f4ca918a93b984b7715ffc1b578981bcbd2b887339619c4581f8facf9a8a259ef3af0233fa4f0e5fe17bc13ea1b4a99e6ffcc62bf3c92ab801211646f422ec199e68b898b48cf5613b9cb8369a0a3d3a3b2a5f5258ad1102df6822e2a7367a92a0f8dc7c9eabb3a7ccb8adc60317861bf79402f9a5ee0f1e35f81010f694effb86d78e5d9853b5c489ab565ba72bc273109e1bbab6eae940e5c67e84e01ed03794eb9f3a3ddd2f8f47f34d0eb887e2f9921d9dc4fec3ad8f5016eda3a2d6223c5a0cd2705bf726ef0be4292221ac2fc9a63175a55303be80056b2ac7f13bfe2bfcfd0eeaf8238e5e834cdd9622c2bcccc68aa8a29993efded755dd44499893fa3aadd2f6b6be800ce1338756971d9db568e1a804f84a720079b23d791bdb5056049ce86ae56723dad5223d042a1a13eb5c13bd2df698f25d03936f547651cc25d1beecb4e94aa433af1ee3efbf57c38e88e036a7393b56ae28744f6ab93d14eb1e527a27c26b34d31d2e3c349a6b90c727f0b0ce5561837395749e3b7f8ce0a9075dd1201f42f2a37492a063495fd3e8f26bda891940b1cd10b5739f945e396e4228c9d93a83454585a198ffea4f78c67d58d1ebe89a0be1107612058e25ed4cb37964f2a71e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85585c2fd96808786495dc6254da120d6814a31700c29b419b0cbcd8e4d86889565dbca9a068dcc8c2b6767877b5332d585130f31841d4e0aac3f58c447b79eecd1ab05fd924108d89baf7930613c23d5ac307cf17ab41b08ba096f14fa6a111d9cdc42f71ddb9289969f6895c6c906460eef3f84dc348a831e1381f8c94c89c6d671b0f37c6ee95d539931e93cd51951db6cf4b7857403067ebc85fe7626e97a946804502943a25ce6098851f6e4413e95c9eac5c3c0a548a6e3b1a2b47b489e999959c51d563e0f08ffb84d9fbc8bfaea0d7a441c9719131ade487114bb5566497cba7f222851158027c78296bf5dad5d42dce5c462b578b6805fcc0d53e9aabbb156c1469cd8bd9a3e8748a7ad92061a0d53f5f038703843ee27dcf336655fb1b756b0cf0cbbb3dca7219c7e9ba139f7dd8aae546ac13909a2c08c55d8656638ce2909421055dfd251fb73e3aa43ccb8dedcd9aa0ff40a9ef8a3835271b13944990d0f909270c2fc2c6838806231156f6c84bf6abb7c30b123802d9146b508f963ad19ad9722346f064d4fb789b477913a61cecf8b9b8ad7b383224bbdc4e94ed80f55ac66a2570c8a19d2b1dad7c057cf4c944d9c2f8adaf5bf6c8539881e136e1a7ad27262555d323321f76f2887b9a482b3c33dc7c92819cf7d950e0ed3a8b61ce17b00a1338fca815852eae64f7c819b9ed34a6f5c40ee189ff32312d8fc5dc42597f8398476b33e3d8bc4987659e356d67ddbef94f5847c73f8277e110b172a97207d979f7c3bd568e22878a981481ff2eac2f622bc4d7563ae506438edd6a79ca1afa50489ecb801acb32e3b0245d45b3494797dd9d5be8edaa7e8f85ac86fb360619e4114fd71ac6000909d6da367e11bdb9fd77ee83769f17079066db220bb27e2a4395dc131ccd7bf9fbad0f3de0bde4138f724042b339fcb05ec511cf93ad5d32bdc4ab545a70f4e5ff51036251c978dc1023e9b0346b8a673e6a13879632e778cb56dfc6df5b9d2f60c5e39c264338f6647f11568837f9d62e535ccaf100c30c14a66940e2ffd026d4646e166508e5d34d6f7238ff9b8efa2398c72c499ffaeaa980692e80f376f9c3e001527792d6011815201d5cfcf6a1c4cd2f3ec83160ce9c9b9dd813f9b5f7047d0d17665d533adb157c2c3bfec89f4611fcda8e99942797e32e09643d3c5102dd9261888cbe832a2d71792b55854eeb026b7f507e62cdab4a7876b5d6c0d7f7ff7289303c5349281e4a369207052e70af3884528c663a2c5bc5977c54655699389e6d31420d0e79ac6fccac835ee0b167e3636198f2e61362121c9f7adfbde802883c99e6b23977e4e0bbbbd042b3074214fe274b0ea5fe46ed86e7a60a9045e65bf777b31c8bcc6b9d445aa0dad8015e109717c2d426539f03ce33fb57037aeb5781ca3aadddbaae97d4e7f46e29452000916914b082bfe2a837f00bc8c9440ee014779131d6ad035d3c20085805b2708f1bce46556ff43645e932299187a821683171f734f5231cf696a68aa3c81e04754e018785efc750bbbafe910f4b4e4240995b5a2143a4341dc5c1bb73151c1d8b6013a0c4d8cf77918f82ef8c819ea7a4939582dcac2416757683094c72f9d74ee4c90b3e38f21c46787d33a153c6be9b2315e8d6713932f5f8c32e52250b6e6c337a7f092ff03d6341594b9250b1ec3e6d47af23fafc0a2c6a0a1175ff9395b7c371f54360f268521754635e89e0181dc07da4954f1d451a1a6784ff8dc05e2e31091f886b323f68e0339edc9ffce57775bb5dd1cd13f7d8ce06da0507e9257b255b9cc6eace31da334d60098f3e044860bd92d6b51f37be32408eff3f509ac41832660799177fac25b2063ea8c69f066d41d15e72bb36f01007422c0441e35a65fcb13bce7c3a0307fbf6b8746960e8ae77fd9bef636b6f3a306dc243b923ed43298d12533fb434db221b2e8b39497761171072c6eec12fe25f8881f68d559a65fcb13bce7c3a0307fbf6b8746960e8ae77fd9bef636b6f3a306dc243b923e787ab4a2616a161c76c734ae1b7c5aec1e9a5671c383f6a469f9cf57347beab3c35d467b152138688933067dc16ed00e4d102f7311b9369d150a6993e0a9c284787ab4a2616a161c76c734ae1b7c5aec1e9a5671c383f6a469f9cf57347beab339b1b3edb5ac6647d8e327c8bb3c9f02294a4107b8e37b71697b83e34132ce80a5a121351b1862eb935c79ee1ced5c87903231394eaa6ce75d3096167c7b2d4e39b1b3edb5ac6647d8e327c8bb3c9f02294a4107b8e37b71697b83e34132ce80e44f69a2fd3f6098d2ac78a2e38412a03bf51933c95e183ec88da4f873cd13bce99717dbb92d54e1355c86deafe767b7ce73a0a93d91fc729e1428555d46d0dae44f69a2fd3f6098d2ac78a2e38412a03bf51933c95e183ec88da4f873cd13bca1e871ee913db3c3cd19b21cb2b268d2dc1130f5933f1e9c40f5781084e1b690a1e871ee913db3c3cd19b21cb2b268d2dc1130f5933f1e9c40f5781084e1b690a1e871ee913db3c3cd19b21cb2b268d2dc1130f5933f1e9c40f5781084e1b69085e4e26965614847f7c004ab8cf99d98aa90f82b34a6377a219c484c88683cfc27d1cff80ab95628aadf71bcdf4ef3b98cab4c164d92c8238e476408199db66d9bc5f77ef675e849c672672912cc45e1610b85679f4c95196327fd0881dc8babc2094a4388cf274a6ebc02eff1620545304b2ff368059fc3f1c142b8cd15abab8fe5ce586d82cf92c2bde6b054af00049dbda726a549f709d1ad0a2364d600bf0eeaf28055f176f6da9a928ff632e57181fea92247b03afb89336940ded6b3e1f8500bf3a7b8d28597ae6b889bdbccbd1038c994bdc91205a083df77255dfe84870a72fe10b702ae773119f471d056ed4cd8306f21b8065b03341aebd3dc48a9aefcd4f99b5b61ae81f373e9ae1fac155b10c9c5ab3ea15cd487309ee16439ffcdfe07841a11e92ca870688662485d9715830662faf3a736a0a5f38b2918bf3c4f6463eed5c645ec1edfe7d1b9cebb85d654eaa83c1af1dfe078f9a55d15b702cdfe07841a11e92ca870688662485d9715830662faf3a736a0a5f38b2918bf3c3d928c4a62f21b5b25e2e6ef7fb28defc2b8b9f807a344e060abaa69e4526ba466277a3213692e2afda8073d55abc7f676fd7f2009f1ef48e33598c1ea0bf3503d928c4a62f21b5b25e2e6ef7fb28defc2b8b9f807a344e060abaa69e4526ba40b5a8743577303a3d43050aeaa281b6ed3c2e8e967087875c409f6b7638c1bf223f2f23de0b7bb39ad7ac9210552bfc46add5bcc74801b23eaf11343e3625b860b5a8743577303a3d43050aeaa281b6ed3c2e8e967087875c409f6b7638c1bf2c573b75ed37b78b40eb8bd43df333e6e0a9e56182e7a4e3b98edb4b0eb59cf088e194a755f2ff566b77fd64602cab5017f2007c9d778d0110b70a817f8ab0492c573b75ed37b78b40eb8bd43df333e6e0a9e56182e7a4e3b98edb4b0eb59cf082cbd0ca827e83144c45fb8bb3c61919c56a60e28eccf4d926f17bf42ca016b267e2fe2d473d21ec273426201adf009f96941518e4afeb905a046c1cdbf5ba08d2cbd0ca827e83144c45fb8bb3c61919c56a60e28eccf4d926f17bf42ca016b2636502410f72b50b923b847644701ba7ed8075b9e2fcf2aaa427d506baffeef3c31d18ea04d8e8bb0201983d34ef301fc929aa86d7b35a4808a820e3fe4099d71a58419197e4aed7ff908907fa5dfeb4804f345b47d9cce97ddd656ac10e0fa21a78b48f1db2fd6f47cad32700cfd11c91991052b37be1bd6699fa8128a42d81c0c7f9740104ed02202c27bf815fc287a4b2b0116073a419ce8340fa5050dd3f3a78b48f1db2fd6f47cad32700cfd11c91991052b37be1bd6699fa8128a42d81cedd273143fff3e8743258e3c72f2a60027734f07b0e1e6df348c1cce646137c8e9e0e2a5b3f7d5732268c0b98f2fe830ee794f8cbd84bc730f75cdfb53c632ff50ec6dd85e898d032f1079ce4fcbf37da72afd1f9d109c36fd9055e748a845c144d4171763aa185f7965ae51ddf45ae3350a49ed3d187fbb6af6356109b7f2f93442228a4936a5336d065c1c264767b79e3ec14ab2cbe49a720e6316af6ec9f344d4171763aa185f7965ae51ddf45ae3350a49ed3d187fbb6af6356109b7f2f9443b152b35ce6abffafb8c1d83fe03f60c4b8e328062fb71bf9dd8832519b7e31b3d843c942731eab9fc7af2e77fd90a4ceece82ffe351aff7831d49a5bc6300443b152b35ce6abffafb8c1d83fe03f60c4b8e328062fb71bf9dd8832519b7e3901bc7eae4ad95cd8ca1b30f8a7da386dd6ebbfe133caee1449570fb327f0466ac2d774ae8591cc48e4c56c7e665a57c6d38143bcd2c6e0550d4e764fe3aaa0c901bc7eae4ad95cd8ca1b30f8a7da386dd6ebbfe133caee1449570fb327f04668adf3d7f67b83b0eb473e070655421b57627b820e42119886db4345d665b087e19924c427e33c86284ef2a41f76ab6937ab36f12e3d1ef4e617cdbf616a8fc12555ffc6a817da1f66e75545cad174aa96ec0ecf7a47145760e62f2fe0004ed10d77d05cea8a58266c831522ea230300068f0efe734ad07dee4e0cf3cf0e014c4be1927e654180fcf6d84257be161fe6fa59796774e862c89b6b78adb656738f30f8cf59c74fa4abb8d59f56d03878e29e62554f1c5e34b3e799f5f68e55e73dc079acd395f0bc2364bd3c521f19a2e821faed3361a19681d7e7177e3068453758e60a6e35d6aaa03731b97b8f3af8977beb0d568ce41a057f9abc42e171264b7f9304f77efa894b86b2650b55ff7421feddba93374a3cd9f9db3c2f68590a0e923d031ef03ec40bef75133864328490939370baa949c2224a2719bccc4a05980974c1b45d7b109a97ba99ab5cc6a5173d85a931a80adb9952837f24d92ae13f51e187c9a9e0da993bd129eb8c3d188966814075ff19fe949a56e0e253245f345e224fab88730bffbe27f9d920d5d4faeb6bfe4b5fa5e0ed69e8658104109cf9e1460673e9b73b327a7a09a622ab740ba3ca1d644a96d01a88e776b434dfcdbb9003895bef6e2d6d0c8060326677a857ddbab1dfc31a4b36ff51a543a64a3b8fe14b6cbd0279ffb1ac95b7ccccd6572487b4308ff210bafe2412e28affb50c3b3726bb72819ddedb26a22d777f36e93e56f1833642735722faa1c61aef2d5c913ae27000f1ca2805d608578c337c9d358b25e22bfa458adb1f1e37bd2cde3de9e4d5c1bbd7f3d7f7646dbef56d931711ed166709a49a06d921d8a80e7dd1224ef8ef35e96a38739563384e48ebd3ff7472dd6d7528d85c2cfc09e094e20bf19432abd5b8f57109a4bb1682b7b81bc49796e052d6a4aa72661f9c7c46f2e5e1b50c94ea58f385415a44b713a0dcbf8e7ef36b5ed59f8575e692811a92f17ec8ae85f73c8c09e940159b2ef77b80cf019a1da27948e3695a1fe372b0cbbd324dd06892fceadf5b3e510505ce7a9ac7d11627af73657123e73fe6dddec3b7bb49b60a15f2a06a860753cee9e47d7551cc4e35e4f04d2744b9169893c48dfaf652afe949be1a73df15d149bfaf6dfa7339c33be6779145b7a245bc523104367eca3d22fb659de52f1af365e4a16ad3758bee85c87b8617798ef0d1d37b7fe5d502bdc6ad73574e08afe80b10134adaa58b8cd337f40a56ed039d720a848164ea7039acb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3cd632fb9ecf5551113f97823cc324efe3a188ebb5c2c467388d93bc6d6b58db9cd632fb9ecf5551113f97823cc324efe3a188ebb5c2c467388d93bc6d6b58db9cd632fb9ecf5551113f97823cc324efe3a188ebb5c2c467388d93bc6d6b58db9c911d82647645ecdce339013301c55b37828a165084239d366e88d1af0b9f9fe0911d82647645ecdce339013301c55b37828a165084239d366e88d1af0b9f9fe0911d82647645ecdce339013301c55b37828a165084239d366e88d1af0b9f9fe01ec40cf9dd0af9a951ade8916b8497fe3914793a1bec5bbaa0b860b7402c6ed31ec40cf9dd0af9a951ade8916b8497fe3914793a1bec5bbaa0b860b7402c6ed31ec40cf9dd0af9a951ade8916b8497fe3914793a1bec5bbaa0b860b7402c6ed301f0c59c11f51b723d71592777d95fe6c9859b09b8eaced8a7711c862badc80a01f0c59c11f51b723d71592777d95fe6c9859b09b8eaced8a7711c862badc80a01f0c59c11f51b723d71592777d95fe6c9859b09b8eaced8a7711c862badc80a853c2c7ea59e65aaefc0f6da8460a198524981dfcfb22611880c316e89729df3853c2c7ea59e65aaefc0f6da8460a198524981dfcfb22611880c316e89729df3853c2c7ea59e65aaefc0f6da8460a198524981dfcfb22611880c316e89729df340239a3e0d7286fdd6011c539d446e3d763944c574a11a94c9062423f1df16c440239a3e0d7286fdd6011c539d446e3d763944c574a11a94c9062423f1df16c440239a3e0d7286fdd6011c539d446e3d763944c574a11a94c9062423f1df16c41486d7e6748438e2cc60ae7649e4f39bcb71d3848bea8af814d7a85495b01930e5c4cd9037b41fb88e3eb83040cec01b08ff2c925164cdd712da2759efbeb5491486d7e6748438e2cc60ae7649e4f39bcb71d3848bea8af814d7a85495b01930e1e0479801035c87e190a765424960e85fd69e20edab0bc4ac915dbd85ac5fb0e1e0479801035c87e190a765424960e85fd69e20edab0bc4ac915dbd85ac5fb0e1e0479801035c87e190a765424960e85fd69e20edab0bc4ac915dbd85ac5fb0a3940da50d8c5a8f9c2595d0fd22b8ca1531cbdace6c01c323dd5d8684fe05aca3940da50d8c5a8f9c2595d0fd22b8ca1531cbdace6c01c323dd5d8684fe05aca3940da50d8c5a8f9c2595d0fd22b8ca1531cbdace6c01c323dd5d8684fe05ac3578b7f5e90571fe9248d87c12ab8a9a11bd53661ff034f41042eac3feb049aa270c213fae154325cc7afb32af25d4b58bd21d891582d45e745428e45aea6a353578b7f5e90571fe9248d87c12ab8a9a11bd53661ff034f41042eac3feb049aaa236345559ff8ff5898fbf3d347bebede83e041e14c2390886d483a1c1830341d7ca823562e121fb4ec5d060cd556db883b5186f70a88ac63e301fae840a9300a236345559ff8ff5898fbf3d347bebede83e041e14c2390886d483a1c18303411847fa11b5a959a653263288bf055b8babbe8168a90924bd2f7a2d616d2805641847fa11b5a959a653263288bf055b8babbe8168a90924bd2f7a2d616d2805641847fa11b5a959a653263288bf055b8babbe8168a90924bd2f7a2d616d280564d711e2bf9887a048dcd7eb9f06a3f449184cba3e0302b810ea5f91907998a1ed7344aeee37c339d8d60658c0ba742c6dfe06d5a44643791c1e20f6b0e6a85223d711e2bf9887a048dcd7eb9f06a3f449184cba3e0302b810ea5f91907998a1ed4d7d6c79813a6ab82284a58816fd83a53a3c2cc69da51de062a7b269871c3a97e4ebdb32a7e3b381feb278321985979c6fdf8c75c1d7214abe1f24b5f4bcc2ba4d7d6c79813a6ab82284a58816fd83a53a3c2cc69da51de062a7b269871c3a97b037077e40becb137fe51300c47e7e1b4d635e70756d6d07b94289fbf0494cab8ef47bdf8320a8c6c0b5b32b8fa39ebe8b9e6c1ebbbc0d2339959176a53de271b037077e40becb137fe51300c47e7e1b4d635e70756d6d07b94289fbf0494cab04f71e1c0aa27f1d4c348ea06f6d81a5c0766636862fbaf78d08a4fc67aff3e504f71e1c0aa27f1d4c348ea06f6d81a5c0766636862fbaf78d08a4fc67aff3e504f71e1c0aa27f1d4c348ea06f6d81a5c0766636862fbaf78d08a4fc67aff3e57cc83ca73eff1638d73b356864cf4a6b0f83bb40b5c3d888b4be1c9d054c066584f2754b420c4e379c14631ffd7d9f61417985eb8e41d549063a9ee582faf6e27cc83ca73eff1638d73b356864cf4a6b0f83bb40b5c3d888b4be1c9d054c0665056fa0be0016c5de6d882303608caabe7e118a4a65fbc209d37b06e50d99416f056fa0be0016c5de6d882303608caabe7e118a4a65fbc209d37b06e50d99416f056fa0be0016c5de6d882303608caabe7e118a4a65fbc209d37b06e50d99416f08adea5e031e6f08aa80e9cdf2994f3731158787aaac530758e534147104e4ede031ec799e967dcd1b57155ee96542f09e2396b4cf5e0d7eb8f595e36e113e3d08adea5e031e6f08aa80e9cdf2994f3731158787aaac530758e534147104e4edfe8aa82a79dbe8f257b8854942a98bc4e5edffd2fc6dfd0a068722057d4faf071f32cf1cd100edfee651ee160e518a9fa4c7406f28e9c78edc41b8ba1ab8186efe8aa82a79dbe8f257b8854942a98bc4e5edffd2fc6dfd0a068722057d4faf079a0aeb01c85cfec8192eeee243e4553da90b4036633e114d235f695ed76bd5a79a0aeb01c85cfec8192eeee243e4553da90b4036633e114d235f695ed76bd5a79a0aeb01c85cfec8192eeee243e4553da90b4036633e114d235f695ed76bd5a738ea349c5ea47a9bcc042951ca96996ba28928ece09c6e078ce7eb6da4bf79d038ea349c5ea47a9bcc042951ca96996ba28928ece09c6e078ce7eb6da4bf79d038ea349c5ea47a9bcc042951ca96996ba28928ece09c6e078ce7eb6da4bf79d0b35d66530a64049bbd4e5678fcc04b53409b6b3c99f775e65bc1f24eb45c6086f458d2518d8eb1273cbdd1decf16e0d0b32103a13cec2ff0383190459c66bac2b35d66530a64049bbd4e5678fcc04b53409b6b3c99f775e65bc1f24eb45c60869518c280ce6c08c428b0b0209f70ed6da3498a7e071848afbf670f43b10ae122e0b5b00652dc2492700fd2ce906585902e872c26dfeae4ce78217da720c21a8b9518c280ce6c08c428b0b0209f70ed6da3498a7e071848afbf670f43b10ae122a9bceb9eb991a9e630be9bd608d9f49f7fcfec6f87cb755a7c1517337f37127aa9bceb9eb991a9e630be9bd608d9f49f7fcfec6f87cb755a7c1517337f37127aa9bceb9eb991a9e630be9bd608d9f49f7fcfec6f87cb755a7c1517337f37127a9fb5c49c6c5e39064569964181d4db62490b46bd2f0c382f332adcc4b5a96515b5d6e1f9b3e70a2f2144724a33ef08cdd9e90575325dc024227bec68477e56139fb5c49c6c5e39064569964181d4db62490b46bd2f0c382f332adcc4b5a965150ce981dd6d50e8c1637d8d93ae3a8e095138c7f9da4a7d5dd175c535487aded912f116b1fbc771a1fceefad6cf1a8e6585ef93cc6d5aa0322223b36ca8943ec30ce981dd6d50e8c1637d8d93ae3a8e095138c7f9da4a7d5dd175c535487aded92f07067b8a742ef5febc47c9f4689b79ddc066538d552f8022cf58f1b84b16aeda44091934e1b574785ba7b26bf1c3f6c07dce51f84c558900c3bccb10e035de2f07067b8a742ef5febc47c9f4689b79ddc066538d552f8022cf58f1b84b16ae506fa4226d7b5325c6369b5ce2880f77f5abefc1f91ca1d4015a7939496b61655f2dedb4e2d4072d3dc2010f0ad205bc327cde0e0a345a288f4cfb6cb0c79ec2506fa4226d7b5325c6369b5ce2880f77f5abefc1f91ca1d4015a7939496b6165ee5f8e657d93f94d79548b573cfe8f5f4a2c905c485cca53aa4ebcf6292472b3ed54dfa6505879ff600c692111f7386d141fb220518d100faae934658551c27cee5f8e657d93f94d79548b573cfe8f5f4a2c905c485cca53aa4ebcf6292472b3b8fc303d520c4c3a67a40cd6a79935b730c5778b70d56ff57fb36bdd3141d07ab8fc303d520c4c3a67a40cd6a79935b730c5778b70d56ff57fb36bdd3141d07ab8fc303d520c4c3a67a40cd6a79935b730c5778b70d56ff57fb36bdd3141d07aab7ec0e604314787eaef4d1fcc8d4f76050dc25b54ddc292f74cbe3fc7217a59ea9c63771396133d1d5d284d15c4b0cb39b16fd2787ec710822f4a47847613ebab7ec0e604314787eaef4d1fcc8d4f76050dc25b54ddc292f74cbe3fc7217a59618d39de7e8c2ef8b847c6927ff2b3b3401adf8ff9cafcaf52be707b8e7508efc688dad64e38231051208fb61420013dd25979e23fac2d7a6ba69e9519769336618d39de7e8c2ef8b847c6927ff2b3b3401adf8ff9cafcaf52be707b8e7508efa516b1584bde0c31e5ec82c5fe9aaa6fcfd9f6551964e3f87f0d92e04ec7692bbc211a1779ea6ab4bb80e14296b0365c6c9bbac9c040366a8c8754ace2232b03a1594721860e47e5c57d144a946b1370f717236442aefedabfbd11a42e12aefb8e654fc5b0c31fb390bb0de02b1235e4888e977d4e57bb0461795c3150a5694164da1f5da2f6405ae7973c7050a70eeb7785429a6583917538062f4cae244734315c48d29f37782a1ed7893dfe19c93b887fd972a5807f0625785931cf8c5a9a193185f658ac4d15f14a02b6e6e980cf55f73a2de7fc1295247e4af9ebae46b7b9b6bfffc859a610ca0686c1e6075968643f809699ef4ee24c41c2425c0440c0d1b00630e9c33a3e864b78f838653523803f2532a131bc47868d584d5069c439e4189d08a9cfcfa4478aadf3693769c762f448e16dc57a141566aa5c5e8c353cf66c21d72c6434bd6f86c691104b32bbdd94dd3fdd0b44d32bcd1a3b55adcffe11f203072774e6535aaf912de226a98c89b7dc73d7770dd25df048961e264e2db56093ebb00eff77d0eb23058d278ddbc38b91acf7d538ad5ebb1335de92af31984ed680f1a7b16cfe6c31e1afcd6747a1380c75dbec6306a68a9aade382a4aa1f9556c30bdc2b9165f0eb72085f2bb655ad83e83acb6c357df23e4c497039cc22cab91e4cd8f66da84ea4a067d73a9e1882bf1fd67565bacc18515edaaa461e4e34f246c901923658863b2a8082e712a3a60658516ea94dcc2580aaf59434fffa132444e5c6bc43ddac10b9a28524c8a342a5983723d7517101a7d7da70e272354c62452f7edad487917f0d2b6b22feaf098eed9d53ff0d494c3125894b91ec8a425322fc3a1602ed718ae8b258ae0304ec2188befcc2983961dfe805d4c1f2a21c1baec0401ccdd0dcac801ce8281ebf49c7938942b4be17c14503b950afb94acea8d0e737dd43e61d164b6850b896308e515f4023378f749b99cc3fe2a405dfbfc99ddd1a9de2a748167106f68970fd54fb138a754775a85028d89c276554beed661d0d14e71ebac10d154c78ed6c9317648b71d415428fda9143b81240bc231b23dfaae42fb7fe701af13f4a52efc80f75f1aa898160b88778ce4839ad15dd3fccc9881d56fba03377f93999b25f999cb60feed1b640ac8e4b26b1807db316bd27bf16f5b4f98d5e09c44a14f9b344a1a43a52454748ee33747000e3db5740d19d142f4663bb0c9862f9311a35a269d1cbb114a22d72963641745c8271d3a2a1c64e96d5fb8a37310c4c357daf4e34ac1b07565dee728757b917ceb7ad5a69f31dbca6226a796dc6152c086a12f5988a011f525b019431ed020b2feb54d101573cf95628d725c77a6ed2a2c5387469d978d57f9e118e771745bd9c432de3d96c515bd7f969e7d6cf5b1a8b590f4672770845ba258e00fa0fc7d6bd0d7a23d032eefc9bd22b594b700b5b7806f68a489dcb1b4f5ccd4976a6a9e3a07a2e325627fd5b9cf099d3765099518412fac8bdff680342c5ca711679b0969d4d4b27b94e1fc084457b9d35a6c6a7192faae4988a5ecaecfd853a15cfbeb3066622fffa336b354cb98b5e290f71d9565cc0c1fc26d603450c9b96a2ee2a927ff99ea692ab11a94aa6d14cff516d429864bc9110ed4b97194d362cde26db5916b51ce72f1d6f0ae52e8eefeac0135194bb1d0e67012d9e479a8be91ed19aa6d06361890efa58b6f2bd92a1d00cce0148c99b447c761b23d3406eadf2cfb84081df3641e082860d42d08e0fd819638564f902aa1ee292896e947d8826e100cef7bbe4430c6e478fa5426160386f9600cd7125290c92ee946b3cf86ae7bc2312e122729f19629eba12b18b8d487399bcc2305fba6f73e5aef8c122a0ef12e77c00331e488c6878874388278a566dc43757dd4f9f7589bd383edfb7d4508c912ec5c4bd0985af7379285b3787d61be4926d38fa188d7a7f11413398fd6364886208f4fd3f39239e1dad66f145524378ede642fa24ca37bf6310394fdbdf11f7d24c2263cad8ce0b30dc1fa4e66ed20fb70573af6e569380ef97dfa139b27c676c93342bd4098d4ac3a62534b0575366b8a38249435670559f0d6b5c6db49e3eb0b5235afe29eaa33e8fcf56fd95d06edb1f0216dd5ce1ca765b2d2a24200f3d0e6292c9b6ff935156d39755e7b3d8d2c2660210766a16362467f08726af2367650e2bad225441cb7a2d8b447bf9e683cf2864d6522b2df02b9e531e91750c7d5efa4683e7520854ce2cd8b86afac969153a66b882e52c49dce9a3fa080d896ea3d8093ee28a58cc8fa00447b65472082bb067ce46fc1a7dcfdcc15b8c65a85dce77635d5f42b99d51ce115aca48a4bc72161dfffd98fc961e9e7c3a71274874239ee513bd48d4d75bf74d0b8ff11f1c0a8441c40c12ec842be8628983fde02118c3904c6192322b600eebb1b9ea770a9a9288af045a9cab881773401d5c0919035c5a396e38858e4064be1586b07f872ce50398f63bc9b2fcaf1c7656f4c0cb84ad18164f7d45db5187ac95234c0d5579e88460ad0009017d745b8920139b32469f0d000d51d40c729d67c3a299fe8d4cc7a30a36aa7ca277a1bc04a26c51d46aab6dbd8743ca53563cd2ee6de73f9981e679143426c3479cd2f4b7173974f2bc9294051116b64f458b728e9a196ec3c5de15ab9913d5c3ac435ad775fdfeb921c500b852a1f02bbc21cbc15af780cdd2fc94f94e315c33f292088ab81a3eba297c2e12bed9445da00536bc0e1f6ec8eaa66b9512ec25149f6928383fde5662218f2347beefe742778a74154556f2b88f32890a5c069b27ba2916ac7e06b0b122fa548aa7ad22589c15df9f1d2b075e9b61c9e33a19309c9144be476f17bacd4d50c09a13348cf789ba6f68a05fea45163268c8fade2ddf7ed5b3e177255340554e4237fdf96ea1791c33c4ea8e4ae34034d989991485e21e6b56038f2f5c193f51c0ae1eb059ea31dfda3ebca19d929dd6f4c81eaac505fdfb7a55d69a66ea1ff7709375292504848c54bdbe0e6e79226ab16cb18df8bbcd064a8284002db3fb64ce0bb566bf4b4208edcfdae2d17512adff3a37ae43b033ba903a2fd4acc2affd05d9a0a7819ca0d5851ec76d954b07b825fa17c8fd9923c40648f1fb57f1fe58dfafd78b89321b6f70f7e9b5106140740f7c303b64c136aa56d5415f6008d5b21b33795a05ebfa6213aea5c4af520eb9ff4c08eb27b1aecc61c30e078e388d6fcaf05ae7a96c8c9347ca539ba06a38f1f6b8ad9011ba4f7da13bed82f22b8bff1ae6f04111e1e285e5041f10dc6d9d93420a397464828e023141cc28575b9599bbf7f2b0215a89b79d182aa100d82cae3b4e54ca7651878db766367fa92450ead9f6fd56a471dbc24540fc4d0e4477c175e291488f45e171d21356148be5ef1b1ccff452638d763f723194668330573087be350b89f14f67c926b131b62bb68ccc3a37b44e54fee90b81610b73d778ff1c5f498cef74389c1b7419132575c4485dea4c1d8cda5b9932e3473a3cb301dca072e123f43b12a7818b83d32719aa2fa928b9c1979cbe0d44ddd6ec73f3728510d66d9ad344e5363cd3a9375243d55edaa611a3d98bce404f570824f55405851adf12c86adda209e3e5b54ec2602174d078bf198abd1776985516063e74ebaf0f83f9a3b46dba40142720199f0f1d52e77f0bc7169f96efd5c11f5407c7f574b773351fda2ec9acebd57c24fa05f6539eb20a6ba0f7eed5d66abd69ebb8d6d85d38318662be81ceedbd3b38d4c4cf71d9f96a24b5edc36aa33a39f1b1b62cc2da4f3829457bd1b6714f8298cd04d0632a8c3b48ab1735f2d00b531cd44a7974d1c19f807b188ee06e9a7cd75735f1d54166363d87720b921ebb97f4e79104c091d5171615ce956b0d0aaba30207e7e7e334769c6f2f8a6df04405cd58b3b34d8562f0c29806a241061b1cd0ea50079fd1563034916d854f7f04c3189cd7d8e04177bca3c55bf1acdccf88beac501ff24239f4ccb4a06efff9e5dbfae19c28f2a1a20d46e4bcb8abca6138c6eb9012d6a0089562b226cdec47b6018475385fc3a77c9d034f2bd063f152bb66b7e37c9280ed5633aefb07de5ee9b98b2368c25c5821f7ed03ff5f25239486af03011ff65230faeecdbc4b5540452a923448cbd0e82e83d1fe151e821cbd7802a1c96d798710289c19ef6a6cd12df89c2e4040135c7b12d8248467ca5f78fd97d4bf9581eeffbb1032ba4a95b5a0162476bc222d2035e5dc01418226b318509c30ece2b8146fd78da6d5a5fa248c258e23e002ced98dec1c2156d4e544845303d5a0b60197aa51226489016155b9f6abe835aab6d164030e16b196963e313c1102c2c1c99d27571f4f8289ed698cbe67a0faa25787358b2f19fffc954e3f7071292588de67c0955a16c1d186f3e0ebb6d853a320b2f97cb5489ad9b4d08f80ddcb3ee3361073cf16b794951f8ac74c0a7005aee66f1676aba1dc8459d109bc1b365f6590c307f2c80955f805e83888880efffd59ea266ed1118ae8b634efbe77b725ec31f5b356e37fe90ab75d285fdd748c94e9e8d5f2bb176a90a396a3aa86f7080361e85392d5634eced139ab79e4c30564c40b87ff2028c45688eda613f1211c25170bfe2fc47fec6bf523ead12d62d177390ead2fa6fedd1ed85fbb2a433fcf0815a9c215a3012bb6a3d6c44c5c546720f03ba420dcf83e61ad1e8888018688c10a42506e3ff58680eff7ec488209b356781859604fd470cb8357009a9d0e66bb72af87d7cdbe2b1af1a206f7dedda8d3c06edc745abad30e1244e12f5e62bea5626cd6f02456f1c6fd8998ef72cf48600b3c2e91f20b3cde756f4dab417ea9cb461fbc3ca1a375c6631c04b219361d263ac4f77172fd375863c4530af0be4866047179749557d47dec4cfd586e0319cc55bf6a3d14f7a9afa000f37cf264ef91edf15adfae78a0262673be698e96d4b1c8a18ab68271a740f213d9e60516109d7315972849cd438da4328524d0b4177f96d51629619a49cb728e0bce04e515af89483caf039dc0a17216aecefdaa888ada6af7308162e8963d275036b3bf4bc8524732e208a98870a4de235dc87cf9a4875307b2e1908b3e153ec2a72405161bd20f06b028bc41bb2314ffc52968766e08511323332ec0683c59c84b0f0cd19216b896474e5f4257e7b6c52a66ff25e456a2f00d0ae1101b3b7adcf2909a339ee357dcb33964932aed80f19551e3bf5593d2b20bdb8c01d55e18860874ab320f4c10e06c760710bc3406919e3e613cd93003e8b6b19bdaee5cf979314911b8f699c78ae04dbf5f923ab31c41aea638bc3d85a83ce2865a59a31602b301875537ea9eb8c75eed467627fd3c0b899d57c79c6adb8469fa2922b25acea7fc88d9f580b1700849ffced3297179a94d9564f66c6c962661b7fcb21d2a33184f24703a8c49ad338b7e1a9d8ad97d79b061ade7f5a469cb2ea9aae01ff47e7099f6a5558a3df4e6afa562be3aac2dfafc4b60c04274d080e2e07ea2b206efdfffa8344af6c81b2018c36b3fe82930c2519a9da6e8fde3093187af0cdf0e7ef9966f42362634452b219558b7c32b9b1ea03512cd638cab4d59d049428abf6318b07eb33f1ba3b0c32ac91b93be67539e4926f4fc0675217d4fd583829670980303b59b14200819169ca124139afe89cc8eb7a6c3bb2abd85d8abdbb90f1b696dcfb09b305ff88e1dd8eb10ff8837b339686ae5aa2e0072a9de6abddf691b87dd415b56f395d8852b3c4180979edc64aa10d802a3a018956adc7e330605ef8b7e139c22515ed5205dadb45773301cab0d21a749f7df9eb1efe0042229bb8cc437ed15981fb8a14b363898397b3560390cd4fc58cecb26261fc3e32fa5c78f173871234afd299c960b6afc940e3a4f07e70d4e0b8a7c53b59188a3773e7e3608200576b8a0c423fae419be4e74da26d9b68502e250964a63c75b5c6dd2fe49dbf3810ef4dcb609d93a2663cf0e8aa927f968275690aa4fcc7d1d535d33a3d92b8dc6276a7dc9093f91a4bdf21a420a6382596fb986ab85e08b76f3a1da466b344cdb7ff46717d1d62a3a102f3551a7a30318711042c8690af6d9d685f005cd6d94111a9527ccf2e9f852af24469e0c3ce72d55fefcc6b33ab50f02ed1d39846e759b2288a972232f8a3a102f3551a7a30318711042c8690af6d9d685f005cd6d94111a9527ccf2e9f835da2f8226fc42ace380539af41cf3f1d03669da8cf144cc7f8b70088a0dc8c735da2f8226fc42ace380539af41cf3f1d03669da8cf144cc7f8b70088a0dc8c735da2f8226fc42ace380539af41cf3f1d03669da8cf144cc7f8b70088a0dc8c78dadc57973f698738d35ccebb53db553d3b16bb2fa47aef9033d6c1d33339fa98dadc57973f698738d35ccebb53db553d3b16bb2fa47aef9033d6c1d33339fa98dadc57973f698738d35ccebb53db553d3b16bb2fa47aef9033d6c1d33339fa922e356536bf4a13b7c15bd0558b1e0aa196d4d361c3370266f4280f3c633e67122e356536bf4a13b7c15bd0558b1e0aa196d4d361c3370266f4280f3c633e67122e356536bf4a13b7c15bd0558b1e0aa196d4d361c3370266f4280f3c633e6713d3b11b431ecac8e3dd4681267b39738527a16835df188a939ec2c0e3fa79fef3d3b11b431ecac8e3dd4681267b39738527a16835df188a939ec2c0e3fa79fef3d3b11b431ecac8e3dd4681267b39738527a16835df188a939ec2c0e3fa79fef5a488faff8b611c40bc274a723c32078ccd00c8e8b102123fa463ab82c1840885a488faff8b611c40bc274a723c32078ccd00c8e8b102123fa463ab82c1840885a488faff8b611c40bc274a723c32078ccd00c8e8b102123fa463ab82c184088638c877a55de88c42c47922d1755c12d6cbbb9ce5e1b6be3f6324e63f6ebdf77638c877a55de88c42c47922d1755c12d6cbbb9ce5e1b6be3f6324e63f6ebdf77638c877a55de88c42c47922d1755c12d6cbbb9ce5e1b6be3f6324e63f6ebdf775caebc1b8e4dc2fafa5e4109fec592e7b236db6d642bcdbef34d8883bdb98ede2127224d14137dc1c692721e08df1c6fb94d9bf1a4faccafd6fe6e58827ae17c532317c35420c5a45b17ad515b5bf6028234a7ca31fb7f14d16634755f98adcd4027670ef8474d27ecf7f561bd2862e11955016432afbbee979a3ce08614e705ecc190cebdbf84d4256a896d9a8c0a1377572aea52d5fd8c2b5dbf193fd94d424027670ef8474d27ecf7f561bd2862e11955016432afbbee979a3ce08614e70562ca9352669d9212bd18a3b89d664a47a5d6c5b0b9dc81845079b893110ffcf448b8a9265eb3ba6cdadb5717b5fc3d8f004e2b34ba1e34f8df897135e1db386262ca9352669d9212bd18a3b89d664a47a5d6c5b0b9dc81845079b893110ffcf468947891542bb37d7f8b87fbc7d2759dbff97a9ec60ac2dacebc314d4aa97df3c0ea8f3bfbd6294ca95c6c6682234a75f86f1af63b97d82e060ad1b5d7f303ba68947891542bb37d7f8b87fbc7d2759dbff97a9ec60ac2dacebc314d4aa97df3ad7ad072016e4248066f13ed5955aed88078cd6b290e1e49daa7730c8f62a7f49a38852d66edbb28aa5708a28f43fad1ca68680621b62662602e6826fd44a245ad7ad072016e4248066f13ed5955aed88078cd6b290e1e49daa7730c8f62a7f4b9391dda88289aa4ecf0c3f1bd4dafbbac35950ae73fa7df5f5bb204ddfae4b7b9391dda88289aa4ecf0c3f1bd4dafbbac35950ae73fa7df5f5bb204ddfae4b7b9391dda88289aa4ecf0c3f1bd4dafbbac35950ae73fa7df5f5bb204ddfae4b7b4095ea9b54c81c47af2a091c4917ccc62c92523e34acd84f3639f3ff0c8b86ab4095ea9b54c81c47af2a091c4917ccc62c92523e34acd84f3639f3ff0c8b86ab4095ea9b54c81c47af2a091c4917ccc62c92523e34acd84f3639f3ff0c8b86a858076f52d6929051ca12786997ba7dadb47a3d78837b621c16189cc3f74ebdebf4c7ae8b0a957d74112b284693113023f33dc7e2ab037ec9bcc7ff2ec494e99858076f52d6929051ca12786997ba7dadb47a3d78837b621c16189cc3f74ebde2c3b8d25253900493434f7d309c27c2711f2ac6ed81072c7f5e974280eb775072c3b8d25253900493434f7d309c27c2711f2ac6ed81072c7f5e974280eb775072c3b8d25253900493434f7d309c27c2711f2ac6ed81072c7f5e974280eb77507e04a4e9e54e18cf1df7baf3c7ad44f209e0f0352618b51efaf5ea6c3fcb3e025e04a4e9e54e18cf1df7baf3c7ad44f209e0f0352618b51efaf5ea6c3fcb3e025e04a4e9e54e18cf1df7baf3c7ad44f209e0f0352618b51efaf5ea6c3fcb3e0253418a7b482e147aa0793f061bb574a238a67b53a120b3b6e7d31b4f5a7fcc854bb24009573f88b990c922fdc65adddec1312e30373dc635c6099912d4f836a41c15a3a17f6b65e9c51c58ed3a79d12bc517f867321ed118e5dc7b5c3a1ed7d4b05d5e533f5e590d9ee2c7692d26dc87ccbf381f4831cca3362baf596691a55bbe34151ed8e0c5f0ea996f1128834b15f41f5e2081a41dca2ba7f2f307c331f49a8a24bcd720323185063761b53731cd6dcc5583fc0fd7ffd972137f345b1d738845bca9a59de1959c1501cbc1f2c90fa9ab73a38653175fe94073c012fa555b10c4e8456a424135a4dda4829050de77b05c7fb56ef716841bdfe1371af2eb6958358092b45c8631df6466a2e4dc23278263b2dd2ba5765e99caba47c304dd3b5357bf940a54f04d5f7b335a0a6697a1e9dda14eb2f1dbc590beb0fe98ed65f023ee9d9ab704a1f7e0ce35bb832fe7189528cb5873d1f30285d3520bc48f66eb831b6aa0a2168c412559b6c9667846d84de86554af573a1a9dfa5dc753de3754a7ac917c8e4309742c3571b8c3c8d97361ab6b838f7cd5bda498a410d9d6d9fc7449711060a7ec45e0a4bfbd5d497d069676cbf31f77f3385d3e166795e79deaadefa4275a55f7778d400fcbf0628822dcae95d8239da065ba8e40049daaa32e46538070d2455c077280a8b537f23e3e3a7362074ba2630567d7f951f11fa113d81a2f5fdaf0a506502fd4cac0ccc0c5e7ccc02330150b75d3d7fd4bde0e3c95e8f1c4f13d767b8a4d55fe9a377c3ff20cfd7e77b9b9da12e1df9772c1f685f27fbb4ae9e31ddd26e43b7c051041bb3d9d6bebd418a858da67268920bc672afb9f647152e43fe5e381c71ccd9da9bbd843a854761f8fe60bc6c17b7c0e24e0106f5b4867e0b9c0357e14f488bb45585eccdf47f62b7ff914a0fae73f48cc307c8a5a8f44410fb1085689eaad5a24914e940b0488e0ff2cc3191b972e625522a9eaa9e77f6297e6007745040e9b6a2c2be3880e25206594582e0cd09ef482ee27a395794cdc34731bce3ea1ff032b1c8bcbc275779325999641c052b771a28d8f94367f6ef8398e92de819ccd8e4938c819c2b24aa08f06cdcc0266bb0ec37eb08cd0dcfaeb8dc99c4ea418b80bf6c13d4aea912fc699aa3b30ddaf938bdb62e04b67ede3fedf08cc4fd20c2cccdea46f2791f95e0ab991d8cf6c7c66ec81e23c3b6cbf713954d89eb8389b63343d6b8fd261dc6cb652a0aaf93be5d801ed0b24e46c391e25d3f2fa622d5781a27553176648270768435295a235a760bf725752f3d33f36e79c3406c72aeac084df89c84d522fc9953ec3fbb31e8c90f53f87b21c82275d275dc73870a4c8bc4962c1462cb477c6a6323788c591003ab421973d4fe19e3503f22da78a9920c4831a4fa121410ff76430dc10fdd81144ddbdddb014398e2153afe488f1d629b4192a2da8a743b10ed55f3e26ed662bd9e2718d789c9d406692ba3573699a2e1f58713cc2e5a65792df472217aaaf8402dd0c29356b41254e201645eeca3d0c9ca84ba7726c8c21b3796c04cbb9e20d8a2b51ee894cc35e6cc84c00eb7d5e2bdf9ceb8977eb94c2bcc1630ea93c6c4b82381406dadf1efcd32a4b669ed5eed317926a11646c05922fc49b815568ef2c3858d5bec273e4d25cc162e76fd6c5cc50ba26dfc4e71aedbc34f08ac850efbf934ab3c7ab179e4cb253305c42e22d5631bed2d57e795a70d0356d0c04e3ac395ab73051c5298b9ee99d099269d838a12b6fa3b0af725565418ec1fedd8a522acccc0df88de0107d3183911047ec758a69bec7e24edba03838c00331c5004208d850bd577475b3f5e5eaab13ca96387dd517a8864c25fcbbbc0dffd0f8580f07b30ec8e1dffd59f6e422b9ad6163924bc1fb70ae8b697a11282d5b32b02708b40cb9a7d82eef95478516949ab993d14634219a6f62a4470f46ccbdf434d9a2c5526fb0263e9e2305d3cd3097ff4fa587d2c2becfeb700d3d340eef0f3b701ff78b0f0ec898c045797ff45987136a2a5712f8f8310710e0944e4b4547bab2dc99933edd1bc9a67f41bd0b0ac605c5431ad8c658c0c8e3c5d766eac8fbb81d51132f9fb818bfcb98e4e0c90037146f2b5d3cbb9e43cb419f36385cfd7a4567fd509ef00ec53cbd92e941be30507b7dd5976f4223f9d01998f1e73262e900e0ed002b0f53dc4b7e7410c3054ab07bf15658aa4d8caf4a883ef4441e9b2a0a3c776bdc99a970a993beeaff7b6976f9454f530123513fbbd03cf65b4970b6163f619cbb84309dba5634ef4c9f17dcb8b84e6c11722bf48330e5bfa2f75422ace218d8352ee2bee2816b2c0711911b716c53ce311f56190f74e592edaf42dc276f7aa250fa1649c2f5cecc4fd18a445fca6a5e3e5402102cdde911e381ec55e2f4a3f0a2425547a5832de1157ede9759f358c83ef586966a1df3b0bfda56a9c7b570412f4fc07876a209efe2fc3f412c7ed8bda8af3a2b540e8ac0a0b397bedcf522e805e44928d8dac98f27ed246f81a53c88cba5e2c9a6d18a7d6c35b14edca7065aa7806dfa385e874fa2df6cd0be511afe021f9c6b074b387fa3e7072900f83a91720fdb1f55e8912e3effc56c8de1e1923144bcc79778c31940d286f071644585756ce63c458762434228595cfb8c6bbdf65f78a8d2a48155722ade60a75782a245743406c070295d103086b772634a1767922659693ae08f5b593802d4566ee075e82e138f9f39df1235a8bc891d67756768348799f92e066ba2fbba821e8b57af516b447e27beb99d5f7234ba4bbe6c2625516ed761d6df10ad54d0193c9f79dc265a50d2ba5e65ee7b898b53ae86454b0f1c1f523d41185a9e87c0e4d51b08599091487f6d5f337353f9c1a3348394dc6370b45f74330efd091d41499d31cf16f517feb82a6bef79c264cc65f91ae6c6a681c0dab75f6e4191f85418b29cc11ed555b874af23d69314565975474c5cc13b7b18e567090051b4ba84f0a7bd6230acba14588f6d8042a6c437c9a5bfeaa876fdb043f2cea2902aaac7c0a9109ffe2646dcefd0e8a6fba25dafb6a73e6ecbaf05fac2014dc9f0d4a1d66cd29c0ff8662b8dcf220198dab8d01b275d81abe9928e1f82678d9486295940807a0ca45aa700b180df3c9a0db1c3a777801e4b3d0810bdacccf16d44d833d857a1867a1f2dfdd3eaa9658f227ad8c16fbc53b58d2ece52131f5a1000391696c59367d3ec56f4cbee2e1ff94ae7b8968dabcec64a7d7a050ceeba9aefd1cc07c8f1963140af90d6c02c30da56fd30ea23e43e2aa095f1dd6f8bfe40c7d2e00e8471356ca7944064a7be5599f009b52ac70469159c274608761801dda3d9fea63a974eae4b1ded5b1475b7247475b4035f84e69cad1ad6763caa476573a91d3866f521325dbd47808f51e65e0d925f6850add5b2ad4b630dc06e6da5bb34dfb2b940443fac36407efb549a5760378203199cf42145c95d47faa4a2fedbcb2f3773bb23c5079d3aea37ae93caa993c598ad0ad4345cafa50c964500654ad4881ed38398e2add57aea3524fa1441be4fd4d827928c7bec285abde82a21189c1a9267d354050a11b1ef1398baa12f1ddfba4bf6dd846019ef0780b7da09d65ed240e990884c1771b9b3f794a6be91e3287ccc07bc77f7e07219a9293135399ca317374e93fd9a652efb0958e0d8cab767bd322e120df4ff4a67ee4f074bdd9b98b0d12f072648ef649eb3bbbd40c28c932a5e73dcec69cb1a095df98b470031d21443a304650bd235d052b71cb780900c5fedb6986551c6cd681c25c9fb75704a8bfff6e0540a4f6ea28ae2f173cdc817b6df13e9b8615877a5b3d5793feb437618f65bbeeac94b38fabec23157ee6dfd2d43d75d835511534f79c0fc755e2c4bfd0d85cd4b2c5a39dbd9b89936160b086d22d90fdc744954709468bea87afc5718c8b800d5332450e04edafd6c51dba72186035d05a3fb3fac10dce73d64d875c9303ac07e08fd26832d582db6f41a96eafddbf5ceb5b0f4065d890e0bc51541ba2fc95f80008065e89c824ed9babff0cf29cf1be73c351ee340aba3d2aff1d96dbb91f549462836fc3948a6f3ec0a0339ceda6805dd39066d40ffee39e5d9c19e2a1ff0bc1e723287a3ed1af623832881eec3404163f73072323f4202295b779b67ffecce3ec85dc1664f57b8c3af5d65039ce45729785f54378f8861ed900867b7243d4deab647c875ef86dd94ecae7569d73a6d45f120df048a5b630ed8c13000fe37d211de296f71fd7bb8c2b9e7d961fc03d46d4445b8c6db7cac0f3da02b44f8195ffbc11939a57e466dfb8acead4756b3790e903fa7b432727ea9cb34d93d679443003563a14a214878f1d10cd8aea701903401a823c863e13abf11c64d8ad146b5a2ce40c69a6dc1b75187ed9944ee82a03c6a00d65688016929fca327ddfaa28b28579ac6d2142e46cb67ba5ba72fda809295cbfec9e4aab1a7c91ef3d4fdd6cfc18f089875285064ac755964e99691bc90085a70d86cf1d9435ed88df6657de3934d1f6aa708ad832676a9b604a712d98101842eabf9a5daec1fc97191bb0c6892c44aa02da83d69c7c40431b5f2249545b71a990c39e9ed47e6c9c08b5556d9155256ab83b7604223be44674ad46b4f2a93d11a513b35703caeff310b950254e9771cc48d9409799da57b2330d8b4a713b0b313c6ddb0b9d24635060fd66ddb320342cb8119df2d7f9ae9d504cf05135061c90b0454d94b7d71c8afcd94785d800457f49ce38ca97d4f6bea54493d9ff5d2ba61e0c34f4d0c92261c1cb1ef48608dd83b1c4ddd732703a52c6a7bffcf97ba226660fdc7a62e36fbacf9f88eb0de9fd530238886f9c9d7923923947173d0f595f47ae9a62b67a3029536d0ee9b28acaa9992e5d34f70dde74bdca833e3bc3076add66271a946136435678a197a6264ca58ba01bd8f3b83bf9d5d2b5b3969c7d76d70362e8fd0e0fd462ba44ff677924d817afce55e6dfc2914bf8303a6c98c4fb3807be0a24688a74073b8485e9d02913b42008232eb9050f614f89795efcf3b56dbf2811ee809fddffd5fba4d4e977bf12e89bbf0a3eb8860f99020ca4d23d1a0dd995241c7a7c1f14f3a4d3a571f206cc131fc32a9307ca64e8134832d45ce61f77f403b53d6b6c47bdc4292d0261af6cbd91c5b187a5b26874ec492acb50d7438fd20bb318096aa2ec856be9cd257b25555069618fe6b158ffc332c40b5739dac970ed870e705157edbd62a1f053491769bd5b0ee2512d73c066e6bc0858968f68823fee19bbd4efd1706f825db589d0855e21fe6c9e45314767b0112aa2e8ee5b7ede28e565f5de35538962af6bfa176c120ebdacbc99a79c54e6485441f441c4402e4e4ea4e51e3a7534fe28795bd69e919a7200a93ff375ed09ee1125b1c976b487c49e8c43f58690977878211ed45cf82fc497e378c3f8d64fb277d67a08969209146820626eaeb1fc75e534c93027c46555e69748bcc56f1631eb6452f6976f4ffc0cb6d12b0bce4d6fb6edd706bed050e363b17569f92852706a9ef3cbaf7212d6395fa739eb7088d5bf11181b10d6a49764f2715110162e41af8811b9adbbdab355070e9430925d9c352b2c27025a8b1deec07f6c81ae349b9f0536caa5a74f1bf766a052104b4be89f1e311d8e41b75202f31421442934183e142d7925bec2c9212b413f9ade663ce4e460552dde3cc6492bfbdb33c51d2e54dedf9203a32ce3acf458468ba0a2a9cddd7952b6f73c26e347b10d9e30e3cc156b356932f40c934659a1a92f14c8d8a4e18f8c07403f091655e53587266f85e4ac033778912a30462c9724785efe22a9c2762c0a0da5d4e90d432f0961fdbd8d7e3882f10779adb78e4d84c2d1652ce38b7122a66f7e68f199bdc7333baeaa80a9067504cf97853550b45bd711ffa2d7cbb30a2057a866215e7e35d02a8c2e3b2483a926fa86fa3dab7e15e5af947fc8e3909ce4b113efea082982401beab02492bc4e9bbfd00d8fd6d33687977e3c427105cefe6fddd29be64645b2bb582710e5367185a57476a5fd9ae2196ea4c32ecb71378a6a92df76d7cdfd0d5b7597fa17e3c44861e4b41daba1e1022ce45395d894eb906a92df76d7cdfd0d5b7597fa17e3c44861e4b41daba1e1022ce45395d894eb906a92df76d7cdfd0d5b7597fa17e3c44861e4b41daba1e1022ce45395d894eb90253e8d8971e1711b27ceb249bb10ccc811df6d2f41dc53871a484b9ae849ee843d17cafadb5abe4d2eababf900d22c2cdf0a11cbccc8519f4adca818054c7271253e8d8971e1711b27ceb249bb10ccc811df6d2f41dc53871a484b9ae849ee841b0657c126cd451a8e743e0c9bad53ab8b2af3c629c8fd8fe9572e288a22c8f61b0657c126cd451a8e743e0c9bad53ab8b2af3c629c8fd8fe9572e288a22c8f61b0657c126cd451a8e743e0c9bad53ab8b2af3c629c8fd8fe9572e288a22c8f613ffaec1039cf888732a70844ef7776bb391f7a17dc2a75baad7f8228915126113ffaec1039cf888732a70844ef7776bb391f7a17dc2a75baad7f8228915126113ffaec1039cf888732a70844ef7776bb391f7a17dc2a75baad7f82289151261d4e9cdd50b48301941c9f09d9696c837f1f9b2dd92ae6397c044c5a196403665d4e9cdd50b48301941c9f09d9696c837f1f9b2dd92ae6397c044c5a196403665d4e9cdd50b48301941c9f09d9696c837f1f9b2dd92ae6397c044c5a196403665395010b495429e355596c5b4e8d6e697236a601f5f3c6435036a2b3cd48cf458395010b495429e355596c5b4e8d6e697236a601f5f3c6435036a2b3cd48cf458395010b495429e355596c5b4e8d6e697236a601f5f3c6435036a2b3cd48cf4587d2f14a87c21dc80b4093f7be1721a2c4d70cb108f7524eeafb3010d0493ce1b7d2f14a87c21dc80b4093f7be1721a2c4d70cb108f7524eeafb3010d0493ce1b7d2f14a87c21dc80b4093f7be1721a2c4d70cb108f7524eeafb3010d0493ce1b28bd8bfcbc0b86350d9852894aac663210e7fd1881d0e43b66cffecdfbe329e928bd8bfcbc0b86350d9852894aac663210e7fd1881d0e43b66cffecdfbe329e928bd8bfcbc0b86350d9852894aac663210e7fd1881d0e43b66cffecdfbe329e9e6514c315ccce7cf25787dcfa7db91d0faf9a0634b30c798f2849385b46cf1928569ebefa0e49ff945e5fe795dc8329ce21cf9995b041aca397d37acf1ba7e7ee6514c315ccce7cf25787dcfa7db91d0faf9a0634b30c798f2849385b46cf192ecd69420b629deedef6b9b70dadfbd931100808da63f8534a3050e94219a2a5eecd69420b629deedef6b9b70dadfbd931100808da63f8534a3050e94219a2a5eecd69420b629deedef6b9b70dadfbd931100808da63f8534a3050e94219a2a5eeba2815fafd1cf4b70bb4a4b20876d77adfa972a7e6d0af33b5fc885ce9b7a0ceba2815fafd1cf4b70bb4a4b20876d77adfa972a7e6d0af33b5fc885ce9b7a0ceba2815fafd1cf4b70bb4a4b20876d77adfa972a7e6d0af33b5fc885ce9b7a0c5e06b37c3a5944412847545b87b1d6cb8d50370d816ea73a6d6e9da43ca049f5048cebc4df40bb6bc8bf0ce16b9ac26792e5d9fcd3f60fb693c6f20f573502b05e06b37c3a5944412847545b87b1d6cb8d50370d816ea73a6d6e9da43ca049f5ba76a9f24588eb21864971413d8249228a03c247155da8b06f827fbd4c1c5018ba76a9f24588eb21864971413d8249228a03c247155da8b06f827fbd4c1c5018ba76a9f24588eb21864971413d8249228a03c247155da8b06f827fbd4c1c50187a856e8232b7a0b15051dbed05f73aa3d000970f34e4ff59b5cd83af6d99ecb57a856e8232b7a0b15051dbed05f73aa3d000970f34e4ff59b5cd83af6d99ecb57a856e8232b7a0b15051dbed05f73aa3d000970f34e4ff59b5cd83af6d99ecb5a7057149d50631207c45c06daef3a7fa658f401c78c8bd0ede517ffa4ce4ea4c103d7211c5f73399683b3aa6d8c38a9a9a246edcf805ead433f4e5dcc396a47a74b0412764d637881cf78f3d9cbb8e4d8bc9ca835a03331d53496baac7403ddc5adebcaf2e80a31f4d0cc59e78a1147bed843a5f4082cdc040dc1b3ebf0d95cbe37bc194ef5666a36cf865e27ea178ed94bd4a7808f8dc3c50935d53752ce9a2f5c43b62abf42da90f335c03549e8a69dca3de732af9a50ea3142a0d6047200b2f228bfcaf42f18f38f34c65d7b204fd061b5ca6048f47008214a5e69255ae60d4774469069bd2e5bd18e36bfd21ba9478b3f42c2d64153c1568da5a1133612ec897428ab038eeb3a29a974162c13288c9faf175f519679bccfb78a3540b78eb4d21743c7a319400d8c4535c173b71df08848e3c2014c6db202a1734ebdbc8b4198e0c4c1e29a36fdcc43442ccc661ef4faddfa0bff68bffcf4ca855088bc0c899867662ce04a7e6a94f0529092ccd4ae6312a059a00cf7a803411c6e6dfaa9099867662ce04a7e6a94f0529092ccd4ae6312a059a00cf7a803411c6e6dfaa9099867662ce04a7e6a94f0529092ccd4ae6312a059a00cf7a803411c6e6dfaa902a67aa24f79d147652c213f8d9439b2f1925fb6f0e0798d0296a3ecc83743b0a2a67aa24f79d147652c213f8d9439b2f1925fb6f0e0798d0296a3ecc83743b0a2a67aa24f79d147652c213f8d9439b2f1925fb6f0e0798d0296a3ecc83743b0a5ade742365f520e981b5eb707817d68bd050128c12ff617ee5e1b2d6148aff4560f11f6f1c53b1e906df7819fd26fee3ee1e169741435ef6dddf9ad6dee31e48b7df7fde431410701a137ad4b28880bd8877dedb72fdfa7c95e7912dabd0c28f60f11f6f1c53b1e906df7819fd26fee3ee1e169741435ef6dddf9ad6dee31e484e4c19e458af040cd567dbe8e57c97f363fdc29427043489cdfedd964ff7fc1558eead2129162745c0c112734a0a3ca414b48960dcaab9f56b30bc76de1511e758eead2129162745c0c112734a0a3ca414b48960dcaab9f56b30bc76de1511e758eead2129162745c0c112734a0a3ca414b48960dcaab9f56b30bc76de1511e7f4e83e8688b2e20f3d31e082a791c22b74592a92c490e91ee6a611da1caaa6c1f4e83e8688b2e20f3d31e082a791c22b74592a92c490e91ee6a611da1caaa6c1f4e83e8688b2e20f3d31e082a791c22b74592a92c490e91ee6a611da1caaa6c1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855b45eba40405f780394267de6c431ab025c05cf3aca752cba0f382841a1a6111cb45eba40405f780394267de6c431ab025c05cf3aca752cba0f382841a1a6111cb45eba40405f780394267de6c431ab025c05cf3aca752cba0f382841a1a6111c61a82722f2668269da9ec3f7e65d8cce0537fb0728d913edefafce1db953590161a82722f2668269da9ec3f7e65d8cce0537fb0728d913edefafce1db953590161a82722f2668269da9ec3f7e65d8cce0537fb0728d913edefafce1db9535901aba46736f33c8f7c1d10ccefb66788b2b00144ec853ed6a656f9629ba8cef0d8e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855512bc438f880139c2de02f09814cf307acecb93c4b0ea2bd134e5b1bc466df8e6f222cec4247babc67768f6e68ffb3b0bc81659ec555abc62b8adcd3bafc96026f222cec4247babc67768f6e68ffb3b0bc81659ec555abc62b8adcd3bafc96026f222cec4247babc67768f6e68ffb3b0bc81659ec555abc62b8adcd3bafc960231083137415a7bca31e6d3c2fbeea507df7c4f6940ee0e11055dcfefd1d8b86c31083137415a7bca31e6d3c2fbeea507df7c4f6940ee0e11055dcfefd1d8b86c31083137415a7bca31e6d3c2fbeea507df7c4f6940ee0e11055dcfefd1d8b86ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558962a375442bddd8d49865f3bf601c2c7a741fe947d8ec667358bb640cd0d19bcb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3c1739bdd37297431d023cc93860f286e066ed4e3129d9b0d306a16245c23be8fc1739bdd37297431d023cc93860f286e066ed4e3129d9b0d306a16245c23be8fc1739bdd37297431d023cc93860f286e066ed4e3129d9b0d306a16245c23be8fc545dc25a759824b3930154b5423442204ffbd0b551317a1c6d548a5126dde574545dc25a759824b3930154b5423442204ffbd0b551317a1c6d548a5126dde574545dc25a759824b3930154b5423442204ffbd0b551317a1c6d548a5126dde574ee745433195727ecd533f87cb66ab4c85b3fa760cfadfe8edf205a2cd9885ff11fd7a8e552829c1c58ee5dee52d44bfe26ffdf497da51d5681b4b6a46531a3fdee745433195727ecd533f87cb66ab4c85b3fa760cfadfe8edf205a2cd9885ff1a6f7994ac57fbf1980b18cae0e90456e17dad40900e64723c4329b9d166609626e87567f73afe29eb30153338b461a0367520354bf7ff4c956fa829a317d9d16a6f7994ac57fbf1980b18cae0e90456e17dad40900e64723c4329b9d166609626a49a02ba42a0af2d5f8d757e073a9081e76e46e8c6bd55295d055da69b0a955b8ee90618a3c87d34e34df9f617d8141a13c6cd9df165fc045d27d092b7038a86a49a02ba42a0af2d5f8d757e073a9081e76e46e8c6bd55295d055da69b0a9554b9f1d511666ad642be5e11efe44d8effff87e0f64781b0cc6f5215dd1d4d7bca6b478d5903d64de8db8e0d4d1cabe7f937cd0ad8c60f1153aa19f888296b82a376402f6dc6106471c172b83af8b0825ab45cd78e0903cc5adaeb35c09ed9be459759b5220348c3f6b963854b629775afd9baf3525a50230df21ef359c858a6b8f0b888979582b2cff07618d977dd0289f25948ccbebfbc2f15f6dd322ac5ee359759b5220348c3f6b963854b629775afd9baf3525a50230df21ef359c858a6b653939587a1d4ec0fdc4f16d4e65e699cca0fc8ce65a0c3a1b373e040e722ac5653939587a1d4ec0fdc4f16d4e65e699cca0fc8ce65a0c3a1b373e040e722ac5136ce8a29f780a98507206b3eadd85974ec8a1485d79d30f7d3d55af7f26b65f85fd93904377835291474ee719efa8fb3f5e4bd4d8ba2faeb6874ff16b51f0a585fd93904377835291474ee719efa8fb3f5e4bd4d8ba2faeb6874ff16b51f0a5b1c889265556007c1eb1e9eaa6d6a139a988598bc0b9f31a7b7198e1638f3bac846596335d68b0136eeb69e8c3ca082f285b358c9a5e3dfe9a585ab10e01b2cf3bdeadf95d66c7225a311c7e16d5f802cacebaa41d9a542a58aa729561399391846596335d68b0136eeb69e8c3ca082f285b358c9a5e3dfe9a585ab10e01b2cff3c9f028e3cc6379c8dc3011f2b825705e72e4f971a00abfe9e597fb0bc0256f5141d7ea2b499204a0ae530b2b2eb2c8b1f3caa0740d7386d43b0c4360878e13c7365e443c5cd04440156e42569ac17bcffc7a974516617ea9d5df0d720d8419951c008e2438eacd2b8c0e1366e18fdc42de429eb40cacd453da5e85b3186a79cf6d49b0924ce74a9351c20980a7fecb810c956cb2948911cdb2cd5eb0de5261fb52ed1385c34fea5d3d43ca34c57f2b0dceec41c33cc5774bbca2140bf43e1b5e45d11701ba4b0d77dd33df394835c70235c8e318b80b3da4bfba8f1573403170b93f646b225ffce0585005a055c2b537db3a2c00d70bd00fd0e065ddf76d025e45d11701ba4b0d77dd33df394835c70235c8e318b80b3da4bfba8f157340318a1f4e7813f8aa6ae0c4a9faf0af865897fe00776d0eec543a240b45c790aa708a1f4e7813f8aa6ae0c4a9faf0af865897fe00776d0eec543a240b45c790aa708a1f4e7813f8aa6ae0c4a9faf0af865897fe00776d0eec543a240b45c790aa70c971e22266366e5d70107e06301797461628c24ddd9c66776c61671816e50257c971e22266366e5d70107e06301797461628c24ddd9c66776c61671816e502576d8f5ab7f49c170cd9d456d41a5317dd07f05a36c12114a17254090986fc2306010e83a4ec798e3d5a7b36f14f28dc3c65a22f85daa0658706b0689f0ac267f9010e83a4ec798e3d5a7b36f14f28dc3c65a22f85daa0658706b0689f0ac267f9010e83a4ec798e3d5a7b36f14f28dc3c65a22f85daa0658706b0689f0ac267f9e615ce2ac94a9bebbf1e8a950408c82db861e337017118603e0838260ffe3c7ae615ce2ac94a9bebbf1e8a950408c82db861e337017118603e0838260ffe3c7ae615ce2ac94a9bebbf1e8a950408c82db861e337017118603e0838260ffe3c7a06151f4d63d8701af1bbf99f3d7118daad8ac25215f6368dcbbdb9b7d3dc3e7106151f4d63d8701af1bbf99f3d7118daad8ac25215f6368dcbbdb9b7d3dc3e7106151f4d63d8701af1bbf99f3d7118daad8ac25215f6368dcbbdb9b7d3dc3e7143e07cde46950ec5bd0583b58e5856bc5c147dbf900b52aea82e6906a2f09204bb2fbbf1df4c1fccc6d2f777ab4b5fdb194000e201d58cc3986b49dc5f0e2dbb43e07cde46950ec5bd0583b58e5856bc5c147dbf900b52aea82e6906a2f09204740fd4961dbaab5f77c970bf61232f7de47cfb2bd68197b46cdac9110814b6aa740fd4961dbaab5f77c970bf61232f7de47cfb2bd68197b46cdac9110814b6aa740fd4961dbaab5f77c970bf61232f7de47cfb2bd68197b46cdac9110814b6aadb9bdff37dd970fcdd84ab987c02c374105eafdb9012145758722a71a3718fbc1d30a9c086691f22c9587b13c602ca3b7697cd84cb10574bf7dc306cd5f60b7eaab3cf9fe050c6f533cadbb261b9b238b6a2e32de4061b0b0779b8f39c687f73200c407474281d629fa5f31a26330bf51e842b089af2134c2e149880152c08564d4f4180405154864179caeb31cc62dbf569500174b0daf2e2dd50ce0e6d7b054a319e40ce55dd897af8204061ee4ca18e02033bcacc85daa1db015f5dd7276f52bd27e1cf1abecc953d9154d4f14ad2687a1ea45b7385ddb62212957ae461b252bd27e1cf1abecc953d9154d4f14ad2687a1ea45b7385ddb62212957ae461b2916f2c89aae66ada691c2c32fba20ab1e455b8c5c2b261e9e4afd8280890f81ed528b8f854e2a6f2890b7af18f79fa1b323e5562dd4e3465d38753873538cb43d528b8f854e2a6f2890b7af18f79fa1b323e5562dd4e3465d38753873538cb43ec8a5ce0d950b25304c6d3c52a97f8ce7ca7da9f79a58b0a7d7cf46245baec1d1f75ab87c3e4d8e5b1e35a997117aeb0cbe9c90569e62645038ed54685716cd41f75ab87c3e4d8e5b1e35a997117aeb0cbe9c90569e62645038ed54685716cd41f75ab87c3e4d8e5b1e35a997117aeb0cbe9c90569e62645038ed54685716cd417c75a3aba745068ac1d2a2732e4c38aedbe2fc45bd72ea0e5edc215b92226f8567a8889c7ca98196f6364aa5c4bb3466eaa7a1fa6c09ed1bde5bcd1ae4ab7d117c75a3aba745068ac1d2a2732e4c38aedbe2fc45bd72ea0e5edc215b92226f84f6bfaab81431b04a6e8eebe6b075e269cb1c4578799e0af726ae41e2b2bea28f1b4063c9f079ada451bb6685e3b5f91657949f847a6238f3596462c5ce4f37b4f6bfaab81431b04a6e8eebe6b075e269cb1c4578799e0af726ae41e2b2bea2892ccc4b0003801a318921c0fffa55eb8bb760e79433d8bb7c145ed78be08b66c8962a375442bddd8d49865f3bf601c2c7a741fe947d8ec667358bb640cd0d19bcb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3cc508c4f0ec7ba2437c45f2321237c813ec92a3f7b9f039bf60ccfb517f228f6fc508c4f0ec7ba2437c45f2321237c813ec92a3f7b9f039bf60ccfb517f228f6fc508c4f0ec7ba2437c45f2321237c813ec92a3f7b9f039bf60ccfb517f228f6f9fd0dac86b40b2e157eabb87aa5392842675212b581cc14482f110270e13a6999fd0dac86b40b2e157eabb87aa5392842675212b581cc14482f110270e13a6999fd0dac86b40b2e157eabb87aa5392842675212b581cc14482f110270e13a69962421b1dba4ce6cd44296eeec1ea512ba9527e6cb649fc55baea8b8089545dcf61c142c0e23e71d6aeee3c74b0ea7f1267dd7edf36646cce9b704668a1436717e4319794d11e26a1cec8b966176767c28086f25d03f7472b6b857e920944bdc091c934108739e6eb890915c05f3d508f5e135c07f41fbd5d52ee5811f104bfc86489f327b852820fb1935184698ce439099bcb8c9909180c64652799ed7c3a7a8cca38ff0fcdf2f4073e6f2a488b257ed153f6177b50f4918789162b46c7eeea6d46cadcf13eaf3485a5cf9d5a9c3e4b9fb4bd543f7c31302b1d3421f550b80468697bcb11056c5de70e9373e716f564a93a18872ccf837e8bdfa9a5a28ed3f7e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855bd08ad900935b547ebed87ae3c857fdd42b96c2cfa67e8b9ea1e29ff2c3663eabd08ad900935b547ebed87ae3c857fdd42b96c2cfa67e8b9ea1e29ff2c3663eabd08ad900935b547ebed87ae3c857fdd42b96c2cfa67e8b9ea1e29ff2c3663ea23e918b9f11389dfad0d8c91f1fd4e149dede6efc8a36de4d1c6d0c494d43782f847ae8050228e47543bdc724074d9910c19a055cad3f431202063e91e40009ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85514ebd5eb484030b1af5085fef2bd602da7f33650297e09c45048e46a9927c91014ebd5eb484030b1af5085fef2bd602da7f33650297e09c45048e46a9927c91014ebd5eb484030b1af5085fef2bd602da7f33650297e09c45048e46a9927c910054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c79268f6196da81b912be802fe223f84688faa79057f1afe01554cdf9d9c20c7c79268f6196da81b912be802fe223f84688faa79057f1afe01554cdf9d9c20c7c79268f6196da81b912be802fe223f84688faa79057f1afe01554cdf9d9c20c7054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8b79abdaa1c57d2b62a22d04e33c0f7ca5c06f911eb9ce62d7932ed42beac17b89305a0606e3243e645d97fd603ae848d83e6c49467fb0f1a48e892f5ef2d2986e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855d6e4fa7005d87093a229b31004daef4df7e41c075b3761048c6e9dd8eea10d73d6e4fa7005d87093a229b31004daef4df7e41c075b3761048c6e9dd8eea10d73d6e4fa7005d87093a229b31004daef4df7e41c075b3761048c6e9dd8eea10d73e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8552361e3ba4ea2602cc141815c2c191ecaacde5c15984dacc74af8f51068383ddb2361e3ba4ea2602cc141815c2c191ecaacde5c15984dacc74af8f51068383ddb2361e3ba4ea2602cc141815c2c191ecaacde5c15984dacc74af8f51068383ddbd747e529a73b73e5d7173277b7e001e4c263941cbffdd499bcf13f74e9b6aba5e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c5db5e6432a7d05a8c15430f0c5a273dc2be391fd443d55d4209990e0a17cd4ac5db5e6432a7d05a8c15430f0c5a273dc2be391fd443d55d4209990e0a17cd4ac5db5e6432a7d05a8c15430f0c5a273dc2be391fd443d55d4209990e0a17cd4a96dda36cddd3327f5088528cf37d97dfd6d4ffad94a6d0dd524a18ce4bc46e5de3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85562ef9f04c1d502542688a4b79c549583e8be79f23887a089f42db3d29ca431fb62ef9f04c1d502542688a4b79c549583e8be79f23887a089f42db3d29ca431fb62ef9f04c1d502542688a4b79c549583e8be79f23887a089f42db3d29ca431fbe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8554fef9c7cb0066417c401e19c2e528313353a40a86658e5236eaee4471881c09c4fef9c7cb0066417c401e19c2e528313353a40a86658e5236eaee4471881c09c4fef9c7cb0066417c401e19c2e528313353a40a86658e5236eaee4471881c09ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8559faaafeac39ddc8489b1eb5a9bf65c5585dbf82c10f106e4cd845a58669a35919faaafeac39ddc8489b1eb5a9bf65c5585dbf82c10f106e4cd845a58669a35919faaafeac39ddc8489b1eb5a9bf65c5585dbf82c10f106e4cd845a58669a3591e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558962a375442bddd8d49865f3bf601c2c7a741fe947d8ec667358bb640cd0d19bcb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3cc280466304f7e00e1858b04688574ed0cd2388cf85a6b9d7172c1b778f2991c7c280466304f7e00e1858b04688574ed0cd2388cf85a6b9d7172c1b778f2991c7c280466304f7e00e1858b04688574ed0cd2388cf85a6b9d7172c1b778f2991c7f4f917fac46790fdfa8af78595361c4fb2886734b58178f4f77ce958336e6179f4f917fac46790fdfa8af78595361c4fb2886734b58178f4f77ce958336e6179f4f917fac46790fdfa8af78595361c4fb2886734b58178f4f77ce958336e617966484f32ec0258aca71d00f1f4b93f4eee4b86f13bf3d5915965ea0040f86d7e66484f32ec0258aca71d00f1f4b93f4eee4b86f13bf3d5915965ea0040f86d7e0cb8ab6971b48dc422ddf9872dc09acfecf906176d9f3025eb56b3f3a28a4cb58aee668c677ee973387ba674f840507d3449e5092dfacd4e6bf91ee8bea4b391dc83d7234a166bb5d639080bdee965ca4a837e05e03f4b747448e59b6b576a268aee668c677ee973387ba674f840507d3449e5092dfacd4e6bf91ee8bea4b3918fd0c877452234fe46827c82f95ef40e0f9955f77caf0e57b267ee1c6544cb112eed1e4c2d48d56575f3c775bd6ec16d3970893007452bfebed8f607a8c2d46e27ad161b4f5e3daba0e5cd2565dc9fae4ac509f64015f4dd6823b482b6ded6d567380378e0dcb5a8ada9073a032ba3af3198fe09e05f731204b016eb82e98ef80453d970bd95459f1b9c039eda2d1e0d01517ed2338d9328154787358eb5e79f67380378e0dcb5a8ada9073a032ba3af3198fe09e05f731204b016eb82e98ef8da003a746ee6b54f2e10df02d7f6664ea20f609f66426039042ace7ab74c8bc7f904ac2a91ef269edaf70b3a9b3d179b2a5948508007921e6321ee747173742440f1d2f0e6981ee39448cb48cbe7d6dce5ddeb91c20d28ebe515684ba36f0642e73a793e2f83e77cd1b5f654e5c31e674b18084dca709b9c391c34db98fcd1804781c8f8c424dd21d97792aa6f73fa80c2b6bec2a830edcef17cfbeba9ccce8c8962a375442bddd8d49865f3bf601c2c7a741fe947d8ec667358bb640cd0d19bcb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3ccd6da28fc9da503022408e74610a2b8626df8ac4781685bcfcdedae50ccd7671cd6da28fc9da503022408e74610a2b8626df8ac4781685bcfcdedae50ccd7671cd6da28fc9da503022408e74610a2b8626df8ac4781685bcfcdedae50ccd76719ada0269b323d4c68a47bbe830a5ea253163a7ee9a12824b65203c40577611619ada0269b323d4c68a47bbe830a5ea253163a7ee9a12824b65203c40577611619ada0269b323d4c68a47bbe830a5ea253163a7ee9a12824b65203c4057761161be90b84dd7743936ede93c1e77a50a1673f8bc7c1c91492dd7dce0c33d9d295ea290fb67e31dd85a9d469e0ee34a3e008a6ffc6ecaec58d4f06f96ee49a7f648be90b84dd7743936ede93c1e77a50a1673f8bc7c1c91492dd7dce0c33d9d295eb37a33a34857f8424862eea048d6a3a1cab16f1f9e86f827da78eb558002297bc61864748438a2ade1e061579b200bdb7b12c885d1a55859f2be9271198135923cfd661a3e60825e09638dd7b9c474c14180feac9b35d5b36c7398c3dd5c363f00f86ce0f1e1c66c596bb700931619c5bb4b3a90d5d21ff285a047dc11b710f1ab478e87087a39bf48b59a1936108256d515ca1cf4591e74d022a6ea8dbf80d88962a375442bddd8d49865f3bf601c2c7a741fe947d8ec667358bb640cd0d19bcb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3ce87077f4d5d52f14dc1323ff09b257536be2a447b5f418731b7dce1d2a97ef8be87077f4d5d52f14dc1323ff09b257536be2a447b5f418731b7dce1d2a97ef8be87077f4d5d52f14dc1323ff09b257536be2a447b5f418731b7dce1d2a97ef8b4e516e8d8df4eb582e9593d19fa7c137b485b6abe6e64fd07444876a1630bd0a4e516e8d8df4eb582e9593d19fa7c137b485b6abe6e64fd07444876a1630bd0a4e516e8d8df4eb582e9593d19fa7c137b485b6abe6e64fd07444876a1630bd0a9526b26c26ddca65292f763f453da4555714e7702cac38fb95726f0f60325f1e9526b26c26ddca65292f763f453da4555714e7702cac38fb95726f0f60325f1e9526b26c26ddca65292f763f453da4555714e7702cac38fb95726f0f60325f1eda01b9678bb6ef835f153794d2870320cdc8593ef279dc937e87cfaa439f4441ded26fd3104bed3450bfd5d0275ce273ef72efd3652a87a594d6f35dad2c9ac8da01b9678bb6ef835f153794d2870320cdc8593ef279dc937e87cfaa439f44416d7a9673b24aabcd1fb01f8735fbd160770882fbbaedafd3143ad768d924c8addc3a72041d977fe4e3c591283ef279b22af32c17dc58eeb9d7423f7958becf536d7a9673b24aabcd1fb01f8735fbd160770882fbbaedafd3143ad768d924c8ad9e0f2c62d55e3446336f2761c550446fda52d12628574e27a0d051f1c2364e9e5a482311e1303b46e1bf3bf8f2554f5cf1946257bcee019eb07633072e29ac139e0f2c62d55e3446336f2761c550446fda52d12628574e27a0d051f1c2364e9ea740fdeb6699142c265692a22d27a0817585ed09de76d2f6bc419d60cc4c4728bb7ef6bf3002695e86dc4123b417dd9134089c7cf91509f9d1d7f33c8a5340a3a740fdeb6699142c265692a22d27a0817585ed09de76d2f6bc419d60cc4c472832be677945c6e6ae78685d1603a0dc40ecde287c8685b15ba782447c77a2829ac3cdd4b5845287285c695f374694d4c1e4a923ab16021447e218712f54e43d3c8eb04acf69108ac50dcc876e2a9b3ff85acab999749c7ba8b04feb4d69befd620ecf10604fc2b4ad6a74207dba822cb352bad96e1c9dbc21f22be03a7f20b51e9ab4a2478bc1fd80e11605f825e6ecd52cb3a32ec4101f22078a984c4af0e418d744755b56fd3febc1b044372186842e77207f91e363eeb62d4940163621eb790eccff6044e9f16cb9165dbf26511c49361714d5687ca13b98f160cbc8d87dcb2a81d129f91fe8d3b64da77925a216a920398cf616c105e1bc0280ec500b85a90eccff6044e9f16cb9165dbf26511c49361714d5687ca13b98f160cbc8d87dcb5a570fe52b740930c0178fe0bdaf8df9f8db6c3b6aa9175ba76b536db41c4643c7d84aef636fad27645248f79cec2eb3f3ab69eaf4cd49aafd492d47bd91035d5a570fe52b740930c0178fe0bdaf8df9f8db6c3b6aa9175ba76b536db41c4643a9e663ac6b868d9c19015355b6e9a66e0ffbd0de46b285de093034d633b8069cbcbbb04772b4ad866d260c055b145e965ef6b08bc116361acd018e07a321b08fb87fe7c62af409df3c794ddb027f5813091d1788ca91636e52ce9e891d1ff628ff3a0b7137b232af0edef0680f4d0b1114b10fc4914d97cdddf0f6a3821a1307a980a13e80c88a7bb1845c0226c70e52d8a80a17ae86fbed00ea2d1ff16fbf16376888ad304eb91a8f0d675d392f0a91183a9474aa2e401f82ede57be2ff3f0db5c5c5efb2570fbe0186d1056a376125562e8e9861420e18068e6fdd50688afdb239a59d5934de9f204ca1a62efbc8967e975281824bf8a3c2786751515cf4708fe3688f3917533c58ddfeaba6f9f04acfac28731e90e589dc65db4e3259b7ab8ae8dcdd313724298f988dbfaa132a8aa19816b2a199163eba3f36eaac7a94608ae8dcdd313724298f988dbfaa132a8aa19816b2a199163eba3f36eaac7a94608ae8dcdd313724298f988dbfaa132a8aa19816b2a199163eba3f36eaac7a946039513ec233c8061cc8652a033fd723e07a50ec826881b91c8f68e1aa07454d6d39513ec233c8061cc8652a033fd723e07a50ec826881b91c8f68e1aa07454d6d39513ec233c8061cc8652a033fd723e07a50ec826881b91c8f68e1aa07454d6d8d97561f1d7be5e55e52e432f70d6751c30a9a08bd305477a279204161613f9ad2543405f463c3ee8b2fdfebcd88f30279a4b20f8c735f45e18666d772d75b212507eab0cb7a594b25fb2fc1c6a0b0f27af53d1980ba358d4e0c1b1dc32a9e63b89ee4f3dabaa3b72af0d059b8a3fc12edaec35a2a58e7c5c33e0e36debbcc14b89ee4f3dabaa3b72af0d059b8a3fc12edaec35a2a58e7c5c33e0e36debbcc14b89ee4f3dabaa3b72af0d059b8a3fc12edaec35a2a58e7c5c33e0e36debbcc145d740a6b510156140c5a35fc70036d3350a56651835b8b1579089a4f7712b0f3e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8559d6e1c27870cb53512a2e29ab03e61c25188ebed57e933ee5ce4e749d72c0a87e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553bae52951677cd4b8cea5e37284ea8e3623a8fbd58d610f776bc83bd5187a03a3bae52951677cd4b8cea5e37284ea8e3623a8fbd58d610f776bc83bd5187a03a3bae52951677cd4b8cea5e37284ea8e3623a8fbd58d610f776bc83bd5187a03ac6246e7026959cef340a53a3ce28ca1e4e410b0812a8d6bb86718fd6bafc3d0dc6246e7026959cef340a53a3ce28ca1e4e410b0812a8d6bb86718fd6bafc3d0dc6246e7026959cef340a53a3ce28ca1e4e410b0812a8d6bb86718fd6bafc3d0dde46da9948a760db50b2abcc66b858f5b0bcc48f364f483f60721c75c13df51ca76bc28ee59db7334d5170629546d54390de19d335b2be0aff4947ee16526344a76bc28ee59db7334d5170629546d54390de19d335b2be0aff4947ee16526344a76bc28ee59db7334d5170629546d54390de19d335b2be0aff4947ee16526344de46da9948a760db50b2abcc66b858f5b0bcc48f364f483f60721c75c13df51cba76f6a4eebb9e3aa1764074f983fc8bf1cd51c171303bd17a84c153bfa848afba76f6a4eebb9e3aa1764074f983fc8bf1cd51c171303bd17a84c153bfa848afba76f6a4eebb9e3aa1764074f983fc8bf1cd51c171303bd17a84c153bfa848af91f81ce5bf9c88cc70dc978eb50fc314583f9e1e42c4fd5e4bdab5f8f551bfbe06fd5fcd66ae00e4f4771761d44ae47a3cdc575f6296325e3f2072c1e9adaf7e06fd5fcd66ae00e4f4771761d44ae47a3cdc575f6296325e3f2072c1e9adaf7e06fd5fcd66ae00e4f4771761d44ae47a3cdc575f6296325e3f2072c1e9adaf7ef0ab9a4015eb79610d8f795bab430422d695c954e5a5229c61be9337bf78fa50a83c32ec8e7f7284a6d917f3e1ac18effebae011e96af2d898c55a361cf4f714a83c32ec8e7f7284a6d917f3e1ac18effebae011e96af2d898c55a361cf4f714a83c32ec8e7f7284a6d917f3e1ac18effebae011e96af2d898c55a361cf4f714f7463f2d7b8190f761754227cd37f63e0792afc3a76d1bc21f1357c690b74ce344384dbfc37d4ed04842f73988b0d7dce53a389b75c373991c3ca83b26f100d844384dbfc37d4ed04842f73988b0d7dce53a389b75c373991c3ca83b26f100d844384dbfc37d4ed04842f73988b0d7dce53a389b75c373991c3ca83b26f100d8697a54ed73e83b36e6f4c4ba503dbff0780f032e65311b7acfe4e618cf6c8be142376ede22fbd49cd23ecb7fcd690206b53e5304c1c75fcf36358ab8acdda62a054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8b79abdaa1c57d2b62a22d04e33c0f7ca5c06f911eb9ce62d7932ed42beac17b89305a0606e3243e645d97fd603ae848d83e6c49467fb0f1a48e892f5ef2d2986f212564440e6c4ed37f1c02da320b7e7c159f0cceb2e0f987f925d7f9db2a9eff212564440e6c4ed37f1c02da320b7e7c159f0cceb2e0f987f925d7f9db2a9eff212564440e6c4ed37f1c02da320b7e7c159f0cceb2e0f987f925d7f9db2a9efc1f06caa97b2ef3d11da879ce9a303bcf2a110a39c59cbe499786f87cc661d07c1f06caa97b2ef3d11da879ce9a303bcf2a110a39c59cbe499786f87cc661d07c1f06caa97b2ef3d11da879ce9a303bcf2a110a39c59cbe499786f87cc661d07649a8a0d752839a8df33ffb83b4e7f6e6aca7d3902e482e6583640fdf736864d87c14d213e12410a641c4bda62ab54e274aef3c31bc5e9b061aec5cea0feee9e8962a375442bddd8d49865f3bf601c2c7a741fe947d8ec667358bb640cd0d19bcb9a3ce8f18e7d0a0cadb73cc9264772462de953499534736998d3c54f8c7c3ca94857b7da481edd33dd47f5b44ff230d62a6cc9be5d6a38e05c451315a4cba0a94857b7da481edd33dd47f5b44ff230d62a6cc9be5d6a38e05c451315a4cba0a94857b7da481edd33dd47f5b44ff230d62a6cc9be5d6a38e05c451315a4cba0bfb0f41e5b8fc3c1f60389ff3ea21de338e6f359e6eed868bce05fd6d019cbecbfb0f41e5b8fc3c1f60389ff3ea21de338e6f359e6eed868bce05fd6d019cbecbfb0f41e5b8fc3c1f60389ff3ea21de338e6f359e6eed868bce05fd6d019cbecb274b4e799ced5497bc602807e09924c28b55be27f5499c581752d842588ab8e8cfb34a2998854579a724a54ca060c725908dccfb4e9cfbcf9ef4c852d4564cc05b587024e31487f1189cade90e619f598981310a207d37bb63c49de59f2e4426b799ef22ae31f89d5025a57811fb3cd013dbbad9882b12a04bb47cc1f274bbcd94ff31d3a039764613baa39bf371786e889ee580b500948a33ab2af67cc08b16b799ef22ae31f89d5025a57811fb3cd013dbbad9882b12a04bb47cc1f274bbcf066ecb8ab9e32a5c20a4430a018de7fc1caf7526a77d163f4c61c3c85dbe5b17d989c450fa3bacb4533a1096a832f64b4e0f03763cee92b4b22d37b5b253716f066ecb8ab9e32a5c20a4430a018de7fc1caf7526a77d163f4c61c3c85dbe5b1f7eda31d07dc61dd0c5572174c92790c348c3a85d02ee934a65dc509ac38fec659188a3a0bbaf7460742c99f0f67cb138cacfccad0cd64e057a1119357ab976af7eda31d07dc61dd0c5572174c92790c348c3a85d02ee934a65dc509ac38fec6555cc433ba3de3ceef8ed3368cb599098ab71dc37e636f0ba175fb729b1644d8476742f965c4d5261b71cbe5a664f372f4a052a16bdb1b8dbe82a8e76c1984401fcb159e2b00be4f1e35878fe14f725ef079f79bd9b4e2259a1939d7f249edc7b2446b2008f1dbff60954beb1142f6933cf5f6352c28e63535e110d5ff37c43fd8688f3a3c2b62c5e6be1369d5c8df6fa2360370d120d6e47e3b1f27ebb85e06644cd76e31b55c26466d3e13d2969d2e34041efba6189ecb4d3aeb923af857b3c28551b5cbec405d97f9241522a6d3763af0a0ecd8969565d2764eca1a5a36e3e6098a552af786b4cf7160f500087d416655f9b0e21554e8472aef17897192c74bdf4d0fb4721b9d99a4012b98aebdcff46c2201a9fe0bbac2fa89d24783a2651fe2869970520af02fb45c06fdaf59005472031f4a5d2da12f3de743324481545605134d5d03cf5357c9cc7c0a37e8598c2e5df22380589090e81169d05642c5dac38828398ebc70faea9ceec4c96fc20abbbd31dcdebf29aed312f6d7d0b256fa690541debaced747ab58f7e0d14e3359f9b16b835b1392be6cdd5d274cdbbc3bd3ac67028148eadd66d7aff1712def0e004ea0e9858746f54bcd126380434abd055946960b9dc4c90f72d0e21973899beee63bf8fb3fd46ac41e0606b32ea31237e213ac61c2805024a38127cf0fe5e1c5dcac16c6d1b4cfa79d8f4fe3b13ef5973c13e29f1cb25c1e70a048acdb056fc027e9eb237e883256dd133e3316168a0e0876e1c73579b2e0b0a29c6d2505c072676193d1538ef3c42e3d0269b29bdbf8e7deaea8748516e0c3fb0f91e10abdf4bd6975d8152e08c740da525ad6cddf47a2152235957da6eb7db1bfad5c944cbab47a5ee8e2a09fa9a4d27ec3037438982e2bdd4aebdb37d987f467d0d0ae19de17570826a0a532b57053b5f42d82703d09f3a533012f042412fcb8eaa05a8a1b5d681673566a5f525955fc868df1a8ee2aab58f17a066390c956a1aab91ab6e218c57739778aa900cc7708c2d333322c26719aad2771f38b481bf32b63556b364cae693ea3364433f5fd2388cf3cd150cb84b076179dafe8422b786dc912ef2b6b51a7d83a11ac635018426d84b89f71912c2d3d54910ec2dc917d472bc5c7bc2d63f9f6d777cb650aa8c9cdaaf3f337a0d8adef4046ff46ef511d81ef3aefa01fbad07665f7ac4938153e4d922aaf5f0417280243b2882f8ccdf09630aa9257aa5198c9f6c08ab5802358b2cbdd09f823e26e466e52c127a5e384be037aa109cb6654c48c13ab8aeb63cebe0e1ac7788956a5a730ce6aa783a86f63e5de8e988b4dec52312fff959ff940a0de9b99fb88f5d3253cc2c3c364b7cf336f74aeb21d6255943f6a2d995ae6a12e2905e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c2463cbaad2cbb5cae4e5c92e4060fa059e937a22137c289a482bac7f6b996fac2463cbaad2cbb5cae4e5c92e4060fa059e937a22137c289a482bac7f6b996fac2463cbaad2cbb5cae4e5c92e4060fa059e937a22137c289a482bac7f6b996facf939fe1db2fdd3d2dfb8e81d0cb15871961b0f18ccf6f1a5212435a98f7fe86e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a8cba9f1b19fd5a86b65b6fd591f1164ca33a477ae4718177c841ee07cbe7765a8cba9f1b19fd5a86b65b6fd591f1164ca33a477ae4718177c841ee07cbe7765a8cba9f1b19fd5a86b65b6fd591f1164ca33a477ae4718177c841ee07cbe7765c9d23efe3fb1810eed0f1a81a7d7233aa5c11b1529e9905bc1526ee978fe9eb6bc74f38459434a91477197a4c9b3a58bb2bd4c70027472003c0e363c6d7efad52e4b93744bd4e4c92cb0d04ad60238bb2c3aecb4e940f0c66111570278af596f0b8fa6b02cd045e234a77affd1a0c17efeeab1dab18a5e5ca5c3dbb292107b3f2dd1dd8ca1e049abef5e5548179aba2532952f9f5362bc7c6d09bd73f80c597408ddd2039ddc9eaeec50773ec40628abefb15a58a6ac7c4d9f74a4bb1d2e99358cab266bf6c988927fa204c0ecd72cbcbb1299b5f6d3045ba31c959cf6c35418a13ce02730563600dfde0b63692389968e44708b9bc505057bba127eac0664e4fcbbf4ae71c03de0cb4ec1f9f5d7acfbd5bc0e2ab643ff30ce705e1761255c50bb73b52270e79f31a54dab8714a0c6229b090f14b4d725a806dfbad7115184501e791498b869d0f1ff4d8609444dd01757863f090eedb402c5b15770beea99c37684ba667d67b1de8d9aab5a4dba739f052e67c60c44a0803e75fc5d11cbcdcb1080e2d24204e11d2c1bd453630fa3cee5a6da39dfa9d0172eaf635bd3534b81b99348d18818d4a27ad5db018045a1c3abf50f2bbb0bad81643f082389201d7399fbc0d494395da89493b77a15c88b5100363ef25c7fee27101e3106eda61bb42f46a49fef8c06cbae82b8e076dc16d09d8fb9a6e46673191d6664fb72a8b43c2f46a49fef8c06cbae82b8e076dc16d09d8fb9a6e46673191d6664fb72a8b43c2f46a49fef8c06cbae82b8e076dc16d09d8fb9a6e46673191d6664fb72a8b43c3d5ff50aa97f443f706feb6f04e8e0bd37af4e12b0126afd26a69bb70eca3cd73d5ff50aa97f443f706feb6f04e8e0bd37af4e12b0126afd26a69bb70eca3cd73d5ff50aa97f443f706feb6f04e8e0bd37af4e12b0126afd26a69bb70eca3cd7a37e96ce7ea5c0a1408d7192a71ae867181e8e9bf7ba7cf939090b15fb293221a37e96ce7ea5c0a1408d7192a71ae867181e8e9bf7ba7cf939090b15fb293221a37e96ce7ea5c0a1408d7192a71ae867181e8e9bf7ba7cf939090b15fb2932215ec4004a940ee742518ae90caf581293bd466a6f4daac28b5c2da9e90eba41315ec4004a940ee742518ae90caf581293bd466a6f4daac28b5c2da9e90eba41315ec4004a940ee742518ae90caf581293bd466a6f4daac28b5c2da9e90eba413149a1986f468a327c3a1acffad1270e9c144456025dde8b1c720334887cc3f2fe49a1986f468a327c3a1acffad1270e9c144456025dde8b1c720334887cc3f2fe49a1986f468a327c3a1acffad1270e9c144456025dde8b1c720334887cc3f2fe731941afc5a64b92c06df650521edc82cb99447cd6d5570c993a511b39d00d1b731941afc5a64b92c06df650521edc82cb99447cd6d5570c993a511b39d00d1b731941afc5a64b92c06df650521edc82cb99447cd6d5570c993a511b39d00d1ba3f09260e95558621175cd772c0d76d42bf60ebef751b0fb0bbfe1477f9b310ea3f09260e95558621175cd772c0d76d42bf60ebef751b0fb0bbfe1477f9b310ea3f09260e95558621175cd772c0d76d42bf60ebef751b0fb0bbfe1477f9b310e44e72a6b2547119e0820ca650b01a09031f54b96e5c099f3f74e884e68b8166544e72a6b2547119e0820ca650b01a09031f54b96e5c099f3f74e884e68b8166544e72a6b2547119e0820ca650b01a09031f54b96e5c099f3f74e884e68b816655bff057aba86d6b1e7f6f481bc64bdd33b7a30729fa9c52bf03a3a3809f41aca5bff057aba86d6b1e7f6f481bc64bdd33b7a30729fa9c52bf03a3a3809f41aca5bff057aba86d6b1e7f6f481bc64bdd33b7a30729fa9c52bf03a3a3809f41aca502b279f56c4c4f768679acb607a133faacd8436f8767d7388c341408bcce878502b279f56c4c4f768679acb607a133faacd8436f8767d7388c341408bcce878502b279f56c4c4f768679acb607a133faacd8436f8767d7388c341408bcce87883d79f697bc78ca33dca681f23123b24005476356a5789d7a73fa1e0898cad3583d79f697bc78ca33dca681f23123b24005476356a5789d7a73fa1e0898cad3583d79f697bc78ca33dca681f23123b24005476356a5789d7a73fa1e0898cad35930080816e5cdd902b970119b7950bffcd410efc78c0222878c21903dcff6567930080816e5cdd902b970119b7950bffcd410efc78c0222878c21903dcff6567930080816e5cdd902b970119b7950bffcd410efc78c0222878c21903dcff65673bf6eb1c27d9a1ef2b3b058c63018d715998fc20fa422af00dd08845a96bb7f63bf6eb1c27d9a1ef2b3b058c63018d715998fc20fa422af00dd08845a96bb7f63bf6eb1c27d9a1ef2b3b058c63018d715998fc20fa422af00dd08845a96bb7f6b76327eab17212dfc79790bab5f0397b22ce96caf0c3500f6e56d4efc89c35a30c9863e73bdaf3a3918aa973724e398ed8838fccd6dfdeb098c930aa5172c7eeb76327eab17212dfc79790bab5f0397b22ce96caf0c3500f6e56d4efc89c35a3d8b7457d9dabd9e54c04ae69ec17c0b13ea37f5ae566f873857d68984a13696ed8b7457d9dabd9e54c04ae69ec17c0b13ea37f5ae566f873857d68984a13696ed8b7457d9dabd9e54c04ae69ec17c0b13ea37f5ae566f873857d68984a13696e49d27563496895c8669f615642ff4320b779ad3579d7e161c4683d80b8814a6449d27563496895c8669f615642ff4320b779ad3579d7e161c4683d80b8814a6449d27563496895c8669f615642ff4320b779ad3579d7e161c4683d80b8814a64a141e2624cb455e16670db773019327a97cfff71e655a59c5da6d146fc5e1cf3a141e2624cb455e16670db773019327a97cfff71e655a59c5da6d146fc5e1cf3a141e2624cb455e16670db773019327a97cfff71e655a59c5da6d146fc5e1cf353d5d4b3cc92641ef904eb6d1f4b192bc5afa441de32f6ebe0dbfaa045058bdf53d5d4b3cc92641ef904eb6d1f4b192bc5afa441de32f6ebe0dbfaa045058bdf53d5d4b3cc92641ef904eb6d1f4b192bc5afa441de32f6ebe0dbfaa045058bdf5485f92ed25abe93dba6c58a12533c8dc596904c4de217302661438c12183e2a5485f92ed25abe93dba6c58a12533c8dc596904c4de217302661438c12183e2a5485f92ed25abe93dba6c58a12533c8dc596904c4de217302661438c12183e2a06256bd387329bcf3d5fc075c586d7b29cff2153b987da9e8c19854d5287f4325d9ed48a450208619520c643a5db40c1433a9e5ebddecb6789d7da50f9f7f9482c8cfd497a36b3a6008d7b5491ff08dea51d8a501b07a4c085dccf05f489077fc50390994839142e0fbb3df6b7c175bbc5cc71aa084185cafd86f360044d131082544c2ef9cf58b69c969d19bd470c2cfc4533e37b6dd8d64fc52209fe37e276703ab88a6363b3f17be575d06d5a6b2dc83cf8e13eca6bee275b9bdccbe5d4e127ac0debf99264b81167b961975a2afe534c82a524cd98aa3fd85062f8d25fc538f1e868b1daf10aa0342e239074cb2a9c0b021006b07b9acac083ee984b565eaa91e64f7afe9f5c82fa3b4019352bc762e6f8d1aa05bdd5408305daa629f91dd7d20a9f15b209485ddcd9794b5ee327993ff56c96b4f0d0548e5769d8a5f7cb1e813e2e1546526f216de8e547e99cb4f3e3830d061c440b371a676cab0359a2cdbfabc494d9c6f7271eb6090bfa82f985a9539bc913f8ae9ac4bd8530d37153853d404a971a95d722158441af51c7642494f4db29e7ebe3aa31d8585eb0c86f3fb3ed4833418c98f7828f5be0052e731f70c05642002f4ed6907e3f970f374a674e9a444596abaf66775e80f562cf1892db4fcad689ce97fa327df86569a2f16338c0970fcfe8d9d0b085adb2d856b998d4af810d3ee9ff397ddeab186da984dfbc0128ec43164bd359323dd1c732b51d99615e8e1df94d39d1d7db7d0c526481402bb5eb3e083defdd79885a4d581ff7380915b76d97b6325e97c08db3292512799dc313f50d9faff9b02ece39c47e0ac19a140ab7f540ea462cf9bc08b7a2189958ee5bfa9d9aaed9a39bd9d08b17200c6ab14acc6ebce6af0c9d284cc11d5f1bb3c9bdc911b34cc6b4af6d1928e44bb4f761a0f07a6ed5f1d61d221a187bbb524d415b9ac8ba73c3c90b83fbf3c3e49bc60e35630da376ca48b1ab0b5f971feff1858d72628669be890f940be87ebfab3c20c0631526fd467331c0812015787211631572b0e48132e43849c7eddecfe566c7b4e5dbf7d1aa9e3c3a562363419d5ac4a3289294f5a567d2b172c5528c09775d7d03e0cbe071db9d7f4986a8a5020b59061b7cf581e41a29466c7e322ac456802fc755d89f5311cd65b5c08e987156e78de7758a4ac82fb0aa221439408a79454547a9a4b7bd116e2ed2f23b18bdc5b988753cb7a46472acf34e07da04253b31c1d56be7ed8bb0b5c9866bb7bd5d7db2573d15917424a071129c39fb3a3cf31a16df19986cef00a31027ff1ea96e466d38c6287a7ae90526ffe8eda0949f4bca67f4673bd35d11f15e64527e0de62c1869e2b0c1517e59b31dcf1a973b1dcfcc2b21fcbc560041a87620b81fd23caacf6dea51ec9558734ead02709f6e68147a039c432c1fee695021af02f2f491e73511247023415ba80ff01f45ba7456026cbc705755ca4ba349f0bd650486336f9efd3af7ea5a5b270901db5b9f52ca178a749a55f87d4a70b6a6e083acb6603e84b0e0c0c96548004667a510c5cd57bebd3262e11cc1e3f84acfeb7c690091634782381c99a9551589cbc96f7fc09bfe0c55b7641de938fef56a124b817c80192b9736de85d1879592e66958ffe135403bf947aee0329c104f4ad6b2b1cc364b736b51b0376225494611a13a07dcb9e52822343fc7d5f0819ae7b68e1d034e0ad05952587e9bc5427421784e05772f142fc222b6ca803ac20581d451e5c0a265cc48069a12f4d01bdceb91a7e9315aeaa89ef8982e214c3dd5d08feff1f8e3b846d8d9c8445ea4998d5bb80f2cccd161b8c99fdc5b5915818659bd8dbf1a0b862419526c86aae4f5eb748d4eea5431bbd88baf65a2703d3286779924065942f0aac19923035f4c33392783131479f9f438ac6539cd1ea7ae63f93354c2e38625226990e4a3ef4a8449520de2753a6f8f91aa1fa65b3d13412e3379c1294492201803f44ff0371655e53601076939865c8d3c6e9335ce4e03bd4b5d2c2e84b3c96c5cb9542c710c413cc541666cb8193081d98affdd0067e5b2d2775d220d506f7fc70fd560a5e561752cc01391e61797b648863a2adb33c38130b6457b90aa8c7a2ceb5517b4a804bedacdef4e4d1d3bb7062558b659c67d179b0d6f34ecae818f0fab66a7b8aa45f5ab3753e62e8ee38352452b489ffce45129f03199832e893fca9db0540a22744588c4bf011464f8a4e7d44049123284bdefe5e9fd107cc337d4b9d80a1fec9c35544e39f93287cc173a941cf0c956e4665be4a51bda2df7715cd9190282dfaaf6bec83830791c68c86ba71fce6f0320155dde0b1ccaad89c57ec6be5b214f2b9aea827f9d2ec9b5d9503fbb80b73579b9a5558bdd32072573697db6011580e0f40c9e89505f80453dba71b8086841262c9b72d125e4c8fdd685ce86b6b0d3b587d2df63785315db1945179c726049c5f8586791b57d996dbe8c48a0027b8fdc8fff86278373346d144d79d87a3a31d63bfef9a529670610316c82d8564547e5616a49ad0d124e44b475fe37057c5accb6f8a92dcc2980b9de10d97782a8a04783ed5b232ae0f55cc36480c4d1782fc843fbce49d508b8ddded2b5d7c741c6f156a16b55c081d0318579ec1dde54d28f0ee3ec9d4997e27a94f23e040ac906e92accc2f5985b8019c8d08b431078cff67b77902f0e8e23aad48ec5e8840a8f9725c494e674fd5a06d347d235cdbbad5d17a6e8cebed84ae84497ce4ef9f06f707cd3dc9b8bb76f9265e3e004ba830b09dc3a7b0f0e0059cf1f2bcbd1bbfd250c50b7ef9d09bbd684bad8a019725647e25d29d60f0245a8b0a4d8901f970f70a34beb99766e1f449b07d003f53f32464c7c507caa3c0586333e631c6183180ed09a008d9d52c6d289b8decfbb70fa320302d9e39d392140f056ca59ebd0a5449f7b64153a69c16d0cc8d79b4905fe0398ac013d8c604eb935b85260c31ded2ea3e336dde32a2eea19a068d306af4857b0ca7e6828e60b9c21035fb2e39de8d2d0ad647f6e2698c470102ff3d1ec7d2654bf0816c04798a43979808f02ee6d3828f59ea02e6e6284e854701e54691f484b8e09b84d6c47f170cb65ecc5c39b9ff45ca73c6a5691c447a1390e41d4bac22cbc65955bcd68ded132db0d6b0848edf581721ac3bda909c115c1c7a22586559808240ad26e68ded132db0d6b0848edf581721ac3bda909c115c1c7a22586559808240ad26e68ded132db0d6b0848edf581721ac3bda909c115c1c7a22586559808240ad26e8e21f2e410b2c59e6b4ba4f9f60b66315569dee625d37a0d3de79fc0f34c8b108e21f2e410b2c59e6b4ba4f9f60b66315569dee625d37a0d3de79fc0f34c8b108e21f2e410b2c59e6b4ba4f9f60b66315569dee625d37a0d3de79fc0f34c8b1081d63dfea8de8e59ed50791b0f0a57cdc716183ce76d0e7d7331c666ef70205581d63dfea8de8e59ed50791b0f0a57cdc716183ce76d0e7d7331c666ef7020559a922a7b3ca3c6fc41aa361ab30228cee8e8ce293c456a44d49da89d7057ec9556e3e7a3a20940654fb63464673aed24d48863f12431190ef16d80d00ad1e2b756e3e7a3a20940654fb63464673aed24d48863f12431190ef16d80d00ad1e2b756e3e7a3a20940654fb63464673aed24d48863f12431190ef16d80d00ad1e2b7d79827b5c9593be6e5fb288c303f3b236584994b6114a956c611eb0b29ca018cd79827b5c9593be6e5fb288c303f3b236584994b6114a956c611eb0b29ca018cd79827b5c9593be6e5fb288c303f3b236584994b6114a956c611eb0b29ca018c2899d7251c248785d7a8f6a17f62a8a392a7f078a72b3c6ac09a2151ae8684442899d7251c248785d7a8f6a17f62a8a392a7f078a72b3c6ac09a2151ae8684448f0d25ebaec6f77bcbb30fa0d08fa4eacc20ed5b19a6b992b3d070b520225799f8973069a4834fd65f51463c07a30afb99e69b4635566ce77e2b6de7efe76ef7d004ad4f2cc7aa0907bd5c4f5b2edcd0e959d39cad409f1701d0277a472ed502a49cce61f6e807702992514820d0950ae2fc6cb916cb996c1cd5945c69aabca6c3737eda057bb71bdc3aa145af87f73e8e2f22af83df8716c7d9aea9372bf577e3efb3cd0c826849495bc75d0051769df04444dce882e150377054169d03e2152378df013f81407266858ebe8039d3dfd1574a110387a302afed8f2ce10bec51f315df18df3de67a2ea8a460c36437c048794f1145d282f04b8f66b5a0e4f38ebe86a823cd2e7eac0c5d04394f436d08779bb58c774615514df071fec2bc97dd628789a4030da18104d48d020c1b33bef33fe9f3a980d7d0adf0dea9663e9ce03d5bd9943a22daefcba590ec9361a36ccf2fb6b2583525744ffb0ff64f7690df7c887006e1f7728c51a9c70a383e248b6b2a689b4f45904027c8fb233b022908e1fb786d8c126bdd79fb8985d0ba94aad09ad95d4c92d97c1a6825dd08eac4ac29d4f347ca919009d1a80d88991c64b6f60a7ec235708af0a9f6c85fc2ebe0aa75325ca636bb9a8553e08dc6a874b1ec85e48a7912f710e617ac86e69d9488e97db1fd2c6d679d8cf46b5bccc72ee003b1e63f152cc2d282fbc6804a68d5286cec28a2b163f47175ee1f05d237e3bae61d99d4704171eeeea149cfcc17b030b620e97650d06987df589190cafd32db3261860bc5eb17a2cedfe8ca66b4c9399c0a3fc092f237c1d60d6fe2576e38c123eee594ae9cc68d59e15863be6721b2360923425df70d44291829af561c0d69ac792e89ee9aa08b1baf3baa125e557e4c698c0e395d38cf6ffcf2ecce13d6a84c2dedb7f9fab7b724ecfd108cc221b2faf65c5f859df122d54bea22ee16a8c865ff5735ce54b710e880db7e6a29ebcb31cb8d244f8988bbb1484d9b1189fef011c35b7a88c60e94eaeec8256d1ca78990c2bd129b554cec2df8d4901ac0fff37355e41f1fa041c8410d8f72d052e2b6a752e34fc518c769bc371c809fe0159b958680a268b9d247043367ef01b0b107cefdfcc4797753a9e087406d66a4b8d9525c1d0fe27cd21709e00089f2d030a1eeeb594b334f721bfd19209a5dcb1a5d22971a0c91aea3b623c924492e67a26a141cc8042350d360d54395d3cacbe8c95693082e7914f401f1f61f978656d89ec8efb566af2db9a019a1c5a97f3dcd964349f21d64b2131c3ca5ce62a6a52c80d60718d4d86b1ffef1efecadae18518556b632f26861fc91bc2a84676462d83ac508ae3f3bfe4913ef312412817593eb8dc68d6530b96cb04a900ae45ff69b65dfd3ea0c8e465fed08579011b2e297c53b57b4a4b7d1de1666155984227a752771cf47bb9da523ccd05179251893a3cefea8b55e672c9facfcd1bfba24b88ef33389cc56f1dd2ef6228e63aaf9fabc82c88cd28fd4905239a9eabdb3ed3bbd482e27b2a81290cca48fe76238b539288bc7ce6f94c017d365038ca7e9b126799fe8d168ffe2e3ce8a7e978efa00d7683a5131c51d74e34779cdcb75e5427bd124c5e017fe4f148b02ab8796a95494d464153d3abf21cfb996a2677af7a7e9417cccc70de2949a96590afc3de6b2b7382d06591ba10d726a34fd224da774435ee7968c4c9b7ffec5c52b654c81f6461b55d68747f3f7c65e562fcd31618ec008c457adb3ad641ad6df86aa11f4851e463c13d84cb08aa7ab0428c923cb6da3abd20685da0ee0e27a692592a121c2ee910aaec7e38c6e2042f1ac2ab4f366a99253522e80d81fe27189f03e9cd0d96ab225e1d6ec91d58593981d73603583a860a0a0d84c34ba4bbadb5d44a2ba7bc1f733dcc09e824a9ce12221ff2e181300563846729714f09a919d0ce976213247d7a7f0fd28239e36e914581f1daf6f3161c55026d5eedb3340147cf05a8f41ca9657bc78f8fc11387b91cb9376c272a313cb57b5a241a64ca7fcc10b44cbc49d886669c8e5ac80f99dc47d6b365be98427af3b5c66a49d12fe288277d30f1cd183b6d24c66feb91496bb0e326ebc380f39f57e630f4c531265419c647340ba82ae819cf303327b764a27d0b89fd4cfb65b111d9521b6a0ab8ee74ba260457250ab590b16eeda5de764a6594975359249c38dbf2701c6e2914942074b6cd87f4a3a94bd522c3663818ebc594929fc2813f55aeacfd8d3769843cf0c4d330f124203fafce3f9710677029427f7c06f1fd64cfe30600692c863b60bafaceaa5656b68cb0e2b123455c6612572f9e4a4cb065dc0f12c1d8d0df20ebca864b1b36600f86095de4f800dbbe44d6bfdd8555b9e3c2f40c4228b6203f7f0b0c7b30bcb0effa8d73a5420c50f9e310abddf665a10ff9c34b78434fee3361845a69bf52ee9163774b0c6ae932ff89a0a0bc7fd788e98927974eff8053133da4f1feec86fbbc8a8c13df182d3bf49cd81b80618652ca29eefffc0fc70eef61e251ddb1fc59832f1fc6c1fe8db5668f90596a8121a86b7dc23859b4ce0dae0a939e7011dd66c753468d19253131e069edb9e1083006099cb2170d6e3bd83c0953f749907f7e48a62f4c2aa72459cab16a8856c7e4804e70d7077228362906b38c5291b883af98c1492d7b6ae6c92b5a0bdedfc5d2b274af71b70f2cbcbb8c100f4ec791fba5b877e19945c84c5ae539913be52d6f0758cf1bfa8c468ff941fcd93ea7e2bc4d02ceecfbd9149df23f4d7477dc4f3bb1461a9a9f7f8755f78633e841dea119ab3c6ee62d675c76621348afeaddc8fe8afe0a964a645bb047ee52430c22b8c1dff4f23ea2a7c295c931aa6cda56264bb2ce8ba0f962b9ae1a41eab09c7e3c6710d0bd9126c7a3326a7f939a26bdb940e7c11dd7979630fd8bda451b50cedbdd9c7b77b367304a954647e48fed95956e80d2548917944eb35f5c6149669935621a3514abfbfd81086fc580bf4175c8066560cba555fa48bce276f2975d34591121bc40fdf56d9f7b97613737e131c7147f97284dd8ff750b4c48f757d0fd25f9fbf136c03a76a2cb3bcd8567fb66c2b59d388b6f6ad2638c6da0e193795c3491c025d96087c84f20159e43bbecef6686a1d9fe510550ca21346ab91719214f00e1ca66a554bf41afdf4522a5beedfffafa316b5c67ebdf746a8535bb7cd1dc46307c9e3bab7f1981f02501e22a3eeb4908dc8a7f31ac9a945eaa62ad8d92bdd8f964c2522f7ff219bceb8355b2acb9493f828a14fa10786fb4e6f05f8d06bf76a467bed150d17f6031b45f8e8f22e8b9f79dc17cc98237f4e1ad1074c9aa1bef4bdb342edfa822c8dc491072c234c8cf90dcac861643ed5857e45e006f4591cb184d2ab9c53222dd60c91bf5f933d8ce98dde1f9abbd01b51904e9f6459e4a214ab6e7f00ce74765d16467830d08bd55670af9c010ccb5932b9c42913ea101765c13623d8983cb35ea8541097b77f4fc5d8d6707e7626c6b3fdd3fd27efafe4429eba6c61c4f2fb430c26bdc50e0e5e402bd6d422e006ecd84f56133e8248860a07ce380c52cbcaf51fc2c0f948db51ca458a2f9691aa4fc0fde8c47492a15607608a4129d8d1b06c22ccf108099e2dc40339ad93f0c49806a4b02e2013762de8fde46b5039570d626aef23a4d95f2a0ddc14adc09e9f26d2774ebb3bf1b16777951fc07f610037ccda05385b1260715779d5c9eeec1157f39082a498792ce37540fd01edda96e4e72f839dae6a185e5c59b86e903f64ef52b16facd6c32f803679d7e6e3c901898277fa2d75785f110bec5a03349ac7382f4ea8a48bde2c358d23549724e7eb6b597eaf80bdb3323521a29319f1a1ebfdb5a7155de7acb39ee12314e9c968cea6c99310c32e64f9bcb73dafa39232bdc5cc24eae22b007dd1edf63bbc701f402eb88f0182131718d95b92f01a7f0b0e7684be30c6b03cfbc8123fe2ec2d823b1e43129b3939d799fba7438a4221f2c579443c1591f815c914b0a17e813f17370d5bdcf808bcf18580a36843a7ece5529838e76d8024dd864aceec072a7876c939edf3dc2d5504b53f3a7f92883be050bcece12e414171b9bd46383ea026df66c0929aa408027a499407d08b8ef024309f61ff1ebbb6def4771d4395691328c5548f415a1b13fa9f46addcece66b824ddb2ea2996e5cbd840f19ddba5ff293a6568149db7edd7e7b1a28aee9dfc8ab47beac9c46f88a91c821d66952873a02979c56b3510558c041c4382fb595eca4546eede1481e6bb8f0ef3c44bca7e9b2a0f41cb1871a2162a729cbd417248e6e61472b9d80c4d13b996bf29dcf20218f45c2b26fdb5c625aac719dd54fe62015732844635f182ee43c2d0d32dc74c6fc2b7c5fcac172387ddeb3d64f6473177f1a7cda045041150aec4a778eeffb49cbb15f2f99ffde51d5073e7ad68faf8fbed643293dc3d2eeffb526752c6a45668564de8c36f8920ce967eed9028865215a7e972204db448122b4669c8d4fa7c0f913cbb1b66f7e26e28ea2dcbd3b4b3e9e8a318ba86559ae093debc6257aa4fd61099a950e63dec30553d5f889caba5472e5da91dbb14d19811eb3daf529abe62e7ccbab3bc3bb313fbe3cd08f4e9a0fc127fe1fb8791de827e8e7b189453de3a087254155207e9ab19f3decdbaf39ff3d2d294481fc324ceea6bb6aba1073839e74c53afb60f36fbe7e509b1ceeeec7392d11a00aeaed5da981d3335c8f9b6c4413aa03538a7049e422e7e079e73b8491746e1875b17ada15b965553d9a9a8a7297cca10a155964b1d24a217b3c74e4f012119647b98e12fc2662b47f9bdad3a39b158709f93697778caff0d92518059f68f2af40242b922f9e13678c80b03092e0c2d9008e127882c07b378551b4feb9b472b155ae3011669c70dae2bf8f152f2e3767af3780a7d0644e39bd2650ed34757e7094b89143c77c5e09b6371765c67693ae5cca066a7f504aa86a903d193d34e21327919eaeeced2341a8ebee4d8dd18634704915f8799ee37586e2eea433b9a221763eff9efebe2a2d8e22c1f618802fb5176c1cc7c0dcec712f27b3974ca55a64059858a70dd75e5cce69a8259af0aae34db005f22f57f1dea4eb96025d106bb669bea8909b214a07850b217e09a7867cc310e0d7cb59a6a1d798e8dccfdf5706871c3c2d0151ec7b8232dc458f8f8df809e0bdc9cf85760b8693069c5f7e216f6d96a0c4c3a87c7161487dbb5d8c9695577c7512fdb9d4a694892b85ca51109e40b4afa5ef8fbd88323403e4817ee4f001ded8979929627774d0cc6d5f7e216f6d96a0c4c3a87c7161487dbb5d8c9695577c7512fdb9d4a694892b859dc485e3eb491e94bb1e6974ded1c0477ae098ca0ff213b010e9107c87ea3e129dc485e3eb491e94bb1e6974ded1c0477ae098ca0ff213b010e9107c87ea3e129dc485e3eb491e94bb1e6974ded1c0477ae098ca0ff213b010e9107c87ea3e1258a47f58c4c1e77695e421a1f87a4280db98a061ecbb65cd287636a1cb4267a7ecdb0093381b3aea2bfa6775f1881732e0d4e23d2b7ad05e6078d4e7b7d14eea58a47f58c4c1e77695e421a1f87a4280db98a061ecbb65cd287636a1cb4267a75c155077d1c86effc58ec8e82a82be8087420f0ec1b2bb0d24560ebe397464dba61a75ffa64f70009ecaf4ecfb72e29301d382f64aa81b0461e1c4b41f98f9fb5c155077d1c86effc58ec8e82a82be8087420f0ec1b2bb0d24560ebe397464db303aeb1240ddb684be07f1f7f9e138affaa5413f532a8e9ef4836dcb22b7e633c9ee606f15b6f347a7cfc2141008c7e090ebd97c35a1a03bf93bd6542f7888dd303aeb1240ddb684be07f1f7f9e138affaa5413f532a8e9ef4836dcb22b7e6334c406f3689a088860d6f40d2e47e7be2f2fbd15246af8abe0720b6a563897b3c7dedd07d298882be91c0bb5693f92a983fe6ca3641ae1c409da11ecfc6d181184c406f3689a088860d6f40d2e47e7be2f2fbd15246af8abe0720b6a563897b3c9dfe9bde16a8077dca9797ca2c0268da3f9e91a729a9f354147fc3dccd2bb3bd30053ba2ebc33bd96c1d43ed5acb82cccc566e8589390588eabba4bc2f97fed39dfe9bde16a8077dca9797ca2c0268da3f9e91a729a9f354147fc3dccd2bb3bd73b9da79944f3142fb6547f1cc4dc03bf59789ccdc79eefb014f87bce43200a073b9da79944f3142fb6547f1cc4dc03bf59789ccdc79eefb014f87bce43200a073b9da79944f3142fb6547f1cc4dc03bf59789ccdc79eefb014f87bce43200a0e1bb9c6051b5535a014043c02d4c528f8a32a65bfbd9e7b4d9468fe70c917c26701fe6e1f9009e987ef560f5b863f73871d70a64b188b81bba101c6da676455ae1bb9c6051b5535a014043c02d4c528f8a32a65bfbd9e7b4d9468fe70c917c266f7f055bbeaa07ec505eb0be9ba75eb653532557c6bf944968f40725c6f215615173b65879109406e3b28b5444b86837100d01acd810c891a2ea3309ee8a2efb6f7f055bbeaa07ec505eb0be9ba75eb653532557c6bf944968f40725c6f215616e89ae725d18cb3329df00fc48191d4b521d052f3f25d6ad01a38bee67a48539aab183a1930ab8121421afb04d281b25555c3851af4fc6261360f78e455b50ed6e89ae725d18cb3329df00fc48191d4b521d052f3f25d6ad01a38bee67a48539b57004038036aefb9d95654c3a446266d9a5e6fdb7401734b5c7850c7f0c477b2b2f774867dc45b17fa0c3bcc5cb648b6e8d2b4bf876faa37df9a68bfad2a9a5b57004038036aefb9d95654c3a446266d9a5e6fdb7401734b5c7850c7f0c477b945e85eb7a66993784630a229878891189294acea0e959d94c0fe7e74f2916a56d3ea0fcaca8f89118842f333ae9205eee1b87bf067646b3b50a8d2b30edc3b382d772fb490f9d623339bd70bcff78aa05b74138e83caf1da228a348e6ee46bf2c7ceedff64a6003acbb5984089a235cde55e68b268907b9e518ed796e1bd2070fcf296ac8c1434741dc0841b7cd2a64986707f6d586e11629b0d75c41153f2628f251f5cd6aafd6eab92f181420dcacfbf4c95c85f34df1893b858de1640621d9d17cdd1eaa960b229ca81ec67fb2c6fad79da2a563651330d3812af8de35e9e61e15b45ba4e5e79f05a14b10dd3e99da8f3f617dffc60dd6930a75e3875fb858d9014a007df24df40beffd37fb034afe535af8ad44fff9aec01c80d5e946c1ef84f3bf531d4489d745d8b8f014e793dd77511b7e4769ffb313579c69449d6ad35747c900ef5f6db5db4f1be366515b2b4a141fe251d818548b007b2b30495eec64e5afcacdaae30e36d90a0cf798c4a8d5701821c5d73bbd8b68e0c9d49ac07552c26ac48caf9810754818adc398c2a5960eedeb324a7b9e610822ccfaca97eb17fa7636df0d6a971a858d13383eee89caf6153c1a5e02be0f684f4edacf12e3d7cbe5d57bb726eb64704172b86e7aaeb78037862b63990aa6d965daa8aea8ced5d9998618e0c810cb8d5520a0f3911c852adaa9a397142fee2d9569bf95cf95bd32559ee5ab76003261daafad6813986425815a19074083820139727ec3e8bac6f3138efbd58cf10ac595452265b7351c99363d36c651837425fcde934e970c4c7bade4982bb970dc78a77d741132019007fea1d8e8fe9cadea0fc5f9db9b9f5a2e6cdaf162433b32a33bb982df55632cb4e64d48f7ff529e555fb25f4434b3d4e18a44da79f9c305de3c29062c4b1426c4d00aae69047c2edfe19684a3c74a6e6610eed84b5bb25d4049e519e5cde109854ff05e67f670cbe1d2c39a8abf3ed734ef91732d65a26ddcee01b61f959f1cd5cc491afbde52fbe270b82112603910888911c18e671ee0cd4c628c63aed6856443f2ff8751c70c4eda81cd4f9136376aadc0fd3447c0e9223a9b0009d475c0d41c8be0e70f51a31c2a579c175a29758edb486c355aba54abcc52a5c54df0b7b39ee9130d449a0c2bf598938a060f23b794fe2480e0f97af70512d2c84b0d07ebdb6074d74e21410d55720f753585b3067f3d008ea391c9f3ec96163f6a5efb7a059f1e9b654c3d96e2143b3ea4770d76bdd1e5b9a081a620b87b0a2b8ab42eeaaca81646b729aba6a7fb84eea2e2095450026c909f7b882959950ab4d0be8e267e1fe6ebbd06de3ee93cf79086a02dd9f5ac0a198453c287b7366f34a879d788039d6aa4ff6c7cff0a24498cea740e86136200db47faaa55ba8b421869ee9d393d8496fa81e929077e8455bdca445ab70ee0e8386901ecb3aa4c7a248158afcbc131b0233df6d6dd56082185841d848d12ecfff9de6c2a7e5de823d7196ccde4b71fe9dbb6c8e10a959c866b1def3ee65f8554cb5d0a33196f23c0fd9092decf0faef7678e043f3aac4f524e535010650d0c3cf05a97de935c9001fc99169ed71fa80576a14123dc3f2b8cd385ab4ca042e0df949ddcd2a2116f8eef4f52d05f9e3c4cc113454c2fd9a7b8920928a36f0314e225369793f30df83bcb5baec2bb496e45faadc2f17b1ec00e7a6280f08e473358e583d89094abb0fc5a376c806ebbf76469ac320edd3a1e054664002319dd24da8de2077fe324614dfbc41ffb7839def5523a9921f4de20e5408ab4e43f2c53d8bc1f52bee0569a7d962fdc10f4e6f04f198015620dd10912361cd8863d0037c6ed96e493d4cea9a4294435217e549498cc807a191974cf4dcb1afca5c4182f0dbb9caae06d42f893dbfa0394dd8b1e0e606a1dbcfe0da31a5d002eed6ff90f4e3d9c01cd9465bcfb5a031fcc0c63242d8b1585b3fc98a01a7928ee89f5f538da9deb0ca361be127779139a3f5abda1b611538b94be532283ffa765dfbb156d382585fdc56ef6fc9708b42cd0085baaac2fd96212a1018b87ff173ca50e3449542fdaeb00edf6658448d1a1d441183187606cf7f2c9842adaecc987735f33f50571b42c91a385e07e4da7029b06b7c7b726b34397df731ef63972795dd8639ebbecd92709d32c06ed6959d394b57703b5ac78d1b3adc943d72a17777fa140caa40848c54324366c17adb83873452950f4656b4dc7cc3aedba475dbdbf7d5d4626b4358498394fc0606d00d7200d19b4f9fe1608641edbdf6c9ed769d3a041d5d6a01e0decccbc3abae7d10d177e3f8529c86295909a0ce0b0f495ce9244e77378bb3d29e032bc682d013870efd47730dc432487785e150aa0bb10b294e18ca8e59d5a54ab52a8879b9e3d5c83a3f38fc6e80498ac08e23a1410d25f9e21bbbf4ab8c27f36d4994c13ec8a386748b547ec57af0c6f4b1e1c19df9285954c9789cdca6664e4290235c83154d91d1bec779432fc5ebee26411b78b526cdc9eb080bbe18971034b72836461658ae46088ccc7789cda76fb3f669103b06cdc9eb080bbe18971034b72836461658ae46088ccc7789cda76fb3f669103b06cdc9eb080bbe18971034b72836461658ae46088ccc7789cda76fb3f669103b027aa3fd5a30e607bb619fc53defe114f56a15bf8e959b666cafc11ccd1a323d927aa3fd5a30e607bb619fc53defe114f56a15bf8e959b666cafc11ccd1a323d927aa3fd5a30e607bb619fc53defe114f56a15bf8e959b666cafc11ccd1a323d9927c21a0aa9a620f87b14c4a442d8bcdea35fc715fda7560f455ebdc91f7ce53927c21a0aa9a620f87b14c4a442d8bcdea35fc715fda7560f455ebdc91f7ce53927c21a0aa9a620f87b14c4a442d8bcdea35fc715fda7560f455ebdc91f7ce53be20886ce826d17c9fa00b35247b2336c866d1c7312911350463a42a77d1bf02d2fee24a21d474e0d41f0b2c823abba8992357862031e92b39af0d03d16123e5391cc530fc7e9a8d821cd76662abb8d2c2b4c30023bea6b8cd79e5f5c52f4f66abbc7aa60fb0981cfbcd631a26a5710abcdcc3ab4d506f2cc57325ba64e13a236aba109b9a3fed1c18b3f2d036d7bca5e3b714c27d37e7eca3977bb083b171b17a88e4df0bfeef0bed54dd74d5d6433e24e0aa8302c85a9a2c50fcc25d9d994bf584dfef3c620b10f9f09efd681c59c9c11bb8e953142cd538efbc5d750bca62133fb1c668e81584e039485b1c3f947c6a96f851bf954fe6654a43780a0f9df21cdac6fbefae13944b1976f797c56283bd735392161b463d03dbe875327447a88e9ea4ccc93c42affbcbe0f9c8cd3e11d0ad985e5dc474508fd38cda8f04cb3787ada2549dd0a7a73e54771c7b8e0adf1ba74dd9d5ad1a0367d4faa14947c4d95ee5637550ef9f9938ec8a8e8a43e8ef87e1b4bb1e73dc2ef20cae097328216864ed4613fd7e399539fce3af909c52de3ca5ef8163d4bf713697a0ff38ae430f96eacff9b9832fc210f60cc50a68e047a8f126a66ed5c446c6dc5c6138c0245de17d7429142f955cfcc5f8ec0796284e716806e1284dc67a2623e600404cd753db3cfa662abae590871409f094e8e20e8b20668d6ce1079baae42485c2eb607275875cacffccb42ff5a9e11ef22ede37cefda33cb5342a99daff6be2280b800a41155abbeac3af11913cc64f204d172ad45bca2204660e0f4a0eb512c98822fdd770b2e06978a09668f2651aafa6784a43290660d2b275cb5289deb944180031727c9bcfc618c1ab24ae57384a623cdab9f79301e51fb53aa594588c43e105c2ca69ac7cab1f86f5b79fe897b4503c529d838b9dce1ea8f6fc7a1e1eeafbf17548635204859330d108edf9cae260f8497940414b8df1f7f89c090c0c7166819e67065f3cd0aa2f56ace098be5b848c991579f698dfde7c321340c111b0cf5fd83718aa76706850a7708f3c8252c6d563f1696e0f690ad9ac9bb5054b3f9a16607bc45d8b582c2fcb3d2aa90af7781608dcca251129778d906831c0f18353f9f00543c16b11df38cab819331d4ecc05deab2e11ed566178eaf91907fa722869fb06ad283b6c5f8efd79685636f73bfbcaefb5f7f0dbc96c594cd59d9f73eac8d8fd70e4af57ca201a4775fd1df0bc2dcde1242c8fa3d7e7c72ff2927d73aec2d05702cfef56bb3d177d854c8d39d38ec3a42305d90f7b44ccd4f98374659b3df65702cfef56bb3d177d854c8d39d38ec3a42305d90f7b44ccd4f98374659b3df65702cfef56bb3d177d854c8d39d38ec3a42305d90f7b44ccd4f98374659b3df6bfaf4faa84df52b1ed2ff5571fe7e4f3920a1cae217d0c1b6625e4446b3b99b8bfaf4faa84df52b1ed2ff5571fe7e4f3920a1cae217d0c1b6625e4446b3b99b8bfaf4faa84df52b1ed2ff5571fe7e4f3920a1cae217d0c1b6625e4446b3b99b8bb899a3ddce2a5ce745aee62ef5988dac2b23aa87e95cfd7bcdfea677b6fb5d2ca5bc0464706c7e83b859ffb7d13c2c61f9bc72ead89c2a0f594591d6fda7f73bb899a3ddce2a5ce745aee62ef5988dac2b23aa87e95cfd7bcdfea677b6fb5d2cd82a6f1fde6929920d7f733d9032ba103a76dd7e70109eda8678b4fc518ff4a5f5f68eb769bc33b4bebb13951ded462da85450f40fcdc2e968bf6aaf789a6145f9e448af5a29eb39f21fb36e7c45cad30b64cf581b4cfe4efaabc2fc4ca0339cfc24feae7118a1b08d1357548234b7a3491869d0466305a47cc962e4f7c833eb2dce8109085d82190137e7d6de5064d8f08183a0092e3c308277d55329bebbef84e247891ad873abb7b0f852704fa3e6faea2aa465e1b34d0355fb42b380968b2dce8109085d82190137e7d6de5064d8f08183a0092e3c308277d55329bebbe258b36afd3b9715467f13c40f8b964d256768d798031662e25f3ed0adf5cb4b73f0f3608e9b1d83e54aee6e00c710175212ee09f067b39dbae2c76351acee6e8d0803a220bad33369a42e16e7ab4dc0ada5969da20619f4cfb94b42b6c9f60af296d40cbfd6b341efe056c0d4a9075ad441e1dfeb3aae8655d98413deb1aa79f760200dda3cfdff2cd31d8ab6c806794f3770faa465e7eae00a1cb3a2fbcbe3a89e0326292b96a5700582a37ebf3d8ba60f1d136772b5cd15b2c2ae653fda188a4fc0efd8ac47181439a5dcfc19d53cabbe88ba7bff49edafa421f9f04b822209b7927594b43a8417872a7a533486a6c86b481e07d3c2d0e78f4d9c046203425f10ab50ee397d44da9231e17fe6c4ba2bc7d76dc96da782b47d5fbab579c05e8c1dac33346d14806773eb6ac36d80e8c3e046989b9fe7d75d7f2b274faf7b7da592c294d253a266eeb1dd4baffedc87aae29faee70e2c5dab1c86460a1678afa48110eda63bc62087a84f0fff7dfd2a7169ae7df2c0b9a30ae8d587200c79145c3bffa36e519c31e7d4a6ef862999afde0d2971b12d5cc8ccba97d00e228918559b771ca779dd36fbad406d9f8a406c0877bc588d17742df39e5d68daa40f17ecfb48dc5ef1a675a12e50496ce691c9ecc311d504df0d8018f9ae3af758e7a455089b87f30362b93c8d359fff5e5d1bafb378aabdc1570c45cc56f3d0124b494cfb48dc5ef1a675a12e50496ce691c9ecc311d504df0d8018f9ae3af758e7a4504c196f9cd5bce18983a24e293455256223ea4a6b88c84be7eec2ee14edc3546877c10743bd094f95ae432a776d8651f1db564f47233d64f45ffd231d57884ce04c196f9cd5bce18983a24e293455256223ea4a6b88c84be7eec2ee14edc354628c96e551b734847c72fc13bf627f73e698245e9eccc787aa03b7ba6215d12afe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558b2cbd200db42fc2a506d213cd20343a37ad59dbb762b1a3b0162be5dd06db758b2cbd200db42fc2a506d213cd20343a37ad59dbb762b1a3b0162be5dd06db758b2cbd200db42fc2a506d213cd20343a37ad59dbb762b1a3b0162be5dd06db754b9759b55967e74ab08c8865177de40c4352a8b293f49b137730e7d4d95be5c24b9759b55967e74ab08c8865177de40c4352a8b293f49b137730e7d4d95be5c24b9759b55967e74ab08c8865177de40c4352a8b293f49b137730e7d4d95be5c2ae810e99fdd9cb7fe0c84c20ae7e4d1cf8a0f46bcac23277ad2e4ae30111337dc6b4e45d1e019318703953a4b172ba65e618544ed10de382d346336379deedcb14d3bc951aafae7528eb7cfd8083fbe900640ee1c945d892cd8249fab9ceb12218bd2f9f0212bee458a94cb4a5a8cc15179c83f566b3670119b135c6fc7246f2c13bd70a0214347b259c76dbe5d075ebc9ec0775a71f794d21dd78a40f089927362fb07ee5bf510fe71e8bf50123f0e4bae212655ada2e5140d65b4b3f20658556063d0ccdaeb0e36dd2d48a5444934608c057c779a237a9592a0975722f01b1d05d983f0c4067d31025885a68f9966d73a925aae364a718a33d187320b03c9d178452ae88d9eeb30c4c396113983a3baf5086bec937e3627678aed60731227d14a64c2a2de938915961fbc1a1017c26f5e223117164491ad0ae08f28d85574a61f14657a7d788855535fef7dac3b034e7fb46bd6d4ec061b4667b52fef27123e6a7e181cb59bc5f01fde5fbb76699a5e8c5063fccb4ab204e72c086532f46b6dee1adbb448ffb2d55c7f9816e53faa285dd4b9c7b7e862869f8aa003bc55b4e286b98ebcecb05850fae4d4c8c666b2b03592b661056d8a8372d8c74610612b92538692d087426a61cf2ff3b553706a54ccd29fdee942425e01e51a321d3869a013e38a224983af61879df7fc866f6c8c7a1d3b601fd3b4b7000101e03b2a798fdc8ccc7ab3aa0bde6b83249ecdd8123b85f25fef76a550262c95d389905bfe4575700ab6c04185497628449717f848f088452cb437e01ff8f9f6b0330d9de072c40b656a17467c1d951ecdff576ba012fb37eee59e7f113eafef9b9355804af12e8d9ca6dee2881accbbef09b09496ce377af58889ccc83d52ff4b98a5ea7d9eca630f98fd38dee62cbf9af302ca6f40a9dfc7477dad01bc44d53c0625926eb41031dfb915a9fa911c1edec4aa5299bc84148018615f7fd0644273f17ba6c78b6cfdaca9b9017f9a8a9750f950578776399bdc2f51c431066409639de152a28542d8f833933fd16788f7bfafa6590f728022ed5d2f8a128b0b1dc2bbab15656dac8455a7a56abd64d3715c4a745b47069fa730c4c717d63b31ec61ef9ddbd62567e0eeba124066c95bbe54fbee614ef420ac453aafce3843088f6d0306a1307f280b7ebaecf6c40651daf4f4b28bcd21a0439c8a7e9b0d7887997e354eedb4edbbe661a4ff59bb9120a4911365cf14328b6a218c22087b283caf27f3c27820469411bccf40cdc1856d9b02918e6341c10b3525246c3c88e1bebb98830d468e5d844efc8c46782fec445a5726c7bc6130fe5cdb3e4804f680aef702a158afbbaa8218ea3d5e7bf22ea6751ca3e87c5a9f02db45eb9753025e7baa569bb0e1c6218d5574429d2e2885e99286adcd1ad3acbaa92b8ecae776727ab3317276e5d1661da06360efbc90762d41083d3ad5607a6c206cc725373d79840ef54d5dbe8584ba7229217f0a95904bd6ad456a75b35f3938052546e10a8b9e30ff85eb82cfafd2ee909913907cb4683dae53b542dd31973b2ac0a5e5e4d55665f7808701f87be431ecbeed62a569dc0a3c2157f8fce0c1756ba1e8720475a85072582070747449636dcf916141ade9d5653c1cb628537ee6d630212c8b1a30415e31ef1265b8ee74f8f57b14046de318a09bd50d3812f1b9eeaf6acb4970205831d3ba2b573b2441309cd4b9608c8260766f0c6cd6272c610f319282ce07e2401bf1cadcec4971ad9def9f97ab46cca389d6ea4dbf9be8c9c9a5c76dcb5ae7ccef77331437513d3a3d37f088cfa6f3f7e6a58e78bbc1892b81080d75d250f8b77ee8a630f5f0432df4058e5f628db4e34a6a3d26af006999ed5bbd19964108e60b00df791afaa35be1773accb3495169358d068861fb5cbc06f4186ce9e5382f263962755cfa933e5e1381412a4f4a0ca0a58843ff70e8fc367a954fb1318270e2ecb9205d2f85b08a651806fd2ced04912496e395cf3c5b04f07ef77b157ae963906e9f674a25269831129e4feb118a9048501bedd6a2e764e985b7632f22a77b2cf32a19fd90cffd7860587eafa537963bfe7417e610756462eef65bd99acdea9a072b28a79a91173d898e7e97a71a994273995ff91f8e9b82eb5ea28bfc63c0604de669e9d9e3c732f0a8cb4605d768edb154250b4dd7029178fdf2709506f28c8c6478b165f5025b07ee63c0c337a502d6beb2d97210fd422ef0029bacc7dda1b08b6e1325209cad926b5a2034792cbf14ddad1bade23f42145be1256db18276127cf3608d09f0558c80a8f1a8924016bd2a977ed54efa1ebf0a880ed91e310c4ff7db670ab48bf9b05f08bf199b059b770def2df951b50c5f59bd879106f37c10ddc8cbd203b7ccebfe983f2761674ded759035f0b5f2da9135e8eeecaa6d072b415444596bff662ec9dfd55e19c6ea0ab0aeb2425bb1c958e8ec5261e8d624351c8fe058d0e288a784c5904cd09ec7e75b777caa763b4ef5ea2e85e5fbcfbe65c2c8f8ecf1450b4415a05adee079172854ab3850a3b3facc9af5997bf57d4396a15c4486ea46224d1bb4fb680f34f7c9ad96a8f24ec88be73ea8e5a6c65260e9cb8a79152fc90d3c84314239b59356c452c7d88b88fe8fa96f2f123d25437728bb82efd605526a1004b662620292c1d808ed696b5cc61d9c5748121fd10807123998124b3c8e971a76d61cbf6a1bc9f9806c2b8e651a3aae2978c21a5654e98a3ff339e9d7525d14bf7361d0dbf63325537bdd019c67d7dc265431266c1c13877b1f639de99c00960b9356996859dfbc79b3ebec6aa1d3e821a1b4bf1b80168e78b70e4fd1bdd72a5dec30063b092aa8eb243eda3b95eb4b47ff95a50897ccbacc4c3e2cdb56febb5106607bf5f9b92b2b7a9516814e7650139cfe46f6b36bfcfa32719cb87050b0fb410da3b88df752c2e1bdaeec77ac052b04febef31a68823cfcba53e0ed8c777bfecfdf90c8524e5142bf6b33f6a4c9df5db3979c3d23319a6b356db909d0e79781b004005e802db2ccc7335848ef9153803a3fed111e3b2c4cc56db909d0e79781b004005e802db2ccc7335848ef9153803a3fed111e3b2c4cc56db909d0e79781b004005e802db2ccc7335848ef9153803a3fed111e3b2c4ccb1a8382acacce4022b02daa25b293ddfc1dc6ce6a3ddb8b3d95b517592c5a4282f27f5c9108936a693fd496565e5c5050b5c62cfbb61d1d5da9d97c89533d6376c30f791c757548867f4c621e58ca093476cd8cec7ace0d91b8436c7c5d4e531ba5f2b50b0712b113f73ed1f23b741b0a120e2cabbe6cfbe73653ae2724d00f8fe3c79d5da8616ca37f7a9d8fddaac2c9164b593c7b116580aa99690a5f59ab5e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855ff8ffffe4aacdd19c13b5f536c7b706a40303842b219ac4a62b1f39a6d0de404ff8ffffe4aacdd19c13b5f536c7b706a40303842b219ac4a62b1f39a6d0de404ff8ffffe4aacdd19c13b5f536c7b706a40303842b219ac4a62b1f39a6d0de40485b5aa097b65a050d7e87ec021ca9e6e57c57f37c0483ee3eae883151015f07a5d68f5b243dec1bd075b9dde3f706e87c78612af89a4f9f7d845dd7fce833bb785b5aa097b65a050d7e87ec021ca9e6e57c57f37c0483ee3eae883151015f07a09572445acd1841f16bb5108db0bf68f429ee907e46c2cff8a3d1020f58480c709572445acd1841f16bb5108db0bf68f429ee907e46c2cff8a3d1020f58480c709572445acd1841f16bb5108db0bf68f429ee907e46c2cff8a3d1020f58480c76c7848237d490c5704d8bfa47e0bed091c5171eccebfbabc783f3846b5aa57ade3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a5ee30a776654c599fe0cb8b862a23ebcff0aae59f358e3e605d1ecdb9bdf93ea5ee30a776654c599fe0cb8b862a23ebcff0aae59f358e3e605d1ecdb9bdf93ea5ee30a776654c599fe0cb8b862a23ebcff0aae59f358e3e605d1ecdb9bdf93e158444abb10b95b477a497336419fb20208add4b9414a3b6714d3d4d5f388db1158444abb10b95b477a497336419fb20208add4b9414a3b6714d3d4d5f388db1158444abb10b95b477a497336419fb20208add4b9414a3b6714d3d4d5f388db1e60ab0c572eab2ffbd9de5623e0ed0c2132a276ccc64a0cb783a31f07f14afc5e60ab0c572eab2ffbd9de5623e0ed0c2132a276ccc64a0cb783a31f07f14afc5e60ab0c572eab2ffbd9de5623e0ed0c2132a276ccc64a0cb783a31f07f14afc57911296ad6f45445f9a35ae09da01d784dba4ac086c955777bbde329d3b8babc7911296ad6f45445f9a35ae09da01d784dba4ac086c955777bbde329d3b8babc7911296ad6f45445f9a35ae09da01d784dba4ac086c955777bbde329d3b8babc8deae6e7febf5506bfecb76a8f500c4020aa8b0243bbe4d3063eb825b1aa1b688deae6e7febf5506bfecb76a8f500c4020aa8b0243bbe4d3063eb825b1aa1b688deae6e7febf5506bfecb76a8f500c4020aa8b0243bbe4d3063eb825b1aa1b6850541cdb1402f028853b83e5a7b7bf5478b1c98f752642b59d5c901c82932b5a50541cdb1402f028853b83e5a7b7bf5478b1c98f752642b59d5c901c82932b5a50541cdb1402f028853b83e5a7b7bf5478b1c98f752642b59d5c901c82932b5abf5c307dbf0561519a65b1769b2530aa318c5295f33c2972894ed8a79c5e9e1dbf5c307dbf0561519a65b1769b2530aa318c5295f33c2972894ed8a79c5e9e1dbf5c307dbf0561519a65b1769b2530aa318c5295f33c2972894ed8a79c5e9e1db28b9b255bc1d131c5f0765f79897197d32948c5a3a6988967a35e356ae2c83eb28b9b255bc1d131c5f0765f79897197d32948c5a3a6988967a35e356ae2c83eb28b9b255bc1d131c5f0765f79897197d32948c5a3a6988967a35e356ae2c83e11dc7fe644b8b2a3474e96a94e5fafa9d1fa5699081ce24e8f0db0aaac8d420e11dc7fe644b8b2a3474e96a94e5fafa9d1fa5699081ce24e8f0db0aaac8d420e11dc7fe644b8b2a3474e96a94e5fafa9d1fa5699081ce24e8f0db0aaac8d420e33e8e65edf4eaaf5aaad8461a3e37e88eac7f4516113ba8981fceb8aaa6386f433e8e65edf4eaaf5aaad8461a3e37e88eac7f4516113ba8981fceb8aaa6386f433e8e65edf4eaaf5aaad8461a3e37e88eac7f4516113ba8981fceb8aaa6386f40bb02475213940ad222d687dfc4539625b502a509dbc0950c6bc220078c01b100bb02475213940ad222d687dfc4539625b502a509dbc0950c6bc220078c01b100bb02475213940ad222d687dfc4539625b502a509dbc0950c6bc220078c01b1003b97c6de5a6eda2b4f4b9f8b21fb1f3ed19b4fb5059b1c28c34cdfbfc36911003b97c6de5a6eda2b4f4b9f8b21fb1f3ed19b4fb5059b1c28c34cdfbfc36911003b97c6de5a6eda2b4f4b9f8b21fb1f3ed19b4fb5059b1c28c34cdfbfc3691100813ca40826b08a639ae45b6990d7ad7c4125b062b5df801599eea0e649d2d4d83bc52f81bf3b4059756a7339523c45809675709e311f96bb569c71cc9803b8d503cee89ea7c78c4df4107ebd5f3b99d095c8b0cb131f76e03f4f54103638e2400eabe80d4bac4ba1942bf55f35c79a6233f437092f3583b3c0ab9f7e828ba74a43f90e11f43e7bc7eb918de31dc2cd3f2f0767b151190f023ae47d26479bfe7666707900bfacf01e2de2e8ba0c496e360a8a93c961d9c36ffed7b5922c558eec6331b7bf7acc84be79210cefc81223d66e95afb6f13e510789a06d6069b4bb27974ad2aa7122794a6ed0006f92b1e63f2a8242c7c202bbf3a39cbbaee4474050cd15898d5b81701c50963fcd51eb821700f29cf4a10ec7ad637e6279598e212267ee87e14e5e30f904843e06f75915b4814a74077669968124e76ab80c614f9040bc8bfabdf491a9f560babbd9f85192694a47a3722635f00287f7e703ebf2be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8556a33c677b6bd79418bb7a2cf54b396edd4c9ba5b28e546f0f7b45b742ee0bafc6a33c677b6bd79418bb7a2cf54b396edd4c9ba5b28e546f0f7b45b742ee0bafc6a33c677b6bd79418bb7a2cf54b396edd4c9ba5b28e546f0f7b45b742ee0bafce5a9f02c863623e1488121f023106fa961bdff2a50ad7c28f16fa3b1ea3f1b16e5a9f02c863623e1488121f023106fa961bdff2a50ad7c28f16fa3b1ea3f1b16e5a9f02c863623e1488121f023106fa961bdff2a50ad7c28f16fa3b1ea3f1b16846b347a33a1d91033e0f4b09f27dfd73ae681e4717d385db6c3685b6d7a8522846b347a33a1d91033e0f4b09f27dfd73ae681e4717d385db6c3685b6d7a8522846b347a33a1d91033e0f4b09f27dfd73ae681e4717d385db6c3685b6d7a85229386410e53bd5874b2c7cd9ecb8905ac7dc51a71de1b081c4ffd2d8d1ced44262c236db738be0499becd6281429d5ca9641774493ed63def43cc09afd513e1fc9386410e53bd5874b2c7cd9ecb8905ac7dc51a71de1b081c4ffd2d8d1ced4426bf7ade2ab960fc224eee5b58567c2a16025fd1ab1d3e85a697c2c00f50f0ed849d5f9a2b53e77d60b6c8eaffabf4f7fa2eb6affdc4e3bad36ce403dfd1e21606f4d82df7f17734203462ced7b5ac32ce3e3dacea355829eb5ca98a5537860b4c4d1d5ba5a64caac6b25ad98dbb77775b70eddafe890e5eb07123d278a163a6ed8faf019fd14a59319ff1e292f00e016a0e4867b26726b00cf659ef5debd833993add05dcd7dee4190919abe0323334ac96ccf05ea7d8762d68a6ce75f9d3aea507283519a0486c182c66b1015806abe1aca3e49bf38d78f2d04e9978d90e45e807283519a0486c182c66b1015806abe1aca3e49bf38d78f2d04e9978d90e45e807283519a0486c182c66b1015806abe1aca3e49bf38d78f2d04e9978d90e45e84dddac9d9d4307acd9b865af0969a5166ecb9e0a9b0a862a23a99c3746e93cb94dddac9d9d4307acd9b865af0969a5166ecb9e0a9b0a862a23a99c3746e93cb94dddac9d9d4307acd9b865af0969a5166ecb9e0a9b0a862a23a99c3746e93cb99fc85eab7fcb860cca4581abcd9154d74fbe4e842d31be9da6f73b6fac51b1185263576fcdbf5b4ae35d190f35f4bba20fa57580aa4adb9ed7f62fbc0e5a09629fc85eab7fcb860cca4581abcd9154d74fbe4e842d31be9da6f73b6fac51b118e90793d9a89a87480ca33e013772a00192e006cf63dcde2aff9a6497cb771077e90793d9a89a87480ca33e013772a00192e006cf63dcde2aff9a6497cb771077e90793d9a89a87480ca33e013772a00192e006cf63dcde2aff9a6497cb771077d10e7edc7dd4dc2169d13ab44bb8b13b3ca30a932fbfd7925e5c01375a7370dbd81edd1c4e24feb4ccf7dc3c5f0e3219f497466c430e3aa8b8f56b1336be8d5bd10e7edc7dd4dc2169d13ab44bb8b13b3ca30a932fbfd7925e5c01375a7370db3ad23ec43649324c8537ab26bac4f110839fc55d0a832fe73541ce48c103644b6a6bdd6d4e099660e7de990ba595a52b038a5233ebe2119f0c3dd08c69c049053ad23ec43649324c8537ab26bac4f110839fc55d0a832fe73541ce48c103644b8efd7dc1d2be60114ceeb711fb51274cded5fce926ba6f23cb44e08f7d5ea01c8efd7dc1d2be60114ceeb711fb51274cded5fce926ba6f23cb44e08f7d5ea01c8efd7dc1d2be60114ceeb711fb51274cded5fce926ba6f23cb44e08f7d5ea01cecc1b5bf8ea9fdfddc15a6f578e0567c89e02767c7c8c053477225f8b8ca7db6ecc1b5bf8ea9fdfddc15a6f578e0567c89e02767c7c8c053477225f8b8ca7db6ecc1b5bf8ea9fdfddc15a6f578e0567c89e02767c7c8c053477225f8b8ca7db6f6a2a8646ab552d626bc629465fc18ff467f1c3b876d8bcc7b217b6bdf8ae20fbe81e3ca916961b1adba7700fd9466b07e32e6d5fe7b11ae285016c5972a7cf0f6a2a8646ab552d626bc629465fc18ff467f1c3b876d8bcc7b217b6bdf8ae20f3317236f7db910cd70c00400853c11173c11fe72f758988311ce46ce40835c653317236f7db910cd70c00400853c11173c11fe72f758988311ce46ce40835c655542e74a89bbde9ab7548790f0139efbaf0b535df354ea8a427e98993626cb63b8e21814edc8b402d3e8afb3feaf1b0071ab08a4a5392a5f391cfe9f09875cf5b8e21814edc8b402d3e8afb3feaf1b0071ab08a4a5392a5f391cfe9f09875cf5b8e21814edc8b402d3e8afb3feaf1b0071ab08a4a5392a5f391cfe9f09875cf5823fe5915db6ef29d64fd09ec190d35a6e6a79483f16f9354e26ebc60bdc335719b5733fd1b72307b45e0e4b5b507feb96f207039cb9f78bd99d1808fae65e94823fe5915db6ef29d64fd09ec190d35a6e6a79483f16f9354e26ebc60bdc3357090d310f68e9c35e0f8ffc04f94c67033c6c71439fad6f0008b0f2f87f649b95c2148083f9d4f4335a138fca3f4de9ee62e1a9d5fe641d4cd4edfe8ff8d621fa090d310f68e9c35e0f8ffc04f94c67033c6c71439fad6f0008b0f2f87f649b95173266858c0239b07933308f267c856df2e4b1071753ab60104f963c4c5073bec1d4ec5305e2f763a54443d529c34c8fc4f0c4bc60b5fad52ba3fc9f98015e58173266858c0239b07933308f267c856df2e4b1071753ab60104f963c4c5073be2329a8b3317013d2dd59e2f9e1b01b7790bc5d182d21a4816f8f3948946a9b1c9b26d6a4d812953001ee28916a0e242f55ef9f5549e61ebe42db40fde0a2e0312329a8b3317013d2dd59e2f9e1b01b7790bc5d182d21a4816f8f3948946a9b1c1df70f190c1ce03a24531876a9fd29f1d185cbb76395bc2a2bccd087253feac11df70f190c1ce03a24531876a9fd29f1d185cbb76395bc2a2bccd087253feac11df70f190c1ce03a24531876a9fd29f1d185cbb76395bc2a2bccd087253feac15a704c430ab0ff1c41023b17d23935457951102eebda43bc41ab478ffeb83e755a704c430ab0ff1c41023b17d23935457951102eebda43bc41ab478ffeb83e755a704c430ab0ff1c41023b17d23935457951102eebda43bc41ab478ffeb83e750efc28b6bc64e25157e62c53ed1ea9c85e5748c8e6530ef00c11113f99ee3fe30efc28b6bc64e25157e62c53ed1ea9c85e5748c8e6530ef00c11113f99ee3fe30efc28b6bc64e25157e62c53ed1ea9c85e5748c8e6530ef00c11113f99ee3fe319cad5a18db63d2cf37ccbc75166d186166c32f44f89d898bf47ba5016e6de915ec85038c527bd87cc6a9f8842324329097cf599462e886536d13211343c7717666649ba205681dc9a3e0650a4ab7b8752ca3788115b7e9ba76df89456e827d6a64613077bd6869c8bb9d72adcd91e21adbb928a3f4c465742a44fa626657775315f89226bc810b6210585b7562247135e3ae4080f8383ac434c3207ec9a7f6c89c7b021569ffdb865944c6dab803751808ef827ad4e9a51b727148faf99cd4a849064748dcbe75433537ff59ebead3edb2914246120692ec8750dcafb38e7443be2563ea6fc1ed089707c887fd8c1dbcd6f8fa0395758c7abc72236c45074e47aa51c1ee046da0cdec8f9ac06d72a7741a1dd4a12491e3a3c8eb2c87094f1695157907c78f7584cbd8ded6a2518ef3ae01c0470af8306c9c93f2b16b277290e00e04e61db9e6b254ca53394e308751332fa1822d16a2074cbf51d96fd41e0a4fc67fa7929daac329b6e5a875c70b5187b86726ae03d1a76c8756e34a474151eb92ba061be6398c49f41c61d177b28946ad40d3d0700ed3952be1cd886c682600bd10fabe5314c160aea7aff21f59a9f5cd272d97327fbf391e096df3dcfc6f421985730bd2ffb40038363e5e23f0b2bfb774beece233e2d94a71a1b6b93a4daa8a8e4b6a10d6287210bc33113bfb2b739c6cfaea99717690945045e683b3b9bd09e5eceb09b486c3f8bda429cc1b1927ef65e568d583b37de53f4f9812771f3bbbc16cb8b42e626b7562a7a9c8febd810c759f844bbedab2d3425b674da47a01360d30ae2c295d76bfae1de2a2ea417ce2e54c41d8ed9207c803e9d873a97501360d30ae2c295d76bfae1de2a2ea417ce2e54c41d8ed9207c803e9d873a97501360d30ae2c295d76bfae1de2a2ea417ce2e54c41d8ed9207c803e9d873a9750c70255728b560bcf670b84ca844a872d4babdc969f3c72118a357a8a0427a086c70255728b560bcf670b84ca844a872d4babdc969f3c72118a357a8a0427a086c70255728b560bcf670b84ca844a872d4babdc969f3c72118a357a8a0427a086ef00ad5c0daaccae41617c650640aa38d21940747eae38a7a1c0f704983cd8f0884d79ccfa34518d9db64d8ceb64ab974b11d2fb6cb29415cd0e4b90c9118319ef00ad5c0daaccae41617c650640aa38d21940747eae38a7a1c0f704983cd8f05d9a476cec1b3e224c74ef9cf8437587448c87def04810031d99b991e8fd073f5d9a476cec1b3e224c74ef9cf8437587448c87def04810031d99b991e8fd073f5d9a476cec1b3e224c74ef9cf8437587448c87def04810031d99b991e8fd073f18bb34e00b8cb07e295f7cc7cc806d0039d747c744ea2b8d9eb26eaafb6fa53718bb34e00b8cb07e295f7cc7cc806d0039d747c744ea2b8d9eb26eaafb6fa53718bb34e00b8cb07e295f7cc7cc806d0039d747c744ea2b8d9eb26eaafb6fa53726e75f13db61586a094512a6b1fbbcb4e926d1f971aef58703fb722e468b6db826e75f13db61586a094512a6b1fbbcb4e926d1f971aef58703fb722e468b6db826e75f13db61586a094512a6b1fbbcb4e926d1f971aef58703fb722e468b6db82326b62f5647f544bc0acf96b76a202dc2f3a3680b157b7295ee2c2181d3b45f2326b62f5647f544bc0acf96b76a202dc2f3a3680b157b7295ee2c2181d3b45f2326b62f5647f544bc0acf96b76a202dc2f3a3680b157b7295ee2c2181d3b45feefdd6c9fb86b731439d095306ae125dd918b0d449093605b87eb9badcdbf429eefdd6c9fb86b731439d095306ae125dd918b0d449093605b87eb9badcdbf429eefdd6c9fb86b731439d095306ae125dd918b0d449093605b87eb9badcdbf429d6a39f27b02a5ca53b66b17ed3280110dfc864ba907a6080c9b195d0df97f753fde6833b9954ccc7d448149c00ca2ce531b2429173c5973c3c282fabd86fadc6d6a39f27b02a5ca53b66b17ed3280110dfc864ba907a6080c9b195d0df97f7538f0cb4d21a5c27b8c69f4840dde17f9f1f073312e939dbed664e490a572dc138369cd17c238c5bc015808d1c699c50786971f6ea50d301c9b3ebac051d39e4548f0cb4d21a5c27b8c69f4840dde17f9f1f073312e939dbed664e490a572dc1388056a85941147724a31f9426d258952c3124460e3e0eacc8133104577aa51cea8056a85941147724a31f9426d258952c3124460e3e0eacc8133104577aa51cea8056a85941147724a31f9426d258952c3124460e3e0eacc8133104577aa51cea3e2ad4d4816ed2671a0fb31a1e0e55b7f4aa2efef20ee440837900d5bb4338f93e2ad4d4816ed2671a0fb31a1e0e55b7f4aa2efef20ee440837900d5bb4338f93e2ad4d4816ed2671a0fb31a1e0e55b7f4aa2efef20ee440837900d5bb4338f9cb226f9cd99f7a80db68391bc9e4cbfdc8b7488c4ce2fdf345235fd0d0ffb3bdca90ba731af46ef7c15b638d89933951837218504a367f25f6d9790d8254f80d282f1825ab17973059621d92863eb385a7246d3583bdef5f82e142cff58d7f65a8831a626d02e171d8f81c0ecb15bcc6bbc8fb7db99d2eb53b56e0f9843e24b12d7dd1368e34002c3050d92b380ebeba2751157500b2fb92c3288e5cc098108b4b9e339894b66ea3b89f29a6cc20f89dab57d35ed69dddb6d99b9e7962c260ccb94bdbbff4c10843000d6f8e697221e5362b598afab0680397bbe88a6d3adfbe154919b15d47165081f349415090ea49d9b9509c4c9432ccb183201f0b67c93134f10ee69edee4a879ff88e15b00b09466e1df3a1bb6080673c215e17e305bb127e4d7b2a2e9f816ed19edc6278c9c633265c727acc041e6624421411dc29bb1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython310-core-3.10.15-150400.4.63.1.src.rpmpython310-testsuitepython310-testsuite(aarch-64)@@@@@@@@@@     /bin/bashld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.17)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)python(abi)python310python310-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.103.10.153.10.153.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3g5@g4g(@g$g6f5f@fըf@fafIf@ffz@f"\fere!@eZe؈eԔ@ee4@dd˖d@dD@d ddJcdJcd@c>@c@cӼcck@cc@cRcOc'@cb@bbnb?bb@bzSbs@b?@b<]@b@b a@a@a@a@aX@a@aa@af@a\>@a,@a(a @a` @` @`g@``r```@`N@`/@`"y@`!'`_T__԰_ _v@_u@_P_|\@_m_O@_N7_>e__@__A@___ @_X@_X@_X@_X@_X@_X@_X@_X@_X@^z^z^z^z^)@^^^^@^(@^3^@^'@^H^|@^h^`^>^>^8 @^8 @^ P@^[]f@]f@]]]]W]]c@]]]z@](]]]@]V]w@]i]g@]W@]Ik]6]!]G@\\9\~\@\\@\7\+@\\s\b@\b@\Q\C@\4\4\,\2\\\\&@[[@[^[ @[ͻ[ͻ[$@[ā@[/[[@["@[D[;e@[6@[4ZnZ@Z@ZZԐ@Zx@Z@Z Z Z Zz@ZxG@Zhu@Z`@ZLZ"Z }YYX@Yo@YY@YY@Y@YP@YI@XӸXƉXqX@Xv@W@V@Vm@VVhVCV }@U@U@U@U@UU[%UT@UT@UCjU@TeTBV@T;mcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eupmonreal@suse.commcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comkukuk@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.comdmueller@suse.commcepl@suse.comcoolo@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdavid.anes@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comdcermak@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.decallumjfarmer13@gmail.commcepl@suse.comcallumjfarmer13@gmail.comcallumjfarmer13@gmail.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comdmueller@suse.comandreas.stieger@gmx.decallumjfarmer13@gmail.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commliska@suse.czmcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comstefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.demcepl@suse.commcepl@suse.commgorse@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.combwiedemann@suse.comtchvatal@suse.commcepl@suse.comguillaume.gardet@opensuse.orgjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commliska@suse.czmcepl@suse.commcepl@suse.commcepl@suse.comjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtoddrme2178@gmail.commcepl@suse.comjengelh@inai.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commimi.vx@gmail.comhpj@urpla.netjengelh@inai.detchvatal@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comtchvatal@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comjengelh@inai.deschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comjmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comjmatejek@suse.comschwab@suse.detoddrme2178@gmail.comarichardson.kde@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgdimstar@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.comjmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comcrrodriguez@opensuse.orgjmatejek@suse.com- Remove -IVendor/ from python-config boo#1231795 - Apply sphinx-72.patch only conditionally for non-SLE-15 builds.- Add CVE-2024-11168-validation-IPv6-addrs.patch fixing bsc#1233307 (CVE-2024-11168, gh#python/cpython#103848): Improper validation of IPv6 and IPvFuture addresses.- Update sphinx-72.patch to include renaming :noindex: option to :no-index: in Sphinx 7.2 (bsc#1232750). - While renaming drop fix-sphinx-72.patch.- Update CVE-2024-9287-venv_path_unquoted.patch according to the upstream PR gh#python/cpython!126301.- Add CVE-2024-9287-venv_path_unquoted.patch to properly quote path names provided when creating a virtual environment (bsc#1232241, CVE-2024-9287)- Drop .pyc files from docdir for reproducible builds (bsc#1230906).- Update to 3.10.15: - Tests - gh-112769: The tests now correctly compare zlib version when :const:`zlib.ZLIB_RUNTIME_VERSION` contains non-integer suffixes. For example zlib-ng defines the version as ``1.3.0.zlib-ng``. - gh-117187: Fix XML tests for vanilla Expat <2.6.0. - gh-100454: Fix SSL tests CI for OpenSSL 3.1+ - Security - gh-123678: Upgrade libexpat to 2.6.3 - gh-121957: Fixed missing audit events around interactive use of Python, now also properly firing for ``python -i``, as well as for ``python -m asyncio``. The event in question is ``cpython.run_stdin``. - gh-122133: Authenticate the socket connection for the ``socket.socketpair()`` fallback on platforms where ``AF_UNIX`` is not available like Windows. Patch by Gregory P. Smith and Seth Larson . Reported by Ellie - gh-121285: Remove backtracking from tarfile header parsing for ``hdrcharset``, PAX, and GNU sparse headers (bsc#1230227, CVE-2024-6232). - gh-118486: :func:`os.mkdir` on Windows now accepts * mode* of ``0o700`` to restrict the new directory to the current user. This fixes CVE-2024-4030 affecting :func:`tempfile.mkdtemp` in scenarios where the base temporary directory is more permissive than the default. - gh-116741: Update bundled libexpat to 2.6.2 - Library - gh-123693: Use platform-agnostic behavior when computing ``zipfile.Path.name``. - gh-123270: Applied a more surgical fix for malformed payloads in :class:`zipfile.Path` causing infinite loops (gh-122905) without breaking contents using legitimate characters (bsc#1229704, CVE-2024-8088). - gh-123067: Fix quadratic complexity in parsing ``"``-quoted cookie values with backslashes by :mod:`http.cookies` (bsc#1229596, CVE-2024-7592). - gh-122905: :class:`zipfile.Path` objects now sanitize names from the zipfile. - gh-121650: :mod:`email` headers with embedded newlines are now quoted on output. The :mod:`~email.generator` will now refuse to serialize (write) headers that are unsafely folded or delimited; see :attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas Bloemsaat and Petr Viktorin in gh-121650.; CVE-2024-6923, bsc#1228780). - gh-113171: Fixed various false positives and false negatives in * :attr:`ipaddress.IPv4Address.is_private` (see these docs for details) * :attr:`ipaddress.IPv4Address.is_global` * :attr:`ipaddress.IPv6Address.is_private` * :attr:`ipaddress.IPv6Address.is_global` Also in the corresponding :class:`ipaddress.IPv4Network` and :class:`ipaddress.IPv6Network` attributes. Fixes bsc#1226448 (CVE-2024-4032). - gh-102988: :func:`email.utils.getaddresses` and :func:`email.utils.parseaddr` now return ``('', '')`` 2-tuples in more situations where invalid email addresses are encountered instead of potentially inaccurate values. Add optional *strict* parameter to these two functions: use ``strict=False`` to get the old behavior, accept malformed inputs. ``getattr(email.utils, 'supports_strict_parsing', False)`` can be use to check if the *strict* paramater is available. Patch by Thomas Dwyer and Victor Stinner to improve the CVE-2023-27043 fix (bsc#1210638). - gh-67693: Fix :func:`urllib.parse.urlunparse` and :func:`urllib.parse.urlunsplit` for URIs with path starting with multiple slashes and no authority. Based on patch by Ashwin Ramaswami. - Core and Builtins - gh-112275: A deadlock involving ``pystate.c``'s ``HEAD_LOCK`` in ``posixmodule.c`` at fork is now fixed. Patch by ChuBoning based on previous Python 3.12 fix by Victor Stinner. - Remove upstreamed patches: - CVE-2023-27043-email-parsing-errors.patch - CVE-2024-4032-private-IP-addrs.patch - CVE-2024-6923-email-hdr-inject.patch - CVE-2024-8088-inf-loop-zipfile_Path.patch - Add sphinx-802.patch to overcome working both with the most recent and older Sphinx versions.- Add gh120226-fix-sendfile-test-kernel-610.patch to avoid failing test_sendfile_close_peer_in_the_middle_of_receiving tests on Linux >= 6.10 (GH-120227).- Add CVE-2024-8088-inf-loop-zipfile_Path.patch to prevent malformed payload to cause infinite loops in zipfile.Path (bsc#1229704, CVE-2024-8088).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Adding bso1227999-reproducible-builds.patch fixing bsc#1227999 adding reproducibility patches from gh#python/cpython!121872 and gh#python/cpython!121883. - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999) - Update bluez-devel-vendor.tar.xz- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Update F00251-change-user-install-location.patch to make pip and modern tools install directly in /usr/local when used by the user. bsc#1225660- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2023-52425-libexpat-2.6.0-backport.patch to fix tests with patched libexpat below 2.6.0 that doesn't update the version number, just in SLE. - Remove old-libexpat.patch, of course.- Add old-libexpat.patch making the test suite work with libexpat < 2.6.0 (gh#python/cpython#117187).- Because of bsc#1189495 we have to revert use of %autopatch.- Update 3.10.14: - gh-115399 & gh-115398: bundled libexpat was updated to 2.6.0 to address CVE-2023-52425, and control of the new reparse deferral functionality was exposed with new APIs (bsc#1219559). - gh-109858: zipfile is now protected from the “quoted-overlap” zipbomb to address CVE-2024-0450. It now raises BadZipFile when attempting to read an entry that overlaps with another entry or central directory. (bsc#1221854) - gh-91133: tempfile.TemporaryDirectory cleanup no longer dereferences symlinks when working around file system permission errors to address CVE-2023-6597 (bsc#1219666) - gh-115197: urllib.request no longer resolves the hostname before checking it against the system’s proxy bypass list on macOS and Windows - gh-81194: a crash in socket.if_indextoname() with a specific value (UINT_MAX) was fixed. Relatedly, an integer overflow in socket.if_indextoname() on 64-bit non-Windows platforms was fixed - gh-113659: .pth files with names starting with a dot or containing the hidden file attribute are now skipped - gh-102388: iso2022_jp_3 and iso2022_jp_2004 codecs no longer read out of bounds - gh-114572: ssl.SSLContext.cert_store_stats() and ssl.SSLContext.get_ca_certs() now correctly lock access to the certificate store, when the ssl.SSLContext is shared across multiple threads (bsc#1226447, CVE-2024-0397) - Remove upstreamed patches: - CVE-2023-6597-TempDir-cleaning-symlink.patch - libexpat260.patch - Readjust patches: - F00251-change-user-install-location.patch - fix_configure_rst.patch - python-3.3.0b1-localpath.patch - skip-test_pyobject_freed_is_freed.patch - Port to %autosetup and %autopatch.- Use the system-wide crypto-policies [bsc#1211301] * Use the system default cipher list instead of hardcoded values * Add the --with-ssl-default-suites=openssl configure option- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory.- Remove double definition of /usr/bin/idle%%{version} in %%files.- Add upstream patch libexpat260.patch, Fix tests for XMLPullParser with Expat 2.6.0, gh#python/cpython#115289- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043). - Thus we can remove Revert-gh105127-left-tests.patch, which is now useless.- Add fix-sphinx-72.patch to make it work with latest sphinx version gh#python/cpython#97950 - Update to 3.10.13 (bsc#1214692): - gh-108310: Fixed an issue where instances of ssl.SSLSocket were vulnerable to a bypass of the TLS handshake and included protections (like certificate verification) and treating sent unencrypted data as if it were post-handshake TLS encrypted data. Security issue reported as CVE-2023-40217 by Aapo Oksman. Patch by Gregory P. Smith. - gh-107845: tarfile.data_filter() now takes the location of symlinks into account when determining their target, so it will no longer reject some valid tarballs with LinkOutsideDestinationError. - gh-107565: Update multissltests and GitHub CI workflows to use OpenSSL 1.1.1v, 3.0.10, and 3.1.2. - gh-99612: Fix PyUnicode_DecodeUTF8Stateful() for ASCII-only data: * consumed was not set.- Add Revert-gh105127-left-tests.patch (gh#python/cpython!106941) partially reverting CVE-2023-27043-email-parsing-errors.patch, because of the regression in gh#python/cpython#106669.- Add gh-78214-marshal_stabilize_FLAG_REF.patch to marshal.c for stabilizing FLAG_REF usage (required for reproduceability; bsc#1213463).- (bsc#1210638, CVE-2023-27043) Add CVE-2023-27043-email-parsing-errors.patch, which detects email address parsing errors and returns empty tuple to indicate the parsing error (old API).- Update to 3.10.12: - gh-103142: The version of OpenSSL used in Windows and Mac installers has been upgraded to 1.1.1u to address CVE-2023-2650, CVE-2023-0465, CVE-2023-0466, CVE-2023-0464, as well as CVE-2023-0286, CVE-2022-4303, and CVE-2022-4303 fixed previously in 1.1.1t (gh-101727). - gh-102153: urllib.parse.urlsplit() now strips leading C0 control and space characters following the specification for URLs defined by WHATWG in response to CVE-2023-24329 (bsc#1208471). - gh-99889: Fixed a security in flaw in uu.decode() that could allow for directory traversal based on the input if no out_file was specified. - gh-104049: Do not expose the local on-disk location in directory indexes produced by http.client.SimpleHTTPRequestHandler. - gh-103935: trace.__main__ now uses io.open_code() for files to be executed instead of raw open(). - gh-102953: The extraction methods in tarfile, and shutil.unpack_archive(), have a new filter argument that allows limiting tar features than may be surprising or dangerous, such as creating files outside the destination directory. See Extraction filters for details (fixing CVE-2007-4559, bsc#1203750). - Remove upstreamed patches: - CVE-2023-24329-blank-URL-bypass.patch - CVE-2007-4559-filter-tarfile_extractall.patch- Add bpo-37596-make-set-marshalling.patch making marshalling of `set` and `frozenset` deterministic (bsc#1211765).- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Update to 3.10.11: - Core and Builtins - gh-102416: Do not memoize incorrectly automatically generated loop rules in the parser. Patch by Pablo Galindo. - gh-102356: Fix a bug that caused a crash when deallocating deeply nested filter objects. Patch by Marta Gómez Macías. - gh-102397: Fix segfault from race condition in signal handling during garbage collection. Patch by Kumar Aditya. - gh-102126: Fix deadlock at shutdown when clearing thread states if any finalizer tries to acquire the runtime head lock. Patch by Kumar Aditya. - gh-102027: Fix SSE2 and SSE3 detection in _blake2 internal module. Patch by Max Bachmann. - gh-101967: Fix possible segfault in positional_only_passed_as_keyword function, when new list created. - gh-101765: Fix SystemError / segmentation fault in iter __reduce__ when internal access of builtins.__dict__ keys mutates the iter object. - Library - gh-102947: Improve traceback when dataclasses.fields() is called on a non-dataclass. Patch by Alex Waygood - gh-101979: Fix a bug where parentheses in the metavar argument to argparse.ArgumentParser.add_argument() were dropped. Patch by Yeojin Kim. - gh-102179: Fix os.dup2() error message for negative fds. - gh-101961: For the binary mode, fileinput.hookcompressed() doesn’t set the encoding value even if the value is None. Patch by Gihwan Kim. - gh-101936: The default value of fp becomes io.BytesIO if HTTPError is initialized without a designated fp parameter. Patch by Long Vo. - gh-101566: In zipfile, apply fix for extractall on the underlying zipfile after being wrapped in Path. - gh-101997: Upgrade pip wheel bundled with ensurepip (pip 23.0.1) - gh-101892: Callable iterators no longer raise SystemError when the callable object exhausts the iterator but forgets to either return a sentinel value or raise StopIteration. - gh-97786: Fix potential undefined behaviour in corner cases of floating-point-to-time conversions. - gh-101517: Fixed bug where bdb looks up the source line with linecache with a lineno=None, which causes it to fail with an unhandled exception. - gh-101673: Fix a pdb bug where ll clears the changes to local variables. - gh-96931: Fix incorrect results from ssl.SSLSocket.shared_ciphers() - gh-88233: Correctly preserve “extra” fields in zipfile regardless of their ordering relative to a zip64 “extra.” - gh-95495: When built against OpenSSL 3.0, the ssl module had a bug where it reported unauthenticated EOFs (i.e. without close_notify) as a clean TLS-level EOF. It now raises SSLEOFError, matching the behavior in previous versions of OpenSSL. The options attribute on SSLContext also no longer includes OP_IGNORE_UNEXPECTED_EOF by default. This option may be set to specify the previous OpenSSL 3.0 behavior. - gh-94440: Fix a concurrent.futures.process bug where ProcessPoolExecutor shutdown could hang after a future has been quickly submitted and canceled. - Documentation - gh-103112: Add docstring to http.client.HTTPResponse.read() to fix pydoc output. - gh-85417: Update cmath documentation to clarify behaviour on branch cuts. - gh-97725: Fix asyncio.Task.print_stack() description for file=None. Patch by Oleg Iarygin. - Tests - gh-102980: Improve test coverage on pdb. - gh-102537: Adjust the error handling strategy in test_zoneinfo.TzPathTest.python_tzpath_context. Patch by Paul Ganssle. - gh-101377: Improved test_locale_calendar_formatweekday of calendar. - Build - gh-102711: Fix -Wstrict-prototypes compiler warnings. - Removed upstreamed: - invalid-json.patch- Add invalid-json.patch fixing invalid JSON in Doc/howto/logging-cookbook.rst (somehow similar to gh#python/cpython#102582).- Update to 3.10.10: Bug fixes and regressions handling, no change of behaviour and no security bugs fixed. - Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add provides for readline and sqlite3 to the main Python package.- Disable NIS for new products, it's deprecated and gets removed- Update to 3.10.9: - python -m http.server no longer allows terminal control characters sent within a garbage request to be printed to the stderr server lo This is done by changing the http.server BaseHTTPRequestHandler .log_message method to replace control characters with a \xHH hex escape before printin - Avoid publishing list of active per-interpreter audit hooks via the gc module - The IDNA codec decoder used on DNS hostnames by socket or asyncio related name resolution functions no longer involves a quadratic algorithm. This prevents a potential CPU denial of service if an out-of-spec excessive length hostname involving bidirectional characters were decoded. Some protocols such as urllib http 3xx redirects potentially allow for an attacker to supply such a name. - Update bundled libexpat to 2.5.0 - Port XKCP’s fix for the buffer overflows in SHA-3 (CVE-2022-37454). - On Linux the multiprocessing module returns to using filesystem backed unix domain sockets for communication with the forkserver process instead of the Linux abstract socket namespace. Only code that chooses to use the “forkserver” start method is affected Abstract sockets have no permissions and could allow any user on the system in the same network namespace (often the whole system) to inject code into the multiprocessing forkserver process. This was a potential privilege escalation. Filesystem based socket permissions restrict this to the forkserver process user as was the default in Python 3.8 and earlier This prevents Linux CVE-2022-42919 - Fix a reference bug in _imp.create_builtin() after the creation of the first sub-interpreter for modules builtins and sys. Patch by Victor Stinner. - Fixed a bug that was causing a buffer overflow if the tokenizer copies a line missing the newline caracter from a file that is as long as the available tokenizer buffer. Patch by Pablo galindo - Update faulthandler to emit an error message with the proper unexpected signal number. Patch by Dong-hee Na. - Fix subscription of types.GenericAlias instances containing bare generic types: for example tuple[A, T][int], where A is a generic type, and T is a type variable. - Fix detection of MAC addresses for uuid on certain OSs. Patch by Chaim Sanders - Print exception class name instead of its string representation when raising errors from ctypes calls. - Allow pdb to locate source for frozen modules in the standard library. - Raise ValueError instead of SystemError when methods of uninitialized io.IncrementalNewlineDecoder objects are called. Patch by Oren Milman. - Fix a possible assertion failure in io.FileIO when the opener returns an invalid file descriptor. - Also escape s in the http.server BaseHTTPRequestHandler.log_message so that it is technically possible to parse the line and reconstruct what the original data was. Without this a xHH is ambiguious as to if it is a hex replacement we put in or the characters r”x” came through in the original request line. - asyncio.get_event_loop() now only emits a deprecation warning when a new event loop was created implicitly. It no longer emits a deprecation warning if the current event loop was set. - Fix bug when calling trace.CoverageResults with valid infile. - Fix a bug in handling class cleanups in unittest.TestCase. Now addClassCleanup() uses separate lists for different TestCase subclasses, and doClassCleanups() only cleans up the particular class. - Release the GIL when calling termios APIs to avoid blocking threads. - Fix ast.increment_lineno() to also cover ast.TypeIgnore when changing line numbers. - Fixed bug where inspect.signature() reported incorrect arguments for decorated methods. - Fix SystemError in ctypes when exception was not set during __initsubclass__. - Fix statistics.NormalDist pickle with 0 and 1 protocols. - Update the bundled copy of pip to version 22.3.1. - Apply bugfixes from importlib_metadata 4.11.4, namely: In PathDistribution._name_from_stem, avoid including parts of the extension in the result. In PathDistribution._normalized_name, ensure names loaded from the stem of the filename are also normalized, ensuring duplicate entry points by packages varying only by non-normalized name are hidden. - Clean up refleak on failed module initialisation in _zoneinfo - Clean up refleaks on failed module initialisation in in _pickle - Clean up refleak on failed module initialisation in _io. - Fix memory leak in math.dist() when both points don’t have the same dimension. Patch by Kumar Aditya. - Fix argument typechecks in _overlapped.WSAConnect() and _overlapped.Overlapped.WSASendTo() functions. - Fix internal error in the re module which in very rare circumstances prevented compilation of a regular expression containing a conditional expression without the “else” branch. - Fix asyncio.StreamWriter.drain() to call protocol.connection_lost callback only once on Windows. - Add a mutex to unittest.mock.NonCallableMock to protect concurrent access to mock attributes. - Fix hang on Windows in subprocess.wait_closed() in asyncio with ProactorEventLoop. Patch by Kumar Aditya. - Fix infinite loop in unittest when a self-referencing chained exception is raised - tkinter.Text.count() raises now an exception for options starting with “-” instead of silently ignoring them. - On uname_result, restored expectation that _fields and _asdict would include all six properties including processor. - Update the bundled copies of pip and setuptools to versions 22.3 and 65.5.0 respectively. - Fix bug in urllib.parse.urlparse() that causes certain port numbers containing whitespace, underscores, plus and minus signs, or non-ASCII digits to be incorrectly accepted. - Allow venv to pass along PYTHON* variables to ensurepip and pip when they do not impact path resolution - On macOS, fix a crash in syslog.syslog() in multi-threaded applications. On macOS, the libc syslog() function is not thread-safe, so syslog.syslog() no longer releases the GIL to call it. Patch by Victor Stinner. - Allow BUILTINS to be a valid field name for frozen dataclasses. - Make sure patch.dict() can be applied on async functions. - To avoid apparent memory leaks when asyncio.open_connection() raises, break reference cycles generated by local exception and future instances (which has exception instance as its member var). Patch by Dong Uk, Kang. - Prevent error when activating venv in nested fish instances. - Restrict use of sockets instead of pipes for stdin of subprocesses created by asyncio to AIX platform only. - shutil.copytree() now applies the ignore_dangling_symlinks argument recursively. - Fix IndexError in argparse.ArgumentParser when a store_true action is given an explicit argument. - Document that calling variadic functions with ctypes requires special care on macOS/arm64 (and possibly other platforms). - Skip test_normalization() of test_unicodedata if it fails to download NormalizationTest.txt file from pythontest.net. Patch by Victor Stinner. - Some C API tests were moved into the new Lib/test/test_capi/ directory. - Fix -Wimplicit-int, -Wstrict-prototypes, and - Wimplicit-function-declaration compiler warnings in configure checks. - Fix -Wimplicit-int compiler warning in configure check for PTHREAD_SCOPE_SYSTEM. - Specify the full path to the source location for make docclean (needed for cross-builds). - Fix NO_MISALIGNED_ACCESSES being not defined for the SHA3 extension when HAVE_ALIGNED_REQUIRED is set. Allowing builds on hardware that unaligned memory accesses are not allowed. - Fix handling of module docstrings in Tools/i18n/pygettext.py. - Remove upstreamed patches: - 98437-sphinx.locale._-as-gettext-in-pyspecific.patch - CVE-2015-20107-mailcap-unsafe-filenames.patch - CVE-2022-42919-loc-priv-mulitproc-forksrv.patch - CVE-2022-45061-DoS-by-IDNA-decode.patch- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-42919-loc-priv-mulitproc-forksrv.patch to avoid CVE-2022-42919 (bsc#1204886) avoiding Linux specific local privilege escalation via the multiprocessing forkserver start method.- Add 98437-sphinx.locale._-as-gettext-in-pyspecific.patch to allow building of documentation with the latest Sphinx 5.3.0 (gh#python/cpython#98366).- Update to 3.10.8: - Fix multiplying a list by an integer (list *= int): detect the integer overflow when the new allocated length is close to the maximum size. - Fix a shell code injection vulnerability in the get-remote-certificate.py example script. The script no longer uses a shell to run openssl commands. (originally filed as CVE-2022-37460, later withdrawn) - Fix command line parsing: reject -X int_max_str_digits option with no value (invalid) when the PYTHONINTMAXSTRDIGITS environment variable is set to a valid limit. - When ValueError is raised if an integer is larger than the limit, mention the sys.set_int_max_str_digits() function in the error message. - The deprecated mailcap module now refuses to inject unsafe text (filenames, MIME types, parameters) into shell commands. Instead of using such text, it will warn and act as if a match was not found (or for test commands, as if the test failed). - os.sched_yield() now release the GIL while calling sched_yield(2). - Bugfix: PyFunction_GetAnnotations() should return a borrowed reference. It was returning a new reference. - Fixed a missing incref/decref pair in Exception.__setstate__(). - Fix overly-broad source position information for chained comparisons used as branching conditions. - Fix undefined behaviour in _testcapimodule.c. - At Python exit, sometimes a thread holding the GIL can wait forever for a thread (usually a daemon thread) which requested to drop the GIL, whereas the thread already exited. To fix the race condition, the thread which requested the GIL drop now resets its request before exiting. - Fix a possible assertion failure, fatal error, or SystemError if a line tracing event raises an exception while opcode tracing is enabled. - Fix undefined behaviour in C code of null pointer arithmetic. - Do not expose KeyWrapper in _functools. - When loading a file with invalid UTF-8 inside a multi-line string, a correct SyntaxError is emitted. - Disable incorrect pickling of the C implemented classmethod descriptors. - Fix AttributeError missing name and obj attributes in . object.__getattribute__() bpo-42316: Document some places . where an assignment expression needs parentheses . - Wrap network errors consistently in urllib FTP support, so the test suite doesn’t fail when a network is available but the public internet is not reachable. - Fixes AttributeError when subprocess.check_output() is used with argument input=None and either of the arguments encoding or errors are used. - Avoid spurious tracebacks from asyncio when default executor cleanup is delayed until after the event loop is closed (e.g. as the result of a keyboard interrupt). - Avoid a crash in the C version of asyncio.Future.remove_done_callback() when an evil argument is passed. - Remove tokenize.NL check from tabnanny. - Make Semaphore run faster. - Fix generation of the default name of tkinter.Checkbutton. Previously, checkbuttons in different parent widgets could have the same short name and share the same state if arguments “name” and “variable” are not specified. Now they are globally unique. - Update bundled libexpat to 2.4.9 - Fix race condition in asyncio where process_exited() called before the pipe_data_received() leading to inconsistent output. - Fixed check in multiprocessing.resource_tracker that guarantees that the length of a write to a pipe is not greater than PIPE_BUF. - Corrected type annotation for dataclass attribute pstats.FunctionProfile.ncalls to be str. - Fix the faulthandler implementation of faulthandler.register(signal, chain=True) if the sigaction() function is not available: don’t call the previous signal handler if it’s NULL. - In inspect, fix overeager replacement of “typing.” in formatting annotations. - Fix asyncio.streams.StreamReaderProtocol to keep a strong reference to the created task, so that it’s not garbage collected - Fix handling compiler warnings (SyntaxWarning and DeprecationWarning) in codeop.compile_command() when checking for incomplete input. Previously it emitted warnings and raised a SyntaxError. Now it always returns None for incomplete input without emitting any warnings. - Fixed flickering of the turtle window when the tracer is turned off. - Allow asyncio.StreamWriter.drain() to be awaited concurrently by multiple tasks. - Fix broken asyncio.Semaphore when acquire is cancelled. - Fix ast.unparse() when ImportFrom.level is None - Improve performance of urllib.request.getproxies_environment when there are many environment variables - Fix ! in c domain ref target syntax via a conf.py patch, so it works as intended to disable ref target resolution. - Clarified the conflicting advice given in the ast documentation about ast.literal_eval() being “safe” for use on untrusted input while at the same time warning that it can crash the process. The latter statement is true and is deemed unfixable without a large amount of work unsuitable for a bugfix. So we keep the warning and no longer claim that literal_eval is safe. - Update tutorial introduction output to use 3.10+ SyntaxError invalid range. - Remove upstreamed test-int-timing.patch.- test-int-timing.patch: gh-96710: Make the test timing more lenient for the int/str DoS regression test. (#96717)- Update to 3.10.7: - Fix for CVE-2020-10735 (bsc#1203125) Converting between int and str in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now raises a ValueError if the number of digits in string form is above a limit to avoid potential denial of service attacks due to the algorithmic complexity. - Other bug fixes: - Fixed a bug that caused _PyCode_GetExtra to return garbage for negative indexes. - Fix format string in _PyPegen_raise_error_known_location that can lead to memory corruption on some 64bit systems. The function was building a tuple with i (int) instead of n (Py_ssize_t) for Py_ssize_t arguments. - Fix misleading contents of error message when converting an all-whitespace string to float. - coroutine.throw() now properly initializes the frame.f_back when resuming a stack of coroutines. This allows e.g. traceback.print_stack() to work correctly when an exception (such as CancelledError) is thrown into a coroutine. - ast.parse() will no longer parse function definitions with positional-only params when passed feature_version less than (3, 8). - Correct conversion of numbers.Rational’s to float. - Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed. - Fix unused localName parameter in the Attr class in xml.dom.minidom. - Update bundled pip to 22.2.2. - Fail gracefully if EPERM or ENOSYS is raised when loading crypt methods. This may happen when trying to load MD5 on a Linux kernel with FIPS enabled. - Improve discoverability of the higher level concurrent.futures module by providing clearer links from the lower level threading and multiprocessing modules. - Update the default RFC base URL from deprecated tools.ietf.org to datatracker.ietf.org - Fix stylesheet not working in Windows CHM htmlhelp docs. - The documentation now lists which members of C structs are part of the Limited API/Stable ABI. - Mitigate the inherent race condition from using find_unused_port() in testSockName() by trying to find an unused port a few times before failing. - Build and test with OpenSSL 1.1.1q - Document handling of extensions in Save As dialogs. - Include prompts when saving Shell (interactive input and output).- fix import_failed.map to refer to the python 3.10 package versions- Update to 3.10.6: - gh-87389: http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. Vulnerability discovered, and initial fix proposed, by Hamza Avvan. (bsc#1202624, CVE-2021-28861) - gh-92888: Fix memoryview use after free when accessing the backing buffer in certain cases. - gh-95355: _PyPegen_Parser_New now properly detects token memory allocation errors. Patch by Honglin Zhu. - gh-94938: Fix error detection in some builtin functions when keyword argument name is an instance of a str subclass with overloaded __eq__ and __hash__. Previously it could cause SystemError or other undesired behavior. - gh-94949: ast.parse() will no longer parse parenthesized context managers when passed feature_version less than (3, 9). Patch by Shantanu Jain. - gh-94947: ast.parse() will no longer parse assignment expressions when passed feature_version less than (3, 8). Patch by Shantanu Jain. - gh-94869: Fix the column offsets for some expressions in multi-line f-strings ast nodes. Patch by Pablo Galindo. - gh-91153: Fix an issue where a bytearray item assignment could crash if it’s resized by the new value’s __index__() method. - gh-94329: Compile and run code with unpacking of extremely large sequences (1000s of elements). Such code failed to compile. It now compiles and runs correctly. - gh-94360: Fixed a tokenizer crash when reading encoded files with syntax errors from stdin with non utf-8 encoded text. Patch by Pablo Galindo - gh-94192: Fix error for dictionary literals with invalid expression as value. - gh-93964: Strengthened compiler overflow checks to prevent crashes when compiling very large source files. - gh-93671: Fix some exponential backtrace case happening with deeply nested sequence patterns in match statements. Patch by Pablo Galindo - gh-93021: Fix the __text_signature__ for __get__() methods implemented in C. Patch by Jelle Zijlstra. - gh-92930: Fixed a crash in _pickle.c from mutating collections during __reduce__ or persistent_id. - gh-92914: Always round the allocated size for lists up to the nearest even number. - gh-92858: Improve error message for some suites with syntax error before ‘:’ - gh-95339: Update bundled pip to 22.2.1. - gh-95045: Fix GC crash when deallocating _lsprof.Profiler by untracking it before calling any callbacks. Patch by Kumar Aditya. - gh-95087: Fix IndexError in parsing invalid date in the email module. - gh-95199: Upgrade bundled setuptools to 63.2.0. - gh-95194: Upgrade bundled pip to 22.2. - gh-93899: Fix check for existence of os.EFD_CLOEXEC, os.EFD_NONBLOCK and os.EFD_SEMAPHORE flags on older kernel versions where these flags are not present. Patch by Kumar Aditya. - gh-95166: Fix concurrent.futures.Executor.map() to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt. - gh-93157: Fix fileinput module didn’t support errors option when inplace is true. - gh-94821: Fix binding of unix socket to empty address on Linux to use an available address from the abstract namespace, instead of “0”. - gh-94736: Fix crash when deallocating an instance of a subclass of _multiprocessing.SemLock. Patch by Kumar Aditya. - gh-94637: SSLContext.set_default_verify_paths() now releases the GIL around SSL_CTX_set_default_verify_paths call. The function call performs I/O and CPU intensive work. - gh-94510: Re-entrant calls to sys.setprofile() and sys.settrace() now raise RuntimeError. Patch by Pablo Galindo. - gh-92336: Fix bug where linecache.getline() fails on bad files with UnicodeDecodeError or SyntaxError. It now returns an empty string as per the documentation. - gh-89988: Fix memory leak in pickle.Pickler when looking up dispatch_table. Patch by Kumar Aditya. - gh-94254: Fixed types of struct module to be immutable. Patch by Kumar Aditya. - gh-94245: Fix pickling and copying of typing.Tuple[()]. - gh-94207: Made _struct.Struct GC-tracked in order to fix a reference leak in the _struct module. - gh-94101: Manual instantiation of ssl.SSLSession objects is no longer allowed as it lead to misconfigured instances that crashed the interpreter when attributes where accessed on them. - gh-84753: inspect.iscoroutinefunction(), inspect.isgeneratorfunction(), and inspect.isasyncgenfunction() now properly return True for duck-typed function-like objects like instances of unittest.mock.AsyncMock. - This makes inspect.iscoroutinefunction() consistent with the behavior of asyncio.iscoroutinefunction(). Patch by Mehdi ABAAKOUK. - gh-83499: Fix double closing of file description in tempfile. - gh-79512: Fixed names and __module__ value of weakref classes ReferenceType, ProxyType, CallableProxyType. It makes them pickleable. - gh-90494: copy.copy() and copy.deepcopy() now always raise a TypeError if __reduce__() returns a tuple with length 6 instead of silently ignore the 6th item or produce incorrect result. - gh-90549: Fix a multiprocessing bug where a global named resource (such as a semaphore) could leak when a child process is spawned (as opposed to forked). - gh-79579: sqlite3 now correctly detects DML queries with leading comments. Patch by Erlend E. Aasland. - gh-93421: Update sqlite3.Cursor.rowcount when a DML statement has run to completion. This fixes the row count for SQL queries like UPDATE ... RETURNING. Patch by Erlend E. Aasland. - gh-91810: Suppress writing an XML declaration in open files in ElementTree.write() with encoding='unicode' and xml_declaration=None. - gh-93353: Fix the importlib.resources.as_file() context manager to remove the temporary file if destroyed late during Python finalization: keep a local reference to the os.remove() function. Patch by Victor Stinner. - gh-83658: Make multiprocessing.Pool raise an exception if maxtasksperchild is not None or a positive int. - gh-74696: shutil.make_archive() no longer temporarily changes the current working directory during creation of standard .zip or tar archives. - gh-91577: Move imports in SharedMemory methods to module level so that they can be executed late in python finalization. - bpo-47231: Fixed an issue with inconsistent trailing slashes in tarfile longname directories. - bpo-46755: In QueueHandler, clear stack_info from LogRecord to prevent stack trace from being written twice. - bpo-46053: Fix OSS audio support on NetBSD. - bpo-46197: Fix ensurepip environment isolation for subprocess running pip. - bpo-45924: Fix asyncio incorrect traceback when future’s exception is raised multiple times. Patch by Kumar Aditya. - bpo-34828: sqlite3.Connection.iterdump() now handles databases that use AUTOINCREMENT in one or more tables. - gh-94321: Document the PEP 246 style protocol type sqlite3.PrepareProtocol. - gh-86128: Document a limitation in ThreadPoolExecutor where its exit handler is executed before any handlers in atexit. - gh-61162: Clarify sqlite3 behavior when Using the connection as a context manager. - gh-87260: Align sqlite3 argument specs with the actual implementation. - gh-86986: The minimum Sphinx version required to build the documentation is now 3.2. - gh-88831: Augmented documentation of asyncio.create_task(). Clarified the need to keep strong references to tasks and added a code snippet detailing how to to this. - bpo-47161: Document that pathlib.PurePath does not collapse initial double slashes because they denote UNC paths. - gh-95280: Fix problem with test_ssl test_get_ciphers on systems that require perfect forward secrecy (PFS) ciphers. - gh-95212: Make multiprocessing test case test_shared_memory_recreate parallel-safe. - gh-91330: Added more tests for dataclasses to cover behavior with data descriptor-based fields. - gh-94208: test_ssl is now checking for supported TLS version and protocols in more tests. - gh-93951: In test_bdb.StateTestCase.test_skip, avoid including auxiliary importers. - gh-93957: Provide nicer error reporting from subprocesses in test_venv.EnsurePipTest.test_with_pip. - gh-57539: Increase calendar test coverage for calendar.LocaleTextCalendar.formatweekday(). - gh-92886: Fixing tests that fail when running with optimizations (-O) in test_zipimport.py - bpo-47016: Create a GitHub Actions workflow for verifying bundled pip and setuptools. Patch by Illia Volochii and Adam Turner. - gh-94841: Fix the possible performance regression of PyObject_Free() compiled with MSVC version 1932. - gh-95511: Fix the Shell context menu copy-with-prompts bug of copying an extra line when one selects whole lines. - gh-95471: In the Edit menu, move Select All and add a new separator. - gh-95411: Enable using IDLE’s module browser with .pyw files. - gh-89610: Add .pyi as a recognized extension for IDLE on macOS. This allows opening stub files by double clicking on them in the Finder. - gh-94538: Fix Argument Clinic output to custom file destinations. Patch by Erlend E. Aasland. - gh-94430: Allow parameters named module and self with custom C names in Argument Clinic. Patch by Erlend E. Aasland - gh-94930: Fix SystemError raised when PyArg_ParseTupleAndKeywords() is used with # in (...) but without PY_SSIZE_T_CLEAN defined. - gh-94864: Fix PyArg_Parse* with deprecated format units “u” and “Z”. It returned 1 (success) when warnings are turned into exceptions. - Reapply patches - bpo-31046_ensurepip_honours_prefix.patch - fix_configure_rst.patch - no-skipif-doctests.patch - skip-test_pyobject_freed_is_freed.patch- Extend distutils-reproducible-compile.patch with a workaround for non reproducible pyc files issue 93317- Switch from %primary_interpreter to prjconf-defined %primary_python (gh#openSUSE/python-rpm-macros#127).- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Fix building of documentation and the universal configuration of the %primary_interpreter.- Update to 3.10.5: - Core and Builtins - gh-93418: Fixed an assert where an f-string has an equal sign ‘=’ following an expression, but there’s no trailing brace. For example, f”{i=”. - gh-91924: Fix __ltrace__ debug feature if the stdout encoding is not UTF-8. Patch by Victor Stinner. - gh-93061: Backward jumps after async for loops are no longer given dubious line numbers. - gh-93065: Fix contextvars HAMT implementation to handle iteration over deep trees. - The bug was discovered and fixed by Eli Libman. See MagicStack/immutables#84 for more details. - gh-92311: Fixed a bug where setting frame.f_lineno to jump over a list comprehension could misbehave or crash. - gh-92112: Fix crash triggered by an evil custom mro() on a metaclass. - gh-92036: Fix a crash in subinterpreters related to the garbage collector. When a subinterpreter is deleted, untrack all objects tracked by its GC. To prevent a crash in deallocator functions expecting objects to be tracked by the GC, leak a strong reference to these objects on purpose, so they are never deleted and their deallocator functions are not called. Patch by Victor Stinner. - gh-91421: Fix a potential integer overflow in _Py_DecodeUTF8Ex. - bpo-47212: Raise IndentationError instead of SyntaxError for a bare except with no following indent. Improve SyntaxError locations for an un-parenthesized generator used as arguments. Patch by Matthieu Dartiailh. - bpo-47182: Fix a crash when using a named unicode character like "\N{digit nine}" after the main interpreter has been initialized a second time. - bpo-47117: Fix a crash if we fail to decode characters in interactive mode if the tokenizer buffers are uninitialized. Patch by Pablo Galindo. - bpo-39829: Removed the __len__() call when initializing a list and moved initializing to list_extend. Patch by Jeremiah Pascual. - bpo-46962: Classes and functions that unconditionally declared their docstrings ignoring the - -without-doc-strings compilation flag no longer do so. - The classes affected are ctypes.UnionType, pickle.PickleBuffer, testcapi.RecursingInfinitelyError, and types.GenericAlias. - The functions affected are 24 methods in ctypes. - Patch by Oleg Iarygin. - bpo-36819: Fix crashes in built-in encoders with error handlers that return position less or equal than the starting position of non-encodable characters. - Library - gh-93156: Accessing the pathlib.PurePath.parents sequence of an absolute path using negative index values produced incorrect results. - gh-89973: Fix re.error raised in fnmatch if the pattern contains a character range with upper bound lower than lower bound (e.g. [c-a]). Now such ranges are interpreted as empty ranges. - gh-93010: In a very special case, the email package tried to append the nonexistent InvalidHeaderError to the defect list. It should have been InvalidHeaderDefect. - gh-92839: Fixed crash resulting from calling bisect.insort() or bisect.insort_left() with the key argument not equal to None. - gh-91581: utcfromtimestamp() no longer attempts to resolve fold in the pure Python implementation, since the fold is never 1 in UTC. In addition to being slightly faster in the common case, this also prevents some errors when the timestamp is close to datetime.min. Patch by Paul Ganssle. - gh-92530: Fix an issue that occurred after interrupting threading.Condition.notify(). - gh-92049: Forbid pickling constants re._constants.SUCCESS etc. Previously, pickling did not fail, but the result could not be unpickled. - bpo-47029: Always close the read end of the pipe used by multiprocessing.Queue after the last write of buffered data to the write end of the pipe to avoid BrokenPipeError at garbage collection and at multiprocessing.Queue.close() calls. Patch by Géry Ogam. - gh-91401: Provide a fail-safe way to disable subprocess use of vfork() via a private subprocess._USE_VFORK attribute. While there is currently no known need for this, if you find a need please only set it to False. File a CPython issue as to why you needed it and link to that from a comment in your code. This attribute is documented as a footnote in 3.11. - gh-91910: Add missing f prefix to f-strings in error messages from the multiprocessing and asyncio modules. - gh-91810: ElementTree method write() and function tostring() now use the text file’s encoding (“UTF-8” if not available) instead of locale encoding in XML declaration when encoding="unicode" is specified. - gh-91832: Add required attribute to argparse.Action repr output. - gh-91700: Compilation of regular expression containing a conditional expression (?(group)...) now raises an appropriate re.error if the group number refers to not defined group. Previously an internal RuntimeError was raised. - gh-91676: Fix unittest.IsolatedAsyncioTestCase to shutdown the per test event loop executor before returning from its run method so that a not yet stopped or garbage collected executor state does not persist beyond the test. - gh-90568: Parsing \N escapes of Unicode Named Character Sequences in a regular expression raises now re.error instead of TypeError. - gh-91595: Fix the comparison of character and integer inside Tools.gdb.libpython.write_repr(). Patch by Yu Liu. - gh-90622: Worker processes for concurrent.futures.ProcessPoolExecutor are no longer spawned on demand (a feature added in 3.9) when the multiprocessing context start method is "fork" as that can lead to deadlocks in the child processes due to a fork happening while threads are running. - gh-91575: Update case-insensitive matching in the re module to the latest Unicode version. - gh-91581: Remove an unhandled error case in the C implementation of calls to datetime.fromtimestamp with no time zone (i.e. getting a local time from an epoch timestamp). This should have no user-facing effect other than giving a possibly more accurate error message when called with timestamps that fall on 10000-01-01 in the local time. Patch by Paul Ganssle. - bpo-47260: Fix os.closerange() potentially being a no-op in a Linux seccomp sandbox. - bpo-39064: zipfile.ZipFile now raises zipfile.BadZipFile instead of ValueError when reading a corrupt zip file in which the central directory offset is negative. - bpo-47151: When subprocess tries to use vfork, it now falls back to fork if vfork returns an error. This allows use in situations where vfork isn’t allowed by the OS kernel. - bpo-27929: Fix asyncio.loop.sock_connect() to only resolve names for socket.AF_INET or socket.AF_INET6 families. Resolution may not make sense for other families, like socket.AF_BLUETOOTH and socket.AF_UNIX. - bpo-43323: Fix errors in the email module if the charset itself contains undecodable/unencodable characters. - bpo-47101: hashlib.algorithms_available now lists only algorithms that are provided by activated crypto providers on OpenSSL 3.0. Legacy algorithms are not listed unless the legacy provider has been loaded into the default OSSL context. - bpo-46787: Fix concurrent.futures.ProcessPoolExecutor exception memory leak - bpo-45393: Fix the formatting for await x and not x in the operator precedence table when using the help() system. - bpo-46415: Fix ipaddress.ip_{address,interface,network} raising TypeError instead of ValueError if given invalid tuple as address parameter. - bpo-28249: Set doctest.DocTest.lineno to None when object does not have __doc__. - bpo-45138: Fix a regression in the sqlite3 trace callback where bound parameters were not expanded in the passed statement string. The regression was introduced in Python 3.10 by bpo-40318. Patch by Erlend E. Aasland. - bpo-44493: Add missing terminated NUL in sockaddr_un’s length - This was potentially observable when using non-abstract AF_UNIX datagram sockets to processes written in another programming language. - bpo-42627: Fix incorrect parsing of Windows registry proxy settings - bpo-36073: Raise ProgrammingError instead of segfaulting on recursive usage of cursors in sqlite3 converters. Patch by Sergey Fedoseev. - Documentation - gh-86438: Clarify that -W and PYTHONWARNINGS are matched literally and case-insensitively, rather than as regular expressions, in warnings. - gh-92240: Added release dates for “What’s New in Python 3.X” for 3.0, 3.1, 3.2, 3.8 and 3.10 - gh-91888: Add a new gh role to the documentation to link to GitHub issues. - gh-91783: Document security issues concerning the use of the function shutil.unpack_archive() - gh-91547: Remove “Undocumented modules” page. - bpo-44347: Clarify the meaning of dirs_exist_ok, a kwarg of shutil.copytree(). - bpo-38668: Update the introduction to documentation for os.path to remove warnings that became irrelevant after the implementations of PEP 383 and PEP 529. - bpo-47138: Pin Jinja to a version compatible with Sphinx version 3.2.1. - bpo-46962: All docstrings in code snippets are now wrapped into PyDoc_STR() to follow the guideline of PEP 7’s Documentation Strings paragraph. Patch by Oleg Iarygin. - bpo-26792: Improve the docstrings of runpy.run_module() and runpy.run_path(). Original patch by Andrew Brezovsky. - bpo-40838: Document that inspect.getdoc(), inspect.getmodule(), and inspect.getsourcefile() might return None. - bpo-45790: Adjust inaccurate phrasing in Defining Extension Types: Tutorial about the ob_base field and the macros used to access its contents. - bpo-42340: Document that in some circumstances KeyboardInterrupt may cause the code to enter an inconsistent state. Provided a sample workaround to avoid it if needed. - bpo-41233: Link the errnos referenced in Doc/library/exceptions.rst to their respective section in Doc/library/errno.rst, and vice versa. Previously this was only done for EINTR and InterruptedError. Patch by Yan “yyyyyyyan” Orestes. - bpo-38056: Overhaul the Error Handlers documentation in codecs. - bpo-13553: Document tkinter.Tk args. - Tests - gh-92886: Fixing tests that fail when running with optimizations (-O) in test_imaplib.py. - gh-92670: Skip test_shutil.TestCopy.test_copyfile_nonexistent_dir test on AIX as the test uses a trailing slash to force the OS consider the path as a directory, but on AIX the trailing slash has no effect and is considered as a file. - gh-91904: Fix initialization of PYTHONREGRTEST_UNICODE_GUARD which prevented running regression tests on non-UTF-8 locale. - gh-91607: Fix test_concurrent_futures to test the correct multiprocessing start method context in several cases where the test logic mixed this up. - bpo-47205: Skip test for sched_getaffinity() and sched_setaffinity() error case on FreeBSD. - bpo-47104: Rewrite asyncio.to_thread() tests to use unittest.IsolatedAsyncioTestCase. - bpo-29890: Add tests for ipaddress.IPv4Interface and ipaddress.IPv6Interface construction with tuple arguments. Original patch and tests by louisom. - Tools/Demos - gh-91583: Fix regression in the code generated by Argument Clinic for functions with the defining_class parameter.- Refresh bluez-devel-vendor.tar.xz- Switch primary_interpreter from python38 to python310 for Factory (only)- Update to 3.10.4: - bpo-46968: Check for the existence of the “sys/auxv.h” header in faulthandler to avoid compilation problems in systems where this header doesn’t exist. Patch by Pablo Galindo - bpo-23691: Protect the re.finditer() iterator from re-entering. - bpo-42369: Fix thread safety of zipfile._SharedFile.tell() to avoid a “zipfile.BadZipFile: Bad CRC-32 for file” exception when reading a ZipFile from multiple threads. - bpo-38256: Fix binascii.crc32() when it is compiled to use zlib’c crc32 to work properly on inputs 4+GiB in length instead of returning the wrong result. The workaround prior to this was to always feed the function data in increments smaller than 4GiB or to just call the zlib module function. - bpo-39394: A warning about inline flags not at the start of the regular expression now contains the position of the flag. - bpo-47061: Deprecate the various modules listed by PEP 594: - aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, msilib, nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu, xdrlib - bpo-2604: Fix bug where doctests using globals would fail when run multiple times. - bpo-45997: Fix asyncio.Semaphore re-aquiring FIFO order. - bpo-47022: The asynchat, asyncore and smtpd modules have been deprecated since at least Python 3.6. Their documentation and deprecation warnings and have now been updated to note they will removed in Python 3.12 (PEP 594). - bpo-46421: Fix a unittest issue where if the command was invoked as python -m unittest and the filename(s) began with a dot (.), a ValueError is returned. - bpo-40296: Fix supporting generic aliases in pydoc. - Update to 3.10.3: - bpo-46940: Avoid overriding AttributeError metadata information for nested attribute access calls. Patch by Pablo Galindo. - bpo-46852: Rename the private undocumented float.__set_format__() method to float.__setformat__() to fix a typo introduced in Python 3.7. The method is only used by test_float. Patch by Victor Stinner. - bpo-46794: Bump up the libexpat version into 2.4.6 - bpo-46820: Fix parsing a numeric literal immediately (without spaces) followed by “not in” keywords, like in 1not in x. Now the parser only emits a warning, not a syntax error. - bpo-46762: Fix an assert failure in debug builds when a ‘<’, ‘>’, or ‘=’ is the last character in an f-string that’s missing a closing right brace. - bpo-46724: Make sure that all backwards jumps use the JUMP_ABSOLUTE instruction, rather than JUMP_FORWARD with an argument of (2**32)+offset. - bpo-46732: Correct the docstring for the __bool__() method. Patch by Jelle Zijlstra. - bpo-46707: Avoid potential exponential backtracking when producing some syntax errors involving lots of brackets. Patch by Pablo Galindo. - bpo-40479: Add a missing call to va_end() in Modules/_hashopenssl.c. - bpo-46615: When iterating over sets internally in setobject.c, acquire strong references to the resulting items from the set. This prevents crashes in corner-cases of various set operations where the set gets mutated. - bpo-45773: Remove two invalid “peephole” optimizations from the bytecode compiler. - bpo-43721: Fix docstrings of getter, setter, and deleter to clarify that they create a new copy of the property. - bpo-46503: Fix an assert when parsing some invalid N escape sequences in f-strings. - bpo-46417: Fix a race condition on setting a type __bases__ attribute: the internal function add_subclass() now gets the PyTypeObject.tp_subclasses member after calling PyWeakref_NewRef() which can trigger a garbage collection which can indirectly modify PyTypeObject.tp_subclasses. Patch by Victor Stinner. - bpo-46383: Fix invalid signature of _zoneinfo’s module_free function to resolve a crash on wasm32-emscripten platform. - bpo-46070: Py_EndInterpreter() now explicitly untracks all objects currently tracked by the GC. Previously, if an object was used later by another interpreter, calling PyObject_GC_UnTrack() on the object crashed if the previous or the next object of the PyGC_Head structure became a dangling pointer. Patch by Victor Stinner. - bpo-46339: Fix a crash in the parser when retrieving the error text for multi-line f-strings expressions that do not start in the first line of the string. Patch by Pablo Galindo - bpo-46240: Correct the error message for unclosed parentheses when the tokenizer doesn’t reach the end of the source when the error is reported. Patch by Pablo Galindo - bpo-46091: Correctly calculate indentation levels for lines with whitespace character that are ended by line continuation characters. Patch by Pablo Galindo - bpo-43253: Fix a crash when closing transports where the underlying socket handle is already invalid on the Proactor event loop. - bpo-47004: Apply bugfixes from importlib_metadata 4.11.3, including bugfix for EntryPoint.extras, which was returning match objects and not the extras strings. - bpo-46985: Upgrade pip wheel bundled with ensurepip (pip 22.0.4) - bpo-46968: faulthandler: On Linux 5.14 and newer, dynamically determine size of signal handler stack size CPython allocates using getauxval(AT_MINSIGSTKSZ). This changes allows for Python extension’s request to Linux kernel to use AMX_TILE instruction set on Sapphire Rapids Xeon processor to succeed, unblocking use of the ISA in frameworks. - bpo-46955: Expose asyncio.base_events.Server as asyncio.Server. Patch by Stefan Zabka. - bpo-23325: The signal module no longer assumes that SIG_IGN and SIG_DFL are small int singletons. - bpo-46932: Update bundled libexpat to 2.4.7 - bpo-25707: Fixed a file leak in xml.etree.ElementTree.iterparse() when the iterator is not exhausted. Patch by Jacob Walls. - bpo-44886: Inherit asyncio proactor datagram transport from asyncio.DatagramTransport. - bpo-46827: Support UDP sockets in asyncio.loop.sock_connect() for selector-based event loops. Patch by Thomas Grainger. - bpo-46811: Make test suite support Expat >=2.4.5 - bpo-46252: Raise TypeError if ssl.SSLSocket is passed to transport-based APIs. - bpo-46784: Fix libexpat symbols collisions with user dynamically loaded or statically linked libexpat in embedded Python. - bpo-39327: shutil.rmtree() can now work with VirtualBox shared folders when running from the guest operating-system. - bpo-46756: Fix a bug in urllib.request.HTTPPasswordMgr.find_user_password() and urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated() which allowed to bypass authorization. For example, access to URI example.org/foobar was allowed if the user was authorized for URI example.org/foo. - bpo-46643: In typing.get_type_hints(), support evaluating stringified ParamSpecArgs and ParamSpecKwargs annotations. Patch by Gregory Beauregard. - bpo-45863: When the tarfile module creates a pax format archive, it will put an integer representation of timestamps in the ustar header (if possible) for the benefit of older unarchivers, in addition to the existing full-precision timestamps in the pax extended header. - bpo-46676: Make typing.ParamSpec args and kwargs equal to themselves. Patch by Gregory Beauregard. - bpo-46672: Fix NameError in asyncio.gather() when initial type check fails. - bpo-46655: In typing.get_type_hints(), support evaluating bare stringified TypeAlias annotations. Patch by Gregory Beauregard. - bpo-45948: Fixed a discrepancy in the C implementation of the xml.etree.ElementTree module. Now, instantiating an xml.etree.ElementTree.XMLParser with a target=None keyword provides a default xml.etree.ElementTree.TreeBuilder target as the Python implementation does. - bpo-46521: Fix a bug in the codeop module that was incorrectly identifying invalid code involving string quotes as valid code. - bpo-46581: Brings ParamSpec propagation for GenericAlias in line with Concatenate (and others). - bpo-46591: Make the IDLE doc URL on the About IDLE dialog clickable. - bpo-46400: expat: Update libexpat from 2.4.1 to 2.4.4 - bpo-46487: Add the get_write_buffer_limits method to asyncio.transports.WriteTransport and to the SSL transport. - bpo-45173: Note the configparser deprecations will be removed in Python 3.12. - bpo-46539: In typing.get_type_hints(), support evaluating stringified ClassVar and Final annotations inside Annotated. Patch by Gregory Beauregard. - bpo-46491: Allow typing.Annotated to wrap typing.Final and typing.ClassVar. Patch by Gregory Beauregard. - bpo-46436: Fix command-line option -d/--directory in module http.server which is ignored when combined with command-line option --cgi. Patch by Géry Ogam. - bpo-41403: Make mock.patch() raise a TypeError with a relevant error message on invalid arg. Previously it allowed a cryptic AttributeError to escape. - bpo-46474: In importlib.metadata.EntryPoint.pattern, avoid potential REDoS by limiting ambiguity in consecutive whitespace. - bpo-46469: asyncio generic classes now return types.GenericAlias in __class_getitem__ instead of the same class. - bpo-46434: pdb now gracefully handles help when __doc__ is missing, for example when run with pregenerated optimized .pyc files. - bpo-46333: The __eq__() and __hash__() methods of typing.ForwardRef now honor the module parameter of typing.ForwardRef. Forward references from different modules are now differentiated. - bpo-46246: Add missing __slots__ to importlib.metadata.DeprecatedList. Patch by Arie Bovenberg. - bpo-46266: Improve day constants in calendar. - Now all constants (MONDAY … SUNDAY) are documented, tested, and added to __all__. - bpo-46232: The ssl module now handles certificates with bit strings in DN correctly. - bpo-43118: Fix a bug in inspect.signature() that was causing it to fail on some subclasses of classes with a __text_signature__ referencing module globals. Patch by Weipeng Hong. - bpo-26552: Fixed case where failing asyncio.ensure_future() did not close the coroutine. Patch by Kumar Aditya. - bpo-21987: Fix an issue with tarfile.TarFile.getmember() getting a directory name with a trailing slash. - bpo-20392: Fix inconsistency with uppercase file extensions in MimeTypes.guess_type(). Patch by Kumar Aditya. - bpo-46080: Fix exception in argparse help text generation if a argparse.BooleanOptionalAction argument’s default is argparse.SUPPRESS and it has help specified. Patch by Felix Fontein. - bpo-44439: Fix .write() method of a member file in ZipFile, when the input data is an object that supports the buffer protocol, the file length may be wrong. - bpo-45703: When a namespace package is imported before another module from the same namespace is created/installed in a different sys.path location while the program is running, calling the importlib.invalidate_caches() function will now also guarantee the new module is noticed. - bpo-24959: Fix bug where unittest sometimes drops frames from tracebacks of exceptions raised in tests. - bpo-44791: Fix substitution of ParamSpec in Concatenate with different parameter expressions. Substitution with a list of types returns now a tuple of types. Substitution with Concatenate returns now a Concatenate with concatenated lists of arguments. - bpo-14156: argparse.FileType now supports an argument of ‘-’ in binary mode, returning the .buffer attribute of sys.stdin/sys.stdout as appropriate. Modes including ‘x’ and ‘a’ are treated equivalently to ‘w’ when argument is ‘-’. Patch contributed by Josh Rosenberg - bpo-46463: Fixes escape4chm.py script used when building the CHM documentation file - bpo-46913: Fix test_faulthandler.test_sigfpe() if Python is built with undefined behavior sanitizer (UBSAN): disable UBSAN on the faulthandler_sigfpe() function. Patch by Victor Stinner. - bpo-46708: Prevent default asyncio event loop policy modification warning after test_asyncio execution. - bpo-46678: The function make_legacy_pyc in Lib/test/support/import_helper.py no longer fails when PYTHONPYCACHEPREFIX is set to a directory on a different device from where tempfiles are stored. - bpo-46616: Ensures test_importlib.test_windows cleans up registry keys after completion. - bpo-44359: test_ftplib now silently ignores socket errors to prevent logging unhandled threading exceptions. Patch by Victor Stinner. - bpo-46542: Fix a Python crash in test_lib2to3 when using Python built in debug mode: limit the recursion limit. Patch by Victor Stinner. - bpo-46576: test_peg_generator now disables compiler optimization when testing compilation of its own C extensions to significantly speed up the testing on non-debug builds of CPython. - bpo-46542: Fix test_json tests checking for RecursionError: modify these tests to use support.infinite_recursion(). Patch by Victor Stinner. - bpo-13886: Skip test_builtin PTY tests on non-ASCII characters if the readline module is loaded. The readline module changes input() behavior, but test_builtin is not intented to test the readline module. Patch by Victor Stinner. - bpo-38472: Fix GCC detection in setup.py when cross-compiling. The C compiler is now run with LC_ALL=C. Previously, the detection failed with a German locale. - bpo-46513: configure no longer uses AC_C_CHAR_UNSIGNED macro and pyconfig.h no longer defines reserved symbol __CHAR_UNSIGNED__. - bpo-45296: Clarify close, quit, and exit in IDLE. In the File menu, ‘Close’ and ‘Exit’ are now ‘Close Window’ (the current one) and ‘Exit’ is now ‘Exit IDLE’ (by closing all windows). In Shell, ‘quit()’ and ‘exit()’ mean ‘close Shell’. If there are no other windows, this also exits IDLE. - bpo-45447: Apply IDLE syntax highlighting to pyi files. Patch by Alex Waygood and Terry Jan Reedy. - bpo-46433: The internal function _PyType_GetModuleByDef now correctly handles inheritance patterns involving static types. - bpo-14916: Fixed bug in the tokenizer that prevented PyRun_InteractiveOne from parsing from the provided FD.- (bsc#1196784, CVE-2022-25236) Rename patch: support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch and update the patch to detect expat >= 2.4.4 instead of >= 2.4.5 as it was fully patched against CVE-2022-25236.- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- bsc#1195831 Obsolete older "most modern" versions of python packages (python39 for python310 and so forth). For next versions it is necessary just to edit the macro.- Remove second superfluous BR rpm-build-python- Remove second superfluous BR rpm-build-python - Add fix_configure_rst.patch, which removes duplicate link targets and make documentation with old Sphinx in SLE - Skip test_capi (bsc#1195140 and bpo#37169)- Update to 3.10.2: Bugfix only - bpo#46347 memory leak in PyEval_EvalCodeEx (especially visible with Cython code) - and many others- Upgrade to 3.10.1 (jsc#SLE-18038): - PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 – Allow writing union types as X | Y - PEP 612 – Parameter Specification Variables - PEP 626 – Precise line numbers for debugging and other tools. - PEP 618 – Add Optional Length-Checking To zip. - bpo-12782: Parenthesized context managers are now officially allowed. - PEP 632 – Deprecate distutils module. - PEP 613 – Explicit Type Aliases - PEP 634 – Structural Pattern Matching: Specification - PEP 635 – Structural Pattern Matching: Motivation and Rationale - PEP 636 – Structural Pattern Matching: Tutorial - PEP 644 – Require OpenSSL 1.1.1 or newer - PEP 624 – Remove Py_UNICODE encoder APIs - PEP 597 – Add optional EncodingWarning - Patches readjusted: - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch- Remove pdb_adjust_breakpoints.patch and instead just adjust location of the test breakpoint in Lib/test/test_pdb.py via sed, because we have shortened Lib/pdb.py by removing the shebang (bpo#45964).- Add pdb_adjust_breakpoints.patch fixing expectd results in test_pdb_breakpoints_preserved_across_interactive_sessions (bpo#45964).- Remove shebangs from from python-base libraries in _libdir (bsc#1193179). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- Move rpm-build-python construct to correct place.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Final release of 3.10.0: Complete list on https://www.python.org/downloads/release/python-3100/, but highlights are: - PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 – Allow writing union types as X | Y - PEP 612 – Parameter Specification Variables - PEP 626 – Precise line numbers for debugging and other tools. - PEP 618 – Add Optional Length-Checking To zip. - PEP 632 – Deprecate distutils module. - PEP 613 – Explicit Type Aliases - PEP 634 – Structural Pattern Matching: Specification - PEP 635 – Structural Pattern Matching: Motivation and Rationale - PEP 636 – Structural Pattern Matching: Tutorial - PEP 644 – Require OpenSSL 1.1.1 or newer - PEP 624 – Remove Py_UNICODE encoder APIs - PEP 597 – Add optional EncodingWarning - bpo-12782: Parenthesized context managers are now officially allowed.- Switch on option --with-system-libmpdec (bsc#1189356).- Reenable profileopt with qemu emulation, test_faulthandler is no longer run during profiling- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.10.0rc1 (the penultimate prerelease), which contains plenty of small bugfixes among others: - bpo#38605: from __future__ import annotations (PEP 563) used to be on this list in previous pre-releases but it has been postponed to Python 3.11 due to some compatibility concerns. - bpo-44600: Fix incorrect line numbers while tracing some failed patterns in match statements. Patch by Charles Burkland. - plenty of modifications in types.Union- Update to 3.10.0b4: https://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-0-beta-4 - Remove python3-imp-returntype.patch which has been upstreamed.- Update to 3.10.0b2: - PEP 623 -- Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 -- Allow writing union types as X | Y - PEP 612 -- Parameter Specification Variables - PEP 626 -- Precise line numbers for debugging and other tools. - PEP 618 -- Add Optional Length-Checking To zip. - bpo-12782: Parenthesized context managers are now officially allowed. - PEP 632 -- Deprecate distutils module. - PEP 613 -- Explicit Type Aliases - PEP 634 -- Structural Pattern Matching: Specification - PEP 635 -- Structural Pattern Matching: Motivation and Rationale - PEP 636 -- Structural Pattern Matching: Tutorial - PEP 644 -- Require OpenSSL 1.1.1 or newer - PEP 624 -- Remove Py_UNICODE encoder APIs - PEP 597 -- Add optional EncodingWarning - Removed patches (assumed upstream): - sphinx-update-removed-function.patch- Revert previous skip over test_capi - Add skip-test_pyobject_freed_is_freed.patch to skip failing test on SLE-15.- allow build with Sphinx >= 3.x- Exclude test_capi on Leap (test fails there)- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Update to 3.9.5: * Security - bpo-43434: Creating a sqlite3.Connection object now also produces a sqlite3.connect auditing event. Previously this event was only produced by sqlite3.connect() calls. Patch by Erlend E. Aasland. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. - Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-43472: Ensures interpreter-level audit hooks receive the cpython.PyInterpreterState_New event when called through the _xxsubinterpreters module. - bpo-36384: ipaddress module no longer accepts any leading zeros in IPv4 address strings. Leading zeros are ambiguous and interpreted as octal notation by some libraries. For example the legacy function socket.inet_aton() treats leading zeros as octal notatation. glibc implementation of modern inet_pton() does not accept any leading zeros. For a while the ipaddress module used to accept ambiguous leading zeros. - bpo-43075: Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - bpo-42800: Audit hooks are now fired for frame.f_code, traceback.tb_frame, and generator code/frame attribute access. * Core and Builtins - bpo-43105: Importlib now resolves relative paths when creating module spec objects from file locations. - bpo-42924: Fix bytearray repetition incorrectly copying data from the start of the buffer, even if the data is offset within the buffer (e.g. after reassigning a slice at the start of the bytearray to a shorter byte string). * Library - bpo-43993: Update bundled pip to 21.1.1. - bpo-43937: Fixed the turtle module working with non-default root window. - bpo-43930: Update bundled pip to 21.1 and setuptools to 56.0.0 - bpo-43920: OpenSSL 3.0.0: load_verify_locations() now returns a consistent error message when cadata contains no valid certificate. - bpo-43607: urllib can now convert Windows paths with \\?\ prefixes into URL paths. - bpo-43284: platform.win32_ver derives the windows version from sys.getwindowsversion().platform_version which in turn derives the version from kernel32.dll (which can be of a different version than Windows itself). Therefore change the platform.win32_ver to determine the version using the platform module’s _syscmd_ver private function to return an accurate version. - bpo-42248: [Enum] ensure exceptions raised in _missing__ are released - bpo-43799: OpenSSL 3.0.0: define OPENSSL_API_COMPAT 1.1.1 to suppress deprecation warnings. Python requires OpenSSL 1.1.1 APIs. - bpo-43794: Add ssl.OP_IGNORE_UNEXPECTED_EOF constants (OpenSSL 3.0.0) - bpo-43789: OpenSSL 3.0.0: Don’t call the password callback function a second time when first call has signaled an error condition. - bpo-43788: The header files for ssl error codes are now OpenSSL version-specific. Exceptions will now show correct reason and library codes. The make_ssl_data.py script has been rewritten to use OpenSSL’s text file with error codes. - bpo-43655: tkinter dialog windows are now recognized as dialogs by window managers on macOS and X Window. - bpo-43534: turtle.textinput() and turtle.numinput() create now a transient window working on behalf of the canvas window. - bpo-43522: Fix problem with hostname_checks_common_name. OpenSSL does not copy hostflags from struct SSL_CTX to struct SSL. - bpo-42967: Allow bytes separator argument in urllib.parse.parse_qs and urllib.parse.parse_qsl when parsing str query strings. Previously, this raised a TypeError. - bpo-43176: Fixed processing of a dataclass that inherits from a frozen dataclass with no fields. It is now correctly detected as an error. - bpo-41735: Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin. - bpo-36470: Fix dataclasses with InitVars and replace(). Patch by Claudiu Popa. - bpo-32745: Fix a regression in the handling of ctypes’ ctypes.c_wchar_p type: embedded null characters would cause a ValueError to be raised. Patch by Zackery Spytz. * Documentation - bpo-43959: The documentation on the PyContextVar C-API was clarified. - bpo-43938: Update dataclasses documentation to express that FrozenInstanceError is derived from AttributeError. - bpo-43755: Update documentation to reflect that unparenthesized lambda expressions can no longer be the expression part in an if clause in comprehensions and generator expressions since Python 3.9. - bpo-43739: Fixing the example code in Doc/extending/extending.rst to declare and initialize the pmodule variable to be of the right type. * Tests - bpo-43961: Fix test_logging.test_namer_rotator_inheritance() on Windows: use os.replace() rather than os.rename(). Patch by Victor Stinner. - bpo-43842: Fix a race condition in the SMTP test of test_logging. Don’t close a file descriptor (socket) from a different thread while asyncore.loop() is polling the file descriptor. Patch by Victor Stinner. - bpo-43811: Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up testing. - bpo-43791: OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. Tests are failing with TLSV1_ALERT_INTERNAL_ERROR. - Refreshed patches: - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch - Add vendorized files from bluez-devel to enable building support for Bluetooth.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Update to 3.9.4: - bpo#43710: Reverted the fix for https://bugs.python.org/issue42500 as it changed the PyThreadState struct size and broke the 3.9.x ABI in the 3.9.3 release (visible on 32-bit platforms using binaries compiled using an earlier version of Python 3.9.x headers). - bpo#26053: Fixed bug where the pdb interactive run command echoed the args from the shell command line, even if those have been overridden at the pdb prompt. - bpo#42988 (bsc#1183374) CVE-2021-3426: Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo#43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo#43439: Add audit hooks for gc.get_objects(), gc.get_referrers() and gc.get_referents(). Patch by Pablo Galindo. - bpo#43660: Fix crash that happens when replacing sys.stderr with a callable that can remove the object while an exception is being printed. Patch by Pablo Galindo. - bpo#43555: Report the column offset for SyntaxError for invalid line continuation characters. Patch by Pablo Galindo. - bpo#43517: Fix misdetection of circular imports when using from pkg.mod import attr, which caused false positives in non-trivial multi-threaded code. - bpo#35883: Python no longer fails at startup with a fatal error if a command line argument contains an invalid Unicode character. The Py_DecodeLocale() function now escapes byte sequences which would be decoded as Unicode characters outside the [U+0000; U+10ffff] range. - bpo#43406: Fix a possible race condition where PyErr_CheckSignals tries to execute a non-Python signal handler. - bpo#42500: Improve handling of exceptions near recursion limit. Converts a number of Fatal Errors in RecursionErrors. - bpo#43433: xmlrpc.client.ServerProxy no longer ignores query and fragment in the URL of the server. - bpo#35930: Raising an exception raised in a “future” instance will create reference cycles. - bpo#43577: Fix deadlock when using ssl.SSLContext debug callback with ssl.SSLContext.sni_callback(). - bpo#43521: ast.unparse can now render NaNs and empty sets. - bpo#43423: subprocess.communicate() no longer raises an IndexError when there is an empty stdout or stderr IO buffer during a timeout on Windows. - bpo#27820: Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with initial_response_ok=False will fail. The cause is that SMTP.auth_login _always_ returns a password if provided with a challenge string, thus non-compliant with the standard for AUTH LOGIN. Also fixes bug with the test for smtpd. - bpo#43332: Improves the networking efficiency of http.client when using a proxy via set_tunnel(). Fewer small send calls are made during connection setup. - bpo#43399: Fix ElementTree.extend not working on iterators when using the Python implementation - bpo#43316: The python -m gzip command line application now properly fails when detecting an unsupported extension. It exits with a non-zero exit code and prints an error message to stderr. - bpo#43260: Fix TextIOWrapper can not flush internal buffer forever after very large text is written. - bpo#42782: Fail fast in shutil.move() to avoid creating destination directories on failure. - bpo#37193: Fixed memory leak in socketserver.ThreadingMixIn introduced in Python 3.7. - bpo#43199: Answer “Why is there no goto?” in the Design and History FAQ. - bpo#43407: Clarified that a result from time.monotonic(), time.perf_counter(), time.process_time(), or time.thread_time() can be compared with the result from any following call to the same function - not just the next immediate call. - bpo#27646: Clarify that ‘yield from ’ works with any iterable, not just iterators. - bpo#36346: Update some deprecated unicode APIs which are documented as “will be removed in 4.0” to “3.12”. See PEP 623 for detail. - bpo#37945: Fix test_getsetlocale_issue1813() of test_locale: skip the test if setlocale() fails. Patch by Victor Stinner. - bpo#41561: Add workaround for Ubuntu’s custom OpenSSL security level policy. - bpo#43288: Fix test_importlib to correctly skip Unicode file tests if the fileystem does not support them. - bpo#43617: Improve configure.ac: Check for presence of autoconf-archive package and remove our copies of M4 macros. - bpo#42225: Document that IDLE can fail on Unix either from misconfigured IP masquerage rules or failure displaying complex colored (non-ascii) characters. - bpo#43283: Document why printing to IDLE’s Shell is often slower than printing to a system terminal and that it can be made faster by pre-formatting a single string before printing.- Update to 3.9.2: - bpo#42938 (bsc#1181126): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. This issue was assigned CVE-2021-3177. - bpo#42967 (bsc#1182379): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. This issue was assigned CVE-2021-23336. - Upstreamed patches were removed: - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch - bsc1167501-invalid-alignment.patch - skip_random_failing_tests.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch- Add Obsoletes for python3-base when primary interpreter is set to properly replace it during upgrades. (bsc#1181324)- Update to 3.9.1: Security bugs: - Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. Core and Builtins - Allow assignment expressions in set literals and set comprehensions as per PEP 572. Patch by Pablo Galindo. - Fix a regression introduced by the new parser, where an unparenthesized walrus operator was not allowed within generator expressions. - types.GenericAlias objects can now be the targets of weakrefs. - Fixed a bug in the PEG parser that was causing crashes in debug mode. Now errors are checked in left-recursive rules to avoid cases where such errors do not get handled in time and appear as long-distance crashes in other places. - Fixed a possible crash in the PEG parser when checking for the ‘!=’ token in the barry_as_flufl rule. Patch by Pablo Galindo. - Fix handling of errors during creation of PyFunctionObject, which resulted in operations on uninitialized memory. Patch by Yonatan Goldschmidt. - Fix a bug in the parser, where a curly brace following a primary didn’t fail immediately. This led to invalid expressions like a {b} to throw a SyntaxError with a wrong offset, or invalid expressions ending with a curly brace like a { to not fail immediately in the REPL. - Fix possible buffer overflow in the new parser when checking for continuation lines. Patch by Pablo Galindo. - Run the parser two times. On the first run, disable all the rules that only generate better error messages to gain performance. If there’s a parse failure, run the parser a second time with those enabled. - Document the default implementation of object.__eq__. - Fix peephole optimizer misoptimize conditional jump + JUMP_IF_NOT_EXC_MATCH pair. - The garbage collector now tracks all user-defined classes. Patch by Brandt Bucher. - Fixed potential issues with removing not completely initialized module from sys.modules when import fails. - Star-unpacking is now allowed for with item’s targets in the PEG parser. - Fixed stack overflow in issubclass() and isinstance() when getting the __bases__ attribute leads to infinite recursion. - When loading a native module and a load failure occurs, prevent a possible UnicodeDecodeError when not running in a UTF-8 locale by decoding the load error message using the current locale’s encoding. - Correctly count control blocks in ‘except’ in compiler. Ensures that a syntax error, rather a fatal error, occurs for deeply nested, named exception handlers. Library - types.GenericAlias will now raise a TypeError when attempting to initialize with a keyword argument. Previously, this would cause the interpreter to crash if the interpreter was compiled with debug symbols. This does not affect interpreters compiled for release. Patch by Ken Jin. - CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the special purpose getallmatchingheaders with generic get_all method and add relevant tests. - inspect.findsource() now raises OSError instead of IndexError when co_lineno of a code object is greater than the file length. This can happen, for example, when a file is edited after it was imported. PR by Irit Katriel. - Fix handling of trailing comments by inspect.getsource(). - ChainMap.__iter__ no longer calls __getitem__ on underlying maps - TracebackException no longer holds a reference to the exception’s traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal. - We fixed an issue in pickle.whichmodule in which importing multiprocessing could change the how pickle identifies which module an object belongs to, potentially breaking the unpickling of those objects. - Clarify the error message for asyncio.IncompleteReadError when expected is None. - Extracting a symlink from a tarball should succeed and overwrite the symlink if it already exists. The fix is to remove the existing file or symlink before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and Senthil Kumaran. - Fixed tkinter.ttk.Style.map(). The function accepts now the representation of the default state as empty sequence (as returned by Style.map()). The structure of the result is now the same on all platform and does not depend on the value of wantobjects. - Fix various issues with typing.Literal parameter handling (flatten, deduplicate, use type to cache key). Patch provided by Yurii Karabas. - Fix the threading.Thread class at fork: do nothing if the thread is already stopped (ex: fork called at Python exit). Previously, an error was logged in the child process. - The onerror callback from shutil.rmtree now receives correct function when os.open fails. - Fix os.sendfile() on illumos. - Fixed writing binary Plist files larger than 4 GiB. - The repr() of typing types containing Generic Alias Types previously did not show the parameterized types in the GenericAlias. They have now been changed to do so. - webbrowser: Ignore NotADirectoryError when calling xdg-settings. - binhex.binhex() consisently writes macOS 9 line endings. - Fix a stack overflow error for asyncio Task or Future repr(). - The overflow occurs under some circumstances when a Task or Future recursively returns itself. - Fix memory leak in subprocess.Popen() in case an uid (gid) specified in user (group, extra_groups) overflows uid_t (gid_t). - Improve asyncio.wait function to create the futures set just one time. - InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). - Pickling heap types implemented in C with protocols 0 and 1 raises now an error instead of producing incorrect data. - plistlib: fix parsing XML plists with hexadecimal integer values - Fix an incorrectly formatted error from _codecs.charmap_decode() when called with a mapped value outside the range of valid Unicode code points. PR by Max Bernstein. - Fix pickling pure Python datetime.time subclasses. Patch by Dean Inwood. - Fixed a bug that was causing ctypes.util.find_library() to return None when triying to locate a library in an environment when gcc>=9 is available and ldconfig is not. Patch by Pablo Galindo - C14N 2.0 serialisation in xml.etree.ElementTree failed for unprefixed attributes when a default namespace was defined. - Fix a bug in the symtable module that was causing module-scope global variables to not be reported as both local and global. Patch by Pablo Galindo. - str() for the type attribute of the tkinter.Event object always returns now the numeric code returned by Tk instead of the name of the event type. - fix tkinter.EventType Enum so all members are strings, and none are tuples - Fix SQLite3 segfault when backing up closed database. Patch contributed by Peter David McCormick. - Fix the tarfile module to write only basename of TAR file to GZIP compression header. - Allow ctypes.wintypes to be imported on non-Windows systems. - shutil.which() now ignores empty entries in PATHEXT instead of treating them as a match. - Fix time-of-check/time-of-action issue in subprocess.Popen.send_signal. - Fix --outfile for cProfile / profile not writing the output file in the original directory when the program being profiled changes the working directory. PR by Anthony Sottile. - ZipFile truncates files to avoid corruption when a shorter comment is provided in append (“a”) mode. Patch by Jan Mazur. - Fixed KeyError exception when flattening an email to a string attempts to replace a non-existent Content-Transfer-Encoding header. Documentation - Fix the URL for the IMAP protocol documents. - Document __format__ functionality for IP addresses. - Clarify that subscription expressions are also valid for certain classes and types in the standard library, and for user-defined classes and types if the classmethod __class_getitem__() is provided. - Documented generic alias type and types.GenericAlias. Also added an entry in glossary for generic types. - In Programming FAQ “Sequences (Tuples/Lists)” section, add “How do you remove multiple items from a list”. - Fix RemovedInSphinx40Warning when building the documentation. Patch by Dong-hee Na. - Update the refcounts info of PyType_FromModuleAndSpec. - Fix tarfile’s extractfile documentation - Document some restrictions on the default string representations of numeric classes. Tests - Reenable test_gdb on gdb 9.2 and newer: https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 10.1. - Fix test_asyncio.test_call_later() race condition: don’t measure asyncio performance in the call_later() unit test. The test failed randomly on the CI. - Include _testinternalcapi module in Windows installer for test suite - Fix test_logging.test_race_between_set_target_and_flush(): the test now waits until all threads complete to avoid leaking running threads. - Avoid a test failure in test_lib2to3 if the module has already imported at the time the test executes. Patch by Pablo Galindo. - Tests for CJK codecs no longer call eval() on content received via HTTP. - Fix test_site.test_license_exists_at_url(): call urllib.request.urlcleanup() to reset the global urllib.request._opener. Patch by Victor Stinner. - test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is not available - Add tests for SIGINT handling in the runpy module. - Fixed a failure in test_tk.test_widgets.ScaleTest happening when executing the test with Tk 8.6.10. Build - Fix a race condition in “make regen-all” when make -jN option is used to run jobs in parallel. The clinic.py script now only use atomic write to write files. Moveover, generated files are now left unchanged if the content does not change, to not change the file modification time. - Update Py_UNREACHABLE to use __builtin_unreachable() if only the compiler is able to use it. Patch by Dong-hee Na. - Addressed three compiler warnings found by undefined behavior sanitizer (ubsan). IDLE - Fix reporting offset of the RE error in searchengine. - Get docstrings for IDLE calltips more often by using inspect.getdoc. - Mostly finish using ttk widgets, mainly for editor, settings, and searches. Some patches by Mark Roseman. - Use ‘IDLE Shell’ as shell title - Rewrite the Calltips doc section. - In calltips, stop reminding that ‘/’ marks the end of positional-only arguments. - Typing opening and closing parentheses inside the parentheses of a function call will no longer cause unnecessary “flashing” off and on of an existing open call-tip, e.g. when typed in a string literal. C API - Fix potential crash in deallocating method objects when dynamically allocated PyMethodDef’s lifetime is managed through the self argument of a PyCFunction. - Py_FileSystemDefaultEncodeErrors and Py_UTF8Mode are available again in limited API. - Readjustet and reapplied patches: - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch - skip_random_failing_tests.patch - sphinx-update-removed-function.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- Make python39-doc building again - Add no-skipif-doctests.patch, because SLE-15 version of Sphinx doesn't know about skipif directive in doctests.- Update sphinx-update-removed-function.patch patch to the latest version in python36.- Last try before this results in an editwar: * remove importlib_resources and importlib-metadata provides/obsoletes * import importlib_resources is not the same as import importlib.resources, same for metadata * The backport packages from PyPI needed for older flavors are specified as such for setuptools or in pyproject.toml. If a package requires them they typically add them with a python version qualifier and the packages have their own version numbers.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function and to make documentation build independent of the Sphinx version (bsc#1179630, gh#python/cpython#13236).- Don't require packages which break build on SLE-15 although we really don't need them (python3-python-docs-theme and python3-sphinxcontrib-qthelp).- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Update to the final version 3.9.0: Complete changelog with all (many) changes from previous version is on https://docs.python.org/release/3.9.0/whatsnew/3.9.html Changes from the previous RC versions (not that many) are on https://docs.python.org/release/3.9.0/whatsnew/changelog.html#changelog- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Update to 3.9.0rc1: * Core and Builtins - bpo-38156: Handle interrupts that come after EOF correctly in PyOS_StdioReadline. * Library - bpo-41497: Fix potential UnicodeDecodeError in dis module. - bpo-41490: Update ensurepip to install pip 20.2.1 and setuptools 49.2.1. - bpo-41467: On Windows, fix asyncio recv_into() return value when the socket/pipe is closed (BrokenPipeError): return 0 rather than an empty byte string (b''). - bpo-41425: Make tkinter doc example runnable. - bpo-41384: Raise TclError instead of TypeError when an unknown option is passed to tkinter.OptionMenu. - bpo-38731: Fix NameError in command-line interface of py_compile. - bpo-41317: Use add_done_callback() in asyncio.loop.sock_accept() to unsubscribe reader early on cancellation. - bpo-41364: Reduce import overhead of uuid. - bpo-41341: Recursive evaluation of typing.ForwardRef in get_type_hints. - bpo-41182: selector: use DefaultSelector based upon implementation - bpo-40726: Handle cases where the end_lineno is None on ast.increment_lineno(). * Documentation - bpo-41045: Add documentation for debug feature of f-strings. - bpo-41314: Changed the release when from __future__ import annotations becomes the default from 4.0 to 3.10 (following a change in PEP 563). * Windows - bpo-41492: Fixes the description that appears in UAC prompts. - bpo-40948: Improve post-install message to direct people to the “py” command. - bpo-41412: The installer will now fail to install on Windows 7 and Windows 8. Further, the UCRT dependency is now always downloaded on demand. - bpo-40741: Update Windows release to include SQLite 3.32.3. * IDLE - bpo-41468: Improve IDLE run crash error message (which users should never see). - bpo-41373: Save files loaded with no line ending, as when blank, or different line endings, by setting its line ending to the system default. Fix regression in 3.8.4 and 3.9.0b4.- Synchronize formatting and fixes with python38.- Increase testsuite timeout to account for super long running test_peg_generator- Removed CVE-2019-20907_tarfile-inf-loop.patch: fixed in upstream - Removed recursion.tar: contained in upstream - Update to 3.9.0b5: - bpo-41304: Fixes python3x._pth being ignored on Windows, caused by the fix for bpo-29778 (CVE-2020-15801). - bpo-41162: Audit hooks are now cleared later during finalization to avoid missing events. - bpo-29778: Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523). - bpo-39603: Prevent http header injection by rejecting control characters in http.client.putrequest(…). - bpo-41295: Resolve a regression in CPython 3.8.4 where defining “__setattr__” in a multi-inheritance setup and calling up the hierarchy chain could fail if builtins/extension types were involved in the base types. - bpo-41247: Always cache the running loop holder when running asyncio.set_running_loop. - bpo-41252: Fix incorrect refcounting in _ssl.c’s _servername_callback(). - bpo-41215: Use non-NULL default values in the PEG parser keyword list to overcome a bug that was ' preventing Python from being properly compiled when using the XLC compiler. Patch by Pablo Galindo. - bpo-41218: Python 3.8.3 had a regression where compiling with ast.PyCF_ALLOW_TOP_LEVEL_AWAIT would aggressively mark list comprehension with CO_COROUTINE. Now only list comprehension making use of async/await will tagged as so. - bpo-41175: Guard against a NULL pointer dereference within bytearrayobject triggered by the bytearray() + bytearray() operation. - bpo-39960: The “hackcheck” that prevents sneaking around a type’s __setattr__() by calling the superclass method was rewritten to allow C implemented heap types. - bpo-41288: Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. - bpo-39017: Avoid infinite loop when reading specially crafted TAR files using the tarfile module (CVE-2019-20907, bsc#1174091). - bpo-41235: Fix the error handling in ssl.SSLContext.load_dh_params(). - bpo-41207: In distutils.spawn, restore expectation that DistutilsExecError is raised when the command is not found. - bpo-39168: Remove the __new__ method of typing.Generic. - bpo-41194: Fix a crash in the _ast module: it can no longer be loaded more than once. It now uses a global state rather than a module state. - bpo-39384: Fixed email.contentmanager to allow set_content() to set a null string. - bpo-41300: Save files with non-ascii chars. Fix regression released in 3.9.0b4 and 3.8.4. - bpo-37765: Add keywords to module name completion list. Rewrite Completions section of IDLE doc. - bpo-40170: Revert PyType_HasFeature() change: it reads again directly the PyTypeObject.tp_flags member when the limited C API is not used, rather than always calling PyType_GetFlags() which hides implementation details.- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Changed bpo-31046_ensurepip_honours_prefix.patch to include fix from py3.8- Spec file fixes - Re-added subprocess-raise-timeout.patch: now compatible - Removed bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch: contained in upstream- Fix minor issues found in the staging.- Do not set ourselves as primary interpreter- Update to 3.9.0b4: - PEP 584, Union Operators in dict - PEP 585, Type Hinting Generics In Standard Collections - PEP 593, Flexible function and variable annotations - PEP 602, Python adopts a stable annual release cadence - PEP 615, Support for the IANA Time Zone Database in the Standard Library - PEP 616, String methods to remove prefixes and suffixes - PEP 617, New PEG parser for CPython - bpo#38379, garbage collection does not block on resurrected objects; - bpo#38692, os.pidfd_open added that allows process management without races and signals; - bpo#39926, Unicode support updated to version 13.0.0; - bpo#1635741, when Python is initialized multiple times in the same process, it does not leak memory anymore; - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall; - A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489; - A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384. - Remove upstreamed patches: - F00102-lib64.patch - SUSE-FEDORA-multilib.patch - OBS_dev-shm.patch - subprocess-raise-timeout.patch - bpo36302-sort-module-sources.patch - bpo40784-Fix-sqlite3-deterministic-test.patch- Update pre_checkin.sh and regenerate- Convert few dependencies to their pkgconfig counterparts- Remove release requirement on libpython, it is not really needed to be equal as the abi changes with versions- Add provides python3-bla on all the subpkgs in case we are primary provider of the functionality- Remove unversioned files from devel subpkg too - Remove main python3 files from -base based whether we are primary interpreter or not - Fix idle to be co-installable - Add condition to be primary to provide/obsolete python3-* - Fix doc to build in versioned folder so the pythons can be installed next to each other- Revert the full versioning of calls on the macros. These are generic so they should really just call python3 X- For the doc package we can build with generic flavor, we don't need the our-interpreter based one- Add provides for pytohn3X-typing/etc to allow BR on those still to work when needed- Change macros.python3 to use full versioned 3.8 instead of just 3 for python interpreter- Reduce some now unused conditionals- Redux the -base dependencies to match up pre-merge layout- Generate baselibs in pre-checkin too- Generate the importlib-failed using pre_checking again - Add back the information about skipped tests on the pre_checkin output- Use %python_pkg_name instead of hardcoding python3 where applicable - Sort out preamble with spec-cleaner- Calculate required variables instead of relying on their continuous manual update- Fix the -base module build again to generate only the deps we need- Replace OBS_dev-shm.patch with the upstream PR#20944- Use the %{python_pkg_name} on more places to allow easier multiversioning - Switch to _multibuild approach for easier maintenance of this package. All is now in one spec file with 3 conditionals: * bcond_with base * bcond_with doc * bcond_with general- add requires python3-base on libpython subpackage (bsc#1167008)- build against Sphinx 2.x until python is compatible with Sphinx 3.x (see gh#python/cpython#19397, bpo#40204)- Fix build with SQLite 3.32 (bpo#40783) add bpo40784-Fix-sqlite3-deterministic-test.patch- Update to version 3.8.3: - Complete list of changes is available at https://docs.python.org/release/3.8.3/whatsnew/changelog.html#python-3-8-3-final, but most of them are just bugfixes. - Removed patch CVE-2020-8492-urllib-ReDoS.patch: contained in upstream- Add #!BuildIgnore: gdk-pixbuf-loader-rsvg to python3 SPEC- Add patch bsc1167501-invalid-alignment.patch (bsc#1167501, bpo#40052) to fix alignment in abstract.h header file.- Update list of skipped tests for qemu linux-user build, test_setegid (test.test_os.PosixUidGidTests) is confusing it- Update to 3.8.2: - Complete list of changes is available at https://docs.python.org/release/3.8.2/whatsnew/changelog.html#python-3-8-2-final, but most of them are just bugfixes. - Updated patches: - F00102-lib64.patch - OBS_dev-shm.patch - SUSE-FEDORA-multilib.patch - subprocess-raise-timeout.patch- Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Do not pull in bluez in base again, explain the cycle, it needs to be solved by bluez maintainer for us by providing just the headers separately- Reame idle icons to idle3 in order to not conflict with python2 variant of the package * renamed the icons * renamed icon load in desktop file- Add importlib_resources provide/obsolete as it is integral part of the lang since 3.7 release- Add -fno-semantic-interposition as it brings speed up: https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup- Update to 3.8.1: - This is mainly bugfix release and no significant changes to API are expected. The full changelog is available on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-1 - Remove bpo-38688_shutil.copytree_prevent-infinite-recursion.patch, which is included in the upstream tarball.- Add bpo-31046_ensurepip_honours_prefix.patch which makes ensurepip to honour the value of $(prefix). Proposed fix for bpo#31046..- Move bluez-devel dependency to base as it is needed for socket.AF_BLUETOOTH and otherwise does not work- Reintroduce QtHelp with the help of the new BR python-sphinxcontrib-qthelp.- Fix SUSE-FEDORA-multilib.patch, the platform agnostic infix for library installation is "lib", not "dir".- Move idle subpackage build from python3-base to python3. appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Update to the final release 3.8.0. . - New Features: - Assignment expressions - Positional-only parameters - Parallel filesystem cache for compiled bytecode files - Debug build uses the same ABI as release build - f-strings support = for self-documenting expressions and debugging - PEP 578: Python Runtime Audit Hooks - PEP 587: Python Initialization Configuration - Vectorcall: a fast calling protocol for CPython - Pickle protocol 5 with out-of-band data buffers - New modules: - importlib.metadata - Improved modules: - ast asyncio, builtins, collections, curses, ctypes, datetime, functools, gc, gettext, gzip, idelib and IDLE, inspect, io, json.tool, math, mmap, multiprocessing, os, os.path, pathlib, pickle, plistlib, py_compile, shlex, shutil, socket, ssl, statistics, sys, tarfile, threading, tokenize, tkinter, time, typing, unicodedata, unittest, venv, weakref, xml - C API improvements - bdist_winnst command has been deprecated (use bdist_wheel) - https://docs.python.org/3.8/whatsnew/3.8.html remains rest of changes including documentation on how to port your programs to the current version of Python.- Add idle3.appdata.xml and idle3.desktop (originally from Fedora) to make Idle3 full GUI desktop application. (bsc#1153830)- Drop intltool from BuildRequires. Doesn't appear to be used.- Add folder version to allow tarball downloads even for beta/rc releases- Revert patches from Fedora (F00102-lib64.patch and F00251-change-user-install-location.patch) into their original prisitine Fedora versions, SUSE-FEDORA-multilib.patch refreshed accordingly.- Correct quotation of platsubdir in Lib/distutils/command/install.py- Replace python-3.6.0-multilib.patch with two patches from Fedora (F00102-lib64.patch and F00251-change-user-install-location.patch), and our own SUSE-FEDORA-multilib.patch to allow better cooperation with Fedora and better upstreaming. - Add OBS_dev-shm.patch fixing bpo#38377- Pull in just gettext and let solver to sort out between: gettext-runtime-mini and gettext-runtime- Update to 3.8.0rc1. Overall changes from 3.7: - PEP 572, Assignment expressions - PEP 570, Positional-only arguments - PEP 587, Python Initialization Configuration (improved embedding) - PEP 590, Vectorcall: a fast calling protocol for CPython - PEP 578, Runtime audit hooks - PEP 574, Pickle protocol 5 with out-of-band data - Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict) - Parallel filesystem cache for compiled bytecode - Debug builds share ABI as release builds, also the 'm' ABI tag was removed (irrelevant since 3.4), bpo#36707 - f-strings support a handy = specifier for debugging - continue is now legal in finally: blocks - on Windows, the default asyncio event loop is now ProactorEventLoop - on macOS, the spawn start method is now used by default in multiprocessing - multiprocessing can now use shared memory segments to avoid pickling costs between processes - typed_ast is merged back to CPython - LOAD_GLOBAL is now 40% faster - pickle now uses Protocol 4 by default, improving performance - Refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.6.0-multilib.patch - subprocess-raise-timeout.patch- Add bpo36302-sort-module-sources.patch (boo#1041090)- Try harder obsoleting importlib-metadata- Update to 3.8.0b4: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-4- Re-enable test_threading on aarch64- Remove xrpm from subpackage tk description- Update to 3.8.0b3: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-3 - Patches reapplied: - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.6.0-multilib.patch - subprocess-raise-timeout.patch- Add Provides: python3-importlib-metadata- Update to 3.8.0b2: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-2 - Patches included in upstream: - bpo-37169_PyObject_IsFreed.patch - Patches reapplied: - 00251-change-user-install-location.patch - distutils-reproducible-compile.patch - python-3.3.0b1-localpath.patch - python-3.6.0-multilib.patch- Update list of skipped tests for qemu linux-user build - Don't do profiling in qemu linux-user build- Update to 3.8.0b1 (changes since 3.7.*): - PEP 572, Assignment expressions - PEP 570, Positional-only arguments - PEP 587, Python Initialization Configuration (improved embedding) - PEP 590, Vectorcall: a fast calling protocol for CPython - PEP 578, Runtime audit hooks - PEP 574, Pickle protocol 5 with out-of-band data - Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict) - Parallel filesystem cache for compiled bytecode - Debug builds share ABI as release builds - f-strings support a handy = specifier for debugging - continue is now legal in finally: blocks - multiprocessing can now use shared memory segments to avoid pickling costs between processes - typed_ast is merged back to CPython - LOAD_GLOBAL is now 40% faster - pickle now uses Protocol 4 by default, improving performance - Remove patches which were included in the upstream: - 00251-change-user-install-location.patch - 00316-mark-bdist_wininst-unsupported.patch - CVE-2019-9947-no-ctrl-char-http.patch - raise_SIGING_not_handled.patch- Set _lto_cflags to nil as the package is using LTO via --enable-lto. That will prevent to propage LTO for Python modules that are built in a separate package.- Update to 3.8.0.a3: - PEP 572: Assignment Expressions. - Other (mostly small) changes are on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-alpha-3- bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- Fix metadata of patches. - Rename boo1071941-make-install-in-sep-loc.patch to 00251-change-user-install-location.patch which is the original name, so it can be looked up in the Fedora VCS.- Mark distutils bdist_wininst command unsupported with 00316-mark-bdist_wininst-unsupported.patch - Remove Windows bdist_wininst executables from runtime package- Update to 3.7.3, which is the maintenance release without any significant changes in API. - Updated patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - distutils-reproducible-compile.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.6.0-multilib.patch - raise_SIGING_not_handled.patch- Remove building of Qt Develop help files.- Return distutils-reproducible-compile.patch which is still missing (still unfinished bpo#29708).- Update to 3.8.0a2: * List of all (mostly small) changes are on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-alpha-2- Build nis module again.- Update to 3.8.0a1: * The most visible change so far is probably the implementation of PEP 572: Assignment Expressions. For a detailed list of changes, see: https://docs.python.org/3.8/whatsnew/changelog.html * Recover building of nis module properly in python3 package - Update patches: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * python-3.3.0b1-fix_date_time_compiler.patch * python-3.3.0b1-test-posix_fadvise.patch * python-3.6.0-multilib.patch * raise_SIGING_not_handled.patch- Put LICENSE file where it belongs (bsc#1121852)- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Do not require full gettext in order to avoid pulling in the glib2 as a dependency- Update to 3.7.2: * bugfix release: https://docs.python.org/3.7/whatsnew/changelog.html#changelog- Stop applying python-3.6.0-multilib-new.patch (which is still WIP), and apply the old proven python-3.6.0-multilib.patch instead.- Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Upgrade to 3.7.2rc1: * bugfix release, for the full list of all changes see https://docs.python.org/3.7/whatsnew/changelog.html#changelog - Make run of the test suite more verbose- Write summaries without em dashes.- Remove python-3.3.0b1-curses-panel.patch it is unnecessary anymore. - Add boo1071941-make-install-in-sep-loc.patch to make pip and distutils in user environment install into separate location (boo#1071941) Set values of prefix and exec_prefix in distutils install command to /usr/local if executable is /usr/bin/python* and RPM build is not detected to make pip and distutils install into separate location - Remove finally python-3.3.3-skip-distutils-test_sysconfig_module.patch - Remove distutils-reproducible-compile.patch which doesn't make really much difference in reproducibility (see gh#python/cpython#8057 and discussion there).- Rename Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch to bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch- Add dependency on bluez-devel to build support for Bluetooth (boo#1109998)- Add devhelp subpackage and split qthelp into another subpackage.- Remove python-3.0b1-record-rpm.patch and Python-3.0b1-record-rpm.patch, as they are not needed anymore- Switch off test_threading for optimization builds.- Update to python-3.7.1. This is just a brief overview, complete changelog available at https://docs.python.org/3.7/whatsnew/changelog.html#python-3-7-1-final: Library bpo-34970: Protect tasks weak set manipulation in asyncio.all_tasks() - Patches already accepted upstream are removed: * 00307-allow-to-call-Py_Main-after-Py_Initialize.patch * 00308-tls-1.3.patch - New patches added: * Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * raise_SIGING_not_handled.patch - All other patches refreshed via quilt.- Add raise_SIGING_not_handled.patch to fix bsc#1094814- Add patch to fix importlib return types: * python3-imp-returntype.patch- bpo-34022 still not completely fixed, so we have to keep excluding test_cmd_line_script, test_multiprocessing_main_handling, and test_runpy from the test suite.- Update to python 3.7.1~rc2: Core and Builtins bpo-34879: Fix a possible null pointer dereference in bytesobject.c. Patch by Zackery Spytz. bpo-34854: Fixed a crash in compiling string annotations containing a lambda with a keyword-only argument that doesn’t have a default value. bpo-34320: Fix dict(od) didn’t copy iteration order of OrderedDict. Library bpo-34769: Fix for async generators not finalizing when event loop is in debug mode and garbage collector runs in another thread. bpo-34922: Fixed integer overflow in the digest() and hexdigest() methods for the SHAKE algorithm in the hashlib module. bpo-34900: Fixed unittest.TestCase.debug() when used to call test methods with subtests. Patch by Bruno Oliveira. bpo-34871: Fix inspect module polluted sys.modules when parsing __text_signature__ of callable. bpo-34872: Fix self-cancellation in C implementation of asyncio.Task bpo-34819: Use a monotonic clock to compute timeouts in Executor.map() and as_completed(), in order to prevent timeouts from deviating when the system clock is adjusted. bpo-34334: In QueueHandler, clear exc_text from LogRecord to prevent traceback from being written twice. bpo-6721: Acquire the logging module’s commonly used internal locks while fork()ing to avoid deadlocks in the child process. bpo-34172: Fix a reference issue inside multiprocessing.Pool that caused the pool to remain alive if it was deleted without being closed or terminated explicitly. Documentation bpo-32174: chm document displays non-ASCII charaters properly on some MBCS Windows systems. Tests bpo-32962: Fixed test_gdb when Python is compiled with flags - mcet -fcf-protection -O0. C API bpo-34910: Ensure that PyObject_Print() always returns -1 on error. Patch by Zackery Spytz.- Add Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch to fix problems with SOURCE_DATE_EPOCH variable (bpo-34022)- Add patch to fix build with tls1.3 supported openssl * 00308-tls-1.3.patch - Add patch to fix Py_Main calls after Py_initialize * 00307-allow-to-call-Py_Main-after-Py_Initialize.patch- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it.- Fix ownership of _contextvars, _queue, and _xxtestfuzz- Switch off LTO for distros with older GCC - Fix %files- Add dependency over libuuid-devel- update to python 3.7.0 Complete overview of changes is available on https://docs.python.org/3/whatsnew/3.7.html, these are just highlights: * PEP 563, postponed evaluation of type annotations. * async and await are now reserved keywords. * New library modules: contextvars: PEP 567 – Context Variables dataclasses: PEP 557 – Data Classes importlib.resources * New built-in features: PEP 553, the new breakpoint() function. * Python data model improvements: PEP 562, customization of access to module attributes. PEP 560, core support for typing module and generic types. the insertion-order preservation nature of dict objects has been declared to be an official part of the Python language spec. * Significant improvements in the standard library: The asyncio module has received new features, significant usability and performance improvements. The time module gained support for functions with nanosecond resolution. * CPython implementation improvements: Avoiding the use of ASCII as a default text encoding: PEP 538, legacy C locale coercion PEP 540, forced UTF-8 runtime mode PEP 552, deterministic .pycs the new development runtime mode PEP 565, improved DeprecationWarning handling * C API improvements: PEP 539, new C API for thread-local storage * Documentation improvements: PEP 545, Python documentation translations New documentation translations: Japanese, French, and Korean. - drop python3-sorted_tar.patch - drop 0001-allow-for-reproducible-builds-of-python-packages.patch - refresh python-3.6.0-multilib-new.patch - refresh subprocess-raise-timeout.patch * new C API for thread-local storage * Deterministic pyc files * Built-in breakpoint() * Data Classes * Core support for typing module and generic types * Customization of access to module attributes * Postponed evaluation of annotations * Time functions with nanosecond resolution * Improved DeprecationWarning handling * Context Variables * Avoiding the use of ASCII as a default text encoding (PEP 538, legacy C locale coercion and PEP 540, forced UTF-8 runtime mode) * The insertion-order preservation nature of dict objects is now an official part of the Python language spec. * Notable performance improvements in many areas.- disable lto with gcc versions below 7 (results in link failures)- Use faster find subcommand execution strategies.- Do not mention the testsuite disabling in opts as it was moved to main pkg so base is test-free- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750)- Drop python3-tk and python3-idle recommends to reduce python3 always pulling X stack bsc#1081751- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- Update skip_random_failing_tests.patch (for PowerPC) to avoid test_call_later failure- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- Update RPM group for python documentation.- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- drop db-devel from requirements- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Skip test_asyncio under qemu_user_space_build- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- Build the docs in .qch format as well- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- Fix source list for previous change (add dh2048.pem).- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- drop the PDF subpackage (removes the massive texlive dependency, and most likely nobody is using the PDFs anyway)- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- Only pkgconfig(x11) is required for build, not the whole set of packages provided by xorg-x11-devel metapackage.- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillapython39-testsuiteh04-armsrv2 1733142321  ###&&&))),,,///222555888;;;>?>AAADDDGGGJJJMNMPPPSSSVVVYYY\]\_`_bbbeeehihkkmnnnqqqtttwwwzzz}}}     ! #$#&'&)*),-,/0/232565898;<;>?>ABADEDGHGJKJMNMPQPSTSVWVYZY\]^_`abcdefghijklmnopqrstuvwxyz{|}~       ###&&&)*),,,/01222555898;;;>?>AAADDDGGGJJJMMMPPPSSSVWXYYY\]\_`_bbdefehihklknonqrqtttwwwzzz}~}       "#"%&'()(+,+./.121454787:::=>=@@@CDEFGFIJILMLOOORSRUUUXXX[\[^^^abaddfghgjkjmmmpppstuvwvyyy|||      !"!$%$'('*+*-.-0003436669:9<=<?@?BCBEFEHHHKKKNOPQRQTUTWXWZZ\]^_`a`cdcfffijklllooorsruvuxxx{|}~~      ! #$#&'&))),-,///222555898;<;>?@AAADEDGHGJJJMNMPQPSTSVWVYYY\\\___bbdeeghhhklknnnqqqtttwwyzzz}~}     "#"%%%(((+,+...121444779:::=>=@ABCCCFFFIJILLLOPQRSRUVWXYX[\[^_^aaadddgggjjjmnopqpsssvvvyyy|||      !"!$%$'('***---000343666999<<<???BCBEFEHIJKLMNONQRQTUTWXYZZZ]]]```cdcfffijilmloporsruvuxxx{|}~~      "#$&(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " " " % % % ( ) ( + + + . / . 1 2 1 4 5 6 7 8 7 : ; : = > = @ A @ C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! ! ! $ $ $ ' ( ' * + * - - - 0 1 0 3 4 3 6 7 6 9 : 9 < = < ? ? ? B C B E F E H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! ! ! $ $ $ ' ' ' * + * - - - 0 1 2 3 4 5 6 6 8 9 9 ; < < < ? @ ? B C B E F  I J J J M M M P Q R S T U V W X Y Z [ [ [ ^ _ ` a b c c c f g h i j j j f n o p q r s s s v w x y y y | } ~                              ! " # $ % & & & ) * + , - . . . 1 2 3 4 5 6 6 6 9 : ; f n o ? @ A A A D D D G H I  L M M M P P P S T U V W V Y Z Y \ ] \ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~          ##%&&&))),,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+++...121456789:;:=>?@ABCDEFGHIJKLMNMPQPSTUVWWWZZZ]^_`abcdefghijklmnopqrstuvwxyz{|}~       !!!$%$'('*+*-.-0003336669:;<=>?@ABCDEFGHIJKLMMMPPPSTSVVVYYY\\\___bbbefehihkkknnnqrstuvwxyz3.10.15-150400.4.63.13.10.15-150400.4.63.1    !"""""""""""""""!!!!!##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'''(((((((((((((((((((((((((((((((((((((((((((((((((((')))))))))))))))))))))))))))))))))))))))))))))))))'''''''''''''''***++++++*,-.......................................------------/000000//--,112222221,344444433,55666666577788888888888888888888888888888888888888888888888888888888888888888888888888888888877999::::::::::::997;;<<<;;7==>>>==??@@@?==7AABBBACCDDDCAEEFFFE7GGHHHGIJJKKKILLMMMI7NNNOOOOOOOOOOOOOOOOOONNNN77PPPQQQQQQQQQQQQPP7RRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRR7TUVWWWWWWVVTTXYYYXXZTT[\\]]]]]]\T^_```_TabcccbTdefgggfThijkkkjTlmnooonT7ppp7qrrrrrrqq7ssstttttttttttttttttttttsssss777777777777777777777777uuvvvu7wwxxxwyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyyyyyyyyyyyyyyyy{{{||||||||||||||||||{{{{}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}test__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_anon.cpython-310.opt-1.pyctest_anon.cpython-310.opt-2.pyctest_anon.cpython-310.pyctest_array_in_pointer.cpython-310.opt-1.pyctest_array_in_pointer.cpython-310.opt-2.pyctest_array_in_pointer.cpython-310.pyctest_arrays.cpython-310.opt-1.pyctest_arrays.cpython-310.opt-2.pyctest_arrays.cpython-310.pyctest_as_parameter.cpython-310.opt-1.pyctest_as_parameter.cpython-310.opt-2.pyctest_as_parameter.cpython-310.pyctest_bitfields.cpython-310.opt-1.pyctest_bitfields.cpython-310.opt-2.pyctest_bitfields.cpython-310.pyctest_buffers.cpython-310.opt-1.pyctest_buffers.cpython-310.opt-2.pyctest_buffers.cpython-310.pyctest_bytes.cpython-310.opt-1.pyctest_bytes.cpython-310.opt-2.pyctest_bytes.cpython-310.pyctest_byteswap.cpython-310.opt-1.pyctest_byteswap.cpython-310.opt-2.pyctest_byteswap.cpython-310.pyctest_callbacks.cpython-310.opt-1.pyctest_callbacks.cpython-310.opt-2.pyctest_callbacks.cpython-310.pyctest_cast.cpython-310.opt-1.pyctest_cast.cpython-310.opt-2.pyctest_cast.cpython-310.pyctest_cfuncs.cpython-310.opt-1.pyctest_cfuncs.cpython-310.opt-2.pyctest_cfuncs.cpython-310.pyctest_checkretval.cpython-310.opt-1.pyctest_checkretval.cpython-310.opt-2.pyctest_checkretval.cpython-310.pyctest_delattr.cpython-310.opt-1.pyctest_delattr.cpython-310.opt-2.pyctest_delattr.cpython-310.pyctest_errno.cpython-310.opt-1.pyctest_errno.cpython-310.opt-2.pyctest_errno.cpython-310.pyctest_find.cpython-310.opt-1.pyctest_find.cpython-310.opt-2.pyctest_find.cpython-310.pyctest_frombuffer.cpython-310.opt-1.pyctest_frombuffer.cpython-310.opt-2.pyctest_frombuffer.cpython-310.pyctest_funcptr.cpython-310.opt-1.pyctest_funcptr.cpython-310.opt-2.pyctest_funcptr.cpython-310.pyctest_functions.cpython-310.opt-1.pyctest_functions.cpython-310.opt-2.pyctest_functions.cpython-310.pyctest_incomplete.cpython-310.opt-1.pyctest_incomplete.cpython-310.opt-2.pyctest_incomplete.cpython-310.pyctest_init.cpython-310.opt-1.pyctest_init.cpython-310.opt-2.pyctest_init.cpython-310.pyctest_internals.cpython-310.opt-1.pyctest_internals.cpython-310.opt-2.pyctest_internals.cpython-310.pyctest_keeprefs.cpython-310.opt-1.pyctest_keeprefs.cpython-310.opt-2.pyctest_keeprefs.cpython-310.pyctest_libc.cpython-310.opt-1.pyctest_libc.cpython-310.opt-2.pyctest_libc.cpython-310.pyctest_loading.cpython-310.opt-1.pyctest_loading.cpython-310.opt-2.pyctest_loading.cpython-310.pyctest_macholib.cpython-310.opt-1.pyctest_macholib.cpython-310.opt-2.pyctest_macholib.cpython-310.pyctest_memfunctions.cpython-310.opt-1.pyctest_memfunctions.cpython-310.opt-2.pyctest_memfunctions.cpython-310.pyctest_numbers.cpython-310.opt-1.pyctest_numbers.cpython-310.opt-2.pyctest_numbers.cpython-310.pyctest_objects.cpython-310.opt-1.pyctest_objects.cpython-310.opt-2.pyctest_objects.cpython-310.pyctest_parameters.cpython-310.opt-1.pyctest_parameters.cpython-310.opt-2.pyctest_parameters.cpython-310.pyctest_pep3118.cpython-310.opt-1.pyctest_pep3118.cpython-310.opt-2.pyctest_pep3118.cpython-310.pyctest_pickling.cpython-310.opt-1.pyctest_pickling.cpython-310.opt-2.pyctest_pickling.cpython-310.pyctest_pointers.cpython-310.opt-1.pyctest_pointers.cpython-310.opt-2.pyctest_pointers.cpython-310.pyctest_prototypes.cpython-310.opt-1.pyctest_prototypes.cpython-310.opt-2.pyctest_prototypes.cpython-310.pyctest_python_api.cpython-310.opt-1.pyctest_python_api.cpython-310.opt-2.pyctest_python_api.cpython-310.pyctest_random_things.cpython-310.opt-1.pyctest_random_things.cpython-310.opt-2.pyctest_random_things.cpython-310.pyctest_refcounts.cpython-310.opt-1.pyctest_refcounts.cpython-310.opt-2.pyctest_refcounts.cpython-310.pyctest_repr.cpython-310.opt-1.pyctest_repr.cpython-310.opt-2.pyctest_repr.cpython-310.pyctest_returnfuncptrs.cpython-310.opt-1.pyctest_returnfuncptrs.cpython-310.opt-2.pyctest_returnfuncptrs.cpython-310.pyctest_simplesubclasses.cpython-310.opt-1.pyctest_simplesubclasses.cpython-310.opt-2.pyctest_simplesubclasses.cpython-310.pyctest_sizes.cpython-310.opt-1.pyctest_sizes.cpython-310.opt-2.pyctest_sizes.cpython-310.pyctest_slicing.cpython-310.opt-1.pyctest_slicing.cpython-310.opt-2.pyctest_slicing.cpython-310.pyctest_stringptr.cpython-310.opt-1.pyctest_stringptr.cpython-310.opt-2.pyctest_stringptr.cpython-310.pyctest_strings.cpython-310.opt-1.pyctest_strings.cpython-310.opt-2.pyctest_strings.cpython-310.pyctest_struct_fields.cpython-310.opt-1.pyctest_struct_fields.cpython-310.opt-2.pyctest_struct_fields.cpython-310.pyctest_structures.cpython-310.opt-1.pyctest_structures.cpython-310.opt-2.pyctest_structures.cpython-310.pyctest_unaligned_structures.cpython-310.opt-1.pyctest_unaligned_structures.cpython-310.opt-2.pyctest_unaligned_structures.cpython-310.pyctest_unicode.cpython-310.opt-1.pyctest_unicode.cpython-310.opt-2.pyctest_unicode.cpython-310.pyctest_values.cpython-310.opt-1.pyctest_values.cpython-310.opt-2.pyctest_values.cpython-310.pyctest_varsize_struct.cpython-310.opt-1.pyctest_varsize_struct.cpython-310.opt-2.pyctest_varsize_struct.cpython-310.pyctest_win32.cpython-310.opt-1.pyctest_win32.cpython-310.opt-2.pyctest_win32.cpython-310.pyctest_wintypes.cpython-310.opt-1.pyctest_wintypes.cpython-310.opt-2.pyctest_wintypes.cpython-310.pyctest_anon.pytest_array_in_pointer.pytest_arrays.pytest_as_parameter.pytest_bitfields.pytest_buffers.pytest_bytes.pytest_byteswap.pytest_callbacks.pytest_cast.pytest_cfuncs.pytest_checkretval.pytest_delattr.pytest_errno.pytest_find.pytest_frombuffer.pytest_funcptr.pytest_functions.pytest_incomplete.pytest_init.pytest_internals.pytest_keeprefs.pytest_libc.pytest_loading.pytest_macholib.pytest_memfunctions.pytest_numbers.pytest_objects.pytest_parameters.pytest_pep3118.pytest_pickling.pytest_pointers.pytest_prototypes.pytest_python_api.pytest_random_things.pytest_refcounts.pytest_repr.pytest_returnfuncptrs.pytest_simplesubclasses.pytest_sizes.pytest_slicing.pytest_stringptr.pytest_strings.pytest_struct_fields.pytest_structures.pytest_unaligned_structures.pytest_unicode.pytest_values.pytest_varsize_struct.pytest_win32.pytest_wintypes.pytestsSetup.sample__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycsupport.cpython-310.opt-1.pycsupport.cpython-310.opt-2.pycsupport.cpython-310.pyctest_archive_util.cpython-310.opt-1.pyctest_archive_util.cpython-310.opt-2.pyctest_archive_util.cpython-310.pyctest_bdist.cpython-310.opt-1.pyctest_bdist.cpython-310.opt-2.pyctest_bdist.cpython-310.pyctest_bdist_dumb.cpython-310.opt-1.pyctest_bdist_dumb.cpython-310.opt-2.pyctest_bdist_dumb.cpython-310.pyctest_bdist_msi.cpython-310.opt-1.pyctest_bdist_msi.cpython-310.opt-2.pyctest_bdist_msi.cpython-310.pyctest_bdist_rpm.cpython-310.opt-1.pyctest_bdist_rpm.cpython-310.opt-2.pyctest_bdist_rpm.cpython-310.pyctest_build.cpython-310.opt-1.pyctest_build.cpython-310.opt-2.pyctest_build.cpython-310.pyctest_build_clib.cpython-310.opt-1.pyctest_build_clib.cpython-310.opt-2.pyctest_build_clib.cpython-310.pyctest_build_ext.cpython-310.opt-1.pyctest_build_ext.cpython-310.opt-2.pyctest_build_ext.cpython-310.pyctest_build_py.cpython-310.opt-1.pyctest_build_py.cpython-310.opt-2.pyctest_build_py.cpython-310.pyctest_build_scripts.cpython-310.opt-1.pyctest_build_scripts.cpython-310.opt-2.pyctest_build_scripts.cpython-310.pyctest_check.cpython-310.opt-1.pyctest_check.cpython-310.opt-2.pyctest_check.cpython-310.pyctest_clean.cpython-310.opt-1.pyctest_clean.cpython-310.opt-2.pyctest_clean.cpython-310.pyctest_cmd.cpython-310.opt-1.pyctest_cmd.cpython-310.opt-2.pyctest_cmd.cpython-310.pyctest_config.cpython-310.opt-1.pyctest_config.cpython-310.opt-2.pyctest_config.cpython-310.pyctest_config_cmd.cpython-310.opt-1.pyctest_config_cmd.cpython-310.opt-2.pyctest_config_cmd.cpython-310.pyctest_core.cpython-310.opt-1.pyctest_core.cpython-310.opt-2.pyctest_core.cpython-310.pyctest_cygwinccompiler.cpython-310.opt-1.pyctest_cygwinccompiler.cpython-310.opt-2.pyctest_cygwinccompiler.cpython-310.pyctest_dep_util.cpython-310.opt-1.pyctest_dep_util.cpython-310.opt-2.pyctest_dep_util.cpython-310.pyctest_dir_util.cpython-310.opt-1.pyctest_dir_util.cpython-310.opt-2.pyctest_dir_util.cpython-310.pyctest_dist.cpython-310.opt-1.pyctest_dist.cpython-310.opt-2.pyctest_dist.cpython-310.pyctest_extension.cpython-310.opt-1.pyctest_extension.cpython-310.opt-2.pyctest_extension.cpython-310.pyctest_file_util.cpython-310.opt-1.pyctest_file_util.cpython-310.opt-2.pyctest_file_util.cpython-310.pyctest_filelist.cpython-310.opt-1.pyctest_filelist.cpython-310.opt-2.pyctest_filelist.cpython-310.pyctest_install.cpython-310.opt-1.pyctest_install.cpython-310.opt-2.pyctest_install.cpython-310.pyctest_install_data.cpython-310.opt-1.pyctest_install_data.cpython-310.opt-2.pyctest_install_data.cpython-310.pyctest_install_headers.cpython-310.opt-1.pyctest_install_headers.cpython-310.opt-2.pyctest_install_headers.cpython-310.pyctest_install_lib.cpython-310.opt-1.pyctest_install_lib.cpython-310.opt-2.pyctest_install_lib.cpython-310.pyctest_install_scripts.cpython-310.opt-1.pyctest_install_scripts.cpython-310.opt-2.pyctest_install_scripts.cpython-310.pyctest_log.cpython-310.opt-1.pyctest_log.cpython-310.opt-2.pyctest_log.cpython-310.pyctest_msvc9compiler.cpython-310.opt-1.pyctest_msvc9compiler.cpython-310.opt-2.pyctest_msvc9compiler.cpython-310.pyctest_msvccompiler.cpython-310.opt-1.pyctest_msvccompiler.cpython-310.opt-2.pyctest_msvccompiler.cpython-310.pyctest_register.cpython-310.opt-1.pyctest_register.cpython-310.opt-2.pyctest_register.cpython-310.pyctest_sdist.cpython-310.opt-1.pyctest_sdist.cpython-310.opt-2.pyctest_sdist.cpython-310.pyctest_spawn.cpython-310.opt-1.pyctest_spawn.cpython-310.opt-2.pyctest_spawn.cpython-310.pyctest_sysconfig.cpython-310.opt-1.pyctest_sysconfig.cpython-310.opt-2.pyctest_sysconfig.cpython-310.pyctest_text_file.cpython-310.opt-1.pyctest_text_file.cpython-310.opt-2.pyctest_text_file.cpython-310.pyctest_unixccompiler.cpython-310.opt-1.pyctest_unixccompiler.cpython-310.opt-2.pyctest_unixccompiler.cpython-310.pyctest_upload.cpython-310.opt-1.pyctest_upload.cpython-310.opt-2.pyctest_upload.cpython-310.pyctest_util.cpython-310.opt-1.pyctest_util.cpython-310.opt-2.pyctest_util.cpython-310.pyctest_version.cpython-310.opt-1.pyctest_version.cpython-310.opt-2.pyctest_version.cpython-310.pyctest_versionpredicate.cpython-310.opt-1.pyctest_versionpredicate.cpython-310.opt-2.pyctest_versionpredicate.cpython-310.pycincludetest.rstsupport.pytest_archive_util.pytest_bdist.pytest_bdist_dumb.pytest_bdist_msi.pytest_bdist_rpm.pytest_build.pytest_build_clib.pytest_build_ext.pytest_build_py.pytest_build_scripts.pytest_check.pytest_clean.pytest_cmd.pytest_config.pytest_config_cmd.pytest_core.pytest_cygwinccompiler.pytest_dep_util.pytest_dir_util.pytest_dist.pytest_extension.pytest_file_util.pytest_filelist.pytest_install.pytest_install_data.pytest_install_headers.pytest_install_lib.pytest_install_scripts.pytest_log.pytest_msvc9compiler.pytest_msvccompiler.pytest_register.pytest_sdist.pytest_spawn.pytest_sysconfig.pytest_text_file.pytest_unixccompiler.pytest_upload.pytest_util.pytest_version.pytest_versionpredicate.pyxxmodule.c_ctypes_test.cpython-310-aarch64-linux-gnu.so_testbuffer.cpython-310-aarch64-linux-gnu.so_testcapi.cpython-310-aarch64-linux-gnu.so_testclinic.cpython-310-aarch64-linux-gnu.so_testimportmultiple.cpython-310-aarch64-linux-gnu.so_testinternalcapi.cpython-310-aarch64-linux-gnu.so_testmultiphase.cpython-310-aarch64-linux-gnu.soxxlimited.cpython-310-aarch64-linux-gnu.sotests__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pycpytree_idempotency.cpython-310.opt-1.pycpytree_idempotency.cpython-310.opt-2.pycpytree_idempotency.cpython-310.pycsupport.cpython-310.opt-1.pycsupport.cpython-310.opt-2.pycsupport.cpython-310.pyctest_all_fixers.cpython-310.opt-1.pyctest_all_fixers.cpython-310.opt-2.pyctest_all_fixers.cpython-310.pyctest_fixers.cpython-310.opt-1.pyctest_fixers.cpython-310.opt-2.pyctest_fixers.cpython-310.pyctest_main.cpython-310.opt-1.pyctest_main.cpython-310.opt-2.pyctest_main.cpython-310.pyctest_parser.cpython-310.opt-1.pyctest_parser.cpython-310.opt-2.pyctest_parser.cpython-310.pyctest_pytree.cpython-310.opt-1.pyctest_pytree.cpython-310.opt-2.pyctest_pytree.cpython-310.pyctest_refactor.cpython-310.opt-1.pyctest_refactor.cpython-310.opt-2.pyctest_refactor.cpython-310.pyctest_util.cpython-310.opt-1.pyctest_util.cpython-310.opt-2.pyctest_util.cpython-310.pycdataREADMEbom.pycrlf.pydifferent_encoding.pyfalse_encoding.pyfixersbad_order.pymyfixes__init__.pyfix_explicit.pyfix_first.pyfix_last.pyfix_parrot.pyfix_preorder.pyno_fixer_cls.pyparrot_example.pyinfinite_recursion.pypy2_test_grammar.pypy3_test_grammar.pypytree_idempotency.pysupport.pytest_all_fixers.pytest_fixers.pytest_main.pytest_parser.pytest_pytree.pytest_refactor.pytest_util.pysqlite3test__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycbackup.cpython-310.opt-1.pycbackup.cpython-310.opt-2.pycbackup.cpython-310.pycdbapi.cpython-310.opt-1.pycdbapi.cpython-310.opt-2.pycdbapi.cpython-310.pycdump.cpython-310.opt-1.pycdump.cpython-310.opt-2.pycdump.cpython-310.pycfactory.cpython-310.opt-1.pycfactory.cpython-310.opt-2.pycfactory.cpython-310.pychooks.cpython-310.opt-1.pychooks.cpython-310.opt-2.pychooks.cpython-310.pycregression.cpython-310.opt-1.pycregression.cpython-310.opt-2.pycregression.cpython-310.pyctransactions.cpython-310.opt-1.pyctransactions.cpython-310.opt-2.pyctransactions.cpython-310.pyctypes.cpython-310.opt-1.pyctypes.cpython-310.opt-2.pyctypes.cpython-310.pycuserfunctions.cpython-310.opt-1.pycuserfunctions.cpython-310.opt-2.pycuserfunctions.cpython-310.pycbackup.pydbapi.pydump.pyfactory.pyhooks.pyregression.pytransactions.pytypes.pyuserfunctions.pytestSine-1000Hz-300ms.aif__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyc_test_atexit.cpython-310.opt-1.pyc_test_atexit.cpython-310.opt-2.pyc_test_atexit.cpython-310.pyc_test_eintr.cpython-310.opt-1.pyc_test_eintr.cpython-310.opt-2.pyc_test_eintr.cpython-310.pyc_test_embed_set_config.cpython-310.opt-1.pyc_test_embed_set_config.cpython-310.opt-2.pyc_test_embed_set_config.cpython-310.pyc_test_multiprocessing.cpython-310.opt-1.pyc_test_multiprocessing.cpython-310.opt-2.pyc_test_multiprocessing.cpython-310.pyc_typed_dict_helper.cpython-310.opt-1.pyc_typed_dict_helper.cpython-310.opt-2.pyc_typed_dict_helper.cpython-310.pycann_module.cpython-310.opt-1.pycann_module.cpython-310.opt-2.pycann_module.cpython-310.pycann_module2.cpython-310.opt-1.pycann_module2.cpython-310.opt-2.pycann_module2.cpython-310.pycann_module3.cpython-310.opt-1.pycann_module3.cpython-310.opt-2.pycann_module3.cpython-310.pycann_module4.cpython-310.opt-1.pycann_module4.cpython-310.opt-2.pycann_module4.cpython-310.pycann_module5.cpython-310.opt-1.pycann_module5.cpython-310.opt-2.pycann_module5.cpython-310.pycann_module6.cpython-310.opt-1.pycann_module6.cpython-310.opt-2.pycann_module6.cpython-310.pycann_module7.cpython-310.opt-1.pycann_module7.cpython-310.opt-2.pycann_module7.cpython-310.pycaudiotests.cpython-310.opt-1.pycaudiotests.cpython-310.opt-2.pycaudiotests.cpython-310.pycaudit-tests.cpython-310.opt-1.pycaudit-tests.cpython-310.opt-2.pycaudit-tests.cpython-310.pycautotest.cpython-310.opt-1.pycautotest.cpython-310.opt-2.pycautotest.cpython-310.pycbad_getattr.cpython-310.opt-1.pycbad_getattr.cpython-310.opt-2.pycbad_getattr.cpython-310.pycbad_getattr2.cpython-310.opt-1.pycbad_getattr2.cpython-310.opt-2.pycbad_getattr2.cpython-310.pycbad_getattr3.cpython-310.opt-1.pycbad_getattr3.cpython-310.opt-2.pycbad_getattr3.cpython-310.pycbisect_cmd.cpython-310.opt-1.pycbisect_cmd.cpython-310.opt-2.pycbisect_cmd.cpython-310.pyccoding20731.cpython-310.opt-1.pyccoding20731.cpython-310.opt-2.pyccoding20731.cpython-310.pyccurses_tests.cpython-310.opt-1.pyccurses_tests.cpython-310.opt-2.pyccurses_tests.cpython-310.pycdataclass_module_1.cpython-310.opt-1.pycdataclass_module_1.cpython-310.opt-2.pycdataclass_module_1.cpython-310.pycdataclass_module_1_str.cpython-310.opt-1.pycdataclass_module_1_str.cpython-310.opt-2.pycdataclass_module_1_str.cpython-310.pycdataclass_module_2.cpython-310.opt-1.pycdataclass_module_2.cpython-310.opt-2.pycdataclass_module_2.cpython-310.pycdataclass_module_2_str.cpython-310.opt-1.pycdataclass_module_2_str.cpython-310.opt-2.pycdataclass_module_2_str.cpython-310.pycdataclass_textanno.cpython-310.opt-1.pycdataclass_textanno.cpython-310.opt-2.pycdataclass_textanno.cpython-310.pycdatetimetester.cpython-310.opt-1.pycdatetimetester.cpython-310.opt-2.pycdatetimetester.cpython-310.pycdis_module.cpython-310.opt-1.pycdis_module.cpython-310.opt-2.pycdis_module.cpython-310.pycdoctest_aliases.cpython-310.opt-1.pycdoctest_aliases.cpython-310.opt-2.pycdoctest_aliases.cpython-310.pycdoctest_lineno.cpython-310.opt-1.pycdoctest_lineno.cpython-310.opt-2.pycdoctest_lineno.cpython-310.pycdouble_const.cpython-310.opt-1.pycdouble_const.cpython-310.opt-2.pycdouble_const.cpython-310.pycfinal_a.cpython-310.opt-1.pycfinal_a.cpython-310.opt-2.pycfinal_a.cpython-310.pycfinal_b.cpython-310.opt-1.pycfinal_b.cpython-310.opt-2.pycfinal_b.cpython-310.pycfork_wait.cpython-310.opt-1.pycfork_wait.cpython-310.opt-2.pycfork_wait.cpython-310.pycfuture_test1.cpython-310.opt-1.pycfuture_test1.cpython-310.opt-2.pycfuture_test1.cpython-310.pycfuture_test2.cpython-310.opt-1.pycfuture_test2.cpython-310.opt-2.pycfuture_test2.cpython-310.pycgdb_sample.cpython-310.opt-1.pycgdb_sample.cpython-310.opt-2.pycgdb_sample.cpython-310.pycgood_getattr.cpython-310.opt-1.pycgood_getattr.cpython-310.opt-2.pycgood_getattr.cpython-310.pycimp_dummy.cpython-310.opt-1.pycimp_dummy.cpython-310.opt-2.pycimp_dummy.cpython-310.pycinspect_fodder.cpython-310.opt-1.pycinspect_fodder.cpython-310.opt-2.pycinspect_fodder.cpython-310.pycinspect_fodder2.cpython-310.opt-1.pycinspect_fodder2.cpython-310.opt-2.pycinspect_fodder2.cpython-310.pycinspect_stock_annotations.cpython-310.opt-1.pycinspect_stock_annotations.cpython-310.opt-2.pycinspect_stock_annotations.cpython-310.pycinspect_stringized_annotations.cpython-310.opt-1.pycinspect_stringized_annotations.cpython-310.opt-2.pycinspect_stringized_annotations.cpython-310.pycinspect_stringized_annotations_2.cpython-310.opt-1.pycinspect_stringized_annotations_2.cpython-310.opt-2.pycinspect_stringized_annotations_2.cpython-310.pyclist_tests.cpython-310.opt-1.pyclist_tests.cpython-310.opt-2.pyclist_tests.cpython-310.pyclock_tests.cpython-310.opt-1.pyclock_tests.cpython-310.opt-2.pyclock_tests.cpython-310.pycmake_ssl_certs.cpython-310.opt-1.pycmake_ssl_certs.cpython-310.opt-2.pycmake_ssl_certs.cpython-310.pycmapping_tests.cpython-310.opt-1.pycmapping_tests.cpython-310.opt-2.pycmapping_tests.cpython-310.pycmemory_watchdog.cpython-310.opt-1.pycmemory_watchdog.cpython-310.opt-2.pycmemory_watchdog.cpython-310.pycmock_socket.cpython-310.opt-1.pycmock_socket.cpython-310.opt-2.pycmock_socket.cpython-310.pycmod_generics_cache.cpython-310.opt-1.pycmod_generics_cache.cpython-310.opt-2.pycmod_generics_cache.cpython-310.pycmp_fork_bomb.cpython-310.opt-1.pycmp_fork_bomb.cpython-310.opt-2.pycmp_fork_bomb.cpython-310.pycmp_preload.cpython-310.opt-1.pycmp_preload.cpython-310.opt-2.pycmp_preload.cpython-310.pycmultibytecodec_support.cpython-310.opt-1.pycmultibytecodec_support.cpython-310.opt-2.pycmultibytecodec_support.cpython-310.pycpickletester.cpython-310.opt-1.pycpickletester.cpython-310.opt-2.pycpickletester.cpython-310.pycprofilee.cpython-310.opt-1.pycprofilee.cpython-310.opt-2.pycprofilee.cpython-310.pycpyclbr_input.cpython-310.opt-1.pycpyclbr_input.cpython-310.opt-2.pycpyclbr_input.cpython-310.pycpydoc_mod.cpython-310.opt-1.pycpydoc_mod.cpython-310.opt-2.pycpydoc_mod.cpython-310.pycpydocfodder.cpython-310.opt-1.pycpydocfodder.cpython-310.opt-2.pycpydocfodder.cpython-310.pycpythoninfo.cpython-310.opt-1.pycpythoninfo.cpython-310.opt-2.pycpythoninfo.cpython-310.pycre_tests.cpython-310.opt-1.pycre_tests.cpython-310.opt-2.pycre_tests.cpython-310.pycregrtest.cpython-310.opt-1.pycregrtest.cpython-310.opt-2.pycregrtest.cpython-310.pycrelimport.cpython-310.opt-1.pycrelimport.cpython-310.opt-2.pycrelimport.cpython-310.pycreperf.cpython-310.opt-1.pycreperf.cpython-310.opt-2.pycreperf.cpython-310.pycsample_doctest.cpython-310.opt-1.pycsample_doctest.cpython-310.opt-2.pycsample_doctest.cpython-310.pycsample_doctest_no_docstrings.cpython-310.opt-1.pycsample_doctest_no_docstrings.cpython-310.opt-2.pycsample_doctest_no_docstrings.cpython-310.pycsample_doctest_no_doctests.cpython-310.opt-1.pycsample_doctest_no_doctests.cpython-310.opt-2.pycsample_doctest_no_doctests.cpython-310.pycseq_tests.cpython-310.opt-1.pycseq_tests.cpython-310.opt-2.pycseq_tests.cpython-310.pycsignalinterproctester.cpython-310.opt-1.pycsignalinterproctester.cpython-310.opt-2.pycsignalinterproctester.cpython-310.pycsortperf.cpython-310.opt-1.pycsortperf.cpython-310.opt-2.pycsortperf.cpython-310.pycssl_servers.cpython-310.opt-1.pycssl_servers.cpython-310.opt-2.pycssl_servers.cpython-310.pycssltests.cpython-310.opt-1.pycssltests.cpython-310.opt-2.pycssltests.cpython-310.pycstring_tests.cpython-310.opt-1.pycstring_tests.cpython-310.opt-2.pycstring_tests.cpython-310.pyctest___all__.cpython-310.opt-1.pyctest___all__.cpython-310.opt-2.pyctest___all__.cpython-310.pyctest___future__.cpython-310.opt-1.pyctest___future__.cpython-310.opt-2.pyctest___future__.cpython-310.pyctest__locale.cpython-310.opt-1.pyctest__locale.cpython-310.opt-2.pyctest__locale.cpython-310.pyctest__opcode.cpython-310.opt-1.pyctest__opcode.cpython-310.opt-2.pyctest__opcode.cpython-310.pyctest__osx_support.cpython-310.opt-1.pyctest__osx_support.cpython-310.opt-2.pyctest__osx_support.cpython-310.pyctest__xxsubinterpreters.cpython-310.opt-1.pyctest__xxsubinterpreters.cpython-310.opt-2.pyctest__xxsubinterpreters.cpython-310.pyctest_abc.cpython-310.opt-1.pyctest_abc.cpython-310.opt-2.pyctest_abc.cpython-310.pyctest_abstract_numbers.cpython-310.opt-1.pyctest_abstract_numbers.cpython-310.opt-2.pyctest_abstract_numbers.cpython-310.pyctest_aifc.cpython-310.opt-1.pyctest_aifc.cpython-310.opt-2.pyctest_aifc.cpython-310.pyctest_argparse.cpython-310.opt-1.pyctest_argparse.cpython-310.opt-2.pyctest_argparse.cpython-310.pyctest_array.cpython-310.opt-1.pyctest_array.cpython-310.opt-2.pyctest_array.cpython-310.pyctest_asdl_parser.cpython-310.opt-1.pyctest_asdl_parser.cpython-310.opt-2.pyctest_asdl_parser.cpython-310.pyctest_ast.cpython-310.opt-1.pyctest_ast.cpython-310.opt-2.pyctest_ast.cpython-310.pyctest_asyncgen.cpython-310.opt-1.pyctest_asyncgen.cpython-310.opt-2.pyctest_asyncgen.cpython-310.pyctest_asynchat.cpython-310.opt-1.pyctest_asynchat.cpython-310.opt-2.pyctest_asynchat.cpython-310.pyctest_asyncore.cpython-310.opt-1.pyctest_asyncore.cpython-310.opt-2.pyctest_asyncore.cpython-310.pyctest_atexit.cpython-310.opt-1.pyctest_atexit.cpython-310.opt-2.pyctest_atexit.cpython-310.pyctest_audioop.cpython-310.opt-1.pyctest_audioop.cpython-310.opt-2.pyctest_audioop.cpython-310.pyctest_audit.cpython-310.opt-1.pyctest_audit.cpython-310.opt-2.pyctest_audit.cpython-310.pyctest_augassign.cpython-310.opt-1.pyctest_augassign.cpython-310.opt-2.pyctest_augassign.cpython-310.pyctest_base64.cpython-310.opt-1.pyctest_base64.cpython-310.opt-2.pyctest_base64.cpython-310.pyctest_baseexception.cpython-310.opt-1.pyctest_baseexception.cpython-310.opt-2.pyctest_baseexception.cpython-310.pyctest_bdb.cpython-310.opt-1.pyctest_bdb.cpython-310.opt-2.pyctest_bdb.cpython-310.pyctest_bigaddrspace.cpython-310.opt-1.pyctest_bigaddrspace.cpython-310.opt-2.pyctest_bigaddrspace.cpython-310.pyctest_bigmem.cpython-310.opt-1.pyctest_bigmem.cpython-310.opt-2.pyctest_bigmem.cpython-310.pyctest_binascii.cpython-310.opt-1.pyctest_binascii.cpython-310.opt-2.pyctest_binascii.cpython-310.pyctest_binhex.cpython-310.opt-1.pyctest_binhex.cpython-310.opt-2.pyctest_binhex.cpython-310.pyctest_binop.cpython-310.opt-1.pyctest_binop.cpython-310.opt-2.pyctest_binop.cpython-310.pyctest_bisect.cpython-310.opt-1.pyctest_bisect.cpython-310.opt-2.pyctest_bisect.cpython-310.pyctest_bool.cpython-310.opt-1.pyctest_bool.cpython-310.opt-2.pyctest_bool.cpython-310.pyctest_buffer.cpython-310.opt-1.pyctest_buffer.cpython-310.opt-2.pyctest_buffer.cpython-310.pyctest_bufio.cpython-310.opt-1.pyctest_bufio.cpython-310.opt-2.pyctest_bufio.cpython-310.pyctest_builtin.cpython-310.opt-1.pyctest_builtin.cpython-310.opt-2.pyctest_builtin.cpython-310.pyctest_bytes.cpython-310.opt-1.pyctest_bytes.cpython-310.opt-2.pyctest_bytes.cpython-310.pyctest_bz2.cpython-310.opt-1.pyctest_bz2.cpython-310.opt-2.pyctest_bz2.cpython-310.pyctest_c_locale_coercion.cpython-310.opt-1.pyctest_c_locale_coercion.cpython-310.opt-2.pyctest_c_locale_coercion.cpython-310.pyctest_calendar.cpython-310.opt-1.pyctest_calendar.cpython-310.opt-2.pyctest_calendar.cpython-310.pyctest_call.cpython-310.opt-1.pyctest_call.cpython-310.opt-2.pyctest_call.cpython-310.pyctest_cgi.cpython-310.opt-1.pyctest_cgi.cpython-310.opt-2.pyctest_cgi.cpython-310.pyctest_cgitb.cpython-310.opt-1.pyctest_cgitb.cpython-310.opt-2.pyctest_cgitb.cpython-310.pyctest_charmapcodec.cpython-310.opt-1.pyctest_charmapcodec.cpython-310.opt-2.pyctest_charmapcodec.cpython-310.pyctest_check_c_globals.cpython-310.opt-1.pyctest_check_c_globals.cpython-310.opt-2.pyctest_check_c_globals.cpython-310.pyctest_class.cpython-310.opt-1.pyctest_class.cpython-310.opt-2.pyctest_class.cpython-310.pyctest_clinic.cpython-310.opt-1.pyctest_clinic.cpython-310.opt-2.pyctest_clinic.cpython-310.pyctest_cmath.cpython-310.opt-1.pyctest_cmath.cpython-310.opt-2.pyctest_cmath.cpython-310.pyctest_cmd.cpython-310.opt-1.pyctest_cmd.cpython-310.opt-2.pyctest_cmd.cpython-310.pyctest_cmd_line.cpython-310.opt-1.pyctest_cmd_line.cpython-310.opt-2.pyctest_cmd_line.cpython-310.pyctest_cmd_line_script.cpython-310.opt-1.pyctest_cmd_line_script.cpython-310.opt-2.pyctest_cmd_line_script.cpython-310.pyctest_code.cpython-310.opt-1.pyctest_code.cpython-310.opt-2.pyctest_code.cpython-310.pyctest_code_module.cpython-310.opt-1.pyctest_code_module.cpython-310.opt-2.pyctest_code_module.cpython-310.pyctest_codeccallbacks.cpython-310.opt-1.pyctest_codeccallbacks.cpython-310.opt-2.pyctest_codeccallbacks.cpython-310.pyctest_codecencodings_cn.cpython-310.opt-1.pyctest_codecencodings_cn.cpython-310.opt-2.pyctest_codecencodings_cn.cpython-310.pyctest_codecencodings_hk.cpython-310.opt-1.pyctest_codecencodings_hk.cpython-310.opt-2.pyctest_codecencodings_hk.cpython-310.pyctest_codecencodings_iso2022.cpython-310.opt-1.pyctest_codecencodings_iso2022.cpython-310.opt-2.pyctest_codecencodings_iso2022.cpython-310.pyctest_codecencodings_jp.cpython-310.opt-1.pyctest_codecencodings_jp.cpython-310.opt-2.pyctest_codecencodings_jp.cpython-310.pyctest_codecencodings_kr.cpython-310.opt-1.pyctest_codecencodings_kr.cpython-310.opt-2.pyctest_codecencodings_kr.cpython-310.pyctest_codecencodings_tw.cpython-310.opt-1.pyctest_codecencodings_tw.cpython-310.opt-2.pyctest_codecencodings_tw.cpython-310.pyctest_codecmaps_cn.cpython-310.opt-1.pyctest_codecmaps_cn.cpython-310.opt-2.pyctest_codecmaps_cn.cpython-310.pyctest_codecmaps_hk.cpython-310.opt-1.pyctest_codecmaps_hk.cpython-310.opt-2.pyctest_codecmaps_hk.cpython-310.pyctest_codecmaps_jp.cpython-310.opt-1.pyctest_codecmaps_jp.cpython-310.opt-2.pyctest_codecmaps_jp.cpython-310.pyctest_codecmaps_kr.cpython-310.opt-1.pyctest_codecmaps_kr.cpython-310.opt-2.pyctest_codecmaps_kr.cpython-310.pyctest_codecmaps_tw.cpython-310.opt-1.pyctest_codecmaps_tw.cpython-310.opt-2.pyctest_codecmaps_tw.cpython-310.pyctest_codecs.cpython-310.opt-1.pyctest_codecs.cpython-310.opt-2.pyctest_codecs.cpython-310.pyctest_codeop.cpython-310.opt-1.pyctest_codeop.cpython-310.opt-2.pyctest_codeop.cpython-310.pyctest_collections.cpython-310.opt-1.pyctest_collections.cpython-310.opt-2.pyctest_collections.cpython-310.pyctest_colorsys.cpython-310.opt-1.pyctest_colorsys.cpython-310.opt-2.pyctest_colorsys.cpython-310.pyctest_compare.cpython-310.opt-1.pyctest_compare.cpython-310.opt-2.pyctest_compare.cpython-310.pyctest_compile.cpython-310.opt-1.pyctest_compile.cpython-310.opt-2.pyctest_compile.cpython-310.pyctest_compileall.cpython-310.opt-1.pyctest_compileall.cpython-310.opt-2.pyctest_compileall.cpython-310.pyctest_complex.cpython-310.opt-1.pyctest_complex.cpython-310.opt-2.pyctest_complex.cpython-310.pyctest_concurrent_futures.cpython-310.opt-1.pyctest_concurrent_futures.cpython-310.opt-2.pyctest_concurrent_futures.cpython-310.pyctest_configparser.cpython-310.opt-1.pyctest_configparser.cpython-310.opt-2.pyctest_configparser.cpython-310.pyctest_contains.cpython-310.opt-1.pyctest_contains.cpython-310.opt-2.pyctest_contains.cpython-310.pyctest_context.cpython-310.opt-1.pyctest_context.cpython-310.opt-2.pyctest_context.cpython-310.pyctest_contextlib.cpython-310.opt-1.pyctest_contextlib.cpython-310.opt-2.pyctest_contextlib.cpython-310.pyctest_contextlib_async.cpython-310.opt-1.pyctest_contextlib_async.cpython-310.opt-2.pyctest_contextlib_async.cpython-310.pyctest_copy.cpython-310.opt-1.pyctest_copy.cpython-310.opt-2.pyctest_copy.cpython-310.pyctest_copyreg.cpython-310.opt-1.pyctest_copyreg.cpython-310.opt-2.pyctest_copyreg.cpython-310.pyctest_coroutines.cpython-310.opt-1.pyctest_coroutines.cpython-310.opt-2.pyctest_coroutines.cpython-310.pyctest_cprofile.cpython-310.opt-1.pyctest_cprofile.cpython-310.opt-2.pyctest_cprofile.cpython-310.pyctest_crashers.cpython-310.opt-1.pyctest_crashers.cpython-310.opt-2.pyctest_crashers.cpython-310.pyctest_crypt.cpython-310.opt-1.pyctest_crypt.cpython-310.opt-2.pyctest_crypt.cpython-310.pyctest_csv.cpython-310.opt-1.pyctest_csv.cpython-310.opt-2.pyctest_csv.cpython-310.pyctest_ctypes.cpython-310.opt-1.pyctest_ctypes.cpython-310.opt-2.pyctest_ctypes.cpython-310.pyctest_curses.cpython-310.opt-1.pyctest_curses.cpython-310.opt-2.pyctest_curses.cpython-310.pyctest_dataclasses.cpython-310.opt-1.pyctest_dataclasses.cpython-310.opt-2.pyctest_dataclasses.cpython-310.pyctest_datetime.cpython-310.opt-1.pyctest_datetime.cpython-310.opt-2.pyctest_datetime.cpython-310.pyctest_dbm.cpython-310.opt-1.pyctest_dbm.cpython-310.opt-2.pyctest_dbm.cpython-310.pyctest_dbm_dumb.cpython-310.opt-1.pyctest_dbm_dumb.cpython-310.opt-2.pyctest_dbm_dumb.cpython-310.pyctest_dbm_gnu.cpython-310.opt-1.pyctest_dbm_gnu.cpython-310.opt-2.pyctest_dbm_gnu.cpython-310.pyctest_dbm_ndbm.cpython-310.opt-1.pyctest_dbm_ndbm.cpython-310.opt-2.pyctest_dbm_ndbm.cpython-310.pyctest_decimal.cpython-310.opt-1.pyctest_decimal.cpython-310.opt-2.pyctest_decimal.cpython-310.pyctest_decorators.cpython-310.opt-1.pyctest_decorators.cpython-310.opt-2.pyctest_decorators.cpython-310.pyctest_defaultdict.cpython-310.opt-1.pyctest_defaultdict.cpython-310.opt-2.pyctest_defaultdict.cpython-310.pyctest_deque.cpython-310.opt-1.pyctest_deque.cpython-310.opt-2.pyctest_deque.cpython-310.pyctest_descr.cpython-310.opt-1.pyctest_descr.cpython-310.opt-2.pyctest_descr.cpython-310.pyctest_descrtut.cpython-310.opt-1.pyctest_descrtut.cpython-310.opt-2.pyctest_descrtut.cpython-310.pyctest_devpoll.cpython-310.opt-1.pyctest_devpoll.cpython-310.opt-2.pyctest_devpoll.cpython-310.pyctest_dict.cpython-310.opt-1.pyctest_dict.cpython-310.opt-2.pyctest_dict.cpython-310.pyctest_dict_version.cpython-310.opt-1.pyctest_dict_version.cpython-310.opt-2.pyctest_dict_version.cpython-310.pyctest_dictcomps.cpython-310.opt-1.pyctest_dictcomps.cpython-310.opt-2.pyctest_dictcomps.cpython-310.pyctest_dictviews.cpython-310.opt-1.pyctest_dictviews.cpython-310.opt-2.pyctest_dictviews.cpython-310.pyctest_difflib.cpython-310.opt-1.pyctest_difflib.cpython-310.opt-2.pyctest_difflib.cpython-310.pyctest_dis.cpython-310.opt-1.pyctest_dis.cpython-310.opt-2.pyctest_dis.cpython-310.pyctest_distutils.cpython-310.opt-1.pyctest_distutils.cpython-310.opt-2.pyctest_distutils.cpython-310.pyctest_doctest.cpython-310.opt-1.pyctest_doctest.cpython-310.opt-2.pyctest_doctest.cpython-310.pyctest_doctest2.cpython-310.opt-1.pyctest_doctest2.cpython-310.opt-2.pyctest_doctest2.cpython-310.pyctest_docxmlrpc.cpython-310.opt-1.pyctest_docxmlrpc.cpython-310.opt-2.pyctest_docxmlrpc.cpython-310.pyctest_dtrace.cpython-310.opt-1.pyctest_dtrace.cpython-310.opt-2.pyctest_dtrace.cpython-310.pyctest_dynamic.cpython-310.opt-1.pyctest_dynamic.cpython-310.opt-2.pyctest_dynamic.cpython-310.pyctest_dynamicclassattribute.cpython-310.opt-1.pyctest_dynamicclassattribute.cpython-310.opt-2.pyctest_dynamicclassattribute.cpython-310.pyctest_eintr.cpython-310.opt-1.pyctest_eintr.cpython-310.opt-2.pyctest_eintr.cpython-310.pyctest_embed.cpython-310.opt-1.pyctest_embed.cpython-310.opt-2.pyctest_embed.cpython-310.pyctest_ensurepip.cpython-310.opt-1.pyctest_ensurepip.cpython-310.opt-2.pyctest_ensurepip.cpython-310.pyctest_enum.cpython-310.opt-1.pyctest_enum.cpython-310.opt-2.pyctest_enum.cpython-310.pyctest_enumerate.cpython-310.opt-1.pyctest_enumerate.cpython-310.opt-2.pyctest_enumerate.cpython-310.pyctest_eof.cpython-310.opt-1.pyctest_eof.cpython-310.opt-2.pyctest_eof.cpython-310.pyctest_epoll.cpython-310.opt-1.pyctest_epoll.cpython-310.opt-2.pyctest_epoll.cpython-310.pyctest_errno.cpython-310.opt-1.pyctest_errno.cpython-310.opt-2.pyctest_errno.cpython-310.pyctest_exception_hierarchy.cpython-310.opt-1.pyctest_exception_hierarchy.cpython-310.opt-2.pyctest_exception_hierarchy.cpython-310.pyctest_exception_variations.cpython-310.opt-1.pyctest_exception_variations.cpython-310.opt-2.pyctest_exception_variations.cpython-310.pyctest_exceptions.cpython-310.opt-1.pyctest_exceptions.cpython-310.opt-2.pyctest_exceptions.cpython-310.pyctest_extcall.cpython-310.opt-1.pyctest_extcall.cpython-310.opt-2.pyctest_extcall.cpython-310.pyctest_faulthandler.cpython-310.opt-1.pyctest_faulthandler.cpython-310.opt-2.pyctest_faulthandler.cpython-310.pyctest_fcntl.cpython-310.opt-1.pyctest_fcntl.cpython-310.opt-2.pyctest_fcntl.cpython-310.pyctest_file.cpython-310.opt-1.pyctest_file.cpython-310.opt-2.pyctest_file.cpython-310.pyctest_file_eintr.cpython-310.opt-1.pyctest_file_eintr.cpython-310.opt-2.pyctest_file_eintr.cpython-310.pyctest_filecmp.cpython-310.opt-1.pyctest_filecmp.cpython-310.opt-2.pyctest_filecmp.cpython-310.pyctest_fileinput.cpython-310.opt-1.pyctest_fileinput.cpython-310.opt-2.pyctest_fileinput.cpython-310.pyctest_fileio.cpython-310.opt-1.pyctest_fileio.cpython-310.opt-2.pyctest_fileio.cpython-310.pyctest_finalization.cpython-310.opt-1.pyctest_finalization.cpython-310.opt-2.pyctest_finalization.cpython-310.pyctest_float.cpython-310.opt-1.pyctest_float.cpython-310.opt-2.pyctest_float.cpython-310.pyctest_flufl.cpython-310.opt-1.pyctest_flufl.cpython-310.opt-2.pyctest_flufl.cpython-310.pyctest_fnmatch.cpython-310.opt-1.pyctest_fnmatch.cpython-310.opt-2.pyctest_fnmatch.cpython-310.pyctest_fork1.cpython-310.opt-1.pyctest_fork1.cpython-310.opt-2.pyctest_fork1.cpython-310.pyctest_format.cpython-310.opt-1.pyctest_format.cpython-310.opt-2.pyctest_format.cpython-310.pyctest_fractions.cpython-310.opt-1.pyctest_fractions.cpython-310.opt-2.pyctest_fractions.cpython-310.pyctest_frame.cpython-310.opt-1.pyctest_frame.cpython-310.opt-2.pyctest_frame.cpython-310.pyctest_frozen.cpython-310.opt-1.pyctest_frozen.cpython-310.opt-2.pyctest_frozen.cpython-310.pyctest_fstring.cpython-310.opt-1.pyctest_fstring.cpython-310.opt-2.pyctest_fstring.cpython-310.pyctest_ftplib.cpython-310.opt-1.pyctest_ftplib.cpython-310.opt-2.pyctest_ftplib.cpython-310.pyctest_funcattrs.cpython-310.opt-1.pyctest_funcattrs.cpython-310.opt-2.pyctest_funcattrs.cpython-310.pyctest_functools.cpython-310.opt-1.pyctest_functools.cpython-310.opt-2.pyctest_functools.cpython-310.pyctest_future.cpython-310.opt-1.pyctest_future.cpython-310.opt-2.pyctest_future.cpython-310.pyctest_future3.cpython-310.opt-1.pyctest_future3.cpython-310.opt-2.pyctest_future3.cpython-310.pyctest_future4.cpython-310.opt-1.pyctest_future4.cpython-310.opt-2.pyctest_future4.cpython-310.pyctest_future5.cpython-310.opt-1.pyctest_future5.cpython-310.opt-2.pyctest_future5.cpython-310.pyctest_gc.cpython-310.opt-1.pyctest_gc.cpython-310.opt-2.pyctest_gc.cpython-310.pyctest_gdb.cpython-310.opt-1.pyctest_gdb.cpython-310.opt-2.pyctest_gdb.cpython-310.pyctest_generator_stop.cpython-310.opt-1.pyctest_generator_stop.cpython-310.opt-2.pyctest_generator_stop.cpython-310.pyctest_generators.cpython-310.opt-1.pyctest_generators.cpython-310.opt-2.pyctest_generators.cpython-310.pyctest_genericalias.cpython-310.opt-1.pyctest_genericalias.cpython-310.opt-2.pyctest_genericalias.cpython-310.pyctest_genericclass.cpython-310.opt-1.pyctest_genericclass.cpython-310.opt-2.pyctest_genericclass.cpython-310.pyctest_genericpath.cpython-310.opt-1.pyctest_genericpath.cpython-310.opt-2.pyctest_genericpath.cpython-310.pyctest_genexps.cpython-310.opt-1.pyctest_genexps.cpython-310.opt-2.pyctest_genexps.cpython-310.pyctest_getopt.cpython-310.opt-1.pyctest_getopt.cpython-310.opt-2.pyctest_getopt.cpython-310.pyctest_getpass.cpython-310.opt-1.pyctest_getpass.cpython-310.opt-2.pyctest_getpass.cpython-310.pyctest_gettext.cpython-310.opt-1.pyctest_gettext.cpython-310.opt-2.pyctest_gettext.cpython-310.pyctest_glob.cpython-310.opt-1.pyctest_glob.cpython-310.opt-2.pyctest_glob.cpython-310.pyctest_global.cpython-310.opt-1.pyctest_global.cpython-310.opt-2.pyctest_global.cpython-310.pyctest_grammar.cpython-310.opt-1.pyctest_grammar.cpython-310.opt-2.pyctest_grammar.cpython-310.pyctest_graphlib.cpython-310.opt-1.pyctest_graphlib.cpython-310.opt-2.pyctest_graphlib.cpython-310.pyctest_grp.cpython-310.opt-1.pyctest_grp.cpython-310.opt-2.pyctest_grp.cpython-310.pyctest_gzip.cpython-310.opt-1.pyctest_gzip.cpython-310.opt-2.pyctest_gzip.cpython-310.pyctest_hash.cpython-310.opt-1.pyctest_hash.cpython-310.opt-2.pyctest_hash.cpython-310.pyctest_hashlib.cpython-310.opt-1.pyctest_hashlib.cpython-310.opt-2.pyctest_hashlib.cpython-310.pyctest_heapq.cpython-310.opt-1.pyctest_heapq.cpython-310.opt-2.pyctest_heapq.cpython-310.pyctest_hmac.cpython-310.opt-1.pyctest_hmac.cpython-310.opt-2.pyctest_hmac.cpython-310.pyctest_html.cpython-310.opt-1.pyctest_html.cpython-310.opt-2.pyctest_html.cpython-310.pyctest_htmlparser.cpython-310.opt-1.pyctest_htmlparser.cpython-310.opt-2.pyctest_htmlparser.cpython-310.pyctest_http_cookiejar.cpython-310.opt-1.pyctest_http_cookiejar.cpython-310.opt-2.pyctest_http_cookiejar.cpython-310.pyctest_http_cookies.cpython-310.opt-1.pyctest_http_cookies.cpython-310.opt-2.pyctest_http_cookies.cpython-310.pyctest_httplib.cpython-310.opt-1.pyctest_httplib.cpython-310.opt-2.pyctest_httplib.cpython-310.pyctest_httpservers.cpython-310.opt-1.pyctest_httpservers.cpython-310.opt-2.pyctest_httpservers.cpython-310.pyctest_idle.cpython-310.opt-1.pyctest_idle.cpython-310.opt-2.pyctest_idle.cpython-310.pyctest_imaplib.cpython-310.opt-1.pyctest_imaplib.cpython-310.opt-2.pyctest_imaplib.cpython-310.pyctest_imghdr.cpython-310.opt-1.pyctest_imghdr.cpython-310.opt-2.pyctest_imghdr.cpython-310.pyctest_imp.cpython-310.opt-1.pyctest_imp.cpython-310.opt-2.pyctest_imp.cpython-310.pyctest_index.cpython-310.opt-1.pyctest_index.cpython-310.opt-2.pyctest_index.cpython-310.pyctest_inspect.cpython-310.opt-1.pyctest_inspect.cpython-310.opt-2.pyctest_inspect.cpython-310.pyctest_int.cpython-310.opt-1.pyctest_int.cpython-310.opt-2.pyctest_int.cpython-310.pyctest_int_literal.cpython-310.opt-1.pyctest_int_literal.cpython-310.opt-2.pyctest_int_literal.cpython-310.pyctest_interpreters.cpython-310.opt-1.pyctest_interpreters.cpython-310.opt-2.pyctest_interpreters.cpython-310.pyctest_io.cpython-310.opt-1.pyctest_io.cpython-310.opt-2.pyctest_io.cpython-310.pyctest_ioctl.cpython-310.opt-1.pyctest_ioctl.cpython-310.opt-2.pyctest_ioctl.cpython-310.pyctest_ipaddress.cpython-310.opt-1.pyctest_ipaddress.cpython-310.opt-2.pyctest_ipaddress.cpython-310.pyctest_isinstance.cpython-310.opt-1.pyctest_isinstance.cpython-310.opt-2.pyctest_isinstance.cpython-310.pyctest_iter.cpython-310.opt-1.pyctest_iter.cpython-310.opt-2.pyctest_iter.cpython-310.pyctest_iterlen.cpython-310.opt-1.pyctest_iterlen.cpython-310.opt-2.pyctest_iterlen.cpython-310.pyctest_itertools.cpython-310.opt-1.pyctest_itertools.cpython-310.opt-2.pyctest_itertools.cpython-310.pyctest_keyword.cpython-310.opt-1.pyctest_keyword.cpython-310.opt-2.pyctest_keyword.cpython-310.pyctest_keywordonlyarg.cpython-310.opt-1.pyctest_keywordonlyarg.cpython-310.opt-2.pyctest_keywordonlyarg.cpython-310.pyctest_kqueue.cpython-310.opt-1.pyctest_kqueue.cpython-310.opt-2.pyctest_kqueue.cpython-310.pyctest_largefile.cpython-310.opt-1.pyctest_largefile.cpython-310.opt-2.pyctest_largefile.cpython-310.pyctest_lib2to3.cpython-310.opt-1.pyctest_lib2to3.cpython-310.opt-2.pyctest_lib2to3.cpython-310.pyctest_linecache.cpython-310.opt-1.pyctest_linecache.cpython-310.opt-2.pyctest_linecache.cpython-310.pyctest_list.cpython-310.opt-1.pyctest_list.cpython-310.opt-2.pyctest_list.cpython-310.pyctest_listcomps.cpython-310.opt-1.pyctest_listcomps.cpython-310.opt-2.pyctest_listcomps.cpython-310.pyctest_lltrace.cpython-310.opt-1.pyctest_lltrace.cpython-310.opt-2.pyctest_lltrace.cpython-310.pyctest_locale.cpython-310.opt-1.pyctest_locale.cpython-310.opt-2.pyctest_locale.cpython-310.pyctest_logging.cpython-310.opt-1.pyctest_logging.cpython-310.opt-2.pyctest_logging.cpython-310.pyctest_long.cpython-310.opt-1.pyctest_long.cpython-310.opt-2.pyctest_long.cpython-310.pyctest_longexp.cpython-310.opt-1.pyctest_longexp.cpython-310.opt-2.pyctest_longexp.cpython-310.pyctest_lzma.cpython-310.opt-1.pyctest_lzma.cpython-310.opt-2.pyctest_lzma.cpython-310.pyctest_mailbox.cpython-310.opt-1.pyctest_mailbox.cpython-310.opt-2.pyctest_mailbox.cpython-310.pyctest_mailcap.cpython-310.opt-1.pyctest_mailcap.cpython-310.opt-2.pyctest_mailcap.cpython-310.pyctest_marshal.cpython-310.opt-1.pyctest_marshal.cpython-310.opt-2.pyctest_marshal.cpython-310.pyctest_math.cpython-310.opt-1.pyctest_math.cpython-310.opt-2.pyctest_math.cpython-310.pyctest_memoryio.cpython-310.opt-1.pyctest_memoryio.cpython-310.opt-2.pyctest_memoryio.cpython-310.pyctest_memoryview.cpython-310.opt-1.pyctest_memoryview.cpython-310.opt-2.pyctest_memoryview.cpython-310.pyctest_metaclass.cpython-310.opt-1.pyctest_metaclass.cpython-310.opt-2.pyctest_metaclass.cpython-310.pyctest_mimetypes.cpython-310.opt-1.pyctest_mimetypes.cpython-310.opt-2.pyctest_mimetypes.cpython-310.pyctest_minidom.cpython-310.opt-1.pyctest_minidom.cpython-310.opt-2.pyctest_minidom.cpython-310.pyctest_mmap.cpython-310.opt-1.pyctest_mmap.cpython-310.opt-2.pyctest_mmap.cpython-310.pyctest_module.cpython-310.opt-1.pyctest_module.cpython-310.opt-2.pyctest_module.cpython-310.pyctest_modulefinder.cpython-310.opt-1.pyctest_modulefinder.cpython-310.opt-2.pyctest_modulefinder.cpython-310.pyctest_msilib.cpython-310.opt-1.pyctest_msilib.cpython-310.opt-2.pyctest_msilib.cpython-310.pyctest_multibytecodec.cpython-310.opt-1.pyctest_multibytecodec.cpython-310.opt-2.pyctest_multibytecodec.cpython-310.pyctest_multiprocessing_fork.cpython-310.opt-1.pyctest_multiprocessing_fork.cpython-310.opt-2.pyctest_multiprocessing_fork.cpython-310.pyctest_multiprocessing_forkserver.cpython-310.opt-1.pyctest_multiprocessing_forkserver.cpython-310.opt-2.pyctest_multiprocessing_forkserver.cpython-310.pyctest_multiprocessing_main_handling.cpython-310.opt-1.pyctest_multiprocessing_main_handling.cpython-310.opt-2.pyctest_multiprocessing_main_handling.cpython-310.pyctest_multiprocessing_spawn.cpython-310.opt-1.pyctest_multiprocessing_spawn.cpython-310.opt-2.pyctest_multiprocessing_spawn.cpython-310.pyctest_named_expressions.cpython-310.opt-1.pyctest_named_expressions.cpython-310.opt-2.pyctest_named_expressions.cpython-310.pyctest_netrc.cpython-310.opt-1.pyctest_netrc.cpython-310.opt-2.pyctest_netrc.cpython-310.pyctest_nis.cpython-310.opt-1.pyctest_nis.cpython-310.opt-2.pyctest_nis.cpython-310.pyctest_nntplib.cpython-310.opt-1.pyctest_nntplib.cpython-310.opt-2.pyctest_nntplib.cpython-310.pyctest_ntpath.cpython-310.opt-1.pyctest_ntpath.cpython-310.opt-2.pyctest_ntpath.cpython-310.pyctest_numeric_tower.cpython-310.opt-1.pyctest_numeric_tower.cpython-310.opt-2.pyctest_numeric_tower.cpython-310.pyctest_opcache.cpython-310.opt-1.pyctest_opcache.cpython-310.opt-2.pyctest_opcache.cpython-310.pyctest_opcodes.cpython-310.opt-1.pyctest_opcodes.cpython-310.opt-2.pyctest_opcodes.cpython-310.pyctest_openpty.cpython-310.opt-1.pyctest_openpty.cpython-310.opt-2.pyctest_openpty.cpython-310.pyctest_operator.cpython-310.opt-1.pyctest_operator.cpython-310.opt-2.pyctest_operator.cpython-310.pyctest_optparse.cpython-310.opt-1.pyctest_optparse.cpython-310.opt-2.pyctest_optparse.cpython-310.pyctest_ordered_dict.cpython-310.opt-1.pyctest_ordered_dict.cpython-310.opt-2.pyctest_ordered_dict.cpython-310.pyctest_os.cpython-310.opt-1.pyctest_os.cpython-310.opt-2.pyctest_os.cpython-310.pyctest_ossaudiodev.cpython-310.opt-1.pyctest_ossaudiodev.cpython-310.opt-2.pyctest_ossaudiodev.cpython-310.pyctest_osx_env.cpython-310.opt-1.pyctest_osx_env.cpython-310.opt-2.pyctest_osx_env.cpython-310.pyctest_pathlib.cpython-310.opt-1.pyctest_pathlib.cpython-310.opt-2.pyctest_pathlib.cpython-310.pyctest_patma.cpython-310.opt-1.pyctest_patma.cpython-310.opt-2.pyctest_patma.cpython-310.pyctest_pdb.cpython-310.opt-1.pyctest_pdb.cpython-310.opt-2.pyctest_pdb.cpython-310.pyctest_peepholer.cpython-310.opt-1.pyctest_peepholer.cpython-310.opt-2.pyctest_peepholer.cpython-310.pyctest_pickle.cpython-310.opt-1.pyctest_pickle.cpython-310.opt-2.pyctest_pickle.cpython-310.pyctest_picklebuffer.cpython-310.opt-1.pyctest_picklebuffer.cpython-310.opt-2.pyctest_picklebuffer.cpython-310.pyctest_pickletools.cpython-310.opt-1.pyctest_pickletools.cpython-310.opt-2.pyctest_pickletools.cpython-310.pyctest_pipes.cpython-310.opt-1.pyctest_pipes.cpython-310.opt-2.pyctest_pipes.cpython-310.pyctest_pkg.cpython-310.opt-1.pyctest_pkg.cpython-310.opt-2.pyctest_pkg.cpython-310.pyctest_pkgutil.cpython-310.opt-1.pyctest_pkgutil.cpython-310.opt-2.pyctest_pkgutil.cpython-310.pyctest_platform.cpython-310.opt-1.pyctest_platform.cpython-310.opt-2.pyctest_platform.cpython-310.pyctest_plistlib.cpython-310.opt-1.pyctest_plistlib.cpython-310.opt-2.pyctest_plistlib.cpython-310.pyctest_poll.cpython-310.opt-1.pyctest_poll.cpython-310.opt-2.pyctest_poll.cpython-310.pyctest_popen.cpython-310.opt-1.pyctest_popen.cpython-310.opt-2.pyctest_popen.cpython-310.pyctest_poplib.cpython-310.opt-1.pyctest_poplib.cpython-310.opt-2.pyctest_poplib.cpython-310.pyctest_positional_only_arg.cpython-310.opt-1.pyctest_positional_only_arg.cpython-310.opt-2.pyctest_positional_only_arg.cpython-310.pyctest_posix.cpython-310.opt-1.pyctest_posix.cpython-310.opt-2.pyctest_posix.cpython-310.pyctest_posixpath.cpython-310.opt-1.pyctest_posixpath.cpython-310.opt-2.pyctest_posixpath.cpython-310.pyctest_pow.cpython-310.opt-1.pyctest_pow.cpython-310.opt-2.pyctest_pow.cpython-310.pyctest_pprint.cpython-310.opt-1.pyctest_pprint.cpython-310.opt-2.pyctest_pprint.cpython-310.pyctest_print.cpython-310.opt-1.pyctest_print.cpython-310.opt-2.pyctest_print.cpython-310.pyctest_profile.cpython-310.opt-1.pyctest_profile.cpython-310.opt-2.pyctest_profile.cpython-310.pyctest_property.cpython-310.opt-1.pyctest_property.cpython-310.opt-2.pyctest_property.cpython-310.pyctest_pstats.cpython-310.opt-1.pyctest_pstats.cpython-310.opt-2.pyctest_pstats.cpython-310.pyctest_pty.cpython-310.opt-1.pyctest_pty.cpython-310.opt-2.pyctest_pty.cpython-310.pyctest_pulldom.cpython-310.opt-1.pyctest_pulldom.cpython-310.opt-2.pyctest_pulldom.cpython-310.pyctest_pwd.cpython-310.opt-1.pyctest_pwd.cpython-310.opt-2.pyctest_pwd.cpython-310.pyctest_py_compile.cpython-310.opt-1.pyctest_py_compile.cpython-310.opt-2.pyctest_py_compile.cpython-310.pyctest_pyclbr.cpython-310.opt-1.pyctest_pyclbr.cpython-310.opt-2.pyctest_pyclbr.cpython-310.pyctest_pydoc.cpython-310.opt-1.pyctest_pydoc.cpython-310.opt-2.pyctest_pydoc.cpython-310.pyctest_pyexpat.cpython-310.opt-1.pyctest_pyexpat.cpython-310.opt-2.pyctest_pyexpat.cpython-310.pyctest_queue.cpython-310.opt-1.pyctest_queue.cpython-310.opt-2.pyctest_queue.cpython-310.pyctest_quopri.cpython-310.opt-1.pyctest_quopri.cpython-310.opt-2.pyctest_quopri.cpython-310.pyctest_raise.cpython-310.opt-1.pyctest_raise.cpython-310.opt-2.pyctest_raise.cpython-310.pyctest_random.cpython-310.opt-1.pyctest_random.cpython-310.opt-2.pyctest_random.cpython-310.pyctest_range.cpython-310.opt-1.pyctest_range.cpython-310.opt-2.pyctest_range.cpython-310.pyctest_re.cpython-310.opt-1.pyctest_re.cpython-310.opt-2.pyctest_re.cpython-310.pyctest_readline.cpython-310.opt-1.pyctest_readline.cpython-310.opt-2.pyctest_readline.cpython-310.pyctest_regrtest.cpython-310.opt-1.pyctest_regrtest.cpython-310.opt-2.pyctest_regrtest.cpython-310.pyctest_repl.cpython-310.opt-1.pyctest_repl.cpython-310.opt-2.pyctest_repl.cpython-310.pyctest_reprlib.cpython-310.opt-1.pyctest_reprlib.cpython-310.opt-2.pyctest_reprlib.cpython-310.pyctest_resource.cpython-310.opt-1.pyctest_resource.cpython-310.opt-2.pyctest_resource.cpython-310.pyctest_richcmp.cpython-310.opt-1.pyctest_richcmp.cpython-310.opt-2.pyctest_richcmp.cpython-310.pyctest_rlcompleter.cpython-310.opt-1.pyctest_rlcompleter.cpython-310.opt-2.pyctest_rlcompleter.cpython-310.pyctest_robotparser.cpython-310.opt-1.pyctest_robotparser.cpython-310.opt-2.pyctest_robotparser.cpython-310.pyctest_runpy.cpython-310.opt-1.pyctest_runpy.cpython-310.opt-2.pyctest_runpy.cpython-310.pyctest_sax.cpython-310.opt-1.pyctest_sax.cpython-310.opt-2.pyctest_sax.cpython-310.pyctest_sched.cpython-310.opt-1.pyctest_sched.cpython-310.opt-2.pyctest_sched.cpython-310.pyctest_scope.cpython-310.opt-1.pyctest_scope.cpython-310.opt-2.pyctest_scope.cpython-310.pyctest_script_helper.cpython-310.opt-1.pyctest_script_helper.cpython-310.opt-2.pyctest_script_helper.cpython-310.pyctest_secrets.cpython-310.opt-1.pyctest_secrets.cpython-310.opt-2.pyctest_secrets.cpython-310.pyctest_select.cpython-310.opt-1.pyctest_select.cpython-310.opt-2.pyctest_select.cpython-310.pyctest_selectors.cpython-310.opt-1.pyctest_selectors.cpython-310.opt-2.pyctest_selectors.cpython-310.pyctest_set.cpython-310.opt-1.pyctest_set.cpython-310.opt-2.pyctest_set.cpython-310.pyctest_setcomps.cpython-310.opt-1.pyctest_setcomps.cpython-310.opt-2.pyctest_setcomps.cpython-310.pyctest_shelve.cpython-310.opt-1.pyctest_shelve.cpython-310.opt-2.pyctest_shelve.cpython-310.pyctest_shlex.cpython-310.opt-1.pyctest_shlex.cpython-310.opt-2.pyctest_shlex.cpython-310.pyctest_shutil.cpython-310.opt-1.pyctest_shutil.cpython-310.opt-2.pyctest_shutil.cpython-310.pyctest_signal.cpython-310.opt-1.pyctest_signal.cpython-310.opt-2.pyctest_signal.cpython-310.pyctest_site.cpython-310.opt-1.pyctest_site.cpython-310.opt-2.pyctest_site.cpython-310.pyctest_slice.cpython-310.opt-1.pyctest_slice.cpython-310.opt-2.pyctest_slice.cpython-310.pyctest_smtpd.cpython-310.opt-1.pyctest_smtpd.cpython-310.opt-2.pyctest_smtpd.cpython-310.pyctest_smtplib.cpython-310.opt-1.pyctest_smtplib.cpython-310.opt-2.pyctest_smtplib.cpython-310.pyctest_smtpnet.cpython-310.opt-1.pyctest_smtpnet.cpython-310.opt-2.pyctest_smtpnet.cpython-310.pyctest_sndhdr.cpython-310.opt-1.pyctest_sndhdr.cpython-310.opt-2.pyctest_sndhdr.cpython-310.pyctest_socket.cpython-310.opt-1.pyctest_socket.cpython-310.opt-2.pyctest_socket.cpython-310.pyctest_socketserver.cpython-310.opt-1.pyctest_socketserver.cpython-310.opt-2.pyctest_socketserver.cpython-310.pyctest_sort.cpython-310.opt-1.pyctest_sort.cpython-310.opt-2.pyctest_sort.cpython-310.pyctest_source_encoding.cpython-310.opt-1.pyctest_source_encoding.cpython-310.opt-2.pyctest_source_encoding.cpython-310.pyctest_spwd.cpython-310.opt-1.pyctest_spwd.cpython-310.opt-2.pyctest_spwd.cpython-310.pyctest_sqlite.cpython-310.opt-1.pyctest_sqlite.cpython-310.opt-2.pyctest_sqlite.cpython-310.pyctest_ssl.cpython-310.opt-1.pyctest_ssl.cpython-310.opt-2.pyctest_ssl.cpython-310.pyctest_startfile.cpython-310.opt-1.pyctest_startfile.cpython-310.opt-2.pyctest_startfile.cpython-310.pyctest_stat.cpython-310.opt-1.pyctest_stat.cpython-310.opt-2.pyctest_stat.cpython-310.pyctest_statistics.cpython-310.opt-1.pyctest_statistics.cpython-310.opt-2.pyctest_statistics.cpython-310.pyctest_strftime.cpython-310.opt-1.pyctest_strftime.cpython-310.opt-2.pyctest_strftime.cpython-310.pyctest_string.cpython-310.opt-1.pyctest_string.cpython-310.opt-2.pyctest_string.cpython-310.pyctest_string_literals.cpython-310.opt-1.pyctest_string_literals.cpython-310.opt-2.pyctest_string_literals.cpython-310.pyctest_stringprep.cpython-310.opt-1.pyctest_stringprep.cpython-310.opt-2.pyctest_stringprep.cpython-310.pyctest_strptime.cpython-310.opt-1.pyctest_strptime.cpython-310.opt-2.pyctest_strptime.cpython-310.pyctest_strtod.cpython-310.opt-1.pyctest_strtod.cpython-310.opt-2.pyctest_strtod.cpython-310.pyctest_struct.cpython-310.opt-1.pyctest_struct.cpython-310.opt-2.pyctest_struct.cpython-310.pyctest_structseq.cpython-310.opt-1.pyctest_structseq.cpython-310.opt-2.pyctest_structseq.cpython-310.pyctest_subclassinit.cpython-310.opt-1.pyctest_subclassinit.cpython-310.opt-2.pyctest_subclassinit.cpython-310.pyctest_subprocess.cpython-310.opt-1.pyctest_subprocess.cpython-310.opt-2.pyctest_subprocess.cpython-310.pyctest_sunau.cpython-310.opt-1.pyctest_sunau.cpython-310.opt-2.pyctest_sunau.cpython-310.pyctest_sundry.cpython-310.opt-1.pyctest_sundry.cpython-310.opt-2.pyctest_sundry.cpython-310.pyctest_super.cpython-310.opt-1.pyctest_super.cpython-310.opt-2.pyctest_super.cpython-310.pyctest_support.cpython-310.opt-1.pyctest_support.cpython-310.opt-2.pyctest_support.cpython-310.pyctest_symtable.cpython-310.opt-1.pyctest_symtable.cpython-310.opt-2.pyctest_symtable.cpython-310.pyctest_syntax.cpython-310.opt-1.pyctest_syntax.cpython-310.opt-2.pyctest_syntax.cpython-310.pyctest_sys.cpython-310.opt-1.pyctest_sys.cpython-310.opt-2.pyctest_sys.cpython-310.pyctest_sys_setprofile.cpython-310.opt-1.pyctest_sys_setprofile.cpython-310.opt-2.pyctest_sys_setprofile.cpython-310.pyctest_sys_settrace.cpython-310.opt-1.pyctest_sys_settrace.cpython-310.opt-2.pyctest_sys_settrace.cpython-310.pyctest_sysconfig.cpython-310.opt-1.pyctest_sysconfig.cpython-310.opt-2.pyctest_sysconfig.cpython-310.pyctest_syslog.cpython-310.opt-1.pyctest_syslog.cpython-310.opt-2.pyctest_syslog.cpython-310.pyctest_tabnanny.cpython-310.opt-1.pyctest_tabnanny.cpython-310.opt-2.pyctest_tabnanny.cpython-310.pyctest_tarfile.cpython-310.opt-1.pyctest_tarfile.cpython-310.opt-2.pyctest_tarfile.cpython-310.pyctest_tcl.cpython-310.opt-1.pyctest_tcl.cpython-310.opt-2.pyctest_tcl.cpython-310.pyctest_telnetlib.cpython-310.opt-1.pyctest_telnetlib.cpython-310.opt-2.pyctest_telnetlib.cpython-310.pyctest_tempfile.cpython-310.opt-1.pyctest_tempfile.cpython-310.opt-2.pyctest_tempfile.cpython-310.pyctest_textwrap.cpython-310.opt-1.pyctest_textwrap.cpython-310.opt-2.pyctest_textwrap.cpython-310.pyctest_thread.cpython-310.opt-1.pyctest_thread.cpython-310.opt-2.pyctest_thread.cpython-310.pyctest_threadedtempfile.cpython-310.opt-1.pyctest_threadedtempfile.cpython-310.opt-2.pyctest_threadedtempfile.cpython-310.pyctest_threading.cpython-310.opt-1.pyctest_threading.cpython-310.opt-2.pyctest_threading.cpython-310.pyctest_threading_local.cpython-310.opt-1.pyctest_threading_local.cpython-310.opt-2.pyctest_threading_local.cpython-310.pyctest_threadsignals.cpython-310.opt-1.pyctest_threadsignals.cpython-310.opt-2.pyctest_threadsignals.cpython-310.pyctest_time.cpython-310.opt-1.pyctest_time.cpython-310.opt-2.pyctest_time.cpython-310.pyctest_timeit.cpython-310.opt-1.pyctest_timeit.cpython-310.opt-2.pyctest_timeit.cpython-310.pyctest_timeout.cpython-310.opt-1.pyctest_timeout.cpython-310.opt-2.pyctest_timeout.cpython-310.pyctest_tix.cpython-310.opt-1.pyctest_tix.cpython-310.opt-2.pyctest_tix.cpython-310.pyctest_tk.cpython-310.opt-1.pyctest_tk.cpython-310.opt-2.pyctest_tk.cpython-310.pyctest_tokenize.cpython-310.opt-1.pyctest_tokenize.cpython-310.opt-2.pyctest_tokenize.cpython-310.pyctest_trace.cpython-310.opt-1.pyctest_trace.cpython-310.opt-2.pyctest_trace.cpython-310.pyctest_traceback.cpython-310.opt-1.pyctest_traceback.cpython-310.opt-2.pyctest_traceback.cpython-310.pyctest_tracemalloc.cpython-310.opt-1.pyctest_tracemalloc.cpython-310.opt-2.pyctest_tracemalloc.cpython-310.pyctest_ttk_guionly.cpython-310.opt-1.pyctest_ttk_guionly.cpython-310.opt-2.pyctest_ttk_guionly.cpython-310.pyctest_ttk_textonly.cpython-310.opt-1.pyctest_ttk_textonly.cpython-310.opt-2.pyctest_ttk_textonly.cpython-310.pyctest_tuple.cpython-310.opt-1.pyctest_tuple.cpython-310.opt-2.pyctest_tuple.cpython-310.pyctest_turtle.cpython-310.opt-1.pyctest_turtle.cpython-310.opt-2.pyctest_turtle.cpython-310.pyctest_type_annotations.cpython-310.opt-1.pyctest_type_annotations.cpython-310.opt-2.pyctest_type_annotations.cpython-310.pyctest_type_comments.cpython-310.opt-1.pyctest_type_comments.cpython-310.opt-2.pyctest_type_comments.cpython-310.pyctest_typechecks.cpython-310.opt-1.pyctest_typechecks.cpython-310.opt-2.pyctest_typechecks.cpython-310.pyctest_types.cpython-310.opt-1.pyctest_types.cpython-310.opt-2.pyctest_types.cpython-310.pyctest_typing.cpython-310.opt-1.pyctest_typing.cpython-310.opt-2.pyctest_typing.cpython-310.pyctest_ucn.cpython-310.opt-1.pyctest_ucn.cpython-310.opt-2.pyctest_ucn.cpython-310.pyctest_unary.cpython-310.opt-1.pyctest_unary.cpython-310.opt-2.pyctest_unary.cpython-310.pyctest_unicode.cpython-310.opt-1.pyctest_unicode.cpython-310.opt-2.pyctest_unicode.cpython-310.pyctest_unicode_file.cpython-310.opt-1.pyctest_unicode_file.cpython-310.opt-2.pyctest_unicode_file.cpython-310.pyctest_unicode_file_functions.cpython-310.opt-1.pyctest_unicode_file_functions.cpython-310.opt-2.pyctest_unicode_file_functions.cpython-310.pyctest_unicode_identifiers.cpython-310.opt-1.pyctest_unicode_identifiers.cpython-310.opt-2.pyctest_unicode_identifiers.cpython-310.pyctest_unicodedata.cpython-310.opt-1.pyctest_unicodedata.cpython-310.opt-2.pyctest_unicodedata.cpython-310.pyctest_unittest.cpython-310.opt-1.pyctest_unittest.cpython-310.opt-2.pyctest_unittest.cpython-310.pyctest_univnewlines.cpython-310.opt-1.pyctest_univnewlines.cpython-310.opt-2.pyctest_univnewlines.cpython-310.pyctest_unpack.cpython-310.opt-1.pyctest_unpack.cpython-310.opt-2.pyctest_unpack.cpython-310.pyctest_unpack_ex.cpython-310.opt-1.pyctest_unpack_ex.cpython-310.opt-2.pyctest_unpack_ex.cpython-310.pyctest_unparse.cpython-310.opt-1.pyctest_unparse.cpython-310.opt-2.pyctest_unparse.cpython-310.pyctest_urllib.cpython-310.opt-1.pyctest_urllib.cpython-310.opt-2.pyctest_urllib.cpython-310.pyctest_urllib2.cpython-310.opt-1.pyctest_urllib2.cpython-310.opt-2.pyctest_urllib2.cpython-310.pyctest_urllib2_localnet.cpython-310.opt-1.pyctest_urllib2_localnet.cpython-310.opt-2.pyctest_urllib2_localnet.cpython-310.pyctest_urllib2net.cpython-310.opt-1.pyctest_urllib2net.cpython-310.opt-2.pyctest_urllib2net.cpython-310.pyctest_urllib_response.cpython-310.opt-1.pyctest_urllib_response.cpython-310.opt-2.pyctest_urllib_response.cpython-310.pyctest_urllibnet.cpython-310.opt-1.pyctest_urllibnet.cpython-310.opt-2.pyctest_urllibnet.cpython-310.pyctest_urlparse.cpython-310.opt-1.pyctest_urlparse.cpython-310.opt-2.pyctest_urlparse.cpython-310.pyctest_userdict.cpython-310.opt-1.pyctest_userdict.cpython-310.opt-2.pyctest_userdict.cpython-310.pyctest_userlist.cpython-310.opt-1.pyctest_userlist.cpython-310.opt-2.pyctest_userlist.cpython-310.pyctest_userstring.cpython-310.opt-1.pyctest_userstring.cpython-310.opt-2.pyctest_userstring.cpython-310.pyctest_utf8_mode.cpython-310.opt-1.pyctest_utf8_mode.cpython-310.opt-2.pyctest_utf8_mode.cpython-310.pyctest_utf8source.cpython-310.opt-1.pyctest_utf8source.cpython-310.opt-2.pyctest_utf8source.cpython-310.pyctest_uu.cpython-310.opt-1.pyctest_uu.cpython-310.opt-2.pyctest_uu.cpython-310.pyctest_uuid.cpython-310.opt-1.pyctest_uuid.cpython-310.opt-2.pyctest_uuid.cpython-310.pyctest_venv.cpython-310.opt-1.pyctest_venv.cpython-310.opt-2.pyctest_venv.cpython-310.pyctest_wait3.cpython-310.opt-1.pyctest_wait3.cpython-310.opt-2.pyctest_wait3.cpython-310.pyctest_wait4.cpython-310.opt-1.pyctest_wait4.cpython-310.opt-2.pyctest_wait4.cpython-310.pyctest_wave.cpython-310.opt-1.pyctest_wave.cpython-310.opt-2.pyctest_wave.cpython-310.pyctest_weakref.cpython-310.opt-1.pyctest_weakref.cpython-310.opt-2.pyctest_weakref.cpython-310.pyctest_weakset.cpython-310.opt-1.pyctest_weakset.cpython-310.opt-2.pyctest_weakset.cpython-310.pyctest_webbrowser.cpython-310.opt-1.pyctest_webbrowser.cpython-310.opt-2.pyctest_webbrowser.cpython-310.pyctest_winconsoleio.cpython-310.opt-1.pyctest_winconsoleio.cpython-310.opt-2.pyctest_winconsoleio.cpython-310.pyctest_winreg.cpython-310.opt-1.pyctest_winreg.cpython-310.opt-2.pyctest_winreg.cpython-310.pyctest_winsound.cpython-310.opt-1.pyctest_winsound.cpython-310.opt-2.pyctest_winsound.cpython-310.pyctest_with.cpython-310.opt-1.pyctest_with.cpython-310.opt-2.pyctest_with.cpython-310.pyctest_wsgiref.cpython-310.opt-1.pyctest_wsgiref.cpython-310.opt-2.pyctest_wsgiref.cpython-310.pyctest_xdrlib.cpython-310.opt-1.pyctest_xdrlib.cpython-310.opt-2.pyctest_xdrlib.cpython-310.pyctest_xml_dom_minicompat.cpython-310.opt-1.pyctest_xml_dom_minicompat.cpython-310.opt-2.pyctest_xml_dom_minicompat.cpython-310.pyctest_xml_etree.cpython-310.opt-1.pyctest_xml_etree.cpython-310.opt-2.pyctest_xml_etree.cpython-310.pyctest_xml_etree_c.cpython-310.opt-1.pyctest_xml_etree_c.cpython-310.opt-2.pyctest_xml_etree_c.cpython-310.pyctest_xmlrpc.cpython-310.opt-1.pyctest_xmlrpc.cpython-310.opt-2.pyctest_xmlrpc.cpython-310.pyctest_xmlrpc_net.cpython-310.opt-1.pyctest_xmlrpc_net.cpython-310.opt-2.pyctest_xmlrpc_net.cpython-310.pyctest_xxlimited.cpython-310.opt-1.pyctest_xxlimited.cpython-310.opt-2.pyctest_xxlimited.cpython-310.pyctest_xxtestfuzz.cpython-310.opt-1.pyctest_xxtestfuzz.cpython-310.opt-2.pyctest_xxtestfuzz.cpython-310.pyctest_yield_from.cpython-310.opt-1.pyctest_yield_from.cpython-310.opt-2.pyctest_yield_from.cpython-310.pyctest_zipapp.cpython-310.opt-1.pyctest_zipapp.cpython-310.opt-2.pyctest_zipapp.cpython-310.pyctest_zipfile.cpython-310.opt-1.pyctest_zipfile.cpython-310.opt-2.pyctest_zipfile.cpython-310.pyctest_zipfile64.cpython-310.opt-1.pyctest_zipfile64.cpython-310.opt-2.pyctest_zipfile64.cpython-310.pyctest_zipimport.cpython-310.opt-1.pyctest_zipimport.cpython-310.opt-2.pyctest_zipimport.cpython-310.pyctest_zipimport_support.cpython-310.opt-1.pyctest_zipimport_support.cpython-310.opt-2.pyctest_zipimport_support.cpython-310.pyctest_zlib.cpython-310.opt-1.pyctest_zlib.cpython-310.opt-2.pyctest_zlib.cpython-310.pyctestcodec.cpython-310.opt-1.pyctestcodec.cpython-310.opt-2.pyctestcodec.cpython-310.pyctf_inherit_check.cpython-310.opt-1.pyctf_inherit_check.cpython-310.opt-2.pyctf_inherit_check.cpython-310.pyctime_hashlib.cpython-310.opt-1.pyctime_hashlib.cpython-310.opt-2.pyctime_hashlib.cpython-310.pycwin_console_handler.cpython-310.opt-1.pycwin_console_handler.cpython-310.opt-2.pycwin_console_handler.cpython-310.pycxmltests.cpython-310.opt-1.pycxmltests.cpython-310.opt-2.pycxmltests.cpython-310.pyc_test_atexit.py_test_eintr.py_test_embed_set_config.py_test_multiprocessing.py_typed_dict_helper.pyallsans.pemann_module.pyann_module2.pyann_module3.pyann_module4.pyann_module5.pyann_module6.pyann_module7.pyaudiodatapluck-alaw.aifcpluck-pcm16.aiffpluck-pcm16.aupluck-pcm16.wavpluck-pcm24.aiffpluck-pcm24.aupluck-pcm24.wavpluck-pcm32.aiffpluck-pcm32.aupluck-pcm32.wavpluck-pcm8.aiffpluck-pcm8.aupluck-pcm8.wavpluck-ulaw.aifcpluck-ulaw.auaudiotest.auaudiotests.pyaudit-tests.pyautotest.pybad_coding.pybad_coding2.pybad_getattr.pybad_getattr2.pybad_getattr3.pybadcert.pembadkey.pembadsyntax_3131.pybadsyntax_future10.pybadsyntax_future3.pybadsyntax_future4.pybadsyntax_future5.pybadsyntax_future6.pybadsyntax_future7.pybadsyntax_future8.pybadsyntax_future9.pybadsyntax_pep3120.pybisect_cmd.pycapath4e1295a3.05ed36f99.06e88d7b8.099d0fa06.0b1930218.0ceff1710.0cfgparser.1cfgparser.2cfgparser.3cjkencodingsbig5-utf8.txtbig5.txtbig5hkscs-utf8.txtbig5hkscs.txtcp949-utf8.txtcp949.txteuc_jisx0213-utf8.txteuc_jisx0213.txteuc_jp-utf8.txteuc_jp.txteuc_kr-utf8.txteuc_kr.txtgb18030-utf8.txtgb18030.txtgb2312-utf8.txtgb2312.txtgbk-utf8.txtgbk.txthz-utf8.txthz.txtiso2022_jp-utf8.txtiso2022_jp.txtiso2022_kr-utf8.txtiso2022_kr.txtjohab-utf8.txtjohab.txtshift_jis-utf8.txtshift_jis.txtshift_jisx0213-utf8.txtshift_jisx0213.txtclinic.testcmath_testcases.txtcoding20731.pycurses_tests.pydataREADMEdataclass_module_1.pydataclass_module_1_str.pydataclass_module_2.pydataclass_module_2_str.pydataclass_textanno.pydatetimetester.pydecimaltestdataabs.decTestadd.decTestand.decTestbase.decTestclamp.decTestclass.decTestcompare.decTestcomparetotal.decTestcomparetotmag.decTestcopy.decTestcopyabs.decTestcopynegate.decTestcopysign.decTestddAbs.decTestddAdd.decTestddAnd.decTestddBase.decTestddCanonical.decTestddClass.decTestddCompare.decTestddCompareSig.decTestddCompareTotal.decTestddCompareTotalMag.decTestddCopy.decTestddCopyAbs.decTestddCopyNegate.decTestddCopySign.decTestddDivide.decTestddDivideInt.decTestddEncode.decTestddFMA.decTestddInvert.decTestddLogB.decTestddMax.decTestddMaxMag.decTestddMin.decTestddMinMag.decTestddMinus.decTestddMultiply.decTestddNextMinus.decTestddNextPlus.decTestddNextToward.decTestddOr.decTestddPlus.decTestddQuantize.decTestddReduce.decTestddRemainder.decTestddRemainderNear.decTestddRotate.decTestddSameQuantum.decTestddScaleB.decTestddShift.decTestddSubtract.decTestddToIntegral.decTestddXor.decTestdecDouble.decTestdecQuad.decTestdecSingle.decTestdivide.decTestdivideint.decTestdqAbs.decTestdqAdd.decTestdqAnd.decTestdqBase.decTestdqCanonical.decTestdqClass.decTestdqCompare.decTestdqCompareSig.decTestdqCompareTotal.decTestdqCompareTotalMag.decTestdqCopy.decTestdqCopyAbs.decTestdqCopyNegate.decTestdqCopySign.decTestdqDivide.decTestdqDivideInt.decTestdqEncode.decTestdqFMA.decTestdqInvert.decTestdqLogB.decTestdqMax.decTestdqMaxMag.decTestdqMin.decTestdqMinMag.decTestdqMinus.decTestdqMultiply.decTestdqNextMinus.decTestdqNextPlus.decTestdqNextToward.decTestdqOr.decTestdqPlus.decTestdqQuantize.decTestdqReduce.decTestdqRemainder.decTestdqRemainderNear.decTestdqRotate.decTestdqSameQuantum.decTestdqScaleB.decTestdqShift.decTestdqSubtract.decTestdqToIntegral.decTestdqXor.decTestdsBase.decTestdsEncode.decTestexp.decTestextra.decTestfma.decTestinexact.decTestinvert.decTestln.decTestlog10.decTestlogb.decTestmax.decTestmaxmag.decTestmin.decTestminmag.decTestminus.decTestmultiply.decTestnextminus.decTestnextplus.decTestnexttoward.decTestor.decTestplus.decTestpower.decTestpowersqrt.decTestquantize.decTestrandomBound32.decTestrandoms.decTestreduce.decTestremainder.decTestremainderNear.decTestrescale.decTestrotate.decTestrounding.decTestsamequantum.decTestscaleb.decTestshift.decTestsquareroot.decTestsubtract.decTesttestall.decTesttointegral.decTesttointegralx.decTestxor.decTestdis_module.pydoctest_aliases.pydoctest_lineno.pydouble_const.pydtracedata__pycache__call_stack.cpython-310.opt-1.pyccall_stack.cpython-310.opt-2.pyccall_stack.cpython-310.pycgc.cpython-310.opt-1.pycgc.cpython-310.opt-2.pycgc.cpython-310.pycinstance.cpython-310.opt-1.pycinstance.cpython-310.opt-2.pycinstance.cpython-310.pycline.cpython-310.opt-1.pycline.cpython-310.opt-2.pycline.cpython-310.pycassert_usable.dassert_usable.stpcall_stack.dcall_stack.d.expectedcall_stack.pycall_stack.stpcall_stack.stp.expectedgc.dgc.d.expectedgc.pygc.stpgc.stp.expectedinstance.pyline.dline.d.expectedline.pyempty.vbsencoded_modules__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycmodule_iso_8859_1.cpython-310.opt-1.pycmodule_iso_8859_1.cpython-310.opt-2.pycmodule_iso_8859_1.cpython-310.pycmodule_koi8_r.cpython-310.opt-1.pycmodule_koi8_r.cpython-310.opt-2.pycmodule_koi8_r.cpython-310.pycmodule_iso_8859_1.pymodule_koi8_r.pyexception_hierarchy.txtffdh3072.pemfinal_a.pyfinal_b.pyfloating_points.txtfork_wait.pyformatfloat_testcases.txtfuture_test1.pyfuture_test2.pygdb_sample.pygood_getattr.pyidnsans.pemieee754.txtimghdrdatapython.bmppython.exrpython.gifpython.jpgpython.pbmpython.pgmpython.pngpython.ppmpython.raspython.sgipython.tiffpython.webppython.xbmimp_dummy.pyinspect_fodder.pyinspect_fodder2.pyinspect_stock_annotations.pyinspect_stringized_annotations.pyinspect_stringized_annotations_2.pykeycert.passwd.pemkeycert.pemkeycert2.pemkeycert3.pemkeycert4.pemkeycertecc.pemlibregrtest__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyccmdline.cpython-310.opt-1.pyccmdline.cpython-310.opt-2.pyccmdline.cpython-310.pycmain.cpython-310.opt-1.pycmain.cpython-310.opt-2.pycmain.cpython-310.pycpgo.cpython-310.opt-1.pycpgo.cpython-310.opt-2.pycpgo.cpython-310.pycrefleak.cpython-310.opt-1.pycrefleak.cpython-310.opt-2.pycrefleak.cpython-310.pycruntest.cpython-310.opt-1.pycruntest.cpython-310.opt-2.pycruntest.cpython-310.pycruntest_mp.cpython-310.opt-1.pycruntest_mp.cpython-310.opt-2.pycruntest_mp.cpython-310.pycsave_env.cpython-310.opt-1.pycsave_env.cpython-310.opt-2.pycsave_env.cpython-310.pycsetup.cpython-310.opt-1.pycsetup.cpython-310.opt-2.pycsetup.cpython-310.pycutils.cpython-310.opt-1.pycutils.cpython-310.opt-2.pycutils.cpython-310.pycwin_utils.cpython-310.opt-1.pycwin_utils.cpython-310.opt-2.pycwin_utils.cpython-310.pyccmdline.pymain.pypgo.pyrefleak.pyruntest.pyruntest_mp.pysave_env.pysetup.pyutils.pywin_utils.pylist_tests.pylock_tests.pymailcap.txtmake_ssl_certs.pymapping_tests.pymath_testcases.txtmemory_watchdog.pymime.typesmock_socket.pymod_generics_cache.pymp_fork_bomb.pymp_preload.pymultibytecodec_support.pynokia.pemnosan.pemnullbytecert.pemnullcert.pempickletester.pyprofilee.pypstats.pckpycacert.pempycakey.pempyclbr_input.pypydoc_mod.pypydocfodder.pypythoninfo.pyrandv2_32.pckrandv2_64.pckrandv3.pckre_tests.pyrecursion.tarregrtest.pyrelimport.pyreperf.pyrevocation.crlsample_doctest.pysample_doctest_no_docstrings.pysample_doctest_no_doctests.pysecp384r1.pemselfsigned_pythontestdotnet.pemseq_tests.pysgml_input.htmlsignalinterproctester.pysndhdrdataREADMEsndhdr.8svxsndhdr.aifcsndhdr.aiffsndhdr.ausndhdr.hcomsndhdr.sndtsndhdr.vocsndhdr.wavsortperf.pyssl_cert.pemssl_key.passwd.pemssl_key.pemssl_servers.pyssltests.pystring_tests.pysubprocessdata__pycache__fd_status.cpython-310.opt-1.pycfd_status.cpython-310.opt-2.pycfd_status.cpython-310.pycinput_reader.cpython-310.opt-1.pycinput_reader.cpython-310.opt-2.pycinput_reader.cpython-310.pycqcat.cpython-310.opt-1.pycqcat.cpython-310.opt-2.pycqcat.cpython-310.pycqgrep.cpython-310.opt-1.pycqgrep.cpython-310.opt-2.pycqgrep.cpython-310.pycsigchild_ignore.cpython-310.opt-1.pycsigchild_ignore.cpython-310.opt-2.pycsigchild_ignore.cpython-310.pycfd_status.pyinput_reader.pyqcat.pyqgrep.pysigchild_ignore.pysupport__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycbytecode_helper.cpython-310.opt-1.pycbytecode_helper.cpython-310.opt-2.pycbytecode_helper.cpython-310.pychashlib_helper.cpython-310.opt-1.pychashlib_helper.cpython-310.opt-2.pychashlib_helper.cpython-310.pycimport_helper.cpython-310.opt-1.pycimport_helper.cpython-310.opt-2.pycimport_helper.cpython-310.pycinterpreters.cpython-310.opt-1.pycinterpreters.cpython-310.opt-2.pycinterpreters.cpython-310.pyclogging_helper.cpython-310.opt-1.pyclogging_helper.cpython-310.opt-2.pyclogging_helper.cpython-310.pycos_helper.cpython-310.opt-1.pycos_helper.cpython-310.opt-2.pycos_helper.cpython-310.pycscript_helper.cpython-310.opt-1.pycscript_helper.cpython-310.opt-2.pycscript_helper.cpython-310.pycsocket_helper.cpython-310.opt-1.pycsocket_helper.cpython-310.opt-2.pycsocket_helper.cpython-310.pyctestresult.cpython-310.opt-1.pyctestresult.cpython-310.opt-2.pyctestresult.cpython-310.pycthreading_helper.cpython-310.opt-1.pycthreading_helper.cpython-310.opt-2.pycthreading_helper.cpython-310.pycwarnings_helper.cpython-310.opt-1.pycwarnings_helper.cpython-310.opt-2.pycwarnings_helper.cpython-310.pycbytecode_helper.pyhashlib_helper.pyimport_helper.pyinterpreters.pylogging_helper.pyos_helper.pyscript_helper.pysocket_helper.pytestresult.pythreading_helper.pywarnings_helper.pytalos-2019-0758.pemtest___all__.pytest___future__.pytest__locale.pytest__opcode.pytest__osx_support.pytest__xxsubinterpreters.pytest_abc.pytest_abstract_numbers.pytest_aifc.pytest_argparse.pytest_array.pytest_asdl_parser.pytest_ast.pytest_asyncgen.pytest_asynchat.pytest_asyncio__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pycecho.cpython-310.opt-1.pycecho.cpython-310.opt-2.pycecho.cpython-310.pycecho2.cpython-310.opt-1.pycecho2.cpython-310.opt-2.pycecho2.cpython-310.pycecho3.cpython-310.opt-1.pycecho3.cpython-310.opt-2.pycecho3.cpython-310.pycfunctional.cpython-310.opt-1.pycfunctional.cpython-310.opt-2.pycfunctional.cpython-310.pyctest_base_events.cpython-310.opt-1.pyctest_base_events.cpython-310.opt-2.pyctest_base_events.cpython-310.pyctest_buffered_proto.cpython-310.opt-1.pyctest_buffered_proto.cpython-310.opt-2.pyctest_buffered_proto.cpython-310.pyctest_context.cpython-310.opt-1.pyctest_context.cpython-310.opt-2.pyctest_context.cpython-310.pyctest_events.cpython-310.opt-1.pyctest_events.cpython-310.opt-2.pyctest_events.cpython-310.pyctest_futures.cpython-310.opt-1.pyctest_futures.cpython-310.opt-2.pyctest_futures.cpython-310.pyctest_futures2.cpython-310.opt-1.pyctest_futures2.cpython-310.opt-2.pyctest_futures2.cpython-310.pyctest_locks.cpython-310.opt-1.pyctest_locks.cpython-310.opt-2.pyctest_locks.cpython-310.pyctest_pep492.cpython-310.opt-1.pyctest_pep492.cpython-310.opt-2.pyctest_pep492.cpython-310.pyctest_proactor_events.cpython-310.opt-1.pyctest_proactor_events.cpython-310.opt-2.pyctest_proactor_events.cpython-310.pyctest_protocols.cpython-310.opt-1.pyctest_protocols.cpython-310.opt-2.pyctest_protocols.cpython-310.pyctest_queues.cpython-310.opt-1.pyctest_queues.cpython-310.opt-2.pyctest_queues.cpython-310.pyctest_runners.cpython-310.opt-1.pyctest_runners.cpython-310.opt-2.pyctest_runners.cpython-310.pyctest_selector_events.cpython-310.opt-1.pyctest_selector_events.cpython-310.opt-2.pyctest_selector_events.cpython-310.pyctest_sendfile.cpython-310.opt-1.pyctest_sendfile.cpython-310.opt-2.pyctest_sendfile.cpython-310.pyctest_server.cpython-310.opt-1.pyctest_server.cpython-310.opt-2.pyctest_server.cpython-310.pyctest_sock_lowlevel.cpython-310.opt-1.pyctest_sock_lowlevel.cpython-310.opt-2.pyctest_sock_lowlevel.cpython-310.pyctest_sslproto.cpython-310.opt-1.pyctest_sslproto.cpython-310.opt-2.pyctest_sslproto.cpython-310.pyctest_streams.cpython-310.opt-1.pyctest_streams.cpython-310.opt-2.pyctest_streams.cpython-310.pyctest_subprocess.cpython-310.opt-1.pyctest_subprocess.cpython-310.opt-2.pyctest_subprocess.cpython-310.pyctest_tasks.cpython-310.opt-1.pyctest_tasks.cpython-310.opt-2.pyctest_tasks.cpython-310.pyctest_threads.cpython-310.opt-1.pyctest_threads.cpython-310.opt-2.pyctest_threads.cpython-310.pyctest_transports.cpython-310.opt-1.pyctest_transports.cpython-310.opt-2.pyctest_transports.cpython-310.pyctest_unix_events.cpython-310.opt-1.pyctest_unix_events.cpython-310.opt-2.pyctest_unix_events.cpython-310.pyctest_waitfor.cpython-310.opt-1.pyctest_waitfor.cpython-310.opt-2.pyctest_waitfor.cpython-310.pyctest_windows_events.cpython-310.opt-1.pyctest_windows_events.cpython-310.opt-2.pyctest_windows_events.cpython-310.pyctest_windows_utils.cpython-310.opt-1.pyctest_windows_utils.cpython-310.opt-2.pyctest_windows_utils.cpython-310.pycutils.cpython-310.opt-1.pycutils.cpython-310.opt-2.pycutils.cpython-310.pycecho.pyecho2.pyecho3.pyfunctional.pytest_base_events.pytest_buffered_proto.pytest_context.pytest_events.pytest_futures.pytest_futures2.pytest_locks.pytest_pep492.pytest_proactor_events.pytest_protocols.pytest_queues.pytest_runners.pytest_selector_events.pytest_sendfile.pytest_server.pytest_sock_lowlevel.pytest_sslproto.pytest_streams.pytest_subprocess.pytest_tasks.pytest_threads.pytest_transports.pytest_unix_events.pytest_waitfor.pytest_windows_events.pytest_windows_utils.pyutils.pytest_asyncore.pytest_atexit.pytest_audioop.pytest_audit.pytest_augassign.pytest_base64.pytest_baseexception.pytest_bdb.pytest_bigaddrspace.pytest_bigmem.pytest_binascii.pytest_binhex.pytest_binop.pytest_bisect.pytest_bool.pytest_buffer.pytest_bufio.pytest_builtin.pytest_bytes.pytest_bz2.pytest_c_locale_coercion.pytest_calendar.pytest_call.pytest_cgi.pytest_cgitb.pytest_charmapcodec.pytest_check_c_globals.pytest_class.pytest_clinic.pytest_cmath.pytest_cmd.pytest_cmd_line.pytest_cmd_line_script.pytest_code.pytest_code_module.pytest_codeccallbacks.pytest_codecencodings_cn.pytest_codecencodings_hk.pytest_codecencodings_iso2022.pytest_codecencodings_jp.pytest_codecencodings_kr.pytest_codecencodings_tw.pytest_codecmaps_cn.pytest_codecmaps_hk.pytest_codecmaps_jp.pytest_codecmaps_kr.pytest_codecmaps_tw.pytest_codecs.pytest_codeop.pytest_collections.pytest_colorsys.pytest_compare.pytest_compile.pytest_compileall.pytest_complex.pytest_concurrent_futures.pytest_configparser.pytest_contains.pytest_context.pytest_contextlib.pytest_contextlib_async.pytest_copy.pytest_copyreg.pytest_coroutines.pytest_cprofile.pytest_crashers.pytest_crypt.pytest_csv.pytest_ctypes.pytest_curses.pytest_dataclasses.pytest_datetime.pytest_dbm.pytest_dbm_dumb.pytest_dbm_gnu.pytest_dbm_ndbm.pytest_decimal.pytest_decorators.pytest_defaultdict.pytest_deque.pytest_descr.pytest_descrtut.pytest_devpoll.pytest_dict.pytest_dict_version.pytest_dictcomps.pytest_dictviews.pytest_difflib.pytest_difflib_expect.htmltest_dis.pytest_distutils.pytest_doctest.pytest_doctest.txttest_doctest2.pytest_doctest2.txttest_doctest3.txttest_doctest4.txttest_docxmlrpc.pytest_dtrace.pytest_dynamic.pytest_dynamicclassattribute.pytest_eintr.pytest_email__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest__encoded_words.cpython-310.opt-1.pyctest__encoded_words.cpython-310.opt-2.pyctest__encoded_words.cpython-310.pyctest__header_value_parser.cpython-310.opt-1.pyctest__header_value_parser.cpython-310.opt-2.pyctest__header_value_parser.cpython-310.pyctest_asian_codecs.cpython-310.opt-1.pyctest_asian_codecs.cpython-310.opt-2.pyctest_asian_codecs.cpython-310.pyctest_contentmanager.cpython-310.opt-1.pyctest_contentmanager.cpython-310.opt-2.pyctest_contentmanager.cpython-310.pyctest_defect_handling.cpython-310.opt-1.pyctest_defect_handling.cpython-310.opt-2.pyctest_defect_handling.cpython-310.pyctest_email.cpython-310.opt-1.pyctest_email.cpython-310.opt-2.pyctest_email.cpython-310.pyctest_generator.cpython-310.opt-1.pyctest_generator.cpython-310.opt-2.pyctest_generator.cpython-310.pyctest_headerregistry.cpython-310.opt-1.pyctest_headerregistry.cpython-310.opt-2.pyctest_headerregistry.cpython-310.pyctest_inversion.cpython-310.opt-1.pyctest_inversion.cpython-310.opt-2.pyctest_inversion.cpython-310.pyctest_message.cpython-310.opt-1.pyctest_message.cpython-310.opt-2.pyctest_message.cpython-310.pyctest_parser.cpython-310.opt-1.pyctest_parser.cpython-310.opt-2.pyctest_parser.cpython-310.pyctest_pickleable.cpython-310.opt-1.pyctest_pickleable.cpython-310.opt-2.pyctest_pickleable.cpython-310.pyctest_policy.cpython-310.opt-1.pyctest_policy.cpython-310.opt-2.pyctest_policy.cpython-310.pyctest_utils.cpython-310.opt-1.pyctest_utils.cpython-310.opt-2.pyctest_utils.cpython-310.pyctorture_test.cpython-310.opt-1.pyctorture_test.cpython-310.opt-2.pyctorture_test.cpython-310.pycdataPyBanner048.gifaudiotest.aumsg_01.txtmsg_02.txtmsg_03.txtmsg_04.txtmsg_05.txtmsg_06.txtmsg_07.txtmsg_08.txtmsg_09.txtmsg_10.txtmsg_11.txtmsg_12.txtmsg_12a.txtmsg_13.txtmsg_14.txtmsg_15.txtmsg_16.txtmsg_17.txtmsg_18.txtmsg_19.txtmsg_20.txtmsg_21.txtmsg_22.txtmsg_23.txtmsg_24.txtmsg_25.txtmsg_26.txtmsg_27.txtmsg_28.txtmsg_29.txtmsg_30.txtmsg_31.txtmsg_32.txtmsg_33.txtmsg_34.txtmsg_35.txtmsg_36.txtmsg_37.txtmsg_38.txtmsg_39.txtmsg_40.txtmsg_41.txtmsg_42.txtmsg_43.txtmsg_44.txtmsg_45.txtmsg_46.txttest__encoded_words.pytest__header_value_parser.pytest_asian_codecs.pytest_contentmanager.pytest_defect_handling.pytest_email.pytest_generator.pytest_headerregistry.pytest_inversion.pytest_message.pytest_parser.pytest_pickleable.pytest_policy.pytest_utils.pytorture_test.pytest_embed.pytest_ensurepip.pytest_enum.pytest_enumerate.pytest_eof.pytest_epoll.pytest_errno.pytest_exception_hierarchy.pytest_exception_variations.pytest_exceptions.pytest_extcall.pytest_faulthandler.pytest_fcntl.pytest_file.pytest_file_eintr.pytest_filecmp.pytest_fileinput.pytest_fileio.pytest_finalization.pytest_float.pytest_flufl.pytest_fnmatch.pytest_fork1.pytest_format.pytest_fractions.pytest_frame.pytest_frozen.pytest_fstring.pytest_ftplib.pytest_funcattrs.pytest_functools.pytest_future.pytest_future3.pytest_future4.pytest_future5.pytest_gc.pytest_gdb.pytest_generator_stop.pytest_generators.pytest_genericalias.pytest_genericclass.pytest_genericpath.pytest_genexps.pytest_getopt.pytest_getpass.pytest_gettext.pytest_glob.pytest_global.pytest_grammar.pytest_graphlib.pytest_grp.pytest_gzip.pytest_hash.pytest_hashlib.pytest_heapq.pytest_hmac.pytest_html.pytest_htmlparser.pytest_http_cookiejar.pytest_http_cookies.pytest_httplib.pytest_httpservers.pytest_idle.pytest_imaplib.pytest_imghdr.pytest_imp.pytest_import__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pycdatacircular_imports__pycache__basic.cpython-310.opt-1.pycbasic.cpython-310.opt-2.pycbasic.cpython-310.pycbasic2.cpython-310.opt-1.pycbasic2.cpython-310.opt-2.pycbasic2.cpython-310.pycbinding.cpython-310.opt-1.pycbinding.cpython-310.opt-2.pycbinding.cpython-310.pycbinding2.cpython-310.opt-1.pycbinding2.cpython-310.opt-2.pycbinding2.cpython-310.pycfrom_cycle1.cpython-310.opt-1.pycfrom_cycle1.cpython-310.opt-2.pycfrom_cycle1.cpython-310.pycfrom_cycle2.cpython-310.opt-1.pycfrom_cycle2.cpython-310.opt-2.pycfrom_cycle2.cpython-310.pycindirect.cpython-310.opt-1.pycindirect.cpython-310.opt-2.pycindirect.cpython-310.pycrebinding.cpython-310.opt-1.pycrebinding.cpython-310.opt-2.pycrebinding.cpython-310.pycrebinding2.cpython-310.opt-1.pycrebinding2.cpython-310.opt-2.pycrebinding2.cpython-310.pycsource.cpython-310.opt-1.pycsource.cpython-310.opt-2.pycsource.cpython-310.pycsubpackage.cpython-310.opt-1.pycsubpackage.cpython-310.opt-2.pycsubpackage.cpython-310.pycuse.cpython-310.opt-1.pycuse.cpython-310.opt-2.pycuse.cpython-310.pycutil.cpython-310.opt-1.pycutil.cpython-310.opt-2.pycutil.cpython-310.pycbasic.pybasic2.pybinding.pybinding2.pyfrom_cycle1.pyfrom_cycle2.pyindirect.pyrebinding.pyrebinding2.pysource.pysubpackage.pysubpkg__pycache__subpackage2.cpython-310.opt-1.pycsubpackage2.cpython-310.opt-2.pycsubpackage2.cpython-310.pycutil.cpython-310.opt-1.pycutil.cpython-310.opt-2.pycutil.cpython-310.pycsubpackage2.pyutil.pyuse.pyutil.pypackage__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycsubmodule.cpython-310.opt-1.pycsubmodule.cpython-310.opt-2.pycsubmodule.cpython-310.pycsubmodule.pypackage2__pycache__submodule1.cpython-310.opt-1.pycsubmodule1.cpython-310.opt-2.pycsubmodule1.cpython-310.pycsubmodule2.cpython-310.opt-1.pycsubmodule2.cpython-310.opt-2.pycsubmodule2.cpython-310.pycsubmodule1.pysubmodule2.pyunwritable__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycx.cpython-310.opt-1.pycx.cpython-310.opt-2.pycx.cpython-310.pycx.pytest_importlib__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pycabc.cpython-310.opt-1.pycabc.cpython-310.opt-2.pycabc.cpython-310.pycfixtures.cpython-310.opt-1.pycfixtures.cpython-310.opt-2.pycfixtures.cpython-310.pycstubs.cpython-310.opt-1.pycstubs.cpython-310.opt-2.pycstubs.cpython-310.pyctest_abc.cpython-310.opt-1.pyctest_abc.cpython-310.opt-2.pyctest_abc.cpython-310.pyctest_api.cpython-310.opt-1.pyctest_api.cpython-310.opt-2.pyctest_api.cpython-310.pyctest_files.cpython-310.opt-1.pyctest_files.cpython-310.opt-2.pyctest_files.cpython-310.pyctest_lazy.cpython-310.opt-1.pyctest_lazy.cpython-310.opt-2.pyctest_lazy.cpython-310.pyctest_locks.cpython-310.opt-1.pyctest_locks.cpython-310.opt-2.pyctest_locks.cpython-310.pyctest_main.cpython-310.opt-1.pyctest_main.cpython-310.opt-2.pyctest_main.cpython-310.pyctest_metadata_api.cpython-310.opt-1.pyctest_metadata_api.cpython-310.opt-2.pyctest_metadata_api.cpython-310.pyctest_namespace_pkgs.cpython-310.opt-1.pyctest_namespace_pkgs.cpython-310.opt-2.pyctest_namespace_pkgs.cpython-310.pyctest_open.cpython-310.opt-1.pyctest_open.cpython-310.opt-2.pyctest_open.cpython-310.pyctest_path.cpython-310.opt-1.pyctest_path.cpython-310.opt-2.pyctest_path.cpython-310.pyctest_pkg_import.cpython-310.opt-1.pyctest_pkg_import.cpython-310.opt-2.pyctest_pkg_import.cpython-310.pyctest_read.cpython-310.opt-1.pyctest_read.cpython-310.opt-2.pyctest_read.cpython-310.pyctest_reader.cpython-310.opt-1.pyctest_reader.cpython-310.opt-2.pyctest_reader.cpython-310.pyctest_resource.cpython-310.opt-1.pyctest_resource.cpython-310.opt-2.pyctest_resource.cpython-310.pyctest_spec.cpython-310.opt-1.pyctest_spec.cpython-310.opt-2.pyctest_spec.cpython-310.pyctest_threaded_import.cpython-310.opt-1.pyctest_threaded_import.cpython-310.opt-2.pyctest_threaded_import.cpython-310.pyctest_util.cpython-310.opt-1.pyctest_util.cpython-310.opt-2.pyctest_util.cpython-310.pyctest_windows.cpython-310.opt-1.pyctest_windows.cpython-310.opt-2.pyctest_windows.cpython-310.pyctest_zip.cpython-310.opt-1.pyctest_zip.cpython-310.opt-2.pyctest_zip.cpython-310.pycthreaded_import_hangers.cpython-310.opt-1.pycthreaded_import_hangers.cpython-310.opt-2.pycthreaded_import_hangers.cpython-310.pycupdate-zips.cpython-310.opt-1.pycupdate-zips.cpython-310.opt-2.pycupdate-zips.cpython-310.pycutil.cpython-310.opt-1.pycutil.cpython-310.opt-2.pycutil.cpython-310.pycabc.pybuiltin__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_finder.cpython-310.opt-1.pyctest_finder.cpython-310.opt-2.pyctest_finder.cpython-310.pyctest_loader.cpython-310.opt-1.pyctest_loader.cpython-310.opt-2.pyctest_loader.cpython-310.pyctest_finder.pytest_loader.pydata__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycexample-21.12-py3-none-any.whlexample-21.12-py3.6.eggdata01__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycbinary.filesubdirectory__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycbinary.fileutf-16.fileutf-8.filedata02__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycone__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycresource1.txttwo__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycresource2.txtdata03__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycnamespaceportion1__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycportion2__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycresource1.txtextension__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_case_sensitivity.cpython-310.opt-1.pyctest_case_sensitivity.cpython-310.opt-2.pyctest_case_sensitivity.cpython-310.pyctest_finder.cpython-310.opt-1.pyctest_finder.cpython-310.opt-2.pyctest_finder.cpython-310.pyctest_loader.cpython-310.opt-1.pyctest_loader.cpython-310.opt-2.pyctest_loader.cpython-310.pyctest_path_hook.cpython-310.opt-1.pyctest_path_hook.cpython-310.opt-2.pyctest_path_hook.cpython-310.pyctest_case_sensitivity.pytest_finder.pytest_loader.pytest_path_hook.pyfixtures.pyfrozen__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_finder.cpython-310.opt-1.pyctest_finder.cpython-310.opt-2.pyctest_finder.cpython-310.pyctest_loader.cpython-310.opt-1.pyctest_loader.cpython-310.opt-2.pyctest_loader.cpython-310.pyctest_finder.pytest_loader.pyimport___init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest___loader__.cpython-310.opt-1.pyctest___loader__.cpython-310.opt-2.pyctest___loader__.cpython-310.pyctest___package__.cpython-310.opt-1.pyctest___package__.cpython-310.opt-2.pyctest___package__.cpython-310.pyctest_api.cpython-310.opt-1.pyctest_api.cpython-310.opt-2.pyctest_api.cpython-310.pyctest_caching.cpython-310.opt-1.pyctest_caching.cpython-310.opt-2.pyctest_caching.cpython-310.pyctest_fromlist.cpython-310.opt-1.pyctest_fromlist.cpython-310.opt-2.pyctest_fromlist.cpython-310.pyctest_meta_path.cpython-310.opt-1.pyctest_meta_path.cpython-310.opt-2.pyctest_meta_path.cpython-310.pyctest_packages.cpython-310.opt-1.pyctest_packages.cpython-310.opt-2.pyctest_packages.cpython-310.pyctest_path.cpython-310.opt-1.pyctest_path.cpython-310.opt-2.pyctest_path.cpython-310.pyctest_relative_imports.cpython-310.opt-1.pyctest_relative_imports.cpython-310.opt-2.pyctest_relative_imports.cpython-310.pyctest___loader__.pytest___package__.pytest_api.pytest_caching.pytest_fromlist.pytest_meta_path.pytest_packages.pytest_path.pytest_relative_imports.pynamespace_pkgsboth_portionsfoo__pycache__one.cpython-310.opt-1.pycone.cpython-310.opt-2.pycone.cpython-310.pyctwo.cpython-310.opt-1.pyctwo.cpython-310.opt-2.pyctwo.cpython-310.pycone.pytwo.pymissing_directory.zipmodule_and_namespace_package__pycache__a_test.cpython-310.opt-1.pyca_test.cpython-310.opt-2.pyca_test.cpython-310.pyca_testa_test.pyemptynested_portion1.zipnot_a_namespace_pkgfoo__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycone.cpython-310.opt-1.pycone.cpython-310.opt-2.pycone.cpython-310.pycone.pyportion1foo__pycache__one.cpython-310.opt-1.pycone.cpython-310.opt-2.pycone.cpython-310.pycone.pyportion2foo__pycache__two.cpython-310.opt-1.pyctwo.cpython-310.opt-2.pyctwo.cpython-310.pyctwo.pyproject1parentchild__pycache__one.cpython-310.opt-1.pycone.cpython-310.opt-2.pycone.cpython-310.pycone.pyproject2parentchild__pycache__two.cpython-310.opt-1.pyctwo.cpython-310.opt-2.pyctwo.cpython-310.pyctwo.pyproject3parentchild__pycache__three.cpython-310.opt-1.pycthree.cpython-310.opt-2.pycthree.cpython-310.pycthree.pytop_level_portion1.zipnamespacedata01binary.fileutf-16.fileutf-8.filepartial__pycache__cfimport.cpython-310.opt-1.pyccfimport.cpython-310.opt-2.pyccfimport.cpython-310.pycpool_in_threads.cpython-310.opt-1.pycpool_in_threads.cpython-310.opt-2.pycpool_in_threads.cpython-310.pyccfimport.pypool_in_threads.pysource__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_case_sensitivity.cpython-310.opt-1.pyctest_case_sensitivity.cpython-310.opt-2.pyctest_case_sensitivity.cpython-310.pyctest_file_loader.cpython-310.opt-1.pyctest_file_loader.cpython-310.opt-2.pyctest_file_loader.cpython-310.pyctest_finder.cpython-310.opt-1.pyctest_finder.cpython-310.opt-2.pyctest_finder.cpython-310.pyctest_path_hook.cpython-310.opt-1.pyctest_path_hook.cpython-310.opt-2.pyctest_path_hook.cpython-310.pyctest_source_encoding.cpython-310.opt-1.pyctest_source_encoding.cpython-310.opt-2.pyctest_source_encoding.cpython-310.pyctest_case_sensitivity.pytest_file_loader.pytest_finder.pytest_path_hook.pytest_source_encoding.pystubs.pytest_abc.pytest_api.pytest_files.pytest_lazy.pytest_locks.pytest_main.pytest_metadata_api.pytest_namespace_pkgs.pytest_open.pytest_path.pytest_pkg_import.pytest_read.pytest_reader.pytest_resource.pytest_spec.pytest_threaded_import.pytest_util.pytest_windows.pytest_zip.pythreaded_import_hangers.pyupdate-zips.pyutil.pyzipdata01__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycziptestdata.zipzipdata02__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycziptestdata.ziptest_index.pytest_inspect.pytest_int.pytest_int_literal.pytest_interpreters.pytest_io.pytest_ioctl.pytest_ipaddress.pytest_isinstance.pytest_iter.pytest_iterlen.pytest_itertools.pytest_json__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_decode.cpython-310.opt-1.pyctest_decode.cpython-310.opt-2.pyctest_decode.cpython-310.pyctest_default.cpython-310.opt-1.pyctest_default.cpython-310.opt-2.pyctest_default.cpython-310.pyctest_dump.cpython-310.opt-1.pyctest_dump.cpython-310.opt-2.pyctest_dump.cpython-310.pyctest_encode_basestring_ascii.cpython-310.opt-1.pyctest_encode_basestring_ascii.cpython-310.opt-2.pyctest_encode_basestring_ascii.cpython-310.pyctest_enum.cpython-310.opt-1.pyctest_enum.cpython-310.opt-2.pyctest_enum.cpython-310.pyctest_fail.cpython-310.opt-1.pyctest_fail.cpython-310.opt-2.pyctest_fail.cpython-310.pyctest_float.cpython-310.opt-1.pyctest_float.cpython-310.opt-2.pyctest_float.cpython-310.pyctest_indent.cpython-310.opt-1.pyctest_indent.cpython-310.opt-2.pyctest_indent.cpython-310.pyctest_pass1.cpython-310.opt-1.pyctest_pass1.cpython-310.opt-2.pyctest_pass1.cpython-310.pyctest_pass2.cpython-310.opt-1.pyctest_pass2.cpython-310.opt-2.pyctest_pass2.cpython-310.pyctest_pass3.cpython-310.opt-1.pyctest_pass3.cpython-310.opt-2.pyctest_pass3.cpython-310.pyctest_recursion.cpython-310.opt-1.pyctest_recursion.cpython-310.opt-2.pyctest_recursion.cpython-310.pyctest_scanstring.cpython-310.opt-1.pyctest_scanstring.cpython-310.opt-2.pyctest_scanstring.cpython-310.pyctest_separators.cpython-310.opt-1.pyctest_separators.cpython-310.opt-2.pyctest_separators.cpython-310.pyctest_speedups.cpython-310.opt-1.pyctest_speedups.cpython-310.opt-2.pyctest_speedups.cpython-310.pyctest_tool.cpython-310.opt-1.pyctest_tool.cpython-310.opt-2.pyctest_tool.cpython-310.pyctest_unicode.cpython-310.opt-1.pyctest_unicode.cpython-310.opt-2.pyctest_unicode.cpython-310.pyctest_decode.pytest_default.pytest_dump.pytest_encode_basestring_ascii.pytest_enum.pytest_fail.pytest_float.pytest_indent.pytest_pass1.pytest_pass2.pytest_pass3.pytest_recursion.pytest_scanstring.pytest_separators.pytest_speedups.pytest_tool.pytest_unicode.pytest_keyword.pytest_keywordonlyarg.pytest_kqueue.pytest_largefile.pytest_lib2to3.pytest_linecache.pytest_list.pytest_listcomps.pytest_lltrace.pytest_locale.pytest_logging.pytest_long.pytest_longexp.pytest_lzma.pytest_mailbox.pytest_mailcap.pytest_marshal.pytest_math.pytest_memoryio.pytest_memoryview.pytest_metaclass.pytest_mimetypes.pytest_minidom.pytest_mmap.pytest_module.pytest_modulefinder.pytest_msilib.pytest_multibytecodec.pytest_multiprocessing_fork.pytest_multiprocessing_forkserver.pytest_multiprocessing_main_handling.pytest_multiprocessing_spawn.pytest_named_expressions.pytest_netrc.pytest_nis.pytest_nntplib.pytest_ntpath.pytest_numeric_tower.pytest_opcache.pytest_opcodes.pytest_openpty.pytest_operator.pytest_optparse.pytest_ordered_dict.pytest_os.pytest_ossaudiodev.pytest_osx_env.pytest_pathlib.pytest_patma.pytest_pdb.pytest_peepholer.pytest_peg_generator__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_c_parser.cpython-310.opt-1.pyctest_c_parser.cpython-310.opt-2.pyctest_c_parser.cpython-310.pyctest_first_sets.cpython-310.opt-1.pyctest_first_sets.cpython-310.opt-2.pyctest_first_sets.cpython-310.pyctest_grammar_validator.cpython-310.opt-1.pyctest_grammar_validator.cpython-310.opt-2.pyctest_grammar_validator.cpython-310.pyctest_pegen.cpython-310.opt-1.pyctest_pegen.cpython-310.opt-2.pyctest_pegen.cpython-310.pyctest_c_parser.pytest_first_sets.pytest_grammar_validator.pytest_pegen.pytest_pickle.pytest_picklebuffer.pytest_pickletools.pytest_pipes.pytest_pkg.pytest_pkgutil.pytest_platform.pytest_plistlib.pytest_poll.pytest_popen.pytest_poplib.pytest_positional_only_arg.pytest_posix.pytest_posixpath.pytest_pow.pytest_pprint.pytest_print.pytest_profile.pytest_property.pytest_pstats.pytest_pty.pytest_pulldom.pytest_pwd.pytest_py_compile.pytest_pyclbr.pytest_pydoc.pytest_pyexpat.pytest_queue.pytest_quopri.pytest_raise.pytest_random.pytest_range.pytest_re.pytest_readline.pytest_regrtest.pytest_repl.pytest_reprlib.pytest_resource.pytest_richcmp.pytest_rlcompleter.pytest_robotparser.pytest_runpy.pytest_sax.pytest_sched.pytest_scope.pytest_script_helper.pytest_secrets.pytest_select.pytest_selectors.pytest_set.pytest_setcomps.pytest_shelve.pytest_shlex.pytest_shutil.pytest_signal.pytest_site.pytest_slice.pytest_smtpd.pytest_smtplib.pytest_smtpnet.pytest_sndhdr.pytest_socket.pytest_socketserver.pytest_sort.pytest_source_encoding.pytest_spwd.pytest_sqlite.pytest_ssl.pytest_startfile.pytest_stat.pytest_statistics.pytest_strftime.pytest_string.pytest_string_literals.pytest_stringprep.pytest_strptime.pytest_strtod.pytest_struct.pytest_structseq.pytest_subclassinit.pytest_subprocess.pytest_sunau.pytest_sundry.pytest_super.pytest_support.pytest_symtable.pytest_syntax.pytest_sys.pytest_sys_setprofile.pytest_sys_settrace.pytest_sysconfig.pytest_syslog.pytest_tabnanny.pytest_tarfile.pytest_tcl.pytest_telnetlib.pytest_tempfile.pytest_textwrap.pytest_thread.pytest_threadedtempfile.pytest_threading.pytest_threading_local.pytest_threadsignals.pytest_time.pytest_timeit.pytest_timeout.pytest_tix.pytest_tk.pytest_tokenize.pytest_tools__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyctest_fixcid.cpython-310.opt-1.pyctest_fixcid.cpython-310.opt-2.pyctest_fixcid.cpython-310.pyctest_gprof2html.cpython-310.opt-1.pyctest_gprof2html.cpython-310.opt-2.pyctest_gprof2html.cpython-310.pyctest_i18n.cpython-310.opt-1.pyctest_i18n.cpython-310.opt-2.pyctest_i18n.cpython-310.pyctest_lll.cpython-310.opt-1.pyctest_lll.cpython-310.opt-2.pyctest_lll.cpython-310.pyctest_md5sum.cpython-310.opt-1.pyctest_md5sum.cpython-310.opt-2.pyctest_md5sum.cpython-310.pyctest_pathfix.cpython-310.opt-1.pyctest_pathfix.cpython-310.opt-2.pyctest_pathfix.cpython-310.pyctest_pdeps.cpython-310.opt-1.pyctest_pdeps.cpython-310.opt-2.pyctest_pdeps.cpython-310.pyctest_pindent.cpython-310.opt-1.pyctest_pindent.cpython-310.opt-2.pyctest_pindent.cpython-310.pyctest_reindent.cpython-310.opt-1.pyctest_reindent.cpython-310.opt-2.pyctest_reindent.cpython-310.pyctest_sundry.cpython-310.opt-1.pyctest_sundry.cpython-310.opt-2.pyctest_sundry.cpython-310.pyctest_fixcid.pytest_gprof2html.pytest_i18n.pytest_lll.pytest_md5sum.pytest_pathfix.pytest_pdeps.pytest_pindent.pytest_reindent.pytest_sundry.pytest_trace.pytest_traceback.pytest_tracemalloc.pytest_ttk_guionly.pytest_ttk_textonly.pytest_tuple.pytest_turtle.pytest_type_annotations.pytest_type_comments.pytest_typechecks.pytest_types.pytest_typing.pytest_ucn.pytest_unary.pytest_unicode.pytest_unicode_file.pytest_unicode_file_functions.pytest_unicode_identifiers.pytest_unicodedata.pytest_unittest.pytest_univnewlines.pytest_unpack.pytest_unpack_ex.pytest_unparse.pytest_urllib.pytest_urllib2.pytest_urllib2_localnet.pytest_urllib2net.pytest_urllib_response.pytest_urllibnet.pytest_urlparse.pytest_userdict.pytest_userlist.pytest_userstring.pytest_utf8_mode.pytest_utf8source.pytest_uu.pytest_uuid.pytest_venv.pytest_wait3.pytest_wait4.pytest_warnings__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pycdata__pycache__import_warning.cpython-310.opt-1.pycimport_warning.cpython-310.opt-2.pycimport_warning.cpython-310.pycstacklevel.cpython-310.opt-1.pycstacklevel.cpython-310.opt-2.pycstacklevel.cpython-310.pycimport_warning.pystacklevel.pytest_wave.pytest_weakref.pytest_weakset.pytest_webbrowser.pytest_winconsoleio.pytest_winreg.pytest_winsound.pytest_with.pytest_wsgiref.pytest_xdrlib.pytest_xml_dom_minicompat.pytest_xml_etree.pytest_xml_etree_c.pytest_xmlrpc.pytest_xmlrpc_net.pytest_xxlimited.pytest_xxtestfuzz.pytest_yield_from.pytest_zipapp.pytest_zipfile.pytest_zipfile64.pytest_zipimport.pytest_zipimport_support.pytest_zlib.pytest_zoneinfo__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyc_support.cpython-310.opt-1.pyc_support.cpython-310.opt-2.pyc_support.cpython-310.pyctest_zoneinfo.cpython-310.opt-1.pyctest_zoneinfo.cpython-310.opt-2.pyctest_zoneinfo.cpython-310.pyc_support.pydata__pycache__update_test_data.cpython-310.opt-1.pycupdate_test_data.cpython-310.opt-2.pycupdate_test_data.cpython-310.pycupdate_test_data.pyzoneinfo_data.jsontest_zoneinfo.pytestcodec.pytesttar.tartesttar.tar.xztf_inherit_check.pytime_hashlib.pytokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txttokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txttokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txttokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txttokenize_tests.txttracedmodules__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyctestmod.cpython-310.opt-1.pyctestmod.cpython-310.opt-2.pyctestmod.cpython-310.pyctestmod.pytypinganndata__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycann_module9.cpython-310.opt-1.pycann_module9.cpython-310.opt-2.pycann_module9.cpython-310.pycann_module9.pywin_console_handler.pyxmltestdatac14n-20READMEc14nComment.xmlc14nDefault.xmlc14nPrefix.xmlc14nPrefixQname.xmlc14nPrefixQnameXpathElem.xmlc14nQname.xmlc14nQnameElem.xmlc14nQnameXpathElem.xmlc14nTrim.xmldoc.dtddoc.xslinC14N1.xmlinC14N2.xmlinC14N3.xmlinC14N4.xmlinC14N5.xmlinC14N6.xmlinNsContent.xmlinNsDefault.xmlinNsPushdown.xmlinNsRedecl.xmlinNsSort.xmlinNsSuperfluous.xmlinNsXml.xmlout_inC14N1_c14nComment.xmlout_inC14N1_c14nDefault.xmlout_inC14N2_c14nDefault.xmlout_inC14N2_c14nTrim.xmlout_inC14N3_c14nDefault.xmlout_inC14N3_c14nPrefix.xmlout_inC14N3_c14nTrim.xmlout_inC14N4_c14nDefault.xmlout_inC14N4_c14nTrim.xmlout_inC14N5_c14nDefault.xmlout_inC14N5_c14nTrim.xmlout_inC14N6_c14nDefault.xmlout_inNsContent_c14nDefault.xmlout_inNsContent_c14nPrefixQnameXpathElem.xmlout_inNsContent_c14nQnameElem.xmlout_inNsContent_c14nQnameXpathElem.xmlout_inNsDefault_c14nDefault.xmlout_inNsDefault_c14nPrefix.xmlout_inNsPushdown_c14nDefault.xmlout_inNsPushdown_c14nPrefix.xmlout_inNsRedecl_c14nDefault.xmlout_inNsRedecl_c14nPrefix.xmlout_inNsSort_c14nDefault.xmlout_inNsSort_c14nPrefix.xmlout_inNsSuperfluous_c14nDefault.xmlout_inNsSuperfluous_c14nPrefix.xmlout_inNsXml_c14nDefault.xmlout_inNsXml_c14nPrefix.xmlout_inNsXml_c14nPrefixQname.xmlout_inNsXml_c14nQname.xmlworld.txtexpat224_utf8_bug.xmlsimple-ns.xmlsimple.xmltest.xmltest.xml.outxmltests.pyzip_cp437_header.zipzipdir.zipziptestdataREADME.md__pycache__testdata_module_inside_zip.cpython-310.opt-1.pyctestdata_module_inside_zip.cpython-310.opt-2.pyctestdata_module_inside_zip.cpython-310.pycexe_with_z64exe_with_zipheader.shtestdata_module_inside_zip.pytkintertestREADME__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pycsupport.cpython-310.opt-1.pycsupport.cpython-310.opt-2.pycsupport.cpython-310.pycwidget_tests.cpython-310.opt-1.pycwidget_tests.cpython-310.opt-2.pycwidget_tests.cpython-310.pycsupport.pytest_tkinter__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyctest_colorchooser.cpython-310.opt-1.pyctest_colorchooser.cpython-310.opt-2.pyctest_colorchooser.cpython-310.pyctest_font.cpython-310.opt-1.pyctest_font.cpython-310.opt-2.pyctest_font.cpython-310.pyctest_geometry_managers.cpython-310.opt-1.pyctest_geometry_managers.cpython-310.opt-2.pyctest_geometry_managers.cpython-310.pyctest_images.cpython-310.opt-1.pyctest_images.cpython-310.opt-2.pyctest_images.cpython-310.pyctest_loadtk.cpython-310.opt-1.pyctest_loadtk.cpython-310.opt-2.pyctest_loadtk.cpython-310.pyctest_messagebox.cpython-310.opt-1.pyctest_messagebox.cpython-310.opt-2.pyctest_messagebox.cpython-310.pyctest_misc.cpython-310.opt-1.pyctest_misc.cpython-310.opt-2.pyctest_misc.cpython-310.pyctest_simpledialog.cpython-310.opt-1.pyctest_simpledialog.cpython-310.opt-2.pyctest_simpledialog.cpython-310.pyctest_text.cpython-310.opt-1.pyctest_text.cpython-310.opt-2.pyctest_text.cpython-310.pyctest_variables.cpython-310.opt-1.pyctest_variables.cpython-310.opt-2.pyctest_variables.cpython-310.pyctest_widgets.cpython-310.opt-1.pyctest_widgets.cpython-310.opt-2.pyctest_widgets.cpython-310.pyctest_colorchooser.pytest_font.pytest_geometry_managers.pytest_images.pytest_loadtk.pytest_messagebox.pytest_misc.pytest_simpledialog.pytest_text.pytest_variables.pytest_widgets.pytest_ttk__init__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyctest_extensions.cpython-310.opt-1.pyctest_extensions.cpython-310.opt-2.pyctest_extensions.cpython-310.pyctest_style.cpython-310.opt-1.pyctest_style.cpython-310.opt-2.pyctest_style.cpython-310.pyctest_widgets.cpython-310.opt-1.pyctest_widgets.cpython-310.opt-2.pyctest_widgets.cpython-310.pyctest_extensions.pytest_style.pytest_widgets.pywidget_tests.pytest__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pyc_test_warnings.cpython-310.opt-1.pyc_test_warnings.cpython-310.opt-2.pyc_test_warnings.cpython-310.pycdummy.cpython-310.opt-1.pycdummy.cpython-310.opt-2.pycdummy.cpython-310.pycsupport.cpython-310.opt-1.pycsupport.cpython-310.opt-2.pycsupport.cpython-310.pyctest_assertions.cpython-310.opt-1.pyctest_assertions.cpython-310.opt-2.pyctest_assertions.cpython-310.pyctest_async_case.cpython-310.opt-1.pyctest_async_case.cpython-310.opt-2.pyctest_async_case.cpython-310.pyctest_break.cpython-310.opt-1.pyctest_break.cpython-310.opt-2.pyctest_break.cpython-310.pyctest_case.cpython-310.opt-1.pyctest_case.cpython-310.opt-2.pyctest_case.cpython-310.pyctest_discovery.cpython-310.opt-1.pyctest_discovery.cpython-310.opt-2.pyctest_discovery.cpython-310.pyctest_functiontestcase.cpython-310.opt-1.pyctest_functiontestcase.cpython-310.opt-2.pyctest_functiontestcase.cpython-310.pyctest_loader.cpython-310.opt-1.pyctest_loader.cpython-310.opt-2.pyctest_loader.cpython-310.pyctest_program.cpython-310.opt-1.pyctest_program.cpython-310.opt-2.pyctest_program.cpython-310.pyctest_result.cpython-310.opt-1.pyctest_result.cpython-310.opt-2.pyctest_result.cpython-310.pyctest_runner.cpython-310.opt-1.pyctest_runner.cpython-310.opt-2.pyctest_runner.cpython-310.pyctest_setups.cpython-310.opt-1.pyctest_setups.cpython-310.opt-2.pyctest_setups.cpython-310.pyctest_skipping.cpython-310.opt-1.pyctest_skipping.cpython-310.opt-2.pyctest_skipping.cpython-310.pyctest_suite.cpython-310.opt-1.pyctest_suite.cpython-310.opt-2.pyctest_suite.cpython-310.pyc_test_warnings.pydummy.pysupport.pytest_assertions.pytest_async_case.pytest_break.pytest_case.pytest_discovery.pytest_functiontestcase.pytest_loader.pytest_program.pytest_result.pytest_runner.pytest_setups.pytest_skipping.pytest_suite.pytestmock__init__.py__main__.py__pycache____init__.cpython-310.opt-1.pyc__init__.cpython-310.opt-2.pyc__init__.cpython-310.pyc__main__.cpython-310.opt-1.pyc__main__.cpython-310.opt-2.pyc__main__.cpython-310.pycsupport.cpython-310.opt-1.pycsupport.cpython-310.opt-2.pycsupport.cpython-310.pyctestasync.cpython-310.opt-1.pyctestasync.cpython-310.opt-2.pyctestasync.cpython-310.pyctestcallable.cpython-310.opt-1.pyctestcallable.cpython-310.opt-2.pyctestcallable.cpython-310.pyctesthelpers.cpython-310.opt-1.pyctesthelpers.cpython-310.opt-2.pyctesthelpers.cpython-310.pyctestmagicmethods.cpython-310.opt-1.pyctestmagicmethods.cpython-310.opt-2.pyctestmagicmethods.cpython-310.pyctestmock.cpython-310.opt-1.pyctestmock.cpython-310.opt-2.pyctestmock.cpython-310.pyctestpatch.cpython-310.opt-1.pyctestpatch.cpython-310.opt-2.pyctestpatch.cpython-310.pyctestsealable.cpython-310.opt-1.pyctestsealable.cpython-310.opt-2.pyctestsealable.cpython-310.pyctestsentinel.cpython-310.opt-1.pyctestsentinel.cpython-310.opt-2.pyctestsentinel.cpython-310.pyctestwith.cpython-310.opt-1.pyctestwith.cpython-310.opt-2.pyctestwith.cpython-310.pycsupport.pytestasync.pytestcallable.pytesthelpers.pytestmagicmethods.pytestmock.pytestpatch.pytestsealable.pytestsentinel.pytestwith.py/usr/lib64/python3.10/ctypes//usr/lib64/python3.10/ctypes/test//usr/lib64/python3.10/ctypes/test/__pycache__//usr/lib64/python3.10/distutils//usr/lib64/python3.10/distutils/tests//usr/lib64/python3.10/distutils/tests/__pycache__//usr/lib64/python3.10/lib-dynload//usr/lib64/python3.10/lib2to3//usr/lib64/python3.10/lib2to3/tests//usr/lib64/python3.10/lib2to3/tests/__pycache__//usr/lib64/python3.10/lib2to3/tests/data//usr/lib64/python3.10/lib2to3/tests/data/fixers//usr/lib64/python3.10/lib2to3/tests/data/fixers/myfixes//usr/lib64/python3.10//usr/lib64/python3.10/sqlite3//usr/lib64/python3.10/sqlite3/test//usr/lib64/python3.10/sqlite3/test/__pycache__//usr/lib64/python3.10//usr/lib64/python3.10/test//usr/lib64/python3.10/test/__pycache__//usr/lib64/python3.10/test/audiodata//usr/lib64/python3.10/test/capath//usr/lib64/python3.10/test/cjkencodings//usr/lib64/python3.10/test/data//usr/lib64/python3.10/test/decimaltestdata//usr/lib64/python3.10/test/dtracedata//usr/lib64/python3.10/test/dtracedata/__pycache__//usr/lib64/python3.10/test/encoded_modules//usr/lib64/python3.10/test/encoded_modules/__pycache__//usr/lib64/python3.10/test/imghdrdata//usr/lib64/python3.10/test/libregrtest//usr/lib64/python3.10/test/libregrtest/__pycache__//usr/lib64/python3.10/test/sndhdrdata//usr/lib64/python3.10/test/subprocessdata//usr/lib64/python3.10/test/subprocessdata/__pycache__//usr/lib64/python3.10/test/support//usr/lib64/python3.10/test/support/__pycache__//usr/lib64/python3.10/test/test_asyncio//usr/lib64/python3.10/test/test_asyncio/__pycache__//usr/lib64/python3.10/test/test_email//usr/lib64/python3.10/test/test_email/__pycache__//usr/lib64/python3.10/test/test_email/data//usr/lib64/python3.10/test/test_import//usr/lib64/python3.10/test/test_import/__pycache__//usr/lib64/python3.10/test/test_import/data//usr/lib64/python3.10/test/test_import/data/circular_imports//usr/lib64/python3.10/test/test_import/data/circular_imports/__pycache__//usr/lib64/python3.10/test/test_import/data/circular_imports/subpkg//usr/lib64/python3.10/test/test_import/data/circular_imports/subpkg/__pycache__//usr/lib64/python3.10/test/test_import/data/package//usr/lib64/python3.10/test/test_import/data/package/__pycache__//usr/lib64/python3.10/test/test_import/data/package2//usr/lib64/python3.10/test/test_import/data/package2/__pycache__//usr/lib64/python3.10/test/test_import/data/unwritable//usr/lib64/python3.10/test/test_import/data/unwritable/__pycache__//usr/lib64/python3.10/test/test_importlib//usr/lib64/python3.10/test/test_importlib/__pycache__//usr/lib64/python3.10/test/test_importlib/builtin//usr/lib64/python3.10/test/test_importlib/builtin/__pycache__//usr/lib64/python3.10/test/test_importlib/data//usr/lib64/python3.10/test/test_importlib/data/__pycache__//usr/lib64/python3.10/test/test_importlib/data01//usr/lib64/python3.10/test/test_importlib/data01/__pycache__//usr/lib64/python3.10/test/test_importlib/data01/subdirectory//usr/lib64/python3.10/test/test_importlib/data01/subdirectory/__pycache__//usr/lib64/python3.10/test/test_importlib/data02//usr/lib64/python3.10/test/test_importlib/data02/__pycache__//usr/lib64/python3.10/test/test_importlib/data02/one//usr/lib64/python3.10/test/test_importlib/data02/one/__pycache__//usr/lib64/python3.10/test/test_importlib/data02/two//usr/lib64/python3.10/test/test_importlib/data02/two/__pycache__//usr/lib64/python3.10/test/test_importlib/data03//usr/lib64/python3.10/test/test_importlib/data03/__pycache__//usr/lib64/python3.10/test/test_importlib/data03/namespace//usr/lib64/python3.10/test/test_importlib/data03/namespace/portion1//usr/lib64/python3.10/test/test_importlib/data03/namespace/portion1/__pycache__//usr/lib64/python3.10/test/test_importlib/data03/namespace/portion2//usr/lib64/python3.10/test/test_importlib/data03/namespace/portion2/__pycache__//usr/lib64/python3.10/test/test_importlib/extension//usr/lib64/python3.10/test/test_importlib/extension/__pycache__//usr/lib64/python3.10/test/test_importlib/frozen//usr/lib64/python3.10/test/test_importlib/frozen/__pycache__//usr/lib64/python3.10/test/test_importlib/import_//usr/lib64/python3.10/test/test_importlib/import_/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/both_portions//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/both_portions/foo//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/both_portions/foo/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/module_and_namespace_package//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/module_and_namespace_package/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/not_a_namespace_pkg//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/portion1//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/portion1/foo//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/portion1/foo/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/portion2//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/portion2/foo//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/portion2/foo/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project1//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project1/parent//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project1/parent/child//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project1/parent/child/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project2//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project2/parent//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project2/parent/child//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project2/parent/child/__pycache__//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project3//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project3/parent//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project3/parent/child//usr/lib64/python3.10/test/test_importlib/namespace_pkgs/project3/parent/child/__pycache__//usr/lib64/python3.10/test/test_importlib/namespacedata01//usr/lib64/python3.10/test/test_importlib/partial//usr/lib64/python3.10/test/test_importlib/partial/__pycache__//usr/lib64/python3.10/test/test_importlib/source//usr/lib64/python3.10/test/test_importlib/source/__pycache__//usr/lib64/python3.10/test/test_importlib/zipdata01//usr/lib64/python3.10/test/test_importlib/zipdata01/__pycache__//usr/lib64/python3.10/test/test_importlib/zipdata02//usr/lib64/python3.10/test/test_importlib/zipdata02/__pycache__//usr/lib64/python3.10/test/test_json//usr/lib64/python3.10/test/test_json/__pycache__//usr/lib64/python3.10/test/test_peg_generator//usr/lib64/python3.10/test/test_peg_generator/__pycache__//usr/lib64/python3.10/test/test_tools//usr/lib64/python3.10/test/test_tools/__pycache__//usr/lib64/python3.10/test/test_warnings//usr/lib64/python3.10/test/test_warnings/__pycache__//usr/lib64/python3.10/test/test_warnings/data//usr/lib64/python3.10/test/test_warnings/data/__pycache__//usr/lib64/python3.10/test/test_zoneinfo//usr/lib64/python3.10/test/test_zoneinfo/__pycache__//usr/lib64/python3.10/test/test_zoneinfo/data//usr/lib64/python3.10/test/test_zoneinfo/data/__pycache__//usr/lib64/python3.10/test/tracedmodules//usr/lib64/python3.10/test/tracedmodules/__pycache__//usr/lib64/python3.10/test/typinganndata//usr/lib64/python3.10/test/typinganndata/__pycache__//usr/lib64/python3.10/test/xmltestdata//usr/lib64/python3.10/test/xmltestdata/c14n-20//usr/lib64/python3.10/test/ziptestdata//usr/lib64/python3.10/test/ziptestdata/__pycache__//usr/lib64/python3.10/tkinter//usr/lib64/python3.10/tkinter/test//usr/lib64/python3.10/tkinter/test/__pycache__//usr/lib64/python3.10/tkinter/test/test_tkinter//usr/lib64/python3.10/tkinter/test/test_tkinter/__pycache__//usr/lib64/python3.10/tkinter/test/test_ttk//usr/lib64/python3.10/tkinter/test/test_ttk/__pycache__//usr/lib64/python3.10/unittest//usr/lib64/python3.10/unittest/test//usr/lib64/python3.10/unittest/test/__pycache__//usr/lib64/python3.10/unittest/test/testmock//usr/lib64/python3.10/unittest/test/testmock/__pycache__/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:36641/SUSE_SLE-15-SP4_Update/b1618de3dd000b45c840da3a3f70c50f-python310.SUSE_SLE-15-SP4_Update:basedrpmxz5aarch64-suse-linux  !"#$%&'())*+,,,-,..../...,,,.0,--12,-,--,,--3...-4,-,(56788879:;)<=>?999@@@AAA@BBCDEAAFFG8HHIdirectoryPython script, ASCII text executableASCII textPython script, UTF-8 Unicode text executableC source, ASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3835ac03f2a3a734c0f6c51a14cf610b44dc5f02, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=74fdf1fe86942589ce66f33de4c5a248362360cb, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=e411b3a26d848fd3e18b0e17d122b1f233d525aa, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=850d91a2dc08dfe02e78e5a5aa79a43c18db7d9d, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=78e55490046150c054f30dd702ef247f5b1b6561, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=5a109c16d44a41a6666d5c1f80870421f75b353c, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=e5a40ec7e9612cda827d0fcf31f92ae4f21722d2, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8330991d9d6c898901567cdc6899784a2c6ba8c9, strippedUTF-8 Unicode (with BOM) textASCII text, with CRLF line terminatorsemptyASCII text, with very long lineszlib ERROR: need dictionary (ASCII text)UTF-8 Unicode textISO-8859 textNon-ISO extended-ASCII textASCII text, with escape sequencesNon-ISO extended-ASCII text, with LF, NEL line terminatorsawk or perl script, ASCII textASCII text, with no line terminatorszlib ERROR: need dictionary (Python script, ASCII text executable)OpenEXR image data, version 2, storage: scanline, compression: none, dataWindow: (0 0)-(15 15), displayWindow: (0 0)-(15 15), lineOrder: increasing yGIF image data, version 89a, 16 x 16JPEG image data, JFIF standard 1.01, resolution (DPI), density 1x1, segment length 16, baseline, precision 8, 16x16, frames 3Netpbm image data, size = 16 x 16, rawbits, bitmapNetpbm image data, size = 16 x 16, rawbits, greymapPNG image data, 16 x 16, 8-bit colormap, non-interlacedNetpbm image data, size = 16 x 16, rawbits, pixmapSun raster image data, 16 x 16, 32-bit, RGB, no colormapSGI image data, RLE, 3-D, 16 x 16, 4 channelsTIFF image data, little-endian, direntries=17, height=16, bps=1242, compression=none, PhotometricIntepretation=RGB, name=python.tiff, orientation=upper-left, width=16RIFF (little-endian) data, Web/P imagetar archiveHTML document, ISO-8859 textPython script, UTF-8 Unicode text executable, with very long linesPython script, ASCII text executable, with very long linesHTML document, ASCII text, with very long linesGIF image data, version 87a, 150 x 35SMTP mail, ASCII textnews or mail, ASCII textMIME entity, ASCII textmessage/rfc822, ASCII texttext/plain; charset="us-ascii", ASCII textmultipart/mixed; boundary="BOUNDARY", ASCII textRFC 822 mail, ASCII text, with CRLF line terminatorsmultipart/mixed; boundary=ABCDE, ASCII textmultipart/mixed; boundary="AAA", ASCII textPython script, ASCII text executable (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)ASCII text (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)Little-endian UTF-16 Unicode text, with no line terminatorsgzip ERROR: Stdin has more than one entry--rest ignored (Zip archive data, at least v1.0 to extract Zip archive data, at least v1.0 to extract)Python script, UTF-8 Unicode (with BOM) text executableLittle-endian UTF-16 Unicode text, with no line terminators (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)gzip ERROR: Stdin has more than one entry--rest ignored (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)Python script, ISO-8859 text executableRuby script, ASCII textPOSIX tar archivePOSIX tar archive (GNU) (XZ compressed data)XML 1.0 document, ASCII textexported SGML document, ASCII textXML document, ASCII textASCII text, with very long lines, with no line terminatorsUTF-8 Unicode text, with no line terminatorsUTF-8 Unicode text, with very long lines, with CRLF line terminatorsXML 1.0 document, ISO-8859 textASCII text, with CRLF line terminators (Zip archive data, at least v2.0 to extract Zip archive data, at least v2.0 to extract)Bourne-Again shell script executable (binary data)Bourne-Again shell script, ASCII text executable  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRRRRRRR RRRRRR RRRRRRR RRRRRR RRRR RRRRRR RRRRRR RRRRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R !; {:utf-86ae3ba34b26e5991c37145a3eb2a721ccd2cb38ebde0e9f0b58f8cf195238dc0?7zXZ !t/my]"k%a l'ԛO*0\P=\ o&O'$P9ui2["urM0TZ!uV RDox+'p93)ZNUllb.+L/uNg;`_Wn<۫k 㹊b1nfU0=g3E^gXԢ\k2mI3~07;IrX61]6O+ ñ%3,םs2@FA*[v j='M"!A׍kATHI 4ɩ~c5vXs,|6>O3`:oNY nMڍjepL_̡d#ۇې$ F,үlFGY` uҳO}G{~栯f8ݲ'#C[x`}ea@{)=jP Nxc_I Bb D4A߿Ǫw:'*|J1qTeA}AfeU"L9g0lxq8(ߖ硘'x|a>d}naiIGit{/Qwy~_{?I3+:=;qtGk[yY {!F7D RWsL!Cߟ=4伥t(*fʼnDwǁ0Cٛ^36;E?W-寄!?;B%׸މ0E }g~q2=X/q|-M#G?5T}i4"+^&m5w.v"[Nޙm']a|8)i `f_ +Da=D,0CQ<ٷ  NͩjS"7=;aiak֢kШMq< 3Q 䪠Ltާ?gC±IZz #Sa~#q/eXJzR]d"tݳ0 NQ%ˠ /3_fɆAv)@ \"S687(O&7 xîljSoV/tN8l5EdmdxOǃ#3$ADtD&a$M${I9|QYWiƒ$9u+pCH]I{:ӉSf^mfQACH*G0a:؅W~dGotUzA<ۖE!f*<8t$'OfF-㦳}u wˌO^rywqx=! 6258i?͋g}O)΁Euӊ##dUGMxhaه5cOjgz9QSް .|:wqLY#]yI's!M4fk\Pw3+fGwWMib%ȗ/m 9Bg7\3' j47߸7^ dG>=NR 3똷V d&!;BQs`cx -+^QuzVa1\脻/Dl{|ut(ra4-1ÃBEyHVzSU: CT A~Yl;Na0@?頚zk#jv)(-Tl ZsQjn\G܆>Tog)40`lJyG+%$`)W&)"<@rwC`TfZxO@o꫸H̾F q[0۸AJނˆa'?&fK98㈮AZwp͇.󓖕-4C[S`\ r;2-Ca6#a> Da9mry_ֵN_K"h%`=a‰S/tUӺ)VlxښXfKS8nyG@#q,g] f܏Eq^p~& Ib1;6$yQ%^>- 9P`\MHht&>RͩݝAɞKf ESUOdfxHx'I1ͯEOAIm ΍(2r(Eƛ3/^w@d +3 09VGvgz /D¨^'>.rgqS109Rg=kJeffqH7G j1(wh38S`O}Om[Q [*ϣhC xu,MNn+a H h"u?RI,J7Nu].ЇўHH:4,}+r%)=^g4r5dp$K(>$hIe(ɇ1K4Eh@U C0ay 'njul-4s49/a$ zR̐<6\nPufikf+WNwم*.}Sݬ-'Z[qi<\TC~ֹs';x-}NrtBy9AȱX2o( U{/nxkP{v2[ ~bN WsVn@8Ψb2wsitؗ/4([Ǵk Z- :]El۴Y = r Mln̸bclq/ ?M`_J4 5k50H(˃hHx; Κ6918bU f*ݨJe%'[q<%]qB.7tx 03JQ&t+|C.[AgemXQcəWvdcNv:r!5~0gBK\m >V oI3di!f꩎$[x6V`B>1R(vko1f|w #@KMrq&2+ͨ@xE1${q6UYM>lHkweN|iʻyyF; )0#mcg`f3 JF(:-07ڳ;ȈX@&4q6CŃAQڤ5-M;k|L٬MAzCн*WtЮi5"?Z6q6)OlaL|#^VNg2%IZ܃PS%>>x|C-"34 >$0V+lj!D o/R8ӰB4@ۂ^"xMQUD:#w/UI78.YrKbK\Vԡ{^wI91+*:F#rmP8&ZVI;lƒF{s]ݠ# ת>!FhsG\ήGVI雀妹Fm`pcSzO\ǥnEatjHFA>jLM.ij BY u8#OHzrNHs^~SݤZw #/0K՚"c}}v:d Uoj?f%CYm(;PmSzUTm;& 8Uvd~>Ѩ̼ 4-؞꠳i$wHݒ 1k-M8oؠ!FzNy !AbjPPwY{O8\w1*!:V#no'Hv;ԅU9 nԳeێYZUq5sB,q C}ͪo4oa(#܏=܅YI#4ܱĪnHְ)Gܳ|W?;~-˳ל|t>h+#+9>qM C8բ{q61%܇iV4tA6GȆ˂b:؀J¨f~jS^qh._<*B@`7?ƌV|龕|AC" 0TlL9sԘ@ϡpQt.nnjlbI ~Y1\B\A.ӎ$ F #AbabhŽN 4:)ۜ35=RYh o5?^ǽqY6> \&@8B{9b`<;MVI'l܌ ivCl؜ci*t;l_sh|J@;r%*#r6 1,b߆~rA K=LtNQ%~%צ? fIaxp"=R#Z?g:5x+gj}/ 嘮񷕴KypL5dW=lJuwc@:ժ(f_oЊ®H|q:G>=d\B)T;&N[d gO ,1:Տ6~ 6I팰T]^Q31=_g4,bC9ٝf\Y'n~5ǻaBޭMx؁3+}%<z]XFtӸ'Sg$9* ~LZm/va 2Z~Ur+l{A WЗ֊PVz,:[ىa n8qeξ݆5,`غn~u^WJ([xW*o-K*_:fy/:hv5@i ;3~#m7RmJM.I*7Ƶb4n}:3 &C5_Ӆ 8?^1=]fan"~l:.FW5Jj@0P>1']FNaF<@ tzVz+CqrO6%wJs"< wڊ4EG5؏ зVw  Ũ[y[rPϔ:+lztX16v'ܡo͇40|Ugm֪]mʷ>@ݼ"(|}K$PF ßFv\)/qdƑhxfbLkЦ,2)U1S OnDNt͂Ul+exq:գ$3\88؎ czN]W"dNBw(J4yMSqĹ$ Ÿ`S[N-s1f2AGm.[ A<̟Nʖ3S&=WZ^-S_4QG~_wWy%& )*oȼ32YtVi*! K 5wOqIxF(hbv2°gv#(vs=@7tAv]\14ffFQ8D Bi>Hց_U,1<Ծq㙸,pzU1+u=[4. hWaW1##aW<̜#̼L #?jaߺ ^(.f3%-F It"PC)8Q͒(qA\7^4q"69ݦDa;}(MChx?z.<@U&qEY+^[_bFc~Ÿl;aNh3ןhF²ߏ0 (H)V GzHvs=v8vU6u;/y W8 $ki}j#'QN9;BL7EmjkO`!`ёJb<5lՖeˋH“@Eg֙z"h&3lZ-ePe]@TgR5HѦVMXApx:#n[qAx[zѶ 6\5c_L&(C`F~ ;rYk.^lb#ٓš(Ed.uբI tm.8p<#/<==>GG#֍)jGm0 [s$DsP[[PD;@ wR:X,vXZ3׸ȸ%r"I"? θo.wdgw2|b٥7y[&L0NP0Ų RަP7[pI#/xvg\h-jWפk08D !CoEĈ"Ϙ5or3vL ȇN 0  *Q -&5.Y%42|t.I5 .RJ^drR\@tqQQ%fmX)K;ꮐ\$ cO"YJEVLZb\ kR&\BrXlk0XJq=&MLM,s3;u*!)xt`M&f3"#$y1 GabJ _--Umq:K]kυVE} rZڳX# }Yqȼ q@F`e  D vׇ%h$>R^JJZt'O=P/v-{V߶/i-t@0Aim},CeV@ ε`}6?Ӱ_ZbmQ )Rh/$h@> /NJx=7zkB}\쪯ĩJϋ~!\"d +E Ť0@o,?婢@qp 3U-#a^0<Ԭeѐ٣Fo<4 E9îNf}B6SJ[Z0oI8((v[\*6`~u7?s= EG;).;C[K`7&h础|xEߐ]Y-ƹLXjUsOZNp%)Xr #J0O5)[DBDxMt-Jt:299KiLG Pg|е}R*+x~WFY?>*pMӺ~ _#7Bpʛ" ;2$I47D<)8X xϔ4?1^eVp! eMCBr"N' ܽ;{t5b7a5|1T5lUmglhP{U扟)j]TKY. 8_nom<%Qa<;Y"H'0Hb$0,{hw Θ>ss6VzA΋LD3žJ|f&ɓSsñ<`\I=AN蜎t{Eb ReC3`GYF84 &{ReInĝd?fK}{U]L( {$,Pf2CQlnrSl\11Hփٓ~ _%=wVV_t7{OX?ǹV 8cBi6,}h~.-LȿWI@n6@,G,B; 4&^+Qz AYz$ !u7SwRq>'Kɤp[$HyۂyW,[H,WE?;WJ,{e f눂zjr~1rkOX ȲQ;ak]E^d`@ Nѡ;B,)ʰ'km ~LkFu+wN5x2{=*z.z x(…"j ]:V]\AHS,s3{.)ohYM IfQ (P$ Mdy|l&MyΫ8|زjՋhn"2$(Ho}UN b>Rq`M 0j eӳ陛‹ mk'*I~a#$( >Ji7IG{wN'-m%c͛f)nX#''}"jP||μP=G0 !$ldx=,dTKNxn ۝QRIw|@DoVHbHL&0uS:%I{,'ʹ(fXӌStf6Aꕫ-:ү K>6bE+^dYWZ/s;@lfF7y D>3"=r, {Ӏ';;OUfdZYH8ohY:E4]Bہ$Uu ubcH c^*oB%dvF #QK {Ӆc.} w$2+UzM&ffJ{l`<.-=_N -:)^Bw-Y& #dN|4hR y)ysg@Y/7.lX+pUIݽI!&JLp Gղ'rt2Ft qÜd 7Bv&14!iء8\ HX,i+tpe(BB'd<=@o#mhl8H1gD,$r5sI4-%?IqU&艆{ԇ*>2nDoGH6r8bȴ|MF$ j*P_k:@fD#6o|{+߫YHOޔ4^xZ }%3CܮE q$.C5;1A;ݠW7C.(CT ԋ*lE ^6)|^\?HA?<: gXLz4S80_SӰz2GִlST%l@s0<0G$b_7iIY-[+x(Ʀ7mr:b fߖ-A*""G9"3y Po5`ΦTn&^+>dfYI$ЁSQs˸4OoK ӿ@(_qE>mhWBCru~ Y^+TEnYe r$)K?z 4.-ݏfjL'WFܭ"`rkT? G5lG\Qğ zx4m[CL[}ζ'qLf;)ж\5s?#g{h7oksO.5 Qv EЖ`㎗,ljh+eRgU~Sۘ8D%({n6l:N4mɱǶI%e+]R-iB~kY_nIoZf9@d 5 umؙE (u~0xsQ Ff.Nh)S e f&,R'KDYGu+}c X&\Hy7e b8& }Ѣ$L; М(IUo48Mrg4tD w1^߃`UO\j!06N?4౼Cbǀbwh+ t&L8v=)qVH{懲P*h;G4^rm!wt#*UwKmb[|OĚ_; - txЈ>'_f~y:r܆ƴ>cv}ƒ}DQIKWk)VnztwT1>V+=SWjW_w6էW3+ BKS>誜䪐3-[hOՁLLJb&g2v‰vS"4M`$rњ1ı++N.m <[\<#uA?Byg'~OJJ'd09}/3LcUReleG?mLZ៞8}Y IX;\Wxո JO; x1"fUss̺z?bs{KPsMLwgg'RL jI]+(#K^g|KE-5yңmSNS0U C8(.{%G9\9'ڭ@ _"DcSfd4153"*Hou44.k !xط1mz9%᎛" 4$][H۹~ NݳF~){!n4jF'Nk9>^k`,qCrp#L`>FƦu1 ?B0_'dlB!ǐtf6vYĄ[ [ʔ_\lLw'BeuSJT|XTb"u9Ry[C؟)Oeb]Vg+iÜ=k7z(\(>oJ=P 0ǭ-Lб[8ZZ^iDc,/8!Y/m\|?oA]C`~+(_9?#WnS.?1)(d=F"ܫq%1*:LCK'h$銀KS DwO[Lgks9FJ( cl0iJ;EF^N͆X^; T@+[" _>IE\ES(TۻIIP AvݗYLUn3t`A?>p;N,99wʣWlT cc._mo+c,}˧_m҄ik;8tէ[i\L@ q}E#NJlq_nFOͰ5y~eE6kZ <[.0*hAv(Jo<\ #]u%.=îW^%!yO!X-_%K$ d lf\NYqMyTͰyY>%04]7UnWOŷLn1>0iɕWn$ " Jt"W`/V .O{H<:L#ljo'e@Dnk zJq*#,BRm`@I5?. wJ}Q?Do_~2Zߺ?"hD 5@aDONj {.Z}_t`ykG8 EFu\iHYfY$'a=s}6F?Ɲ|J@cn"7k"*^=~,rJ|yd4w_6gXټ'M/`[J WD^6 O#ꣽW*rLJУⵙ+pfg(A(ߢXˁ|CE|cDLM/ 5Hbޫcdp$ru8y%/̊&0?dT.TRGYiMuP0lG[z|F=m(#GBp_s4-fu K2 ja56ƵU#}j\9t,N>8<{pGPC AB lY0${(v&_؏#/kM Uf"Aҥ; [&ZW ~.o2,*a: ~,Mę]# N0AY/lFeXW)yQw(a|YaMnMES<5cRiGi,0=H0L]mP\r.A*VZ ֳ$Dt36Wpڈ\-fKs^>ro}ӥBJtMWv$:ؕfsxZB{Wk8uP䈤[OgzQ߽AO]UU_Q!kD b$sNy|u!#]4R(aOH,.C4g)|D;Vۖ+߆?%]%IQ`.BJʗ>- ".@QLzF&\=15r{n9b!0&>CU%u]sXx(슫|# vFe:,Bv}O#u~ A+C)Яۖ>kHa_vU\^#?}D4v" MH:݄17Ho:9;@i 2cj61 C\VX(CN{`)$gWphMr7H'bDi8Fz qC7Tu`5s"9y}ztqEv ='9оUkYdI WǸ)qꪼ|Tlx:pakϣԔ)8EW>,CiH8nC5b Kc35 k*K(dRάU-[+y"[,jMBg7-0=9(/!k,uͪ;xɆfU 'qχUow:dսmAV5a^0~^;*yww;,hJu&l l^$5=,W.Vj~')V=fMr7w6.N,|TDvoܬz[t>K=Io/58Cvj)Ti Cy5C2yˢySfn؛=iu㰰bL`=swtũY6s2-]ek*/qbB-˺<{[_}Y}sByU1:мgGD@(]l땬tAZSSnuICn?9BЬ^t;gj'-=02 4IIN :P&M%$:x]_)R*A(;[;<2#iLPl|cAV>NA{*g[{CJJ_E]18e"p3Yo} u嶻<I"A4ߋfגSwҹ#}qfũ(f S[@oݻTJzrf*N l|h;G䂎{0Mcqں [ W*&Wg{R(3ƸFn%U.)y7MZ;|ɓ$Fwa۾]ΠEi!eW_8wNxiݢsC(*E 2$7gIsɋIP//l+0b&5Ly]r[r lTQ2ysn֮ЦI %W%=kg4OGw~?w[AӶ(4DJ_$Rw p'ClEPʬKRzF ў%cf'MƚֽVI9?7;I9ԓ/T9Q͑"g`1:b)tlAQaV:h?^饇~Z̭JXrhq@ 6|#r#jQU8Z+m{ʧ>c}UQtMaL]38xyI NJr[aT&--]:g`ƈFm%n Ҁ 雩PFJd!@3ꠡ|8d9_b.Z)ar36R fʯ"jQYmznew/i 3-9'˫glhc0#gFg[}/rd@W"Ǻ,4xAZfeC :ڄmH_ZA׼]"-C”CdG{0<'hS2c`4>(_Fu?̓DnN<$`O]5x25c6wyõ4Ĕgw]?/=ČC0@D7sJ KODC[08100)әyxϺ6@r4$E% (y™)eaI9MM+8o9!# cxMͣG*@_}8W~@?p"h~_wHE9{H`g|X)oh@䣐}w$8 j#(ím>NuȤmNإ yfnzu#5f75&,~Q-Zt|2bRp²\qLKwšiO`M0} zqsO͕ X〲;|:u 0,DN^B6%; ܜkX<< mNc0F80ܠI;HP#R{V7k*;be[ԕ]ӲTv,i%2E.;m1g E^KɌmH/2UDf_Q#~7/Vs}17sOB 9 /e6RJ6!eqMjzP'{#K+ll19}ՀÖa+N ,M7~֥@$퉒t0u9UKi8ÂiHA|6&y|jbn|齧}@taGVzd9c֦m@&C3)XJ߄)EcshvT -?2[4p_]Ҽo!-l 'uV-z /ƺ.[ 1wz#ÞXFnFK"5i‚g]قk}d?f̓7*'(S,}ЊK3tf5r qHquDK؁]bk)lJH@ s:yׇjB2Jɯb@ Y@2oJQގ]HRxq!${ɲO,V_HJFB yxmt:zSCrN*JŚܳP1t}"`r=LCXjj6^w&%oW"0+w'Y ɔM@^;g4_EьBUDËT)P(Hg$ zo5#x"B ̓]w@ ݮUuhVzn ",Ѐ!Mf )ϖ@=utdvsQ[,*$SJoV?0o\yڍ:=^}zI>n{ ^±zDכ5)3,g2j;I@%F 8{*"/^>8 "f"<6eJ#K tnUx K,j{"Kx7ڒPtwFW} ώ #*kV; y r:jB |X{ZĩRl"Zڇ5wY<R&jYK9eofA /'tMp}%<ȨZ0pF"k Rt"$ Ŀ@cfIRF1ێ2Gy0KC{z#d;}pm^Y47ٞ0#38NhמGsI7퓇3:/ad=(*ғiuOܓ h%$>H'NKWÙyR; ٢ jo,Ǧw&y6E7ej"!HkQ}ߦ?HE仃y~zZbB)Yevp0gZ_u,q"'&4DT?TQBDzPJyqD^݉U"+hSzjVde۹hܶYw 0Z('G|MGs/ֹ2C~ˋ#b6#gǿVru\OSu]ӡH6ϐ~Qz`^3nRJ JFЭ[ ZZҶa]>&WP%\s>"X$tuGơa*p:6>OҰ1|X>7Om))̀q?J lSäkWbJ4Q;NA7>AQd8d_9>^0G{`u#hs:2Tj!זh'kӺo%6Yw(kcXFt !}hY2 oaҸ:ଫug8RΥ/d&=~ Iyoo<ŃCy̲v\/`m)DZCT虨RD!(Gh)/+ԶdȜh52O2Q[Z: @3fxjMկƟQ!0[4^Mtf wy 9,odVs ׈nb,SF$QjsA}uOXFfZO I:' ZITjn1ni:>tHAmŭ);z5 ƦpK{bXlVƱ/E̊1 ވgDkQ0֎Ti,k{,d)E8j20͈<pփVS$LݵB |޳Q!aڽH(mqLOX~dv(~gN`٦KPKLq1ا-_A,Xq 5s>y,ׅB_?40m,i `][*UVFqo/O 5jؕg֘0ww%tQsÛom+HFӌ `G TU/GMIwW>eT3۾9muESZ}8JPlԺ3m,'ԙFAH]ɗ A|څcrBEMfnp4u};ȄB·O"fea>nhUڂwV[QUDHxa7a&AV ȏ |mZXs97qnwGqvOΣZXа>RVXPٓix*OKet8A1B5RHD>Gz[m (4u=m9.~9[S->LնKf EB\|$F")IG?q!F>VQ_ }W.(ϊ;XǬB\dF`t82n 6&H?D.,b%æ,0+oBTۋJ[rF3 O 溹7RzŨow1`U. ~'a}00Csl{;=7 k~Md|g5*M7@Ap4asiw&-̬=J^R%zΊ}M1[s4^8ɱ]c+1 ~ &$y(ߡkaka;-ҷE~)Kv rf3'AΠ GhE 7OcihјET,}x1V[cb :nɘ 5K)/Ťaoemu|G VxiM)$7< /pDp*aKQ_Hf A^QrG_./p-D 땡VeGAg xj+ y[&/v!JTtCB.d)[N7Bb˸?5ZZu dW=ЀCEcCpRɠ}ue|P i V`ڪn3Lzu J|f7SKkPdC7 vvёÆatْ&Pn*O_w>i*00aӰTXن̾ [ )wm_7V2|+8x딛n7*v+߰lͼE|ț]Q{GJ*1i)JEGmEkZ3%5F,Se%3M<#:?qtӆ*GQm4o5f\"okx]fagijD "gl>ځG*Ռ:vQ?αUS/$OMΞgK G_cI/ˌcdd>|$^YЛ|[.^O>B24w_ɪd:ƸٙARX2?D Ț_WgV,Ynqt2k8wZ~\}-xT|]!b@5ݿd zmTw6Wڷ AV N"~Q+ 1}0F$Cu[[xϲ]lxI6Ә4xzWy7oB ;&lSWX~.gKNu5XXU+Y֝m ?{?\j ޔ<:ŗP S;%ř"+Md虠/$ΈD]Q/o6 ޮu4s:t1ZD4`yƘҌ2{]KeX3Rntg1xI#Ubh@Ì?;[b'ϫʓ6-YG 粴3߁\p x77E}Hp^hrF}ZˁUFAiv.Y, V> Wx\,vEeDm)|NpI؄_E= [luİ($'(O'I U8)RV/~{|' (ʏy=rƹeO^]M̏{n-Zxx\(VubM ,0 nQPz [̩j_}#8~oJJ2ҐfuXɘ|t;~;[9p7ShJlG"C"A9o_a 棄2~KeOf炕 󂣫 hL1j cFT~8=)/+kq#e=r.n$e,þܕ tFטc5S`5Е&K)zD W"{(p.T>>ɳd>֑8F F]NN'EZVVՊ gzvHL$KGpQfjzpKP@L tSqhBA+qIb:wCMQ0gVѱ ,.Sdʂ n0pH{|kfXJ&`p[E [ޑ.J/ܕ-\JFQJ%.”ƉɿJ16tu!*&9/{ph ~i_kgCAV4R[P%rB_'>&lunN˴Ϳ5-brॏì$GmzgΜP|35j8-D2fxpwZm\/ShÖ!ԷwH5elR(`Z0VtuqyT!hOc# F\DC.gcZn`MYX+H/>k2Ha<}Ck8&?;M2͗o! ,h"0JU";sktӶhґɓJGMyM-t6oP5g"NPX-!]+ѣYO|NA:mz0\U $չEu Jydb1^0MDz7[8ۦŏ*\$'Zc}~?+Z=:b>@oGQ/9SZ6A*9膙}JQ9sћM ~Fͫ2 #&0(~? R(`gR_2[D /0d>ؼjAUޱתgPXÓh.1 ~9I`rT@FSN{!׭}ӈb‹Wz: @QF\[ Qh\jgޡF㩹kXoFot: Oo(,0@WuCG &DZ-KbE/zT3AVC<.N+kv$0&6JX!hBRb1VE-U-Hôǝ<ه2ZN$&</@%㌁ՍuhF;;NF ˉlddtѫ۩ALKiFYG+' *b Z#iڕs^21lzNZ'dǢTCۮDKI3Qg9 7DˎD^ۻmzRߚyM}acXyC/6-W[G^hR0oIU5a8o*=4,_^h&+O0d{o{sCMo2 s⤒M620J€¼'/ D&2-( 7|YM7Qd=:4 UD'M[u]B!\ -AzRr i`iNj ࢇ0VY(yldsqqކMQB+Rrt M:LlH:hV[VԲwT$h= :oafn9֐SRiԌS rfͳ9by$#O'.Vr)Wө'2 w0xQ@4X!m*&J :N=zg%-KSg}_ Xݸ\pdv鶼 Vðlb7}8q<.Iө7ZZ%7XX Aneū0>eWy@d؃ ekR0 ?1,2$_7o"ymIq)S1OZ7QŊvnv)1NXY'`~X,%y 1S1.DD C៼)?\K 9=ΖpӅk^:C]̍]WF('! ճy#]㶧. ]o+u4޴78Zc`PU .Ve/^*fٍH S0J1ϏiV+m~ͱ)lI\Q3p{QE"# ~b)KZ򥔓d?g5ٷ{n38_E*p#.mݓ3QJ.DCm=MHύ?(Cɺ#Щ_~oP7k„| ̽_-fv8v#YV@1ͬKAu(3SF{0gk d3Ph4NO JcV2IJW܍9eLH-aXimۛUyjoÔWeCܡt&jtB/Osl~e0H]VV[+J*FLRM F*8vJ71qZǧ]ު_8&7|jH$h}SYfk;dP)b47JOY7K}$"J_8">lK$@dd1L a'lN] 2 o"_rR[ĩYH3[U1CGIz)3cZgfN5Td1jN"N^u!@__CF%[0V(HvQ HYug떲6 !Œ!tMAF2<瑣ſ(eUID5s,/!{E"\mRvXn^O>~s'hH+!^X -׆CU8^{A]`ӻ2uXmX F}puG+6ꝸnX.l\$WV4VyM> |t(W/bzImP«ӓM%*VIC @vZv\5IRĤӝ@YSW(AFj=<fz4Ba{ l+ w]iW]SvR$2~H_u$:CXř'E7\26&,L 5T5$-jtw W1 L"hɒ3mϨ?6Q&>}b[\M4[ 2r.Wh6[ť-^WP;)wRc_)ܺzcԾ:O(DV 㺜p_< .Y͘%:YCZ*&vVI *C崉TAbμq|Sey=j# ol-gؠ9i|ı(g|֌( ޥ[mh`9ns  ہJ8ѸmBsiu)PQ<#ϩiIv7CAh=R?|nBد<Шv R22 upB QYu0X`xYuj."}3SND73g\^x9J/ݢ]@B~<*]q8Af}ť|A}tVz[nI.%+mgFmi!džD?S"j"GP$C; U(ɑJX32lin.q!H†ߣ).TzJIhi`L0p`EOor9S.ja*FSN #x)_p9g\RBj]5izP>H]pi@U[xǓ%.(oeLIGHٸgw>Q͏(]n I{Mv^oku.SU%8)Lr/ X.3EHo:ͭ݋S] eE,q34=-_ 3 s-(b8 f%vl0<8=fh=T+(ܰw41|h@4S=?墳ZN{YEnՌ7R9qUݐkt:+OSf+`0H E܆xK8w8A|Da;6.N"uɭS`/((a,~Cn pPspT3h=gjot?a~Lh!O狘+'6Vyix١N?=3W X֞\uK<M5:yWcE#@ ǚK?ǕbTߴtt˙!ӍJIF+g`^К9 aa3KGfIewi%)R5 cfI !-r#%i,;uAcO Úgz*&zj {z~IU~= L`[)8$L.NLbyHջt7J/3 oCq\GP6Bja0Pi^~dlT80A4q6BDIAElL>TwaPInekFݴ[3::?Jbi(4>o78jPrsUiʿ ,^o;#C"$n{o3:mH:ϟGVo.y6$PQH)5ԼEsNJٍ-9k}'cn%ܫD/`US/٩>^{x2Xe9PE~2F:${߰`,#ʌ tPolp1N/ǜIb4@KJf6D y|芮ӽUt6͎&6} ,x**}[;{0MR ^Msl]4KbBڭKZ5<36$GDpS?s;{`kbGi jj3X ِ3 XAmO$&~-Pda\֐y -jSUb.ݰ@jDJ%6٣1]RX%H}*/ MݖexW:>t#ǭ{7'N2[x?55 aWv;Fwٓ _9K{Qs,]{G~ˌuHcKp#_Bg\w#M=*vljso[)X~ʿR X2<#(<Eچ;`H c$g Pnh&EW:/;p 2jm&Ag?~Ep<EPA݁<"9ΥvtC։i';)eFm( 2JuklR rjot lΌ~P3Ip^8?|g1y Y gCB^xONƭdc5f2y%gqV<>\|I-+A–fzfhϮuӊQŷ |E0bhlvJ}/=ˤ9E e|: y^kzsc=|-9vDJsL?#m5Y*&cG"i A"U9G[Rnuj|sZpXQ!SvG޿!]fdP:u@k9;YkaV9Lu/p79V6]K.sb^U@hMܯ:&B!ڨ<qޔHZMj:ϨdS(b:J5PuNWĶM&W[E6 qfr Zhf`hfag%+qw%M9}Msg ~1O:0e+3JũיtuU,ϮeW\> xd9{njM {;G޸*w+%)K5 ym``a1PUW,VF҄e Rn$j`Ϣ.9mo@J Oى!$T/x $c}$xз& 1{m'v9})2wd(,~ +J=Rԏ oa!.EH8&1i'rY6n|\ہA$ V&iƌ$)H.i1rKOQ2ȯqޣ< ltD3ٌkD a^o $B>XlM\Ǔ~fT Ї30k⡈kd7^ا ՚,tq#ͅ"ʶnG;Y2Ӽ =6iF,3UuփŘh=KPd&gDgy? o%lBp0B=cOghfV^>l7̰i!Ý> 35/c z$x |1)\v_enն=Mx2n1gS?;U %k(B/ZPVgL'"vQ]~xmypB1U=DUЏ(nXc]B Cӷ 1{6&6w0X|Yl+*,qqC2/wYlAēAj);.Q\"J?/S[&b@=MfM6P64inzÔK63e(A3-5 z98ԃw ~[$LY@u.n= 6+:k/$l=CD$|lddgA6O%࿁#^ㅱCzvI*un:][뵕CU 5vHe:%GhşsW(ՏKRl9(kߡ Y ƚ֔%G Nab+ba9}ZMғ¤hbO\H,0gWHT1.؋(o)=1b(|Lu5p.VΆ{ص}S֒[hPPZ칪,$[grCN#H6vj;Ǚb{XH. !nxj@}Љ;3Lܼ"yOZgUcͺ2< ΃DmiG:TV]nԀ2.M%j}-}ag UF݋M_NFWx$8Ne581v#A/w-Cp?Cxwijwz[\,O^e\Pt+ʉlUM$M]+T^=17TlCKJVvb'yc*@U9!@QizxwS>s@+(GR{ p""I!+oyZ͌oq' c䤢t[<7d'?5D*(;4:Mǡd"}4cfxnI;w{4^#<˵ ,`N!bMtn:o/yCǁHZ K Y?>Fڦr eks#9}ghOįb+9@!+ok'fTEl@QD(9ۢ4`FA敧Rj^ĨUg>"վ ev\"X"nv.W%8Sʉ,cttt+Bu-|r2Wڜcq^8y >n r 0f#ur%B]`vv@4 z!3u4/1YփȺ`MaM`0Pzw.¡BW$В갶K1$2jTJ뇵=4 XCP 2\j'ɧC h0R;e)(v,Ȯţ^yb ͌ V'w)l hg=jvPG7N6H~G,Nі-TtZRb"P$:5rmЪJ L)MVrUP#_%>Ђg١2M$sߏ-Z:c -z|}1sq.e k'i׭VĔ4n _Oh-5;![_rbJ>qHL6/`N'eVԨ&B2KB'g/zbMw'&'4q$gf+̸V‰~fkK 8qpʻ3pNrm+'E %"oo}*6a+v,bBI(TfaeJ혋]yb ̈\=ɳoQ\x -ߔsI!`Miyl:s;av}@=OB..i<[''o3;eJ&KAz%|:r?ygPukш9YȬm~WZxsAW]K aa֕3e=B )-bR3FjE^`~_V$QΨ,f?:hŞ4F"er={2 &E0]3i:\"do p_AfWc0 e ӊcq5&`Hmn~a1"qWN D 8݋FCcZFp%,+GJz!@D2:Kqo}P'+>ov'C2=@B1gW $ cVȏ\]k%!k~s tVKtudeV@#FD"<./9y$ZXmEDy B*9fw7#Z;i%ڲd(L..nכ'7$<LbAiL*`~I}7q49j]Ga?Ogp]) a^ZԍF:,9rHK?t7t8f}Zv*IWg|OXo|kWhQnJ^qK=qe=Q`r%n~'Q@ ’J )1Q\:cwӞ[ v3ۦg3W0ҐbA_kKpxqu_<no1"7Uvʑ| ukg-j)eep%y7ȅ;&*J 25 BhV qRω؀ۭ4ROp(h: vSj#Ц=AxU;v[ڜ(&-(%uQHn4/u ]Ii]`Jˣ=VmI̿Um?mըYt~׺t]LO/0<愔0%#YP EhU}Ql2c\lϧ8KXʫ-Š`$B YZ