Bug 1027311, Part 3: Remove irrelevant & problematic extensions from test_cert_signatures test certificates, r=cviecco, a=test-only
authorBrian Smith <brian@briansmith.org>
Wed, 18 Jun 2014 13:40:18 -0700
changeset 207473 5cd90587db41b1d9895bd2ba407c0f9622ba34b7
parent 207472 b531c1bdf5d1b89c5be9241f4cfd3de18543cdd7
child 207474 4da7fe44c04c4fd2f6f080a34cd7c60a4d3fad47
push id3741
push userasasaki@mozilla.com
push dateMon, 21 Jul 2014 20:25:18 +0000
treeherdermozilla-beta@4d6f46f5af68 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerscviecco, test-only
bugs1027311
milestone32.0a2
Bug 1027311, Part 3: Remove irrelevant & problematic extensions from test_cert_signatures test certificates, r=cviecco, a=test-only
security/manager/ssl/tests/unit/test_cert_signatures/ca-dsa.der
security/manager/ssl/tests/unit/test_cert_signatures/ca-p384.der
security/manager/ssl/tests/unit/test_cert_signatures/ca-rsa.der
security/manager/ssl/tests/unit/test_cert_signatures/dsa-tampered-int-valid-ee.der
security/manager/ssl/tests/unit/test_cert_signatures/dsa-valid-int-tampered-ee.der
security/manager/ssl/tests/unit/test_cert_signatures/dsa-valid.der
security/manager/ssl/tests/unit/test_cert_signatures/generate.py
security/manager/ssl/tests/unit/test_cert_signatures/int-dsa-tampered.der
security/manager/ssl/tests/unit/test_cert_signatures/int-dsa-valid.der
security/manager/ssl/tests/unit/test_cert_signatures/int-p384-tampered.der
security/manager/ssl/tests/unit/test_cert_signatures/int-p384-valid.der
security/manager/ssl/tests/unit/test_cert_signatures/int-rsa-tampered.der
security/manager/ssl/tests/unit/test_cert_signatures/int-rsa-valid.der
security/manager/ssl/tests/unit/test_cert_signatures/p384-tampered-int-valid-ee.der
security/manager/ssl/tests/unit/test_cert_signatures/p384-valid-int-tampered-ee.der
security/manager/ssl/tests/unit/test_cert_signatures/p384-valid.der
security/manager/ssl/tests/unit/test_cert_signatures/rsa-tampered-int-valid-ee.der
security/manager/ssl/tests/unit/test_cert_signatures/rsa-valid-int-tampered-ee.der
security/manager/ssl/tests/unit/test_cert_signatures/rsa-valid.der
index 619b3e10de73e776d0a272508d318eae439155f9..efe19ada6b7400a9abc1d535223d9ba0baa79abc
GIT binary patch
literal 1068
zc$_n6V$m>YVm`ZonTe5!iCJXR0|Rb0&V)7(##Ck&W+nqcLw*BZHs(+kW*)ZWMBS9)
zL<2c-UPBWDGeZj_17k~5(<pIXBM{dV%EhLoiP_ztiOG_UU8~LGoCOObkfX!Y#K_2S
zS3A^dW$vl9`Tu{e@>6;G^wYy#A@OURL)`E8HP5)L-tzgZRdql`pXG6_2U7ZH9cMTn
zi*vhmeV_Gi`I`3|%9Ptp&nUSU6!#VK)LI>Rq;p~V+xeyqFE=Hu+P>aJcTY#?%HRz=
zy830V?`E=XR~EQat0y^q_GROE&O@SpPiAP9PF<~G=eaLL*KwK23n|WHalN||L@p%0
z-{rBzdyzq~^dt?9Hf1%TS<iM?iLQ^SnZ3pQP5!YK#|3NK*{f~2IwWUrRrLIN;@)S!
zdGo(Hcp2?@$0PnrGR`NHU)nWV!FNO1OSkJbA30oO8GG*>KD*-LBsG!vCAnoE=T4gG
zy|A<SlD2i_ZYD*BXa76vUTE`tj^N9@AoOB_-kTS!Np|xi9d#eAIJ{RRs}UGZ3{@W$
z>>6kN%zx}zF(>N##ShOez1p@v`8aces@7ZGg97d^_pSBbJdf`xqd>&0XIX5r<u1N2
z@(MNnefn9Zf9P(R*u7^bj%@q=WdCpTZu@QDmw!qVU2i*c8UKa0#bK}9_Pb7%T>e?#
zG>!RG!6oY&u{NErMLHIh0gmVVEYHo^-|ZJul2SKY<>B1|cJUrP<r3w66MEf}WUgrn
zG&0<}Bv!O4v6IpH+t=r&e@gaT)_m4}e(8zK&)pl$)2Ep{+jacMmz#DuZ=W?i56G6)
zwG^CveV&nHb#3F>$@%A}KRe8PjMrAZyilGuV&W7(?lr<bomppvru;kgKwM>w;%&~d
zpH8<WYChL9H!-p?fD_F16)fq|-IFJmaJ<x9bk6-L>+YQ&E{5-WsS%L!%JD$of{YsX
z0L`_#V-%xy6|DQQO>)IQt>?8`3LK~N9#&W0(f9d#uBybodduphm7-;r%IyWFZ8)T=
zsCa0L!fL7Z&s(x=cFjHBs+zffUib!`Z&%M>H~f3y)v1nY$Ew*HlwR0<TFZZ+#(K^~
zi$|dbjytD2q)pbzsOIV~JFeBYhHaD9zUdPJ0%i+n$$Sage)5uKY~Sa_2X(z~7`PY*
zN1eIzDm_CbG-UD7dorior!F^DR1<h-oqcZ4NvCtomo6PU;g?x4#rRg#G3)I!d)WHc
z>BRT9L{AQ7Hk!!vOhHtg!Ts{81nI7){EL+h6b<-+xl2}<k?}tZs{u2RGT;LV@Ph<^
zd6tO<B?~iqFc`QpDTJ(Z{klU@(sK3DWeY_;L_SV2{A!f;<lp*B$>!@Po)y~(Oo?+n
kS3lTw<BCn1i-32T*0EI`X}hW?eQn<6IN{Ba8?ih308bgx_5c6?
index 76f6ca35b87b5d1cee764f540689bf2d09276b45..ecd7b74572627837e7bcf35828654c84aef7abbe
GIT binary patch
literal 376
zc$_n6Vk|Le{JnsgiIItk*^*7#fQyYotIgw_EekV~fsmnq0UsN4C<`+Wdvc;~fw6^&
zft)z6p^1T+p@orwv8AbLlsK;uh-(VvV%1Y-Ai%~BHkFByja9pmg+YlqiGf8T)7nf#
zy+y1u{lJY$Gt_*VzyEx4W=-U3aq+-(v&Y+)SA+y#&8S{@!&q<fBQDjyd*iQu&3>=(
zMoUC{OKAJQ^(z*JIh>mL;N>l=D=RL(sVtjxJR&r5N9xZNI;Z9;d?*(dT&!%MXuuD2
zi>xps<9`-b17;uvcAP9fNC4<XCKhB5GiNXuq%s*Y%&e#s;5)S0=Ddt@>DwK5BfW*^
z8cXl0kCCiZx^l1f=xwG?FU>7;&pkcs`D5<gjdD>;1|CbTPBPuTzNA@TW!u_WtbGON
kzA)+WF}bE^iWq0uYzdn6&U4pc=U47MM>Us+o837H0G027YXATM
index 88b9a764092133ef9e2b89794c40d2e502fae1d8..64da2b923b91a64f645595baed38954010951554
GIT binary patch
literal 710
zc$_n6Vmf5d#JFk!GZP~d6EkB7zX2~Br&gOs+jm|@Ms8LH13^QO5OXLCGY?yGqHa-f
zqJf+^uc3*7nW2S|fw85jX_Ppx5r}IF<zmy)#HfU9Fe57ia}y&!15licsfm%1;kYNq
z<SD0h!@m98c4UcXiQlitJ2(59mS^6Ueb{_W!|OmwY<2Sr(PveHcT(HjlyiA>mrk7j
zOK8cYZS6l3-wDPYKOf!b=@9c`{>2ULExFq5b;tYcbW+}W{8>7E{=}Bl$H55^%HAtQ
zzHg1%`SIQ3#+JJB{WTgpH(#0d`=Q+Tt5dGu2-x=IV&>k8B|1g^HLK+!R5?1%97y(j
zUoLlG<Jz3_&nI^ZBp*{;fA^!2;D0ICb6>W0+Mj*zxM)XgRcS)-9Me)gK8DzK&%f+>
zIYq%%CsbZ2{@kwkKR$hmd8<li?<p>kTWe0neBm+tw$biv_7P?Ydk!C`yuFi?m-SR9
zhzsb<ODYEjJp<!nWdlV6eqg}K3NtePXJIv922uumAOU`m01Gn{6AN1WFoQxby;pS3
za$D2Wf0j;rra5_f?akn0eBX}8tnqKnRk`%^MB}fe7s9$5cus0xDtNX`cG<mVe-qE>
zWv|vh6`6DVNkm!Z+}`DD8TKzf{Uk)P<;;yc{K0LX{X&1;*3~KD4F9~}Ey;a0b5Nk`
z_r5io%6Hh#d@T7mN^{2VU){@9QlfvITE6(@27jUdpD!GgWxWu&{o>OZ@0MS3;p=%n
zZSvEdw_Y`On0T4(eHg&8$>wWz&Hd?fWmE5D=LNqgid+!bTO#+o*zc^ox;DdW25Ir>
zmyf?@`(*rc%iFk@o32}Dc0aDud2FD#TG689YUH-yYcj_;MDIGCi0tg_S+e)@E3SWh
LPXuD)S>yr$XDuz7
index 5d0350db3c9a6c7b33486cd63f504dd46e846980..60a660c012421a4877d93e3743720bdc5a72bf7e
GIT binary patch
literal 1058
zc$@(u1l{{Ef&?Bgf&;{$0|Eg80s|k0N-zrs31Egu0c8UO0|GD`F&Quy1_M<D0}K#p
zZgeeVb73uXVQp|_a%E&N9v2NUG%z+XI5IFZIW;v}7Y#BrFg7tYGB7haH8ol=Brzf|
zAO-_f1Op5iWOHFHbYX39WpZU?Eop9aEp}mSX=E*BWiWyRMlgZ`IR*zRhDgph1OYID
z0xSZ80RaHrD^)tFZOW~0|M{v;B<1Du;kr~`tV2{s-;RTr(<g-U%{qHfc#b*8D&QI~
z%|Vz$#$HC+*S<TuAAIkyb|Z&1%pyl{bB=KgeLBSAEYO$jpEZE#vS6yWuS6}ph*ham
zuna9Pc17-)2Dc*++<h(?mz&cwUkSn$PUM&>b(O0qK1se*EkUL<=o$&eUX8k76wqPs
zx=6H3qA*h%k|-#KBPJ4>=DT_ouUveav^VT;#)Ltjt%nDDJqm~!o3$ZH^~m1yPM)9k
zKuR*W?hF_D8D30j4;w{WAWg7#=|<N)@d!m-0gc?l&8X3mCKO+!ZFcdUl9@}PiG$KB
zJ9)bTApqw8iGJuS4D(nHY0whrkS^@#1!6v*SwSu0sKdP!YJmcR0RVdOAU=Vb`ETP%
zc$`}I(eUQd>bAdQ#{*y`D(x-75J&00txL0>4%Gn=SeoW)1|4@qP3UfMDE{*Kb}z!+
zb{5{|$i%k$<iGnji$Avar}AbMuRWQj5736AR_aE-MU@$+^Di}K1IlpHJA4*~EcJ3M
zIC)S(&Q3YboWF}sTy$i9n<U}ga0eHRE+cd!zL1SZVjR{f5P<;N(iU>6VTl1l_VwpA
z{B*q2DdvaIrO0XXi?BCmmNe$N$N2QwK5Xsgg6B|c9W6N#o7bK)L3@3H&697>m*&F*
z#tl6ucX1yLSdo-Y3#=1NiE7Ofl>W-#7bL79+X;60LfaU8^M3<^0R;d8f&l;@!E7L%
zWLLM<EfQru&(`NR&0c%2Re+ynj7!~^BI8UXn0<R}gHOgi%aOZ0XG=Od=`c=}sUepw
zS9HpG_)}+7{Msbe=fO(i!MsB|al~^;A}XC@|MucLYp&!UpRaLY<+rOOK#mFdt(+?u
zV#S#|CI!%x?{?>WWfs!p>uGP%V07XSlxl)DWp`XDz3ZmAi;D`9^}$5RJhe$rZDfq|
z0ifyWI5-R6Vso)C@Bi}h;R5^H(+N8jo7{8EmR<k~ZVW>@lrdoMQW}3(PV@wa8R;Vx
zJ}3|z!|LFnQG1F2AOw3z^`*yj=jJcO9CZC#y=R33NnBzt$CwJ|k`t*g3kC^bhDZTr
z0|WyC14jTbL;@gE%&&uEm63l(J4t|tIVfP+f%CDI>~kKYg=;aeS);Q8AYB%!4sa!-
csoFh?J37?NTTHi}mmEF=_#P{R-J$U4w(s=RhyVZp
index dd760270c29c858ac5471aa1fc8650aef429dcbf..6d45b1b376a5191260fd5d90092b67a29d8935f3
GIT binary patch
literal 1055
zc$@(r1mOEHf&?2df&;;z0|Eg80s{+c_b>|v31Egu0c8UO0|GD@F%~cs1_M<D0}Ksm
zZgeeVb73uZVQgt+Fdi2TF*GnXF*q_XGdVRiS{Ds6G%z+XH8L<WIW;v}FeEV|Fdzm4
zRRjYJ8Dw)|Ep}mSX=E*FZgeelVQp|_a%E&KWo0me14b}{0yzc;DuzhTI0OMOf&wf8
zf&l>l-78f(scp)wZ~ytKP9){!^5MEvU#vq^N8gTvnA0bO^UXSYP<W0x$130&FU>)i
zL&jc4+Sk52yB~b-uy!MdHOwMMaC44v41GGp;w;dY?VmM(>9Sy|x35Gkyogn)Q?Lvz
zFLp)lnFhBb5Zrw(8JC;WGhYe96;9-sDs`2sC_YKPR4qZKH0T-$#$JuOU=+|{@485|
zOQJAS8<Hp}h9f2tn&!KD6|Y=;o3uCVZ^nc{psj}odp!z>8Jo2sN%hFy^G=?h_CQK9
zxb6%W`WaqKX%8DkTOduacIigfJn;xcT>*{U!_BDCk|q>iq-}QbosyYLp^1aiD?53+
z0wDnA|A~I+D-82k4r$O5=#Vb#=mlavpIJdI;;6&D6l#G2f&l<}@gP2dn)z?zNqC%E
z_tEg?((1OqW5)wvB`WPL!4OC3zO75Mo(|Ok5LlY#Y6cy5L`~>!aVY-s`F1bD-F6n<
z=E%gh`{cj-H;X^E_own^6|X&+rVr4DqgLuhzeSZ9r}Hm0W&_G_(mQ+>hAj1REI4^k
zLC#J&&YZuCPF!?kew!rW-EapNj4mT|BfgN0Mq(V+DG-4G+R_$ss$q!%L-zIOHT-nE
z(<$bM&!xy|^NX-IXO=YPy2tqR**<LT=7Q%?YaJ~)5u4YZGC_NNfz6X|&zI)I1I7(K
zCwFll4Oo$sP7ACPOo?jE5|sYR;1?vUA=?Rd`9j+meDi+;f&m2p0)hbma~bH?j)#?_
z*9h!8ygem8*`#NqHHN~sy*H()1D!+{I%XG^BInJ|H(orOt@_E5Sv`65<eAr;Ru<z=
zT>`4x7YEnpuJU}PIp`76JTGYJkIgMG35w4w5@-f^$J3R&DsK&tn01Jj+dNe~v31C4
z0bXLsUx@5UXJ)cSMDWcv7@TFh{=PCo0uO#NL_K<0oGnW=Ps~1W8LNIVIuU*ilIK|a
z-)*Bu>mcMzzw%>bHqUC#0)N^#dtmzn2@eRF$rHSi1$TcPWi3O*DppnoxAnP}G!aH2
zMJ*;sItaH(k(_v%TJ$r7fzpq)@^@u#5@lGPSmo?zkS42Za%CjxFbf6=V1`HmWdj5Q
z0s}_?Fhl|%E%41dY#=E8gZE>{`YG10@nwG>LB$YluZEno@OAqG0w7fl09^AdQi~KL
ZC|<(rtr;q`tBaA#Ckx5Jrk)+s#M*nJ%~}8e
index 4dfc561a500e7e5f07cef400d9091b9baaa00a77..0a1d0d14bdbf5d1e2301b46d1df7607b2cb8bde5
GIT binary patch
literal 1041
zc$@(d1n&DVf&>jPf&;Rk0|Eg80t0akG%yPW31Egu0c8UO0|GD@F%~cs1_M<D0}Ksm
zZgeeVb73uZVQgt+Fdi2TF*GnXF*q_XGdVRiS{Ds6G%z+XH8L<WIW;v}FcdKoFc1a<
zRRjYJ31o9&Ep}mSX=E^h14l4|0yzc;DuzhTI0OMOf&wf8f&l>l-78f(scp)wZ~ytK
zP9){!^5MEvU#vq^N8gTvnA0bO^UXSYP<W0x$130&FU>)iL&jc4+Sk52yB~b-uy!Md
zHOwMMaC44v41GGp;w;dY?VmM(>9Sy|x35Gkyogn)Q?LvzFLp)lnFhBb5Zrw(8JC;W
zGhYe96;9-sDs`2sC_YKPR4qZKH0T-$#$JuOU=+|{@485|OQJAS8<Hp}h9f2tn&!KD
z6|Y=;o3uCVZ^nc{psj}odp!z>8Jo2sN%hFy^G=?h_CQK9xb6%W`WaqKX%8DkTOdua
zcIigfJn;xcT>*{U!_BDCk|q>iq-}QbosyYLp^1aiD?53+0wDnA|A~I+D-82k4r$O5
z=#Vb#=mlavpIJdI;;6&D6l#G2f&l<}@gP2dn)z?zNqC%E_tEg?((1OqW5)wvB`WPL
z!4OC3zO75Mo(|Ok5LlY#Y6cy5L`~>!aVY-s`F1bD-F6n<=E%gh`{cj-H;X^E_own^
z6|X&+rVr4DqgLuhzeSZ9r}Hm0W&_G_(mQ+>hAj1REI4^kLC#J&&YZuCPF!?kew!rW
z-EapNj4mT|BfgN0Mq(V+DG-4G+R_$ss$q!%L-zIOHT-nE(<$bM&!xy|^NX-IXO=YP
zy2tqR**<LT=7Q%?YaJ~)5u4YZGC_NNfz6X|&zI)I1I7(KCwFll4Oo$sP7ACPOo?jE
z5|sYR;1?vUA=?Rd`9j+meDi+;f&m5q0)hbn0NUV2#p+-<0;C~=Cs)QTr^a$9iBBcK
z_Mmxu%&yWE@ASe;<RU5`MRzthLe^=Dkl~UnResGEmCGhlV@thk=&9|S7-8P!N3;rF
zB+aEE3(`i5#L%rE0$G*30sE>aXV?vW{x!d`y3~L$n?Q;I67)vmh}r&p{&~iA50IU&
z{CQH^Yc(!Ki$Xm7=<>4P!k3x#66$b^DQNEA9q5e9*zAFJnFi)h&Tp{p@$(4F7k_}q
z`{lPf0|ZZ~Hm|dJLv|A=BtsGo%5vl}qmgCy<Pcxt1<t`Jbf+Z`Grn%dbYZWll@7p_
zBGPKQw(ErTlX*;WIxw;v$jVU+7{p0(u`mk;31Egu0c8UO0|Em`05C-YAWO1jF_k3b
zwDJ9U<|?2Utf(L6a|?+B?B!b<ilvS3#{wY$-o0IM5HA_bV6FU*7lC7<@A%K<>%MXb
Lfv}rH*i9q!)Zf(^
--- a/security/manager/ssl/tests/unit/test_cert_signatures/generate.py
+++ b/security/manager/ssl/tests/unit/test_cert_signatures/generate.py
@@ -11,26 +11,18 @@ libpath = os.path.abspath('../psm_common
 sys.path.append(libpath)
 
 import CertUtils
 
 srcdir = os.getcwd()
 db = tempfile.mkdtemp()
 
 CA_basic_constraints = "basicConstraints=critical,CA:TRUE\n"
-CA_limited_basic_constraints = "basicConstraints=critical,CA:TRUE, pathlen:0\n"
-EE_basic_constraints = "basicConstraints=CA:FALSE\n"
 
 CA_min_ku = "keyUsage=critical, keyCertSign\n"
-CA_bad_ku = ("keyUsage=digitalSignature, nonRepudiation, keyEncipherment," +
-                     " dataEncipherment, keyAgreement, cRLSign\n")
-EE_full_ku = ("keyUsage=digitalSignature, nonRepudiation, keyEncipherment," +
-                      " dataEncipherment, keyAgreement, keyCertSign, cRLSign\n")
-
-Server_eku= "extendedKeyUsage=critical,serverAuth,clientAuth\n"
 
 pk_name = {'rsa': 'rsa', 'dsa': 'dsa', 'p384': 'secp384r1'}
 
 
 def tamper_cert(cert_name):
     f = open(cert_name, 'r+b')
     f.seek(-3, 2) # third byte from the end to ensure we only touch the
     # signature value. The location for the perturbation ensures that we are
@@ -44,17 +36,17 @@ def tamper_cert(cert_name):
     f.seek(-1, 1)
     f.write(b)
     f.close()
     return 1
 
 def generate_certs():
 
     CertUtils.init_dsa(db)
-    ee_ext_text = EE_basic_constraints + EE_full_ku
+    ee_ext_text = ""
     for name, key_type in pk_name.iteritems():
         ca_name = "ca-" + name
         [ca_key, ca_cert] = CertUtils.generate_cert_generic(db,
                                                             srcdir,
                                                             random.randint(100,4000000),
                                                             key_type,
                                                             ca_name,
                                                             CA_basic_constraints + CA_min_ku)
index 38736d8b85a867cb06e79d476ef0177657c47841..9e208b09d872bc95877c349f88ffa755bbd02af3
GIT binary patch
literal 1039
zc$@(b1n~PXf&>dNf&;Oj0|Eg80s{)vl`sni31Egu0c8UO0|GD+F%K{e1_M<D0}KXZ
zVJ&2HVK5#S4KXw@HZeFdFf%zdHCh)9GBhwYF*PzUGdVRiS}+?i888<H162eA3=nB<
zbS-3aVJ&oFZE$6BWn?gd14b}{0yzc;DuzhTI0OMOf&wf8f&l>l-78f(scp)wZ~ytK
zP9){!^5MEvU#vq^N8gTvnA0bO^UXSYP<W0x$130&FU>)iL&jc4+Sk52yB~b-uy!Md
zHOwMMaC44v41GGp;w;dY?VmM(>9Sy|x35Gkyogn)Q?LvzFLp)lnFhBb5Zrw(8JC;W
zGhYe96;9-sDs`2sC_YKPR4qZKH0T-$#$JuOU=+|{@485|OQJAS8<Hp}h9f2tn&!KD
z6|Y=;o3uCVZ^nc{psj}odp!z>8Jo2sN%hFy^G=?h_CQK9xb6%W`WaqKX%8DkTOdua
zcIigfJn;xcT>*{U!_BDCk|q>iq-}QbosyYLp^1aiD?53+0wDnA|A~I+D-82k4r$O5
z=#Vb#=mlavpIJdI;;6&D6l#G2f&l<}@gP2dn)z?zNqC%E_tEg?((1OqW5)wvB`WPL
z!4OC3zO75Mo(|Ok5LlY#Y6cy5L`~>!aVY-s`F1bD-F6n<=E%gh`{cj-H;X^E_own^
z6|X&+rVr4DqgLuhzeSZ9r}Hm0W&_G_(mQ+>hAj1REI4^kLC#J&&YZuCPF!?kew!rW
z-EapNj4mT|BfgN0Mq(V+DG-4G+R_$ss$q!%L-zIOHT-nE(<$bM&!xy|^NX-IXO=YP
zy2tqR**<LT=7Q%?YaJ~)5u4YZGC_NNfz6X|&zI)I1I7(KCwFll4Oo$sP7ACPOo?jE
z5|sYR;1?vUA=?Rd`9j+meDi+;f&m2p0)hbmSJeiX8<K4KNaOnJ*n10#(%uMvt>0U2
zCkFc#9OfD@_dG2+2N}R5kGqVsAg8}rj<G^;L&5yt^6CETbCj(9{uT_9>}>xPzVoB_
zXRM5NI_nU^I8(y&>$GP*eECzXhF{ZZk7*tt_XPT0096ogp}v#TBqK9){DmoTx~8Jg
zRKOa)9!fiHqPy=!qf4CNy7LuC07ucDI{5(rk9g`GiYHKwHy!1Ees-66#oF<&s*Uzc
z>j1ZV)u^k&8aYO=c&STpy?sy{L}qm77Gcr<wvp@I^#AFk?uo~d^Vb8A?}phFGt}3N
zSkl;qn_TOwol0LW;q|e;nb54yBTQAgFbf6=V1`HmWdj5Q0s}_?Fhl|%XZKFkZ9byg
zzNxdr<SA2378uQQKDa#Po;6v=R@`nS0w60iinVc!iALNKT(@C2>wr7R_|(W!`vpdS
JwPPw0!lGC1+E4%h
index 88cfbca86e3ef5e666a37e16959737a8d393331f..ea4785c81f128a6383a1f6ff91e8c503d2900be5
GIT binary patch
literal 1060
zc$@(w1l#*Cf&?Hif&;~%0|Eg80t5n3-AgbF1_@w>NC9O71Ooyv5it)i4F&^M1Op5P
zV__|1b73$Z7Y#8qFg7tbGB7haH8oln4Kg$^HZe6aFf%zdHCiwjF%~cs1_M<D0}Ksm
zZgeeVb73uZVQgt+FoFX|FoFU(1_vsJNX|F}0Wg9BECPZ70RY`ARXV9{%B^qz`KnGN
z<>m6>x>R4RLsUoKj)R!fCxr9OI(txfjycCF;2JN@L6}3vUPjv2zB{`geDAP!BZoE2
zB1dp@j&TfqI>h2E(3kC>HGt`|V5+yTL@m6CRjE_33@tBqMedmfw<8eTeJ&Z7o6|F2
z3Bnal<d`aTm8&Q|NxoDqL8dh58VSZ;jk;hI&|&YoNVH3$FjE_nC@6*_CK8(FyLuI`
zTzs3fH|%f5gh8OKhX;E-3Wyn-wINCM$lmi#o}czWN;0_a3>W$tUQB5Z8%0|nO|W+9
zM%O&?2t{21joib{sL_%p6knumcJZB(nM<LGgVHNIdAkB30OtRRe&{O<^H>gP&=Tm7
zF6`(9Vm_Z)K`r8_!@U%0fdYa70DAEtK7pF~Z{taLoLcwM@aEF$w!dS?17Ia8?JdC&
zN9n$;OS7I1)d3J#n&xT-9d|@c=x%W+{_^>DFT&k+7T)H_#J2n7zxy|fKeqR$@@5sU
zJ(;Et(1xQ{>PEjsl^Lh=FEwTZ%5c&<d=`c*^>QpYc~C*lPC3q;zl%;>bYy;;B;nm~
z2N#SkBXlFakc~!S9M&lifdJal7ILa#i2+0Q_2)JGbiC6k=7-Ov$Z7M7us3IxH0HX;
z`1IL6Z0+WP=TK`MEjbaJ*Pb##dwqe;lW)(L=EDQV4Lv7!aUTs>k(5pgtP@O$YRwXq
z{>tDNB&;FZ33mBH+ZcTFe*=O61^@zr0RaGvK0VejILauodw$5VMQKiYY>iKU7(;O_
z!Q|@Lc6}<zzyc}=qbCfnOrgnX$so~S_;yl=F>V8nL+97L;e4#wG5(?nPI5Ooes_By
z*;b2amjjOecQYUVNv8RGCnQQLqxjhHd@F3S9;Jz(PA{4oun&h?tPWDP|Jqe&L2-2Z
zTUVe>{DtX<>reZ0t7@p~7J9?NL@zHV8}KjU49b7ctbHL$QVWKEXR<KX+TJaaa#8)M
z&&~B+pHXZgVQ8ZdFf|FcYML_Ogi*nX7?w2BUIHzZF1#o<v6a1Oxd~M4G#);b3{{U~
zqvRGE+#<^l!E1ltD+SuqqYav2BP%1L6EG1l4+aBO9TNco{{#gv0|5d5Fbf6=V1`Hm
zWdj5Q0s}|@Fhv3&5K4s@t;1Pg9>YwKH)%mDb;V3Pp?w4HZ>Ko<<A5F)0wDmR_lS;C
el{ySpp)`W>fQC%FY1cMA6j?vTZ7K7we?+vEg~)aQ
index 0c9cdc1fc2dd1a3196a38463949b3195cbb3e141..b7c5bcbd6c347c7ded94bd30f6fcb42f76fe336e
GIT binary patch
literal 349
zc$_n6VvICse6WC-iIItkS*AeIfQyYotIgw_EekV~fsmnq0UsN4C<`+Wdvc;~fw6^&
zft)z6p^1T+p@orwv8AbLlsK;uh-(Vv8ps$*8Aw3%2xjJ$fHmosB<2>R7Nw>blo<%H
zv4hQLVq|00Ze(FlVoqXUQTDbAym02|U+q;1uV*;6?r^@ebJ?!X8ZmkAieG4Z90}`m
zI4gU>Sd2xVS!1v6Yh^ysy$im_6!$H=av<F)pk<zm=c@;-ud6HPEN83!FnP9Fr1TH7
zP>D%_tKCGcd=Bm`J&Nor<_rddR3<})Gf9uc7sO3leZ!5VL1AsdSHqpV-cOSkSS*-%
zG_xr2z@qTuOJ-haeYJ9C7(;57%DERz24Od*oK6w{75=QNx_jlKtr6$fRf%oC8C|mE
c+4hqw)y%Sw?fq*Zv8v;h{?Vk{TQY200kzkGM*si-
index ffe5bded4e6dd78dd49e29eaf36ae13b8c0135c3..8342cfacd42e626d5fec42de5549cc9cc9691070
GIT binary patch
literal 369
zc$_n6V$3yY{JemfiIItkg|U@I$AF8CL#xf>oGlA8lYx+-fB_#Hb0`Zl4|{T=Zh^6d
ziGiFruc3*7nW2S|fw85jX_Ppx5r}IF<r+vDiW`VR^zdcom4G$rmL=w7rWlkN2(Yn(
z4QFCxW7TeCVNhaDVqo#PE>z@be9AZTvI1MBk!1W|?WK)PH+MDbpS&0R<bB}vOFt(#
zUc2{%-FnShn+5h;+#07JI$FPrsaD)aNqeSwqrS+bsm<{_^BsO&@{U_NWt+v(oZGrV
z^Y8j3ZIIQ;{ZkaRSlB?&fFI~2Sz$)T|17Kq%s>j+pUjyI25C%&496_wJ__}j|25fg
zHEO%=`a4UwYxP`3ezq<BTpy%$G-u7<Sqa=CI~$LNpDl|zm9}a=P|NNwESsHUj09Xb
t%6eaKwh8_7x~k5kH(gD7+LfiB?rW9iUinsgY_F8o|F6|Eek6bX2LQ*JgZ%&i
index c9fd5f3c5f8d7f5e52c7f2040b1dd16cd3ebf116..b8883701c8efeb092ddfe9e363cf818d833e8dfa
GIT binary patch
literal 683
zc$_n6Vp?v{#Mr-pnTe5!iCKct%Yc`SQ>)FR?K>|cBR4C9fuJEjP>4B{g_(yfIZ?N$
zIMF~(oY&CAz|7FX$iUdr)HF(**9gQlg>ns~4J8f4AzB17^GZN^bW0L*3sQ?xQ-GE!
zAzQ)7%D~*j$j<;2=VEGNWMp`x!+K9lW!_dUzSxCpkJazA=SrMs_^x!{y47<ZGyeXz
zeDk8;2bb66WhlhN-ksszcVp29AF;hs&pI0xtmH4c`6*26lN863eTIu|S1z2U!Yef|
zYw!21U)j4uKVRu$l+9t&F#5kX^Kkdszo&lpL@*w+Jikq^)o|i|&Emz1-iiF_u@a&E
z6HBlBTV!a_CFh>oaU!%TIrZ{2PVEcs57$>*xp7UG`CpaNC7Vk&^&Xvy$Czh@nl5LY
zGgFq+Ba18O@9WD8T8*rx<?hOlzny(t=J$q2wOpO?0b35V*SiP)nHVE^b7J7`Xo0(x
z1!o=$aLPRvy(zk5s_*Q&+_T@Fe#$=}DHE~aBoi|u10z}_FoObS+eF8SZB>WOk9IC+
zxV_PqtHs{g>c$Jk+wYDk+px9W{(WSHRK`00FD?(Qru_W4Nho~Q8PAo6(mE~uoNrul
zVu*}eTs80d^4$4%YBacn4|&{NH=o5rN0+yFQ-e_E+NV`H2Q+6raD45tu6c^rx~tU<
zpFcCmy;{EZU_)%@GfyQSHlcmH+;*?gtC;+6Mqypr+*Ny?AL8HQ^Eva!{e^p~9BZ%o
zS|q*y+cfW#Z^obd;YMr>>lzD#J_R5Bo9CP`d)^_DbL?_6d9C}+AKt23=GN^jcVvxF
z&(2B4^OqcPbPS5$dF1Jj^7TT|H$2<TPL<f6x6;-++WxTeLHm_$I-PQ{rFBi;IyM3T
Dg}o!q
index 9b915761846726996f4bac260837c0873879aa04..ad33905003c6879b663b34d8aacab42093e9502a
GIT binary patch
literal 702
zc$_n6V%lZU#JFeyGZP~d6APo<^b`YLHcqWJkGAi;jEvl@3<iRR{6Hb*P!?t$w&X<J
zqT)mYIdNV?69Y3t3nK$#OH<P*ab6=3*A&V%kT4W85P@jn&CDwS>Cr7q%*jjvTBU?+
zJ|imwa}y&!15licsfm%1VefRs4XKM$rqAE?eP=3*R^}J888_>vv#B=+K0f|oT}xiB
z<I$iyZ=c_uq`zxz5#NQmatpt$RWv>_*)VEye*2v5?+w-&Im|uz`R1b3M~OF%`SX03
z!_rqT?_KY*%6wk$M60@3mb<x<Gv#N0i|<P-ek3tLZ{IhYZwp?u7W`kY!QU18z&~K8
z|2o;3(P9@BT(?Jts+3Gv^)XPWXZbBJ`?%=tGxOT+bMIaDXAb{D`!{|cw!V3iaw9kX
z=l(xC&%}JTQ1OiZuD#s7!Rm<5+(jveSGr4NPHkWhI&(5dVbP(N3!M$Uiw>;gSt{Y;
zFfHfOxdw?`<$Il8OE1S8F}Y0YSi5d_W%j&ICT2zk#>K)0f(HD+@RJp0Wc<&<YQPMn
z(4vJI6j}vc+(%2gZ$CMpX>oJrg}NiJZt>cm<#^@$r8aG+<+%<iugT}vpZ~o_*7bFl
zZGX34V3j)mX_c3^+-CT3t-5>WN6M{)mv2tLm@xbEYVnIzPj*}i-xAxM?EP!nBE^TR
z9Tw-7b8dU^NFigNgQsf`!@k~m4>FG*|Kw|uy!Fx2b*8U`;<5#bPR-y8pB@n(rJ8k1
z{LIDm@1-yNG5@lVx1&Aqz_PM0UwoE7?Mt)}T#>=FEMn11cZLsHJ$)K?8}{c-EfHKH
z`N8OW*;Fg7zgKp=2@vCxxpZ}f!q)T%6ZY2Sh5K#lHp<>x_V7hbqMwLZNb$*&9VaJ#
VO)ry+e9Jat%hwM+r9#EWGyxV~FCzc|
index 90a60f0cbe37af2743986587f63010eee9db9f4c..559137d4bd91ad78ae06a3bac4435066aba08684
GIT binary patch
literal 368
zc$_n6V$3mU{JemfiIItk*;46?0T&yGR-4B;TNY*}0~tdp0|_?fP!?t$!OXl8-2!6^
z6Wx-;+=A4i)D#0bab80c12aPlBLibgQ`0DMULz3K6v{PFHB>fGgy@z+(WwhEt1K}m
zGetKw)u7BkfQ=n&B@-hXt9By`gA#KR1Iy~yk3}a;`Ni_-#AnU=lm+eVE9`#-nY&z;
zewaQzGkMXTU1yz~3ui{Bd9`Z`Y;(ANnf<xiGu?kj`oG4#T{WRIWbw_e4e?n&miw^B
z38`;;$@XdQeSs*3pa*}KZs7cOCn=W^*`v%E3<jx825twfy;GTT{yKK*w(0GRXj<R&
zTdeU~g!bjTro4ZX(<0(~Ht#F=G0P<T^3^yO>+ow#h764X*F!qAwbM=PW^}DLdn{X?
k$Xxt?!f9ivReHx5W{EiNbS*p4(DaJk;q#^5a>o1D0MFNlQ~&?~
index c1ddd9d45fdf70a29a74ac04b9f01ddda9490123..7276af821d87a8e67ec26cbb8641d523633eb2a1
GIT binary patch
literal 365
zc$_n6V$3vX{IGzTiIItk*^EKPfQyYotIgw_EekV~fuy0hfhZeuC<`+WUuIs3Zh^6d
ziEde9PG*XMoH(zciGi7+g^_`=rKxF@IIj_iYYOEWs2VC8C_=PKA++g&OesmsEl4d&
zP0>wFH7GL>U}Fc{$Hd6Ss@=%Kpv0WSz!LH{EZ(iv_lr#9ho}6fB}Fo)-OTQj6kHb-
z@q2Djktp{b-KR76L@l;={*w2oq|<1N@t+6sLN70+`_;?s@J+Y(zLeJgrugLdQ=WY5
zyCsiIG1^_Jd#WT~RL6Yh>BPFHi~b?|k~xFHAeG5L=VH>7Ne?Q8rsr-t>2=<>IKi@i
zB0Fo9?CVIcmwyh<o`0K@^VG>XAD3x=ir==}DMyyckm2XYN#$3qq9<+GBKY}RY2WoU
lSx%ps{i3$>IP>2Wu(@5iu&i+k$Ce8lVxE4ucR^^*F#v)~hhG2y
index 18fd4076e0ad35ffe987807740971a4bab9dd18f..1e4c4dd914540ea113e4280002be4b307090da6d
GIT binary patch
literal 350
zc$_n6VvI6qe7Jy_iIItkg;DXu4+AbX4y`tibG9tZOa_vM;s&B@%%LpIJbamXCAtO1
z7ACr7i8+}m26E!Oh9(APh89K!#+Ih0QR2KtAg(EtYanVUY#<2H%7vt@%s_yR9c(@m
zBO9xBBMXBPa}onf;JbfI-!BTXtJ}F`UQP<Drd72_s@$^Dk1{O#EcLx7tXa-^d7@hD
zr+onvy|>M6S(%yVu_upd?`M_2KQD#Zbni%PjA`jDmDm<5_A=MV{A2mP+EbDq8mSDc
zOypmeix;jILG~4M27^H=lOaR9knfArJwFfke0jd{oWZ?|S8Jw!+o$uEUHtln5*Nnl
z7b{n7yFGcH#cBoPjTOO%1ap}T)aQK8x+A9BtG`o3a+$(zXUCZvg}i4QzLVO2`X$??
X+G%mOy`8kfoa0oE^a?%vs(T6mL9~8!
index e06b2e9a6f3b967ca51d6e7e107bebd172a4bb66..3f51bcf67373e83b7327b6b17e78d2b84061dc40
GIT binary patch
literal 702
zc$_n6V%lZU#JFeyGZP~d6SLtZ83SH6POUbNw(q=*jNGgY2GWL-2I6eYp)AZi0-1Rw
zx<$o_x+RIZ1*t`;DF$-lyoM$QW`-6<2F8}ArcvU&Mj);!lxv`3sAQl3(JYCqQ5R%V
zSz=CRif(Eu(0(OkTNzmyn41{+8GzzkOihf83{QgNwYFTFwC<Tz)De?U+YSF7ynjY@
z@rjll-A$KerE(^$%qW~b?^QVGhAC;8ypPt$wY{wI%9As{w*B?r<>3<!%5N!)(DXAE
z?dH1b?=O0dJ=FE-j}<fCE?YWHIv{?XRbkxWXS0^JuJ)ERZAqT$*Dd+^`?c3|V!sO=
zyi+GpwC;R=%dIdqZo7Z&X+NInZBxtFcPOdSeh}udD)nsLjQYa#Td@Y#s~CAED6UxA
zt9kJS+jfKf!jtMlb!<MgN=@xzW0+HLp`vkS=5t@g@U6$oJg$0AU1%J)zQCyL<Er1j
znbo_JqdmeJv-f2znPSza8*n7Rc$xO4=e5cSa^5ChM;UKwd%7|)Gcquu#S1eiU{3Ec
z_INh&=JE?FThl%(M>Nb_-gK`^?bM=|%vDO!lPf*<S1U$OTw!On<i#H$dv=>cMrG$O
zclsJi<sI2RZJ(W|<W`O9k9n7Qk6sPjv*V|`TSn>krUUDb%500Sjrh{O$6bg&;!SS$
zF+)Zc)2G%~G9R`(-alpQ!J6*p|8AR*;Qwtmye+?cnelR8RqV!#u8+U&$o#1NY})j%
zaTELZKj17{owvVDp^PQ}gUf{b7iJYi87+JAEjXp>mFKyD{1<$d59i2jDSml3<ml6&
zjMZxnnT1#ASjgpn%5`3Ue4>KK)hE4Ay^sAlzVGYe)@Yyq;&NA(oio$nk>ic$f2d%l
M_gD9Vp6<Fu0MP0x`2YX_
index aa17cacc5a2c56c454ac92144ff54200dd253ef0..7f1af180b9a78c06068f508d3289aaa51184837c
GIT binary patch
literal 699
zc$_n6V%l!d#5jKeGZP~d6SMWhNd~-ZoLX%jZQpqr8M#>*3?vN23`E$NLs^)4cr)`#
zbc>1;b;}ZSGE)rX#CZ)(49pBIj0}t|O--Z3d5u6^Qz+L!#ZbvW0ish9u1gnWMoD6B
zL26NIif(Eu&~hbYD;ZfCn41{+8GzzkOihf83?~jAJo`{$pYo*lE|*U#SZ|PdJbjba
ztq9R2fkqq8Ph|V#@#rUe<b-G4`<AP_R3wE@u>5}E*Nq?gOQ*cPD17Stjgy|61l=CV
zd_O)z$JuN8QW2hx7YhBY4R5{)ruzOXnDz3~+f8lrkFsx?ZZ5gU`q;d}+;gUPy5~>$
z`9Vsku<g!CjyoSd?{XB%QZDHXNmTEN5;(!la_0ZaKgLC^(m~!Qe|&2HRoo@4(pe#?
zJYPiW`S;frp(*B{pPtS?9{R3$)qf|wRr^_b3If-^Ikax^TRU$t=J$EJHoH<k*M^-x
zqWx{Tx!{uDE0t$DM-{2Gdr37sdAp$TcR}$YZR0PQaTgoT&(pr1&&15gz=#$p%%Fg=
zUKjJ>!+iw@<)2C_ey4sJZ=Jw#bYY5c?UBBq#Qev%UgqEPu~)s7FWv5#y>qLNY$D5{
zS-n|?As@~c97%lkq+aCYZBvGS8Mm_omOj=}zdlb<qWr)8mJHrKx@T3?+ma$)GO_($
zF~wx(k(nGP<ZkYrV)n`Rj;oOP2i|lug+J48K6#}Oq*Q%x376NoY(@!#rCWa-6BfAR
zbX>p6pxoWDRW6K4=8+e3Qdnf6%YJPgrwr|@Z{$k$v@K9<YyOzl!hW)9$H%Q-m1{db
zxJz#fF_u!<FE+z`<zC+7?9&u|H8iShUpO3V{@b)<o{n(L=f3~7-k#U3-;26z-N+=$
M<YgCd@sivv0B7qbegFUf
index 14ea086d456e4a9d443a07e103d0277410ce5b12..33374e1ed83f42018b26ea00168eae4365c5c1cf
GIT binary patch
literal 684
zc$_n6Vp?I)#5iFAGZP~d6AQzE!%q!(**LY@JlekVGBR?rG8jl0iW!KoF^94+^YCWo
zmFN}~C+e0Z=47TA$cghBni!ZFS{NA^Tbi0iiSrtPxTa99frz1yfdE7&Cqh>fqY|<e
zjI0dIO^o~uKyfanCPqev<8FH{y_sw5{j2V<c-4%WQwO)M2#?+Gn47O8`{v?C5vPaI
z4g1aq`I?+cj`(r5wJeV5ue;+7(X}levv)0*?!J3q@$5j0dA(=q8Im4ky1lv+$uaYx
z#H}fv%m*||+820Lh!j*T?NhD@UvZ1e^ZUhrJKfe4R#&G#C_XwpbIZ9H%k3$K{|`So
zW#Mt-+ygD&WjcozJ`iwTXdPF+r{t-&{$cxr{l_-^P?FlM%01Wo`HYCWcV>0BTo1Ep
z|J(aT;9B<^=du7DS(TbR9{b+8Z=K!RYV_m|wmhC7Z?SsG{K(@GQlbKpp)5l8eocD&
zNc>~zAsu76JM)*tRF@@xs<vV8Wo>zK!;^`bk%18{5|}{&Gwn@u!|4lNo4S;GCeQvn
zQTmL`?3As|EV_^TXHAx^4O(0_Rl}I!<NlS7Pc|9OnIq9`eEm}3%fJ4g?)PSB=dV&e
z=vZVOkkmFY_ev2%4)gbway@e&87`RUyrXK$a)&dKFI(^PGyi)w;idib3a)SaRc}dz
z_|1~m$({LAM`khK-EA*)q|cWeahs4(@?z?2gN;1t$vG?z{U>t#niP6YI!_h4<t-9%
z#>M`zB#-mKgip(i{+~W38m=ApSu93mW4ua`uy?iA)?4#^+|nabv+PYwly{YfD6jt7
y&ZcBJ{kO!|R+a2+9cLcb#-y`nw#a*?Ur!VEFxqnKnOs`@>O<X=mLH1$<_-X-?jB13