pki-javadoc-10.5.9-6.el7$> x /."u{j>; K? Kxd  G L P h l s y     D b h , ) 8sT>\A AhA|A(B 8B9E:pBBMGH%LI`XnYnZo[o\o<]^M.b $dd $e %f %l %t % u _v w (x y  KtCpki-javadoc10.5.96.el7Certificate System - PKI Framework JavadocsThis documentation pertains exclusively to version 10.5.9 of the PKI Framework and Tools. This package is a part of the PKI Core used by the Certificate System. ================================== || ABOUT "CERTIFICATE SYSTEM" || ================================== Certificate System (CS) is an enterprise software system designed to manage enterprise Public Key Infrastructure (PKI) deployments. PKI Core contains ALL top-level java-based Tomcat PKI components: * pki-symkey * pki-base * pki-base-python2 (alias for pki-base) * pki-base-python3 * pki-base-java * pki-tools * pki-server * pki-ca * pki-kra * pki-ocsp * pki-tks * pki-tps * pki-javadoc which comprise the following corresponding PKI subsystems: * Certificate Authority (CA) * Key Recovery Authority (KRA) * Online Certificate Status Protocol (OCSP) Manager * Token Key Service (TKS) * Token Processing Service (TPS) Python clients need only install the pki-base package. This package contains the python REST client packages and the client upgrade framework. Java clients should install the pki-base-java package. This package contains the legacy and REST Java client packages. These clients should also consider installing the pki-tools package, which contain native and Java-based PKI tools and utilities. Certificate Server instances require the fundamental classes and modules in pki-base and pki-base-java, as well as the utilities in pki-tools. The main server classes are in pki-server, with subsystem specific Java classes and resources in pki-ca, pki-kra, pki-ocsp etc. Finally, if Certificate System is being deployed as an individual or set of standalone rather than embedded server(s)/service(s), it is strongly recommended (though not explicitly required) to include at least one PKI Theme package: * dogtag-pki-theme (Dogtag Certificate System deployments) * dogtag-pki-server-theme * redhat-pki-server-theme (Red Hat Certificate System deployments) * redhat-pki-server-theme * customized pki theme (Customized Certificate System deployments) * -pki-server-theme NOTE: As a convenience for standalone deployments, top-level meta packages may be provided which bind a particular theme to these certificate server packages.\Px86-01.bsys.centos.orgr| CentOSGPLv2CentOS BuildSystem Documentationhttp://pki.fedoraproject.org/linuxnoarch-9 #/ZF/'y]S3;`WJ,G{-)+?4.OZko~${XD-8DP?p.-.^--h-0t.*?` 2u(r% * "L7<?Y&l{&ۂLbg"J2.2KV,I4iG;80*";C,i8cb->--.M.y.,le*\0#.)<? %o!g@8)/2t. 3GY,k,C32Q2(7y% :0(tdBD-:@2D D195C:F44N.+=%%0aY9?]0Ad3D!Bj Xhyynl.!c.{&s${DNcc%Ji0RKn!/YD?;CF.LaBu2(4 ++..++-I+=,BX7+q^P+OncncB)M#'(yh Q+&!Oms#.wKg ;d>\1YL(.P9#"`@O7Hj,[2u !#?Nh< Z9i0IE;9{4n\q',";$jP#zw/kY@`&6x/+?} D.C&D9#cL.(0W30b0$$u(m2Cs/$f 9- ,%;/-7&'8`#_N "?7)?eW.61A+b6-:q5PS.623`F6@*+G"7J<|&6?_1i,M}$1'eB+MgQt9 WeT.mK&s@G<;^3#=$ep!9!y*O_%47+[q$B! $&1e8F([ߥh+2#3-Z 79=,MKu=-WX,9H+&a,R9XIBu:[94- z= ;/hY#qDf%%0U)7H/Qd)&m,K,++<%Q&R:0J*4l"q3V6<&)9B$ M)XB2X-){fXbeMJC7:G]R= O5FUHZBQ9:; I=I=dDF@ EZK^FAD<MJO@#89;m999797:BEAem8I#< &Wz8o C 8 >d#%C-Y--CCy>7@&q987eh$%('O4'-Z*#"(mm&16e3 {eO$ 09%C#d!0j3!21201|1u22,40I%L+pc;^$$;ZS&U::2eFH.848.Y#K"_tj 4SZ"l4/]G>8$%#,A<W 7" W{Pr8)hC;@)U:/QhLhV- (>WeX,]LM,b-----R-0f2+J;W24z&uFxAG.bE*N#+l$4,}"nyc{9A;C33Ve!`QG3.;.y~(K)&D!|#tH3J&ra#XFh0)r-UԥS%7%$*$A.LV.&%)d}Ϊ&|^ Jl% $)cq7w))3b0M)+2zhq[$9Y6t:$Eq&YIvJaM5IuD/Pm+.B.9TTelI@_.'  #u"]dA+BaCD>H>%8>!t(@kEX)b7;m#A]7}5"S/|Ne>SB,/k%zI 218n$$yND 25{.+,<-{2' ,#Y0];d3O.2!O1r2&'P4 a!@;/f")&9Vs:0%%J S  *, YL`01x&S&cO328NV =JK!M L0N00&& NO11&&O5=1J5" g;do!$> T!"#N /'o{;-lI(<+dEfP-X_.%%/\c33XJDk \M +]5&[&9'5&t$` 4Lb-b @q'[_|O E!`'e:+c*\0C,5,pn*Kf"ŪA8,F. B!ev73B, Xyyy (35[vV]yc`U[TT>TTcaTUPnccyB)DF6EFWMeG`dJ,yBX4oGT]UaNQe !)41%)I+hA*c-l4WBnv L<n!mAkX\@e309;[ h 18"$]?r{B=_iimugz~F~8sxu=lixIoh1--7"d8No-8"zd%.!)j SF-~0#YUw<?'_v -d"+YYCi#D""g- Y N-N  zdte X@9pnpq$nuPipjp{n@1 rp (-tss+}sqYOd&G"zo Pz0&HfjYg (fEhvyB|hD:"8Y8\%d70CXR-XZbgDgK}}   3gW8 h)f<qBgg**To%lg JP.nSPGXTXoPWQX/Up5te/UcS.0z *E'pd.;Ne3+Z44/ g,g ;!0;`2w^d):6~~0VC!ǯ|&*~~E~6[.krM|C"8}g}}Q\"r\rrr;@< ?TW1G<ZG?DD.xqo<+r[;<9F6?;7<77G.5&JP$$"{:#q-8-Ndl-w\0^20Kj=B8C/0>b>ye4L1qBhz%>}?+}-oF0>AN-,/O ,.Z.,8 }$% Ag(+s`}."QQ ]#!84~~U&S @iUT$KS(=*(!/1t%':53+CIXh*7-    #G-  !w!.)DkJ';w1I}k;*+1 L%/bM*88H&}I591,#.,2>V :!G6@A;APAA<::@@?77M7M.(3C+:FvbeHf7 7'q<@OVA?QSUH;~2c~nIYAd?D> yy\l?E@?>A@B@A?J=B*M'ccM8? KJ@M@Q@/@I@@>F@ D?B>!M7BnnM!yy K =J!?A?I{AoAAK? &yceH>  P0 -.#>7:;8=T=4=!=J<<7=< yy~56J<<y=_%??V?vA?z?z?n4wyyyZ]Al@NAD@${ @@ B>@G@BD BABD@$+ $>=J@BDD:DnBBN/eYooY X?B,?+!kqX@BxA!UuyfACC"CVAA-!0 J5A,EBCDCCB&CBAAN-.D"88" ^#@@@B B>@x? *?[DA>A;?A3@@K/F/~H.~4Fj!T$ jB9/qZ+j~1%d, $,9<8:!+p$;;/I/x"px<G){**-c%/[%>BT>>?? />xC@t?dK=9=7=<?`O>K<@LFW>>>>T@U>l>>1> iN%%>F>vW,>)s'+\>@ G>A?ZMu3X^Py +'Myy4X7h!ItG-'fX+8dHdmF']<!G (mLF "g\V T'Q6OL5U6t'5D#,BSW$;#$$#/w8i%&%r=Xi/  K'%O%|T(&?absVsos't diskzsOt,yLl=s## *:\|Qp<_~?cy#"+h~~h.W3P."!*I,OIz/tP<*0HAYɐMM7BM7,M7MyXn, "#-1Dk{!D36?=::86;I@sJ@;6;}?>J;;v;:9;A,=>`<2l6;;888@:k:7=<6<3QIH,mMB!,c)*7X MB!,!BnM7n!7M,,M,7C552h<ƚ]f7L8jELLSEF89"8899j?#8S:z?=A!0|,77BMXy#.6MX #!/eGtB;F2*A큤AAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤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큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤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큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤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큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤AA큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤\Pq\Pp\Pp\Pp\Pq\Pq\Pq\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pq\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Pq\Pi\Pi\Pi\Pq\Po\Po\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pq\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pq\Ph\Pq\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pj\Pq\Po\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pq\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pq\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pq\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pq\Pj\Pq\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pq\Po\Po\Pn\Pn\Pn\Po\Pq\Ph\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pn\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Ph\Ph\Ph\Ph\Ph\Ph\Ph\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pi\Pq\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pq\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pp\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pj\Pp\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pp\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pq\Po\Pn\Pn\Pn\Po\Pq\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pl\Pl\Pl\Pl\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pl\Pl\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Pl\Pn\Pn\Pn\Po\Pq\Pl\Pq\Po\Pn\Pn\Pn\Po\Pp\Pp\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pq\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pq\Po\Pn\Pn\Pn\Po\Pp\Pj\Pp\Pj\Pj\Pp\Po\Po\Pn\Pn\Pn\Po\Pp\Po\Pp\Pj\Pp\Po\Pn\Pn\Pn\Po\Pp\Pj\Pp\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pp\Po\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pp\Pj\Pp\Po\Pn\Pn\Pn\Po\Pq\Pp\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pk\Pk\Pk\Pq\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pk\Pk\Pl\Pl\Pq\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pj\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pk\Pk\Pk\Pk\Pp\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pp\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pk\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pk\Pk\Pk\Pk\Pk\Pq\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pj\Pj\Pp\Po\Po\Pn\Pn\Pn\Po\Pp\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pp\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pp\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pp\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pp\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pl\Pl\Pl\Pl\Pp\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pp\Po\Pn\Pn\Pn\Po\Pp\Pl\Pp\Pl\Pl\Pl\Pl\Pl\Pl\Pp\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pl\Pl\Pl\Pp\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Po\Pp\Pm\Pm\Pm\Pp\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pl\Pl\Pl\Pl\Pl\Pl\Pp\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pp\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pl\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pl\Pl\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pq\Pm\Pm\Pm\Pm\Pq\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pm\Pq\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pq\Po\Pn\Pn\Pn\Po\Pq\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pq\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pq\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pq\Po\Pn\Pn\Pn\Po\Pq\Pm\Pm\Pm\Pm\Pq\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pq\Pm\Pq\Po\Pn\Pn\Pn\Po\Pn\Pp\Pp\Pp\Pp\Pp\Pp\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pp\Pn\Pp\Po\Pp\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pn\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pn\Pn\Pn\Pn\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pp\Pm\Pp\Po\Pp\Pm\Pp\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Po\Pp\Pm\Pm\Pm\Pp\Po\Po\Po\Pn\Pn\Pn\Po\Pp\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pm\Pp\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Po\Pn\Pn\Pn\Po\Pn\Pn\Pn\Po\Pn\Pp\Po\Pn\Pp\Pn\P<e433e09add4e7dd6eba2385c77916e6a4e18211d9d7a4f053d35a2e7fcbfb2025a30d706025efb40929eddd872ccc153eeb73878d1f7cb01bc1deb2ac0d8bee0d5a471b82fdc5a2c7bb2a98956e0346f3411cf7ae2d5f0630b4b8447454f254144c65df6495c197bd02f91eb9ca99ab1f3ba9d3c0be5b2bd8d4ba032cfc966a72d1bf3e891591bf35bc2d262ef92c4311d55dd4b712b72fb53616b783e750b863d0742b343f2f8885b174a869a2aefb6bfb40e839a9844ec0fa026b7fb4a8e498784bd145a4946ee848d72cac6b9f8717eefb539a4a6949a207cf4f91e1ef81d8629b45029a72631b5b7bf6779425da49dd871d677e22c3d4bab5aded911d344726e91ef7df4c0bf558c0849716732a06b22fac3b019efa6b3deaadd379acdf3b60a23d877b2937922715669095e8c098677d73bd76ac9ee7303ea51d50557f13c1b5a105fd1da42f5b42a0418c5e530a823c61a858715ebd5bc8454c2f3467f09c4b16457fbdb07c9360dc0c7f5107836fb27721643ebce2f939c8829f6f7f710942d6c869fcc082414ed976156c03ed00400b208c70cf682e73304e0bc342d6d3c1dcd9c1769c61338d7f2c578ba55cf2abca86afa05aaaa18cbf28786c34d94cb4aef40e52eb14f279ac204ecf73653c650b1619c3aca643013500a967de910eb6a3435194d6cf59b524357697c11a434eb717a945aaa4771ebfdc63323ef90f955157ccb902b3a082ae071b3593e844b1eb9e27a1589d3440cd788b1971ed3b29ec9d1a70809de379a14cff189cef98cc2fa3759831eb64a6e23e4e9e1b7c36728a0516486b278af02d99de418c6da85e047ac678d5b830e07ac311bad28e1ef6378a7bd86371e46735aaafa55a8fba96ee0e86a364bfdb50d4931811e92e0b79f8b2a524b67e0b25f30250a4a4d3e2711b8e1dbd69ca76802014a6f3e170917f4977e5995575aec21362b498c85f9aaba7a3de51f01dbe6fa8b78b23869750f7400e4c23a6ccbc7dad27217c5cc1e16b9dce272c3968191be4990a8f3c0561c178130eac07b5a3236ae83a2c6985cf95963625a3614276e86e0f82375c5425ec3ef2f8f7438e12ea033b421efa32a599af005053ffe0c52d37e615baca32cd1b81634a9db34137c071ba1f4b4b1a36e8f51144b31ff42bef32c202956f1acd13e3263982276d72b7c12aa02eedc114e7e6a5d68b67b62ab3ce14f51964422a62aedda01ca205f9394426751a9c1e2550d0eec28f7c6510896af07af7d9675d65c1eee36eefed84f418710affaa739b62ab9298e3ee15d1242a862ee10af8ef22f56d8b641f7f6530ddd76c33956fde3c486a57207071fa5d7517346ada64c9393275f58746da8cd9324c09b46722f4ad42ee9a47d34a3e968a25a6863b075fb454bd4d01ef370d6b5be82e6b1653c2cacce0661632de93fe366d64e892d8f2e09546673a12ad3192118b0f68ea14d41cf9431c0ab519d19a501b8baf42fa43e9041ada3c34d7d849deda4775f8448c7d6c9d025e093a476c3286c1f183f2bb2c601f46bd81d5564eead9174d89e25eb172c768ff0aefee73653895c5f992665a0066423cefd6557772c7ba197c1c1a74806ce8f3293c9a0eb723bbcf47d4e21bf03c07c6eaeae8ec437136b4f2e4bd9fa34ce830fa6c1d3e5fe61c55e71a330cc9f18bc3e4b18fcfc5854ba06e0a5bea5639ca77796386e8ed42372f3462ad0bc0401fd244fbb54af0375b2537cb14932f2ede7a62681cc586933b3285fc34ed6d8aec5a5fcdba359876793aec7aae61e3e16ad1cd86024495ea31925b43be27224c2b5bd2da525ff7828459a25761cf58a64c1df9899e23560a21e0340e26f56bcb2d8784e1092ba4b4b53993073c981e4979b256599006a4a916242a7ee3ad9304512e2af187c972e33f46762cf4ba4873e9bd11f8735d2f7d4e012badcec058efb0ae8287c5c5e356d721b9a662a307081fd1712aae06acb528a003cef1784b87db84f0cb15ef32585535e757f466a348a243e09bdeac8eef1cf0abbaf11724cf8e129c980e2576cd4dcb40fe584c2cb07176d2f2547c137ce64b43c766006314f8eb2220c4ec8eda3438061f927010781c9f6e5738565c05154449234a89ab80cb0f674336f494eed78690c2bfbc36d536b209670cb2791c3f1efa346a276b441e9f091627b10825c39ff1e8c0e97617d56a77dcf88e04693f07e31f7604337da4bd731aafc9390d620f880a858ff105728582f79525b6d0c83803340e23e4a8a3133c494d3f00203aa6855e913888092126a6c54bcb898dfccdf2331ea39eb550340623999acbb829df057c9959f6c90abce3f33a9d39a68e88df3150ae764efd067bce42168cf7328e4fa40198175277e7f45654a09aea8434e44e8a0233746aa30c6456e34414bd0570ffca6e950d1bec08b89d1fbdbd322ac7a0f87952aa014bf391fcf52d14d9a292935b4756d23ee87a50bd5ac5998614e7d8fd049e002c28a462f70adb32cd9cd4fcf0b1b6939c7a67343429b9b2884e9f625467b4c066dad06eba1f9e517975a626597f21b2756d28fd2f6ec2c3e169a17535d039de4d9c744d51c1490612a94af7318f215bc4bf24ae9ccb4932457e660291a6e7d685dd542025fb9b5468a664252f559460709d35aab8dc69fd88212c837298aac3663bbf447ed66348434cd0033040955f808ec5a599e8e6e60a871051d164b8cbb4f93b6e782d0c0707f6b4e02c891e213386bb6873ea9021e898759f24d6f044065294d0d0792c00f4e9ca7ca3723e8970b9096da2991864efaf17019ff2ebf1644baa33651ee27361888ef99303ff672a95cc0e6c49af6e0c7fb4914bedfb3d78c28ff5048fc28a72254674b7ff8e75b204a818977ea9b6649faca6854063c88867e4857054bb32241e661c8155f1346198425e5685fc51cec201e8c7dc3a221a46ad7f5913474a17488ccdd5a9ffde0a746f6b961361fe55947e4565cb2e557eb1b49f2628fb63304f870c64356f01686283e2dcd8e94cd7d2e13aa43be481e2958035a017e5b5ee536096a1096c5bccc1a77e16d9f1fd4f881096acabe99ab66942c8469a2d3352ff130ecee1c64a08b3d738dae88cff51836f66ec1da43005a5537eefb3a52cd63fd7e22a07320b13b63e7b17e6236fbc8c67fc7ee4557ad1dae710fcbe69af9d67da2f201c970217cf6d92aac2abd853ed8df41e320f50fd7156b2b8890ea2f57ebc74474cd60d9a0e27766dc539015734dcfe4c273c59c05b51571499b790f4c9be372d494dc4685ade3730d7ee73235d546acdfe696f1e183ceab32a465019fb405db0cf9458a9dd55836335763873eb7add0208245209c7fd2517aac33387ef9c0d25891ca74bf690c2a2708487a3d4b68ec69f3b08f8a18c93912382df0287c71f4e547618b401e3b60ad53bc2cca238e87c53f671c0c31f81686da0506229143f4c3feeac23a4035dad12136451285bcd3a7ceeed0cafc810b55c32e6efe19018d35b8ed2e34c1984c6d5862bcac44472962faecb7cce26c139896346523e072022f08fd525a3504bec92915edf99ebd30d9b98b926a56b929cdd2eb95f6ac3ba199ce3499d6688fc46b066bd1a9fb35281e98dffa47b96d586aab8d2a321759839c9c0563f410e164011c8cbf2c3f530bb510eff5266068ebfa8678956195a16c6ea5645134ad485c7aa5641ee6cc1560c673188196d5f603e1e742e1546a02e5d82a4801469d159ae68a3484a52bcd4281a52b7edb5ef2c67e29a20cc44a4e4428a90fbfec49a598b1ccbf0c173d3443715b46923c64f00d3dcc63597831a6b91906d64cd3b0c91b6ab076239ce4ae727db94a19b5ca9f323ea6c88febd02af56ed373a4caac04e30cf0d766869e07aa3c54a8da982b9beb2e8d72754fe2682c71c414c195daf572aa883f76a4017c9ac7ae6bff3e72283d9e3aa9ad854e521c86a46df070ff581d1b496f06060185f62789daafb9a5c35bcdcf65634667fbb4440ba32779a02c9daa27ad13b0161bfa938e6f6a3bed135157d250bedcc03ce98c1af6ffe7c3e58d675461449efe5d9cb31fa6526eab23a9509a8730e0141934f1fc965fd383dc2a83513fc5271fd82d632f963d1c8652fe1b677354783f894ceaa865d13031234d37f1cd03cc4529542394265a6e6b06109dff77a9b5acf4b49c7d11b304fd82e284637f425e04fda18d0a9580d4c923b3351d38633e871e2ce426010dc98be691cf1c9a693e379e5c91d386f6325d0baa9a8d6d9617108cd8787c67a754ee618a80c2931b4da9318ae0a05668816dce09e85de64299a69d823f7678ecdc08a2224800784f511debdd3277f17df889145465ad21296a648c995aafbd8709f5e5bcb97bc098393c38b5c5adb618890c8d77c7b190d287e099c887f24143471b360055d04b81f95b1af8ee2dbe1ab9788405e9d285120e7b268792d407eb8722084cce06f0399755647cffeceb1086063472623c15d6523f4ee9c81e10513ea2fbb2c32992d970d868178bb32769fa42c5e75247ead9d688cff127b0281ac09a0525cb0fb746d1295879dbf2ae8a8e231bb42206b89b9a032b390e901992cba2ee1b1c2fb3f5d904021bf9b76cb31053a7f9394442ed05b25b3ff41b3f544d61d63b9799bab7260496ddf3fefaf552bbee9ca3454d2a8c4a7eb461f5c2d792397b6b99ab1b083187635a3e8b7def8a8489822ad6d54c577c044133baad88f58ae4432f20b29180857fcc6c001541f64545ac3c86656229b1202a5f17a8d3e15f436922288dc73cc2e417069c672a61fb633f32ee0d6a5a9aff99f959c4230d684be215a4b1b648e843b01ce67fda4399b190872bbc7a9d7b466c5f437ffe4178b6418b714cbf73b88376ddc53f2a862f9d9dbe487a715263b0a80fdca842d5f391cec90776eaaa5b07a3bd89ef30782cad60d43be22bc2f77868cec50c357026d23a787354a3b084e800f41c673b70a1218c65ff6c055819ed91190d0c6f9b12fafb4d11322b58602c281d6a6369a8ddc4483f04e01327035d7fb2340f726f0fa717d1bd5594f7e45fffed73ca0b223c5b82499bc6d83ba6d956720c5825e24afc49f254e2d1b49a250e790c145f8558e475e6d4fa65c04b64e58fbf5f688dac947c9bf32eb27fcc18c7b7f11b742d4ba528620c1d5fa366c4eca3e33b4bbd856c56bdbe5690cfafc1cc11645606b0488fcdff5c3775641ffb461ebe8d57e6fafb26bfc21a140de76a6ca7d8436b0d5eb0d61b40b2e00ec725539adca298538cc9c14a5d89025f95248f32a8d00d09bb4f45342156bb521d26257756e135761f5281d925fca7df4c690294414433e251884ba48c381055bb1d832cd782a342fe951fd54e11b751449b8e5a76f785d7bdeb2609a317df1ca4a68670465e561422178aa9a28dc6d52ee60477da871b4631610cdf3009d50820af5df1557576fdbd60d8e0a1af3f60c93df19425afacfb8b82abbdc11f00d0e1918d8246e1f6806508c808e9547226fe8319a4262d51c3426b46a95394b7d033b31c32395e7a878e442d8ec29dc2d785a84a920988f98e5568c622c1210a0ece6bc671b466ea09aa587f93c2c9fe05a492a9868978afe00d9ecc074c62c3ac24acb50074f1a03677082621fb0d789afc4cc18f7140eb7dc813609d5066ce0f7e6fd5e36f3223e979af65d5b7e7c63800f9f105ce8a2f972f2df5d20d3e57cfa6af6aab403a90078f0e9bd764eef23633c7df21b6c0dda1b598574d0097238701fd06abf2f04ac34c3f6c8fd1a64bf520de1f1557976833821c4107fef780d848e353bc6ad4ce7165bb87bedd90fd2bce9becde4cdcbb5680cc6e2872c99c8e106860dea6036038d8269756158c7015e2d5c381f6afcadf49b08b741471c53b2becffda88e845cb3ff3b013d9217815673ed10fc0ccd15bad392b401db62f4dd6f142c3bd70bdba1061874ab064cb2b9514e6ff0ec9583e340c615f3c150734418a48448db2be25901b47838166aafce83c05eb9fbf77db182053ddb4ca73b1a7a0413e456ff9659f24d6e1e9f8cfcacb4c7c179f32153ecb003d40475df739bf3b30a09de6dee94ae3586450c47d92bdc810079a010273cea51dbd7dcfde06ac4529017ae2ec4fbb2db53a1d625c50f7178dcdc1290436c2bd263de604750950cfab732333b2f16e5227361a55268b98652e4aac14128adddd1e80bb0d2d9d76663abb2dac7d151dd170de5971b50f58bebb3762fd80e1848b505f1cb55b1c4374e9ece7eb005657e71a750aa98d0e2c91fca68b92f187fa5a6cc68e38ba0f450cadfb9a264ec5d2a7009fef5938e304d9b8cc2a18b7c782e2bd1de8b56ede66091e3a0ac18d4005b9ea1e295f1f5ad5664b023414f37ef2e24d13be0de047d924a50dc3c6e026c2358a1b343a5c03f1880260b29f308c52fcfc4b9fbfb62cffacb073b5ee5a6f7e67358fe48ffdde27abb5f8f879f0979f2381720e3d8793c22e1111ec945e14e4bb6bcc90e2a665fb4cd547ee4700d7f3b0ee599e2e49d3b83f9a6f1c588658a93c0a94d21433b2ec8e1a22b69086b5775402df77fa85236604745a45c48ee50b6030653ed241b7a6eb740b31d54e5470fb73c71caa7a4ca4ded6c73aa0c3aefbb00ef9153163cc8a337cce1c166eccf1ee5ecd17a615d623f516b5fa67949f78c65477c7104414d8fecf05ad9674fa5ea00d9d89910ff1f3b4c2177e32fda1926574cb2883d8e2fc36702c2763ab678fcc61697574392b6d8cb73d78b16b623ea4c83909d5b90ccfc1c852f02b76c6425819ad20ccb96ca7eef7af00c1a92608b2c95b3283409aa8cdfcddeb3c2e3b621416b2f7073fc6128dfaa8365a9d3f307eb799e4c0803f7a20b3ad9184d7fe0ae9533c3769fe3f55825ec075887db56cc16da66dbd6806ab6437bf625d147bd25cf89a5c7697c5d4c7caf50f25fd94dc23d28816f046e089bbc8e3a0807550406096e3420cdeeb91f26ce0b9977b66abe0bbe974ec49143fa90e041d6bb0557240bd953a968bb7c52fb7880c58769c4fd7a01a3a99a3e4dbf78854b9f3622c5f5688e027113088e31f853f087307f17c59ed329c83b5b393dfb625ff1e2557045ba75c0bdb423804e2f7a0c506cca8f452d073c1cac8cf23f7f4e1373cfa32f130a983d158573236ecff3e66a8a45516f0b842f7af15528018cce166d5458097c38c3a98baead97f8b11ed94045fa53b85149e211a4aa72a6b4de7c556cf287d648cc640be45c9bf042d8cb48cb551729d1f5423c71b3b2111fa9b6aedc495176b419bd3f86f482048f1553d744312dc379b8505fa2a50b39a8bc8d4449df35bddd3168214914c96c4ed001ceae9325bfbaa0309c179d18b2569ca832677c96b47c17a404351bddae2728dc044ea5bad56b7308cbc34389a9aea1cb7e99f6e91a949c3e2a79ebc8fde07d0013bc2328cfd2ec1a6f2b914a7bd5c93b58c4aabde0982746a756fbbd165385687e4ea525f57d94ec8b18683aac644f2b8f508830da6b7985bc3a0a63fb411e23f296dfc0a8b7ff516d100b29acda77b434de63001e0d511964de7dca7ecce2e12c37faee2c93da8dc15f62cc02d28bcae28d2f23db4a74335a8bc75156c7d274ee12b643ecdbdf8495e74b1b047a88ea485601f60c3cf62d2f0467eabf102c3ddeba0b411849eded1748d0c4d055a575ecce52b0e3f5ef55564a68ba72919ee8ab5019845a1484ea957a8b31dc62cda9ffdfa9df9346fa9106aa569e8abbb9820ce858cbba6267d192583cec2e4a99d673e024c20454ace6443979a077ba9c3af58298c1b17dbc425bc7518d9552c616abdfe6275a62d218f93936fc31bf69a8a51365e0165a4c019985f9649c0fc1634a0f79898fe2887ebddb258579831fa823456f4b43e486db91fd1f4b5656e2a249e57360fc7b780a4e8b7853f74050c215593dc675a843cde8e8811f7c529227e3d97d631cda04cff99546fc771cd0c2fcbda63389bb9212d6b651ef8fa43e1ec49801fbe786b151534843c382257b184b3fa87b24c63db650287ef913145d9868c62103ee57f906989834d9365d38b99cade4c9c5b1425aee020206e7dc3a7969afb6a678ea4e89657fd15a84a828774ed8a54037cb35052690097f8dabbdcf68ffa3c998b9e82ae7c67e114d54331bf92894709312c41ea8b74d2d0ab433eb1b33d60627b2af0fc1404fd11f400ce88ca003c1a10edcce6970ac3e2f83a7946f95f78e7ef499b619fcd43a54788f179687fff5cadfffbfef8e5c107d9b9a1f5554144ff4fd15be7a9c7e5461b2ab05850c933b37ef0daae7c0427d8ec374627282886af49b071aaff417d0aadcfb6b187e053fb72ae74dab1a3bdeafbb41f286d9afe67cab37ad40176822cd6ae6856a84e01e6665a9cb28a10579131aae74f470d46d21206636875127d309130d1726ac9009f2abdc57907574e2ecb376d6733635c8dbc7e31a5208ecbed3f91f25167b991b304ca24e4763d0410273ba1e935fa0a78fe55700b678ffd6de46d3a2fb26e89af8dc96a157cf4eddfbbbe0776990f57891099878ca26a835ba61724a264dfad42639aafe1022e563b47925cc61f2d51b96d1d0a6a73ad522ae0a960e6a591a7fbf418bd25398e324b1e6bc5c1691e61e0168dbed3072c27073cef0a4e36cdf782ec3224ec8c23e0d48d1024e4bd62bf02904a214730cd3dc2aadf3106c335d9b538606aa9e19278fab72c126deb90c774612d2b9cfc66cd4da62d20285ba25267de60b624eebb24b207c063a8c5b7d59f6faf846e7533d03f9310417c09184fa34924562a92b194bf11e961f9c08d9be516903a51af13efd59512b9a37811188f59153e65a6d13de8da272b663b6479bd102ec5b5afc8945a1a538bcbf9c7104ad721f2b9a2a3378ad05dde03b4a99d2d32b5b536b48a27d778ff203f80f3456d385b7925f403a96177026ffaf131dd55fe1646969f04485dc4660095a589eceb66ed6a2685a65007da236a1b0cef543538cf21f3de34ed3c4976473800886c07b7688af81a46ba2323135c2e3db9e3f0b6c51acc27242037b19a94d4cdb66e2bf7597cdbf63515f0930995132327061751a14a7e2eec90e82796f8789e1dde3c1c33db8927eea47f7e1cfd420dccf3432e7b611b3f9d907a5fef12fb49f6b95581cfdde53972499a0154cd337626ede60069c5e8cca2b00bbaf97f6a1844805e4f882d0a13ce7bcbb3a0f96cc95598fd14541df9381190bef143e91678724d4732595c107bbe5d940d94cfbe84b9d1b734b4bde34b1b7f48b26bfdf51fe8c6f4a1bc4d19ae7ece6fb5c5bfb259849f69f32589890f2873e75c8907bd2a7b0bfe4af0610c814d7b08dade439f33b7c9446525419e4dd5d051dfe52601d6091741ed96ebfd149d32535802c1759b51d1d28a9d4e6186ced8049011a31991acd2df2e29aa37e7a8ffefbc8b54dfe403233d9b0f5249c353d3074acca4d27b3f8912837f3d779cbb03bb064d7c2bbce92d64c3803c6ca76e95a5988cb6be70cf48528a125898179fea120d31d4fdcb869220604cde6bfdb87831b2de7e4d1315173b31d4bac31174b6055db952093f55419612c72110d9f53f6f4d1331b7b95aea286dfd316515c9edda19d36298aa51db84fa359d523c5f6fb09e0d113dbe31a25f04fd767fd733b624f4ee39cbb4076cfe2a1749111ba0c8489775faeefef40720ea79e92b1bd1786ba8debdfe104c989a911b6d5b73f09de93135a9a5694d91daceeeed17f3f1a885248a232c37eae4c9e7866bb880ebd7bc1f96dd25a1142cc46be0020285abd87471318652b010aea83836b8470c6946ddc7992393fc534d55bd318e2c26e82ff89eb501629c67b25c82834eb39044b1a4ce2f6bae70f4c6d05941c4d855ad1cae1db6f4599c8d676c06f6550e605339f890414ef5725c22f1653d05fad492c0136958f42219e1fcfb19d880de7ca1253e785b0bbf93caabc6f14e3562e942a7727087d060e1a8368f51531f17bb67d8834db7ec83c29af29f888906de25da0b3c360f7996e5c964bbcf44cf2cc62d89e43c1f44f85c1889d931d234ce0219c7c33484463f6e3905fcb8dfde05e58b56deebf5a08f673198c83e1e67724b61d0459de1531429f9b2d84f499ef30ceea70e6aa3576115acab18768d9fe99c470d1487ba06419e05658ec108df4d734707455e660851dde5afc88ffc4a6fff6d72fc40abd62f0b16e20815eab6661a8d9e2c9577ba63150d9d3a3d7708a8bd56e0ee1b0c8aec70ef70ffdc8c4a2c6ee31d6c01a117dd491e62c69e5b61db274782e5a92bf4d89a65ae91e5382692dccd36dbdecae66d8fec3019fc297174638350b371b34da25057ab1ca1c7ff8c266dbaa57869caacb86706cdb522f0cedabcbf67e064f8b3abdb0e2023aeab53aed41b06e853e9fe9a8442debf2b4f26b731cba85fbb34f4fa8b183b66d8da668a9470713b2d7cddcd8ed10297cfdd9e95ddf4524639709bc1c34123e54df43c9f8407398b1c9da7e30f1b44921f683eeda31ef06f41feae855d92fea5b0d8ffb4249f943d819efbd86c96ddcb0717db7f9d621f5aed04f19d5e9db7606951e8f0bc52c05e2865015ef41ef89cb2fdcaf8ac320877586759b21ab0f6ebbdde311ddc1fcb4908e662e9293fdd26d413a5f2aeb536b57b295f19c41d613995ee33a95d6e7dfd72ccf9f5baa67956844e142c5b7040efdfb987484b81345ea95ec440942ec2ce39082aefe61ca52a30e5166621e4b48111254d56061769b060427249a034ebe28c007ff19e4751a77b5ed55d468c23fb15f7f972e94dc09d0ffa0be9383268029b4dd38a7f58204d7843bd43d129c215e3c326e90fd130cca244736d9f3be332246d528e987060f3cbca084dfc2163dc291d8609c093a4c7b63f1d7acd2f1f2d3fbf828627d44a457015cedae5025c33e74b02243547da40ffaefa7e3b10c349d3579cfea1fdb7a608c3e1fe909b25bafccf4c21119ae851127e22fc43b3cbab9f37b7696bffa554d885eb18c3d4b423a2ae315b7121a489ce6e1fee0edc32b1ebf462814cc015828172ff5cd0c7403fbf614a4ff241ec05c0e86adcf3e1ed6d1b5d34b3976d1c7d3f5993d5a06cc2dfe2b3b626bc263e6168780a96e91251e68e0cc4dbb4f77443e71d3eb30a291d5e5b8122a856c6d3823e2017f1e893464dd040b30463a7ac83dfb22825af350d86e2dcbae6376b497c5cb13e85babcd7f9ceea12f52543d075cd57d4416f32e2ac9c714b597291374d557ef65181897846305cb2a9fcd8635280ece8d4564d00e837aa5781495efe55de6bc2ae0744548c86a6db78f6d09f0b7f01f629afffa339c96d090e34d8e88bab0d34152c293eb33dff010a253318f1b9516e07f78079cb7a3abd3354cc23c863bc97599878488949f31b0ee195d98520bb3b70fbfaa814faa035a299044df1ffa11c1ef26c546cdea12b4d8cf980824d415e19d3f223a6482d798dd0ff7d82e6f83e4af138425c9b97cbac3928c4ec4e8c889e4548e7890663c4992d7a15377af301a35b9bb8863e3b560fa2e2fae3bdd91f2ef7610c515564705e07fa018553bb9e4c6d95c4390ec5fdb60c02b33929aaa6be697e868ff136e2d1fc1a92b834a0e44627ec7576bfa3e94dc9c8dc21604a58a3a75bebc0cd51677224f581197a0870441ae47bf8d7888575b3b340abd263e29e11163894a76152377499473d5ec5bd0e3eca124df56f09b1e2835e3fe859f7ce74f54a43db9b747db54e918a644695c51bc38819efc25ca5c946175e6d8792d0e52cc7b7062ccc9ed1186bf6bead80215818123d536320acc9fc934eadaf3f5a41dd357a66cf1588633fa8a83984e46d88bb39141be5c6aeb3c86f4ee237c09d13227ee0b44e8347f3d95770177b13e7ed2aa3a02541f115a20f2253bc36ed20ded18b9af09900d01236b32f136b6d3ea020debacbeed27afff517f3a536dae3cb279252047de3bf6794ae9b135c923010613db97d8b05625fcb3bcbd07d3815c3a9f2131de62dc76390bb9c2c848eb46fe893f39948cea4b376faf2d01ef15ce0ae97baf1b958d864d3693c2035d42e2e379a6079ce9b198f286994e3703e53eb4b1ce7f4ae1ffd514637314cf0cd8fd3df506e62739d81974447c44e39e4aa70cdeb048fe55f9f9d81ab27e29465c7a0a3a43932849c53e571c231ed02b4fb045fe7928baad9e9aa375ac92786fc08785b88c07c0f4d91af5e10aeb5dfd7bcbdf15dec3c134488ec0e7e73c281c5e8b909a59e4850338bfb67259ae9da952e63a32138863e7b17bc4d76b54a30ae506ed43112b09ec3a59a827cce5f8d92fe8bf3d7b37d005418b5f90f20058fc42e5a130e18765f9f6586552cd9c516d0f693e67fc69208413836d3e0ec678ed3c57a895d39b8766759ad971c92ee329212e4fe289527fe6200afdbddbf7eefef742df069f2857f208f255c374bca5068c5f434700c2c1d2ebd5ba0190732912808003b1698c758e0e2cb8c9e06e8ac8b3469468e5fa0490803da83241d6fb2ce78352aba514f9541d69791b8cc469816393d55e605ac5a22720f039902d22ab79852af08ca05f368afb0bc0083b58b3a7119a222ad173fb95fda4be5591e74d6a345cf93138bf811d24aaa17126b84af01d711b20ed80f5099340b046c7b7b1cfbded98192b1f4ab54b66ff06cc91d6e773e97bc59b224647eea1f4a5509fff59e193a84f4c7742833d4a4c09ae039c25533c118bcdf764724e5e2faa5604bc103a6831ba9742024b18dcad653d68c07c0b0e63d00e6ff81fd4dd56475f3aeae6ed6bfec142def35f9473b474a7263fe27295f940bb0409faa116e898103cae20af6e530bb3f618f2a9cc2fb1bf2d5772b10cc342ca33b7369c904810e9ef064be720c430dc4dd659a2666961ddb74f10524a4062fb28a2f9fa7c6e0b813e363d58804a21bf33c3058f8b78a554a3cb77f652aaa44d3ffa9bd6c2b7100c0f39cc04f3df00ffa5db8d1ac2cdd560a7c02a67445e003994d97d39ebbea49b089b53c5ec0b39bea56b43630dbc02ae82fd03a953e85b484f444eeb3c7ac313114a7bbbe0dc8fef8dfd84b73ca659ec4be315ca5de7c55c292985fcd0eec3b50d2085e29aac334b8996f9077151ca6dae5d23e9b26e64b49dcb753552d4dd9e2701295e5a36e272ed5072967ee58f3ac956791337d3494fdd704c2a0c0897de138725249a302fcb68990c466e2aad89914669bc570e155f5dcb4674acf97ef395b9aa57ff131afbfa9874c2c4db7a9e483c2ae5507aa335c24b8fdff7f6d7d095973b38cee5cf592380fe4221d8906aac9ce5167a7b1c566e4163c54755554fd342428da0091f02dafd93889eb287c741a7b78a504ba2cc381aa9038aec13a21042e95280728d928da8a2e7cfb5c81fa7e029a2987f40081e0d579a5c40664f8355b90327a953abfae37febdf653c6a28137db328cad8992db607b933cebf406ecfa3381298482ab643650d5a7fabcdbcbe82f632fd9f9334e65236b50a72febfddd2e9126a1c381ca843f748bc7d971d0a2ad8d769100bdc9dcb3a5ca1b61b72c2ed26ee270b1127357060ae8feeb013337d0ade6b874e9d4e6bdf2eed593d7a7e895a870c4422b79190f8477831a4f51b0e09bca3c0dd21819de59aec47fa4c4d07865da4a3bc9a1a4d68b5c5e50a3021c181e00ce6f0815a3dce19d5134eba10ce07bc423ef2ab29a5161e4a94e25904192f3ef5d70e2e7578195fa34f23b0aab2c5f8a74911ac47d71fd5711a986ab64a8b9e3a879b9f9807609d685df3e21b7468eb52071f192c867a7910e01d44dfd7d3ced5bde309eb4b5f1dce3b1d2ab9c7058d9ec7b3cfd6a1773e4fd1ffeb0d0d5e063ba95221fe73f5ad26fdb30ec028cc827e1685eaed728f962246ff9af263b3ce89ba5fe45397bbf9c20396ce78bb7865cc3564ba1aa803697796b8b1218a5370ebcd36ea341643344192bfecd00e84be2b5fadd04e44f7e26d6b0e61e8303dd9aa9a541ff937e07ea9978e4729fb2d814fa1b50eb957b2c0bfc179b43c5749c9842adf68e5243edcfc5b71c4ad18fdf3f4dc8f7b14d02ca909a29ca8084205e7e3fdfed399feb641a5e905892a82a8eb0d8880ebbcd1a2330170500a273223a5cc3cd81a40563cc466e67eedd8e7efdb0176384e649a4f086f41e86c333c8a05c2e000f680874cc3b04d60a078caba7f0f9170e188d4d15b6ed0bc3165647b976ba9fd422f00f2fe76c4a8660c26f65f262ea7739841255fbba06e1d69b987df3aa11adbf5e5a7ee5979efd2ce13e107bf3efe686af298ebd5babc7f25d8c13fa766b28fa9b95ff5cea399751e369092c60a2a223f79efcd7d02bf01b0bbdc09b912d2450532641de18aadf46e578e716500b38fdf0cf3768ae2b40ae09d9aae9fcef81256026d2f9d150796883046d51a316b8169f35b15bde663df300e7fd62b6e0692c920dc87018ade00bc1212d731299264936282906382749f76d0e2682ac655dcd2565b9bec84bd61ecc5c3af1e30ddc64c89bc281907172fecb2fe7f1a11758008793bd4fcc425b3b9f769841d3beef6e3ef7df78c8cbdb28f4d60e08a58d57a8bbf7ac22b7688aef9e9f2251ada05c334da9572a67d7e317d96f9299d7949ea817020596b692d155fd155b61d997e636c718feb622adaebc994234ebef753dcab2f33d4c83c0c741306d260c03220497cb049865e115dd3aaee25918bd507f2a8c5a957ddbdffeac7c0535eecbef66f32110f567977e4f1965b15c2060e5066df436f59047f3620afee66fd87e47e66dd6cb8f66c849f9dc2b9f3cfef5a9d806ad739b5a7ab8281fe69c7b4ff04b0393eaa3da60d99789980af66737c45ab59e58ae005fc3c295f99b3d436e9b38ed38e88931cd0e40d23882b3a2a4b11f24332245b62a9452a3747f13231db6e1cee689573deb80f1b87ff911a27765d8a9ce33175664da5760d34bb1df0b581661fabf044c6494e61ab5d91206d0b14e9ef714e3981eb4ce16d8f8e5ccabc3879859584b0d28c4ef2c055fbe7cf0dd566922121909be9e0bf70b8b378e129573d7a2949b64ec6ecef7afff51682fc5a76395d9367edb40a14ff78fa5fd12d6aed65a57e3d70dd7a24c6fcc20d26c7f5616504bc3905a59f964f90df384a203d369a839ba9d684ef3ed452ef1d527fdf00d75b2f3607dce48df4ff030480d811f681c46265e699fac3dd870653271aa4cd83c896c43f09a7afaa0b7a7773c611959ab1be6c970c7347037235e20b27049a7559d9c2ce7c78edf61113292540ff9c2b081d6769faf9cfd8d981b576a1c400124ab99e386dce608b4a49d4408bbf986c7dcd791ffa2685e1953bcb00b4105ea3c0bbe5098d03c6443478ee75f7839a80113d46d53553e2d71ce297e537bbe679892e7c54d4e58c9ab0191ab59b55a463f5dbe70300febe49b52ad8ff10cdda13b8dbaf7e05c86889ae46453204cc97f6397f0236ec97d31bf9089fc21593914fc0d2ea68c7c50cc09caa96fa67b3d7f9ae46d0b0b629d0c31b91c0d78d56d592ff97179bf231e51652d011f440627c94c03b16196d41c7743e8143b2cc9e9542b10a49a42470b8eed31f94461059c56f9f36bfa3ae50d37ff8cb5552f01953d01fde3face65627cb8b192d7962a462acbd46c7c413b3fe8115fb60dc360a29c3c5f00f9480712d0ade49340574cbcf0eb1519e5bddb36e76b6185d4165dfbcfcd586f4f7f1a17ae52d603c2250a4ba14dbecb995f6765968ea331f59b2ccdfe4c13f5abbcd8b53c7f3b08ea60555ed8db3a3ad9baf9f1c6867e2e58d3157eca299f1330fd993cfb804296806fc06c2ffac74507db8efe11462673220dbc5692eed6821a88a53b73b0cb1da408e1c2505da852d52c39aae55fa2cf36295f179634f0da757d5cf374423bffe6e649822a13b8c7a82c388deb6f2df1a3283d7df63aa32c1e96a06e03d0c1dda6516b77aa9dbdbbf32cd7f47b344e3a4a1fa7c56c9ad0ec309492c73dbcfb9c15ab651b71ffbb439d24a269521f799ca1f5873e1a0e850324f43babb0da43d48ac6084625f6aa0470d0c131ba8eddfc2c066c1098ac9515118fa56552eb3b32a79e5d36335479dfd796d82a853a3d78ce300cd201c92234877d84b4170b1de997cf484c29cb93b37f4c9cd2ef416491f54e93f79a6ad7c27bbee5ba5864b78acb2fd8359f1a6df9c0b9658d26d34fd5b420d639fa82f58f4ebb8f7e896342cb197afd5462b9a5eb28a56f78ad219dc3f65415e6a92b98ecc213ed8adf822289832f9bbf764dba0429ee1c7a685b75f2affa3c00929fb6a64590453380570ad23c723b0e60debc13db977921acf5866a7ebf976a0a5229e1ad3313d74269ea6046d70f543b0083df9972c82330ef3a2e827049f6dfbb07ffc67ef7c874fa5dcb5501cbff750719f9a7b762c7859092fe383f9656bd619ce33284afbf2cdf6d45a971db3752005d7f3433c3777ddf281bcc139eae2f2e597530e1dcc7e8683bff7bffe894769077632915ddc4edaa107936c48dfbe7daa309943a8757d594ce8c971605fb218e471a392dab4e8a1ff030089ae8c8d26dd827c87258b50ac002141ae0e29d519deb7a920673a9d6e24ff2403b78778f505c265a9d140003dc554009c693500efd8d2b1d78d8427352fd301395a38a588a8df3ee30a81f5d2c4190703759e9e3293d44e62c7b4cdf8b1f18ab74a204fc73baf12992a14021277107ccc6dfab0145aee4e436696f00b6699294a3e107d4b53b0bab14c97b58c8c9436e4a52f6ceeb9274f354c784d476ede92db7db139217af64f4d2c5c70acd8d819f6464489f4b1c371b7adaa34847ef2030f74fd5ec5e07d1781165c8072b32fbdd39df20311bb77e26522e46f995b3543747857a6c6647248671831708329effcc303163811071eaa91876bcbb1e6be62f2dfa4a05237ee051d455384dd2ceb82dc83dcc22518adc4d93961a8f44b791def7899226a81e8ca8bf5d70121a4d8ca889f79b2797951ba232892a985d73be37da94f34b7f3cfc448893796133370708d797138a635279e33151c91b0e740fd635e8d5faa5bca2ff5ae7845fbd9853a9b2df0a4074e08d36a8739ecb4589a3d9b8e8b9da9f4b1834f79b8faf6cdf7b7fdfeb2d3d3be38a6862a9966d431e1d038c5b975cf9204126ddb5432f59e0788d7aff0f3f2b0e71c45b9315c1c76f1cb290258e9fb4bce36bc7c3546c2690c1cdd258ebd1f8edd4deed7949bf20c20693ca0788ccd24eca6d85df22ee8bf4adb2b61d4952e42cb8d90129c8e1f53ac0fe946bcc749a160bcca8e0ba6ef5da1dcaf9a91d95ecb80cf74bb687d44701e6e5c755301a0c8ba58bf43f2268ac181910e217371eeae472db99b2dee60056bab6ae444e40aba55b2f291f5d294673e6647903ff2d19ca1d73a6fb7e9dc62659443d5ae139c80970aaeb4982ccb58e253032a6dc5b508f6ec9d47de3c35e711d5ee3efcf8526a486df3fb8c0b6a31ba7f1fd65507e2b3849cf1bcdbc7e88eab624057000702c8878546634e434ea9f2fb105c9518031cc53b1802f0cb989eccf47f4ba7e9af7c5d75cfd9ce40918e48ebdb69c85769d48fde2908a4523258ca25becfe7dad3945a23a0aecbcba280d859fd72548e309f6c86312f31680cd85cd72f2f01f60b56e3f137ccd58a8b7c7ba59c3687abbe3d9d45b3abfaa42778be854c26db071c3783ac824272b4183f915532523448bb40103014910d1b2f27e831e69d1a24ae987229f598c15ee7a91bbdaa21cbb57a4200eb8c5c746afe7deaa77715b55fb7582941f70aa99bcddfa12439a051ae480fc693844270a359ef314a7b52d30a750ccbc71dddca77b4cc5c10158cfdf90800a02317c98ede38cf97184cbabd1c1be2429ea5bb1a944e04cf7824c68ab3e01e95a8aab2c8396d783436c9acd740fa0345525fde93608c295372e88d5ba22b0ebae3c6954eb8739d3f7c88442a8acb812c15c45d5bee066a4c98c3ecc90790662882869150996b4ca65e9f72e3b0134c41f3b9e5497f3f0329fb4425304aada07120291d28a7c2cf2e5d06fe60bafec63d78c7c6d314d910d3ed6f40542d4128d171c9ab33e43c0f0b7eb5c7ee4ca1415d51b47d82e52f4d2e8f2596fb168a03efd5a7e76e869c0675c0f875f7fd8cad2b7943bb6eab309c5d4489698cd1d80cca34ace0c4aee07aee83196bbc8b5b398f59ca8b9c1f0d52645d84ad04a5b7c8ac7ab9585f090e55dfe8d6ccfae63d40ed238c5c664acb49ef7d9750660f5130bbc8bd98838d02a31eb29960c46a4a36f0dfa3bf3af2ad4d52a8715e2375491fa5b8da50c88d4b8be64ec73050fc871ad416cd517961bf74b981437e8a94e743d1be887d6a7a955c97eb77be18feb92f000667459bed38f33d8732532fc6414946fb9beb8538c323f37753d2dd00cad387a30f185f521f3d3815e366753ac6fa6a64ae895ba3cfba346494ce380e0850f5b4580e82b5224ecc08b6e2013cf7572ad66db798c7225f8f79f8138132cc7aff405802617cb878dc2ad1c1183d29af3bdd30ace37de238d9588afa4f177089d0bcc1b5efa934ccccdd9bfdf822716b85a94cb16797212afd3d7a2c83f5cc7a134a5eb27d90d78739d9ef7cfa308a1bb904fc42761fd5b399a63a0d6d1bb9fcb90e251f705208c151f027e9999374f2349f5fb426ddd01cf95d250f7bcd6824d88556fb537108fea5db12f832874ff963c6a42cf67a3ac4a18d351e67bca1e6d2ad3eead8e826d523d61d2b162871e47ca06186425ea7d92abdeceeb16396d81fadb7cba41b169f974e2d6c3effc13b4985092b46ce65e12f6184871567d6fc12559879d66a259f68508a5f23bde237ff473fc98a81e70b62babfb999e92f6706ba054acdcdc8685ac2d5bab2b0c54f28e4890faa0544b4c30a83fc0ddbbdba18e41efa86fef26fa5a803c86cc969316ff6de3da11e9f22dd590e2b91cdb9862d815aecd02ee76c74e7d97d029af3e5e767cfb64676c529e7be1c2de63e067ff561d964b9431694e6e49f17faf3ea0798d98a143b8513678d965646873b0c3b93342b6c493b944bb79b7eea527363c22d24cd28fe4aa3557e12124f91b6eb132e9019e35d3535984bb982d0992ccc5004fb5215bdbf7b5f24f33a6471d5272819308c7c88a83998957da9343ebf7252b955709d3b33fb738845b811f373f43e9d5f66d4982ef1eaf657340ce5661909a0957513c9a705c6b2c83b74afce8d95f2c08abe61fd7e7a3f91bd7b3b6f7e371ac0cbcc18e0a2b2444106fe63f6d00e2d059e5200029b28cbfaf15899b5f52ac208261f3fd52e2f9487fea92601efeb05ec5e62ad40d144ce43365c0aeafc4c9b47890e18029331fc01ce2003b0b7b2d4947f336fcf1d3716db6f1ea8607b317e6a32b4ab651305bb9c95e4d6c313b38e31976286dbdeacddafdb251782acc7ede1523c3a4683a61b3b478d50eefba528a5e823a0a1d8de956afb8fbbc80ebe72b1296689dcdfc73283013f36a1b0e5cea0c1a0c9a3397d5120c68c99f5a4da917c6b5b65ada68bc79c1899664015cd27951dbad5dab6120e9ce81074010098ba7aa63894014cfc39d7b6b3b9fd91353384a13c93ada1b5b0edda9b87a3100f738ae0f59266804d36f4f46eced686b73d9fb5df781f4e4ac6ea369f391498a218b9319f50cc6fb58f419ed41a811b15578a4949c921411e446aff59e8589d3435a0eafc804b1e3d55c0352edd17ffa2ba88e4a1c27b42b462fbdf7e11bd8c0f282eeaec046219b74251a3593e45c0b6b4dc7c78529dde7bf740aa2bcb0e91a404277648c4cfbb58572d05d558bc84b0d793deb7f345f6cd5ba06c8d49d8193bf2ad3a99f2e8600b9e131a37bce1af229774f68d711e33ff91c763ce43691c295b5743423950ce0de7226db94fdc02aa2b1ddea94068d86681a7d596fa5236471ab3f3d5d8d324fe8afdf8af4672da18e6f4c3bb0a58949ef4e1be2f78b0d85831bfe13d5e21202f99febfec5c9347085983e6be53c14fba43f1772acf26de0fcb78bcbf9d8a20e6dcbd20ab84a2e791d0a5129893c3367a129c4f4bc452e9ce3c61a97db7d359af97c4a912efb9e87d556f883d2367c5b7de17562d9e57ca5e8e7bc5ec49a3b16cbd62f178063a03efd9a0335a7a0971fd8f7eac67914104b0ad0f2a94e23d9a6dacbe7e02d1a0c668870427793538380e168f1b717948c1b8a4427279558fc6a7df71cf2c725234f32c1ad5a5b1692ac9d05b1d3762b17c765dea96e0ff1b6010ed2cea962c448b9909577a06885fed59f2d505b191fe918baab75da8ea61024cfacaf5e7c21a37277701b9dd93ebb28b8487137d7f89ab715d01ea5d72ba3e38702e46d5f1d732207eb8732e89d15130d654f97a083df2fc4869046e7926e3353718cdf7cc8a1a0be5afa99e90ab2265fe72d0b4aa4572244be55c43342d9a03454b152041a8220a829be4d4954634b57498f750d84452ccf4b19bed6880c5fac82e429465d411b206c7d016e5d951a9c6494b3d9e4d476173dec7682c09272ba08abee6f31290c08ee948c8d0d248bef39ae367451e1be1ccd2dd98ac62c28adc4d49e1c4c131532a11f4d8c91b56957088ffe9ba6e5f93168d4be0084feaeff129222c422bbe40936cd967fffe7fd3f603c46d9e9a2b0abee6b406fc1ee26b741b71658b8bff80cb448b2ec10124afe4059386212dd4ea88db803c25da5d6f59bc3860cd71b115ee4ad55c442a7d15085cc7c7b276462f7ca83c3da0ca6131a1818345aecd1811fb34d4ed8ae5236795119b939f28471caf1c285950f393bf1b0b3f321cc2feed500f01c37b7e9b1e009ec7bcff93e076d75b3aa074f7d8ef41c7ab8ae1c6e33221a89db3dd1527cb33978d8673313a80063b8dece93a0173df2188aee8ca52819cfb86285a839da53c7959327d1aee737fec3a060d47067d1e1cc40ace1396dc01e9c12689045a01ca6b4ceb4dc1dec6e7241518363f504dfd3351bae54cadf0af31d53b5ac762afe12652b0fde5a484e08b0eb5d28985d970610662aecc5c230e6b01d00ff970062ae958f956440c93ad493a3b71c2eb2a540cff636eade79e1f02845c42015192ede1fd93ed6fa75328d932d6b4db9969b4acaec313ce2a70b78d8b602c7c2995b99473527871c92f19f0a6a57adf674273bd420333fc89c76cf6304d1de26ff402332ab3d150a68664eb23d1fccb33b1bc23426ffdbc98d99fa1e0e87aa3aea855c58fdbd20ee4108d2cc6eae97bc1f391719dace3f1169ab8fa1f570dd85c16115aaa6d6f836704a1f694d0c9380a5d072afeab026e77c5399f2539dc8c45a4364ca7fb02d1e62d50b0659ae0c7b523c1acf981d90ae53d83ede1214bdac02e77325a97f1c2c345c94b68f6305e90619304af5412d2b372cd05f9aad9195b00b2114c08f3c3fc1b3a8267bf37836ec7845f6058d44ed8c063258f505903ae1eea2158126caf91e0ab6d6e8992501516fb29801dfcd79a4ae02e3f4f8ff42684ec715c037564c1e26ad3c080e2ed0e761d085c98aac6b2ff75de1de55700dfabd9c3b5353e2fa979e280984627e3fc75b9457abdebc9428e0b3567d9f51e79ebb34cbf7c562028b03f4e3488d0bc63cd6882f04cfbd46dfe774a35c9cab9a19c6a79422b6431703b78bc335cfcdf8ae4705d5c078d0c1a6f072fce79e51d12955c9d96787a24e853ccc30f940624f75cf11f99c1aeed00b8a2cdd7ef5b42851432d8da70fed2913e0e12f595448da075799b0e8eed93d9b544151d856a8cd488d7395ec37acf1ef57a5a88030e7f53e1d61fc7cfaed96cd5c0257f6c0e2aa8199a32d2bdc5ab8bfc7eaf61c4680c595948abd7b06f6044293d4923e10ee0bed9093203140159f913d1db77fd367c643bdab94905084b4eff43f6f55f12830a9ce46ed20788f3f2038bdbf5d6985e4fd7022b3dfc78ac195ce0813c7523698865a43efe7feb19ccad6f7db3397d9aeed76c1dece35e68bec0cfe2eadc151b77f30d0766abafe321a9bbca4de9a445cd1f200062c61b5aa374728e7059b538a5b02a92144e94ed624b218742acca86f754fe6b5411846f8c6480cc279ab6da654997409944e541069c3ef564ebdd9cd0dca0eb9b321129ee2b091a0b8eb1bb78dc0c80e2b525a3caa2e5ee4002b98524905a028fc8c5df91cd2e338c9057a3e62c242908cb4b2ae7819a8a8f9db617e05b0a4d9451a3556867fc912df783245b0f6d1f379f9d25ac68808fe3f0d7f9eefc0124be5c738d2f011c60223d0502706e1166db750c534c6fd3a91a8b36719b3b03770157a83a4c1011296e083b42d0a061ebdbf1520446159c16a1c7f90b33d7bff68f107e3b531ccd8aa6f33858bf16bcc6f4b4fdc42a1f757049f1c0049371a01b3e31806c8a7b0597be1b1533e1a8eb4c73215e73d6a11cd75b54d30bc9cf2ab7e8de0b1b8ffc1c4285dee6ca86c7fbdbb2d7c415c4d904d570605988ccb5ba30111290569c7ecc3baf6d0d5631a87d392096d17b4a43ce37500236e182ff85f47ee87ffdc8bf5adeae9d468b9e35e7d412759c7fa0da360e42cbe6736d1ad29c44a84c6e09f5b63a5b092631ee62e0d9c31eba2295ac6570a261f41184c1d66fc45dcff2a336618c2f55c38431336b7961fcaf13466060b3dead6807973b17de60467d4653d4ba745f433f630ea5b462a81763630f4ebc31921be762f9bd158a3a67c11395a1778335ba4efeb8f6372c13441d057eb2958d404903ef7f2fe71c81232b46fc3f6eae7aae35b983674dbeb1f15e86e83ae6e1745f31d8a37fd3557d5492796976d223a5fc1cb320bf9dff1144dcbb893fbb885394e5e78e63d4c752ef802450b4b9be0df8587c205a36b07c30399cd02c0d3763ea6002d0aa7ff7e6bcbe838d76ac7c5805dfa8b16f6d7ce7ac22991221c2d54d5c166be38ce772555dfcefa2f204a69f4920f7f1d046d06c4b994d19cad726e8d4f6a2a98d36d81b6657c127b115d17d725aa686f596b04ecf0f2ac44efc9cf85b737ecb5633b7774de596627b0ecf2f27f1d5569562a0705ede2303fec84f2941fc78ff898602dd061431963d656a4166c4c5dfbc960ddfe236a69c56d393b26d83c052091dca8b424c2e281298d6b0f7d941f07aa54b73cc30f0e54e127d1cbe062a30605c8181dd1a895afefae018753d5cc777fbdffafc555837781c80c2e9c5610930bbee13a2a3ab1ad1643f7b8e4db142dd843598f6a3c736ca78f883cf82a586abd46a032d06f808eba74b13bc2d668acf41dccefeaf5f8d7d1775f71f0ab72af2b74fb62d73ae15b5f9b7c5ba8cd4d5d7adc98e222339940e5952bceede0012e62fe1918f82fa27f95cd85c46c4ccbf3e994ba8e83e6c47f81144850260a427965d6f8424bb12db435a1e39038a1aa11a6f170229668ec32ad683c5f984d80fc32122be805e582891956fa61b8218ee309846ad3baa72c9da0f9e319c77f07c4fe1e20f535addffda49964d0c962d12f3c606ca7eecef9e4b22260204080c3cc1d620bb8af2179574c47cfa0afa508803e0050bf02801eba698cfb3c7b7f611e792fa465fc908582193cc6b97546b670237619bb97bc668516a580c028018fb6c98efdfdb84a06a77cf2084d2e8e18804a621fa6deb26825b475b81be9199883df54d5f2fc074e956b6e48e678e2a03d7b6b01cf0be84daac59ad409178b20918341391b930d988687c44cd58bd979489fd6aafd4ebd13dce3d4063afa24c15921fd6e23c16cda2fda9a9c2043ff8138867b67ddd4af31a75cbc234fe29dc5c0038cf5274b8c1316c8cb735337887c02a981131c38eb8be4324f7f629d0319ed7e5633ac168688a3c9569d8a0d42e78db095ff8cfed83d08c1741ef7618779da0031ef37ee6f813fdc3e40f911cf5ccacf3a789e68f61f759582073081f838c786aa1bc5ec8925f28d76e94952ddf854aa735958c05b3943121dee3a140ebfa6b51f9488148ce203ab5ff3b97c24045a14e54aefe0dffd72f8cd55e32111ab54dccf5ce2167ad2cfa869debae779a894a8b6635c76dd23a41b4be1115a913d68c9ab06fdcdb790210ed63cb3baec9867da645ab5db57f5cc9fbd5bd1f5ce592591bc0bc7879635483cf1a2a469748a34e4b84a5767746c1672fae4da831aee75599441aea2c2c487c0794a36726a8cc19b2cc2cbccf5eb908926e9a4bae1183629065a88d953b8231b2229383d9ea12edc9f3dcd9e1b54096002edb54cc9384d69535a19d6ca839fe488b6d6d43ccb68298ae1874ce59ab9ec5db4191b65aec5bfc543c0f761c9bc200e89f53254af5c5d9aa6ee156e03432f9978759a78625c4f09176bc5b682730da5f8c8176c06b685e5c7c124d37d4c5da2742d96fc622a7dca34013460b352f353343adde322c5412854945bff077053c096d5bf3c97112c667536b8bcda4d8a0eaedb97773535c0cc6e2645e1fa145f9c532e18148b4ce696344d897bb0bf2a1a87ee100c517f3b27d3f37b2d6f37a0c4b8c8875e9418d524fde18ef93709bd826c01574e5e1e0d9ccf7a6356878a92960a2be16e527f8fa84d08d25696796f11a1c74e55d115d84b508793fb0d1d89e14f77cf40a592117d54e8afa9a123d64cada0b1f8297d258687ac478bd48fe7d72dcf0f753f2eff3bf7047396e721cbc4c8abaa930a28b1bf2e8a9fd99c84cf60c733141f45ce56f1bf70ca5206001b36f660f7c2444e87e786c00f5fed3698861a2ef19c41fe090a1aeca9657cccfe04946809cd56b776672cf88d21311b3a4779bf242933d558163919f22ad04a6002537988a934d1ea4a4462c5c80f67cefedc7776e48add9c430003f1b5f610ff5c817cb0119840fc4f0787becadae4c4bdcca49b7e76e29c5d76c4c80ae26f13a5d431e64a85eb190d41b5324cb79bd1173cd19105e73ddfaf3e2c0a93a926dc90e319ff9940c6eb5490adda6fa7c11a53709fe56a7fc6d78a578d4714e97c0b91e2f5208cc57cd85202429ca8aae4354223131d611471b3518223fc8b7196510732d7f5e9ced438f9cbdd7d4d0a7a40622bf27dd415392433c860da28e5da91803dd18a9c0dd34233fc9cd21f6dfa728ce058c54a3f35a0a7a800e5d908fdee951b677e8fe6c27302a9063dbf91ebe167e3977859be1c87b7c56996b94eb768128881f91f9b763cb0d16798cad3758d9d426ff55e7361999a4967fd1efaeb06ffe0abe46bfcec05a4e645b8b0fe9ae8f37b80f9e3ef52bb31b8e461b7e7121dd8fc0d9e8a605f63a6b12e0a41a31226a240ac5ff3f6f092b5e9c7ffd6dcd3778a9114c8466fa75624d36ddc2b33e82371e913f69ba4e1880c49e837466706a678360ee7472a5e42fa61e5c8e8e372127a8313c971d38834cd93a8bef4d9735cde938b7fa305199f0ec65f0b73dd97b5f2c5e802888446ce33c6501854a0970e950c52544df2e13eb97e5ffa5a1e426e56c54a88474911b606da8b085f7b88cabbe9f00b92f36cf382f7bcb5d25e2eff9740cd4f086f5262800a375b13e5a6f963fb1667c162d7a1d1f3df2c5c2c5eabd0f9566342efb3caf6ddcca4204567695de358ba031676187b23a889eebd05f76184d0b1f83a4815cb8799ca30bf1cdf3a0675f1f12a41600d0037f89bdf6d6601c3b05a046ae6287b097a6095d5d411278ba0add4c256a6b6dd706b5d676c250cd642a5fa1d997334b90550fdacc98f232d647c611d4d21818e5cc12ba654b7fa6cb0efb81a5a906e508f01934c96e3b2709c909f68db291f080636965eca8423a19260339be048d80c6fe8bc73839b533f76767b60bc9a83a794a4fd3f257a40219e5286a63e9b97e219894a01f523f7d4456512a9d3b6f9965659b78d524e3467955f5098c1b3285a3e4953ad374b53c9aeb221026fbfc34876a3f554671e9c79ce42367a2bc5c99feef7408eff8c8ee1f835e5308a755ca836afa19e81ac844b65bc0fe3aef5b7b5d36f25b6700beb56181b1ca12b791e2a8354a8ee8839584cb57017bb0719bd662495e71b9c83ed31e806aa8e5ba2b9bb577f68eb0ef2fac72ecdc9efea3ce606b0d64dc1bc4e1814e5224214e393ef5bbcd37af71e58f1cb20edb9e25d172ac7bc63ab01efc28bb84a851dcc6f58ddb9657c7ca30f86e8d639963359dbd9dd75cc717a938e999b654392c09b6d07d50e4fb1b803afbafc2c962f0580db51c32a9f1c1cc435bafab4ad4eb4aad66581ab3fd14213dfc10a97f47cec738168f1c3a0261c46a8cc2fc69192a4713fe5830d798b020840aa744cd53e8b5aa1296fc4f1912e31c37e24fde65bfdee4d383bf059ff4c1e5fb5b2be63a1309f0cc2123df66078791eafec18b6737bd4d5877f8972d2d00101cbf43c3f133d8e8059c339620a470cdda7cdc80a580f107376013ee37e99bdae6bebf34d5beccdac6149e368f8e62c1e2ee9abd67ce09ac7d38a173268e6607ec7156f5c3907436f4decfff1d1575c7514ca1fd647c34bef35db5afc308bfe0377d027bbd58df2a19ccaf838c8df808e3aaad4d9b9abf0c7d2c41a33f9b3af9cc73c9e3933bbe1f5f51babdc754c6ca7da5523f04a15f7012b47a3fd9103017fe52526965ff62d1059736e11371b3c4e44a9c6d7492a3c42045b7df05f478ef99333a3287d4589ef9bc07807e7c23f6c6de6d2112c8bbcea6560148945bf2e1d4d2c533b21ea098b411deae86aab7742c66bab1fc4bed1941b7d5b3d34612e9bd3f9ad5dbfb3f522330b21261c9b5ea3c3c24f45f4858b0f7d884fdc1847d6fd33f118efe824b421b55f7ff20dedcaee24d9888fad4499d3f8ed5f84dd8db54b7e00d5640f5022424fc0d97eb34ff5751c5d8dfb4e8b4d1dce9022cddc960f1a0b660548cb48d26a5550a699568aaf0c9cc16ac6b2e940a0a862341a6fda8ce031523b37f0bc7b89934b94cfe429cc072a4720942a8e55c0138edf74de02a642f7e174d1b54d7d0c2619947ea997442e23ecf8bc81085a6e69a7749fceefedbae14ab6da22d5dfa25e41b4060c73821fffc55e17ce387a796f604730288d7f67b378d981a040db3e3667b16c0f9798f2d86c1c4429184f54e6564d2b35ee1b12846465e466cc9b8cca1fa2d7a952992fb2238fb064211bb9e75508d6573ac7b9930e6fa78fc25399d8c7c0e390c911d286cc5ebcb7e65509d544e4d665c1dfcf054af5d7a547b66fda9544e15b83198715d6d70a6aefc4a478f0522b04f34f164e7a5a7c49a8f4ee84c306c061032acbb69347d715d4e665e4ebae8cb1adc5a1913d1c66a92633bd11fa9b1b7c32095a20d50fa91b0b474ec555c3a3aea4ec7190da311f87509fbc4ccb469774387d2e47ecca3a05b764b09a9fb2ba1c15992d4d0608339eb949cec19be6e2210f0e645c8d37c0de296de6fe92bcfa92fa5a25f398c4da4b0e809c09a0f10f8f7050643d8108282ae33c165b2d9cdc11132083a258e24829d50781b66cad3b74787484a768f7877ee336a3e4efb685915691bcdfc0eac93da4cd0c9424fac1c1c2fad4232b8775960e616695b3ca79d3dbca42e453d4bdc6db4838b33e661e93089d4fc7c13ed704a6a1906337a4bf209dbedb96adea45036d4db8df9cf8fcde29904bb954e706a6a8770dc728c9257b3e9745f13cfe723a2b1d182435b0a27332bc68bf3422fde83aa0e4658426be49957fd10b8e4101cd575624588e1032893ae415b9c49a4763809cd8bd6d07f59ed518cfb8570a49a0a3ef94eb852fab54e1e3ad9886568118031a55d277dfa94cf72828bee2fb630c632b64e61c8667883871ad40f5692b726c8d6aa3b10019a8c5f2184a911c44877aabce3927135eb4ffa7af3666f250f227bc385819098ada64ecab1db39e7a54afeeb77fccadc7ac1883a86fa70eb5902fd5d970d406954cf78605eeb2553e54c807f4dd4bf607aea597c18d54e5a4f472710cf437a297677d3baf888f4bc05b8eb352ef1bfebbb074103767583ce4c70a89074f37fdf504e0488215a513cbeddc1b2b074a9af0668aec09fe7fc4cc1ff34d5e2e2f55be82e9b382f8b2b3cebd8d1ee7f8ad3212f640d25637e35efa48494ede1d1c22ca442fb6cf95f63113111b2568a5c2e755d58a71680cd0bc1a8a9d2c89a52b203fa7596c7fe21a8c745ac33a08121d2e2f36901788599693c6fb9af54b21ad67483906ac27b6f5f8e89b81f72743746748bf02061c73a51e6326f89e9787befbb972189a59d416865c41830ede1d7268f9a4f0d620483e7becbe90515965e387c96e7446c93a51634d6ba0df9fdd414bc98096da44b56fa0d2b0656c9957cce79a79ca30f18f0d6b1d52f068d808de67c9552bebfb0784a411ffeaff1b06650aa923d18934fba9e17e0bb234deb7566854ba2d7008509ce84f4586ddca0730a9fab41d58ba62d42b41543fa487c7915ce4852be380ddb491ba963d26f984404fa77f00b268af436fc610c8a30cf62334d2bf90b7db23589766e6c3536cc3e08ec47c30eeb6503c3cce37dd796b1e46df3b4e2f55f7b9fc69ba1fce9404d669aca8f898bc2e3659e6db9d917f80b89a531a93aea99ee304defb5061910e867fbe7fc938b35940f83325b76236876d75b0300f359fce1e676955bdcca5fe3bcd30f7677c497f88f3c1dff854769f3795beff094a30f8347cce8891ded582c65af33ab45709eeefc033f8b7ce265c172c3bab9090ae1c06c9bcb92ccd4502433e17fe72a37e50700b5d12edbeda33ffba869e3bb462c0337e28525530761d49a5dc62de720d322d665d8b71f2d6427ff18a2e496faf81298ae576d8667000443c55f151da7e5a8685e6bd32bf6d969661e6e03995862c18e626ce272c4e79ae8f6c5c00ebe47d7d47ab958375158463bf1a827422c5cbaf3772aaf1fbc4db5d98a6a72f79939b75da37c08e5ef1305298a1eaae0163b4f7d6764f3490b00c76b7709342d3646084feffb644fa3e1bdf8d070ee1ef7f85d7c4101c665ee2f252b6b89b1863afbebf3351d1cacc7fa8913c806d09fd48e5a1f2793e4ad7814060bfa81edd550841949314dae688f16fddff6be28ef4bc03412e5e7ed38939466c34957e163f5cae0216b9d26c898e41281f626e40663ebd5fdd10497d15e8cc02dbce23d6909ec83655cfef074bdd58568e6a1ded413a7484c969cd279084ab54a8e36833e1501c5085c4ff90d3afbfd39769e9b4807f88e24edc186552412c6519ae7f1390eef0aeec60c98ec38fcd330d1bb68235949d800645ec07243ba98a22fc96d7badbf929d49827b9b126e809865489236b386442faf32784baa2f8b12d2a9330bb1af19607ecf9c6ee7a06e47ed8a9ce4912a1876fb37d18a48de20956e180b2965a3524118822cb3e721e63120b2fcaad1cda74a490639d9b3ea2e281cf056f167123d62369b94d5feb5bba167909c156b32878790e9f3913d427ebcd84d8898735998aa8aaac700f52758e4a6e3b2b078db9d2cb020022580752c22e7473a3a30746e2a3de3492b68844ad5a628d0a61c7fd4ae13d8f32c08d2e6cc1bbc1df68184f5d88cb492eb2286ed55e44515c45d9277fd5c60a23d5a831ac691e3ae015bd45991c83ddaaa8cc048c0a8d523764b561fcac1ab9c6cae6068282b4bab2bfbe327916551d1acae98b488df89654aebadd25e1ebb99603508463bfa5f2de95c25566b6fcbd3ff044b955bdbf5fd6c2341bae4e0f6354bbc1ec32ff475cb87c6474d6e7b4faa83a41971dfda94542af6d3122b2c1adc45cebcb9ced7171ff079b445de16493cbe4e6f7a20e67c9fe6e24d4cd551f503909c332de32f8a9ed52e08b6131ca6bd287e849a5a209adcef3807d7e8fade6561b2b2db458fe4abae41662091f9a475564fb0624834fb27f48b9dbbf199003652fe7f7463a81eba96ccbc6f255b91194eb85a2dfaa4954a08f23c13c7dbacb535801a02fec597347f886487952aa43a11a439d122f794d4d2c6de70ade4051d2c4d68f5033dc8e54620e91e5e443948c451ab9c4da94aa4bb01d57062d68030e33d2e73bd4367bf1dc37deb4d6b8ca7f355bfd8dffde9df27e01149ef8eff096390a55025467db469848b201158cdc789da0e57ae4e2a6fd2cef566707a00e7d2ad2ff5bd165665dee77017b7e6b4456812a6bcb2d544483305662a8731803b08216182463fcf612b9e5ec6d0cc499e0af10cdde799a1a8aa6a093195045daf2a213b7a5f4f4c09bfc63afc96e354a66bb92f776511b0fa0445ff2241bdc6e1f3943a2cae4415da28ae8142d23aa106c07dc46c590210dc82c8fe519169e074fe44bae7dc54d58ba173f401ed7c57bc0e51816d064bc5fb5a03f46804a606ddc8a0016a866877cd4906924c9d2a8723984a68fdfb8a53b4678c012def4163b3c47fbf3dc04756b5a072c0a06b51384447c0277b6c36dc7b5a89347d25e36d3d7df23f9a37af37e2dd9da87648c5a829346f03c2992af96469f1d34ccf29983f6b709d0071fcb68a80559d945a45a831a5f1cb9e095a2ef952c21679728456dbe4c6db0f8a9b4b9c5736602225a4f1d01a9fece8201c605a772be4b27086a4b4ff03b2312fe332687e8eaede059cbfedee257658cce03d12d84dd558f206304aba70d07ac51092aca9a9ead00ade2eaa4f77b546b20cba776df4f749c57e47aa3a6bf5fe8534fc64d59cfc61e597792bf798bf43ad9118b7c07ea885cedbc4a57f4fb7ff8f6544155546a3e204fa9c4f1784b2763ceac60faabaed5c2bbccfb03269e4becea605cc58cc334967946bf5a7085c7136600354fde39bbbb7675019f4ebe10b0dc9d09ab0f6f96002a8c2f40832491ae6c718056efa374905f154529e7abae7fa228c0ac129ff475dc62642f1e2c5a0e9ad8f805f176c552053faf2f03fc2bf5854e33563ac4478249e005eace09e6dabd55a02a1c9ccb7997b6cc67bd3ed3c1a638b8d8987166322b96191fd88ef55763716fa6cc9a6e4d295e1ada49f7e5ee8adf373b584ec9363940f0b526d8d50efcd768d93a3f37d5274e4dd6cf558988bd2d3e37d9d723e52946b1bfe86fbd5038a5fd237458125276c285215c5a9a5e3a380ed0e6050ea0d0b6c149110c09f845a8e4d9a0459ef853e4453bcb606e8eeb963ef4735e72070c74530bccd8886795f2e7d8270d6bdadddf89de95cf2be45023ec7196bc8856b8353587e272cbae05b4d82b7b1f6e05e7718e017d916cca79b07f915f3aef0b9652093ee0251d490bbcde359956ab554d04d8e3b00afc25062badc4f1611489ff46d1bae78ec782b0b05d1b76911391733adafed5c808df8ef46a98334a7edfd5c88e19cd893dd3eee7e417049b185f6ce3575541c2c2883f4ffab8c7a8e17e20fe26af0d59e75b0c15719aaf7d38dc31e583f73249697f4b28a46a7655466b18494c1944096ee5cadefa6f09aa684ba1fe90c578860dc140e1802db644d9f4b22ffc29c3c01d1b06d01e2335b0d7b9c4c360b76990c5a069028f022088c82fa4bc663596146267622a9e57b750ed412eac042ba6d55d2cb66b7e5375154e28314c7414c5ab932736846ea2bb1c78ed9ac1ef61ddd162b5dea06e7f24d378e7becb4fc929dce532becfb86964a7140c2288c7cdd278f81769cae84350c981598bd3f783e88c71f8563ba51afdec05e8bf77019a1f4408ed651aef2feefddfaa87cfadf27b291205247503e874bbf2938a2e61502aae52213f070419fd530104f49faf2148fa6881990ead2a982e6e6b65347043faa8dd541bfad046f88cabb6058d809e7b5e761620a6c9123dd05c989b28af645a3232e82835be3c2cf2df7c1204e9f95c30f7d8dc5d20d6f1b48b4a5fdc6cef2ab7e433f009cc01e29434c4af0cb32a96681e9483cc2c6eae239a5daee96e78d00860593b90dd85e38c7912781fdbed4a890eca5ebc3970b8429018df6469394d1a8415f278c416d0b56d66160b4c52a45839ac204b038ff3560962a4aa89045a0c82df3647eef950d47607ac55fbab2309729e72c0ae0e693d95a4ce76185912215418a043f560424a6ca5ac92c180e195672df6fed5ed643f6c2c9a7923940786a664ba064015e93a3730caf6832a8aacd2848682f943075ee080e992ed5ccb0531d8ed7acbbe2353f9d3edf9dffef2106e4471e377ea1e48245c799831e81bd0d3dc521835a4ae085a1bad9ff83f07fc68a39fdbbd13590e6719ac20e6261281ce5eb0c93376631f96494f5647d3ddff6bd6f430129b2a55a86674fc93d9d5391ac3b0571c11d3e5d3b48d93503ada3ef65614cc4ede31f7c8a51b8ad7ae8322f66fab06ab6fc33b45febaab4d2b7c80b35c78bd2a6e3cca256b7043bd77b9a77a5fa12f90b83e7900375a3a0e45a60e1c98154cbd1e7ed71627b5e56815148d3f8c7c66184f33c04d9d09fec6ad5ff5cb4b2b039dd79493827f71f9df312c9b780bed9b28dc424ddd3c1e8781681af118b3e61af02399720898ed7cf4d4a0ded7209f70e9772e5216c8170d29472793c912aac9d61ca639713f6c642d487ba88f2e4648e79284c044c0a92b22add493a81d92bd91683ac6b2a0f6c0ab4c45e92d5f7f3c0b8925078d609a0d7e88ad65d89502e3340a0ef5e988f630ee7eb009aa42a882bb2101328f8ef0e66dfaa020b2b6c811c70544433207ac950c778c1d0b7b8b51e6f12787b4626a38f76d0049647dda935a753f0f92d6e846ea227e443b3af3d0078e7cedbc2d57ae5aa285a8cd0f481a2ba044269dcb25c2504551e8247fd4b94fbe2b19804c84533b55cc9af1b5aa6a3b2dffe1b74b040b8bdfb5661d6dad12ed8f7a5db56ab42af87a05ac6c9f36826689050433c1d3a34ee9123fd0615baaeaa18defe04e796848853468f29db4987724088feb7979095f5fa9540452d4467c940176255c95bf582afd114c1183dc45a0ccfe2be537755745ed99167237fe9e1645041bc0c09b0e02b4fb73dcb4479bd06cbf0b62a12b7acab802dbf041e0949d71eb587c09c84b26ba8698da71dff80ee012b58d85ce36b7f1726600ff76fd43bddb5859bc11c88623935e4ba08de5a49e1f89c93575c574f7de8fe9f5c1f812ecb7ed33c7bd5534b69eb51bff86b13053f5977c4a34349049917173c75e414e58c2837d8aec5e9d4cdf50216ecd0cba0cb3a48dc57b2c72a5ff5ade7e3cf1ad95a333ecfbb66a97ea617fc2d386468e9985a022ecd5bcc3c528c9a132c28dcfca82c6b6ee61c9f661ce3ae861dadab6cea3a9a8ce5793e51a708f619c53b1ed7ec178e975c2b9d7311739ede702325ab05de0b840396e5f17449babb18a4fd7fc96e1e77dbf522aa55abebbec7f2bdc57a457122a2a479701d70174570fcf9ba6a49d109a3c30e26e21fe33949197645b5b8bba86391c7d0073deccaa3d643e091d993998fae5657363bfd70dff78ea3285b8a2c4a1f5685ebb769ec8f9d8d916fa4c4389881c5a19e12b77f4d90c5ebbdb2ee9be1581f3d96d9d897bbd9a64baf237910560537f22777c2a462d498d62b2f5dac3b22ce2910b2ed43687876fd8d3596abc8ec58415d21a7add39cb7bee919d55c2b4cc54e37c222422192bae1d3992bf9b72da0227ded04d1111c53d34e8a50ff9394d26e19ac9c31345ca6399475f146cd6daf77fe8347af52aef05ddad6d617fbf6fde00dd68178296b9b774d04cef1ad220312981755313a9a292ce7e9dad9d4556a8ae4b134160669248d20c117a208555ba8af52fd8900f615d04b6b446b30e734c3d98b07899158115aa3a19621b0e5d49f30151cafedda1f909dade28e528b351da8f40fa3287d3a796e5ea67f2dcde8c920c5aac478d49a8e8befa2cee73ea56826f1d45dc1b38b41f0cb80b4794b09261f77f1e2cca3296fd9e3b3a5cf57caf556c15ef7ebaaa67b7de61700c08fc752db4ab14d55f8c6ace2927daaff7e15f865efc3832ad9d8189833439ef80baadae18d29f65dd3dd315a153c2ea353390dc7f04bb689f2df716eeff720d8e9746305a0dbbe1e72b5ce8d8130089c18e22087017f1c68e92d89bc4b2c9b4b6e23126fec2f70e0dd9d38dfba2a7880a4b1985406d31d5db1d3eff7e3e8e9f9952321db89312c19941b637c5c807ac90e4cf2084646eb0b03943e79808608f660d88218b909a1daaba60b9412dc951a87d05628ea3f17c461aa2b12508a832ac96ef5ff716a4369bf8cdc2f8e3659c0efa437966ac38660b8fc9e937a6c95abcd39042bf6c7c4260b85f969ca61c774a71ad1d5a06b2d1378a26e1cee3b751c011f619d4ccb539202f2bf037e9566526f65a5467043de3d7f8dd42044323054ca2f2c350c3af0dd6c2d40e106e985e6ede01ed4aa4eb8c42b27b8355fea6af98883a11a93662744a3777bdc2f0d324504bfd0ff9725f65b378a4dbd432814e5ce8c91c807e1b0b32ad6662e055bd43b94951df095ac89a56917322b19dacca59fb375b01ab4d8ede6e4f2a7015aac31ed01eeebc24f7ee7c96cd213a5c8544f5b9d67285e57f39d323a1ffcd0198752f10dc3edd4eca99cb6e131a067ba5b54c807d71945428dc77dd01c1a2b41629e955f46912ee93295a8658ff759019549b00b0ca0db9650c0dd9edf09bbf8d00aecee0b751fbf6c852be2816c736ee16fbbf54bbe9eddcd75e273a2508949f67d6b2a0c48dbf446e9120779ca43797aa5f9f84a044f4d8ea014069e7f8e99be694e8cd9ef199ac58434fbcbecb47443925cec1cf87e552cc3c56b5c3d758c2cb4e96f7911aa85683e0bbe80dec94b061a627faaf1cbe4d191f5d30be416ab4ac6a3cea5feb766702d7a5a9c17a72b41921a6fd8f1aff650df7628bd51e25329b9eef370ecb8fe1f5b11fb30c5296e2757412ae8385af10cda1172e2dac9a9c52ca8b2f17a5e018eaee79ab8f99b531f2a135d75b478ed8e9515e1ed212ca83d65869b3512628143ac4464c168e3bad40f921dddba7594e42344f2568ff1143ec6d046918f3c6aa72f5f2fcc2ed869e49f82a4fe5845616a8dab35982e9177d4022b6e06408c8554ba741bb86f43f405fa6b9053e53293b0549b83f7462737f665874a26e198e6cd3d6332d78476040680313a8a14295c129d1e93daef9e978e43aa2ad5058beb6f199d146c5f9df03381971ce830bb6b43d87555df747c02cfdc3e37a43a51c75e08bdaa222e2b5b1775f71cbbc5a2ea1a95acb0b9a200049c6d56bb53194c3a5f376b17f5f0ff93ef4361baf90a4d44d7a1898b59ce180ce5463f78bdad46b5bf1275ac398ef2d52a1356f72df97648cf49460d93b2a59b79aac634d290f8d263174a97fefffb035dd6ebe738249e22f7f7063d556cdb3341f8a025a188635e48dfd6ef4340cd2b57511f018a646feda7d9b8fc2ca3055998db53cf5f282892ad1a5e0f0698a5c71ecb456f23dab74e4de0973bd60302ca7783a96468ae6a17281112af337fa9dc0620e406404b29d5f94b61664106b04ed7bbd56c2810b9703da870926e882ec0a2e918023e76da707563e69e108f05bd0588f1675f426da0e7912a1c6f30e96512a52d668ec867aa1b993f795ad6aec7a7944715a5a6c94e3c4e61706cd68f083c57d7ce035844ea7069372d015f987f6492261118e11b87842f8ef28611a3162612fd98dc5302c3d115172a64536062bc7a4621c69f933b8b905c5e05dc41487f07852b647fa54ec875b936067f7846ac19dd3352658f1a38fc2e0df515ca9212049f9dd3e8f3a273744fe18930db94739c1ae9b0891e59ff0bd00239095c6e6a433398af580799106fda366073a52eefef353cebb771725a3fabff1bfb53814d9d89cf54acbe6dff9d2e5f323e2ad7a2e6ef36f1c4550f98331d5350d796440039f1742a69bfae5aabe3c8f37faef79e65f820353cf7f78b486363ee1505b6114d79766196658296ef9d2b4a1a7d865fba97ac8a76a486c3114435fc3e7d4abab7f032413a8cb0c82565273d548210d5189bb2940427ed34a467caa8d2ca64d994eda2e1c9137e74466abb014919b530f27162984c9c733f2e5ec01338782a9be9db9f6989a731b1897ab205d4da88648a7d9cf8ff5ef2a1d4fe91cd269cdfece67ea5a268abaee2f9c93f1c580ab926accf69b0d51c54a6a8ccc5da2cec98460e339baa045e9a4b39ff5c794fd446e3bac57e9d7147e733bc25f45a2da31020f434f5526ca7b52bf26e14366ef760457d7a2558f154d81b96dabac280695effcc3576c1a659c8dcb9371f1734f5699be96cb40b334807aa12fc3fc6e7d3b52b018914c2223fda657f80598c247cdfd62b70556588203d9ef7760b4695b45f47f63cd82f915196693379afcd753374e9d1a25eedba99b550a6b3c64b1341ecb9c7a9998a1be7b68681be7308a732f0db07d393822a6cfe243139e7ad34368011d7b67bbc7fcae23fab6eacf9ed17d0ee970037dfba2f4206a0f15f80e6135146211514e4f48c99f062f32a148a5bbf795469a0fbf881046f3bc2a5b2afbd3434ad9941b75f8ef3d1cbc30314c10690467fc584454a03cd18c2918cf17b92906c3496361c6b84acf58f0d7c6c96dc0bd257c5402da380f982f946903e8ccc39444d256dd97fa64e84ec7787f0153ac8f258b2572c6c1c63093088484be18f59a8c2af41d2bc9aa35093d54cab7b31ef4d3086e5635520236b5af6b88c9f5b58b7d2af4d636178ecc33c91d4a1e905a3eb9065657f656a3988e255332745034099aec506b3d5cd0189a212f8a5c325841956d54010dfbf5e3266936463667ffdbffa4dae286b782aa36ff7f9b8fcf65d4bd11caee43bc1c6f4da73f0d68f022556543a4897a9734580c1492e4ee043524bb5834e701a0b15e69c2ab2cf7ca455b75b9d1ab1030734ee422901f9465e5614c4c5a197060cb7ff39461d511c243eca144aac6ec56e54c2b7246398f78aea9bb7a7a8ae93af8cfd47274747eb96af901c757e311f850ba376d553b85c0d1ad41bc2c8ed798714e499d2649fc068bf562ce9700d4ee40444596af1ccbe8480f39eeaf294b5354369126c481f06239144fa7fa2816ef62cf19e8cb121afadd69c954a771567f70be8b5668d2056d5cc0241e8aa100748332ac62c0338ee867e13026bb0666f0d1cab56cede64b924843398ff1db33b3ef435611f83cfd92af2afaab2d03bb5c8d72f77256dbeb98e4ee5e10e32179fc3844ca787ad57c2917053a16d94eac33316fc21e321cc1e2c4a29c4e9d7199a071486781dffc84dd0af7ca1a16aa94f4a067d5853486a30824b8c35946ed0b7f30b7d4d630ee40035ac5095debe8a66ba7298055e285895951371e52e26746b0db72ebc281624636c319229a8b1c7cba81abc08e87fe75d1f22e03c6037a3e4a21ec69182d105ecd44de526d56b6368f2c34763995401392bb3353096005a4410f5cfff5945b9ad3fb01b6ec4b3065df6d3e7602a91d7a59dd07d5a28cab42fc33d47d5e85204761688721c12a31b9118ae66a2c26ebd97c956e910ea9057a6e1ead3be831bab210012680cf8261f5f45b76dfe64c1871376b5fea3fd73c2a330d6f86e44712165e0c29606b7c62f179f9d48c09e631639d9abc4255ca7d17550d3f1b14611b7049687eb80aee5689c6081bd66fdb99a2079be81e5a4c96471439d586bfc1255da7a831db3393ee0d4632882faa09eb42a69df00046c009753fb391b22c7cc5fcd679029d3653a5de5dbfe7ab76dc7e8562d0817dacead0d8fe510d66367cf6e040d0e2eb1c9f4f8dfddbcd275c073ce8d2fbf501627517651df46054959a691811377d5db29a0b91a8c7dc2c9efe02d853584badc06e6e1ebfc1b819daaea044e6b90858316f25de97eb167f379c439cbc9c151ebe914e4aef1ece137fc4b621c49c46f34ae9d3d173441bbdb741136356718d24608aa89f5683fc1051e90bd4e728204e6fa89c2610dea2dcf4b38851fb76830583ea8343a70c23008eb17c0534b2c9d6eeaae32ee95f5463ac60a06fa4fd815573afffbdef310ab217289c8e89c94fe112cdd13a4fa8b04e42dda9b76e654467de410a4eb5319599919fab32d1fa75a07ddca7ff00a5d35e221ea513d6c4bf6d72f682177b53d1b9dec3a2a558aa6c2a053d30aed46926139f1fcd6912392716b2e505c6934beada02af2678c516adc637ca7258a58b6c529f127f1bf7f53b7a24b8d61fb79860e0325b11ce529daeb603c91e112f37a4fbfde19de7c57e9dd1a0140ff275ec05000a960ae7f8e4892a54442c5053d30726fa5308c9389a9dbf5d941c2fd22b555cfcce330b458b6616af4370875b6246951f50b192c8bb017852c0726e90e138e7eedcaa1b5c2e264856ffeb9ce70fe132741bc6fd744587e0d17b5c6e78e098853df3e5e2711d7f9703a3db05fa1a436d4e2c583994748a82148215a4a37befa0716212181c115c7801a80e4ca92e976b44a462f4c15252c038b149e00e2c739d8fde2650d6aa45bb0acad1c0f4c6f69e8a7f1789ce1a0856de83fe19b626077372929418e3b3db06cf77fc3a7d933d7a2f27d9f92287ad04fe4e35723767b7ffdd75ae0f2d71f53f5bdbb7a8c8219b42d1a9d47b958b32cf96f06e4c837b257b69f44be549534452ffd2f40f3f39c874f4f747f6f9fad0a8ce3102f41debeb39e23b58f45503fb8fb21b3d6512de6fb8ee820641e68bab3b445325bacfacea8e283dc34a908ebff0541ae7aac87afc57f77b136b6e719257cf56dba7bf8821b3933bf7b0c31ff2d78d3fbd757a6f6c9d82eb2cd30f4d4a8e541ecbfea39f93b71a7747c64943c8a0062d0b2d181ab4cbeb680a8c7dbac75e0d9503bc7ad9d89014be1d3325e99b75ce6230ba40f7a2288afa9f5821dcfcaa46dfc93f47bd9a8a76ba64c92d964b43927ecd0f8136beb8500a765e9b414dfb2b56ab9041e35316390f30e17d82ac1e9be8ebd53ee66fe94c6b662b3558af319009490c091a68b9d2a0628e846192d04362a67665c78aa9c4fb4ab10d0c8d99a45ae206467c11ddaa4d991812ef5f5a440e234eb52e37fcf15c4471c3d31493df7b53231beedaaf177728d9eca8b78df6b091034d9ed08b343911c5d38093c64fb64db7435345113eed0f6f0511062f5e6bf4d9c8ede6e9ec78ff828622ad99296dacc473993dd9cdcddb20c67af0506fedbb796b20b22af15f002d1f5c9aae1370d931e4296cdc93b8aecc84cac66f0d68c3cf3de4eee0fd15c483a00cc9d2bd3203769d334f33583083d9601660451e566f04a7f40edb94083174def4954413215044e94c21e3c1d9b2160b98ae40ccec684300d59b23f612275b2b1adb7cc82666ebef010e6e568cbe2810c29801488ea139f6acd8c4c003456b09f69e87df42ab008b2a50b58d3234a156c570a6d0e01f70ea46aed3839650337fd505ca9e3a6ce96f01da0a4b25ef556f449f06429ee43525570abbd6350796691ab2b64f53bc737c104844f218deab0e2ed3e35263c8f0e77efb97061f1d048ca4e04900b7fd269d52b9cbc5a01f618d7d8dea3f4ca0d389c655a2659618e084225079f7af64fac1d35d9e22bc3492502015de1c36073cf8a8c8a0b79eb77ccdc093bd7d4862769f832ae8a24153b414c521e6a4f6da65ca3f0aced36933520db56e5017d5ff80ffd00dd9cd92b2f19444758eca06ce82a6b619834337c51e17d8b188d05aab6391131cc6e17c4b3948b4d8a87749b86be817fb317db41f886ea49e450dcd8133b963869cf95a1327dc05cbceada3888827d3ccbbf99a87a0282e5a5007d7f75fcecbc6d3cfe3af49878fbc891d65e83f12d71b054fb679a3fd09899c2b579278c117938c5219335fb7158124c56a9cd7e88b3b5a522d94773c88e4e064917532c43fd699975bebc69aa84e57618cf885f355214b29efafe5c4ab5b99bba9bd8f5c967dc155df121270df0538d53e9a66e87394d3f321d659c230d786ce87845e3719b6c0e2d0970dd87adc360ec72152f71cde9539d8faee6518e2af39d93ed63edd8a74a0806cd5731159eed225d7313327957bd7701d0b08aced16d41355f70c12b996ba0e6225584ed64c0513dd1c56825858435a54f23e47f4ae6e32387f3af9893a39e8d4cc2a041526dacddfb2691580967ead4aa9112f23e7822490fe97c33a4969357f9ee0f06b5a2e0f806cd6f51ee0c94000161bde170517e55535827222a597641fbb84b72ad644394fad3ae5ce1d7fa4f3b0ebf1d6555907d7775aab6d4a8b85b8ba5f6c8ededb462718e9ea3d2c64d2e74603f43384c5f7329812a7058385084b7b203bedf0d657e3055d49ad6ddffa1a93e0f0cc9a759a459163329ac21e856491136508261862e64133981fabd73896e1eaa446b05fdf306c50de5e99e2ceb8a89966720b3e885088c394d0acb844bb5a7fba9a5d0db17cb13b2cdff0dcfc6e5357d29b86ad808ebded6e9ba48f0864062d584864127874da2469c503d745a1f3b0859f2f71e52f623300f83bcb7e7b8657901209abee1c6c1c4ddf6f90a435557cd4f19832423184a7d41b2f3eff73001fdb7571e70d73d9f31045e5027d6f4446ec9a1acf90012faf7d86aa9abb5148a3d83ec8598d22c7cb639ae4d80fe6703e9d79b781600a6c6adc58b667dc61f821033dfd811a8bc1287d927e81363b33c294d3999755c8f634df6f39e41dfbf4b964035352321438e90abe62940416aad4bc36ec95a763d192bdf74d172ae525b1ac06199056fa07a85d0db80e8ceda259ccfb56afd7b3d7021f2d02b60f90cb438e81097178c3e409d8a9b2e639588ab0bc3d1911e0529eb2a10b2d40560f150d279010a565a05cd8547d466d660170fb7e52847ac280645b78b3246fb8745d5828f4361d9d7d582fb538e83eb93063f55e54c1a275859fd04166c2ff96ec16af6ae974edf891a8b2a0a08edd185559b37a70a9ae113bb4fd078f5eee5a066f13796f09d01382185528ebad3e1acb4bb3bf2fc72588d75cab391acbb3aa9ca37d0f9d302e1c00fd3fe9245c5a0c1fc43203664c649f6a0fe399a6ff24d2957a7b03b2f2032a8cf6c9a1a39ae858cc8f1764d946e879b9c148c25a2d33668ac9fb440f7d8892c5429307f8ed96275499a4024de3488f2ad3c0ccb7fbf58048d48d4771021765e5dedd31e076b2e35f62d0a23c3ca953b02ad82ca2a5542f4cece0c15f8dc7afa584c3f4fa4c086a4ac26fd777c35f6bf6f15b8c4033f7484d555f4375fa9b304e44b05f6cad7dad17380e96b1ec5b357753488bc644d849878b894d4815fc6d45133802159c60d7af18df214c280004124af14d2d4fbb729751ea89dffe4cd5aa69109e57930bcb10e26160cb5d7e2373fd22f60139daff56dc219b3933b4a32e0e00bdd4e64732970cca9df7aff2ec3a478e42c535b65f8fc6e66b146cd94d8b9f4c34284ed724003696f6bae087f4040be699a3daf68636cc0566be8caa0da17bf68cc34a4c798ed047539fb15d2536645ba54a619cecac4f8c929921c692035983c1108a937a0932bcfe8ca36828bccce2746b32a42eb8698707a90b1a2841dfd8c398f3d918d02849fc282f1d3e8f0c70e1ff73ce85e7f0162528fa8c94ab228ba3425994335b6aa8483aa0275cdd311c4b92212c9625138de4758d49b21be7888ef3ec8bc5c160829515676c3c4a88b8b1d1363a67d65ace632e8bab3b567d43cc9252d0c92a6b9be4d46bc2619bffa566d7204085d0f98fe8e9fd850bf0abca8743206010e38ca412f80767e65d08f52a8d2d0d9e2f7643b0cf6dafeb9aaab82c2096ea24cc7db1e81241393e19f1a8f7246e409014dd4436b9f43162a5fe9657313d45a691d56fb9639ff24db05d35b808510f684d48d1d9fa7602b148c9f8091179f15cf6db5e0204015dcd43d08d64c815d875dc1019b6a308771b869d5188632445b6e10189894c227ab0b5682b394397ad5a18ab544ec56986c005da3c2b73ed19f8c1c45b2bdca02255b06af352ba0cf56f6f72206953fab48e1febec5663dddc9f3896eb57dafdc83031ef718069dbc3996be7a54e9d401bb0b78d6228c4db2a530177d5de8a4f2d8dec571c52d04a8e7355af8f851a91a8f73016d5a23b92815fd4e2dcee385296f1f493106f545f79363a6b55730b9690ba443ea06cba1be0cd7c2e731806f34e1d1b3129d0121b9d1480f43f517244a0d4f6bb3e48e4c5fa975d24086c2729d8e9fb68e2be344118dc4c850e6f29316b6473029d8296ec1ee2aff8846a420b9415a38f047a2456caedd08776e1bdba3dfd96d1f430f5908d218a276a71bf39127eae2ee634a453df8aa33e0ced5a421d834189d860a780bf5556456f25d047afcfa0aba45eaa04815093a53a7b4f700f06cf8605afbbdf752cb11e22f77daceaa8af3d5b67616106fcb2e80c90fbf4beff557591023c5c7aa45a59b32ba3ed3a2bcd001148f162c765ec06079c44d658c37f40343cdcee45623e6300589bd7073abf42f30ce73b9b826c9c2a2da30a1d845218886efeafc9dfadae433fec121fcd1c6eac636539297e35cfbabec8eed559d4cc531005c79ee248eca503011b094dd9f7a1e74c929953c461b82564c3f2b076ec560b555f28df6f616789feb6e1bad5c2a47db1645fb78d966dfbadd31f0dbcc8d218ca3ffd192e6815f6a2f7255300c670489904f1f4f09a3858ae01e6cb747671a385e7023463a2c70a7ab6cf6416208f53c32ff9daf0bef0ad6a9bdf3db26198ae8714f6b8ce3d99f7d77a7526ec58321b97b8ec843e8fd5bd4477b1b93222b2e98bf3066b13228b0acc02f58b48f6896d549a563531dd5ff94bea443979d507081df9774c9ab921d9fb5869c208ee47a42d4b9df293820810b7747b55510e3b5ad6b0dc625920c0ef5e26f682a51a6766d335e0a51069ae8809f0039d0a7be37961862f581bc17c78184c9cac24f04d3e8bedb13cae6859532d2bb90c7842f678f2e71a2f0588abc9128e2f7e795487326c4a0ceda43aa06285f5a7920a61c08b9eabf059425c8237995da9f05db1be24d9ca97d41a19b1889088308951cc3a8f9f2efb5d292847c2317e963040caea3cdd13aea6bd88f4fa9d4e60110b5dbdb5c747165a98e6c1f92ffd3e36cc58f90d1176d6054749a8007082a1e49e178f56559c152ba4952c93877c9be800c999757c28960b7550f8ab254013778b49b6776b51f4e226f2549b20bf3fb859e17fe7b67f623229216114d90c728577c125950243e467f6446c56a3ad80ab0f68162c4b41c3b46d5e0a778062f165d2d2b5243f408a1f95a54b919e937553a546e9ce80bf1b26a94c404101e7bcb6b7fa2a0bf3a4b55863f28e667ec1888eb5666b0e1bc8f6f2069eb700740007b2dffeaab8f5f6921e24b1bc88bb7c70f2f4035ecaff9ea46e56ac6cc0c907245e8b8b377884740771eaf3677c2d1bef304f4f9c22aa644fcd215d210931298c93a556027001f88d03639016f7159ee2717a46961b43ff38f69fde0de2daacf324f9aa8b0ebbd0509b059ef5cc709a3c1ac3df859ceec356705c1402562d8dbc0868f75584f3b0836d5a3b874745fd9920bab9f1a29de2da324512e9a6688c635b85c6e4607f4e0d87dded156160346aa1729a0c26b8fbca6895237caff76445e3b14bd86626303172f494716bb253409e71f07d6216ad6db2846ba9cc941bc7145427f09b2512599b66bdb3c8334e61bfb6a52f20cd8023b86fc53dd58ef186c5c9733a0f1d721e732d7cd6b3ccdbd2da1f5ff388dd6d96ab44c216bc6c3190eb6292af35821465a11a38fbc208b565914679d1f53ff4abee6f1ac6536493b02a4ed3f34121af9735929cee5b547718db42061aacda83d03ab540fda2b930c7373f9a6622944a9c23d93ab253e6bb81caf677bb29c323fb79d2e11304d9a82ec0bd5a03f09063d3272878dba0b39ad83c4b67743bacb13b35a5040692b33e9e5f5c64e9d844dff8dfe525dfa76a596ee00a8604c228a36edc4de1a1e9f83e5afc352fb436a010701211be79e3e87f9e2894386c640686a9e27b72c5bc3a02e2c1d022bf0a18bf71ceacc3a67ac39e61566f383d9bdc8948f31b2b067ff86f1767a40e7ed265d85cc4899ecdc6cc001d226bad20e54e26afba6d2ca80eca9f5f535e0420de5045cf99e71275dd77d26340b37bf68597b603bf5b34239d4e3e2f261999454a7542029e0e7a9464a68ca9d63a9ca70613c5daa21b3c7bc9028c18394da005406489d5d14aaeaf658fe920ac0ce48d03e3de40ee31d579c1f73426fc2e4512d7b7ab16cb37a9d07d2450f6d0530ffbdbea572152e2946768ab272c3bc9cd40a95f1f4056c052ba503b5e95cb572d17d0da13e34e499f676e7be99e4d4fbdc1d711397bb7682f9d93f9ad4c446989b7ab4c26f70145fa8f992e872f5fadd29f098958b63623746e4aeceee3bf7ded21c6e553af0c0af1797b4b8497aaa743912fc35ab4283291ce1f0b0ed9c2aa49160a257b0fbff08667abf436be8c8dc411d893e2d3ebd54c26617ff41de5e4f9a56f3b0475a3dbe58f5d48c9b1b1e790083a7198c41327003f2ff005ceee1c2e0b86410f691ec547d633fc85d68dcd8bf7cd6750f2d72bc793aa26db7f900337ee5321e3db0abdee22d8cde38fbe0b6af2a75a432ede64cba8557a9be011825847bc9a8d0e9203deb20ad5d77a40eff9d7594eb10d05b5915cfcf8291839d7f7f035f0712f0ebd9fb5e60b57918f1af5da758699d8ac6f43e48c3589df02aa13b0b01893b805dc145b85c7638350a4dfc34079c243d31fcd645d5517020f545c1b5ce64e908e241e1c7ed168ab16848cd4a037dee55743f4bb16efb0f70e23df80422f171d432495f2087c926c4e9d2778ae9a3654101c502b8d50ba640e539a1bb35a700a4ca2f8df2072cdd3dbeb9ee3f5e8bd6fd680551ea8c44d4250635d4d6819cf22c1e993b5b0174cc7cea530d7eae3f96219244be6af6af9d01bc3e3106f827cb0b28d59f9327cb19336b983aa3d1bc3d064532dc93eda87b3442a3de24c0d4e18190a65e9d0db005d049f578c6956cce525ce9960634c89109a59fc67ce192eb6fa22ba20cb0c0ecb5ddb4e604adf65e70efa3fe3a091f7b814a831c2b4f0beaaa04bdd5f4a0010d2ecd645ec07ca851a4871932b43639cf3dbcae53acc7fa5a40d8887d163d3f5bccd0eef015a1250ad7bb7921f1a7602ee59accd2bb1ee51257dd98add593222e7a92842d5d9afe040e6b4bafa9ff1d3a018e1c5794e74cc56a3c83092d637c8e91ed5a8ce380ddc13a5c3280ee371df1181b391e5f3cafb082928b21d691ce9eccd8e7a5aead93db5bdda990d318b28f83d704f8be451e09e550a3e7c65727612bbb053340b805c108bd78f6b7e08ad83756074de0af9d8c8f00435cbf0f955d8248ab7c43ebbc3b1c1714f6163b9b837854c558cca7ce04b762e9a50dc8b6ae15b6b0af63f554d7feda6c18d91c105368df70a0927a54ad7157862d58cfb5503d8f5bcfe273aae0cbdf83dc61c90509dc1f422a37fe22242baa29d3740f6f5b4c2f695a1f28b42c6954bf36683680cf1ffde8987bb2da073994ead1a049ab98453d317a34873ac84218e1b73c0415c9777121c420d3399c7ffa16e984a6c0a487fde51a6b90c5e08f5bde7ae6d5acd3bcc2577f17600bf7d946972d2eea9c006026fc34419ceeb486e063934cafe3ecb305ef7897ff8630ccab7f3728c81e0a5200e99ba8b248e3b73cda001d43dfdfbed26d65d6251d81a060563e657fee6bc1a38a6c4ef843eacfba563f3028fb3940e4f2016469c5c7beb1f3095b53e4e144d0fd83634d07cab9c3088b20bb927ff9ec65f3485e5ca2e3ca195b90406eebc0ce1747c6ffd68fd9e9a2623ab627ca00bae194239d63dd15930828d6fda67d95adb041bff0dd2ff5b051fa3b829b2c067a93324f8f305eb23587fc314c2fab7dc268bcd0ae686404239c45385754b8ec7bf3429884563f74b36efc9a95fe94b35e64ce2cd87caf8c9fb963bb802c31bfd4cc676ab0923d83f07c9794434a77f8d99505b488c2ed7e48e02eaaeac9f75f6cc13899e2980530f979dcb453628648c84e12478b51d9a87a2e7728e5dd192a92f65080a135daaab006125d22ed2c93d9d3224ddd46a83bbb097fa221add03f6a3e8891f0bc4eaa3c5e6cedcd95f33642f531b85536f480cc1048ca46d1955571ccf939d734daa63debae7cc6ee4faa9915144b99c465063e37b727999b14e6e3772d5df7fabd69d5f8d0149a14b3acee35d83a9d43930c9d980b3c74587d3a8f0eb8e08a4aba7abab365e5c810956735d6d4856272e588b5bb3c69991629b741218193fd5fc1baee675238b966ec3fcd9dd474bb8109304ae747a14d864a302ace443254254c4778173a1dfca9c35c547c03d038a26e3b749498f9f6547dc71b80b27e9137ddf2ede2fadcc6e70d94cdee255944f4bc0eed905f9cbb164cf5b560bc73d6643848d3935896c728d79e0ab50c02145ace007e0037f140c5e559a395eeb6e93103f403ff34abfbfeccc59f88319c8ee37b5cf869c82a09d3c379f8d0d2db755ea2e440e3acdddeec0cf60104d1ec90c135187ed852a98feb7c1a6a2ee202305b80fefcb631661bd1cd42ff4fa361a50d84c5fa711dc105b922ede1ad234e35c3646133a379c283e02b0a73976522ed2191d1ac6bfca5f741e6673f79392c744a7419f0921c098216a710daf89552cd31600fba468252a3c72a4ee46d0de2ef81b40eba17a3edc7d6dd192ae78cddef9063f3956a1b77c735688785dd8219119890c79c330db3e4e84d74e169b8cb625c1b4bb957f7d0b8109791782b3ee8566fe2bfc388288bfdddac02547755509855aed1f5d690fe21eacba12f1f799b4b1dad5849f73882341910fe3551a6fb9beb4949bb6a480d9fb2c521dbbf4c5174d87a904e099687cd3d5618e2b17f9e3b2a5868802fb0715a7b2cb8befc0ae7c2825d4575d19f21b78af7f8e4eac053834afaef155e53fa49ee46ab233ca5ac3c1123adc225121570368a4385f1e60774fb24cdfe7c20f0a7ce1b08a3b0ada3ca3f1d2754dfd4da8dd1a0aaaaf46864533fe309bb35f9e3d87c7da97b3174d5b72051744d08e9addb539e35f44635dbf0224415b45348a2baf69470064a08332f30c84518141aa2d764e194eb6471da389c8bf82b61f426d3ba75897b49034ffb4c644421d4def935d878d8cf2005d58baf047499afe9cf6d697e642a23969cdf9650e5589b804c3094495c00437c9584a0b292173b37cd4d396ee0785c0aef4f655713bafb19497b61c1854bfdf3d2bef0e8f8bcce5b1140f0a44c78961bf108ade01d37e9d46d65926f00d7d9a4a578a12ec964cc92e667c7ec5e396394b1554fcf4d80d4e5b9dea8dbaea345646e7ad71fc2a231573a72bdb6928730be982b6f047a31fc1a61b4cc85994f5968f298d786b3ebbe614d14103ee875c6288a98192a6c0f4bdb783187269f469c12b7a493bb3683e2ad70b9e5e29a286c05e86bf99b6bff8556b341ac3c82819e91e3e1e2c32c5d1c236973fa2871e85d89d42b5916b4bd6f7fe750c5b702fe2a3e32ffd024c30cb852e72855f809d4acafbe9d03d896e56e4248a8388f53feb2094a7c23ca330d81238bf71db3f5068b5a1be4c5f8316da0eeb71c4b93e98dcd1a7579c5ab362dc7f3dbbc86050d18340099ff880cb862e17468965f97a0888806b9d236dec3fe4bbfa73e12cba5b38cd52fe107d9571138e6665ba0e476801f42145d6af22d947d88b30ef37919f7f4267c7c1451c1d8fa81f86cbf594d1465ad669606cc6a70741343667eac351c85d45aaf51258b3779610066f4d20e99aff7fcdd0c5b26d38ebbf11e80431737586c67b040d63013a2423d937e578b7210a275c85a9f9f0fdd1d9aa914cdd82ad1ff371943aae8eebdceba738ebf6126823a8a0189b0e7129b71f90f2295f132cdbc3b368a58127c509c0e470f89fdfecea0ad3b0d2b326d7a7dc04b7750b4df806ab494a6970a52859b1eaa753c57ed8aaa278be40a177a2a1c76819b6f25144b45d273394bd76928cb51555f5a3261088def73eac6d190462d16fd586bfe22a53d05c071e4e76c3c92d0b9ff37ce04ebc23037cb957a2dbac47627bf45c8fc9358f6bce6ef4115e5ac1ad01c33389d9a34bc615dc00e904c901273e82266c0ca70e3941e9118a6935417091308685654471bfdf418cad08adcc605d303942346a79410ecaa8e59459551dfdc7ac0b0d96aa0f3f4fc3cec6f4144fdc069f51f7220986554abeabc25550df4a0e73d2659cec2156a21481c80047dce20f3bb24a0b55e37ac8f2e4f9b374e0f23564c93f8ecefe0edde256b483ece495be2e4bfe92bf93639ef972678591f52ee94f6cb5231ae7e8a547ee34547626dc07d6198992a2e04e6788fd2effe7abd934e80165d7382f6d3fcd545c439e6ba5a2a8ce803448021efd7dfdf16a7423b9cd03a7595377e8abfeb25d4db8f5e45a1c037f42076be575844e5fb54e5bed1c0df979eaaf079debe88db00ffc69b8a2310b8630a8f5a7ced696b68883ad7998cd6c50de6fc77c2db8fb6ac3cdab1a4bbc14c02eaf0d80d001e3a2748c1aa460a4ed7b710038e32d0f1226825f7bbdc98eb0949f3acd7fb5384b186031df0fbd63832841409d8030c7c9cb1c48668230cab0fb5375af236eac67eddac27768fe2e58ec35611043a44fd4d681e2366b2ff5dc433b93d116307c0f2430c66eba8fb87435744890291f45c1fb021450e8723963197120d02a07ee0c23eba170253ce38732debe55ae2fac8911cedec5470390a8e51754bd1857476a3f7b92862e6bbd4dd89ad5fb149519ddd9b400bd3f1e970c77ef48bccf715bdd41d24b403ec8b43fde3dcfaab1818d23e5688aeba43acfd322e6bea74aaaef6067d1a0b8859714458aba29c15716614174dbffc1b0f963018bf36bd14d2c18da095b4786efdd17c90e3c1c1586a1ac7a74e5b090cb1e4a29e21ffcc3c7bfdcfd58705fdfa211199e29eb1c60f9f480865a7f198ffb39d8c14a8d5257f5f7be4a89be8a284aeb3330d5dfa25341aebe0e0d14913697d78f5ba4ad0cfd6887b3bc96feb65fb4a31f1e4bca3311bb74c34275923f5d0519fd100a9207f71e0e2526ee5f36e33f09c41fdc9caf1ce075bc3e8ed73c5dba89fca9c841d28134a48df4ebc401b61256a5c25907a11bb77f85df52455544924a720d29576505074e0c625f26bc534f3f8bb82083e48590db0400ea007a9311270dba30c77ad28a2a7d021e8c2994407bc4dfd5e8cf51561e31984df07cef370caaec549d8585c6b934d726a83186a86528210d90f9b28fefb281a536d4befd7953d7820395a9eb0ea4e47be1a830e469a2f7771553726dafc8139de902de26927ccd34987336dd8951a44e9819deb36f663c7c75fc01c01615aa81123ae96141cd4c01c662fbd8a9bc6a5e91cd03d5db8a6f23c5a2d29542879f9948a9e08943de9895b8bb26fe571d68046fd0fb3d8508c4e242178f430fc450608a270ce09822d1da9560905ee9345a72c8b7828f97b87d2aa559fd678dfac70719b08a39c4e54c96deb3bbf9dd799ab81cdbb9da9e9503e76efb41a0771b1b48673ee1f8d26e55fea50a7d96b7a6f7bf059b389f2a860cba738092864b743c3421d68f7a13e9b0c743409f694c33debcfe47546da25d7609edd5905f3b0980457c6af327942e2d736f632d9fc3993459d8bbea5d64ac6cdbf69e323e8a3842d709b090d03bad63edf9105eb621ca215be72cc6b29465727c5b6ae59d244a7a366d8609c5c6fd98a69b0b3e7f38ce23596eb717947ed20b2c51eb6ae7a2a00dc396ae52705d65ca528e84265918db6dfc42d733915cf909c624a996115e235f050e24d46dd9da4006da6bbf30618580171f1098d890e95fad5f94601e6907e302da933d830beaf6b41fab351ed631fd2f26116bd96284d1b35c34d501259693f8004878bf7881d45d1795f94444659084cdecdf731449426ecf3930863a2c4f78ab4914077bd9485e64b201e89b7d6f62b78d2d4d86daa00a565d79d780656394aff1568a8906d3d81d60a7d9b6bb97ac247730e425bb9dabead9ac8b496f729cb9bcb045ceaf1c6c364b3560fb34765c98b82a99354a9274e51ca37d77c60b62a37e0fa462b8fdae43fa485f5bb23fb4fb9d6ae0db0accfc1e0c14fba2fb1ad88725dbd4d70c57a08d696c5af358ac249aba33b14dbd638500cf198767efe83ad02b766540634191fa4aa525e9eacfa90b1ee58c006d2901e2fd002e8619f469694e017c6db2796ac28c2f847efa13bf95a758b305b21af4b6d1d82cdd1aecd99264ef7c33d19442c70628e607c712a843905104f9bfe0e702302142a175f15299adc922b8d5cd00b0437959a1f1cbce1259d911f74d39f62474eed0d99aa37add8270f6db05c8179748d4a8b5918a9305ac395351b6f0237d0fd6853e29fe710021af6fc07737c6e8b092b0121be00838bfdb0cda0cf6d41f845651978fab9e8ddb5eab6a24bb582fe6c4f71ab2086a0d2339cf91e3778e80b593b28bfcfbe65a8d419f8fc47f27894ea19e1b8bca4f5d63d2534d921c89443dea27ae79135ebe01fd3419015ee55bcab8c0e702c1f3e4a85c768b5aa2ef068d2bc99ae590319497fd40d324ea665a57f85dd6a0546397ecf317431d4c9e434586a2d0756ba11a3a5b6752ae3a4e71990e28cc813c229410c6eb3e237f37381e7d9ab7636504f07d94808880468e29c228a59faf7e1fccdd23efb6e22be7fdc67864448bb462be58d9db857b51177ed356053aead24ab83d65a7f6e2c59d4e97c70d11dedc69cb8ac82a2b4855f6ccbc7858a0447bfa36617f12fbaa1663b78c1cb6cae6a925a7138a7e64b259d6e106113232b21f6164be7f317108a1d190b2e28a411ad43bba605e8819422dda3716bb128bffad13458df1ca2e6774361de282644c843099e8e1059cf8f2fb6713e4574bc055b2dcf7fdd737de2db7bc9bdd72221fc3154ff3376b70cd52879b6bc268c9591e06dbb434054c50e9f4644057057fab256a3effc76da2ca6be78957cc3a2d7fcb24e502e8f36582b514936353238d2ce388f2fa5066177981a4578bbcf456d712fc6a93e43893f2c85d06362299aa37fdf17fa157e14d36a3331dae8984afbe97463c627020dd6224722ebc93d0cf6f8a55794ac4c87441c11296a1e3aed58d5e27267a718a0fcea0a2c3e08bf82687c0eb0037eafdfa155720cde9cfd9fb35f8bde6dea88b74c56d1152dd21c763209be552eda3842cf4404c556f0cd215681e6e497f5a202785c5cb52754f72182483b84423371131c5c9bf82e2f6a3f56fabed81b658bbd0a42d546f7ea8504d62075862c5f4d4753f709101ded16b157186dcb296fddc4f5e8ca5a8cb0e01d001b7825653c6e2b6d1daa53f025accafe35e80fd57cd967839f7285dbd9da682e9e898232ce0cf716f7a28b65fcf95b0ef272d392b2afb32138e90e6a114b6065d0334ad9da3e52872d483bbb1f073e4d4e33a1fcbab3711abf7e9bb613bb770826d2d4da85f8bed4f60a1082295687b2422c2083751a3f0411e95959a1c58a23a17c667a05257f08c25a33242259d8eb7a4caff1fc0df16bfc14458bc1102ec391fcad96c6dc4ff6f066f0c9127588ae82ebb7567f16d9252a33651bdeecd04ee9860d7e2764fb64a6b1cce0bc9ccca2e6741b31011d3a81e18848ea1ce14059f06d2413f05caab2a783f1b67912db0864424add5f761bfba3944cea8c4eb6e05437d08cf20a8e55c4bdcad3d3f1b27f73fc12f16c53651c4490fc89c4b56d97cb442bf31d8bb856c2922844b55a4fc87e2c29ad29c0560e1cc3cf6d47d27c8644f6902cee295fa23631222dd8ad2a95f7508966919c0e2512ff5cfece1eadab734943f7e8ff7adc1368888ffd3f1599c66a1eea0562c4972b752ddbd6fe9628a56c4b5276a9602529020834cceb5208bcb6638f30c2c42e2856d66e8466f13bc4e3d75a1d34fe69d95b009dac26ad09fb124c8d8f85d1db87be51144d17a3f5bef8aa7faddf1466309b9aba8c595692a73047186ecf677e3a03f54642023c7892b47e54fc40c30a414bd9456f83d068570bc83d21fa8c0e91092e19f46ddbd4791b2372ff188d0455f4893ef70009c799f48991c0cb752bd65183545e065c24a4085c85f0483c8073dca3a4d8d326d31992097e2fbc4910de13a962fadb709d0e0e1aa86f008c6f2686113670821fde4ad322660c76ab5eb5b6c0fd6110ca9c34b360e03e8b7cad4fa9b806cbbf86679471ee61d2cfa79694741aeab1b7fffbef7902044e57fd9915619e5c82f3f911dd4fe85cb4140bf53ec81a93bcef683cd585eb4f695513eeeb78af9770427a3096c6316dfaa03da55d65143bc8c2cc9429d25c6005b9e196bb90df303635fe11b3b6ba796e0de4fa09477d5e2644ead1a21058a1b414669c8dfbba194eeea7a10aa2dcecf48158f076f9f67937bfc93116049942dcf69fb3bba90faf3cbb3d1de381f5bebf3f23a05903aa327a11e197671568ab4332d0598cb0c4246078f56e0e6147bae25817b727e96e1385f90e036afa19b49cfab8b9b20d23b2847c9aa9adbe7cb6618662ece8268780d05a25923a4a11011857360f25aed83e8c6a44f5cb5cd070a5cdbc6f79af93c8bb2154a925d9dbaad7f8f28c565efe570405a8dea39c68436bc34a73dbb7edd38a6cb6f5e608d4a0e2050f26c98073cde27083f57fccd243e31bc0b3ad854cbd9af733f49484bceb40eec50ebc499a98dac47fcadd34987634a6ba90c91f463194d0e163a8ecfd80efe69560f6ec2c453029450eb345805da2a2ff03f6f41266fe3518151cf68ba1b6fd0492e2e8e7bef65917e090fe368bcd06c96521c3effd2efd90eb89757b7d0f1183dc74d535d6f20e980ab153bf60a081d86acf59e310f7d01718b7e90b8d1d6f63ba95e56ff290f2a11047d344a5fc238f482816d3682de1d500174c14d3b4cf7147dbd6c9af809255dce5da904045affb9d832d7710a610d8ac648750dbacdfbf149ac0d332adbf90097a428abe40b0ab336ea0cf558dae94746d624ffda97d8718072e0e85701584b9cc84230bd764adaab7557bdb1524a4e7ec46f8a679eecd70e52d34f0717c990435fca46fd3f4c1dbaa91dfde89957b10b5485e3d9590f0b0a49836e8e8ccf6d5ab78b7bbaefb7ee413a60e4bec2d61c35cee3a20ed3a31d778a1c859e66f9c68e116f2e238d55f51ac7ac28698d9f0c2457a84c6e38c10a709852e3d3b3cfdee1ba41e38656daee922bd655a091077cb8def95e395e99c6658503f20e8ccd8b179c312bc81ce9a0a305939bea736359172714c30f6ecfa704e95db605ea3b3069e24bee135729c6f8e49666a10a98254905423fa190acf4433a82804185f0e33cc01bfdea3d699017b159c883f642aff4a3c5bbdc63b690123bfddaf22faa2f14477836042ca7348842e3ac1128b6aa186c3545c6ce3f0cfbb06d7a6723cb2a677b1f90796c1515b04211bef52b0db2a8b1732e868d034f9977b507e82b90e5bf2738aa75c66269523f10083fa8d3772697d7e5e04e14c826241edc200251fa493ca65e94e899584ba60b877edc9771dc96fc81f0985ccace77df0b2afff6dd1037995ce72bdf04ed0b419b8ffb5fe65dc4866731d9cc33cbac4ecda01bb5cc5f8a6c7e05cdff434873fa42a2a594b4324c5f109f3c41a66ce8675dca1fa30f456b7e94c48b0a2770c63319d456ff4a93a13e7a3e5e752f7fc52446c407d2129d87b2c0caaf737ceed8364137266d26cb54a88fa89bdd5b1ce63ae3ff4f8e3b9498e959a0dade305ef4bcbf325978524d04f4d215f26c56b28b35efc3696b05873b156084f87d2c7a0012405b5103a87b7e92fe3dcd0695c7545a276793dc59c1331896aa261a53942980b0777ec7cd561576cf2354a12763a43e3ff8b2c22078f37f55606a9db485762989d53367bf3647249b3045c72cda808786eae68f33f8d1ebafe5dfe21d1bb1f46a9ba505298ffcc4203b84ffcff7426f8a73ab9d15a198c32fd4690c7ccd23af8697188093899755795895d2ba8f62f2f1520756becb88b8f39c7fa9a98895e63608660a8fbc9a943647e191d553a5468df920fdd332017576b8d4e75b5e271486137e16b402298664f53acdf10cdc38682dfbe2b4fcec2310540da889f2b9582bd0216ac49c78871c54b86bc8b728c3882e20bfa6c68f6532732d844bb0b2eb0d9f74bd53473f1db0b43ac1fb516908a96bb2170197a061a0b5eca26ce676781aab5c7135ee99cdbd3f6d5952691858fbba8a78c7fdd973e00d47670837dfbf997c189f1fda76f2e8276a38e623ba0f91df043adee23d65ba31ef916bf9346f3e4c149766e999080f3b049170ee4a21472148d2e43db138ed51b7b6f7f774ced09f71f66ab9d6188b29dc3509a3a10daa3623766792f476d16b6de8d7da33e8da76bc394028a506ac7cd677162830a6584a4adb2c3f825453db6129162358601dc6d700ad7b5de9099ab9ee4f34915511d814f41fb3174035b0ab3001517f26ee271d7c81fcf79b0c98331ac7173aba601c042e8f6c1a144113187ac83f9539129bf0884664bb150316c5704710b3da6440bd516f4ebfaf1003fce423a4cbd145be68d233f47b655eaffcfd1f981121dd7226cb20cfa9b5d292461b7cb80129bec5bf99597bc03070459a598965ddc0050300e0ab3067ca513d8977275a934f6165306eb12d20038b7584af3cb1e6843a6753f06001186cd4ac2dec248c3e03a4c38860d41eec6330b7cd44074b97417e0b698dd8811336a5fc2e65d49c55b473001076ade32fb5707dd8bf6fc082ae35dede452421aa2f6deef3e2b66353e4e057d484871d4efd588469d53c1343057ca1759009287cb8042711ef627d2c4bcb2c9faadf9ba5c7a9868a5d1ebc028d30ca4648a19e660f73dd1e8fe1b3a9da71bb6f28c3cb1314e690ca39a97914235527d330ef3fa7dc7aa0303f37e20ae4d4063b0e8a638c83d90557781d723e3ebdc789b3064cd2008134bf0e0a4b1245047622e4a4d80da3b9f7cad44d10d3a7936aa1a8d146c198c5cf62bfa3ecb3f1b4799a03ea8447662ca50859891aff93a0112b5f10b9ad5d1d9f1a5012c10ebbad2c67e7ff97b48dfdf9e3271c58b48bc6150c421856eb283f129f7c3e39e1dd22424a2c5f40b94934989f63d43e21896b35bf45e080e764ecccb372ff72af2eac09e8957209f2f6e5509156b6bf9f8210168e8e138af66dde1d1ffcf5c01f64a611ba4815fa9aff05b1872ee2eda3c1f6799c69f478b507c131619e2c376cbfaecf66d1999fd75d86cff04fef970b07a875f8c4da79474ab72e3017321c8ff32306cae9ac6d06e176711050eee801f416ce51b8dd55c66bb71f3df97fa9cda3370b1d541266c82b1d30cd52d0f9e8e17c9d048b6585166653ad41e235ab2d5663a6491cd014206daeb83950ea8a8431f1852b7ee1d53315132a76cbcb4bdfdfdef7a6784e096ca9871007f99841b70422b151c4eafec9671d62d41c9021c559eb39b1de867bea2b3028aec496e92a331cfdb78cecd3975808a3196996187961b614ec86971057e93136f8cc9fb58e4960aa0a8a876acee66f77a19aa9b123b64d074545b5a516336047f9a6d8e54168810a0e3556945a72da7d51546eadf323201b7ae85c4c76e3dbeae6a24cf3ad224939f5eb72b15c5e1f268a560b604e9f5709cf659adb82c9dc7a0829efbe1de24c9a52e919eb33489224ea551ae0e93d0d662c3c7f9358ca339d9e84ec538ed966a18c0c22f11ad6ad20d1b34cc2e6eaf18cd9bfde023b5286938001e6ff5f9e1b95d4406c794dd8b2ff22ea7f8eab29b57f653e3e10136448d679ba3efe233aa123018a266beae378f7e91b2ff273479ff8cb4498ea3c8dcab32823a0dd5f4c2048f4a2bf54a94e91f2893c77fd1a5d9bec5332174b16c513edd0df4808463a8f573a316194990692bc618ccb1e49b364e44d2cf78a774fa977231582759cfc15a90f43d9b333140efe69a304f3cd7dc234710f17b767d2a8b35d7a58751f7daeedc233310a2f88fc1f362ff8caeb55c47dc58513aee90f63978170ba93351abffc6f7e7f489a6c0ab4f05981b2f9e33a82514e4a18100be14dfbdfc352a696a816867d000abadcf1090ac476dd9b67a4565cb4c0ea3b510c165c925e6ad886ed9686d49ce45d644fb66baf2ea5bb15d55ca806a505066df601e83d2119d2768335f5b80a50fa6cd18ccdc06f8cf46e85e022969bbcc6db98ba7862d1d4edf984fbe85ecd0f3393ebd3419fbe04f75ed6e1a1dbf6841d8618272e0a5b599e5ac19493c7bccf3144f5564d82043cf1272c199f38ea39ad85e6b1db2d8e0fa1f201d35a23fc52867da2bb825213fd73720a478be6c1b516d4417bfa151e80e3a41ec90b78690b0e43756d29d332b356b482ca0ca47ae06e7e91b0c41fe80ef455cdac81ff4aed8382e0a9c1f48238872e2e5534c296c71625546fa3fc665d086f90642f54fdb1875f5f938296c09c3ce5546bb1026c298c3774e9383e42f62fb8f68bf119ed5a66aae55da641e7d4a7a72309b9115cf95ee0bc4e3a1883d0bd512ae9f2cb21483528fcc828591caf8c4d2c63d3d4a1f4babaabbf19d39a2455be21d3a4c131eee33fdd77eb599a11cf1aedf96e0cfddeb6a6f831ea121b6bdc458feda4f710f5c8ef82571cae6fe32a43b83d0b01889c6d89f4fee2e9f44cb884bcae5c4c293f863d8c16776e5ed34bddf7a6155c6b340d1df0975e437ba960196dfb5ed0e0b4e15d5419200f332a8d74eafd954e45f71a7978cc9629aedb8cf7c3acb08a1b70c7d60871a1218288bfe3ac5d155885365862301763917cf7e565612ea3788a9245424ddd64ec1baa284a99e93dac28aef80148aa7b64d47a2a38df87ce73ec678cfc0564d467ac5fff1657b0fde91d5de0a3323ed1309e0541b516b098ac10e5c88f5cdce85f3d8510f1f8f8c01fc7e73bae331c0e94a38d7e99d5000b98e64ce395706c48835e0633883bf04d040ad4e1d81956382f53a92df27e93ba1cdcc84ea206de933e2d931999a18183e4e8d90eacdcf7dfc2d2fca29f807d458a74e98c02ed94960a136a7c58ff3a90d99925485bfac148bf9541e2052c96b41c7820f2febe3811bf8f72016e6c9c198b8556e7ed02580f9a1a196d3d574eba4791af0348da6256b6c24155bda13cf99b739c851f853783a7e719ce56203a4157c4557cc03da146040fca0ffde142e0ef6732c34ddf046d19859547ec5e9d6c3dce765cf73da8b65508e421dcee83b7bf906d9a6f5c8c95a11b3037babfcf9564ac86a8fee0c146904bdd48ade2a64d91f4b38179144376b27c03b753b33c341ab55b7b5f3578691095ce0187822aa5b65878cde871c4d5882485d67e3149d44c1ffec5d770ede16aa0081b82f0ecab7d23f90ccc465ea7f5ad2b7a58a8a87ed8916f397452c97e7d72de68bd49c75d1ce11795b62f66d7f5d3e55b1a7efaaab6a03a6d2b5a5b3d09ac717d2875be9aa150c0d4c7ed5a219b75fb01df167945b69236d6d683ac7738fb2fb44b69bfc583fa1e216ba6f588d9f217306a208342e7ddd1e848fcce0f2af6c77a9b686435618bcc458b129e8efc09e005e2df58ce8d80d023715b661e8759681ecd971e8d0432862372fa65b73287d2bda4c5371d0b93c324ecc882c770955b405e312f5e526900a720560e101ca28bb05e2e100a68b802bb0c9a77b467e3821242f72096ab6c01ffefa67b88849c3257dc59dda0915cdaa6e9c6d8f399cce10d940dcd74b06fc80b0e8906cc5e5d64c34b17d4df101cacc23d003e2fba3d8f91e2a2ded0e1d5aa12218d1f38e891b9dfc2822871f634fdd64869b7193d95e644ca9a2193da725e5a47c5985b7ca95a70f402abbfcad3912d2ca51b48fb92554e7fe3e1751a6b0f504b466ace2d61e70ac87ba6b9ced05931495f9051fda8b1792352716355a6dc8fbbed29a7c8fc6f256d0cceb5e6e459b0a3b2f7bab77a4a4676b5062918685408d3ca2326884d63a7b02fdcfa6ea425f3abf1e9af292f9d23724c74dea8f8d57ff2fc4d8119e0450b3b9e3ab2a74e7204d23eb908d202de640b8e7f0e1a2cd5505e25dc9ec4ed184ea872f22a69d47f4ad5369caecb9e02fd161a866def067574052b4a4d7d58cd8caf9d08834ba1ce7043f70a20a1c1d72fbcab40865b87faeec771139d34b3061f46436bc44bb0b17c044413c229842dcd6759eb7814bfb8b9296c953dad85e22e4cbe0d5b7af29bd5bbc92f7c2d14b2c99127e0010ca201e8783be0d68ee909183a2faa5b1375da4ea7c179c94779bba4fa26bccbd9896656ee6b52e2eae292abb6f9768202287af3dbf9da4eb3ccb2d4de9688f827f0e1f44bd85db6f146a69f40750858b12495568b029d33c1a0b5421e3eaddefb28f962adf558cca1695de286e534abc1a8424cf6a552bca48034704a7219b858a58f2fe6dbaefcc70456b49cf30c9ce661f45c4bd4a4eaf98f3d731e3f167b5fef9146b6943c6583240665346e8be0d25e230f7b427f019ab5f3b2ee7f0424a85c8c9ed7b388b1761b00ab6cd775a16453ff7563cec3ba97fd7b7f9a40d99517c1afdf0504b4f85932456fbbcdf6cdb23d9e22abf81178785b1fc31693ef7da4fa456c5fa60eb094dee3ba6c3be03c42a9287bed3faaabbf0fb907290b884ec697075a4c6e4d4f59128f07d52c684a401bd57636de8289b9404009fb85487f9c998c5a32da550e1907958f551b3e0346a14165cef9ab368ee03618545cc9dbec32a6348e07a26d826020c7cefe164d71765db3d115192c8752ed48b3dd6c461ed5117514548b53be3a625fbcf87f4fb89d96d4b19f13da5b2c357eab6825db7864e79f43c480868e97ef67784f360b5a173ee6d245d733c5891a1f1c15221f8ff07ffa6f31bf15c210f8398c01655cd980f0953c8e92071e47b9c792551351f0bf14d295161d7359c1ad7825b21f4be440f5d49b407eba5224dc72a37383b92fdf3822e151789a4a7c709d5ef69ce36b5d84bc038a114d516e38f016655197ac85c1da88c83bdf3434fccb238cb5aea38bb16c7ef18f6096c421217a83338b0b31b050e65c1177ec19b9549cbf7f5be55d5960621d2cfd4ec622423c18bf9b03155a276428f5afea0b0606d6ccef0ce1458cda1ba982c50c677686a7d476caafd7189d929efb6de15e12487dc78a3e36666ff81bcf3b422e71bebde75fd50008e53798c8667fdb0fb24367b14d75dd7d4a3be11420f78e9062277518b71dce7ab0c49af9481586fd34129a2df905218fa7fcdce1892d6f5aabdd9d1533f0a2bdf3ebc5b95e38065dfac1e09cdea57b0d55576d0cbfe3729642da7cce98a8f71996b2578a68ce61d181fe074aabcfc049323678b9a54126e2d066ea5174d0634f9e7884cefeec7cb34197f1a4497c2b846348d57fb2c304c3f0314ee7594de442556043d79dd324e417be090c862f2595b7adad1c9954d9d2581911f072085ba3156d03844f521320e38693d51b20baac4081cea7bbbfe41a5ae6110608dba81dbb0da44952b18fec37afb71d72b61eb5459c911366806d4ed504afd79a7765c050470a5672cf1bb3a485dcdc1bed48ff9080af26e105d3280c13e4998e7a493cb83099d7390b8e8bd097ed1e642c7332ec9cf032a38ea6dc8c6b33d6fb3609beab19f71993dc068d2e28e3b08bd2f3daeb6e648940a6a8f01528c4cb8c9959602e5772aa144a72ece28ac8936da3d7317676bf6d730e54299729ccaa9d876c92999ceea74f49d3032a2760d0b5104a8b51279c3d54c187fc2c32789a1a5766c298c8c7bed95fdf713a107fd6b87e0c29c5a0b7435426c41b3b09b769a43296aecfea0ab8cd4a1bf7278bbb51e32f095aadf816c965ee1457a2ee79ab439d49ed326913b1af27fc3dc0ec271155fcef94f3cac5a117ad569839409672be2a77ab37f0ccd527a85ae586773155ddfd082882ba368a6194f697d756a40f96e85914ccf1466a65f28d1a34f40e85dafe4d4815dc74350a917b50b76a75fac04e230087c76238bf5c696179f11076da6a3adc11e31273e09e4aef972241c960637f73cec31308953db95909e953b89f9aaf53b166710f43f7f02c86d053cf0fc288282e0dc9d603481be557ee9204d7e02beda2e066cb9b184fddf5a329423f957520ab553bb6b78e08856c4e21fff42ce890d4d3e87fc128bd937a6a4705ba016e95ca239277122c6c1e187160d0e163f41e5aab31c4ccda22966269b7b66f3eddcfefc962aff660a6a05a9a06ada873e2bc0a9fca963bfd09744ed111a23058d46a8061d2e1b843bb76de932bd24eeba06d0f95a4910a75a5e819a4b04c38831870c48f138c5812955c95a577bccd5df30a02f91fbc42782ef23e3043e822c3c48df9f0430c538ab1c92c16de65d3f61f650487f3226dabb636b05106f9b99bb20ff29ec941853b5f22ca2cd6e17a22299a3ae3cbeaced1d84cadac1af483946edb83ce394f156c859380a914cab4ea5d854564d2ef3df6dcf22ee6c60d70e2a2a0a094b5b0d34b206da4d882e479644185dbed1dafdd6a44fa0aaf4bf1a7110ab9d5480c1156b05ba3bab0a0dff85e61220de887bc93ce91afcdf367a4bc4d953d4b970b071e9aa5862eee477b1d058906433ca05c42a16bedae7fe1a733d6cb0c5e8812325a9448b792a5a4f20feba5b6271d518f9269667f2895e7329cc97f40058b18f445aa581a3d347bbed4e3225788f33aff7f51bb5768b5af26ac90a35d9e7fe5daf60a588367d773a630fbe31fe55b8cd0e128b32e6c3e658cb4808c1db5606bcce2f9e0dca4d6c78b222101ed0cdb79046416bad32a4ebd6c1ca1803f7e1d47fc560a6e20bd0bca44af3d6ece499dc06304445565c3a43436f48a1a5c7d21d073be81640904e02159c75df6700861d0eb041e05b3bd6f5f51a11d46930552b9389142ec5f26e2552f214aeae911bce7e823ad23f95cb1108f71bb35496cb0f36ae80fc897b5721318bdcb4cce343f22ae40a565174d10837fb1d0dcbfb0c57376cbe7c57779e20dc4fb68cf0167c7453f665de9d92e06b19e8309ef242693fbdf4b6f1279ce6d6c8225b37e652bf5f12b0bb8feadc2c49d604a0d4aeb38000a1c79c4046e465258393dfbc8a399441bd5c42b971759f5bdef64744637535f9339e4e979c2ce3a7465a2f7ef290f00ca487b49c65ad7d7ac0de514a24389a2c4105c394e6d17a9814cb5a004b541943527ed92c6b8a035d839d092e153fcfa3c3a97bf67943fe12ff3f844e74cc1c419d54d486b393ef7ab3c29a5cf76ac562a3d1c7124d7b4c6028477743d7f1c0eff7c1f0c851089cd32829d617c2cc18766048abce0fe571b0ca6b44a567bb792addeced4876f048aec59f1082d817fc8244511deea8015188809c38e4f87f4be061da2bea8349a73e9e1910c8781a494495f838402f6da3eeff5003b8bc2860356422c62e45917dcd3febcf2d798b03f8a34604687ecc75f8586c8b03744c9f9eea4c6919508c7ae1a56fe4641a8516da551a85b89298b0a27efbfd694f93faad573ac97b5ff9b498cb9a8cc2b0e6a7aa0057ab56ad5b11df4c11ba7223fd66396f687ff038a2a3eed126aeffe2bb563a13ead7bceef1e66e0b30f15386a3ca9e9b28510113dcbbb51a5ec2bf9cb5e5c6ebe9a6ea64aa4c04b889c07331d6bb3f826ea850eb01fbc262f9b6b782e67333c0e9add563a3e207fd8731bbdd86b5f36046268f38b81845ca5b5bdca6320087650a44d760ed6d8e70a42525fad62a42e232ac55af7665aad56f3bc3cbc90026a873fc601fa8a0965c864e9ccb98595c3e83b4e0bf0bd97729586d629765584f520afe84a0212c33f64b29204213a597eeb3d65fc7471bdfaec2ce48449e0a7aaeacf1b59625b6b1cd24b37636f953146a65bf4658710e642201cf80b063d5ee03491829c5dc8a492aa83eebaa7cb99b7984fcade15e0b0c308a80e40df8dc2d0fd688310949a93cd0f5f455cbf50d17578e7de8fbe51edb3cac6c2065b1106235135ab5c85a157847ea44ccea2f6b9b99b2e7067ee53e8da8238c62bcf26be10a79874d82bc79a70bd05117cd00c9c83c58d796fc0ed8225716aca813806061849071d0a5667efb0b8572368b2d042ce69169a5a941c94c83fe1121092db53ef66267f82270c890febc007d21516e6015b21ba4c226e62887e2ab10ef3652d7b71b4926ecb1102d52176679a32750cb1a02ce39f86f0e67602f15c6d9baa7609d2d4b64dba788b1ae92ec61b2d65cdeb1c5c94548e7f786633a5c90401769bb7c628009b434f4f3f7b59056bd8ea209a6a336fb0427ab4e9ab372bdacde5d7b4fe995cc0015d49892a07db9fd5ecdd74ffc1291a0083577e41586352a79aa447c9ee4b1c9787c10fd9067972a8741f9d8c2a3eb4648c70691151754eebdc90981b6e460d4669dbd5a8190f86ea0bdd1cc7305a173d2549849273dfb9a885bda765667b9364e3f73a11a19763133bff27b9efe8dea53cc8d7a4bcc9d5866e3b1aa879610b2ec5606482804ddfc89f7fed5dab403e8d2138f06ec2865c61f0c0790bcd2afecf773d33e1ae9998f9debf47035292ef9764180beaba9714e0f0f84aefd22ac5f3a033797e78aa12176141151e94425fe61d6fe9117d2fcef3ad0ad5412f9ee316410120d626f0fde906695c1f11b84ada425ac30626bfc2a2fe8f48bf0b9a940b00893edd2af432413b73741a6baa3014c22fe82f92fff7436d93b4331780ca6984aed0ce3cf0db30fe3dc447edd4565612d7ced5c0f25986497463fde69d8763015682dab7006bdfc7feec5124566c0dfa113592f4fa4eb73d402356f48080044b3e76aa5f546757b2761a87fb79569b051f81b5e2db4679328da5ef1b2cb1f3eb06ba271b0a5372936a3936444b98ede0aff6330768957af5e71a15973a93a002fb95e4dd348e49d93bfdf8134d45ed4aa4e4479bf660713ab1c9a487cfb0f823b487c48a7f2ddb85b9dfd6d174e46f9dbcb4c02dd99c4dee313dba9b95187e3eb9d701caed88e3fdd109be230630b2894da8b82bb9db567488c57e612bdbc11d7f7a05b89552e692d24ee198bcf75de063ac84aa32e39a8e64dcb965ed3986a61b13974d09ba5f70df202a725f0f0b02bc90eceefee3f925214bf4970fde57ae1ef6dd76d00bb9f2bbf98fb9cabe67870b8d5875c1f5895ccc43c562d4fb1f2bfa2d416173a378ae76fc03eb2229869f6aa481e9a8c57884e039d3cba45c3b2de2f88816bb55bc77121e8a787ed446794b363723427941d9ae52bfb5dc27312a5a4905698a1b809042c52398f38f22bdae68be20d5efcbe409fe2d89fdbd5cf171ff661dca23067fc90af2d2b089ae6eed107fe09fe2e7b71d9e5cba53cfe1fd6baf1b3cc6e6cacd17e872daa3c48c737a322c7c2206f94eb48d45ba5170417989fcbc3fa15a0460259c2652211ba26ebe73664d33ff9698e28cee27c1ec82c5d8100f3e043bc1d91b6e88fbc40caac578e2048d70cd8396b26b7e58fc8e9f68163807877200c30a023893e8a995b42bf27cf2cecd78f8910f1f159b7e503d07e013f899b63dbe654d561c649f00f02fe040469457a30a2aa4eeba8940b3fa4e13bd458fbe661ee842a7fbdee7515a26bc9bf189d3cbd897f3d2fee22bbd48da76100486451d92da0bee91a133ad8231f366d9e691d009e05aec572fa9ab60da08b7c3ffa175aa4f805ec50f33dcaf01a7b0bc072db5de06c198d35870ce740263ac4fff61cdfd12447a01508f22d6210059ef58344b4f80d89ce9c15672d0a1000a41824c0f2471ea241edd60ffff8902b329124524195a85deced572bbe57280f459c0250dadf48a0079c9a3e600fc02e182e21fe24c34acf7789a7500a81ec93a2b2b47517a848fb695289ecd66e3c763b36a54e23b5f71d81c6ea82dcb243245c0e5cea186ffbf6bc77b170341cc3e63bea592f6d4f1ecbe0df786354a61ac029663fc577d437d5952d5faf5e099116e6df9e22332593f9d4ae1588b4ffbd80490b7cdd470c862f5eca92a45ae5f46980411db8659d3ea57169f8eb25d035bb6abc75751b544a2986b6423e03bf3edfd4d7e42e94f94276fdb5a4d1325b44176b48cdac7e18be645f877e22eff3f192ebe1b1a0d5b6da5ab2d2bbe3212b130544c7afd137438dc59950c4775130ff56ea08022d7cd03e6f0a7dc614aaffabaf2025dfdced11bffed9309552afa52c6a3903fa152ad1fc2808637a14201c8588d88bc3ecbdf60b1e9fcc77eea57aaf994d6ba6031d75ba50eff56b927e912ca3c49c87941eacacb2ec90db67a727a0c5a65b02268af3d97cb3f6a3befd7144358b7b9f8e7e966d83d966dfd468b18aa4d3f9963e901170389340b3b17c630d430195f9d74fb17943bc786f6d06e56d8d4fa1ca134a4f51008041a2b3e518b2ac94204e0b7224c65270ae146b08c94f9e2943db0ff8f912a97d3aef951bfe8106868009499bf160da61561cb688955e53ad97c393dc1866f45e9da287f55ba9a75053448bcb0bca7f8ba88b8266882853dbf3a71689e5aee1d5915e29873e3c6f529ac2506d7f584fb973543949639d204913371b2dce31347cffc6a59e532fa6fa07ba2268455f4e2bb301efa97e0218c26de017792411b88ba4496331aeede1d4dbd3116ce73f0f0e590b015919d933ef394bd5165596413ab609efc8b4d8ee5824beedc03fe34fb53d0dfdf772235a9ec7d7f6decaf44713de25fb85b03ad93e7e17ca9647507a89c7da328bd77507efdbdd6bd2c60d9480293d0d8e3a7058d07ae941aef14b121c363c630c6737bea18505615dfe08904a01df485544aaf73eb63fc79c93bc16f47ac1c3f9b99a97203435f0b065297605b69131210a63f77ec906a7f89cfe38e91c02c8ddafed02356382a7edccfb82785e60c3fa2f0cab5e8f056cf42ced216755ebcfd536ff67e04300062d2adaea1c5e07d5cbed7180e3d558b751c884d74de53d5dd0650bb39ee87cf5cf9fb10b1dd82778d3067f6a579050b3f855a447a423953d0c9b788713a6a5f45395f2681c3619e8bbe35e4d8693d23bea27b939884b5b27509ea1c63dfe71cf4edf9192b864ed47771961dbb1454536fe995a64f37d524c0f3e9c1a853c72eb567e3f3b2c349cbc5561f848f6d57f567e3bdbf3672c3143ae8d1eb6a5005a68ec140abad1f4ef762e48cd64d394e3181f10ca9c6c8098243641bdb5251b8c6e490a4f459b58c6d4eab169d3f7f67c2e7a10995750d9763469885560f2478fef6eb5ddea7a83a4c69c5fa23e59d44cadc2ac7b78f9be57c4bcf0114e39ea9995062f49244effa5143608fc648fc6b6937eec4641ed5acd723f353e9bd89a55a6cc79a3a4419033a8a461f3077bc16dbd7f7bcba6a22125e6e4429845c8fc7cca99f808bed169b7cbd71fef3a28872eaccc1ee1fab238416d8218fcd435240e5b342c7a64a51d00e5d8f417ef7d5bbd28659a11b83f3628fa6dae3cfbc1fb749cd5f147485d0f9c7c35f8a3a1d8d7e62f950082a37959ee757f87ca5d440a7156ebe4aac4e9b44fc98ac94ff71e283c2ca98bc09f8c702cafb89b33224b3948d5ac67aa391a0f74cfe40264b8f1454740814334954bf7a3244239bfd47dc0e141032b34987e80def67b5e6e2ff4947bfe48e8e53ee1be327dd21f8e3683ab823e54de6d80dfa802eb16247d92fb9956400dfcb16375738da97507643b4195d3e66592886c8637b0fb2dc426228a9d4043ebf4fae50fe78405dcd1cb60cc659eed26827ec41e08ff462f8dd8139c116affc4e08d78f7711cd1e50fbcbff369bef99e4f02bcfe6c3ac69b3b7c18939a2009dc1c81e14cad7408ff89a41a296ba36c343daaabc2aa96fe52e8047ab85ebbe1ad11c5203ba03eaa36cce69b32632137862bac38689d370abc422b6766a13817ae56000027e3be81f0d931cc75fe994cb9b3ebfa50879b134d7cc7ed98b2b8c9c7b9139c6860673a882c5338e7c1c4afd25af8f41776106ea136711475f3b153fcea41578a62789ac4fd477b69d70b2b47713f18d37125b081a63c188342a88bbf299675b2bc1cd43274cf99fa4fa0b9af112ac1a935e1dd46c72192b3694225ae39a98759bf94a5a14cc67fb5c348af84a2b990bb25ab2d8726372cd6e4bd1e7883775039f81c1006add7e1c642b2e841287cc2240242bada993a5318f615c37d6934575b797bc718c13b6e496ca78d6c1e0339c019e78f60a235125491e9442d9ff932d694cbd0a126faf707c215f2b8e6f3ecf21581df105e60eb922a2a09ef05d13acdd3b51cba6ae041dbaec235230c5e467875d3b838d745c4390da0200ff6882310c7addcef4c278b4cec1d4e9247f9e8d34284dbc7c473238ccbe6063658aa2dbb790847036d0649292ef7aa852b13ff4783e588188a40f22984c9526b6ef2472cda21d0b8ab9ad3f22037d301cf368c648e37122d403c3ca0ac796c7cc54b555d4996cb320720ee68200b32571916a8837fb632108284660984a313fa8e56aa21c72fc05ccebff7d555786549f173eb7523984bd797ee2600e92b2fc435a2a3c30a3b23473b1fee0fea81494a0fc972ca9f608e4b2085fb3af0c05e8a66147cf5e9e0490594c55df6313aee2143604d853f82b75eccb4a0016b38ab9d44600ac30b018a0f6c900a3e8e642e778c8ecff23d51b3894f4606362778027e99508e849e33e41c16f0ba8958f09826826bf2cb34e3773d16f500f43108e6cbed382e2106dc5afd97c85a2796905c8d48bc9ef04a891d3706ca517df11b972e956ee51c980175fbc9dac69858e21a87c83110aaaa16ea9065069aa6a8036b2439f4c09fc83c466221be276ba305a410c7c148e9d877d3388a4805440fba947e25e811ace1b58595f825a2b743d14979866f209a13b61c127bd21d70c8191e02510fa7fc320ef20b941dae79de60e9d5ff58c307ed2645f6520ea2c0b387fa60f1a8bf896d61022e17aadb49b98fce6ef42ae0114429a7723ad0281ad74c66a593e75feaf6116f56b3984de64b394f435f1757cf23f969c5e4789983814399764d7c3ecd6d810e82b5ab14552da8400e16ff2ce6718a2e8b932a58b26092e923ba7c2af3b3e8d75999bb30e1b1a6607b6747dda9f0ce2dd1053e869cbd27faa624e1aa22b3c0b5d7f66674002e4ce2acb1450bc8ce29e4744e2f3d4e5c386b785ae285f139c646ff184ba6b1170871b61618d64b8e348bf664ce720ae7bac887bccda19b5943cc7a7ffe8dc338177b31f2022103eef54d3028e0d1c20c2ae3e06bafccaac93dc533ba16b884410fc5b3144c9f9948f4a66a23c98b0af0551f6ff0f4a462195ba6ba01d27c28d46a71abc0b973cc0d57b16dff7682985cbbc657026ed2ab29588d9c2f87ebb874a015b025cf4d4fc9eb69dd667c45915e11678cd53f0662ba503a6350c09ce859af8913e55a4e8b97d9bc7f108fd013627d5e0d27738f03ce384346bbcd2c1b400949050874c3c744e83690c3e5fda0dc80b224e900f0a2f5209ab3fa3a96361504ba64129dec76f3796269693a8b4744ad8a112887e4143c7dc169462365c8cd94d29bcfcd247bc87aad7a11337d92c942822ae7ef85c2f7148581f70683427042d2a5d2e7462495b9f2cf5f43cea815a69fad56d42a7bba8a82680a8897d70cb5124492f38c4dca8ad3ad353496e62ca306cf0dd1aa744147ddda1b0f56508ab7c5c1bbd8bce3eac8823a403f7b4d8c4f23ad85ecd9a3b6cdd57c3de1e7d78a9d529281538f58b57752dfc1843277b982eaacaba16faf0134cf4d4dcb66dc901ae476d19a82292650eb853e097abbba26b51cc8fd2e23c611d2f087c618b841ca5456e0a597695ac5ebc79bba6ead830ba7ca33002ea140cf3e2c5693ac47dc1033366a68e8b5893d997a43e7c9bb060afcc8e6af8466468ea08816aa98f8c00a6876702df9d7ca89f8f0df70ec334afefea4f02ab9b507fa7435c284fc8eaac660f7f22bdbd85dd51704a47d0169e971d58940a139f18b96f961e79bd2e1d6a2506ea9812a87ba2f283d18879b2412f4a3d23d4ab191f11826143ae36194dc2eacd45a8416718571627aed4fd40842ef11d5a733c1b61668145118c554a675c8f9cd3970954c899b42a5a5b1e6bebf10b8d221c5a29102cb4e25362aa545b9d0875efb9f43bbe6575148fe95e02e93ce23fe8f7eef933602b6b1da89b7e8c45f7350c255026dc4dde6b53befbb44d74120432e74050a4a56c095ab52191cf9c0bde7760e307cdc65e16dca9f1953f8ed815f7ca5bd953f0d10970e831c2b100fad3eb7e53a07373c36296efcc2e89e6e47781a77556e525812b288ce72a058b7b11317eadebc54fed6e49cdfe9d26a604f62cec5f4ed6b9e2c90b08a60cc64fd6aed97d94b83d237dc37b216bb0a891d3ee5bc7908638a5a7778555816f586a2163b85ef6e22d9826d3038e326d1ae7311c98b168853b6360fb7adbe372e1466f0572ddaebe260a4a6673220520afd2cd35a79a0ab46a795b675c61bf60c803241606870985666631138f8b60849e6e0631ba316e5413da35954062910e0bb7ac5a7329d42e503b1ba5e900739b8d13cfce1dd693992d8adabf78061885c2a216bc8c2500578f9277b29d2bf7ca55209f2c76ff8fc9475de298956df3c11c95371edba7770ef9cc5f3ddf14e2f967a0c89c723692af64457ac1b28496ce09b309658846c04bd35c8df05c1151326eaa7b7ef14ff3aca2d55901895d3f0b8d8fe02e8f0209cce8af53426654552a083b1488dd3af54a79f1fe531e94322b44b6e961719c114f0507fe432730a44ce31c7c8c82c5a41157986d3e124ff7bb73e8b6c63f3969d2503719ab2e7edee69b868fff6babb3287d69fa740c8b34d4fcfbe66a247d5f756579300d997ec1cf7ac7613dd40dd9ba02b39dd1e75c65276e710b0ab5c23b3bb39db9790fda220e950873b38f8e68dee046818dd570e823f19e0e645cc67821df397b35ec11bcbc3c4e917dde54bf0077dbdc52ed911b4d979d53c617799551e4446fb8f7982611a08566bbc95cb8ccd478af38fe69aa948bdcde1deef9f4f626ec6ba190de308c3665b272c694f70259eed7484cc5db6824f05bcfc5f5b6ba5abe4efbbe82133f0aec88672ad4bafd034008e448c695a32da8f7705675dcfbc3af94a624fa3b12ea67295c87828cb6897190e7c837838cd94a30b444dc90c0e0da015f3cc6049608312d4232346aa5c381eed4ab48eb4f8d095d9390f6241bd9af295c3929ed2d5a2e606d3848d9913fe943f1d9fde5a9485e8ffd732cffde77533bcb6bf14939be95001492407f678e126aab95146811370d72489197d997dfa275624e9fc252a88e51e58b4f6c0c77c0be2ca50c217b458a9a126f1cab1fc0be8889d378ec7c03fe47b670829ec1959b5065453d688c963a610ff7a054a6a448b44464e5d56878d2c7fb1d0346a5938cc0fd3fbf52e7392d832e508e16bcdafbd6410570648e2710b39b71ff4bf57175de3088bde859e227ec4c31cab8207491497bff6fad72081bb94d43d9fe7288475bc36ccce739ba04d363efb43a8d3616c5e15d865c7ea3dfeab19d6fb3c20cf50240e152c6612ca7c7e3bdb72699da6c03b11bcde35d3519b31cd2c886e26c4a0937c7be766bc424fd43123fe5b71cbc308e1780a88e01304316d4785dabe49095e206f16b72b8cf279f53d2881a4ceff5cdbe47a5d42a4cbbff306e7c19b91bd12269d998e247fbcb0754e3e3dec4d7e99a03e9006d9f0feae1133473759705ca29e05a6106f38008a95f135e7285316c9c85adc1d73d9d90e91513e87404692b2f4363e607aedeac0aeb7352b176c0a3ad2238736e207a5a0589b8a7dc2847f2b0a541811e6bea1e0d21bda0aacf35f592129df9ec95008a50ee3887ba4ed8d87c2fd6793ff6f9269f3c8cb98ec2e8634bcf0261040b0116098e9428ee2c810d93034ae003f05e6e45b426fa0edf1a8f09123c420e9e14f85289d6f74f618c3c4f80d3244534444b39bf593b6ec3032f9c7b8899d1620c0529cffe4dd55b3f6be5356e0f3ca385518e46b1adabfe479a53a88b1860161a502b8738367515fa42053ef6f37c7290f7c9464613b031295686827a97db24e3528d1dfdcc3d94beb385527084a3f8e966f4a2f4a8911682ffecadb786a222b462d3b912bcff3bf0e28986b7126a9a0f0fefcbcc7490f9218027bb5d7fcdec5c1ea634b1d76eb6ad8aeb94f8f306a40638eeed6f311c367ac7b2575632d25d2c4332c40eef4eb443bd595e4f6451fd6ef26e40ca5959e1fd20892a435256e7a3fb7b6a92d3e11456f77a6ac506cc9ca3bbcd8249a7cc279f70b05d88bbb98c7d363b71951af61674750399127e0f152dcd353cf6153b9488dcd118a0d73e21b4d6395dd5e9a3e53af034c47547c710a84a90a3734d7dafd35208e4b938576bc7dcb184d8a28b6467b3f8043b9cc3da08b002177e1bf28b7ec31776837cabd3809747137ec0bbd02248cd6c713ec7ee8996a4da5f3c4d7d32fbf665e973fcf7b65105b5fb7d085646fe75d07d397eabcdfcd4745aaa49cc764ee50f04dff89038813f247fc73aa20f158230dd0333fd241bf4990da1a346c012c9d3e2bebd106dd7f69d5e04b68f7ac4724e5b4da42e45b304c77eac97cbd028e762dc9efd57b280a07a7a7f0c3be7e307a3e32819356c813401085fdca3cada900d6a8b151c24d51033ce6668a87dace27e8e26b4439dfe3373fad95d93b3e78049e13f78784f2b288dae92e8afc735ea80835abeee09aac14370dddcf1ed3e79920f8071b1de24d7abc5ebc98286cf27a3a46fab382bb93176dc1c8af9b2d58a705990473e0a9bd8929e06e25a945d178982c0191e245206cf36ca6a0e7476e0c7c701cc0f07c589173cdd49717fea580ca64e2ec0eb2fa50d25a5757745719d6cec5ec6c04c1e86b7848c0908ff60ce9a03763dd667ee9658bf3a4d48391dea213fd7e55ad3ad0fa1ce1958a341fa9a18006cb3ce6af42eabcd611fcae7f586848f85950caef8c5e4ae4832f333df2ae1d7bf4671ede3402a03f4f48267b8dea130bfdd4ec75ab2a793b82779842e6f076564e13856fd217bbb04581a5a382f7eae3bb67cb65b2fee5135512b61095cbf26a8d87fdb2811ba5aa4670b6602007ccebdea256b084898b9aba71dc62db4fff4763db7ec708f453ad2c34a2d112b7544472ccea1324bf3b6df6382e5a4b7d7a2f46d5a680fc1553a219e1706c5a6c5fd53e793aad6d5d7c5777f50c64a58902959ae91750b40b5cc9ebb70fde4e8aa0ed7d76698be842f25b4fecb98e8e8ad2d641511f6c8a04d3090012b2b49e2da98fbd26a39308334c90a8c49d66b64d6c5d3a77eee9c4bd8e25dc665a09ffcaa9574badcb6479993570239b0fbeec73e86799ff1e104ba4f3f1fa278f46431e64500e367ae401a8df005e050aeac1e27943839cd818ec03208296fa983c3df4d76268588831c5eeb54e426cde0ea5362d7c2e452ca08ade4cb72a8b12598d0a5014a6ded8a4c95cbd910e6f676e9d32ad6709c5255eca8c725a9a5f7df0d5fd1d95cbdf978c42dd604ee2ff27b3201a19e5225d9e3b59d8176de2a7a12035864da65833f28779ea7abcb9921a0c383ce87d120b1bb5ece5b143684eb12ebe75e88b7f043e1293c93e1bf53127bffb8b105e464e1fce6573f39860b1cc8f94d62aa4b549e8f4658c5f23e34f51d39c9db04889aae65220e2937948644bdd8f0148d1d6f750cdd583e2204e89ff1261b6ff1cd73553908b7aeadaa21dfd853b89f68724b4bdff1248a16a9296ba9075433dab4f42fed717b46cfd3d945a53f244a657d6b4abc6b227afd07866637f46b6f0ad8259a2a6690e71407c60da294b7bfefac5791a5942fcd691659bc2fc4794013f04a8592d8365ea0fd5622241000598acc210645dce562f338445e0a0bb7fd7b3308c57bd3fd8bee9f2de661dcae029ac11957f452fe017fc55c4c3dff4826dc527babfce758884188c8a32840ccefeac73356d367a353e347e6f5cd2afcb42de4d7da0e5bc762cbc2928afd87b7e614ffecc61cac5aecd8a6d8b48a03c047d894478c507b5742edfb2e2bbeaec122f029adad237dc431dd0022c958a72d046e752ca2168fc7af3927cfb85027a26aefb16e4e71d977bc66f1326728452f2f5150ccbce495fbe3ec9213859e40e77e0457fed4200c7df7af3d64fd4789246cfdf56c6fb9face149d693452beb8f87a5dba47f12f8aa277d79559cb1cbbeb65714817df5b01a01de25a9f26cd3a90328a6ba8da15c4ea1c68170c9d73a9ca270b57cc113e69d2b24c50cd6bb166d43e5f179f5571e62e70b7875f605a0e98b0b8b1d92c0a80726801af9e61e15c23501cd2c2d9f3d72d1a31b6a791ac10be41cc2671ca1ad625e29a00affb9962002c7e891af354d21e816b18b7b29fd77508769323f5790a3d74b8a2d7a3589a3b7de8e48f22109847003abb590a80a5fa79cd2a2791b3e622e9e2dd1095dcfc0dad3ed8c783e5c91ec797a341e65e16d0c812dea98eaacde681fed1b8251373e55459bd78c988e094609652314ed645bd9c65673278fd4a5ff1d67e702fd77369bcb4d1f3773e1fcefe3300e0d4e45c43864c760fc67c07c21187288198224bba7ebedad52df91146aa92f17f54149c2161ae9ed999f9505b7ecdbe65b634552ef2f1fefb0bed51aac44e71fa4f12498b7632313b8620fc41af050d05278c22ac7cbc2ba979f0101bcac0fdeacfebc1ab5817d367ab8adcaa56f425dc56bf336bc345b05a4621ced7a37755b4c08d3ac62a41c6327b4f5fe9d5e5e2603015c048131e16048311658c35257d3ce56b218268b69a5e92dc2cb509b69e7b3bfd7af76373da0bded84c583b3ac1128d2f6d913f4787867ab584d31a2982c32a3ecc24972d98d5cb84b6e5a68db5ab7c647958acc302b717a6b46dfb772d2bcca12fd4c65fdb97e48a13f72794e5340ea4045ff2d2acc84b2c68e6dc3d4d296437223f964b021f7f466eea098c25d471132dec1f80e1f80ac137be4a6b559af20cbe7947696f6bdcacba1c113344f016bc604db30a721685ffef65d11a483cebd243fd863dc6467f3cec1bdf32ea9b8c363b14fc5b55c805d62297fdb0859904723e8f6b5c54f81e77e5c05b0691bb4d0657bee0e11f7e041bed3fa2d888f981be94d1c8c9a9c58811f0d7a3a2c73ae85ffd3a0bfd2dadcdd7ee71ff72ef039235326b3ef8142a47fe3379ed6dc10508b3cd5c1166453c2380363942154671b17f3720c0d85503e2df81363650d4bd38b721a3360f206aa87d0b7e97012f75b0e3b750a3f38a4239f461d09eb4898ef6a9a7e0ef4d7e52fac161b9e9b3974545a8ea2a564fc081f234d8e0592587607c75b0ba872bf0a27739dc259f0a89cad4400d19f1b5849e762863a04c250a08fef3effea152cecda5fb2cd3b35cd26549fcac008f6ffa3e36fe384cbe4763b26178d48c4f14305d33ab05d803da49f30da6fcc540573a6fc1183986bf919f9b227d8882733c127cb3075ec9597ed3ea587222344b9028033e8fd07bd2c2e8a318181cf1f18d99485ab233fbceaa587501a77184e5226521015ca69043ea2957f41993e4dc89f89fdf11c0a53921e54e25a837a96f883f24e2a20c52f8861868a8c4632546d6ff2c21033b1be27862c49dc3f4ddf8c97434ebd781fb6e94a3b427701bd42a39457ae3e034c6cb4d5674e2a012b815e8bd7824d5b00d1cef47ab69f516d5dbd793b948679d4c10b852f63c32ae2145d613c99d519894389ab2e593be451e2358766c433865ee8f95595ca65f41680e18268b67ec7b4637e734c09595b5d7e82c0a781575b64abb9028074c1c9b3701850bf4ebe5a12f979c7228bb86fbceb8c32583f1719da23f880ba53767e42c071efafba6a4400cb736b7c53e546d1fd86de5601e2c5ac48f95520d5db9d7568d60ba7d337f4ba48919d4df4e0c082973b110c21f03152f4d6050b1694c47624174d97e7176636f89a7fe938b918688e89dac571536e716f2f04a2005d5838aa5c2cbc200feda1b07dcb3684ec0a5ec5680187d542c3e11a5aca91f994c52a519bb133f5fa5226ca5346a095e39df2bea97c581970de30c9e406ef04e285632555b0a8d93f9087882c4f269976bea9bcdbaf77054feb5facce015a688963b2e98edf4c609977eddecee0429c07b5eb996fd3e793ae1a2ba60cac0a7dc73fdb787ab5c944fc34375a05464689358101a8db2cf25a7c55d7a79887961c591a047c50cb51818aa5baf511ba06d07a9b7f6f129f96f91cff6a14c19c21bb5bb9ce468b67c3ad8a8fb74feb938a76b6a9a2fd8053b673b572d0112fb1163a6f0e0fd80dcad601ff37a66a8d9c796a31f6e0de6f55777389332b631b0aca6f202a9c3cc2ecafea2d1e46b8c57c5be1e0bd763e0b4c7d56e61c497b17571472d299c1c071eaa7ad2437ac7c60d1807a9e10662f33dfd964edb520b0f3b2e4605fa99c35c50e5ad8970cf967edc6f420fe7e1658b3ed6bcdfbc4d4712bf9025ebc1a03169ecbde4885dc456828545c7d8cf825c59b59190057a681678e227a51a9205f462f3d2855528b0874b788e359f2c9154f044780719a39fbb8eab67c52b36b0405c025807ef8a28a4f67144707448ec28941191aee44f203991cb100f995f36303535b9808095285f66550a88eadedad7768bd1f329743e6cfb5ebce6e6e5ff1ff52b3f564b4c806f34cc2d9b9c0aee1e8f5e21d81f58224023368fd8a90f08a1f5718bc97be849fdd30b96367de391c3a2c0b942f1aabaf2036690f6ea31a5f4374d8390a5135642f28be018bcd641446e44422b238bd92ef5a284640fe43f670e61e35013079f8359bbbb789847a5014dc289db974628b70e431ac7586dba8969648fa9c2f6508a046ceff83d2cdc6a94390545ab69357967978505f7f8340d641964f7bd778c170d160049b89ad080e9cef7de55c54183945a55a176290de1b6866c4d20b9a6c0b4bc4154d6ec77210165aa9cb28f5d12487c35d74a728192a94692a2caeccf11ce52e1a15a91abbcdc2006bcec8f6c6a9e66dc0c0065c636897b691505d8ebe47fdc893a3a20b60918f34effec8eafc56715feae0fff591edefab1ffe2bc9f284d314b09e20396bdab9c3ffc65d3890b654808f17dd5ce9acc75162deefd450fa70428bc26c0f86de4280daf43fdb29cb80e4b2b5b3a9b214125636614f231506a9d5a350aa34084286733808c0076ffa5d0ebb2e6f2246c0847a4f3b78323d8682aa180bdb8fdd092ce61d22810f519a6ad63eaa1c1460a7ac2b62eaacc2400255b966c7031a4beaa81ebe90fd35ebc3f4da0cb176b9fed1166bd7b747360618c3862fabb8d2fb9138e02fbcf7d18a4ff0038f5fec52a973ee207f48813f1bc438b46fc6f9adecf824bb3d9420adcd6bf7e1cd2285b0c7f4086b72616049e629a18035a7b4b4b8e65e1ecd04e07bf147246a6d8ac8d397df3a2c6899064f7428ef039be1477475d76b4b2018b8a1e5737a3913c73a90241be7002a9550ed388339d96d47b5dc874ad77b2db80b759da0f65f6fc01be9eef4a0af6b6138c13c7658bc02d4b9029bda5c68969547313fb1d44caee79587cd1725c4d4a88a4ad484f15a4228f2f8e109f0749dde3a576ee0436bd393445442b9a6d2fbee27684157fa16a043d7c5bf44eec5d38ec6cfbb7c8446fd00797a54bb53a81883eef33f513ace7c80722ae9afb0c9af52027db8c950847453eac9b61c913da9f247101caa26b74ee94880e7e048ee6a89c51d149c0c62f13d61ad54fab41a84d2c3065685beea6ff6736ee185dc135ea322ebc749233ea4014ecff322424a06d2a8f73e34109cf3ef04b561b0864bba1c035472b6b8cb7f6831e07e769489e77c74f85f4ecdcc187ba5955069158aaff060de9d0285bc2e4a0935b7580a760fa40bb4f05a6ac1608aae80cc13f5c238ff33a0c8e279af4f7b0cd468a8ab6905387ea6199c88b215ebbfcf5b31baf522256c17ff29a44bc3d87b28585003545f17f9c2912c79f1c00f2f3dd2a0bff14fd47415d8195a64e13e89bf54aacf301e0c18503b882b7c07d46b4b5478f0581d1c1b8dbe7677a53fd5dce3613bd007360f619e82f4b6c4a36f65e23b80aa3d3dc4a6835ba69d1b9ece166d24a4cbbf0aeeb4909876ec1d82ec6a2a718b24ff64d8c5e29d4bdc9ffa4c41077e4676f6f952cb8583d3f5e87bceb96bec5e7aa815bd6a3e79a958409da31f23252b98bc4563d994961ff815fadc677eb29809ad7bba52086705628c70d42d044aa92eb8eafbc4c704baabe7d744adb1e44eac00dd93bba7be5124ac06ef7f0fc0b5a2c1d7b12d311b951dcfbc157ab957ad1f4b702acdf07c7b02f76cac96ceac7f2e3a97289398a3873616649b98c58b8686c86afade58920b2abb9756a96354d1b319cbb07c2e22c7f8a836ef8eeeb8f92f6d6bc638186e93b356fc18fdc3b8f4001624a0dc443630f4fcefa5d197fa6c03677cf1cc5165697652af832c4c844e616b095f186d23167ed97e615c49e9e131cd8ab731ecb7bea77efcbb57540631efbe104967f3aaa2563fc76bb73f78d785992b76b3b4e99b9841a56a8e736a8d9c0858eef1a1e328fe56fc986ec2a8dbe7f947d4498d3b961f5b277d092f5e079f16163c60ce5caf7326d073360e0d99631a7923c665165b7efa541f993b328961e427b8e2d34940206526bbbf8346786621220ea1a882d35788f511c1fb3e8e271bc9e3a9bfc1097995d7f1e54f71a9dc5e3d8d150a85ea685dfb3b08baf7d553b95d8c5f86387c117916362bf0634acb3be83575a836aeeacfa01340b8850afe7c46be823ac8524d70b93989b6c8ac941b8742a9df7fe0004180dab481fdb275846d2ac13eb95a5bff1d599375cd682bf49a9777cd084952b7b00b5f34a4c4122ce3b43081ec0c731df5a1da24f38224d9d1244df76fa199d8aeb76f100d8fdafd5c33a9fecdb059cf079ffab958745b3eb312798d9eb199827305548ede6bac6fe51e8dd5896c723d2190c9117be20651fc8e62e790560d9561a0be1541b6cefd030d41e4d1fca8a543fcfb9ea77bbd4e7744ddc45bc57f63a486fe43441b92049759eb608b15ba3601b3a73458df47be99db1d5b3ae8ed533993039241aa2a033f4a77a46e0099a7bd01ff3b816b1b4d9d826c96d4a9463a21be15a21d67481631bf359de5009489234457eaf1a5e89953ec9ccdce012ebad5516f68da8148dada42e567d2ce4839d9455fa877233b18594ca9138823fd5b5b43068541112040cb0328c5520948ace80ae0ce2e4e82cd656bdabceb872755f101bba1e3118db53244529358fbb3813e186a520719bce6dbad31b63ed0c5794ec92f0880a54cd8b4708f50b2c2d5672431160a0d076c097d3b9bec9996d094832d8d415e4d956bdddd735034d3fe93e12386d149f5c6600c1263dd71773ba8f393e616a7966089ae6c0d67eb0421b184a31dc3e8ceb356fead409332b36d17a54228ba40ab145820a97c67f583e08718b5d5bda73c9d541f95f1865eddcd160014b3bc2e5dd45ca818bc85473d9272863fb6856174a431260022996a710c8dd51a161c4e6e12ab62eb56708c57443a560189a8bef6163dbc8b610f60fe36d33b0e58f4f193d00b2b47f69d0b70909c9055f6a325dffb7af7d93984858cfca1686ba4da7274757f717fef342a8aeef218736b2782a31a2bb0ea0d1e6290ac2d0d44012638e11fa19edbcbd803555fb1a0dd2a8c16dfaf8222c7b267883619d25e962f03c4962d9c2cf31ebc1006a82b6b2bdda9be903a9a268dbb586d1e23754eddb2bd6234cf8cee7416e94a0bfd86606e8304b8eb25f36185e29396913698697286129256f8fb60ca6562acd7d59b1f631d2957b6506c8f4baa38bf426f581db97e10aa62d1b45000a93acf55ac988bfe53e97fa448874d40a095a9ce5b1777aa98565f6e5120432e84529b9efb98f4508fbd5de8237b9922694b03bfad2dea929e991d66d99af9933ffa33e1807ad8a22336a5123da4c0a36327202ba19849381b50bf8cc4af341904b9fa69128275686df80dfceb157045680667e66bf107ac48295d877813ec1ea05fb68e387fc293e274ca6f0a7d90135c5e7f1541999fd781a462b4a28832cb18d768a1e1df9cf675be416822a6e04007ced5f0070781a4f01d90016954c9e3bb5f27c619a1a58507434f2db45b079f838ad9826e562b1dd9e3e69db2a984fad5661cccf92cc7be9de63ee5f1fd073c346e8f8742ae52298c26e379db82c2e0d7ad8ac6eb6fc637bb26c9ab70b6cbcab4fc151f307ff8259f6640895eca003666a1151c0384c5c0828ef69bc12a9ad5832cfddd960945b6fa38e53ac612536d924351acbf2ddd91b05e239c5850417713c6bac899a013baa940125ddf8b31ee1f9165c03f1e0a79f767ceb691591e38c419db3761f93625947ab7245e24c665cb4f0a035c5a7ee59996b182669978e63f7f47fe0beb65fe967b22e8906e279aa0ae5dbf12803b7fb452c66a92201df5bdb327c6a14acb25bb9059a0f1e6158e1117466c870582ca2ebf03992afbbe60ceaec89fd0f971ce3a05a1ac0af9ddf1073362dca34810c1a4bc8f5476ea9ed07e063c36f2301e937f00b77965d190f2077324778a96b9c2f52b0cc9617510d8535ef1332a4ceadaf3c2557dde8d6011af7f654c8a74f1f0fbeb5fa3b3ecf31d140b57b57ddc41e105c6db635868fc06df3e15e7ff781ce7ca971d2ac953c2f9a065caa488ac31e1d6549799331fe769b4212afa7a83cb18ffcf33a41033555d755f02b99305043a7d0d256f477c1f5af7d15a82e01d1a1cf9a477fc91bdc5c92e40cfedd427c269519d81f6e43dccd82f1eca040ebe81e1fe958bf355b7b861e03f57fc047a8450004fe506577032ea6ade47915291328797c4648a2161c8afb42baaf88a1e05b3f74fc06df5f4f2bca481a7125cecae466e3a7c0c7a616b05fb15d5a0b9b39752e0afdc84b32daf8d74a45de8ed4689ac2f2a56c57a3705cbf8ed0e9775da9782a54faee4fa157453425bfe5cc35bd57699d04048d3f45387bb2d8e572af5446a587c5f59541a13cbd20dd10f17dbe0dec7fab282a483f060b268c9de33595733d3c5e3136796acd6c1f252b2ace011b3599adf84268d36587adc474ce7a10b9685211eb04e80d3be01da397146e5a7948986245ca8f8f47336e16ce5d86c38ea487bd303c85faa66dff737858217cd629fad8c5164ac27b3a51cfbb999b91c811ef9ac0dfcacf10956694f0303f3f09a181d27b168c72a52e5a624fe508f13f42d5897d2740b0d64ff8985bb4cb84427379b3f986a5de199b4bcc23914fbd42d706ddbca98dc2b253f02e34314c574f21955e061c351ea34cee6033ae7df764834dc35eb04f294fa3a9d53923b20da7d1de1630254236fc2a3eea511420a6e297cbb59a54a15d1a6aabeb3fcd2dfe5a6858bc47722df058c1bbacbd4a7bd18eae9b8a7932d58ad7467986708c0414cebe8f5562e671ab4648c82d0aae4432ddd656b45d720cee2846a20264b2c29fcfba8ef397376b18c47f24704bcc899ba33992c2e33c5cce37babfb461d7329bcc0dee1c5f09645eec474c78d03bfcabbe3c37b4cb95f78c56da65cf7c7211c8b3f094dec09631196ff5cbb4fe482aae2430c9c251fc3eb0157a82d5de47e81b9de29097572f559287ff38a7a31424571d95308f8a70e3386fd83e7f4cab159e2170708f3bc6f384c97517ff8110ecde123d709c9ffddc9662e9a2b42aa9d13d6611736a014448f5f4dadea7d0ac8930b56de446295084bb6e4c8da4bc412fe239650fe71051cf7848e60f0f6b00850d5ffc1e20b8a3902d418717bea081153d6c529c0ea891bca437f14c3da16a0ce179167c8f28523c4fa8998ff124ac2635011229ffed1d06bef4f7a020b098522058e6a834391917729fb5c4a3e98964a289aee4969ffd4d04411d8144a10608c1b8a60adb26aa20eb20f7f6d4cba1626fefd2468e810d51ad5f81c56e77ef56430e8ba13dbf0debc9dbeb3313ab36c27b0edf04bf09d40d3882b2fb67760b5f515c234432adbd0de1f262f3d1b11a56687168a485d9ee65607db235e2b84871a2cfe2b9630538b98e44e3f9fcd483aa77b4eec772d84617f35f4908861bf51b3d1ccbeeb411efea46684dc4e898db5c7eedbe4bddb7f002da5c5459e18d1f5fe7048bdfb0e5a45bbbc5a447eb3da59c7839fcd5b1b2c1d877152def3561be10455b07abf1917e051322040d851b32d54893309bce0feba65dd47ff94faec7c122d787a2c02b15610a7426dc096d41de261fa76f3996db8a5c9d93c5868566233f0d8f3c6a23dea52725f9b2f675ee1faf981dde16c02b4894e3ad272aaace85ad883daaaa492b93e754ddb265f9360d0a891bc39b982657d5f6701a35d1b27943a0eb06800823fc8a6db7ebd6a1b2b1e6a9c2f3645492883227b87b3714bac00a0df75b572e2ca4f2599570affdc2376ddb0efc04b82f67b49033538b220161198cc5698a4b51a8b2be56aadf452832b2fe3be1d083f768c9b8778dfd7a627fcecda62f7dd189adab3a68d7e9b21dd1f562562e42c7f148cf439ef4cec791196ba6e94d83e3406dd657a393df7c6c40c01bf5b00fe86c2b7ec1513726bdb9273596743667f822cd546d0b961498cf7f47df30cb63a77912a955952efd15911d840574abfc3643161178eb4513233d6ef93d7beecada92ed688e6c125d4fea50864904f927711b84aef675045a3d0deec8b2b3554937f63c897295d5273dc5dfded0b8080f6ac97140bb1e3c1b48175871482398c4692f723c43be1a8492fa9faa07ce20f0ec55a3d5a124b56eaf7ec84dbfd5271199abe6216ba67fea44c163471ae3b98515e10207639269f6d8c3f8033932be1521a484fad4628c1bc4db6f93e9d680191a8a6888d560e0d869bd89cb1692e7298a64e4eb368df490984a24d3ac5340d042874992ae9b205f0af7209f0981c2077923efe4bbb7c45e2d86359ac16b76296c403ae36b4eb4146bfb7f00426be9863546ff06aa73cbb9c2cefacd088b31c9a5d509a3bf9e4493f472096d9e3c112f98f344b67099db6b5017c0f554473816eccb7b2b71369f770201105745475d56e5ecc0f275a1c9566742536d67c3c867dcee3ad0a2d213e8880f86edb6842801173725abdd9d4d53b5d25435eff370336e30a6e31f0a8f98a5e76c57982614f5ce54b3d1e177e003cce1e1320471f91bd66b21c896cdf80c8e0f2280befb2e76005e079fe86363bce6b22eec06d0beaea5309f5bfa612251c2e66b5bec21c2006130bf754b7d1d5b757308e0a87384824258b6980c6774934238f718a4ab472d135eb86e67be28f26f120ee91e3d638752036f173140ffd66fa3eebd464b44661d2d6f4eefd74e732afab6e041c2a4b880db50791ecac180d7cde70f29f65551715ed57fb16147f54f4d46d16b88c1371f34bdc0d718c1985d76e90b0f1dfff91eb456abcc6a2b80d6a73e76e4e386117b600e8de02c9f1ed77ea58f9809780cea86bec2c05e95e54dcb0ae088eb0db2553a30930f45fb1723ef4fc2137aa3f81f35d5b1612b293e1cb847435d9144c55461e1ab8120e420b365d646a6e495b0c1941512958e49c0cdc3031a51044972a5d7179beef9fa86db8a3d952d70b1d716d410f53479cb16acf1d4ba556ffb11c906d437ca88d56b8e77251327f43ea12db10549329e6b3ac7bfd53e81cfee4a9a32704dda30cf3bd72e13b36f504f73135635cdf6c79f662359539fb7ebc7d6dc1d7308df066c46818cee9c18cc067e80394a83e3a5b191d6f306533c5079a924ad31f79bf8be9b485b3b1d1c04a1c3c1d473bafe617fb55c06948960470e531e88cc73d553037a5720d04de3d35ce533532ab0998761923c56de6467f1dc6d00910415e6c1bbc8f8fcc8dc33ea9a4d8ae0e6fab939d10447e6194f5c26fdb317e4fd67561b55c84dd0c25e2679ca6bde3ed3050d912bba106316c4810150e26646cbe13ddb30d7591797aa36a20d9d5b23683c51a0a5804bc7c3cb7fa9e35045b314a19f4842e57ec792045811f3730ba17c99e61a4a4afe4adf550fbe6d302774a2d7e7637bc8850a2ae660b0344758cd341a9c3ad637ca56fea8820998efab36e64901e4499e4b3c8df92a042c02d4216f73a04393bd0abf47c4a8b26f9af21af9e31f67d528b45afbd031f8025be07f209bfdc0fb7420a5de6afcc937fa77f724e11c9637c160bdc4edc7a9438f298e0f165d54949d472f20f0a60323cb2a0f6f8e1d797f14cf3c92e104900f88653679f480da74c2d2a2f835e4b2b676e867d2e4f3e044bd6bcdb7666b02c1a51b8e3caa57ddca05e8dbff3c8f47e81724a95c9cdf0edb57a12412484a0e185b9a9dd38d36969b2d29c91dc45ae28d742b8e408f6cf92a6612389050be576969a1b08909b63edb1ce0b180668f183cc64a1a3e084fe3a4d693e5e306b2f05a36fbc211d94136a8ea5a4e0a4a4830f0f393b3b9e1380911e7ae9d147084e85471cbb25e680dd815f0f7e43940af460adfc29ce80d43729bbb1f50fad9fd222363114881c65cccca37888ed9520dd769b44d1ede4a3462fb36e308cf98325b6aafda067deabf971caf103390facd3e8eaaf09b67e3e14a8fecb5436e5b02ace846a47675735615db43f8a46dbdd64d7a4a22435f66c48fe152bae781b5e5ca0c8963598b36067e5157b778429782b80ce8f04e8b3e0fe57a9863dfd45f04fa41886ee6ebf0b993cfab96d5302b0ff4fd80492942862b5b2513b7f2d3e5e6e08a274f17f7203336fe7946b7c174b94dea8ed10c6eb8dea93fad26b82bd6965abbd5f94ed9be784133fb791fdf2562de5fbac8485a9314192437a42b76159affbe46c537b121391d8406d9a3618911d9778e1e0a0a22628fe2e1d31e950233066563d396beee1d4e5e39a99ad0b4dd28673d156913b834ff4985ffee554806fa5b2f64ff64783a91b60c4d44e69ee9d1be7ed0eac38fdfb040466b1d925399f636c2bf132f816d2b6f0c3dfba807c38ee9dd1ff9b8dbeefbbe99090e17919b5d0b72b643af5b81235fee1786a51e74d636432c055697723f8bfa5a8263b024fa0943a8d09c177dddfcfe00c0c158c0b01902dc00c1f7c435dfb73d015ab1a4ceb7f85b069ae280e7347b18913017070f289c80ae9f8e9ab19e68177ce576ac1d978838f033898a54857d86b35ef20adac24eb1ea4b890d16947f152f4754bb72638dd42573f1ce8ae5aa71e3444cef0e04c7f7b92b71a2d10d5da5b4942e09a5611e0005bfb4b0b4a98c3d063c4f6ccf5a0ecc4582a758f4c077a86fe4eea1b039256e36135276d2344d311e4be2a82e78b2fbd8c5d139d4c4e45e19db005df67faea327abbc7b2ac7a1cddfd632cb29e344b2bb512e8ec201cfa4ec7b23b5430d89783c9a77a813ab13f6bdc8f8ff34b5cad82edad9c553477c8970aaffbb73d29607172d5ec6c7f236f4e242b51f62678265a39db5967fd9e56ff3a1229726671ce3295f5011bc0c07c6b6c2f2dd5ea1c37b1e92721429ef10af6a5691b279d43bed4ead6e84f77cc9088513613d469887d16f4a18138584e0c90cc2680c500032eedf71263a0007d1e2d37dc736aab544e50b9bb8f159b77e17f9e4b3d1d92296972ace7293940d21d7db9c8e44f9ed0b3657879426ad18636ba27d2c4abd9425c425574784467c3783b49b4be3b8a370b93bc8adf46d976335b779538e453e843163626382c8604b4c2fcf77d1ec58cee3f82618201bded5fb18318468c8e56ea088973051321f8731b599eebeedbb6b6328865220161a929784642e61e42db9489cffaf8952ef90f3568caa5e04713928f3863ccb9cb773015bc2b632846aef594af3ed4a411683a8fa9fe27b8ab24fc2a9eeefb7bc6fc8aef4338b715472b826a854a03075b1b1c0c5ac311a6884c4403bf473b04b072e6e098559326bd355988468ba7b4536019c2cf94295b56ce5698fd82e82feb9667a7f21a199b2d4bb6f18e9557077f944a7b0e3637dbe2bd6b3bfc5beb644ff353e1a84975c2e96294f6b3fe210c933009256332eaec41c9450876a841f20c475abc5bfadebdf07813e41770ebded63bc6b845705e6800ae0606692783defe9f0f24e753bad33c851cc02af114b2ad3b605d2c9cc5cd083847ebd50f9593a5d4eccba19d01118d475550c65ac8c43031f33311d33e529c2ed8f5c64ad1cd270799111bf5fc828e8c5f97fe43e1b470dbc12023c8a440d38e47cb92883fe1d1df119652c0a2496f463fc64fa9d292cc8f20d040160c84732b2235441f076623549271182404bbcebb2a4be95c63a8c990efbdda2989cc41a3c6e150d4ed30f0c8b70aef2f54626d13f728ade4eb98fabb7ee346f99439e87fc3ce778cdc988390a305c788e52309cb41760422c81ce9829132a78fba4f9b7d1562f4021c4e41c28ad7b962c67990ecd76b38dba48abd22bda587b4eefcae108e69ae2fea2c3a3c0c1d9a0300ed4ef4c41fa177d4e09d9a2d7ef5547edf17c214d31bcf6e7c05c79b2707dd4a50c37984a3b656635dcf5968644f548a5a5c3f66351ad0e8343427e1174f39093c87e128e645dbcd9c59b85c18f466f024e19fbd29b2cde8a4f5bc7dc1cfd50214d8d218c0c01248427cdc15724da116de47b87a3a17ad62471f54a37907c241300b741a72ca66d7afd8f2b373f1b724f48b9aa6e850f92827876e5252b75af40f0e01670f99de687b68fbe22de84de655d6ded836ee0b42210c036fa250fed6fcae4dd56491b49a5fa619ca8cc3e53cb25fa8f36a7233ddd25d90c45f8140b8994e4430a04a4198745737f5141013929fd7421e69579e6fc85486b21d64c7cf13fe802f217faab9820ece552fffe73e3a448a6df9ffacc729558014ecc901d096bd3a618b8b07cedbfa4784a25efebca8cddd66e4843e1b9a6ac30cca325684538db89c22e8dacc5b6131356fc100194a62b0166376624b25c840b139b402b320b283741b2f84f51e45a8a1d2d0c69330dc9113ee62f31d99502ad720b8dfe658cafac5664122b075087ce81242c4292e468c33c1ef1a4f8c57143e3d72c372d7b324f75b6ed661e3f18f215a262c92932dd00efeea74d9f4ad9d24067147777b0e9809d200cd99a17abacbec3ac89ed9572a94dfd882b4234f20572502c7ae5e509735011e90817465ca1fe43f9d27d5e4b06d00e8ddddb1109c67a89f90463cc54c88b1724da22df6d0de7185c78578f172a6f001fa7fb80f17371e0f1d993318ae690ad29d298ec6994e41e28bb173dfc75d5db79eb2c3157196c973d6db0befdef2035698ce7f5133bf14d38f063510b3d30a61be67aced782c1e64488e786e0fd706488bbc53d0e27fe0f9c4e1074703ee50d21388e524a33623a38a5be44908db6b5bd321835651102e682d37b6bbed67aeba794838e06aaa177426ae8805578134a8f72be2b1f2b9fd09f0bd040ada058daa20d7c35d4a2262163ddb292749aa73215b6d4288d783ed866f8babc979fe4b3ddfc574791cb453b61fc626634b03e2a1509bbe6301f877612e9202707a5a6d5a92570f271960574ed5d9edb532372d7a449785f2db3692863c0de872a933de277e56d7a53c11886924f22bfbbe0ef3d0236a4abe194217ba7730f9b182922833e7a846f1c7607e198c971d7c2536f5847f3f8c5f54b7cd898b53d6d4bd98c6f5c4b7489b982ca97ea97ece7cd88458bf74fe0fe6be209497b7efdea8e3d6e1ca1d70f89b76fb0be3c10e72c605dff729eacdf4630d7647abbdcb73faa530b7c93aa9c2619989b4ac734c80a0a0bda1a3e826ed5c203979a7392417c978d162ede387780a1fd789c4a062c4f38d0c35d8feac532db60157f3560831d8b5c04fe06915625ee0d50d46086d48a5f42a21e23b3c2d9437b9884f44907cb8959da7cf18f40cfbb19aca032077f0ff956f7590cb9badfcaf93993471565921908aa08e128bc0fc3d4dc7abe9153a3b8ab56c6b0c074f61c99f52af45556b9b330033c046fd529c3139dd6646ece354463ab21c38fdd4662a6415c8f65f7cff4ae5afb74dc701a1806d35e2dcda57f7e2eda65ea5685af6b81fb07c9de08bcceed7c5f1c4ac02b604c3d1cad72d14b5cea03b634e40d813b6b1ccf817ecd9440e5d62cf1c12c6a23458f1314476f79b01d439a8c770777205c7828bafdf36a7d443049964fdee18de63c94455740db763385c2858d74270a4a869a763c610f5275832e7f833f593b9c3d361e828d560e3170eed1e7dee9077b1cc92fb9f2c6faac14d1cd197e876bff25097f05e46252aa1624dde2aaf14d8f4f03672778ce481ac5b75d929dd56a3e8d83abd25384ac099d7667350046f6c6aa5eac4714ddfde271ea7c47491885e0e34b56e7c895b7c4413b622e25328ff7e06e7c0ce7db4e33b68ce77684a4c92a86a2e96f2d35f6fef31408862d46759024652a68f19580aa5bed481a79adc268361f79fce1eb2783de3c850e28ee4d7557e6ca3334a4d3f9c95637c6f648f5dabeadeb55e08608416448fc5c341fcf66ee375d75af8b772739a3c6fde5a6292ec1f95540e09727c65d7cd43f79c2a94cd3b4a3587fa2a00d69419ae64f00bead9b08ad9d8d17e6617ab0b9fb54181e9214e06534924d06065711b21b93b36d479cc538883014a1ebf6144932be60d0b3da3db1a6ce151cc578499fc6baf30b7260bd133118708e6bd1e821e2657ae3c9589d1466d5ab808bca5547362fe5abca40cfa27df05cc4f7427c41747daec032cc50819be1e4ce77b888cc2440877c72cfc87048d6d44114d27ba78f656ecdf6dfe8b214142676c44ee35eeb47f5acbfff895700e2e7c418b3a95121cd7528ca761a998e3a10b55bead51e4c5121c3d5fdfec89ad282fda2ed1f38897d081f5c95affe13c15cef555d9776203a1bb21960bb7d728274f5a9f09f4635734e7a56187ccb7c4f9912ba988e2f312b4fabba5dd8f68518ce083ebddd3ff64e90a90b00c91220314b70448b97fc9bc74968a620ad4aec78362965c272c08b044dc11ecd7f95fe9ee95bf981c548ae9eebab2a37b5b2e7f1024eb05a87421015f9f8c57a0fad579643f5c2e1f427a843aa889b15665f6dfc61944e9310178016b32178bf2b255bb3fde06073a92a8715a308c883d0bb2efedf27ae8e733b0f8b885c1d1bc6524b33edb4c554327622caa32d4fbf5ae3132034e3c6b5ceaf8480c8ece86587a2ca0462b33f8dcbd1f2751bff8f2934e9bce2e56ef6de2a71c13bb81d2b1ac70beaaf0870456402139deb4af750b7fe276ebc9c6f212d4d6793e42ea34607d5629deb7b7558f4555dba6d9c31842f44b36b8fa4da39506294f88eb658a6cc393440b6528b40cdad302492e28c03bfaf4b93b3ba650ec0f30cff17976eb713593345043eaeb6dbfdfe8c14ea2d76c842bd0377c8b0dff40ae64d8c6decef88ac2098ecf88bffc000e60a8c42709488726d3af2fbc0a19c7caeeda879ebeb68817ac2c3826eb51d0bd2581fe2faf6e38534d73aed13623cff702b4f735128fcdb0df894faea0d6e92199deee93fdaa4b6e625424a9a733c177def02c4fc5f020bd38a8f7e60172e6a49a1880e7321173b390043cb8c0859e557da6b23ecdb8ac79ab7e18398205e33ff0a3d90d481923b8b3d53d00c03038baa9ddb5dc40685e06b803f0912e87a6018bb88581969fec3b5b27c4a8f54cca708da7a28218e3d877e781c92031f1519265c45fd950611db0d19d6eeb838db2694acffd127e469332a1c6e3cd35fd9181159faf656750e52059341f47616fc73d38612b6808253b68b2c99843521d92e96afdea3722521878ed4a8513ae9b27a4b3a303d9378ced58aded3f5109afc29039c5c86d723c5f65457c001c71f9e84fd16c5ddb2dc97394ffb24288f7017b642390ef90beb835d1cf8854ab780716df732c539c538d60379d34f673f5abe32e2e58e904081619e00b6ec438eb9e5b433bd0e075651acdc453050cad2c9af05e0428ee261136cc8202ef8c544c179fbf9ad20a6a619ccc79879b5d2895f63ebf59df5c7fb5e41d0cd12d1a3923998d642b395e26eed3d12a92678926842b4e133a8238cace6e79c428c941ca1ee81b05bc13329b623b52418c433a74268b3612afabb1404035a81116fa14fbbd5bd72c4771541997fd0f761ad526648ae056794f0e4226ceb3b35933fb37a76fa6fe695e4b49d865f6c5ba1f41b6d2e2d99d87ed9bd7361c14ad2a6ed6c985f25938690c4421abf59aa81533058a70f5684e5e2db503bd7f03543df803f780d5f89e5880ebbc57caa8c4aedbdc50c3a9f0bfacf1eddc3685d3b1dab27dee94438a18654c5f80a88ed541437878e94302399b038bf28e6faa298679e4bb37e2547425b415ca20c54c68efe472624fbeebb92c894ce849feb8e4be031ab2ed2d56521026bdb320defc090dbfb827f459a63acab61952c4764a48552a29dd33e55eb3dfa4c9a1f2d42dc2106394aaa60c61a6fa801da590a074f6e09edc4a77e3114768049ec2ef0f8de2175849af85c9793e6ea7c0fc1e69ac1094d0127ff1fafda589b61c364eb64ba198cde704647df77c7c9321aaf50b3c35d53acaa8ccbac1a40f62ae6b63ad49278bedcc8978892f7d79be04111914e4abcae409b6b82aa9309749515b55919c22e32c2c18da1f527118690565a1e64e8d431ad669def625a8f5f0234772a28904c1f4daf99d0d75ae45d0c3af8a6ed9340c8602a6178cd71beff35fd3378a3cb5a3f4121368ae1a9556e8222b150e57fc8cead39fdf6b5ac9c75b5cadcd26fbaeb06cf0943d834da426cedd66ee49c99064dd539bd5d5ecbb7a6c5066480849f917f7ed9a7e2864adbe42f74f8fcf5729e58831f33a9527bc0f5b15e66b0e306f6d5fc92487392a1d5970537af3b1d11a28f6dd21ceec88c9ce8a53d112b62319fa946be93c5d28b78500a0f3c80d4f5cf5c17b78c47ae30dbe5c9c7cdeb391337feadf6c61982eb2626a504ce4d046e6e75802ca3b6e642d6c0f7b990e9d6741fc1d34ce986dc12bc47610b0c36a42f3fc0c593fa984f75191d7ee1633d6cec55074472ff22914a36ad8e9140d3a7c2252f28ec0c022b80e2ece9ffa8040e25cb916f2dfe82d494eee9921744a891a0f3b16abb396de549a192a1b297018a03f7494c056ebc77c21b93b5aaa3e829ec0bfcec22c737a24493ddcdfdbc72a2117e801e17d8ec4205146e6435c8dd00105130d65a4fc9b7c174d8967ec85a6b94a1a9069f3156ab259e483e94c4ad1aeffaeeb2c0fa710e4ae54e8978fe007a963e575940e054a270bb76cc4f70d9b1df2fa67aac47f2af369cea121efad67075323f6250f911e8cb582a5f15d3dfed5fc2fa9026f42699274cae7d1ffe62e2c8fc92733be6ae71ad0a35be9a5e7e6c2ab1dee2acdd5a81e900951c5bf8fd94d45d2a90cc9ee6aea13ba9d4ab2ea931838ac5d5adbc049a6d8a95bdee0d8bf9d087abb72d290e1e3b35c682f1613139838fc455103363abf59dec25212a8e0cf724aa3e72ca474cd7b71647222f89df6932f55d7dc79e390757f91e5ee76a9746ede52f99be75016274674b1f5399e2b68b240fe6463c6cf4619282e11a95f638b5e5a3561a81282772f010ea0fb1419c801838082d18ba41a8407ddc80ef26d8646232a09c0c28cfe49d3867607bb42e98e98ce552e79c3f191d4c9d2b172190620889c70298126ee89066a43645e7204c708f7abdb7a32c78d825dce5c7d4b556a88f760d09f5f842785f069760aa0dcdf227bbe7716ace999635781bb944ef023fa2b0e6bc4491fdbce0531be447db86d48780ef53a2cbdf34e047297769d8d279c5b7db665d7e57a4d63878627aa3a200ae720178f7e9fc9d2631d1e631925b5f9afe63e1ca7cb321897b0f670edc5b1208a7a74ec75307b98755a303150a19c2a3dac52f4d0181299803dd02b2ff27f9c5a0d45c68394f26229e801bf76690e0affd02c25ac9cef6502c9774681f1fd51ef9d3f756bb99917c539a07039a7b386c958f5587b7451744941d62bd511184eb2898bc8baca31fba7a638f96a555bd52eed61a4a671e9767840daac3fa1ed7d13fd34f13da4eda990f119b0363ad7a698c7ed95fce9314fda21b7969fd15f638081b3d29a5bfa5a4ed059e45a85077a7b31bfdd0a8830478e4005d3003ac012325859af03d40a21502dffc33918ecbb2844569b6517c2c15a9e221262734c51d81bf60405327dc804bdd2771a89c18e38ce24be69335a0212770942a51786799133584022b679befd30a8b667d5d35cc0124277b573668f334c66fb7ba6b751746bca31ce1509d326a12d87f88d9690353e5891b2d9466e9ff85b35f4c3865ef2dcb94c30b16e6309575caeee8fbf4d06a5d71cfe6872ee75be5b2dc2821778d765a0f97cc64b5ebd9c26d7346f8af790baf94c7e701bf1bfaa3e50de7ea5f0b6b3088fa7835dfad97aed659d67ab0ebdfb092c3f6b195440d17804f7dae3ab8cf569b920b1524ffe254c9371dd097912d30decff21b9e15577c25694f82fd9a1d2be7dc3b61b0f5284d0da28a331be07531bc75f45ad7966c32fe47c8b8f6744653a5ce608730c5728e8fc4335704356a968eadf36be51d27de18854ff0c0abd3d83128e65e1c1da8a551b477b490e04d7cf8d788f77cd0462900146761ca3f48d4a2e994fadabee5fdb1956b0f0471ccc063cd10edb5ec5d91ffa68a7ccc7846da44482fdaf96551260411921acb7fb60a82b2c3bb13b133bfc4111c323010980c377b97187875b300ba53795341c8ceb9fd241eb963fc7f88c2530d057e1ebb7e5778df7f33ebdfbd309fed661b72b350f56ca7fa332d26c346bc135ba2585aead6b17362574a34e120ad48c47e9e684e4e3c9ee8b222f4f7196881e9acfe4458a205602405da209fa9b85b0aa915ab79c33f50084be9b2305b95e0240751789b0036708a70d3d894bd8d581ae40b4bc7434844a49a1fce81a65b0ed33bd6e78032171940ef6d2e69844871d50e3c4895a282d9c1e6f6f9dd3ae605c8049b56f23951beee85862b7d9812da3d6bd556792dea4eb611a958106ad3cc88d86b952fe318ac3f8f845656297072fd54b074492162378bc41079dd2ad2f26006a469f91b1053a86e826dc950505c0c70a11308cf618291efcb26e2ad40ffeb18c213ab9becc4ea12ae1c7e4faa7ab643763012743bba1a6f79aa89ebaad2d5777f562cdde1b43b88f1e26e56b896567b7d1b579c01118cb31bf18d4a3b161f4ed14b4d5f7668089f41a32569a51a5ad6a5704377e7b2e0f082e3c967633b88abf90a807a04a7e86fbec8474fa84b42d7e3f6b1444c9dfab0fb8971258b4aa5861a99b3b8b3be3546f75bda4a886c23e7c41bf30dff543d601971f04363188f151773ff817acc8d57bf12f8ba25dfc6e4676f8cedfbc0a0ff201135de82338ae9077f7b189bf45fd5c9ba2c236bd09b4b49d3743cda35a9636ba3007181f619993015882a2a005b5ea08cd546c4b5abe70c13971a151b29be3cf6aada3df26269a97bab4a80282e6506bbd116f250374c8bce4a6d2b1a4c5cc1d8d00f52475bd1475bf42a2a99cdc8234db734a40bd9dca237bad4e5faf5ea6f13597a1584bafb5434d2645bfda52092dcf03cee3402bad61bc0dcca4d54341663a7e2685ee60e9141b74e4c4305dd8af6f13300ca6c7436e1c8f87d8625769c8b61aadaaa9e744355e6c610325e78e911758abf1257d9647e0a933a27e0dc54d78d46c3b586e57f250ad920974c32870d8be76e68cebe65158f98c28913560571f570f46ebfc5e33621c6e256cbd9cb2e4e3b34f80ca3c23b037aa4bb3f88ad93a3d42e061533203bf8f2a8770cc818e9c786478ae8db7d36c7966407ff4b78cdf287b602da4f0f6cace779fabfbbf02c8cabd9cbe5b19d854ffd68dc6ceb4bc82fdf0aed095cccfe209d3390b98a13143a2879055023995468fa85fdedd2f8c4f8e5d307f01bd4a41d690a38a1669b8d6a094d59d60bba695c65bf6827cca8bd25eec40b1702667a0f3916aba9da057a9eede28d877aae9144f770fe0101d2676f13d9613a23449e1e27f1a3bcd9cc5c0fe41b1153f782e514a8405d5d41ea7d6291e41194b2463cec0ea5b84c3083f2d49808c314f171dabd471e76bbdd59784bdc6383e1192f6eb7546e7789e0eb73f7bee5a8555ca27992ad33415606b59d822e04d6033a48959a8d41831a36bac1509071a2fbcfe90fbd40b5896cb70d1309eac0114522eba29b3b8aa971786eb5173dd94ed9afac5bbf0b6536a75f69647ea776dbe37cce9d723ec5b9f80feba3cfd4a331916cb19b0c5e89fafe5627cbaf667afd76bcd62b6e476d26901493a912180fb38ff98d8e31ab1a4bd70cc4db0828cb0e2f4ccffd8335d5a78f8a6d3b9aaf7ca3a320cd3b27afe8ce1ae63248a36607f19a11a826ecb808112b328629f0a4be86058ff314f921d16d98f0f320b100b22c0883ed8e41577ca832665836765b2bbb7f5525c0b75f8a575d5675a669a99fceddb3eaf6bbae0b8753bd64bf2eb01a11e82e7172931ffaf265834c090263df1f8477f73e07f798bdaf6ddd1206aea7b336777520ac67aaf104d3b076ba6fc7aa766bacb8d415be6cf6cc15d297838fc33f62893e02ec6b3a996a1103727c8df28e024fce12c1c34d1d976192de5cba29529feeb0bf42d70b43e829bf9f00512130ab3e1ac4fccdc4dea2bb18b31c293bc093ab745fd4e4e4d421487a28eb88b3dee564ac73e8c21c85dda90e226deea6618ed4c38962c9abfcfcdebe3134d0ccab89e194c36f60dbf97d52c93d19e59a829f2ca35aab72604fb97fa673d11cf3b687fb534a308312a86e0f78e7363f211e3f1f4f6434153676ea07f31b9d94264b98e6a9e7a36a4594d60e9038c6882cd463a8049a5f60b0c7f2f4cad92bb3a536e176c982910f723552189c9d19accf85cc0c7c5779d580bcbb554fe9e65802de89bedb16e7fe9dfe42d8db6f9608d98a562b25bd7ed0c3fa7e8be3d522b38594a580490880c0592096ab33ddd50618e0947d94e670b1ec17770cef96e5cdef8600d53b37dc3706b7fc5853e7482c28a753289e81d4de2d67ae3d2903de348b9f5c125d4c765433ea8e830e2e867f997bc30a29b7b42bae82eb5f37899867f5bbb0eec0ecea5a70ae4d46fd154d120cf4def0b4b146ecbb5ef3b2bd0938b6cc247346c18ae40d941ccd9b842f1fec57595e3e1201e21b8f14d3bbebe716857fd47a4f33b1cb91f2bc927a97f582bf9030b5c11bf2aa10c5e217cda147a23382fb16602076691d03639c0e976f4d4950c495f5ed5965a1f782f020fe3ffe5f39d556fbf687ff57dc147331a8e66b0e301b9f6bde5ed351b6e569b8463ebbcea77b1726f577035fdc251ef3e7c6eb20cc9c4d0ecad2a7c52f88ce6e318fea107f03a3c0139165d1e38006deffc10fe97241b7b5c3c32396766332e5b7997e58f9614a6ae1af8466a68ffd5c9ef5a9b6fc493ba2db533abe819e9095ff4594bc5d400ac76914923afb923d7528514bbd8a3c1f1baa77d54e5f6318239434ef69f34fad805ccc046c3252907dd21613221b37644917dc75b0674a46156bae644dfeea3467c0b645abf7cfa505f69ffc78683ce74ee219dc5fca4eb885143bfd64410022ec00a5eed9cb801b8eb8267d8a1ca6679fd00ff674ae75e485929f94e10c3cb5586aff6ce5891f1bc2752efbf1816c7cf7eabf0e0f21646344e3f1bab5cb74095e43f08948fe2df62e880a72c7ce1ff50af1c42e29cb70dfae75b3259933b7d29b42b01b962e549e5008bf488f23597749008e998e2ca3bbc67479690e5de23904fa54da49241ccbfbc05f9bb4209589d08d416df5f20438c092e8a654ac401896ac889c370aaddd1db1198eb825895cfe93b0acfe1ac225b1e4e195d12481b4e0ddd7beb050812e309e84e9dbde3589fc08d0945f27be354f7e66c9617f2f04532aa10cf9d5e124a72baca1ec81f4b191555d5dccb32d81cc88b54997ce0f4e8ecab870dc79022ec2e09dae10301440c8edde9303137ac0f6710641a2a19709e1cb0d5b72aab43a715d91af8516e7f8a911585de8b8c687b0522900f9678dc9f51a4ddece16231085f26456d2f8204056d8749d71a4387510fb7b2209dc9ec1f14251aefdfc17e7feb03153c9ce57967fc2b319839e3d21d79d1c619fe1c340252d8fb0e8e2410616054eb2dd11b5867a69c0024a0c7291b0d082a0a905c0ad27e8a8eac6457e4348c0d28d0c22cb1399771f698e51908020fd1242a5308eb2eff19ffae7138884f46b9a2c8cd1f2aeb4f1e02f1e56d12a11a5dd260defdb1c6db082099456e221e78d8629112dfcfbbef420605e4ccc74b90198d6e7a146ce27c3d2243b52202999d6961d1182a1203ee1e3d827b869ec1c5d982257834f74fce3d817a3856bc59347733e9d6d0d0cdb4c2ed4739a4ceec51ab8347a26bd5a88d2cbb59346a9e14b3d2367279dbcf1fd96f39981233b518e04385da196dd9cb6914bbd9975df91d4aac3dc18a75fc3f706b6c98f8c262431404a891513be176ec5ca95f72f85869d3eb502acd9b52c8cb93b84f9880947f170257dcd427628bea654f821da0c1d32836518e01355f6226d81a9a3794006ad4869e5e4d27464063b6b23386b22c00d6478756c8b9eac82c838639c98739530803e150361aaa26e14324a51d5e16d272ee5f4a1bdc0dac15b2e329b8df70afecad36c36b00765198a58378bf261853be8d11a8b6cde6dfe967129d19aa3969682ec9a0a921496986c7c9ff03c039c18a416bf30511633a4252be42497a7c2262ed02e08ab297eca3de73f2741790c0e9724c190f841786316c23e55614557d40ea559cd4d9c203d289cd987f4eac0a074a7174ae5b4f340940d61e3f95c432ab102066707f8f683bd315308261446954c87611033735214aa72e5df40c5c130c74d0a2e452be6b44d5b64f09d97473c92ff7ed44a3e85704aef17c825b82436f06e84f5c7c517bdb2e842f45d0b393b6ae30c068b5e48fe64bcb46bf7ae3e53d183f61bfa2dcb508de1794c36096435e2ba67915d3780fde5712ea7b68df7d86c618916c6172de3a8743a2f7c834f96fecbe8ed5ce84102b217da7eaa23fdf17d9590aca592a83f0fa5ab1462488587196fd361f5b43e4bbc517c0d9cd665b3ebf3e872edab79389cedc9066271348dc4017783dcc538251663df20ed8398ef8e990e69a1df755c317debbf5707b961174242e27bb0f0318c81b497ef0cee172a89b15d0c8a0bd1ed42afb437eb8d7fa0f93d4555903c9bf757842bdb8162a421d84d8e42e1ea13bf3493f034c46307cba4ed245b1537d695d5b60a715dd7ba14fcc0dcb6b7c6b31334607dffb05f0b4d0e5a8d5a5db06aaf1c97a2e2e21130bafec526e13d0bec65f9c29e00742019fe6170c7edd45a8e4477e1b339ac06ac0ae54aa013cc2a8ab639aebc17eb0d96e533db67d4976ffc0046b7a4de32764771d6a0b5c327253a39ea845760658baff37474a4e1d9f42a4596515bdaf06053a2882ff98088a6798a2206591805cf3c26f0a2f61f3102bfeb7564208a74c8981c5123614f4ad58d839381d2d93474512b21f4e877d541c2438b6ef12add85689f41fd84cb1ba4d98e2d7a7cca47a8085959e7b4a42348d524bcd231c4b96052b4f9b7ff1b91b4a7e7956df49a3db9a84955e64d8e873c3a17ed8d65110d46feec4777a87cfd3451eb3ada425de2b10d701162b4d9d6d8d58da9a02fdbff73f92bceb8fa2d2136bff619d7b17be17f4b56679caf0928541d6955b2500566930b0fd377eef6f3da3671df7aa36cd0adba36c8c274075cd3e4ebedbc926a04d31792c30f7fbb6dd56b6d29ae43eaf2b0cea80af8d04f4c37122911ffa1a5578ff0f808b992fa67352e971b31f9fc03820fcb4195717174e6d2573dade40d1e9d32faf909ab70e8d9f200891f4f06b5e562eafd97802d2437feed25309e864867d63e3ac46f5642155b71cda471411e104ff51ccd50f1ed1d7b3b032a7fd9b0145f54536ffaf4706aac1a06748f842568a9ca9990ea0a5505fd41c3157798a782aba618391b805c2ac904506585867f304dfe4cde1a9152f94942633ffd3cb5d3903e1fe895550eef41b003f8a70ed896f9f70455d989f6bdd50891cd88e55517a346f57f60dbef0649e507635216ef8a34b37d7aa97fd2d3337df55f70626777ff773f077f523a16b472decaec5d36a76cfb8d03c80ae975e6e73bd017cfb314823b4c73a77a0eb47eaf9492fdc37b315c5cdb8e14023863fe6c725df0ebe9fd3c27c695155a1028a696fdf133c74166d18420c915ad82e833a42a38beecf656e89d4d15709da36015947f185001d0c5fe1efdb1dfe9c984facaca51409a2b659e73253cdd2e86309d86dcd759bd28d6f8934204034eaab5892e725df9626aaff49fda0ceff0b5bc2f72dc7c87bd241fe21d2e178f1a18a90db2bbdb85a9afb41567ec89992aa75de224fe8149366e582b59276c8229037710c424e2bb6450142b438e8503cc8b31a59acfb71279b48796a9f2d527ba4803521c6bbbf7ee2d74a0f1922cbf053059a4ece23ffd11f985d8bbf7bcaca97037918c0f8340193a091ff3ba70b9a95dd1aa99dee55515931ea4932efb3af81a8e3a7cd0cbca3b1f2407efe1f4c98c28bb1268d6cce31a1838ef5ad2e8ed672126b20e1ff96e6244ae61655cc5093b65bad577d9e1bfcccbf99f2881203e432dc966d16aac8ea0be4e6ae68e13622629f52a1f64c155d8a67a65bdb25a5658564d241ad4adadb9fff18ce1300f790a1dad190050cdfc1ddb1e9980874ff07a8eefc78c17c91e46785a4682026f4e7522ec79d1dc53aeb8b7d1b5cf90b82f3b8cb6374fd082eff1efcaae5421c1170e02a8de08e21046d1db8e49027a6bb2f743ff4e5f3050d2faee754b4b7eb4ec7dacd511c8aacdb1b403c99161be57a0064ddcc811c2369b2e2be821cebd374deae6c622a3b9db74452a12e5e816b9ab49b8b91ab0f4cb3c4eb7cbbe537b4b6772a630ed94b6f4e859e10f6a7b23b0a86c6c161e51ce3158a64bbdf631713866bc04164d32115b105fe242c30347866ff8da8efd2d0fa5c868d4e11ec42a65b3c6d619707024467cef271067a0fc0412bba71b52e1c6b34ab02cbe08a828ce7ca495e70419a9e5755c64ef58b36920d42e16915c5633b04fc042ca6d0fe9e9c203106ce9e7ec877f444abe2ed0d6db45b27ce07096d33869cc967bc3f1e29f7619d9921a4306cd4d9fbcc1448d1c765a500f54b535d376b6ff82a13891d8ec3d329253b1e1b6aa448cead5a5153dae74bdd5f390332f9a69663c79598a1a2e9c73d536c3d5b06472d2a019c8750c5a8b669c1ea4dc8f449f065ccb5a8ffbe337d5028bdf2fa380f7c942849273aa78c0ecf20ca4ff17c8052812c4a1a4ba864722bbd1cff9301b715005267e0f0ce59cb8a1018c024c95583e45ec6cdf419223bf08d30e6af09887386519d06ba1f99cd748d0384c01ad414048314e1021869537104861d856338a30d49e0fda011269d6a9d48a7714111c492af08ce10013862ffe6a74e1a4b1a756a166f19309b41f732717fbc96acbdc78e609b8bfc1813bc46a67526be3c9f2ad2a4c2a6c02bf8360b0d5d950172e43bda6247da5d2399f7717948efee1d5ea6180670d93575390002c431a3f3a4b0dc5f8c9a8fb84bb39b2d1591394210cc11c9f4460e0edb10e3b3202ec8a86d34ee08c305cf108d6088ba36b32632a68e942e85384545ca491266dace8a6c4fda214881a2d7bbbab439629772ad0e423f99b148db05a7f880f3d8bc90cf689d35024049ba1bc659cc48b6566dde06be1abf2bc4f21cd0444a4340e4dec7b29453cf017edf860061c1a532c6bf2042e0b11d8b1daa031b6d01394f4540a0480c2200aec724069454b03d4dde5895d92a760f4e71125213d006600604ae3414da0d84bdea80d5c23cb5bff160d4bd943fab2210d173febdb65f3bf0d2cd954d943b611f94759aea4224cf276e6f565b7d3eb6020fffa291b57bc1325dd47369ad899c5a3bf207a5afe879637a67a4b29fd274efa2ec2e05142fdfc8dda64193162427ac96cca6ac578991d3898ec6999a655b78ba534bb86fb87a2f4f9ef786943a1b25459f53d426c02da82994b832fa0bfa90444ffb4b4b73a9d04d16993593518fa38d563d6230599889b8433d533c5ffcb5e132b87eee935d45f5f1ba173d917dcdb7f367376e536918c90f33f2df1cd314ebf54ff5ebcc97fd943101a9942c866ac571d9c0b3340b4be1685dcdb25f9cf526a4a9c7717d1c9ae7fff9692f0d5414d1b1e4a288d21682db0251162a0dfbf0a9615de480e3fa44c954924b46f28c61b51d4f7ffef6b12e987fb449ea76af23b4b4f147115d3e5c11cd8497086a3f080145f83d87fa3cca1cd8f8c43ae8733d9350a3df7ff922b59e1194ec5a9f35c346e4feb3a755b22e77df74fc70853c5d0647ed017086ce601e404b093c4f2abd4ed64a31f6620b801a1ef1b949cb310a35117a652133fac5b89cd51e9043a1e1bf0531369541ac1a884b2d0ef0cef3179463d90a2d8458a9e4a371bbc263127443a961c4fd0d99aa99d7a8f442f315237bf22ac203c32a097184c3cfd19c38925829e823e83e90a89702f8545fd4a5087d2780438953a583dbb7157b504472593c342b66287c1c65eea14182ee7d538b96a6d26bfc3a5dcd647259800dc6a95fc4fe0be357ae85652d9b6ea2ad7d7d0fd7f4cc4c5fab2477d157e16eeb4d1b2d62f03574a883e8c2057002c903ce42e8d7ee4f8527615e64d1407a32e77c0d4726ef6155a41a8b5eee1fbe948cb7b16a3c2cc4bdea1f6d65edf5306073c0b447a00aa3e5ff7716a764eebfc37c42cacc67d9d0cc5d38e1cf820603138c8c0cda896779504a34e47a0d792484bda2a77f9acd40b2361da10a92d712a183dd4e700ee3df5bc58ad83a1bf750b3275c9bd2828a06dd4395ea12cb9e4fb814276a5b095b9f89467fcd00fba8a251009c6823a1e3fdcac0a8cd6b164c71231b3723f87feae85c5c6e71d2531cf83f22374c8e1f5c82ef73404bfd51fe2459976fc124adfd4879f1fad0974b90ba5342068dbc6f2a6c98cf8e6d269ceff54da0d589b039b32c6689b2ff9e82f443d3b9d42ce816e71bf365da86bde0563bb66f8bfb3a80a3e79fa901b2b60dd9a598a59c3838cd894608e2552f54cff4e8812e79146a2cd6bba35cf47c6de66b649d7a581dfe06616579dd6af7f965dd67a85e1beee07ec47a0f0deaa4944aaebd46e649512a3c5851aecd0ed34b6396a51933ed424b173a9854ce5200ae11351f3026e794457cc17a0977fd1ec158878558e51797ac569179712b35440510008e27cf96450ff03530fbe805d98df4cd203381fdfec5fc5261ec856c9503f847bc83c7b91815a44f840662fffd36a302b1e13cfbb7bcc36580b4309b8a1f7eed6430c751b5e36cef4813533979daabd7837bdf062feaed278f4107a855516525cf450c57d98d6c60a4bed876d912a1fd4b222fed8500f673d177f47e64b266f5d75081d917c2c502ac29edb9b4878fd57606df23283d1d9f2205bbf946b43975271a3949d38ffde046264695230c3ea151e0a0ee58e19270af7847a5297c57c714c3e000ed517e9aeb89b5d275c9ad18647c794d780aa6418f6cc942c821378ab258d9506ea5bf7b511c1d053ca882f0510d4d46b6eb5b684889eedb8ee023324f7fbdeabbcfef41119013a87ef5988a156b39c7cb777515d1a2879162f72d09720690ed6348882c013d7efe75a470d139b6f431f118eef4be6fdda743e025228262449f927146eb9dcf66b78e8e632c352392f3cd620e1182cf161bade300ae8769d44f077b084d0b41cd3f084acbf70e3f8474649f6762a174d3c62b0e600106978c548758578db7e4cc979fadb077d740352a91fa2b2249ae87c911d319584e9cdabed686b54d65e7ffaeb086dc7664757c3d70eefcdf7cdf463250c1cf2e4d291569f39fdd7c128830c24ddd62bda8621ae2eacbaa523ebd988e5eca211d64ac7b186bde6a5d0eeb511f1654c7a449804ff06564a032d3ed0dfaaad42f87951f35b5d553cc84217f042e48acad1d98bd9cc5ad7de3eec1738d8b805fd4004c12d4eb6a428cc044dec8370221e1cbcb870774b6bc803cb2ddef73deb0e022c22b67f1e1f1c458dd3c3dbf0f5e78e4f90f875bd76e64088824de69267f6ccbd9b6440d58cb2549be8ff90f66e56aa22d3689cbaf16d180fe4c25479466c33eeb52be6803df8d06e516b2d8adcfdc8ecde3aa1cbe1c005e451bd7aa404f1a0826950488e7a688e7511a9870c9e9bc802cc04e3a3d77271fb8c43add628fdf0e463ca95ba018932d896a4202df5b503ef5c1a295b03096f26ee0e4e9bf4a7a1782199cab00731b83a04b8f599ec339bb6f7e77da87ee2278e147d8ec4e5f07c272eadcf54a894ce94d1ea547c16b73fbee5be3f2d6768bb4b9bf0c03de683513e6f34902074cfa61ad4fab636d85a32f78fd4d85f645e394ce72943727859b8645ca6c27395ec72656cae6934b1e8f062033501293a6d17df481b817a5a3a6a8ed2966e2a8c920ebe56e18d50d257f070f5324221e500f094654e6e6c428ab23da8babae14ae71c82e86a471687be5b65f36adfb480373748618be4249c648f15d774e08b5e5e09401dde09af83b9ec4e9433062c6b86382ecfaa74328f97ea5ee012505179cf928c60462737207de7a1ff21690c4432d2477e014a290a975cec9a501235d27f859988c635569d97c74338fc196652b65bb8fb0e9286851b7a1cd73558aa4a7eb3639ec75448105b846048df61781500ddf25f183f86a43bbbffcd7ca17961c6f4730d6e387c4f703b063c40acdb1ffb6066fe7e378c0af95e4e6d4bb8cec7a1d5b3b3dda33cc742fa61a8ddaff969f0d5777e6589fc20473806127584c18743a70892ed0ac670063236d0eff708249ecc4db28ee85c2433f83752df2d6bdcb23e14f038aa9d136eb8d19520f2f4947311e1ab8ca8dfc1a74d5e59dc0532331a4ed61d25e75605e38ff83745bbb07bc91d265df2f9cdfd845e7052b3b3620b81911c78c2e62fc1d8497e8caa2e325d61066e3b261839e30b1d7661f0909de2475a9c7cea99519a9b0546f3a23392f662f9127fcf0c69d02e34e7d5cbb9704b6b58426c83f185c22a77e7ecc08f4d17340501cf11b06851e3fea54bf55acef8b9a15475d04d159d6a2c9c5021325597c28b40c8b7b53a16e6dedb0a99792ee251bc78962e94d44d82d316d6cc1ae4093535f2b84de43475e9fd85ed3812ad8843f593b8872a0ee0a3383ce28dcb5c90bb26e2f4597434f99c0e5541a041253765755c6c218e860460401f03cc72e907b2f187ec05e59c0cc6287a8b3c59b0c6779149763dff64ac8b769c608923cfdd32961ca552bc6831a1de00b2a793ba7b701fad9a62a334ddec22efc799711e8f5be7ce0bfce73ecd0c24e1d999413610663fa7e4fc57589f11530fdbbea660757ba106370ff403a9b7950f3d049b41f077071e8f15660a9e6020f2a3eabb43670fa46f484c6e09f0a17e7f20715d41599eab9f9676c70866e867197714f542ecdf9a08281eae0a9cc8e471cdbc13c81e9cc2f85df26b446309c155bfbd0a6afaed116a96229dac6eaa12be9e787a739a19c4a86061daccd8b82122e22491306d49817d13e16a62c1ec931bbac50eded9dc59e036da7098570c68998e35eb309ac14098ece2118d041c2d87ef6cdfdef194e1e1ac733a1e9a120a45ba209794b9cc9e7aa7145c8bd7286b74bfae04e132b32186009f832781087934896d940ab5e4527aa34bc7d497b8bc0adb4391bb554ffc1b72e0abf26e26024b0022de11beed98cf901b3c3f5a44b3d019ba8f24cf6be7b8c1773d7766f52e0cd60fb6a2fede1d388915956ec86be812a9e3cd1ea11bc1c67a14d30d8124886d6824ef0f9073f82bea2ab923c14cf8361adc9c3e0bdd6eb7cb51df35cc8444d3fa4197ed2100d628b123739aa8cac8784bae35dd542b9e677bc17272eaffc0e66a9ee1b81e9e32c1f51069da0b7bd53fa06e23b4600fe359c83043d3c14ae6f3a258f04fc931a9abf62e071e770379fcfdd87287ad9f46c93d169ca2ad915a81a4403340a84e5bd241042826c0f080189ff9d8a75006bb6120766cbbe9516fc89b8bd545a87c0db99be94be4a9306130b4b158eb7d53ea36f47bc1a57313e523c3f1691bc8ae2ded8b91e0a7913c2dfdf0d2505e96d3609145ddabaa003dd4c0264951b145a63c5bb0f4b28f15aad03325370d4abacb1a1a8dede6abda3095063aa4abff19003a833e30bc44b4708ce1e1eb3134d89cc5576cbc1368deb1ef924761be3a03147ff2dd14563a42778420e5bfe604ca67f07955774058b7056b8c8ccb882bb664b355a3e6e1735714b15f908e562e667158c113e9d9f59bf41f7d8c7d5caee36f3e10d2379fe7e6301696ccea630a081129a1d1813bf0c8021929b89d3d58986cb37e7b5d28d76f971eaab3dca4beb0f5b20ffb818f98e7b47cbf5d809613f6d040bfa521446e99930a1ac27b74a7b6280576fc18ded442e6f75ebeeef974348d9c65d5ad9b67217d49cfe7a0773ac4a08aba49e6737fbd75eedc3f739e8e12c97d95d02f2c442e2fd8faf55a7b94d063654bf8bde71e3e8e9e48f70063ba4aad568b3cb237bf27f3bca340bdc208e1db980814348e698203103402803e1f7f86306859ddac6ff0dd4c8e57513d6fbf04d24dd944b5f3374f564a57f5e962eba43e087de4c4ca1af30153d3185de75fb3bdc285e4d2109604fa10c1c9a7579d42ef6a2f50f91afd1ac07f78518060630ca9aa661045854747ec91d98a6a736c2b84995ac9508705b0cb7b931234fbe427513452bd0030f19a27953620d3b4b8a1e9cf06bd4a886dfddea3cdd3ada87db5ed890356c6ce9381ffc8d4feac016d53ee400ab9fbded90af62ebcc9e3a3e7b029c73743ab315e9c1995a102e32abbed97c6fdc6e17c7f3fc827d1e540b6b0e7d217db38a3711e3c2712b23aa6dd17c4aef79cbd88a82b9675e0f42514b0db464350419fa891f408b96644a710c440461f982498c90af22f9179a7b83ec85e4c713215135f4a09eaa0a28f496eaf5347b7e7c8d64fdb09d308c14eaa70b8d5c47060f29f3c1fec7eadf55b0d6b290f0c526394547326e45233a06e40bdc8f6e4e5c72d77526dc0bb8b854727113eb42df48f0141f5c3b0dd41c54680f744e994f92c77e3d886eddbaeb9b3ce0747048885ad5babd3d20b5974cc98d9fa2052efe62e913c5b8815ec74b8a134a2c75069be9e2c024f8a117aa2b9e85ad2736fdad4cf120fb5285c336f925844611dbba3995a9844cbee3a8aeca5ec5edcf966e6e71f56302f8d6d622e8dcf05a62cd3cba8c2090ec0ca17b2cbb6ca1ff1d38b7aa2ebbdae5491b49bff4b7aa994617c03c7f49113d70bf23b10f9a22e3de0eec0c38e9ebd0511740002521fadc8aeee0eec64f903ae9e48e6b6f337a3360e4809b82df4bb66a6eaaca24cef3cc7221289a5e709580292dc7e9ddc3014288e46fa712109c91f874d5b11958538a96e8eea953e4d1ab07f3fd76df6faffe5027e8724964ac9d3f58c7642bbabbd7a6196031cf74652fc77a3fa3fc51095d2c164892aa28c41f34b92bf198d6431b318801d337f5e17c5e32ac839588bc56e44fc46af2245efe2eccee7379128dcfa7d61d3b0eaf97b7b3f447b97d596d9c47f8999114cc6c1a323afc3fe9a016005a8c86b2c8d967d783380c4d6e587d1963f13b5115f3e18ce2a49799d1315aeae80fc8ed57a7fa02a56870cefa88b9cdb830b4459fa7eef0a287fe08ee80d4f0f316c0c5d81d4534ef7eaa0bc0467cc2b38f899f030cd056e43bac8be6580b6101833d9d7b0bc7ba2f06539f171d62c9656dfebcc715000a45c979847417fa27f856cf936f7c660d67bd6bca4705cbc5fe38e1d078cffc6d21825cb009b03d6c0055de5499460e500a57fd0c1a05f28551d3d89d7c5267574edae72bf9d3cb52f1b12a1c817fc676817304ff7383691e2c89156ba4ebe546f3c47708010d56c7d8d34ad236e4072fa9afe5de3ad9bd36b3e6fba9e211bb3eec84c2ac44fdf4460a7dd5327f15e5232e906ae8b7a28aa30e048559da26a6dfe5c65eb85c2260876ec221a63eed92c6315614662995461913ead34c1baded9e517d07cdf3cf50035cdaa653a83f485bf9fbc84bdefd2f1b038990554b0c4ac8c7cd8fac2e13eb75ccbba84130a1eb542a3501e60baeb23821f9e7c7a4742b9d9f9853d60f1190f8e3123ce0b7d8c852403071a0928ae4888a61f29312783b1ccedafa15d9b07ba900392046339f56830b5f70d442be91632058195c559912918e81dbeb0925a84fc30b797dce193cf33c16d81c946c0faa15e93e0b6c546b7f71f5d00b94f34225a77c6755be21f9aef8613ca931207a6ed35cdbc9028e6ddd236a7c61edb1872f9f35f4010a81a033b71d4cced0cfc1d388ef02760c0ed78a20ec69de61e9f8f6cadb41ead801dcf21d063a28614cbba933b24dec328ea84839dba3793e5f54a650f60dd12ce0839fd8f04170144c75e7a99de84fa9871387bf56244eec14ed560ab34db0241b37bf270cbbcfa9118dbdd659942c5168a12570e95b2ddfe08d15039ddc8ce8a39db87a8260641c41263d7d748ba55637d0f0db6a06282b59e2b416481dca08b70949f6b408ab2ec722568211bc461a8d9410ffcc1e42474e6db641e3fe55e0a5a3a992728cf10b7c3959eaaeb95356d2f170c3d1804d23fe357b60c3dab84e803d4fb2ac87f2bef185ed6d28a0249c4409f4db703613544f890a954b5ef15c93b0e669b19a82f5c5f34f6e6557983e9a065269ec0dc9b1b3dd92a9404bd20882f2b1abbb5a80c02c9a8cd164e15f46dc969c6ea2e63e5c76584b5e6d7e49fad5ef718fb72f9d6545bd0cfa0ffcbad43694518ef93b56ce43d1410da1898fda19936e9de19b7d8d33319bd6d4507a4e744e5abeb0cf8bf2dc57588455e134bc3ce8c387f06b8afff19108d936f67b02f342b4663deb7f9e6281fea19b9c078bab681a411df00255660b8ba876d7d7d63e428a705da3b467bce8372d89e96b56f474e74f99707e9f5e59de42dd1ac61e55e62bf493b79d79b08a25c01bd631e72f9017f748ea4c56043fbb600e81d819ee34931a28d2f0945c2eb3cd3485a6e1807faa88310d6770ce9b58e0f41590a377adef46b5b005be6c7d97bb1f5976f192003a98449b3a79508c9712715a6810f5c348e0bf8a5cedd6afd0943e03e3a95dc70efd0024b9b5cf93cea7f0b6e7cf0a3795dc7cf79a77c801086a61736860274b69934305ecd9da51666d052e729d624b8b4bb6da4a66aff570a1ae9ffadd038550614777aeed77a49df1708e871edc85ba2d2e5b0c533ab97cd06ddc69eed739994ba2ab44b8cdf37448cf5d4ee1ac1d46c3099c0fdd0a3c471657f7b318cfb857d6c2035ee1f7a92b78c451f40893c219ee7c97171be9da983483eb64dcb2a68c970e99bab4f0ec96d90a86250df3a27db60be07c27967278a03d422054fcf7c990d4871ff81d575e1efffdde55ccc1c360b82f38df56e5d39c4afe721305c7afbf102711715b30ea1f14c6510b74e8070c2b62f2934863ad08db71a3a74a79845db1dc85d9b012a9f80270e5d5df43ceb62d523dd851d9f6559beb90633c2a3f1eabeaea778caefb729576aa8094a48e87d099e20fe85408fa6cbcd935a77c7c995ef41397d16309c437d2ba23fe1d5d2aa58adb1662fa35f9872381917ceb6b4815181ea7e31b76084b0e44fec39991a6db8784c689ac5a98e3b6f0474423a2d927704f2c711fabd388c8a16426502322da448caf15435c9bf26d2ca0b68725e2b8fe48586fce07fa2b521486151a99e2ff165ba90d2784f16b19189771ffdc5ed760f1056b4c48784d2c086b26229f70ba022ac2305eb06e00df171c243511fe23224eb6aab478329af4b9cc338622eac6492aabd1a4f9d474e362e6217e65d505742c646d078296cb7b83a7d12cc1391cc0e72cd0ea01ffcb3ceed28337521c33a2d4a00c748a7421f9ae8f88ed2b540319304aead76f74c76da33832f2006addc3ed85746fa3bd02e5704303a315327398a22a766e745776fa95b49bd13b0d05c794ff266809a181e28e42e57e7989ca786ae41fe476e353ed56472e356de9269f048e76a75651ad99c114a193c31f9a8657b51cfe4e5cd23ec85f937c7eaba04026e60b3caea0c5929ded106dd5e036e28f22b50f3b39bdd74fa58c628d21c66834e6efbecbfbac52d8eb3a0cbc2ba9d0dcecc5402ac2afdce3316f4b059d4cd565a82d5975d7331202c31cc1803b33f8310c72a9827e7ccdcfcd4c63e6f7ab025c9604fffbd2741193a010d07ba6c5fde3e9c96d3eec4c96c37fdcb66a873906c92ea02110183e6be4397fa2b7f5d5a38cad1af31fe382d926299f5535218662f3a7ebf4948bdbe68bfbaee438fcbfdaa2f68eb211625a5c34c151527f0c3fce20d02085d53d2dfc81e635565a6873f7241f7cf3d23c32b024f4a027c1fadf7dde2cc0df8400b38a64c1537dec11d91fa1737b18b24287447c32dab036c20313ed65befc7ec75e75b994eedbac4ef523fa3021fae276c0b589a200f17b36e1680a6773e9dcc9bf7c26164ece72755ef7469977153ce6003b3a7f9604befa5cd5afac22f1c0e1a9323b8ffe169ce2faae2d0dc059968cddb87eae87bb099c21b644b1b2c5f14f10dc865b77dc584d1275cc61ce3628fef44cbbd79b10aae230a50889bd376be5d3626ceb76806a95f2eb85006d6780558c3a12df479e1540daafdc28fa19afb22a5a98477f3ce457642bf677f3c0e9de8efb7b50ffd47080959c2507e158218e8342c0f9d97260aeb852f8493ff4d79f791e4980e55b814c445861dd3ee52acd61e5a40cdb20962375b7f8e7b89f906c98bd7aac60e381fb8af4a5247993687722c705e7791fea082bc3e36ab8745ee8c407115685d21809e07371aab2f2e6bb44256ee647f2a0bef35dd6dd30748f604af1e42c132c1131eb2c15cf6a71f983aa1d0ce3f30157c5c5f6cd6f891db8c86157cdc212f9a265a5fb676a10e88366a206eb98da2baa1d5f2b858d61196aa90c7c77cbb99198668cfbc6e34a1dbdee17e1409a3dd941251cf4fb53052eaebfe31d71b39d68c33ad8f66b0b06460b09db9075aa87bd11953d2fa4c461ba0e1c2b4c755762e1342e899a58d99e3b15721bb824a56e57046375cc0ac5970719960577b137a150c0adcaf391c6431326a1421f944b4271e95b95a4d3bc3a627fcefa9698d6925783f51f59776f6211791b21d3579b02dd7b2b21e6cf06483c2cc9b8ded6b2423b16a3b79be535fa96e15366fc6028f5b77228ba45d8b0e5a8bc4cd84f5d40227cf360f0842832336616b56acca7c71ce7f2d250d3dbccc36deba10b296f15a3baba94ad13f481f21ce7b0038cc444b51b9da2f473227ed475da4b6043cde313c9b4a3724d83f5176383b29d7fcd7d9aa4793c65cef65ed9cc7d4ead618aba697ecf9218cbc7050e459be69780eca04fefac47aba78e0a6290cafedc3f1c5ba6127d256de289ee93ed70c484a54beb1ef31d633bcbd1c1adebb7d0eab09fd4e294dc18f132a9903a8e6fcdffc4ac170bdb5d412d132c77096a86c1fc6a169766703cef87de71550bdfcfbc7eba7ffc037ec7a66d33363a4cdf410a878171159bf77b589ac7c119730fbd1a0e6d647c7a3ee37c4fd7e5044e9eabe132ac0455585c9fc4330507b477261f916288a0eb27138d0a8325b59ad2a3f145f4fc939ccf903a2b727287b7870fe1f753a358805212daabb122d8603b6ec8551d67ebde83c4fcffb0cdc47c72357bb1e7f306ef5bf0d211fefa872040581288f47186cf65c65cd20dbf8cfeed5d234863a0dba4e4efde7f0dbaa2e838b8df64bcb7059476eebf4786bd21f796706abcc098b49a444179e424c6f91c6f881566bd79bd3010bbc489d03bb1f79c1949f2bb7b6285622740f85cef9d97fb6df3f255230f801b989081b96e2bc4d9ddbb8dd1b48edd9212880598716dad8d513376f6fe2707205395a2e329a849ed157a97304e6fe6fc090497d535d11a80a2d797a8b1c1034b67cd4650773183f937deb4308c76d0690495e9db8fd6341c62f0e743afdc0273e6b7b3e2a5d3dcd0d891886170baefb6476bac34251940fcb72ed7a1870b60c2b1757a9c030d998d52696184bfe6a3337f95ff1cd4baf640220d4b596c9aca18ee653f561dc234c774dc2c0d0d93cd44a343d7bab3ab55c9a77134e7ff551cfd81f9a577e2de587ada26913b576fb75204db61333bd6641638a33799561ed937ed82318cab9fa08f3478567b760833ef2e2c8a3b682241c080fe924791bda741a8b815fb77f8cde2f6407ef5eeda5c4b72a6b7ee304fbe495dcd8c7d632eb802dde686d095784ffa875583fa8ffb8ae59e32c6ea20e9ea7a8198a8ba050a22ad747dabc58c4bf95ea2a37bcac16c935885b59ac75d30b2c529f1c7c511f2ef66af5521c55000d34a4574aad4016714a9a121b875aabe7b53496968ff07a1b06733b3e00fe6921c707e2a318718637b61cd50cbf6dec308d101640ca824e09497e352f6e9649c4170a4d4e364c84d935cfa86464b6f40c6e32fa8e6bd857ac956796831999c31ef2ff4ea22463b38cb3482452e6aa84c5bc03a93d1a5d0d4b6810e3fd88fd85ebea732eb473cbf628bbee9495329897fb1b9f9f3127c9215347da6f1a8b919f8dc51e1cf220a2e62d1b8ca76d4f88522c07a8aed84e25dd6967052780d31eaab21176b3820d0b65b8db3768f2588c25983e53135734a1a891a9e9fafb8f777e39e99ca00e19f09b460905deedd97cdb7369f0cb508ab55fb3acca7b740c94594f613c686605e6a86f19a2a21e5c5e519ef1161074421fde919f823aaaf84476b2bb0b4dd6f40cec30a03391e820bc5e1a3cdefcea046509307a7ed421300697359c014ecd07e6d146c0377bc6f0ed765e8f76b77828d75ab470989a9d23c690f4dcbfe3622ea3c7af0eeff85e0ea75e3fed389334e798a99fa2c2cb527eef2b024ace4e6b6954ce47cc5c92ece2d329205afed59963e7be2e298cc4013961204c363f011d3946df5715785583e8e00797d154251965d02a266ebea0680660bd51b00d1e1570c471174fb5825984c40d1853e8d2214e6ec9429df16466720dbb19a50721f0e8ac36a044ae71c0abb210f30a847f320ee745604ae873e7815548aff5a628181a9d047609f020637e9b545c7964a5a7cb0ce6ae4e37cfd611c25e966e958178536f11df5177cff93d8ee4c8cafdbd239e4ec83067d1730b5a36d94bdb9a72d2a3795b0801e1177e0a93f1932e5e188bdf1998a3c04a7eb29ce666231e6aa9c59436f0e787e94445b1b31c35ecf54c40f4d59039ec1cd10aee8ed38098c8d91171d7c1d8b6b9d1570348ad7d4aa2bb7e6fae2bdde4fe8a7f676643c22fdab905947b488b5b9020abd852461fb8d3a787843114be636086750206fde55de4aa0b8c7e9724747c884bddefca07053b3b520915c6cae35fb7f5248737350384771fd8b5e6d4371c5ea6b39f390a43969d38b23f058bd84c99d3118f4b1307de37e2f911cebb3ca87b0facf40f473cf1b6c12309c685a626f72b5fda7606d3a95b24059edee58210f55e146b075794c1258beb0450fc7dff82297cff0a27792acab0f6382c3f1cb21edd71c522633d149da5321782bf90753582428b72f98df1d878c6ae9339d01cd7f3fbd0c6884d86c68bce91fbea0578ef415043fe3152b3074d5953c8d1798a43c347e7b01b1750dd31409135b381fd72a2354bfdedbcca76f82edf0a60628040882af88c32723a56dad1e863ba969ed250551d911a29d9288ec7a9afa27b9fad21f8ebf2866ba4c13a336d274aef13d29a5e7de6f5c95bea5e7addd2d56539c555301d751859feaafe3e0edf2d3cafb397fbfde13a2f27c4844bb649c05af16b0b2975ea646e67f64a553996d18503425eb073256e27def7072fe3a9a589dbae7b0e50894dfbfeb830bba75c60186a8e0f29d7660cd8ee18c0f3cbc0d6fb2641c59383d746e54d4031bc8d2384d6c12d0117da99d0fbd0c17e717f216f3db80a646d6621859ed9c5de0767eb9a94540cc43a324a46aaeb7e64c79e3ad91ce0489d4ea344d4f0f06b495a4f7dbcbbed5e5322ac04f3c08eda33e8963392581cf79b4415a70bb2980435368d1989e446cb5a1286491d0e014afd56fba3529bd25f4b42b25cef63f73d859f78f9e032cf8dba0c5f0f4c25a7be1eaecd8cee84bb64efbc414c1dbdea38bbec7f33b2528ccef796fdba3ad057c96c0b79831f9dd6f759f54e60a89d579940b1d37af35e7ec20331003d56e795b9d1e67f0fd22731851ff211aa9d67a200984f8564c6eb848e8aff5e41c89d5a440d8627676a530de3c246c7ae8b2e22fc4afaaff4d0e63d29c572a32bcebb8409124b776b981a8403c8dded9579c3686fbbbfebeac44a9101e4edd58d1eeb4997d74d8c54f37c96eaeefd31ea10ad15957cfac8acd95e503abdb9dfc96b9584e64102ed12122d663e2fe2c0590fe958f01567571b1967cff223eb9c3a679eef6a71111d9dede99593e7d3771f09893473afddb075c5174211027500a717d6bb745b021291ecbeeb2865d886bd1c9d70ed6ed4724c78aab19e8731001f07765859a3cda7b10ceafe0064d7900957174901b98c05750d8b7a498fe2cfcd89aac7abb9852d892a4da3f5e4ab15beb3b5a716e3cb5f60abdc9b542c4a845f97592cd16a963bb25bcc9102c925ab205951890781b6ef669034df14d714592d556fc784e9aaa8c8d7bf476679dcf94f76a42e65c539671db091fd6d6c234ef040215011fed76977d54e3e1895354e7a5029639f980272d1817292acb6bd95f8e6ac2a483ae4a4145d76b393ca448498316b9484d091243c8ac74a731b89057331989d2a966dd2ed4943999ea8cb6e2844d165925cda68a2bbe93282dfa6425749faf889168f7855d8a2d21992d38837bebb6bd00a3928d02f143d3389068f08f6558af500842026806217667622649e0b5d47ce13ec844a8fde4cc185251411a3d05e9871439f7d9c19e692a8b2b689f62ef46062efb8ecdb910415099d8eae5e72086e5d70800249df4a786235d91fd02139d5ff9690ff619d898049b56ddae1709d27339e221f03b47caffbe64ccf47e1865739fdcca00bec3249e9974fea75e34cbf2f2f64abf0ad353d756e8804b49aaef4197e5ae32e23e3acf182d0d92e6a71ae1c73bb27e06b0784ac7c80ff8a8e42b99c365d4f51083b59443ecf96ee8b61698d4b791272865a2669a6fc77ecb3c30cd03347f6f4ec8e134860ea92280850ec4159d7229a05f40b2d79f0a574b9435874bee4f9a47d590bfd9ead81d29440cd55898c0bebbcd63f577eeadd4898c6716dfa7ce86948e48dfe59c806e9b10b6b678677d9ef3d9c4c00b9ff230946eb821d48900b19d10cb1daa635995fd0c73088723f99d3625bad9175469dd9cd1cb7a991e3ca6919bdd3d64509376ed720d2cd094ab75d22818a945b9ea99a1615463ff5b2555c6141c0411e55afc2c831946a29e507021d0556a0874fc72ba68cb147dd87571d8ca9be15e54460782fd79b586ed02719a97ce5ee93022607c466276b8bb3a6222767f0bab94420a2cd4aeff7f9c23faf545a6c638a20a78d8961c9d63562ada1abc6d35eb362072054316fcaa43f07e840bcbe1ab821966f7bf2b3b1af869846769dbb4422f55ef6fb191db3051820c4a495c6c3298d4b00ecb842da6e929df369979d48ba9f24a9cd30dfe794a1184398dd0b33383f2bb318683fdaa149d561baeca504f1b07cad95594b11d400827da3818c74f880ef54407fb59eb012eeb37c20a9c518d7131c1a6dc8e6fb1f81307f17d85ce731e7ce02e23892dcb80c4e35e7f8ca7c182ba4e05b5311c0a8a6fdef92c2822bbdfd537b8b08390cc3ec197c7b2cd976a88f14fb9d86a3fe117ff26d1bf68a2c497e7c122c9141083aa9f08b89421122ff66285f6e141d7ec76a1e696e7364817fccb60871f3e342a6ddc933c69329309fed83b8194bab2b2890a3cc26b5b5c9d84483c1af9f7841f3064851049449e9b8e1f3e858eac46a8425062eccef3ea8c78fcd7c962fb61ac15b0a72692106f95e83154d2ae74783a1d27da1b2085629d4af5a9530c9a8aba5a69a3445a1cb89956fbeac5cbb6c325e9000a2dbc0e703559580b4efdce61e86784e38bc2bc55101a87bb9f54fd6e44a0a76b73536f42a4f1e7f02c4832836a6e4bb548027fd36c2bc41dd9c242ace7cf836ab895254006a5b2cf1c50c57a46ff0d65cd8ba3535151ecbb7ce24c720aa296f96909e139e4c78cf6d0c0c12c7ba69548ae696fdc394362dca4c806d8396e58d759d8cde8ca37a9ddfeca5b4390fc64a5c81a002e1c3e6ee7e40546ad3c697cdba8b985bf0f8efb71f322dc09610cb4384b06f0d7e0133418574d862d56b8e6b357d070f70a1a040b48d105da5733be89a80fc2a00609b84833d315360ec33a57753ee1ba6ddee51671d1c285294bc0ccc3c1efeb49663acd063dbe753a3e08303f76bf9fcadbbe81bddc69fc96ca5af89ddf29dfa2f253379955f78b2be38ce6444ac1f41bcfc5559d01d27606a65314d6bbbc01b48622978e695a68314d9d8e98adc3b5c918f75d6b6cd837235b91bd84bb064eeb0f51a83b1067f6cf487869d7ba5b4dd9a019691ec61441f95d1cf8fc0b36111f8947baf292976ce70be519089dddb61f3458892707d0587e51cdda7af2e89b5f31292c1f67d764961c4eadef04722bc86d3b6664fb0e0e8fb1a887fc74ffff97d9760e40bf7785d0cd309db5b6b22dcbe852e1d46ba07944553d9e2202ada587462a7717ed05c5d7d4c800d6784437993381920a75754b3ca59e4ec30f88bb0e6baf7a3f876b8c0104fa180515fbf84019336a47e3e1046cb060fa26d8e93b37bcf4e6c11954c1089c378c1e0f80feb658c621867ebcc00ef08c8641e1d90d90c0cb5d3ed1a39b07d4a014bb7dd6041f94a006cebf8318acb90cab2892615e3dcfe3f16011d10c5a5cd69ff56d163e569527a36fafe3e2ade45647b6e817461c2312a76bdae73d4b5a17e2bc21e08dc03d755692b89dc4af259cdc0dfc7b1f106378a6bafd5b5300e9d04f3a738df673cd40a050b30e8fe57fb62e346690b0f65eb17172179e0538ee576d31a1a646bdfb23172a622ca74fa15bd3da8ba449dedcd77536c563b13c0c8260edb58cd7236c5b718dbfb7a0fef15158e4dcac30a28f44693d5359a4ffc42a9564582b0a6aed68d023725104683737982766b99553c579a10e25706111d9341ab2f2f53dd80f16bc459c3548082856e74bb8f096f1ab31a67d7a64d9ec477286e12a662d5252dfa9365a7a3c2115d522fe69829c4a5d9f330cf2c6c743daf32462c23e8c0624c3a8256b6592e46e3b8b67a4b9f19c014905c047e0a20bde32010d2c347b4839241be2271b0506cb252d5ffd6e5cc106b3e5592c1cfbd58ed583ba848de2cffc05eacc9838936cd002aeee56ef35f698969bc4e977da6114867023be826e151c04a60fb53d1e8e5813944f80cdcbda66d585dbf183453aa981d0c6643c345446429ea816298a3ff0c84aeff5c3be0fa4e3523753675ae88cc01718ffb8fdefcf5eef4e8ac0fde42a548589f75edb80b2d6d0e0bfb411d05281bd041075123b8eb8127770c38e6d0ffa405c74cb0a17ded0c320f2a4fa86522182c482291f3f6736e72e28769382ff2bf3248f563fb16df5db720d778ec2f5ee89e6c28f51adadc726bc8d66c19ecd8b2f90ff4126bf101f7ccb5659b216d161a6308a5b20ec508cc19e8294dbc6a77c217fc9daea87d153f2f71d27d222f5e4e92f2f11f2e33cf92e01548c74b1f56f8fde6bad58bc23787b9d3acac28df7dd2598dce3da58fe2490d0187d79ef55afcd5bb74d7f70dbec04dd47572d44dd1e100b48f681e460fbd0eb511b942b6952d875465d3ea56e73a8509d110a731a2b639389b9342959cd659e8709bb21f6af3654e60bf422400dd7824566ad33806f318a5d80eb749a32cefb017bb971aab5c94e6be6419aacdfb5c5b107e449e59e618e2828353098bf953cf33afdfcf2b3557ec5792e326682589f5cd3cde128d7a7bb31937d99aca2716bca1935e0b53a16bcffe8926fb5ea4eb2f6a8f7c92750a0beb91448c0b1f7fa700681c2e2800dc53dbcfa8520d5ee429605065baef5d7900f60bc28cdec789c41bfa0790ae0b1632a1118fd9be8794fede804b4781339366fb142065737a2b46a087e23d831aaacb929ee660506952be4b9d8222f7a4515ae14418697c4e6a1944eb0bcecc71c9b2bb804d1d1c84dcb35bd93688a97a7a0ecfc52fd280c8efeb0d514fffd8b83efe1439c8a18f5e96181f2c0b8bc9e6155015c3c345eb5840e439d19e22096a6d90f362e277de399c03b68732d41845aa16639277a7eebd1daf628eba334c05e7aa2f42f53ec2157504d7923efc3a7542c9938b37186ff72ff48d156372f9179e144bda86acb37f76ffe69cdf1ba474381b0e1526a48fc93bf1d2702334c8778ff77f2b41938f60883228e401f13f997dfbb7e73285221eb5e5839ddc5923fd3e54c196308848fc96007ae2f69eb963899f602055b43f9df6b07f8e43d047ec13451575d743cc5f2e6d359075883e72d9e464d400555237ffaf113cdf93ce9cadea5e2184b7d61bd7779e8ca2936f36be09542b80ec5657ce04ac906c317351f325b4f0c82e4d020afe432654190492477da6a2ecba7150ac1fd8da97587ff15941a62dd1404fcc29ee3fd2c8200afd567c8b4a4f189fd106fff87ac94662ad692e957994245e402417c0b9ba615e980f1d067d87857745364a4a57ddba292d02354bb6e1c35d71944fe9a3364024aa59ed65245cb2ef1310265f0f08b48faa6ca15cc507045d1ac362815d9d13deacd211d2e0650348c465e8515e2c6a2dbeca7e3001e7ff85d79bc7223d72bc7080ad43c5eaf3ee207685dafae03ba6d0d8e3fe7d118ce4d15cd8c62e7b5ee23738761984508bad98df037cf3f7a47c45f882fc0597c721fb6e1c120bad949c29ce2bae554661008d8d56a647d40dd98d637fb80ab10c9c4f436596eef8300dae88e8855dbfe803e4555d7d848e961d941ad26d2d2c26a1cf555d376b1ab24a1334151b35bc8d764ac51c5d10241dca19ef31fa5f16c45eb9b110e2d3d72f69e23739f1be8a92f371663ec5d292d1e56e1551cca23b392960178bdf35c5b42765b10a9108ed0dba23f8c74b164d458a5a9fd0e93edf46657a7902d0b1c51d2e6bcb6dbc4b03c7e799f1dbe3997a3b581c082b2f7cbba569d308c027d4d62b63b89a19c653fb23eb04bd2cab17be11eba4a7627ce113e06159ab110f5099ba4a367b24e9b1371f079f6334546077f7d237da7ae7184ef15e5d6bb32a0635c21652530542dac026d4f71477d899cab5de10f4c7f7d34783863e58fba1584c54ad7732e6c59590dd9dd299878fa717e165d867854c10af37a10f58b3f5a4bd8dcf403f2719c7578f416ff77ea6d2d353ee95d49ae9323e38928c40db5460dd6f27f12357e4a35ae08eca31103da4b2e002921c304f31f1e9e683d6e5f409192de6d806e251bbd2f994f43c0aefd3948569e69f7e7c4392b53acb060f86cf56ca3e553f4008e2171a48f3fd55a68c1c6bf1b1da39fd3d4249b7c296d46f87df3fbcd8fbc3409f491b8115e5fe5d54054ac179c1381fa5bd47ae4856526b622f1f6af87568db61a2f2e9c47c6ad3112e5252a2a2d92cc182c90f7dddf0e7305b35add837237ced310b0c6be3df035f753ae1ba0b312f83a58da22c499ea9b91124abac7865d7aa7086c905c21a6cdb4d5fea72f71a60c7dadb7ecc850f0d7fb8ffb1afb0ab20c0465438ecc992700851c8a7c6d8b8195cd71dd36465a5eb2701f6111a9f2a102c7af97eea631d26428ac2b0df05b9adef66ccf7d0a4d5dff3ed1f5c9002ffde2dcd74074d5ec66b81d4ef1801e0358f22c5f40e38dd943036e5fc31266407e2d390ffbfaf8e2cb0eac5baf1d42804f950a9e052a867ac2cdc513fb91b24ae9943f0dab4032ff00a940402e5e50ef0d9b14f8e3f647b27a0bdfc03694a54380915465181a6936d4a0e7e782082aca91d3d91673b171f5e11c36be8ddecdcf0b15e93d1716df35a18e87b6320cf9b7a35b939f1180acef150d1ba8bae64756edd6b7926af0447a67b94636bec8ca3c8d3aafdd5d4b601b9be92f0967a0bd493c5628d119224eab67ad70c43d843b0c6e4c04c2bcae26d38e2067ea89216346bd0e2be619b4f25170b527f181520e7a3e31c6027b38010b645d8439c5fa144c1ffba32524284ba04e2d39eb565f4a3ff65e9ed1ee38015b1755ab34ff87f58a01abea6b1646b83c621e038e450150d91b2af8871f167a4a40585c7864e5b300475959f7b7b8edfe0d67ad71f961886bda3090f63d256cea3b8c32630ce6ccf25a8959b159c24bc0f23c8155307865982f906e39c77438ca2d6c3f69138398625ac51a67568f72bf97aa6ef490a494cd3bb2c9ad8099b580ddeea40dad6cedac7e4714e72b7f38d61bfad2acb7230ac2b1e40fa22e1663b87a1d7ffff7dbd01e009e99fda6d821c42f83756ea97abcbe4a319cf458cc9094067b0e3eac7ad50a52028862c8e0ec06bb62e205eac4a148ef38444603f2eb8d0ae919c18d4510d86c5e5fe84ba1cc4e2257e9bed8c1d712e480eec707344a86a2f196bc8ea536d88dfa4970dc9306905b6acd6b7ebfbdb77e14349a61bf84de4a6462f7f58625ef76436ef7664d7f7f6b5db3b7304bc703735210182f5650a4b6cd2556c658bccd307d27c95cc7411f63cdadf0d466dce44e5400f70ed4ee2cea079e2d7d5649e00411527adec8778bb6f3b2c4b47ff1044424307ce385cc37f29c5d18f0ba21fff7052ac8dfb0320909598e937954105b93739d1716c5d713895bdb744f2a5e3ec39c6fa2d3747f4d5ae4b8727569f4661d6e990c45723eab91a2ca393e736a34e279603aae5645ab3a92b376bdbb3a7f2736e9ed267bbf554ae0a83b8096c12d21720570b428934db53a26a949d95f8d7ad5448a02f8690e2347d11f64ff85de5f6a3c4ae7987a281086a94fbb499962c316bd95a0ec91174797e9f43247611a8afeb657ccb94e4d62a2627570b58f50ddfe134ad7fdcd2e16c166d38e2563231d3872d0a8d97b17633689124b7debfa6b9dd8b45c4c63696bdf7ce1201fd109b80311be6a5bc5619c923151f815d71b3b0e285a83e2db5653d728b81eb9a239c89d1383b1180580ce81ba1f88ac513696e1693763e5f7fa705a15692112d422df2bd81f81780ce4f974368e8cf8d1f8e75483a39ba7c7a42df0c3d6e24cc4e2df80b3f7146c10d714385b43b16c0de16d497e657c5062e0374cf54f31586f75a6c928f6cf3a9fb0137ee1739b0193b247ed7dc4c074e29562bfa3098883bf56dae00f6efcfde3601698485acfd5fa84c467f6a79a8c22e599846df424b4dacfd6d0922ccf6a330d2964689034cfbc7762cf215c241adb9637047a870006be147731cf1bb323c44dbbc0c5b3393bffc92745d9e523bb9d6a61828fd858897584daf68f1088bb51f4f0909d46691f2ed7c7375d82471e1ce0edd78358d1f483c00ad31272709d3200fbab9ef658b1c022fc0859a8b306816d153969fb57b9659dd5017e3b62c81268b64fa57cb7f2ffebd79f1c2a259b28397d3909bf8274149afce3af5a5115812f7d551e68e36001ae314a844128f6050d3a063c451d27b38ffb2a8f48c6c9b98c359b399859117134e6a3644bda7d83f5f1dc3877db8a82dbc0ee1effeb6d45df53bfe398c9051e0602809a13828d69d3862a003c966d5105813a7ecee4487fc7f9ab7ec6a7fdc0b763d1d28ccd89bceecae0ea2969acac8fc4ee309f44e239280599aec941196dcc9774aabf4ae9c4b9f8aed0d47a7ccc639d83cdcc3dabf5e14fdd689489cec403f507e1b2ae065cd702f41607fb5cdb4d304bc7174a76f64caf07130e337f51b068582cb6520b4307511ec4d25274abb919454729172a236eab40c698bd8b4bd3369885a27223c887f4850c97c4172131c494bb8cb2ab392615782d4fbbd879f6f52a3825d940528bc636ea19c6a079ab1879aef90615c04a5140e1268e0d998b2cada8277b64f0aaf742dec7f34d602f9ee53131d1c73e57a7f6656af563c3daf0658edcb1a7c24962283c15a6ba3819e74dc4361287f732586cb859baa3a6e8b6182efa8ad85ae23b9733763d38749fdd4ddc4f51adf6e7ee555e2562b8c68622976cba5be797f8adb3aad65d6068a8ada54c4fb3e082125f2bdb54b61cd63d4b4a654f9530e2bc015eaa1c3c5bf3368517eed05da1a228322e2ff666b19a05356b8d880519fedca3d7698564eb2e93f38b39025e142b27b2d5750cabd759e4932138cbd6c45e838d55ad12b43765be6179da8acc3f75d8f5cdfb759588e916daaf469c96ff494f62d0e6a24589575e024998d9f0cbc0c9bfff7d015f8431b4e5bb1ea3aa80300ec409f7c75a4a43d2ad71d72c82223fe7e6de4e01ee47ef935a42821166278bab7148f70385c9ad61ca424b5b885b105d56e6e354686b7fd5aa491750323d540cb5c9085d6a6f8455bafb864c6bce57879af1405bb593bdd84025f50387f03e99c888823bbd377fbe946ea0c5425d261e69238a68e7744d379baa5a31851afbb1ca9a36ccfb315d65563935ccc5117ad98d883c12b829734ea8e1fe41696a85eb2d69cb7a7b60380ca95c4d97374fc4b98358ab8b05ce058e65f22e91397fafea929a1b86844979bef02d5b60d2b14e9028a424960fe8d5e67fab974357cca73eb5f5f54f954022fd9e5a925c31afe19fe59cb9a9570631173d3e985a49737de5d218a81fda7ed319d8ec69f5a9c70270a5dcb27280787a02c343677666ca68239966488f1916b92b340827fd159105eef2ea8aaaa8e6a580e0b13e558bcee31ea558c593ac79cfc022bf03ed2d1242af0f8d0e74b83664c704d5ee90ac65573fd28cc20104bfb17f1f118a6c917a1de59b5a004fdfef35cef92029e34d839f132052b8da9875d459c9c639b6612fac96bfee3cf5b28eb6a132ab09d0ee4fb528422a1f3feb53b4bdd9eae0563008d7779ab0d79a42d5bde3899b4e22047354a8eec34c9913d57deb68c1f20d8fa6fc48e46d79d1d1c7e1598677a5b571b982b2034bdb270ca36c0dcb142cd07120eb6b94e422dd39c5173f308b691545aba5dff662d0772f9ab9396c8a3c08f09d3168729bcaf2abec1ad95fffa3e4ba636feb4fcea415d525941503a4fee1c9f255a60f56a7c2a2dffb2a46aed9ad4f1b3eeb27aa8872a9f037fc4c0ac9d5b49d559aa51dedad9bb64eba58d125bf3e0592f13cccc6317d3e316ead4a3ecad3f15f6c58a11f19a4eacea910d5087975590fae64b59479838c14d703909f131b106ff7de39d222d947105d594f631f1f61ba673110f13f1dc66bbde83985e719973ef0d38c0418258c35e5f12cd53a9a48c0535cf6ca3c89ac4f7cc59f17eb3a54affa53f96fc446602f503c322307322840fede46ac601719d3ba44c50129d57022a75226439ad80adf5857c42fdf5cd153e430ac7256104e36e85b5b48518597c7ba198e5e5737654aa1d8f9cb8b83ad887e1d95523627278346a2f004325adc03ba1422a1e32b388560a558efd15f4694bda6c5565ddef1763477c69664ec50e6bb4ca965cc7e12c038de0c82634fb52df170f2e24d2485ea917180c1689a12fd8e6ff74378a512c19addd99449d3bef8a8860b2ce0400d6f48d4d3670978f644fdade958afde9514cece5a1280febb4e254db4233721122125a87d0f6c5031a14cdc22cb960dd43b754dd7d0fc21e5c46b5eb4a22acf74a430544e381991c37a9e7762639dc89f282c5a1a380e97d5f86fe2504f00769f524d5c5c077ba5eae7a1337b17aeee6dcfb42ba23170ce1c5e82783dfd53c03d4b6e6e0fbd54c805f5dc4be10b2ce5559dc603a3a571aeeeff6940e130f1feb655762122b2d86f86ee965acc5213ecb0df8c74987987f0c12dd2dcf659f865a6569b4a9770bf756de609eb73d13e87e2094165bda00485338b4a5be0a1f0cd05b910954c5f1e617f6da244debe78ae72c79d550592dcd26f2933f532789d4aa6d1ad7e9e4c757d1fde732bb2645ee2aff16e277e0e7e15873f6f8bf08bc7e4ea6083bc94d2b69b5e5fd2b362cc41e6ddb914ef28306350ca27956bb9f42f9fff07c29406465b1352c5835bb83f8933c935124b0466299cedaa0d47f4f8f4a39c33fa3d02c6e0877a0425aa39801c2b9a9e75f6e2c9d6f1f11787d2dda333ccd338c3da2efbe459204fa3063cd133420ca456d10b77189a0787aa5d8c1fcb54d507ccfd29c47e8b8cadb114422e8005e3cfdc00f3db4260a1e066b600e5c3e1f504e66da51123aa2e5b2aec26790c1fa68a02a543206db91ad11b7e8a19b900594ad2ffda7def859c49ace5575cce254e3a90e89af0e479f12aa056bf46b7acf4af486caaef701792ddefc7d2892781d3abd587168f4f0cdd9e5bf608fdafb7dc1c8b3df226e0c3b1a6dba051628fc73d094f84bd5ecf951d1f25d8b0aaa038806bd588f81bb6f7ceede33372235f747390f3e68e8311a1cf5e77009d04499bf8c9d3a511499cfe6a17d6b58c42787e4b992a7359baa34c13d143e4f1e3890529c264c531fb091d5f0a733e9f67c839868064ab772e7fa8dc05b275a84338561d2b7116e87b61089cf5830df6764da8d395737055d3f7c4dff03988cb4cc4b8cfbc81630a87c05097bdf2906f04ab54816de8d138c6596cb9b54aac8d2842d987d3454f8f8b35b5b2472d4c0406f88ee637ecdb19f8550e98271c926941063fb30287b793991a602bf660c382210be3a2dab6269456649b7eb8cd5c2aee0679a31b8fdb29ce8c48697f8d32b44f922970ddd247472262cf55879c20cb7263637376a23eff5ee5a3f20dff2ca0361e2cc9e74acfed31bec004bf2566455934a6f3d448902ff94955b31eacacacec65abc09ba1ee3bd7644f32235beab64db9ae9d4739f33f1956d2e3c2cf7e85f989bcdd7ab14f6528a65f7cc40e731fac80a5392d2af91c4ce0818647101393883492d37c8a350dd8428fcfeade410f9e5d9ef3c0c94cf77adc7531ec9933dbfc474b8dba41d2c198810b80ac4099833b67dfe09d06a0d07bbee3ccd5fa932f882650a13b69f0d1849ef1512527d7dab14feb6a02f3a180898b43e7977b764f276782350c77faba910d26a590ed9e21e00ca853f6b73ca206eef454dc66af4e1b9639b9a788fe4117cee9139cbb8b820aedfea56a0fbaed1a4bd0e04bcff5f6b467866b793ca9a63df5ede06cb84d5b4e21c637131df185bb2c21170fef0d7fdfc37e14b2cc609f57cc9236a7f9dd58933cc72c432b80e85feb48b20ff2581c39653d33adb2b4f57e71e3479c9f54cbf87b6a14bb00e46cc6dbf17e1f3fc77ff490a872c1047c71f7d8f42f4e3eb8c0b0dde5626bde8ab2f18c8578afe9a88a4cfbd548aab1c9061eeeb553d6f3e61c00cadf81dd761d9c256aa84557018af5cb98dbea7142af667eef39d33b3104b059be5ab9ad52534065fce695f540b719234b497e8968c2446df9ff02ecff44194d5a5e9c0d3f2604835645ae8e847406fd07ca024904e4d1bfe4c4387758f392d57dae4976267da33b87abe934c3133756d4ea9704786a091ebd9497d1e413272080d3cdcb71c5d2b24eba773255d7d190a09914c5984ff4d16312178a62087263573fd637c4c36d6aa65bb43dbe8bced2f9a2ef0fc67736943ff2102eba0f4cbdae23355d6df0530f15cb063091160b0c300e5633e65e6a25d8e5270bf347f625654508d9cb479b44670d4aeb8671fc0d2559a78879e1a728632bdfeb1356c6230f144817274b21848c98cdf0d792ba22af79b7e947fbbb5e09ba1bb78c3bc012d391a79f4f66671af11e76d6c654762518b00af387e142801268a1a43c0bbba5afffc3b69958337ca762a1e3e69f78d4e9d8b3b458dbb9b9bfa0bc8092f6703f688c0f486d222112f330c258580212102ca1020ed5b6c928baa222ce20b439c97ef8214eb4e67f3045851c2f6ba161ff6cdbd40ee56b987cd119f206142a1fbff37b28e45c837e8bd263e65eccbe6e573fc245da24f7f293edd61a3c3f5695039d76d21d144ef6e8b8af74de3af02da37a449ae7b8a934a16f18dcab02dfad7ebcefd359bce76eb08d67f50d2f6e3ed683e1f1e3d1b836283c091f6c880944aec4b7a74a774456479ca09af5394dd7aa16bc6f2764634bc1f630556030c32e0692f09ebe579ab4b9f07a017449d1ecb8273a0693c7ae2a4079d929f8dbc86f73794c954112ec64ebbe6b1b42fdf075a3274ee81383694ca45253e891fe057ad20f18eaff3ffa1420435b93bd8e11076a1fbb199580f07335aed6cca8a8a5a45c66ec31885de6deeeacaccdad6f76e87f38d80d82f48e3bba5f24bd1b0f9f17e815d5d302173339a018e7b60535252f806523374f93fa538f31bfed2c395764c104be8100f2cfc82bd1eee1fc76eb9d0dddd440396362b96faba11f51d2c6a0b58dd8bcd7aa0c75b2be6dac4d396db6719c27cef04c8965b20f5c88542cf6285fe86ab3721dd63c5be7491bea282a39a46e35fbcc546f6e7be2e1c39e61014a8b693021b5333a76f5f2766ac879cb5fe8663e13cfdbfe5081797321a7a7eae8a8e3a27d68c6966232fdff9eaca77da0c2300a4f7faa355f8997237a94d342011252e765b2a82b652809f5a08183dc5c7d7c1aafc16852f1811bae2d54cbc15ca86e70adf2b2c964563985d664f6eecb1f790badb90ca26b5725c802b5a7ebccf0d414acaf378b0e8e234639424ae7fa10372f7a216060b339dfa78534430b74a0f79a60fa354c2740563c5a10100c7140a5672cd7340133e3cc69ac5a4186d947760c8a88e18a53d5ca5536538fae413048c2d7a2c87cef67ab04df5cd3a8d5a349e9f260775bf1bfe4044d5f1cfabd525e40c3560e4f9d287d6f27387af66a3154ae71742b55c6d5a1e082179ba6bf84827978b9e42442ae50018cb8334c000816cb1e1f6d39cc4856361a9fed8ceefc10906e9b3f93adc5489a49d0eb9b2420f461fa228a906889b87ee9eb5149ba394949836f32adf9e0ccc48a384a2356bcfc861e5d5fe247bb7a17d9bb0bf5d583e0c8ed0a3a90d1af94064b25c074f0a1e53c4a7cb336eccf2312d259087ea01f445da4fda45e00c2ff192a7a5203e34a11595acd9ca7f4fb11cc3c274eda9399fd2fc145a72ee1c1c100ecb1530ca06d970da41405b9b79022098f04848733f5f65699a58831e172036795fd36c46b4a2284c9a61d38d613362ae0acbe43ab83eb0e9c61f72940fcd5196fb4eea661810edeb7a3c040344437b921339d500d6fdeaeb16e92f3e76b3a98bb4da8ee64ba5ae99cb45d618344a2c5bb44fbe406b3a69205d8d548b44acd36c1681661a202e40574bdadc5ea6283f8a8caf3779e211765a2db23fc383d530ea4c801e7eb0946089278e355596ab8464d6d0f3e0255d0735067606cfa72eb3001651c830ae2219262a85f9857fbbfc492e8e044e3ab27ebc6feffcbe19149a6bb12184f2b02ed0bff930fdced28bfc745ef0111fc04ee6ebd5823bc4ef211d01eafe8fb2e9daee0b5f330d3b2cb2db17e2ab661408658be9887b2fc2ed2cdcd387abfcb6d23c5c456b08331aa335051db732de0b0000a6c42a4dc81b193158e67cfcb47052f3e04fa03141f70214c1fe0a6948b9252a83f6800282ce3d884528a9d13997a3e2d227810c274568f3a2135282219292080f8eeac9a0234f411e5bfa2ac505f375cec47508281d2783db8d5eb64b9cfaa93174c9e92fb3844ccc5dce651e7dd6c46cc289b2ce84612ab4855b87d885aa209b0db013ca6a07aa7a89c917ab909c2bcc80026ac03fda8e3b3e79f53e9eec4241300c588cbc7cf7f03b29549ddef287ecda71a9bedcb11c8101cb1d56b4a4aea8e806442c0ec6186e0a3030db50d6777c43cacab1501943117d5569ebbb107ecd2850121d23115df563e2e7c897cbc453de35f683801250898dcd854060e24992a008e751aa019508314d3710fa39f34a83a6b3ebba6d53e45138d1037ac1b0def16373f97ccc3beb50e72d86f9fb96c3d3fe88288e39f2da6019790cb8a8996acd0c0881ad34f8b227c0462cd9393f0d91160d5cf33ecc9a9a75252c28e9e952265e1ffabfbf51e5117cd5ff2efa06a4c1b0f7fa8404518c45b33120c2572b415997aa53f14317d6e753280abf13a411f7d1d90caa405980c420421c1089d6eb95a030bd7b57043b104c9776a9ed550aa8f387d5e5d655b4e70d5739f9398e6ee5446884d593ec0fb48dbb4380be3b6e5fa536124a5e4b3a98ab2179f5b6cc2dcc91a7b6fc542bc8668b4756c15f28dcbe87b7c70a371b6a4d8efb4f87dd5ec631c914260e60e09f5ae2d5dda2ce785b1a0c65609c09aec030620c16ab87e91a5f068548c1daba7959c156727894bd3e8eb37f847b91e049091648dcde724132483192f24f6c92d76c59415b89d2a80e49d768269df5a83f6c0cb23fcb50d8a4c5922e397029100b7a22e0f5209d0ff6108a87388eca1062042e9a3fae5329e211d21a62b468254ea707533bf802dbfcf4eaa4ba62ca515f443fb78240ea346d4de87d51603b9c6221e84a8c5aaf26e129bb5be9ab75fbfd6d486204759ca38af7d114cc3437086b16c4d2f49814082b8d180f08850f369d9961cc99b323214210e208e2f6b8a8252b87c5bf2528c261fcd06e4cb73917d0c26799b08bec4b5209d200c46eeb737c19d8299c67c6ad98bd75907ee0f0df5d6836db004ef791433d4688c6258117ae97ed83a2323c1b1836c9d6b03f62750f2c9012b5bfaf79f7a27b55f1cb9757d7c361603a174c5c169ba972c08c5e937d2c9bfa1c19e3844fa248246fe79ee436489460e90234417393a905fc7140a1bb129cc5b9ab543a21e792dd002b8a8dc9bab14454bb56c0df527ba7d2f66ac35fb2a977cf714cda38623db698bae9210647f5068a1f132e92654c577a4c90bb1dc7e0cb3904409fd53298e7984fd907061f91600df01757d25948a2fd4187937fa01962942a6da93a6a5b667dfab2438b7243e8112219df75d78bdf3ec9ddcf7c81db7ad9046c9a994cc59d71011ce417a2c6b645991bd46abf7a6bb4c9634f65e5a43d99da9ba7c17c73c631bb60d7d853ba276ef226f4cae9d9974fa8cf89846433bdf738bddffaef1b6095bcdd1cde5eb07b35f9d845bb4f5c20b37636a58ea4237124872bc551799faf5c663027e3f8b862ca4f5c016b5508a2243f8e3a6a6f6c563fbc50cffc2df2d6ef85881896ffe58cb927981470aa53f146945bb3bbeac5a793b52f6245eb29a3cef9d123752c69a39dc45a90b7de6e6caee375e75790d6fa7de5a5059589af0995c34977d1bdf51dcc4cac245bd9022d146c38f93963d9d8e9da11f1d502c6f0afa94c6ac5cfb019497be74aa2f435b55cda9104cd93c036e890e19e80a07a2b87c8df67e7b761d3e9bb356a37742b9cb92403d473153b7b07a78c5b32b2c7197c9b700b6cc4ff50b116a223598149af912b2770b0e027bb9f8162af3c35e9d2bac371df076cc8c6e5f18c0c14306cb0c9f7527a9d6ffd3a2698f5111c06d045484275a837d9459fd11080b2c4801b1d99a00838f48a121e3972e775a417f870cc4e739e64d48a015bc6ebb840253a231ae9e4b3421d1e3734970012bae2a96e64e147e2d59af367019b8bd0d03d77b2bf2a18edb187d4d03216d6042b24dbfa61fcc53e1746157a664e76ad6a3d99d4efdd164d57140c65ca8956954cfea3295ce91c5a41d9fb5f9048a5c1b8dd04ecfa3ef89e7b571cd1f22f17321f286a3ed1c8e7fefd15d1eea1168f5bce0554be57f7470704b023a8c4e7ea7793c734569554bb1cf276712e1e00d16a43a523c9430a2a3a9093dae2a52cd214d6024edc1c2c32d50b8718d7eb5a4e5b99b4a86c6a8ea77a36fd4954da8541c257045f1986d7058e37151a3d09709a5452f325662e54a82c643d2eed38f50c8cf8d25074e06b5bd7abaab0afe25c8b1b0683483036882f18a8a48a488b26719bd5e3b84a3442225f940abfd9268d533f1f5c56cd074d18d54cf0ea69b802b4dfbacab7f0c173510ad1d697d0cf34aa08d591a049ade2bfef59faad5ee20f13486a256bd5b5517ca589578072ebea5f255ccc57989f74622d095cbd4083601b1a9ae914d6a58de1fccf7dda615044894499c995040598d766540376f75f7fe8300a062cc088f85012585e29ccf14d9fa5153b3100cbf0c80be8dd98dd82cdb65c139269ed2235516fcd2cd75e50ba6276a8e1f635af516ca7012bd2062bc026178c39d06b2d7698522fc050ac1460c78be2a5f82d5d6932cbfb9abb54f61683486ec163615e2c3d9526261c522e130b88256276a403fb1c0a56d165d6ec8ffb38864609bc10f45bda1d7442fa5addf12e63057d793681b0e75d462919e74e2ed9cedc1df3efd909ecaef1d8e9cfaba7a69d63e4e3d115c1b1a38c41b5966a1830657acac1a266742448dc8031f7e61ab6536bd9bdc155897a9df0f49d995b727c305b648e1be670a339470703c7296dc6d21baf3193e39f880be6a5b6b6bcaddad2e90ff719c1e52d89bbb72b6ecb45ee6f27cb6131304830958faa696e9c5741af2f6d61ddfa758a6a6f2f592cf144774ddf777e13bf613447fcf7085a53cd6967b46cffafc93937a571be8f35c3d20a82c99c7cea5dd7698921852b8a7c3a3e5a2be25ec0cf09a88fa29c49a86ec454484bbe78223e111ea98d992ca56fb4e368d4a75720c8f4a02b219956a049a31a1f7c96527dbbf371bf08da9f5dc57ee53f13218444a7cfbdf9f1c705cefdbb9894e20a945fc30eac618a4521da31b250c2b4c9065b7316c1c43898abb14224e374464cac2fa55e3ba60c4aab15d9436deac3cad8ef1551b45df5c85dc439560fde80228767048a73288377a656e648e85aca548d800588dae51ab0e354d35735773f8c43f472d96b1f19416b9b3185ccf8c0796f37d523c01f3c3eb84f6001e81da8d8193be31595021b3c5bafe1c98b53bf2c9dcd1d1b4dbac3b22bdbe7a5bb9f58f2ee839fe62759c8335ee965aaa7e2841bd78140a83725c710ae0cb717dac5b6fbf5d1843956a1dee7d542b89f53a994188e4c08e25ca33557181bcc7eea90e558d0d91749855733adb284241f6b11c1d51a97608c10258f60a794116de4809e5ab005b5f4dde55e192e41ab58c803c3c6b30ae50da96c8cc1887aa07302c9cc64a248e8d6715ad05850b834ce5611429442352bbbafd90fc551eeff9713a826df1e099f32a2c1df1f8b494a6e7281212d67caec7058273d7b8a6703f49a9538138babea8b1bbd53163c120997c1b07cd483024b0c57977d7fea959292a55ce751bc417a4cdd33e217cec4bce570bece48fc84848afcf2902cb845c4448e8898ae52dc417c5ff9580902204454208e9b287f9cdda48da2965a22f6c41f19a106e9a9d7b8ccce329a8e9035c30dd066068027fa7fea25c33707f48fdff56a9ac384c71f09ba2d9d8b4e15ede571214b706aadb9559c40d9d03cc84ee0d2a27973d78ef1e2332fa49a4c8f00e30a0fbe6b642e016389753a6156959a28b699c9212edfe778648141c82db67df76985bc6822e4c15d2071f0902ce1a45c08b8d7efef6a47e2309ed3c7f0f448781a6ac70e0973d794c76edbe43708ebf976b64ff10f8dcdd6f6cfbdade72755a4f9be83ce1f73e1b37e5b170d1553b98e9ff99bd8d14ba4cc265b115dac25450e13d25e4e2f958d9c41740445ef5fe0a5af4dff31bcfd8ae070f93cdaaf028004edcf47b688834e5234e03ce6d6355229f639906a0c2b3bb9f045ccd3a5d564fa08318cbbe389f6c62c3dfaeb47c18fb088ffaf4fac9212fafed4b0eea7de8820078f82626a4083a9aac43d13abcfcedf7ba290f8f4287988f6ccd7dbeaccbe4eb92a84c48c422314867eb4dc6980b136511c64bfc5ca903fdb0d850a706c695a15390a2263a3bbc71777d12dcf6ac4d87d0635f8738a67e4743cd7b0b7350e3ae059cac5d7830504ce91bc1b8009f476815672bfef6ef1b9965cf6cb00571c0cb90616a9b5da39ecb6a04c1f00be465e942826a924dbba786c8e050d07ca938efb6cf16aeead4fe5e3dd4110c2262d406c1e55de9914d11972b4748df5511682611679308fe47664b22f82c6746aa6b7577fd15e14a040e043fe04dda0ed3e4447becc715e63d297bbb881d441d500ee62dc1b8520dd586837a27d3167203e93578731378d27fe18ece7e98d260c5c178bc4a30d5fc2a42c1b72da3ed2c9609813bed11aca722dc244f81b1007c3b086c7046ea8a4a02734edd4438b02f1f2ca61f0bd07400dbcf6df6be635a893d7d02d7287ca55b9e5ccee2194ba851c525b0bdef8884bb498092c703fed29819ad550f45da1437a69062a0dd205313e275c2aeb13ede0742b0247d046b62a4aa7b10a3798b82900ac6fe1318a0e42ab27e39f59702d18bb519dfffbc5d3dfddccfd668772dfa6c705f7b5ae8886ddf3d1ef598f39319af397137015681cf7cea1c877fbb5b603909e1f1c8a0f47716967f3ac68e7e59a4af37588711be23c14e75ae61097c3d24def78783ad7f2fe4efa8ce429c9e199a6525cef410705a1af610466e11a37284dd7cb757b70372f8a79369c0d6ddd3d8f62e8cad28965fd042fcd8ba65a8ee17204238c11d37efb869d026b81b871ed34781168f3b15a785f0d7b9fb7cc661ba257bb0cb99daa61fe5475cc803a336540a41a6d03ed6c89b2b8a96b0e658a9f25fe42c20ceba7339bdadb08d64acefffd91841be23af77a06b789a2caab4f9409d02135925a1634931533e1a66c4f100d26a6fb931302cf9c627a1e0af35816687a996c9fb26a7ec77da5d2f9f773637e39c87740393a89e1bbacf1c801b430f2626eca6ef72010f987be67dd42a17697150b58db6be099a234a47d387258153d2f89543809f6bc49191ad3ff55865377fc1437c764dcb5453d9f02635a834983291e52a484a05c8c08caedbaedb666145b94e2b57d7c80f6c7a4e9e42a0f35a9045e2f1ac938cba356c5280002fabfecfb1cf6d89fb00b7eb0a1a9bbdcd827620e39e6c3d0770005b97bdc9792374be5e56b52dbeb23d17563a7206b63942f57b3d6baf08a9bf5cd99af2e0be2037bb3c4f0343de89d7aa566e9d2b439084da576f976bad01a2e7634c7af9554b7bda920952e7f74435eba5049ec6e564a43a8ca74006af27002303cb415ae4033b216cca4c855e4625137e567f7f12d03d5e3065da6facce8b65c2423403a4c14c9c1009018859289d5a9d48be71ac48301981e32740ac810ce9348b04f74b058827b33dd46e5288caa3a0a44cc7b3e6737431dcdd9cb2080bb7b980b2245e5659cecd78648a45e1d717e242ff05ef8eba3e0fff9861312a28c51f7405377344cd8096c523aee3d7fc132f519d27b4a68aea555a955e994efafb7afaecf4d614a8f47b64495ac15e8cfb7431dc174fe0e0c733cb4a343357b92a1b3b9a7c97b6896391e803bf01be099a2015ef5d3d1a743dd307e0b0a286f4812f9ef7240abf67e311607ad496ffec76349b368e857e1255e1f260d8c3379ac441126c63c594f214ef1b5f49faa60532dd7b8e05bd7d7dc5455248f4398b0f533060b26040d834992e5e9f070c50b119e86ea795eecea95112027649a29adff963a1b75abbd1eba0e3f7067329bbac31f34b5b722cfd52691bfe0d2f34ab1e6b33a149a12fd771e6fae43e7e4862f3d993452de479956bbf59a5dbe0d8cc732049bfd0f8e4091c5e706a5e12157b53287796c26c37d2a457f891cac78ca86f1342eb7039a4790f43acd42d172ac9b48627e901183c2bcbf1a31bfaea04957033b6224cf4e5515f7e96918979f966ce1571e0b8a77138fc927b3a97e616d0df40c2e02bebdabf4871bcd9f768bbe915860d62ecc09e8b6b44bdfca6f58ebae6e3ffbfef6a516de9d4e3e5775e57cd9ddfd827aa692f1796505da22cd7735ec15d9304bc91dbebe2b886c1455fb8e603ca2d02eea24ca561b06667251ead2b96b5fa0ebbae0a9a75a7e2c3c8aadb6b061079baada88ffb2e791b5dceea392953fa8af5a61f0b68ffba9e9c09342934ea3c43d13fb6b25e777d2311957c436789cb65093eb6838c520dc240ab66979d126c903afe56d104b1d68dbcb04e4060a2a5f94d46045bd2284dfd4b406fb61e0cff849074a7962fdc648971be206d451924b807d23399c7f3fc3e99959f401b0df1d5c19adaff5ed5e5b325e737fa2e1ad98bd3fb91d0656bd6149f2e63471acc13f9064fd672b32fed0023c7192aac0be43e53f18d59a9dc6f4cd0e14fc12fccdbdf585da720f55ec7e0ecb7dd0aed5b7032e3bc3bb04ffaa7590ec133d3d1405127be806db22731c370ddcf372570c4effb73c6b9b0923ae2b76f4958d9bdf5bde149267b36fb058a1c8fe74f781274de9c66afa40039f3cffe6efab45bcb60122cba6ee64eda0be45b94d710db14a3cfa2b1aa87c65bd5ae6e2ead5f6f6081dc95fd8809c5ca87e48ec3a546beaf1c42b31ac47201f8571706c1362f05aae795f943289cc3da9ffa514a2f3cd7656a906cd31f7329a0f388c4d7670e67092061147f18590597c55802d1781dc338ec26475642040c9ac026de29de2d892bb16d24907471bf53e27a72fde7c559dd7443028c93cfdb445c67b80a1712f5c71be3066024778613dfbf631a87f2ab08a63ee85c681d7d61143caf9258d303c64ff9e591c69f8dccaca1b4ab0680884280944c8867a466cbb99f688826c9e0dcf72f8b77278df9476cf9047a2eba8fe113f7ac27c1403e525aa07ba776efab8110bbb8b928f4c4a0806169bc6543521c23b70cd61ffb4a3fb606392b37b246ab207a390cdcc72e3d29220676ccead9fe34d8b7e388d69bcf6eee62dddfd300f1c7a60925100b5b83830284667c07e747c52e37eb864415159c734fc6b811b81f58927a6248d8192aac8bd655d75f0589ca5f5431823b4b3c350ef82857c9607bfa30b454a23b564ca6ec1f12a42d344692095cf7a050c7e91fc86cda3ca601260aff87652d2fb6dd050296e1fedc51624e6a52afcb8f026c4b7697b510cc6201216062b5527c1575106757df5e1bb4e36957941f2c79198ace09f2a3ed67585371047d105f25fffca1aa79cf39877642482f548bba294a7d215de9c33895bd15311f3819e0327ee5e75616ae3968f07bc1dbecab45c7e40ca92487d9db3cbf9c49771c4ed5034a1612ac4b50e693434e9734d2618a7d62cbc6e07316e29eeef400285fabc0fc44c258490e0bcb5c99285560016acd7e022512e56309fc20490c51cf352eb9973e1843bf440f586a5690d1e81d52f0146409712994d8a3560282593b72c96a54b6e64069060cc4631333286e8027fdb29f6bdfb84bd48aecbe5ad6ec1d46beeacdc093177a8b27e1f25271e68e209fc5e9051ea1d6c3ee8f4d05f2ac04438a38690b47025e7301859f45b8095dcad47686fd66490536d2f89db32d7f00a2dd93274e84beee06ab3ee29449a42bfca0cd21f296f15c8cfda8938229d95ae759d66310a67ac21f5047bd283b3a41419eec8bd4f38aaf287e370d783d2ac4acf7ca2883fe5b64b7a684aec2990d451a178a462057920bc523e317a275de0621f4e6db038e9964382579093c10086d25e9867a8099e3567ee559b155d24ace79469d6d75d4adc4a274e375e07643ffcd9c403dcb5fbdb2ec6c245ccfaf02764a9447c38323ea142c8d82dd5a2a7e975917913399f05dbda9ca53623119ed8dfde68cd3c2c0972c2ba5b505f734c8e0035edcd369f7155388bbe0e058f11ce930721994f19ba80675a0df0243c4150a6f2585f2391b0327f5ad593a5f63aa15c88db99617b0c8ed907b1f66beb58e007c66cae99344dddfe7f1e02eb3c351eeed1af374ea97aa12bc72c868b8bf9aef2163a92781e11f4d11df654577e3df63ff51363b47554b319dacf942fa06eae62f196a4755c5d4674fbf2f424c3cde4015340a07977f0041058816695a3f64646993706af8d424be8459e3ab2baa1ef75f8e709c8a36b715c8274e969ba1d9d70d75e8614bd6fabcd2b45d44ed60f84fa65852e1cdadf7d9df137bc703e159b6cc50be0de45ab0d306eb28e4b36b3f4762a14d816a35152875944e3d589009acef626bfe7198fa3a0cb8a718536a4f05487ccfd38d559315e9f6af408bdfb9286184a03fe9fb67ceaf01022fc79c76ddc12ef127727b500206a1de35784b6c56cdd6c63c3c24e05803007d5d7df5b2ad821f4eeca34bfbc50e9b22e3b8b174ae3eecc23731f5d86436b1259f23879d58bbbaa7174f5bc2684d15999732db7a2153e76d9d82b350547abd735b338bc040ec7be177b1fadbc34468f23b47283f5f64a4b0a86d47c46e0242550c8a3b8cf3882035ec6ee7fcc4181f28b3b2062257cbee4a1f56dd5a67d5d0d9ea98ebe6642f1ddd7356872ccdd4f1c3979b9d672c7f6e31338121757bf2d9a53d106ea378d95ca26417f02d3616fe954207b11f608946b6a0e64b9ae40044ff838c6179dc1178ae4ce8e607bb651a7319dda6f569ae0693cea6927be7a21ae6b99c02bb132361cecd0380cdf0d81ad908cdc3b8acc3db38c0c456f7c3a4f0edbf542b264036a4073bfa1830efcbf57c26bca375b07b886cf40737d08299150ca816a94dceb297ef1d17691828842e47f8ddf4680d12e6e91c0805765860038ed4b35bb1e8c3e88f15d23e64b3d254c7ece0ce213eea75be401787ef325b8ab62850f51e5e7e4071f73165632dc9e06550eb88bd997c09e9c87e8ac376c8c854616f9c265d7b635f5783f5b0e989d6d83ae13104a68f38879aa70848aa27d54d5447b6376361f71e7d6775482ce29173b0228d7d42b6bd68df99f67c455da784b58c121308ca713dff01991fbcfe4d45bc6d33afbe837b80aafeff2e8eb2dd73514015fef3c636893788da3202f00f17e5baa3b7bf9653144957cac1fd6e936ea48d9be761cefc738d74397b7eacea80b565d2a4df0f185f9548aba69749eac007bd1635eb5362068f893a2f8703e94e34653e85037460daaa36f5d5ae2bbe29401f679c810cd14ad082d177ce5a22290c19aef43dcf24f3c7f7803a8f28bce14aece33fbb69382f9d33adb037d09afb024d07608e9ad3079bfc4cc6da098902238a11546acb917f3294aa5b37a07828cb692f21d244ae810521f7cac3e4b4c317c089fb78414f53c1a2b68000c994f8d447094654bcd1e5e0bd1302fe5d9936cced7d9babaa6eac6f647d0be5ab878da785f06f8d9fc57f0580382b781c1d1ff20fc1bba834473c56f6b3c5d3d2445cdabd5d5717bf5ec63ef88bd23c9a16f39067af596c40fb7be5820695171a63e8fed7f1f115b8df55066beb7d3464aeb4613d9056913a80fb548fa0d8278cea49978838c2721f2014ca3d8707514682ca53cef85e2bd19c6ad02b458136280e034692a172125e51e9770b3013c1a4bb2d2e1e4a2d9a4b7350da72ee3503900c1d88f0cd302d0332b025a56ddd85d448ed9b3ad68cf9fcc1589ad6660fbaa7bd41a182bde83ffed7358dfb0b7e2e44d8de6bb3bbfce702fa8937ec08cc4774048e85a662f7d75b11de57d1d0bb019b1a00291f99a07cd22f0eaa253fd274f3d3ac4982ed3b242fa5860fd6ea74c4693e480b843420284b89ffb2df6fde0fab049108dddab45f7e4b43ef3d56cbd5fc43d02fe5ae2c81f14aeda4e907838b1d05155652eec2dfa83bc9aa4b37c74a9b3df6ebe57c03ccf3b81e5ceb75d4f5e77d118dde46fe40d7ec48be370ccabf10665839bd976fb2c5710ac2263da2c3f1fdd38dc8d5de87b3473ec958c03d49e9ab1e78563bda76bb8c36be896e130571eeea8e60570128fa1001ce7bf2b5df8ea5973a4565e48627f32e36d4f90e77c385dc9d3b120700e4282b55d4443602120abf6146953e35a601f18ed7db1a6f33fa349e7bebda868a77e248c5686ad3f2444b72e385b0615021527a690e7cbfab81fe089093c6bcad93b1291048f8135f17abb9e1da1ec6dc724d3115ff6217bb3516130ee5d73c65734deb314ec89ca807dc18eb84192307091779eed58328b68b9ed4d6e4cac60954b5804a3926f93898f50c40b679a595f983ecc4685743a947ec8ca6ce24dabe98968a6bd0f9f45c35c1b4f0ccb7ff845e08fd8f1cb3379057c01802cba78a552dd9bee4e38c551a3fea6821bc9520cbbd278dc30ab4f93c0a2744c48067f8c8f09f162459c487703894afc247a9b4b0a85c0c5bc286823e150d042326c516aa6eb9ecc09626be14016e8b0bae888ed0cfdfc6c8e57c21a3c20c69d5804733fc1adbdad7ee292dfce8f1713e5491dbed853b70642fea79ad7061fcf9ef78a484f1a53ad200fc2ab755dec4ed903e5693c0ef220e526833183574bad94c6253f2e0882807931d4f06a76080dc3077c50b8272be34270ddc5b2b40db9e1306162254c50ef93894451b049e9880030d8c3e5875d2f7a774dc5f13f897965b9b4231e119dd7301395b6da340928ee3c09689fb98b7468d3443d6f902a3fef98709f9c6c4fd8e3ef595bea030de50fa07f51fefaf7d79c472d5d38af31d1b7e5b6131bf2fe90e700e50b75854d485f1029173a965ecebb919e799f223d18cc8b3ca0c925b58a1e0e18fd21eaefe4d78f610f9820ac2b2853b87e7f76b989c12236816b551ae7712d6cbe444de3898b87fd3b1f3686dd8fb54bad7ae4461301b15252a31a774ba55ea56a71ce035f860fe5fe7e74670c7894ca0950207b00124fe7f75a8962ea50a19746e4422c4a56784faf1c2dc56ad462381b419e4a69edef245ce44d6c153bd2accb373eab153ab2d60dee5b0f4e91afc2a9d6b55a8828313c12e11deeec9166af460f7700c3d819f602ebda4f2b32f333e9af2bf9254dc1c44ff03f8133ef47235e2b79eb6dd130c10d0ddcf9c219241692300a30f678daed45a673956367590920456262206624b39927f26983a2516237560377d2a9c189ff8fd23994f48b1b27d0467ff80376f37f4cf0ecc1bd374af79ec064d67e117b5a5af3a88c33f5be1fb645392c888d3097fe8296ff8d1fc5078c25cb6ce638873fc1a6464bfdbef4d18dc2b2e79667ab1c2648280a586daa3855aaea75870b4be8625440cf312b86288c6ab82bc47142deaeeb4b8f59212d230911b9aae559607a6089a7dacbcc179fd603fea3972f9ebc6e1330ce8793bc7777a70d89700754441259fc9933d2225fe3ce746cd85b685d9ff7a135f2c3132901a971a415025b60ddaa802d5dd9bdcde987279302f690d01154812293e6191e09c65de9c1ad84b085afcb09caf05039fbab64a898703078f8a9b72aefaa9e537450b920671d60731e7bbe2f3aaa553c6ab8627598014bb520695835ec5d31653b9f497987972611359db956b323fc871686597028f7de7ace17ccb50596125b24fa2f7618072a72a50bec50dfc07efe4d2a2becdf5d204247064f94dee13c050e90e52b64c52074ee1cd81cc9e0e0e4b19a0f1d0ea905428205122bc8f37a7e3fc9d090c376fdad82691274eaa861b9a76cddc8573ac449785156f1449571a0078736849433def28d8467c46a06b9e7c53bd248d9630991c3f1729017e0a6cd0c0c219b34da5e69241423fe4e703f5c47b63c9a465404d880ce4dd2ce9c10cbfed505bdd7b0234152b626306e29eb6f520022a2099e6bac6d53692b06167ee640fd64adf4f2e58e2781581b80e71f9c9d62e2411847755c3b0e039f2102ebc61d193300d1ebbe58696dc00476c290256af8af44ab9bf594ff0615aac8d1fd95a215794dcc23ca689fd243c9d8b61d5accbe3e78233db670dfe5c578a648a44f63212ecc9076e46e836df91a8555c1ebe981f6d4b20cde1bfffcbb4908e22dfeb4052fa6639025e1b6c5e46e4709439f29f10654841f34555adb4a4c698466846e86d487d3e6cbc1d2413d73711f2bc9c02db4839d6971f550f64eea1a5ef7e059cfd8266d0fed0c55ed104f3c7ff7e8ec690eb7a07d4187588efeb4d90c0e19a41318ab4c13d4805655ba6986373812f4d65bcb56eb1d93047b0d7dc389746db0d7429f07825bfd5eb3f5122e7432419313449dbb963c84e72ea16ee2e50920be1d34ad75f36900e80f8651caa0f798d496e436186179c5bd87712d35d4c03203d603269b68687753a3d7d3e3a1e4d4d9b6c36ae98831b588ac3946f76aab8a71a7e9496fc0654ecae9cd24236174bdf4ffd81e0c284570aed077b86750a5346f9b313294b1001a1d434fedd69de8c11afcca88f3bf5591807fc16c5ce411265516759e7aa8ffdf726ca43cd58b4e7f60c8ec54a28180edb2c8ac60e2d83c995bd4625c073a23a754210472abfa3ba231e04ba7bddf58e58cd42d07efcfd2b9e4f2da6158a63dac65a1ff4b84541fb080ed026b8c3c81e933c534142166955080efcb86baf144b145dcb24fcba99e2ea53dbf60401f2aceda0a3519831bc10971959ca45b2f1c9ff9f966758b9a8cd06252226b2424419b048a16673ff298597c58861eb67fb4f66008d6b205defeaa6fe2cd33e6d2f939cab87f4bdd8f58c154a70df507884521c3ed1fc09da01d398338ee40d1c583f234581bcbc24367af28c0fe91033f8aa131093df641649e872878b116dffe8a8a19817a6f22f5105254916954b4ecac18101f6a84152dfe87dbca3849346ad8d3402856287711298e12d92a87f321d5d7e8fe2a321d36b9e80ad741f2203db1fd2d2f0def1f49d22c4a9544f4eb83b1f606dfce99a256873c4b9e3a4c92284e43220da5053ba30fda71e01fdcd3a57d72cfb1bb810ac1736fc1ccdc5410aa7b40429d85125e56aef00ba2ae55f33f25d39d40a9d8eaba5699793f67f04ed35506eb1a83fffb24b35e6d880492d5c7aa2ac8b221e101814f9cdf1701b450e4eddde514e45c878dbe9b2e05f4dc95dfce784aaef0431dd66cf213b0c3ad589a3aa2c7b45b804c4800169c051cb12de1591a959f0ef0d34bc496d5b80f372e0dd92378590e449fc017ff285d3f400adf882e81363df9e07b521f7e68403a82965f7804f969d23b4c193f9ea434f739544ab83e0b296033534d4578255358ed2cf8eacafdd87d3df99ad2099e699714dccc19a11abe1ae5c22b93e183a54ea860b0c439fd58b71ecf4c81919997450868d96097ffc791a80f2c55b54cac8dff55f22abddd1f45bb1a0591cf5af04905730b4d1f5d7a8b471576431d867403a70c47c1bc201dfe9fa7ca65a79ac2fcd18d8f153409e5516407d688a6454094bdb67bdb64b2c511775f44a02d61dd06ac7687b79bd00deddbcf78e6d40dbe170580a16c4a80e496f211beba6e89153e76193cda749bd956fd3752af4006e1a2dce2d72a051671f9b3fac0ca921048c6dd100fe01653fde44070c622d133bb8ffa8ba77f88c376ec1adde3ceb3bcff087085bc08ab3bea192f50155ff25c49d39bd23c5fda5a0255d5e629c3b77854b8441171e0d4473fd3a92f325188a346fcc6a48c8f1cdbd10167030edb44b77f16f6f846fdd85fe9beeddacd32dee8350f34e480e2f92515c4b45b7ca6ff25134bdadccda4dbd76057fd75bf2f8566a1d26e231e72207021abece84ef01e1c9d7fc79ae8ec16ee117c5fc8951caa95370d3b0f13a7ab2d877ea6d3f255efa09d6a3b083fbf8b97de035f5d3ae6f32167212e15d290d75df466d0382275db1d7076a5c2aa0caa58ca92420065b77a9af4ea9b1cf2500dcc03d1bc4214768b6d1ed05ac24a776fec7530e1d038395902507b55dbc053ad8d1c05d16834d0839ab0e0d1ccfa84a96bc81f11d701f5789b1ec0306a1f53e86c458ba12ed4a1dbb83ab95127366bc72a94dd6db7fee1bd3eb27bcdb67dd860d2a9c6c050d54554f3eca1ab5f1da76c8d9bd6e6cdf628d1b20d9b2f43d8eb5971a06dcaf0a59438b55b2f92abfdb8be51c25adbf208c8b64dfd6f480fc3a9da0542d855ae223008709e40f077c30b00df746e1ec53df13312d4fcdd83717aadacef45b2778ee3ac756198706dea2b947156e4048456b8ca2e2b18dbe76bcb28a5d2235fbdf86e0eef9418be99e044dda301964b0ab549cb06c5129b967bf54890cadde1dd7714bf1d6d45d6fc3b664ab80a2337fe43bd4b9dd1d7c41e446b7f61dc05661418afa3dd5a9f1b602c7b840bbe95ae196ba9985f21926f624a9aa97f809f1f54fbeb48c9187174f000604c227db52e215f0e1722e808091fe704ff1ee8811d475abc8d7f436d5a2fa206b87d3fbded27bc2f748a233e7eb47644f0a6a54ccfb95783ac1f6eb419c27277846b32aa3c1357ab1419c7608da15ac6bab010b0f7bd363129cedbb0807ccfada56ac8b8191b71623287b29a9d84f62b3e2d4d39c34666c4fe5fecbdb33dd87116e7d7a685a1bce638915912979058b402cc324aa8d8a959cea3f007815ea83cea0b0df79cbda7f40c1b2f20203b3e38ba5c30c277f3a0802b1e3f9c9afc0d0ef606c3ddfb0e7b665272375feddbbf31f5b3ae94caa095c53b58c40af104984cbf15863379d9e422d4a71b978a46ac932acd4ac86c588b839ce56ce925e71eb0b5c8ef2979507602afa34e90bd17d8f7dda7cba6a08d67925c8a9de8771744bf24de499bc4a078427cbb2c5b12d8198b5f34d782f2a3e7f8fe0b896fa2f89bfd370cf2d02bf0ec4bd9d3515f7a202e21678d6bc86bed68b1fe24ef217060f1741da7d05ae6c404d989a503debde4278718d963bcf5de72d3fbbf7e6a362e5dcca0357a0c3ff76942c2bef7cb9aae8c12d4aa0061d8a5f7513367d70c9d22fbd654a376da0390a1fccd12608794fcf1968349d427f9d8f46686dea53b75067290d857bcf9368e522e2378db80d43ebad40464957f9b476f2dc45239b791e02f95d782b0e44bff0917b37e9bbcad1f426d845995c84c5d10ce50c4d4c942032fecf4f086be9ef78d872ec7e542e8a58950370755ab770f4384af8d88c277e7baa5a015ed80fe9dd180b82dc30600e1fd439599c2ec31071bec5e3fcbbbf5f658ec5cdf7326cc3c4b21f2580406361a15b7ce9a12fdb7fa2e408529aee45716c860a624a50dc4278ebdc8bb3c1a8e2f4d641c4ce4be8f89377b539a28ceaf0cb4af48bc48799a569ed2d46a28b4da1ec95ee09a42e950f143fd36c20cc7156f4e5b1f7e36148011e6b34d6a33c89969d97c4202fbb627a61a55b76737d737708173cf77cc59a26d23efee0edada7928d268539d19309527a9c29e1134b3b7efd445dc1292b6d7e5e6f9f12074627766774b90ea78c1cd7db4c048f4039216977cd8d50cd7ec8c46127d8541711eb7b7e1692ba2495cd29ed1754e3544f188585ca2a343cf833c606331e98b6d164ac2f4bb513b8891a26ff84bd291e3fc25fc296f817ce3fb314745253d235455a467314d327252be345fc297611670ecf73eef2ac6b6d52575ad7b5ecb3f733e8875b5cfc70f7ecb03d593c4c21090fcc5667a97bcd2f1c3f459a935fac069d20fda80c33892ac2c0b41823dae449eaedf2c0b936d583c1bb01b27777f3dc2e7eabc0aca04177931af963988c098bf5fc58b9981cbd108d014700ea7692f3a3a355154882dafa80fb440c62c0134a34432507494ceeb09427fe8a79869e0768cbdd6e490ce46568fcf71d24b68c9b459debdbfd6ecca18554e6646d82f10b8c751a5ee6306288a08d2e0fc56ade908be8b31300efa8e9e07faababdfa7b9779d2877825505d192b531dc59e091a747021581dd2aa097017065f1abd062be7745262f5bb6054f81728db7b3454d0e66e4657ba2a97a341dbb1eda8929a17b9aa8de67f59847cbd9bd7f56acff9667f89546c0a71f91ad1ff7179bfeef4444ad38ebe180a2cc65086d557e8f4423f8fa8b23cd066f2afae1ee47687aa070336894cbd4892ff31246ab8af23226139fe621c3441377756130bc709eb3266505f0ef81e3ef7037c8b761d6aa81b0280646b7e019414097c6ceb89c7433301364cf3b51b64b299becc65f901371f1f0806831a78bf28f7d133d62cb84401f33ebdb5ac450c115a1477092da0edabbc13e42eea9761c54388b1de65d4d2c3f0018524054887406e2c8358705d202a91fe004e6066afb33ef65b00cfadadbfce0211cf88dee0d56c12c524cf5024091aead80f2ac05b683133d16ad6e1037908730b0ef185b454eef75b4ec284535681f9c4437d25deb19ad64b80979d0ea9e5d11e5363f2b6ebb10598055f6d94edc854c9d09b33160bed708ce82ce387bc0accda1f43957d883a5edddd1abcb6ebc7e20836368a3fc57082befdde6b277ad2037d9b0ca8926e127fef958b220ce9b034c8fdb60437362a594e9cb1eaf4b8de5cd51db6e8cd93506e26fb788450e04cfafd77ef3e78694f24b0a465661f9e0497f6af0c09608bb0b164759d67d8bf6e06b010c064581befa2c1ec60dcc724718cdb55f71e3993d880a3a77c676830b34fa1149669987b0825519c4f6b78eb204e7e2c3753b1e6f5b0fc96ed5b5721bf8ea71680c01d6be7f7452193c2a6cf387fad9019043e5cb36388110ede61ae14fc06ccf5950d329987415c504b85200a0456069b14fc73c7953f4f69f4acf83c88f6c2db8b8296f4716aa144d7fe54a1e44a7deda751c4ea4a38af9a423a5f7fc4ce234eea3175517525bf1c51570248d4b5f01589cce2a0e14cad2e8f86d6655907540da29b4c6ba1be64ef65a8af2fb806a618002acf20fa403b2ce9af58962af80181a021d2c410944c7932f4736bcc2db2c4989291a48a04f1e1763e4d0710747d5bc9e5481b0faeacb25b2c6983521b892d090751bf8166df0b1880ae5cad2ad54917230ae7d8b8c3122fda4b1096e5f89154e48c11151027542bda89b6cc6d71d8b94ce9e9234d99098d6e8e4a25228fbac15c862602f446305ac3d94e8ecf452991c17c8226dd3c026cc7d29e913f7f7b7407ef022b8c1bf0ef5f11898ecf23048942c1c5eeff6c4f4517833d33ed59fb02681c2bcc141b517648e6045c58eaafdcb9a9047768092d6725ca0f40c25857db9c976ef7693e48eb33b98cacc6aacd7d48fb929a897afe34837f79eaa186576ee3abe1ac945f0fa59c0d3236351f914e6c8af5eaf2c78ba9e6404ae90820afaefe293259fd1b72a23c1c2ce615ea8a7513d4aa1a6220930186aa5383bee73e63c48668a8755e898ebe063542fbc3513f2fbb5c6dbb2114f1100f58d5764320de2ccab55120dab41e143befa8bfaed679485dc9c470628c18ea6bb4bdb4ff2f7dc1eaf4935b9768fd74a3a641e68b643f6da111bb5fa7366f544250308f78bd13f5dae882bbe8fb68b12ec06a4bf8ac8d234658f200a3c484b2a190eb20cb3ebc5931b7e2c9793a545d64423d340618df8bf43cc405b73f808e7d717d0594199fbd1bdd580328ec04daf8a987027f0ef3466d904ff5a2ffec73e53fdd5d2c38de044b451f25694e92165f75ee3053d2ecebce1b3578c60a420bf4550afa2194cbc000f205ced602bbbbf6dec392a123cfbeb82850dd496659e29db22620ac73737d585afa3956d685bc3cfc370136afa0b2c2c72c3f6c3644cd3e10be7f40462aa3d6b5be1b71d900af2f777ef187180a3afc24897d1a25040cdeb18247cda23b212dc33362c410054c0512f4411298c9a39aa1524bb5ba94ddffb194f599d15357d959c8940038ba69877f51a279e9b3fa5f1b811d79f481cb8adb414d12453ca61d7daabc1b0fa5bba6313e546fed730a28ea9230171247315ae2bcd46bd41a24f256d61148ea5d56b635557a1671f8c55927f7b9c6c7bbf4ff6c9e53b3f906af126bdda5e617c158039f228755ce063a4f9df65a02819aff94ed4006f768ec6c2260f5f774e85fbb594a3df6fefbcdfae9285c75af62215e14b7b53b412c0d23007145ef0b58c7d5f89c78b9ca6e593b61f8f9c2eadb56f09378d625a5f37def4a30f1a0a9f505ff9adb0d40cc4dbc5d6d984af8bf5c0fad1dd5859d7240c678535af0264b1b8361230b75f5bbe143627fe42141440b5b66d49e488e88ce5627aaa9604923af87bf5b0d3acc3d25b68eb12500cab6acbd7d7a87625f44ab9c4972daeaa1b3d85b5b309560e0fa5989658b3da0285d1cbd76e5c9f0dd3cf0a6051ab9f03bce8ede9208dadd00c07ad62f6649c8edb5d60fbeb6f16567034ee90a076c3b8f55b4348c2f2e9afd976e8e184316ecdd8f6301545473b2861723d21cb61e3548ea9cf12c8b59b216c6a451db649ecc5b933d94f4f49848d70b8590a60ea5d97f851dd118191420bdadef4f8c1ada172a50e3926a9185065405e8495a28d8dc3a770bb954f6088298499f4923e271c42c9e7c8e50969d630a7254f4056a849b6cafeae4da468d732511c32bd3dc0f67f2f984d536b6e74392cad8689d06840bc94f515ba87a24f1736a29b63e1c84c96e8216d3ea567cdf1bcff950f43304e01aa7eda734fb75a34714e9816e066cbb79545a33541f13cf986a11f32b20112eb697669499ab76db2b3da8878a02d9350fc7f3be0684e44e75a117ba40b97251b40a1c523449b9654c817bedb7698902ec72c3a0b15e41a4fb4b5befa7e130e03b303e9a127107555e298d02e9883b862575f7584e2378aecb5e19905de7a844c14a4902c6eaca2ea054e71c2ca2404fc848a56275d85fb0a6aa64eda5fe353f9a2016934932b6ae044337a9a9758d9f2d9df5ee5862e3e71759decfccfe1edf047eb87b8a9b2b4d0aefff06625316935508564507875eb6e3e316ee90dfa87cf5656ee4c9df6704194e69768c5a51a789c10d8988a8dcd7f9d19b886df4ef6040e9a0ae6d29e1aaee8d6148a339f336acba1c459c42d05e50c41466594e2be249fdc70fd570a898d68fdd901417f8a87693d076da2fcfd1a860254810c25d9e34641091baece9e5e2d4c300e5fa71b6d0b0b51e9612d0fd8398c5a8c1f7d42ae6933b1d48fea16cc9e96fabdcaefd63c9dfd03413e899006a2e4843859d253ed8457e239421af0d824b3876c612ead1f77178790f8455813a306ac6c8756a81d9f8ebb3e62646f37e1c606ade7f35e9b1ec8e01bb9d16fd3314ee937331069d2f72fe19f6c642ec450c7d6da98ffd503a65fd77789829d5f5c228d92172f45c24c764d3bec5a36c3cf3a7ac0bedfb63670eef071e33e4134c16d5ba5174cd4256abdd56664deabd3a36214ecfd2d58a55bd28aadbb5e196e366a08fac7bc71c5f9943ee4a717898a6f0b4d6c284f1d5c3fd2a7f7173edd00477494b67d615aaf09d7769a399452eb8e7653ff721491eae6dc5fbbb7eda80198044382a36455af50addb6f6ab23b0ee72b103438ffe3206754333a09dbfc887c38248564152829d3251417630c27b85d883f0d5c7d897ed1fc54bfd54a22f91430e6ecbaa7e867fc1110d76554ca6dee4875e49ae3688a84dc5752d08c7b802b433e096b5aa590196ddf8aa9201657c9eccfc37b0e736367d5366a5932c70da724e6abb8ccfc065e7be76c80fe5ab5531b856dcd7934f19d1c510f009158cd65f747d914781b32b5634cc808f430225bbbae3b81101a20763492354234053b8bf955f91c54fdeb6ac7a99a84c422a4863bba9f23b309bc71f7b149b93f7edce1c1afa51c0e399e8715f63d3d714fea8a49d9fad6f56540cc6ff239e822fe2968f1f434dc115efdfcd302848084d7de54a8997635b197c09436d76fd817d86619129062453e8b7619e2933c9fa9fa3d55c7c2eb633d8c4f1b01cad47cce9f8242a306ab058869fc676a8318a36503bd86c1cb848e66d4943a3829db1d166314d9b8d6050011fe843005841998102e8b19a9ab2ae3dca7e4dad2e655447dab4a38c7a85ceb6c6fa9354262fa131074fa5497da322181bb2535c6897abc9ca03d01a5de2b6e2e56b604d9662327c0c4f7e14fe772f5b74826c020c70e8f09ecdd836d73c21adda14bf1bf2da2559f52dbc8ea50b44ee4e7deb2f6e3e99b890ae137241556b195c9703abed2649f3f9885e509b0182854a46c4a2ebd3c94897d2ac2a75867521feee1bdc6fa3a7b849079600f7dfe8fe892301dd2c3e45fd440bae3febcb0e3e642e592735be6af90f7127e3b5eaaa05ce968949e9ebceb6ebad2aff2a7b28e7fbba938d493dc1dd033c9f0e38e17b29f1bfc357587fecae0aef5c439a2b1d6dc274c368bd03edb7d56e7dbb059c2b53d47c14943f213f6e24281f01d968b0a9cef970dc2561a79e001b9d93769e81eb64b0f544556d313fd562fbc20ea9f557d82de6368a07d75a534545647b3127b4adb948c4aa5af44cec2fee87efc8ecf985eae20380760d055506acb60d88bab28b2ed9a14c105f99cf16de1bcb776b83df927d8f52c254de7f7e3bf367e608e5ed732a112e125bad179d8e0069fe0288e466cda58eab8ed1e2b555a1a57180e47ad250888a5d79253c2a190ea739e00fc46142b4157426c95f923a305ee232e83b538ab0023f0d695d955da0e20febbe9ca5b512c823ab31223719263f91df6ac2cee44e2fa4523700189f662885b125e09743411e670001f05410b5f38ec46507277b9f2b5d1bdbe2cafcae3e89b04cc7155efe9905efd76cc9f6b9399e6438cbd76aa74036dc484273054ef344a2eda27c2d91432fbd2cb8103ba314aa9047a7db78dd078b28ceb8dd11b11d026e9e4eedb1db2401d4055e2c913bd003d451f9a33737b3eac888aed1077eaaca81556d930353eb4a9f82ba0153948558e3925aec7305461be7a0cd1822225f246d2298ec70af85270892e600923f5b22a27bd54d5f6bb8ec646ca872dcdf4449ce0b2f25df22afeeb57ff68df1a7f86f7543e7003632c1ea8d67a35f7e9e9753ef24b2b9863290c6f0e9334c67d9396000102949342761e6730305e67e6806766e88fdec281a9d4e45bf07ab7cebf960a7e940c869c5177f06085ab96319bba202b1a8f2c2989edbe4391fee5da1d95be5f63104a26408f4664e3e19d3796d1b968fd8e9801c09749e8b30a184101d85324ae33fc29bcbecb081f22d537579b0df0c0ee892a77422671cd03866f984840890f946bf2724fe09ca78835869d1c74aea69f3ecb6dc630c6603993ce200dc3fa23ca1681472a33112a7811e686f4c1ea69e99074d54794e7f0776e6e37d39bae386de3e61b13d486de60fd54ff5b36fa51736c6805d721f4de976aee14ab05398406c0655fec8f16d7bd8aa0da81fd21f3a98c6d9f698f34a8a801eed7700abb3087e10a052644f6c4781597e7e837a89d09df7bb837aa387cf5f7ca2d18670d1e852d5b7a8d83dfa1ca963864bf7c2309a3c1110fe876c72d0a38fdda860f28135a4d473dbf58cbe4fcb158735e485d80856d38e615b4815efade53348bc19c51a9fd10b5b8663ffd2328222554154c749980cb7af25d15b04204525b7ea0b4f04fe8da0880db17d3021de99f0e01265ef914ee057a816484245e2e23c74d4162a41381fb2982485999e271c96fe0c64445939fd2bd3d0fdf88e43411c343e4fb01044db1095a862576db6345c65f08af3ce5e421ae144fe3da258caffc3a9d37459bfe73c81b7d12389dcd6c5769973a9aab669ebc8546954d71b65d80fae0fb5ae42afc711c3fe220d75dc47e6bc2f0c840ce0619bc0d28e3b09f255d014d3b308475621fc1817e371883c182793e11de7662d0450a6bcd330c3ebd4a8b9c934f440815f50aae22fca24d46254999c7f13f43b51a7c34e91aeee3470fb1a9566c8f8e323ed977a5d0c0a45ec361dfd83e39a422cf41dd5355eefdf20f53ef6d61eee619b87df434baaf60d69acdace58524b9e45a61f998af21f684ada2d1fc73e5d73f29d90905e8e0b0506bdf1d78daff70953648aeafe0800ad3c03f5d9640f5abcb31b20a74cac9f348b4681b05ef03733653794f44aa0a5ff8529ed409257cb837223121bb691f651ba41b953d3744d5f5ebc0184e424763edf75ec8e5b38b5452d60f5d75b5c675097d43748e702423c9b90b6e4dc7e538f056a7fe03048ec5219ec00bf289fbdffa1bf13b974a27eee718f0f4e83385a1554b1779d04abb08bf838bd9e50a42c0b8b902bc32946f41596ac22d7995cda87cf30b5eb0bec95f6fa616fe4c9b4b33069391f37d1f1a7113b98cf960ba329037c85ed6be2eb758dcee8f2bacfb95d9991b57a2793fa1cf7a16a53c12d0e62f4251f1468e0d0cda8d7f2d3f6695a2656771ac6a9d5aaa0de9cdab193e1043bb9024fea03eb9a17ce2491b4bfd30c69f3e23c1bd1dd2f5ba959e34c4b698c48310589b2474d2381ab27fe005217dc04ed18e70d4c73a310555b645d61078a4bd66a0d0e6375c6cab8c785ec7487bc3d89a98c28af39f2663099d8994d05fcb6f9146324dd28a7df94a2a9d858265d4babdf5c7683e71ab9e949748013482766d229ab8a26e8ea9e56d900afe22271039adfa7cfa5d4e89bcfd15cab044a18e08f2624670b82a1c33fa5b991a2cc96f56a87c99244f5dedafc7027d04bbc6bc88147a60a3c69433cd4585966fbf84c62653c97a1f3a044276f5a11afd42ea837625235c9f1d7cca0aa9e0d0ca555d05a32c68040d2cd99f16393a274b767109391f74c3bc69530d1d76ee04b9f658cb09d7e12352408c82f6a67b869453d0f0c8819768ed184b33530607a585ef2275bfa1c39d0fb5a6734435c00bb53d6d194ad991e0f3cd5db50e8f46ce14d67b283e2856a272701bde8da29cad4c25af43df013c9c8ad5b4eee8ce1fe3435f39c4f83ec0ce63d66df778c9266c8c7fcb42d1342828a1d13b23115296b25af80d677ede709232ccd3318d7ac8d86b5cefb2bfbaac2dba77275d7045aec34ee14d5ed843afaea14063accb556d2621a395cce78dbdd8eb4e32ee99a7a393edbabb459000c70b5fdcf3b8ac7e339ce3aefa572554a72bddb61626c70af32a14efe5cd9382ebab867416b63d40f453b5b44b3987e03730a8464a9925f5435e916807ecf3985d1cbad9ac4bc94d1622471b5a255576340fe82052af0ffdf70d64645dad67d8f09515c8449a93727dd50a69c26b3960d1ed206450b9b8f6b3589434ca363feb5be17d62046dc4a6bb6a5f64d5dd7aec856642fa76221a3ac46decf0a1fc18aab7dd8ffa5f6216a481d804adb15b8ca2bd76c8277aed045da7e0a277e9859e6f894c8aa4d329527392d0a1614796fb3280dcd134881822d0dcf8e243ef5c95bbd7e7044b1ad60ce7f0f148905aea7f12704695d2a6630af907d76b48615753918cbf268eae00ff3813427da9ed65f33ee2a2c1e891804aefd20b21842d8c2ca55abe27ce16cc8c21c9def0f9bd76b13a216466e24da4028346884f2ff03773d0c8e9b03dff6f73feca159ddf2f128c01a5cc7b5af9f5cf1069e480d4e9480a4d6689f082c046c39f7734b260a924a817813f51deda956a1507649ec4cc6bbfe7a9f78dba4bba60ad3cca87b99abf69abac384565393545672e2885449af4e4507d96527195b3eeb2bb54a2572f3efcbaad80cc3f72da1f4d7ec5229c5ebe1df7d4893fab062686b9adb9973340f22603edcbcf008f3df36a424ee83ab268bb8ded19187aff9b4ad588099d8f22e5ab9e0b7d5c1204ae1a5035e246d01cb7c0f5e6e17b6018d717fec7425f9aa5075e8e54085dfef90b4131a9e342b5e355e8b5d321f4b463bc89f5a79f0f530e6826d673359680e44618766ada55345e9617978245800e3c10da23d49143684134fa913008e9fd7d97631e5f8dd98ccb3ba25a7e7cd2c7e36883e0f77f61e12f18770bc12b6ffe7b599ddbd808f6009741df6c12baefac0e5cd9b13f5c682ef67fce9fa08c61b8162661277f33628dd16c588826d6efbc8cc36bfbaf30b5fe84287d6faaccfe5342b0584c4a6d103e02907a04d9ce31b53e3b59f316e90694dd1b5c286c9c8b14e6971ea048ce8e634ecef4d4232cd1f34114c71a05dbcffdf54765c834ff8ae0dac6e8f1058ca89eb5eff08fdc58e5e4da371f1e089321c9c2cbfe91f989cd6441c0fc7d0428d03ea94313df5592fcd5e261cb795781f0058dc6601238ebc14cc44749740cbfa86979260fcb729402863e376ce7bafb2340c2c79438b7429955e694f1f8178500615f63fd7bb828c4ca33b7a7fb0205368b512159a522f28b0425aa2b3aee53a0249a0c387fe10230a3fc2ab1d270107c1fe930d83323ff75c5bf57b6edd3dc00f16631176c6e7a2c8b5a9417a15fed0e1c586b3b719d70c36264927595df34b28b26d6e697ff9ade08733511c25c6b0246b6a40d3c0287c9aa2f478749e004328c6f054194aa5c362d51ff2b9c4831395753ca3e856d7e408ffec60e8fd131819c129227875a8ec1536c6ec73ecc7070ba4fba9d34257c5855090f90d95373f007e9aaf0ab673ca725eff7f92f3879765937b2ec963b51a3067b3a6669b203d7211b18260513d1f572b2a861b0e8cf516de24a54cbf55c26a6c6d0b4b208f94d7935a7d5624aa08562a25b2bed8d8970a88184d4b0a3b5b95ecd52733be9cc8ce299fd314e1888fc6845e1937adf07149c0b068ae1ac351bfc4e01de22c7db72ce2cf0eef94c08c24e56441a6456a37e0a52e174a46292eaf9a70dd5ea7034903dc091673c774ad23f0400aae4d6791f5c55896ab0458f3196363dc018f4bc5ce1aa4a448f1c944248d0a8fda877369afe12674444c82f61aaddd81d20180f0b3c83f120c564dd0f984e80e9e0f5681c942e2890f87a0b3311230e2a3534317928a034491b505f7612497d2a7fa32d171b74fd659903fd259a95fce892801acdbefeaed78a78d997f6bf4a7dc0c7cc0161d6f1782a8fe80f3c39643294567c9bb9d288e190e143a2b6f47d531936e0b0ac4f929b94a0f107e4a73f7faa73819764e1c0323ea8c62a0f9c20cffe59c8fe7bbf82bf46d70feccc5104ed384603ed3714f5fc6b3fd60d96ed94382d565352a54f0c1d3de0a3af6b9c2e066f2f42b197240ed8ecde9be382b36d63f3a79188b951e49859c1d0daecfe0d22716743487bf8f8b97751614692807521045d08160b2c1f63d2c38a00e7316172db557b7bcf373ae877456f1f6aa2a01ff468106060f8d1754483aabb24ac677302f5e8279e128d17211d9ffbebdbe56bd9d13df21d0759f64b369fc4200bfdd5c8b3c61f16fe599d1de1a541eb6b5e892f4634ea043de8c4d17bd4ae9b4931ca918b37cb8341b9412db15d33970d811ee4b56601734b9fa81a6b344849b53dac38dc49b851b26b3e5ee6a70b3ca295ff539badf53fe2434b3ce0427efb8b2e433d8b0aaca58585f47b73ef4f877e23062eee5f244a64686fb86130886555a4f10eb2dbbbf3a6ebe42c690c8ff26bbc75c71e8b6203fa4465eaca7d8aaa3f4dcbc3c2e283e7ecd4e49f04cc523e5808d1ea413678698fb69cb9f0e82decf2e78ac12649020f62ec4149de639d8bef3fa7841f4baafbf071f8876e847fc3d0c7bbd87924da48ab1d869262e335de013e26f10faa81884d3f1a774c4f4306d10bb61c8e0cea53e1f8abd2b71e13903ce28ac096a4e85c983939796a17daa9434e4462ce054350026d75d685b59c2d0cb038de67c922c77b7a13b52250b800da64cacf9f831cb72fce83973f3445eb1efa4ea36e45a55bc766221882b9cf54e6a56caa34c15b912c541b11262408fd8323e4890b2cdc3e24ba71ee96736de375c3d1a2bc1aaa0779a35f75a65918e828e0d705cf72973e65c2109eb4491f7da3371b91e75a0ff5a0430198f5b6f6758fa46c583dbb34efc50e6cd837f3b769acecc6560fb18717bcd6283bd865f9fba435eda1249c5bdc8e26eca0e9a1a8b3a77bad326a0c6f9a7c9f3ac549df65f4adce805053ad21babfed2564cb5cb0ccecdfc507648be0e17a297cd3e0f9e1bb606fe109a5e03757b8dca0ffdb87b152b4cf0a3b1e811adea84fdcc742f6632cbeeebf10ed3ea29b5e5d5d79708e4c1d1835e840e0d122100c754676d7ece5d53a7666ca5b1c4892c244fc093b2493ec1126e306ebed7427e0d26c8c374170b21b2e3ab28f7c3dcbd40d3bd0571666de04948933af6b708063723f0910061723e6a4cf5f844d8567ca21ddd22657bf84540a5b8223b6f71ef0c5770fb7c775b0430658d83095e7fb8033f404f5d6213ec854c7e5dfd6ab280fef2587e30753606a33bd383097d22abd7ba3713ed66adfa25fd24b564584faa8be27118d6caa9df15bf50a3e3874f1dc6ebb3e67c6dda7b74fab8bbcbb6eff64af9e8779e7ffd5c971ac66701f33e2f110af5f0e5d84cf882c698fdfef41395af9303ebaa92ee740948527d8db15be429aecf969982b412668f8974e7f4a21e424d3a2e21a45182ce046f1f1c062603c080aaa69f92fa8ebf81ac925dbb4902df7d74cfbef297c68be0a0cf0c465511ff785adc36ca2d6b268fa2f3a338a5bfee85ae85785d8d454ea3585f7d8b08c8fde57d826b46a667fb66f4049c8d7e6d5f18355adfd699ceacc61762460b1b6c02a27301206931ce3fddc70d31731b7535ed84aa3f4e392cd7fa04d99f80c7c35de425f49c03e7537bb9aab376753acf4ec7f10b463dab49d3c8f1dcda8d0f73b5e1dda921d9459579008daa0f98d830b6592c327478f9a4744d7cd5209746f2038adf90a1c4945ccd316cc4373d0e8ff073f37fcc8ac9583e7e56ba2489536125dad5d7fe287777a111af072dd75b43b0e43d4fc6343fdbfee8254cde47232b05640f0949f4758480f8b9da0f3536097bbb8f0c8c3d89f57a7d56adfd51e07f3cb991dbe64d524d6e2a51a1d3bbaa5d7dcdb043138648d99cce7a414e61263096152bc53bb307307d0be305ace554d5e6ca93c8b4cb64265d61d6ac05abdae20e6a7ad02e38716387088d5d3622809415995a315c249b30d956f97842504ed622b933fb5c8795e703f9e80c3189c773529980533c8b6c3250da79901b46e6167a6a23747e040fbef7811f023787fba6a3475afddada87ffd06618b609c4484f34f94492df296e162064bac96f884d9d1e44d3266ab098b88e2c8310f18749f269322440c8d9f91743c5b8f16ef8dd5ee2cd0a0ac4ac68a5d92e7333b789812e9ad487046d56d3350340086045d72871b7a5b02c2196aa701605cdcb8da9dad578002ed7eec2650a2c83e5b22a7db59c27927f94177fad4f4d9edae68f600680beb39d83e0940ea4c08472ca582e2d1419b0ce136a7481af700a6eef9b07db646cff10b07fbf3c6ad026c2dab1b4436d68e5aa18fa244648eea4c12ed4b5ae7b9cf7978708af902b1190bb98f57e461cf4927ba8409b0afbc711f60f585f7353024c9690f561427992bf6108089b4df21f8bcbd9b9fcdcab63d332f22c3bacaa566747f6c35051c499020b3b5916720170f74483b1eba3300724e886bf5f6fd96ac855dad7b3a8a092334235a33c0e16c6be58d0a0402c857e279142ea7cbce8bf3335b84b4506298791b68f8c933520a4fe138da34bbbeee2c90d59bbf59536d5ec33426f83b4a1fd216337cf9dc4e884825131c220877bfeb92f52702207769f9687bbdfe4f53d416683f3a75e0a925b8913f9f36c64a5900001d389d9d7318eb2f099916c3c4ae04c60c222e08dbc534a11077381ec383e9f6bc469061374de21ef0c2a9a8a8ac6b2afdecb667ad9e499f7e96597606ee8a54cf1b825c7c0a8b5387c572ff28c1671c8b68388b39c138a25d245397ce09f1c6a59bca67cfd04177494bcae3bdb0d435ce6a79be1f4d3fb10d476ca12f100a719fe52e48541157ad2bad82dad9955876bc1b11cb6170df8f5dfe7ce55df69831404a40455dd3110902470a102484b148f1bdb42299c2c052ebb1de4ed9b6bcf17f4e5fdd3f0fbc2f444492e5d42ad724e76d8c0283c1c2155e7cc7ac08df001f5ae384f115d6ab29c06712581df14273ebe7106c4e47f85bacd9bf96d86fc6e3577133b550b3fc69af0a6d889bc6216cd41948b53731dd95474eda7e3c97f6b237aefe3f89083005731ea675503a850b80592aa1cf6bece733bb8614ab4d787b6a458bdcc430c4ac42b5f2b8a1982ccd4a8471d5af4cc507e5fa4105c1ccd9f68a3c9d60e88da9f316c9c19db9f583500977838c7af709853945c655d39a7d7472c894a0a892218596ca50f412b0cf4f323ebbb4033692bab7ffc7f45dd6fd502b0392e2a87e6eedbe0522d797c985d28f15b6e656204891d7e1c6570dfed199f15b6f4706209b87531a0b35a59e9b65a772b00c9ce16a5c94ae1338fc2faf658123585cdd58055080404e4a748c3ee602f03ec45463a7ecd26297e5a3d99025c95b443075e2682401b8119598af870206e679f2f282dbe465764a782673f559e9678ea97a9f8c15f175f175f7f580811ceb4bd7e829a1a4b8ad24d7aed05dea10e229de0d6754395c396efdde2f100b9f527ed87f25046e87f2aa6ccd86d35c3757dbdcff3e523f061020d16e1d8ee9ff84218f56ea379afee34405d21448c8d8d7958395fe20ab05de003bf1be53852b57680a8278208a2fe2901d404cb3142477c3d7f22f3804aa428cfa322eaf0eb20a68b9461bc2f360ccf35415000d533b1f00d91dcbfba369a26b380e5d3b0d2e7fee51bb3a347ccad17d8814583486c704995a760d23963e71b21e44870036a3d2e7337b212752afa50a0d329c420a904610bea67af5efc0b02d82c6248cf1474d5ab975e12135659382cdbb127cdf106c4e9f3c3455ae83ec7f879fbfd59a07561405102d6182ac8b27ceb3ca6266bc3a22419cc5238bd01bf18b5b64f4d00a2387edf63955ac44fd605283003514c67987aebd468999f2454fe891a74973334328292b44ee5401fd24592480fcd90a07235342cabfb4de53ff0383cee8d88b31d4aad28dacf0696bd341e772704bc84b08dfbadb1706c791bd327c5de04363eb49d8f18f90cbab569a8250e2af57f6ceef4957079c0c799bc8af36656cd1476e5d17ee82678e82f91d161237921ad454b0c9f9d36f1be76c10c80e8fd3feb2ec7ef639ab346c1604337fd764bf58d20c9e542595a5723810dd2df3b970f01aedb0a842815ba816e5c89e8a4bf8b1ce13148105095031ae799597ce4a25552ba87f61ed27936017479e91703df6adc7c2df1b8d4f6f2588a3d62aff03d20479196955cdb2ef5a463d1add45bb9b995d956e1e9184401a9edd3c81fd4ba629e857b10920058afe0953b5d74d446713ab003dad242d8c9e196373cf2319e4e55db128f50a8db59a292340752aeeacb0dc915fbda63d31cc6dab8fc48093055ee7141cb815598f106b9415cf539418017e62c965b260230bb4badc31e30ec50dc6e9a1bfae9b58f6fe2db19b62c7739bf42a4cc7af2904583d510ebae8bf47fb34dfa6429796ebc79b007b761028b9dee744535a4b9b698b0d77588d64f4fc0db6f6c6e5efa0f8eb19eadf443a41b869c5a202676c12ac534a07a58f22bd92d50c83e36be77244e6dd5681976724f32e18a20b44c8206cd6b27f1a8a2ed5818d2535edcf69a006b0eb6b1b39bdebad5e8aab5d4e9a01a9f15fc50289bed40286f662592f154850c549046ec5383abe234569398f3c1aae992a4207313d8a25d7437b52975b77d22e35ea826ef50e2ee25d81e0177b7d883b4da3371f300e9f89c90e031bd2d41d2ffd1086ab267c7d65e43096a6b7e3d51ec54fde635d8e54df624e23b35f0d102a8c2d3e84720562e8c306320d867c42c5d7191efa8b3bf2416c0bf2f3654a3d498fb0aa0cd2b07a568ed3f3f85769476de73fbc19c5fdc69f11826945f6ef326c04c2201664c0426708b8fafb36f403799150d2ebfdd8af1506c28e4d65714095dd10257de3cbd4edeb17fb0df98ffe32eafd118d1fa32418523614787f82ce2b9061de9be439788175ef08b0f8e7435862d3dcc2129114bc2f0a0fe51550e06170ca63cf22bf60f98d61916bc5592987643a3ae9738a872246d9ac3e7ffad6201f6511d7a1fcbf97f5acd2b8207e0a9421515fb6afc536e81a16dda783faa634e07510d38ed0729b90f3be0c2f32aaf1db9c0f429bc7075321ac4166893e430266e9c5697a17f3f90ca8d67f0c81d71071abc1dd39461b216c586ec80b07b357988143056f894fd04760ab23ec6616e0f016ba0942da8d0c923e7117ef0c7521c351414342c58421a4c625ec614f1f7fce67d5eeee02a181017c34685a0db0490946db580c0b6fb433e9088d1d9185c00ad586189b0d31f76f7e561caef6e5dfd5e9bb3499a1adacabe9baa7b6a568b805475ecdbf1a45deea1faac5e509b207795f196a6497151298701fa93efdf48c58761edb4c564a9b20d8df1871dd3bf1a5b46a30e72840217d9249c842abcccc0910f1570e275d675d10de9155b4de6abc2cb418de28ef173df63127f32d45416176919bdccad3e675e8cb4e60ae2c231d8a91ab9556f974440f1adf74f3d7c968dbbd194f0a20fdad6d7333ffa10ea75e9a3a3b399df00fca456fbf8b4b72dc1725f971782060e5dcf11e53e4575bdd532717c19db9115d59838c141427477d61c1f68a7f67ba4222a4ff71ac92f4ad53ffc6060ed04f2ab6fab7880d54ff5fd24be64464e1d0d29fff64700a467957e0a07b2cbfe3aec2568b1f097da5135bdb0b5e967ed4821e6b86163b0a2a9b0925bafa4cc8e189904d136473181d335d4fe05b7a0598a4a68f3ad1e5a9b2f54a1cb02598f48ab9542b196b589f6cf7bca19af57592f788ff68d2d6b0d0b875ca7731b68c9edfd79356eecb83bc4ec893a60fcfb5d13b53d9ba6c34a9249c0927a9da98812b0dad8dfc7a072bb8c990dcb84b27d611a810da14357231101a1e1cd35b20d1b6e64b1fb48026dfef4809720edb988d11f19798ef1de40d9b8490af9f4dd27192dfb3d4bb42e89788a246b857f8db21a37922194da7a170486de3233ed4a3aa331db2d5c39644eafbdc746c9d5bff7778e85cee4f7a767105a0981a0caab4bf6dcbed88cfc0138418ddbaf7edb46480102156177d3c131a4bf403ba62ed80b772520d3a7fcff9932d51c331d0ca8ff51bcf4c36ec593d9cb1f36693a91071846df366f511799266e77933df98402463b81d9625f9bfcf7359c5e4a648fd0771bd73346395803faa183c7ff495d8bb10931a7dd8fa6cf91709782dab74f86be8486919c07208bc317d10244850786a40bd7d333cd80a8eab313ecaa1f3954f071008fd438b8b8a0662484cc1145ed1dd07205acbd84cbb8c6e731c79c9e5236e85705b66b4cf794752c7fbf846b0732f53f1c217de3d9100bd9f2a1acc31e1114d5ef35fe7f5b7ae6cd603a3a4cae900de3bf9328a21394938a82a7de87b8bd5ffb2a422f162d48fb8b8075719744d55320a120030eb98ce7382ea1bb4386744eaa1b907f084fb9c0e9af01ded05471754b25d4e72c146e532dd86c5170eb8537e9d9a6be086c54046ffd1641130bd9db46123cd8505cb9e44c7c8696111796466b89d22232bab538f24cb1f9d27c0c5472120b236c42ee6e40384110ee4fa000a2b4f23ca7e7fe41abf7ccc925bb04c7d57016678ef186c0bf11c01ae26893ef1470e2c792300dc9f1ed09d42295be81c949ddebbb94d22ef6089b276b1b009be7d16ac5e0ced6374b29ca3b601eaf4261bbc56420c0b12142c058eb04abd9def8c66bc0e6eb13734f10ce449432f830f90e2ca30b3765604d39f71921a5a2a42044d71a3fd6db581b82813396f00dd2673a248e8dc8fdcd7bb140f7c965474b73a54e2a7c759de7b94ac743c7961b214a40b81fbaa02af689c5ac9992f6ce5e79101091143c110184267582053ac320edce911e8b1b9a0a28f84facb2644b927cd6016825ba11631ba7c474a57ddc7c9c672872000a45a3f39b4dee53e8be4254c5958c2ba390fd49228c93a40cbd3efaf73866b5cdfb494e24043b40e2745d8e4a2d35819206f8308d302044c82cd59d14639e27a1e83506393161b692568f588d68beaecf9ad5d33f147abad909d9cde12918dbce7b7e394f5c1bb5164adcde2197c8305f773f842314f65aac12791f8df1fcccae7f51bd7e17fe3d51bcd775fff086f66b19fc97a2f467248f382d8310c6b114c4d5erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpki-core-10.5.9-6.el7.src.rpmpki-common-javadocpki-java-tools-javadocpki-javadocpki-util-javadoc@    jpackage-utilsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.11.3[{[l,[`O@[U@[>@[d@[@[o[@ZUZ@Z@ZZxG@Zg#Z.s@Z@Z ZYYY@Y@Y@YoIYlYGY>@Y5GY-^Y$$@Y"Y@Y#@X@XX@XO@X*XRXOX!@X&X2@WWҤ@WίW#W:WWt@W{@Wu WgWV@WV@WV@WV@WV@WV@W 10.5.9-6Dogtag Team 10.5.9-5Dogtag Team 10.5.9-4Dogtag Team 10.5.9-3Dogtag Team 10.5.9-2Dogtag Team 10.5.9-1Dogtag Team 10.5.1-13.1Dogtag Team 10.5.1-13Dogtag Team 10.5.1-12Dogtag Team 10.5.1-11Dogtag Team 10.5.1-10Dogtag Team 10.5.1-9Dogtag Team 10.5.1-8Dogtag Team 10.5.1-7Dogtag Team 10.5.1-6Dogtag Team 10.5.1-5Dogtag Team 10.5.1-4Troy Dawson - 10.5.1-3Dogtag Team 10.5.1-2Dogtag Team 10.5.1-1Dogtag Team 10.5.0-1Dogtag Team 10.4.1-15Dogtag Team 10.4.1-14Dogtag Team 10.4.1-13Dogtag Team 10.4.1-12Dogtag Team 10.4.1-11Dogtag Team 10.4.1-10Dogtag Team 10.4.1-9Dogtag Team 10.4.1-8Dogtag Team 10.4.1-7Dogtag Team 10.4.1-6Dogtag Team 10.4.1-5Dogtag Team 10.4.1-4Dogtag Team 10.4.1-3Dogtag Team 10.4.1-2Dogtag Team 10.4.1-1Dogtag Team 10.4.0-1Dogtag Team 10.3.3-18Dogtag Team 10.3.3-17Dogtag Team 10.3.3-16Dogtag Team 10.3.3-15Dogtag Team 10.3.3-14Dogtag Team 10.3.3-13Dogtag Team 10.3.3-12Dogtag Team 10.3.3-11Dogtag Team 10.3.3-10Dogtag Team 10.3.3-9Dogtag Team 10.3.3-8Dogtag Team 10.3.3-7Dogtag Team 10.3.3-6Dogtag Team 10.3.3-5Dogtag Team 10.3.3-3Dogtag Team 10.3.3-2Dogtag Team 10.3.3-1Dogtag Team 10.3.3-0.1Dogtag Team 10.3.2-5Dogtag Team 10.3.2-4Dogtag Team 10.3.2-3Dogtag Team 10.3.2-2Dogtag Team 10.3.2-1Dogtag Team 10.3.2-0.1Dogtag Team 10.3.1-1Dogtag Team 10.3.0-1Dogtag Team 10.3.0.b1-1Dogtag Team 10.3.0.a2-2Dogtag Team 10.3.0.a2-1Dogtag Team 10.3.0.a1-2Dogtag Team 10.3.0.a1-1Dogtag Team 10.3.0-0.5Dogtag Team 10.3.0-0.4Dogtag Team 10.3.0-0.3Dogtag Team 10.3.0-0.2Dogtag Team 10.3.0-0.1Dogtag Team 10.2.7-0.3Tomas Radej - 10.2.7-0.2Dogtag Team 10.2.7-0.1Dogtag Team 10.2.6-1Dogtag Team 10.2.6-0.3Dogtag Team 10.2.6-0.2Dogtag Team 10.2.6-0.1Dogtag Team 10.2.5-1Dogtag Team 10.2.5-0.2Dogtag Team 10.2.5-0.1Dogtag Team 10.2.4-1Dogtag Team 10.2.4-0.2Dogtag Team 10.2.4-0.1Dogtag Team 10.2.3-1Dogtag Team 10.2.3-0.1Dogtag Team 10.3.0-0.1Dogtag Team 10.2.3-0.1Dogtag Team 10.2.2-1Dogtag Team 10.2.2-0.1Dogtag Team 10.2.1-1Matthew Harmsen - 10.2.1-0.4Ade Lee 10.2.1-0.3Christina Fu 10.2.1-0.2Dogtag Team 10.2.1-0.1Ade Lee 10.2.0-3Matthew Harmsen - 10.2.0-2Dogtag Team 10.2.0-1Matthew Harmsen - 10.2.0-0.10Matthew Harmsen - 10.2.0-0.9Matthew Harmsen - 10.2.0-0.8Fedora Release Engineering - 10.2.0-0.5Jack Magne - 10.2.0-0.7Matthew Harmsen - 10.2.0-0.6Matthew Harmsen - 10.2.0-0.5Ade Lee - 10.2.0-0.4Fedora Release Engineering - 10.2.0-0.3Michael Simacek - 10.2.0-0.2Dogtag Team 10.2.0-0.1Ade Lee 10.1.0-1Ade Lee 10.1.0-0.14Ade Lee 10.1.0-0.13Ade Lee 10.1.0-0.12Ade Lee 10.1.0-0.11Endi S. Dewata 10.1.0-0.10Abhishek Koneru 10.1.0.0.9Abhishek Koneru 10.1.0.0.8Endi S. Dewata 10.1.0-0.7Endi S. Dewata 10.1.0-0.6Endi S. Dewata 10.1.0-0.5Ade Lee 10.1.0-0.4Endi S. Dewata 10.1.0-0.3Matthew Harmsen 10.1.0-0.2Ade Lee 10.1.0-0.1Endi S. Dewata 10.0.2-5Ade Lee 10.0.2-4Ade Lee 10.0.2-3Endi S. Dewata 10.0.2-2Ade Lee 10.0.2-1Ade Lee 10.0.2-0.8Endi S. Dewata 10.0.2-0.7Endi S. Dewata 10.0.2-0.6Ade Lee 10.0.2-0.5Endi S. Dewata 10.0.2-0.4Endi S. Dewata 10.0.2-0.3Endi S. Dewata 10.0.2-0.2Endi S. Dewata 10.0.2-0.1Endi S. Dewata 10.0.1-9Ade Lee 10.0.1-8Endi S. Dewata 10.0.1-7Matthew Harmsen 10.0.1-6Endi S. Dewata 10.0.1-5Endi S. Dewata 10.0.1-4Matthew Harmsen 10.0.1-3Matthew Harmsen 10.0.1-2Ade Lee 10.0.1-1Matthew Harmsen 10.0.0-5Matthew Harmsen 10.0.0-4Ade Lee 10.0.0-3Ade Lee 10.0.0-2Ade Lee 10.0.0-1Matthew Harmsen 10.0.0-0.56.b3Endi S. Dewata 10.0.0-0.55.b3Endi S. Dewata 10.0.0-0.54.b3Ade Lee 10.0.0-0.53.b3Ade Lee 10.0.0-0.52.b3Endi S. Dewata 10.0.0-0.51.b2Endi S. Dewata 10.0.0-0.50.b2Matthew Harmsen 10.0.0-0.49.b2Ade Lee 10.0.0-0.48.b2Matthew Harmsen 10.0.0-0.47.b1Ade Lee 10.0.0-0.46.b1Ade Lee 10.0.0-0.45.b1Ade Lee 10.0.0-0.44.b1Ade Lee 10.0.0-0.43.b1Ade Lee 10.0.0-0.42.b1Ade Lee 10.0.0-0.41.b1Ade Lee 10.0.0-0.40.b1Endi S. Dewata 10.0.0-0.40.a2Endi S. Dewata 10.0.0-0.39.a2Ade Lee 10.0.0-0.38.a2Endi S. Dewata 10.0.0-0.37.a2Ade Lee 10.0.0-0.36.a2Endi S. Dewata 10.0.0-0.36.a1Endi S. Dewata 10.0.0-0.35.a1Endi S. Dewata 10.0.0-0.34.a1Ade Lee 10.0.0-0.33.a1Matthew Harmsen 10.0.0-0.32.a1Endi S. Dewata 10.0.0-0.31.a1Endi S. Dewata 10.0.0-0.30.a1Endi S. Dewata 10.0.0-0.29.a1Endi S. Dewata 10.0.0-0.28.a1Endi S. Dewata 10.0.0-0.27.a1Endi S. Dewata 10.0.0-0.26.a1Endi S. Dewata 10.0.0-0.25.a1Endi S. Dewata 10.0.0-0.24.a1Matthew Harmsen 10.0.0-0.23.a1Endi S. Dewata 10.0.0-0.22.a1Endi S. Dewata 10.0.0-0.21.a1Matthew Harmsen 10.0.0-0.20.a1Matthew Harmsen 10.0.0-0.19.a1Matthew Harmsen 10.0.0-0.18.a1Endi S. Dewata 10.0.0-0.17.a1Matthew Harmsen 10.0.0-0.16.a1Ade Lee 10.0.0-0.15.a1Christina Fu 10.0.0-0.14.a1Endi S. Dewata 10.0.0-0.13.a1Endi S. Dewata 10.0.0-0.12.a1Ade Lee 10.0.0-0.11.a1Matthew Harmsen 10.0.0-0.10.a1Matthew Harmsen 10.0.0-0.9.a1Jack Magne 10.0.0-0.8.a1Matthew Harmsen 10.0.0-0.7.a1Endi S. Dewata 10.0.0-0.6.a1Ade Lee 10.0.0-0.5.a1Endi S. Dewata 10.0.0-0.4.a1Matthew Harmsen 10.0.0-0.3.a1Matthew Harmsen 10.0.0-0.2.a1Nathan Kinder 10.0.0-0.1.a1Ade Lee 9.0.16-3Endi S. Dewata 9.0.16-2Matthew Harmsen 9.0.16-1Matthew Harmsen 9.0.15-1Matthew Harmsen 9.0.14-1Ade Lee 9.0.13-1Matthew Harmsen 9.0.12-1Matthew Harmsen 9.0.11-1Matthew Harmsen 9.0.10-1Matthew Harmsen 9.0.9-1Matthew Harmsen 9.0.8-2Matthew Harmsen 9.0.8-1Matthew Harmsen 9.0.7-1Matthew Harmsen 9.0.6-2Matthew Harmsen 9.0.6-1Matthew Harmsen 9.0.5-2Matthew Harmsen 9.0.5-1Matthew Harmsen 9.0.4-1Matthew Harmsen 9.0.3-2Matthew Harmsen 9.0.3-1Matthew Harmsen 9.0.2-1Matthew Harmsen 9.0.1-3Matthew Harmsen 9.0.1-2Matthew Harmsen 9.0.1-1Matthew Harmsen 9.0.0-3Matthew Harmsen 9.0.0-2Matthew Harmsen 9.0.0-1- Updated nuxwdog dependencies - ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #673182 - ECC keys not supported for signing audit logs (cfu) - Bugzilla Bug #1593805 - Better understanding of NSS_USE_DECODED_CKA_EC_POINT for ECC (cfu) - Bugzilla Bug #1601071 - Certificate generation happens with partial attributes in CMCRequest file (cfu) - Bugzilla Bug #1601569 - CC: Enable all config audit events (cfu) - Bugzilla Bug #1608375 - CMC Revocations throws exception with same reqIssuer & certissuer (cfu) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1596629 - ipa-replica-install --setup-kra broken on DL0 with latest version (abokovoy) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1548203 - pki console configurations that involves ldap passwords leave the plain text password in signed audit logs (cfu) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1494591 - keyGen fails when only Identity- Re-spin alpha builds- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1471935 - X500Name.directoryStringEncodingOrder overridden by CSR encoding (cfu) - Bugzilla Bug #1538311 - Using a Netmask produces an odd entry in a certificate (ftweedal) - Bugzilla Bug #1540440 - CMC: Audit Events needed for failures in SharedToken scenario's (cfu) - Bugzilla Bug #1550742 - Address ECC profile overrides (cfu) - Bugzilla Bug #1562841 - servlet profileSubmitCMCSimple throws NPE (cfu) - Bugzilla Bug #1572432 - AuditVerify failure due to line breaks (cfu) - Bugzilla Bug #1592961 - Need proper default subjectDN for CMC request authenticated through SharedToken (cfu) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1538311 - Using a Netmask produces an odd entry in a certifcate (ftweedal) - Bugzilla Bug #1544843 - ExternalCA: Installation failed during csr generation with ecc (rrelyea, gkapoor) - Bugzilla Bug #1557569 - Re-base pki-core from 10.5.1 to latest upstream 10.5.x (RHEL) (mharmsen) - Bugzilla Bug #1580394 - CMC CRMF requests result in InvalidKeyFormatException when signing algorithm is ECC (cfu) - Bugzilla Bug #1580527 - CVE-2018-1080 pki-core: Mishandled ACL configuration in AAclAuthz.java reverses rules that allow and deny access (ftweedal, cfu) - Bugzilla Bug #1585866 - CRMFPopClient tool - should allow option to do no key archival (cfu) - Bugzilla Bug #1588655 - Cert validation for installation with external CA cert (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- Rebuild due to build system database problem- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1553068 - Using a Netmask produces an odd entry in a certifcate [rhel-7.5.z] (ftweedal) - Bugzilla Bug #1585945 - CMC CRMF requests result in InvalidKeyFormatException when signing algorithm is ECC [rhel-7.5.z] (cfu) - Bugzilla Bug #1587826 - ExternalCA: Installation failed during csr generation with ecc [rhel-7.5.z] (rrelyea, gkapoor) - Bugzilla Bug #1588944 - Cert validation for installation with external CA cert [rhel-7.5.z] (edewata) - Bugzilla Bug #1588945 - CRMFPopClient tool - should allow option to do no key archival (cfu) - Bugzilla Bug #1589307 - CVE-2018-1080 pki-core: Mishandled ACL configuration in AAclAuthz.java reverses rules that allow and deny access [rhel-7.5.z] (ftweedal, cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- Updated "jss" build and runtime requirements (mharmsen) - ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1571582 - [MAN] Missing Man pages for tools CMCRequest, CMCResponse, CMCSharedToken (typos) [rhel-7.5.z] (cfu) - Bugzilla Bug #1572548 - IPA install with external-CA is failing when FIPS mode enabled. [rhel-7.5.z] (edewata) - Bugzilla Bug #1574848 - servlet profileSubmitCMCSimple throws NPE [rhel-7.5.z] (cfu) - Bugzilla Bug #1575521 - subsystem -> subsystem SSL handshake issue with TLS_ECDHE_RSA_* on Thales HSM [rhel-7.5.z] (cfu) - Bugzilla Bug #1581134 - ECC installation for non CA subsystems needs improvement [rhel-7.5.z] (jmagne) - Bugzilla Bug #1581135 - SAN in internal SSL server certificate in pkispawn configuration step [rhel-7.5.z] (cfu) - Bugzilla Bug #1581167 - CC: CMC profiles: Some CMC profiles have wrong input class_id [rhel-7.5.z] (cfu) - Bugzilla Bug #1581382 - ECDSA Certificates Generated by Certificate System 9.3 fail NIST validation test with parameter field. [rhel-7.5.z] (cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1554726 - Need ECC-specific Enrollment Profiles for standard conformance [rhel-7.5.z] (cfu) - Bugzilla Bug #1557880 - [MAN] Missing Man pages for tools CMCRequest, CMCResponse, CMCSharedToken [rhel-7.5.z] (cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1560233 - libtps does not directly depend on libz- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1550581 - CMCAuth throws org.mozilla.jss.crypto.TokenException: Unable to insert certificate into temporary database [rhel-7.5.z] (cfu) - Bugzilla Bug #1551067 - [MAN] Add --skip-configuration and --skip-installation into pkispawn man page. [rhel-7.5.z] (edewata) - Bugzilla Bug #1552241 - Make sslget aware of TLSv1_2 ciphers [rhel-7.5.z] (cheimes, mharmsen) - Bugzilla Bug #1553068 - Using a Netmask produces an odd entry in a certifcate [rhel-7.5.z] (ftweedal) - Bugzilla Bug #1554726 - Need ECC-specific Enrollment Profiles for standard conformance [rhel-7.5.z] (cfu) - Bugzilla Bug #1554727 - Permit additional FIPS ciphers to be enabled by default for RSA . . . [rhel-7.5.z] (mharmsen, cfu) - Bugzilla Bug #1557880 - [MAN] Missing Man pages for tools CMCRequest, CMCResponse, CMCSharedToken [rhel-7.5.z] (cfu) - Bugzilla Bug #1557883 - Console: Adding ACL from pki-console gives StringIndexOutOfBoundsException [rhel-7.5.z] (ftweedal) - Bugzilla Bug #1558919 - Not able to generate certificate request with ECC using pki client-cert-request [rhel-7.5.z] (akahat) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1560233 - libtps does not directly depend on libz- ########################################################################## - # RHEL 7.5: - ########################################################################## - # Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release - Bugzilla Bug #1445532 - CC: Audit Events: Update the default audit event set (RHEL) (edewata) - Bugzilla Bug #1532867 - Inconsistent key ID encoding (edewata) - Bugzilla Bug #1540687 - CC: External OCSP Installation failure with HSM and FIPS (edewata) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, - # Bugzilla Bug #1404075 - CC: Audit Events: Update the default audit event- ########################################################################## - # RHEL 7.5: - ########################################################################## - # Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release - Bugzilla Bug #1542210 - pki console configurations that involves ldap passwords leave the plain text password in debug logs (jmagne) - Bugzilla Bug #1543242 - Regression in lightweight CA key replication (ftweedal) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- ########################################################################## - # RHEL 7.5: - ########################################################################## - # Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release - Bugzilla Bug #1445532 - CC: Audit Events: Update the default audit event set (RHEL) (edewata) - Bugzilla Bug #1522938 - CC: Missing faillure resumption detection and audit event logging at startup (jmagne) - Bugzilla Bug #1523410 - Unable to have non "pkiuser" owned CA instance (alee) - Bugzilla Bug #1525306 - CC: missing CMC request and response record (cfu) - Bugzilla Bug #1532933 - Installing subsystems with external CMC certificates in HSM environment shows import error (edewata) - Bugzilla Bug #1535797 - ExternalCA: Failures when installed with hsm (edewata) - Bugzilla Bug #1539125 - restrict default cipher suite to those ciphers permitted in fips mode (mharmsen) - Bugzilla Bug #1539198 - Inconsistent CERT_REQUEST_PROCESSED outcomes. (edewata) - Bugzilla Bug #1540440 - CMC: Audit Events needed for failures in SharedToken scenario's (cfu) - Bugzilla Bug #1541526 - CMC: Revocation works with an unknown revRequest.issuer (cfu) - Bugzilla Bug #1541853 - ProfileService: config values with backslashes have backslashes removed (ftweedal) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, - # Bugzilla Bug #1404075 - CC: Audit Events: Update the default audit - # Bugzilla Bug #1501436 - TPS CS.cfg should be reflected with the- Updated jss, nuxwdog, and openssl dependencies - ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - Bugzilla Bug #1402280 - CA Cloning: Failed to update number range in few cases (ftweedal) - Bugzilla Bug #1428021 - CC: shared token storage and retrieval mechanism (cfu) - Bugzilla Bug #1447145 - CMC: cmc.popLinkWitnessRequired=false would cause error (cfu) - Bugzilla Bug #1498957 - pkidestroy does not work with nuxwdog (alee) - Bugzilla Bug #1520277 - PR_FILE_NOT_FOUND_ERROR during pkispawn (alee) - Bugzilla Bug #1520526 - p12 admin certificate is missing when certificate is signed Externally (edewata) - Bugzilla Bug #1523410 - Unable to have non "pkiuser" owned CA instance (alee) - Bugzilla Bug #1523443 - HAProxy rejects OCSP responses due to missing nextupdate field (ftweedal) - Bugzilla Bug #1526881 - Not able to setup CA with ECC (mharmsen) - Bugzilla Bug #1532759 - pkispawn seems to be leaving our passwords in several different files after installation completes (alee) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - Bugzilla Bug #1466066 - CC: Secure removal of secret data storage (jmagne) - Bugzilla Bug #1518096 - ExternalCA: Failures in ExternalCA when tried to setup with CMC signed certificates (cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - ########################################################################## - # RHCS 9.3: - ########################################################################## - #Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- dogtagpki Pagure Issue #2853 - Cleanup spec file conditionals- Patch applying check-ins since 10.5.1-1- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - ########################################################################## - # RHCS 9.3: - ########################################################################## - #Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - ########################################################################## - # RHCS 9.3: - ########################################################################## - #Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- #Bugzilla Bug #1492560 - ipa-replica-install --setup-kra broken on DL0- #Require "jss >= 4.4.0-8" as a build and runtime requirement - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Resolves: rhbz #1486870,1485833,1487509,1490241,1491332 - # Bugzilla Bug #1486870 - Lightweight CA key replication fails (regressions) - # Bugzilla Bug #1485833 - Missing CN in user signing cert would cause error - # Bugzilla Bug #1487509 - pki-server-upgrade fails when upgrading from - # Bugzilla Bug #1490241 - PKCS12: upgrade to at least AES and SHA2 (FIPS) - # Bugzilla Bug #1491332 - TPS UI: need to display tokenType and tokenOrigin - # dogtagpki Pagure Issue #2764 - py3: pki.key.archive_encrypted_data: - ########################################################################## - # RHCS 9.2: - ########################################################################## - # Resolves: rhbz #1486870,1485833,1487509,1490241,1491332,1482729,1462271 - # Bugzilla Bug #1462271 - TPS incorrectly assigns "tokenOrigin" and - # Bugzilla Bug #1482729 - TPS UI: need to display tokenType and tokenOrigin- Resolves: rhbz #1463350 - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Bugzilla Bug #1463350 - Access banner validation (edewata)- # Resolves: rhbz #1472615,1472617,1469447,1463350,1469449,1472619,1464970,1469437,1469439,1469446 - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Bugzilla Bug #1472615 - CC: allow CA to process pre-signed CMC non-signing - # Bugzilla Bug #1472617 - CMC: cmc.popLinkWitnessRequired=false would cause - # Bugzilla Bug #1469447 - CC: CMC: check HTTPS client authentication cert - # Bugzilla Bug #1463350 - Access banner validation (edewata) - # Bugzilla Bug #1469449 - CC: allow CA to process pre-signed CMC renewal - # Bugzilla Bug #1472619 - Platform Dependent Python Import (mharmsen) - # Bugzilla Bug #1464970 - CC: CMC: replace id-cmc-statusInfo with - # Bugzilla Bug #1469437 - subsystem-cert-update command lacks --cert option - # Bugzilla Bug #1469439 - Fix Key Changeover with HSM to support SCP03 - # Bugzilla Bug #1469446 - CC: need CMC enrollment profiles for system- # Resolves: rhbz #1469432 - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Bugzilla Bug #1469432 - CMC plugin default change - # Resolves CVE-2017-7537 - # Fixes BZ #1470948- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1458043 - Key recovery on token fails with invalid public key error on KRA (alee) - Bugzilla Bug #1460764 - CC: CMC: check HTTPS client authentication cert against CMC signer (cfu) - Bugzilla Bug #1461533 - Unable to find keys in the p12 file after deleting the any of the subsystem certs from it (ftweedal)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1393633 - Creating symmetric key (sharedSecret) using tkstool is failing when RHEL 7.3 is in FIPS mode. (jmagne) - Bugzilla Bug #1419756 - CC: allow CA to process pre-signed CMC non-signing certificate requests (cfu) - Bugzilla Bug #1419777 - CC: allow CA to process pre-signed CMC revocation non-signing cert requests (cfu) - Bugzilla Bug #1458047 - change the way aes clients refer to aes keysets (alee) - Bugzilla Bug #1458055 - dont reuse IVs in the CMC code (alee) - Bugzilla Bug #1460028 - In keywrap mode, key recovery on KRA with HSM causes KRA to crash (ftweedal)- Require "selinux-policy-targeted >= 3.13.1-159" as a runtime requirement - Require "tomcatjss >= 7.2.1-4" as a build and runtime requirement - ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1400149 - pkispawn fails to create CA subsystem on FIPS enabled system (edewata) - Bugzilla Bug #1447144 - CA brought down during separate KRA instance creation (edewata) - Bugzilla Bug #1447762 - pkispawn fails occasionally with this failure ACCESS_SESSION_ESTABLISH_FAILURE (edewata) - Bugzilla Bug #1454450 - SubCA installation failure with 2 step installation in fips enabled mode (edewata) - Bugzilla Bug #1456597 - Certificate import using pki client-cert-import is asking for password when already provided (edewata) - Bugzilla Bug #1456940 - Build failure due to Pylint issues (cheimes) - Bugzilla Bug #1458043 - Key recovery using externalReg fails with java null pointer exception on KRA (alee) - Bugzilla Bug #1458379 - Upgrade script for keepAliveTimeout parameter (edewata) - Bugzilla Bug #1458429 - client-cert-import --ca-cert should import CA cert with trust bits "CT,C,C" (edewata) - ########################################################################## - # RHCS 9.2: - ########################################################################## - Bugzilla Bug #1274086 - [RFE] Add SCP03 support (RHCS) (jmagne)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1393633 - Creating symmetric key (sharedSecret) using tkstool is failing when RHEL 7.3 is in FIPS mode. (jmagne) - Bugzilla Bug #1445519 - CA Server installation with HSM fails (jmagne) - Bugzilla Bug #1452617 - Unable to create IPA Sub CA (ftweedal) - Bugzilla Bug #1454471 - Enabling all subsystems on startup (edewata) - Bugzilla Bug #1455617 - Key recovery on token fails because key record is not marked encrypted (alee)- Bugzilla Bug #1454603 - Unable to install IPA server due to pkispawn error (mharmsen)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1419761 - CC: allow CA to process pre-signed CMC renewal non-signing cert requests (cfu) - Bugzilla Bug #1447080 - CC: CMC: allow enrollment key signed (self-signed) CMC with identity proof (cfu) - Bugzilla Bug #1447144 - CA brought down during separate KRA instance creation (mharmsen) - Bugzilla Bug #1448903 - exception Invalid module "--ignore-banner" when defined in ~/.dogtag/pki.conf and run pki pkcs12-import --help (edewata) - Bugzilla Bug #1450143 - CA installation with HSM in FIPS mode fails (jmagne) - Bugzilla Bug #1452123 - CA CS.cfg shows default port (mharmsen) - Bugzilla Bug #1452250 - Inconsistent CERT_REQUEST_PROCESSED event in ConnectorServlet. (edewata) - Bugzilla Bug #1452340 - Ensuring common audit log correctness (edewata) - Bugzilla Bug #1452344 - Adding serial number into CERT_REQUEST_PROCESSED audit event. (edewata)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1386303 - cannot extract generated private key from KRA when HSM is used. (alee) - Bugzilla Bug #1446364 - pkispawn returns before tomcat is ready (cheimes) - Bugzilla Bug #1447145 - CMC: cmc.popLinkWitnessRequired=false would cause error (cfu) - Bugzilla Bug #1448203 - CAInfoService: retrieve KRA-related values from the KRA (ftweedal) - Bugzilla Bug #1448204 - pkispawn of clone install fails with InvalidBERException (ftweedal) - Bugzilla Bug #1448521 - kra unable to extract symmetric keys generated on thales hsm (alee) - Updated "jss" build and runtime requirements (mharmsen) - ########################################################################## - # RHCS 9.2: - ########################################################################## - Bugzilla Bug #1274086 - [RFE] Add SCP03 support (RHCS) (jmagne)- ############################################################################ - # RHEL 7.4: - ############################################################################ - Bugzilla Bug #1303683 - dogtag should support GSSAPI based auth in conjuction with FreeIPA (ftweedal) - Bugzilla Bug #1385208 - RHCS 9.1 RC5 CA in the certificate profiles the startTime parameter is not working as expected. (jmagne) - Bugzilla Bug #1419756 - CC: allow CA to process pre-signed CMC non-signing certificate requests (cfu) - Bugzilla Bug #1426754 - PKCS12: upgrade to at least AES and SHA2 (ftweedal) - Bugzilla Bug #1445088 - profile modification cannot remove existing config parameters (ftweedal) - Bugzilla Bug #1445535 - CC: Crypto Operation (AES Encryption/Decryption) (RHEL) (alee) - Bugzilla Bug #1446874 - Missing ClientIP and ServerIP in audit log when pki CLI terminates SSL connection (edewata) - Bugzilla Bug #1446875 - Session timeout for PKI console (RHEL) (edewata) - ############################################################################ - # RHCS 9.2: - ############################################################################ - Bugzilla Bug #1404480 - CC: Crypto Operation (AES Encryption/Decryption) (RHCS) (alee)- ############################################################################ - # RHEL 7.4: - ############################################################################ - Bugzilla Bug #1282504 - Installing pki-server in container reports scriptlet failed, exit status 1 (jpazdziora) - Bugzilla Bug #1400149 - pkispawn fails to create CA subsystem on FIPS enabled system (edewata) - Bugzilla Bug #1410650 - [RFE] Add SCP03 support for sc 7 g & d cards (RHEL) (jmagne) - Bugzilla Bug #1437591 - cli authentication using expired cert throws an exception (edewata) - Bugzilla Bug #1437602 - non-CA cli looks for CA in the instance during a request (edewata) - ############################################################################ - # RHCS 9.2: - ############################################################################ - Bugzilla Bug #1274086 - [RFE] Add SCP03 support for sc 7 g & d cards (RHCS) (jmagne) - ############################################################################ - # Common Criteria - ############################################################################ - Bugzilla Bug #1404080 - CC: add audit event: various SSL/TLS failures (edewata) - Bugzilla Bug #1417307 - CC: Audit Review /Searches (edewata) - Bugzilla Bug #1419737 - CC: CMC: id-cmc-popLinkWitnessV2 feature implementation (cfu)- Require "nss >= 3.28.3" as a build and runtime requirement - Require "jss >= 4.4.0-4" as a build and runtime requirement - Require "tomcatjss >= 7.2.1-3" as a build and runtime requirement - dogtagpki Pagure Issue #2612 - Unable to clone due to pki pkcs12-cert-find failure (edewata) - ############################################################################ - Bugzilla Bug #1394309 - Rebase pki-core to 10.4.x in RHEL-7.4 - Bugzilla Bug #1394315 - Rebase redhat-pki, redhat-pki-theme, pki-core, and pki-console to 10.4.x - ############################################################################ - # RHEL 7.4: - ############################################################################ - ############################################################################ - # RHCS 9.2: - ############################################################################ - ############################################################################ - # Common Criteria - ############################################################################ - Bugzilla Bug #1419734 - CC: CMC: id-cmc-identityProofV2 feature implementation (cfu) - Bugzilla Bug #1419742 - CC: CMC: provide Proof of Possession for encryption cert requests (cfu) - Bugzilla Bug #1404080 - CC: add audit event: various SSL/TLS failures (edewata) - Bugzilla Bug #1428020 - CC: CMC feature support: provided issuance protection cert mechanism (cfu)- Require "jss >= 4.4.0-1" as a build and runtime requirement - Require "tomcatjss >= 7.2.1-1" as a build and runtime requirement - ############################################################################ - Bugzilla Bug #1394309 - Rebase pki-core to 10.4.x in RHEL-7.4 - Bugzilla Bug #1394315 - Rebase redhat-pki, redhat-pki-theme, pki-core, and pki-console to 10.4.x - ############################################################################ - # RHEL 7.4: - ############################################################################ - Bugzilla Bug #1222557 - ECDSA Certificates Generated by Certificate System 8.1 fail NIST validation test with parameter field. (cfu) - Bugzilla Bug #1238684 - Generting Symmetric key fails with key-generate when --usages verify (vakwetu) - Bugzilla Bug #1246635 - user-cert-add --serial CLI request to secure port with remote CA shows authentication failure (edewata) - Bugzilla Bug #1249400 - CA EE: Submit caUserCert request without uid does not show proper error message (vakwetu) - Bugzilla Bug #1305993 - Add profile component that copies CN to SAN (ftweedal) - Bugzilla Bug #1316653 - pki ca-cert-request-submit fails presumably because of missing authentication even if it should not require any (edewata) - Bugzilla Bug #1325071 - add options to enable/disable cert or crl publishing. (vakwetu) - Bugzilla Bug #1330800 - Failed to start pki-tomcatd Service ("ipa-cacert-manage renew" failed?) (edewata) - Bugzilla Bug #1368410 - Misleading Logging for HSM (edewata) - Bugzilla Bug #1372052 - Unable to search certificate requests using the latest request ID (edewata) - Bugzilla Bug #1375347 - Typo in comment line of UserPwdDirAuthentication.java (edewata) - Bugzilla Bug #1376226 - IPA replica-prepare failed with error "Profile caIPAserviceCert Not Found" (ftweedal) - Bugzilla Bug #1376488 - pkispawn fails as it is not able to find openssl as a dependency package (mharmsen) - Bugzilla Bug #1378275 - two-step externally-signed CA installation fails due to missing AuthorityID (ftweedal) - Bugzilla Bug #1378277 - Spurious host authority entries created (ftweedal) - Bugzilla Bug #1378527 - Miscellaneous Minor Changes (edewata) - Bugzilla Bug #1381084 - KRA installation failed against externally-signed CA with partial certificate chain (edewata) - Bugzilla Bug #1382066 - Problems with FIPS mode (edewata) - Bugzilla Bug #1386371 - Remove xenroll.dll from pki-core (mharmsen) - Bugzilla Bug #1386424 - Fix packaging duplicates of classes in multiple jar files (edewata) - Bugzilla Bug #1391737 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (RHEL 7) (edewata) - Bugzilla Bug #1392068 - [RFE] add express archivals and retrievals from KRA (vakwetu) - Bugzilla Bug #1395817 - Unable to install subordinate CA with HSM in FIPS mode (edewata) - Bugzilla Bug #1397200 - pkispawn does not change default ecc key size from nistp256 when nistp384 is specified in spawn config (jmagne) - Bugzilla Bug #1399862 - Dogtag 10.3.9 Man Pages (edewata) - Bugzilla Bug #1404881 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne) - Bugzilla Bug #1405654 - Token memory not wiped after key deletion (RHEL) (jmagne) - Bugzilla Bug #1409946 - Request ID undefined for CA signing certificate (vakwetu) - Bugzilla Bug #1409949 - CA Certificate Issuance Date displayed on CA website incorrect (vakwetu) - Bugzilla Bug #1410650 - [RFE] Add SCP03 support (RHEL) (jmagne) - Bugzilla Bug #1411428 - Unable to create a CA clone in FIPS (edewata) - Bugzilla Bug #1412211 - Unable to set up KRA in FIPS (edewata) - Bugzilla Bug #1412681 - update to 7.3 IPA with otpd bugfixes, tomcat will not finish start, hangs (ftweedal) - Bugzilla Bug #1413132 - pki-tomcat for 10+ minutes before generating cert (edewata) - Bugzilla Bug #1413136 - Problem with default AJP hostname in IPv6 environment. (edewata) - ############################################################################ - # RHCS 9.2: - ############################################################################ - Bugzilla Bug #1248553 - TPS Enrollment always goes to "ca1 (cfu) - Bugzilla Bug #1274086 - [RFE] Add SCP03 support (RHCS) (jmagne) - Bugzilla Bug #1274096 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - Bugzilla Bug #1379379 - Unable to read an encrypted email using renewed tokens (jmagne) - Bugzilla Bug #1379749 - Automatic recovery of encryption cert is not working when a token is physically damaged and a temporary token is issued (jmagne) - Bugzilla Bug #1381375 - Cert/Key recovery is successful when the cert serial number and key id on the ldap user mismatches (cfu) - Bugzilla Bug #1381635 - Token format with external reg fails when op.format.externalRegAddToToken.revokeCert=true (cfu) - Bugzilla Bug #1382762 - PIN_RESET policy is not giving expected results when set on a token (jmagne) - Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (RHCS 9) (edewata) - Bugzilla Bug #1391207 - Automatic recovery of encryption cert - CA and TPS tokendb shows different certificate status (cfu) - Bugzilla Bug #1395479 - TPS throws "err=6" when attempting to format and enroll G&D Cards (RHCS) (jmagne) - Bugzilla Bug #1404900 - Dogtag 10.3.9 logging properties (edewata) - Bugzilla Bug #1405655 - Token memory not wiped after key deletion (RHCS) (jmagne) - ############################################################################- ## RHEL 7.3.z Batch Update 4 - Bugzilla Bug #1429492 - Add profile component that copies CN to SAN (ftweedal)- ## RHCS 9.1.z Batch Update 3 - Bugzilla Bug #1391207 - Automatic recovery of encryption cert - CA and TPS tokendb shows different certificate status (cfu) - ## RHEL 7.3.z Batch Update 3 - Bugzilla Bug #1417063 - ECDSA Certificates Generated by Certificate System 8.1 fail NIST validation test with parameter field. (cfu) - Bugzilla Bug #1417064 - Unable to search certificate requests using the latest request ID (edewata) - Bugzilla Bug #1417065 - CA Certificate Issuance Date displayed on CA website incorrect (alee) - Bugzilla Bug #1417066 - update to 7.3 IPA with otpd bugfixes, tomcat will not finish start, hangs (ftweedal) - Bugzilla Bug #1417067 - pki-tomcat for 10+ minutes before generating cert (edewata) - Bugzilla Bug #1417190 - Problem with default AJP hostname in IPv6 environment. (edewata)- Separate original patches into RHEL and RHCS portions - ## RHEL 7.3.z Batch Update 2 - Bugzilla Bug #1404176 - logging properties and man pages (edewata) - Bugzilla Bug #1405328 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne) - ## RHCS 9.1.z Batch Update 2 - Bugzilla Bug #1395479 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne) - Bugzilla Bug #1404900 - RHCS logging properties (edewata)- ## RHEL 7.3.z Batch Update 2 - Bugzilla Bug #1404173 - user-cert-add --serial CLI request to secure port with remote CA shows authentication failure (edewata) - Bugzilla Bug #1404175 - pki ca-cert-request-submit fails presumably because of missing authentication even if it should not require any (edewata) - Bugzilla Bug #1404178 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI [pki-base] (edewata) - Bugzilla Bug #1404172 - Unable to install subordinate CA with HSM in FIPS mode (edewata) - Bugzilla Bug #1403689 - pkispawn does not change default ecc key size from nistp256 when nistp384 is specified in spawn config (jmagne) - Bugzilla Bug #1404176 - logging properties and man pages (edewata) - ## RHCS 9.1.z Batch Update 2 - Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI [pki-tps] (edewata) - Bugzilla Bug #1391207 - Automatic recovery of encryption cert - CA and TPS tokendb shows different certificate status (cfu) - Bugzilla Bug #1395479 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne)- Marked the following RHCS 9.1.z bug: Bugzilla Bug #1382862 - TPS token enrollment fails to setupSecureChannel when TPS and TKS security db is on fips mode. (jmagne) as a duplicate of RHEL 7.3.z bug: Bugzilla Bug #1389757 - Problems with FIPS mode (edewata) and moved the patch from the RHCS 9.1.z bug to the RHEL 7.3.z bug.- ## RHEL 7.3.z Batch Update 1 - Bugzilla Bug #1389757 - Problems with FIPS mode (edewata) (added KRA key recovery via CLI in FIPS mode) - ## RHCS 9.1.z Batch Update 1 - Reverted patches associated with Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (edewata)- ## RHEL 7.3.z Batch Update 1 - Bugzilla Bug #1390318 - CA EE: Submit caUserCert request without uid does not show proper error message (alee) - Bugzilla Bug #1390319 - Failed to start pki-tomcatd Service ("ipa-cacert-manage renew" failed?) (edewata) - Bugzilla Bug #1390320 - pkispawn fails as it is not able to find openssl as a dependency package (mharmsen) - Bugzilla Bug #1390321 - two-step externally-signed CA installation fails due to missing AuthorityID (ftweedal) - Bugzilla Bug #1390322 - Spurious host authority entries created (ftweedal) - Bugzilla Bug #1390324 - KRA installation failed against externally-signed CA with partial certificate chain (edewata) - Bugzilla Bug #1389757 - Problems with FIPS mode (edewata) - Bugzilla Bug #1390311 - Fix packaging duplicates of classes in multiple jar files (edewata) - Bugzilla Bug #1390325 - Typo in comment line of UserPwdDirAuthentication.java (edewata) - ## RHCS 9.1.z Batch Update 1 - Bugzilla Bug #1248553 - TPS Enrollment always goes to "ca1" (cfu) - Bugzilla Bug #1274096 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - Bugzilla Bug #1379379 - Unable to read an encrypted email using renewed tokens (jmagne) - Bugzilla Bug #1379749 - Automatic recovery of encryption cert is not working when a token is physically damaged and a temporary token is issued (jmagne) - Bugzilla Bug #1381375 - Cert/Key recovery is successful when the cert serial number and key id on the ldap user mismatches - Bugzilla Bug #1381635 - Token format with external reg fails when op.format.externalRegAddToToken.revokeCert=true (cfu) - Bugzilla Bug #1382762 - PIN_RESET policy is not giving expected results when set on a token (jmagne) - Bugzilla Bug #1382862 - TPS token enrollment fails to setupSecureChannel when TPS and TKS security db is on fips mode. (jmagne) - Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (edewata)- PKI TRAC Ticket #1527 - TPS Enrollment always goes to "ca1" (cfu) - PKI TRAC Ticket #1664 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - PKI TRAC Ticket #2478 - pkispawn fails as it is not able to find openssl as a dependency package (mharmsen) - PKI TRAC Ticket #2483 - Unable to read an encrypted email using renewed tokens (jmagne) - PKI TRAC Ticket #2496 - Cert/Key recovery is successful when the cert serial number and key id on the ldap user mismatches (cfu) - PKI TRAC Ticket #2505 - Fix packaging duplicates of classes in multiple jar files (edewata)- Revert Patch: PKI TRAC Ticket #2449 - Unable to create system certificates in different tokens (edewata) - Resolves: rhbz #1374054 - ipa-replica-install fails setting up certificate - Restores: rhbz #1319557 - pkispawn KRA instance is failing server - Removes from Errata: rhbz #1372041 - Unable to create system certificates in different tokens- PKI TRAC Ticket #1638 - Lightweight CAs: revoke certificate on CA deletion (ftweedal) - PKI TRAC Ticket #2436 - Dogtag 10.3.6: Miscellaneous Enhancements (edewata) - PKI TRAC Ticket #2443 - Prevent deletion of host CA's keys if LWCA entry deleted (ftweedal) - PKI TRAC Ticket #2444 - Authority entry without entryUSN is skipped even if USN plugin enabled (ftweedal) - PKI TRAC Ticket #2446 - pkispawn: make subject_dn defaults unique per instance name (for shared HSM) (cfu) - PKI TRAC Ticket #2447 - CertRequestInfo has incorrect URLs (vakwetu) - PKI TRAC Ticket #2449 - Unable to create system certificates in different tokens (edewata)- PKI TRAC Ticket #1578 - Authentication Instance Id PinDirEnrollment with authType value as SslclientAuth is not working (jmagne) - PKI TRAC TIcket #2414 - pki pkcs12-cert-del shows a successfully deleted message when a wrong nickname is provided (gkapoor) - PKI TRAC Ticket #2423 - pki_ca_signing_token when not specified does not fallback to pki_token_name value (edewata) - PKI TRAC Ticket #2436 - Dogtag 10.3.6: Miscellaneous Enhancements (akasurde) - ticket remains open - PKI TRAC Ticket #2439 - Outdated deployment descriptors in upgraded server(edewata)- PKI TRAC Ticket #690 - [MAN] pki-tools man pages (mharmsen) - CMCEnroll - PKI TRAC Ticket #833 - pki user-mod fullName="" gives an error message "PKIException: LDAP error (21): error result" (edewata) - PKI TRAC Ticket #2431 - Errors noticed during ipa server upgrade. (cheimes, edewata, mharmsen) - PKI TRAC Ticket #2432 - Kra-selftest behavior is not as expected (edewata) - PKI TRAC Ticket #2436 - Dogtag 10.3.6: Miscellaneous Enhancements (edewata, mharmsen) - PKI TRAC Ticket #2437 - TPS UI: while adding certs for users from TPSUI pem format with/without header works while pkcs7 with header is not allowed (edewata) - PKI TRAC Ticket #2440 - Optional CA signing CSR for migration (edewata)- Bugzilla Bug #1366465 - Errata TPS upgrade test fails- PKI TRAC Ticket #978 - TPS connector man page: add revocation routing info (cfu) - PKI TRAC Ticket #1285 - [MAN] Apply 'generateCRMFRequest() removed from Firefox' workarounds to appropriate 'pki' man page (jmagne) - PKI TRAC Ticket #2246 - [MAN] Man Page: AuditVerify (cfu) - PKI TRAC Ticket #2381 - Throws exception while providing invalid module. (edewata) - PKI TRAC Ticket #2383 - CLI :: pki client-cert-request --extractable should accept only boolean value (edewata) - PKI TRAC Ticket #2389 - Installation: subsystem certs could have notAfter beyond CA signing cert in case of external or existing CA (cfu) - PKI TRAC Ticket #2399 - Dogtag 10.3.5: Miscellaneous Enhancements (akasurde, alee, cheimes, edewata, jmagne, mharmsen) - PKI TRAC Ticket #2401 - pkispawn calls dnsdomainname even if it does not rpm-require hostname (mharmsen) - PKI TRAC Ticket #2402 - Conflict in file ownership in pki-base and pki-server (cheimes) - PKI TRAC Ticket #2403 - Deployment problem with RESTEasy 3.0.17 (edewata) - PKI TRAC Ticket #2406 - Make starting CRL Number configurable (jmagne) - PKI TRAC Ticket #2412 - pki client-cert-import --trust option does not apply the specified trust bits (alee) - PKI TRAC Ticket #2418 - [TPS] Some template substitution didn't happen during installation (alee) - PKI TRAC Ticket #2420 - CA subsystem OSCP responder fails when LWCAs are not used (ftweedal) - PKI TRAC Ticket #2421 - Incorrect SELinux contexts Installation/Configuration (edewata) - PKI TRAC Ticket #2424 - ipa-ca-install fails on replica when IPA server is converted from CA-less to CA-full (edewata) - PKI TRAC Ticket #2428 - broken request links for CA's system certs in agent request viewing (cfu) - PKI TRAC Ticket #2430 - CA Agent certificate list is not sorted by serial number in migration case (jmagne) - PKI TRAC Ticket #2431 - Errors noticed during ipa server upgrade. (mharmsen) - PKI TRAC Ticket #2433 - Lightweight CA GET /chain returns bogus PEM data (ftweedal)- PKI TRAC Ticket #691 - [MAN] pki-server man pages (mharmsen) - PKI TRAC Ticket #1114 - [MAN] Generting Symmetric key fails with key-generate when --usages verify is passed (jmagne) - PKI TRAC Ticket #1306 - [RFE] Add granularity to token termination in TPS (cfu) - PKI TRAC Ticket #1308 - [RFE] Provide ability to perform off-card key generation for non-encryption token keys (cfu) - PKI TRAC Ticket #1405 - [MAN] Add additional HSM details to 'pki_default.cfg' & 'pkispawn' man pages (mharmsen) - PKI TRAC Ticket #1607 - [MAN] man pkispawn has inadequate description for shared vs non shared tomcat instance installation (mharmsen) - PKI TRAC Ticket #1664 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - PKI TRAC Ticket #1711 - CLI :: pki-server ca-cert-request-find throws IOError (edewata, ftweedal) - PKI TRAC Ticket #2285 - freeipa fails to start correctly after pki-core update on upgraded system (ftweedal) - PKI TRAC Ticket #2311 - When pki_token_name=Internal, consider normalizing it to "internal" (mharmsen) - PKI TRAC Ticket #2349 - Separated TPS does not automatically receive shared secret from remote TKS (jmagne) - PKI TRAC Ticket #2364 - CLI :: pki-server ca-cert-request-show throws attribute error (ftweedal) - PKI TRAC Ticket #2368 - pki-server subsystem subcommands throws error with --help option (edewata) - PKI TRAC Ticket #2374 - KRA cloning overwrites CA signing certificate trust flags (edewata) - PKI TRAC Ticket #2380 - Pki-server instance commands throws exception while specifying invalid parameters. (edewata) - PKI TRAC Ticket #2384 - CA installation with HSM prompts for HSM password during silent installation (edewata) - PKI TRAC Ticket #2385 - Upgraded CA lacks ca.sslserver.certreq in CS.cfg (ftweedal) - PKI TRAC Ticket #2387 - Add config for default OCSP URI if none given (ftweedal) - PKI TRAC Ticket #2388 - CA creation responds 500 if certificate issuance fails (ftweedal) - PKI TRAC Ticket #2389 - Installation: subsystem certs could have notAfter beyond CA signing cert in case of external or existing CA (cfu) - PKI TRAC Ticket #2390 - Dogtag 10.3.4: Miscellaneous Enhancements (akasurde, edewata)- PKI TRAC Ticket #2373 - Fedora 25: RestEasy 3.0.6 ==> 3.0.17 breaks pki-core (ftweedal)- Updated release number to 10.3.3-1- Updated version number to 10.3.3-0.1- Provided cleaner runtime dependency separation- Updated tomcatjss version dependencies- Updated 'java', 'java-headless', and 'java-devel' dependencies to 1:1.8.0.- Updated tomcat version dependencies- Updated version number to 10.3.2-1- Updated version number to 10.3.2-0.1- Updated version number to 10.3.1-1 (to allow upgrade from 10.3.0.b1)- Updated version number to 10.3.0-1- Build for F24 beta- PKI TRAC Ticket #2255 - PKCS #12 backup does not contain trust attributes.- Updated build for F24 alpha- PKI TRAC Ticket #1625 - Allow multiple ACLs of same name (union of rules) [ftweedal] - PKI TRAC Ticket #2237 - Add CRL dist points extension to OIDMap unconditionally [edewata] - PKI TRAC Ticket #1803 - Removed unnecessary URL encoding for admin cert request. [edewata] - PKI TRAC Ticket #1742 - Added support for cloning 3rd-party CA certificates. [edewata] - PKI TRAC Ticket #1482 - Added TPS token filter dialog. [edewata] - PKI TRAC Ticket #1808 - Fixed illegal token state transition via TEMP_LOST. [edewata]- Build for F24 alpha- PKI Trac Ticket #1399 - Move java components out of pki-base- PKI TRAC Ticket #1850 - Rename DRMTool --> KRATool- PKI TRAC Ticket #1714 - mod_revocator and mod_nss dependency for tps should be removed- PKI TRAC Ticket #1623 - Runtime dependency on python-nss is missing- Updated version number to 10.3.0-0.1- Added dep on tomcat-servlet-3.1-api [Fedora 23 and later] or dep on tomcat-servlet-3.0-api [Fedora 22 and later] to pki-tools - Updated dep on tomcatjss [Fedora 23 and later]- Updated dep on policycoreutils-python-utils [Fedora 23 and later]- Updated version number to 10.2.7-0.1- Update release number for release build- Remove setup directory and remaining Perl dependencies- Remove ExcludeArch directive- Updated version number to 10.2.6-0.1- Update release number for release build- Resolves rhbz #1230970 - Errata TPS tests for rpm verification failed- Updated version number to 10.2.5-0.1- Update release number for release build- Updated nuxwdog and tomcatjss requirements (alee)- Updated version number to 10.2.4-0.1 - Added nuxwdog systemd files- Update release number for release build- Reverted version number back to 10.2.3-0.1 - Added support for Tomcat 8.- Updated version number to 10.3.0-0.1- Updated version number to 10.2.3-0.1- Update release number for release build- Updated version number to 10.2.2-0.1 - Moved web application deployment locations. - Updated Resteasy and Jackson dependencies. - Added missing python-lxml build dependency.- Update release number for release build- PKI TRAC Ticket #1187 - mod_perl should be removed from requirements for 10.2 - PKI TRAC Ticket #1205 - Outdated selinux-policy dependency. - Removed perl(XML::LibXML), perl-Crypt-SSLeay, and perl-Mozilla-LDAP runtime dependencies- Change resteasy dependencies for F22+- Ticket 1198 Bugzilla 1158410 add TLS range support to server.xml by default and upgrade (cfu) - PKI Trac Ticket #1211 - New release overwrites old source tarball (mharmsen) - up the release number to 0.2- Updated version number to 10.2.1-0.1. - Added CLIs to simplify generating user certificates - Added enhancements to KRA Python API - Added a man page for pki ca-profile commands. - Added python api docs- Disable pylint dependency for RHEL builds - Added jakarta-commons-httpclient requirements - Added tomcat version for RHEL build - Added resteasy-base-client for RHEL build- PKI TRAC Ticket #1130 - Add RHEL/CentOS conditionals to spec- Update release number for release build- PKI TRAC Ticket #1017 - Rename pki-tps-tomcat to pki-tps- Merged jmagne@redhat.com's spec file changes from the stand-alone 'pki-tps-client' package needed to build/run the native 'tpsclient' command line utility into this 'pki-core' spec file under the 'tps' package. - Original tps libararies must be built to support this native utility. - Modifies tps package from 'noarch' into 'architecture-specific' package- PKI TRAC Ticket #1127 - Remove 'pki-ra', 'pki-setup', and 'pki-silent' packages . . .- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Respin to include the applet files with the rpm install. No change to spec file needed.- Bugzilla Bug #1120045 - pki-core: Switch to java-headless (build)requires -- drop dependency on java-atk-wrapper - Removed 'java-atk-wrapper' dependency from 'pki-server'- PKI TRAC Ticket #832 - Remove legacy 'systemctl' files . . .- Update rawhide build- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- Use Requires: java-headless rebuild (#1067528)- Added option to build without server packages. - Replaced Jettison with Jackson. - Added python-nss build requirement - Bugzilla Bug #1057959 - pkispawn requires policycoreutils-python - TRAC Ticket #840 - pkispawn requires policycoreutils-python - Updated requirements for resteasy - Added template files for archive, retrieve and generate key requests to the client package.- Trac Ticket 788 - Clean up spec files - Update release number for release build - Updated requirements for resteasy- Change release number for beta build- Updated requirements for tomcat- Removed additional /var/run, /var/lock references.- Removed delivery of /var/lock and /var/run directories for fedora 20.- Moved Tomcat-based TPS into pki-core.- Listed new packages required during build, due to issues reported by pylint. - Packages added: python-requests, python-ldap, libselinux-python, policycoreutils-python- Added pylint scan to the build process.- Added man pages for upgrade tools.- Cleaned up the code to install man pages.- Reorganized deployment tools.- Bugzilla Bug 973224 - resteasy-base must be split into subpackages to simplify dependencies- Updated dependencies to Java 1.7.- TRAC Ticket 606 - add restart / start at boot info to pkispawn man page - TRAC Ticket 610 - Document limitation in using GUI install - TRAC Ticket 629 - Package ownership of '/usr/share/pki/etc/' directory- Change release number for 10.1 development- Fixed incorrect JNI_JAR_DIR.- TRAC Ticket 605 Junit internal function used in TestRunner, breaks F19 build- TRAC Ticket 604 Added fallback methods for pkispawn tests- Added default pki.conf in /usr/share/pki/etc - Create upgrade tracker on install and remove it on uninstall- Change release number for official release.- Added %pretrans script for f19 - Added java-atk-wrapper dependency- Added pki-server-upgrade script and pki.server module. - Call upgrade scripts in %post for pki-base and pki-server.- Added dependency on commons-io.- Add /var/log/pki and /var/lib/pki directories- Run pki-upgrade on post server installation.- Added dependency on python-lxml.- Added pki-upgrade script.- Updated version number to 10.0.2-0.1.- Renamed base/deploy to base/server. - Moved pki.conf into pki-base. - Removed redundant pki/server folder declaration.- Removed jython dependency- Added minimum python-requests version.- Bugzilla Bug #919476 - pkispawn crashes due to dangling symlink to jss4.jar- Added dependency on python-requests. - Reorganized Python module packaging.- Added dependency on python-ldap.- TRAC Ticket #517 - Clean up theme dependencies - TRAC Ticket #518 - Remove UI dependencies from pkispawn . . .- Removed runtime dependency on 'pki-server-theme' to resolve Bugzilla Bug #916134 - unresolved dependency in pki-server: pki-server-theme- TRAC Ticket 214 - Missing error description for duplicate user - TRAC Ticket 213 - Add nonces for cert revocation - TRAC Ticket 367 - pkidestroy does not remove connector - TRAC Ticket #430 - License for 3rd party code - Bugzilla Bug 839426 - [RFE] ECC CRL support for OCSP - Fix spec file to allow f17 to work with latest tomcatjss - TRAC Ticket 466 - Increase root CA validity to 20 years - TRAC Ticket 469 - Fix tomcatjss issue in spec files - TRAC Ticket 468 - pkispawn throws exception - TRAC Ticket 191 - Mapping HTTP Exceptions to HTTP error codes - TRAC Ticket 271 - Dogtag 10: Fix 'status' command in 'pkidaemon' . . . - TRAC Ticket 437 - Make admin cert p12 file location configurable - TRAC Ticket 393 - pkispawn fails when selinux is disabled - Punctuation and formatting changes in man pages - Revert to using default config file for pkidestroy - Hardcode setting of resteasy-lib for instance - TRAC Ticket 436 - Interpolation for pki_subsystem - TRAC Ticket 433 - Interpolation for paths - TRAC Ticket 435 - Identical instance id and instance name - TRAC Ticket 406 - Replace file dependencies with package dependencies- TRAC Ticket #430 - License for 3rd party code- TRAC Ticket #469 - Dogtag 10: Fix tomcatjss issue in pki-core.spec and dogtag-pki.spec . . . - TRAC Ticket #468 - pkispawn throws exception- Replaced file dependencies with package dependencies- Updated man pages- Update to official release for rc1- TRAC Ticket #315 - Man pages for pkispawn/pkidestroy. - Added place-holders for 'pki.1' and 'pki_default.cfg.5' man pages.- Added system-wide configuration /etc/pki/pki.conf. - Removed redundant lines in %files.- Moved default deployment configuration to /etc/pki.- Cleaned up spec file to provide only support rhel 7+, f17+ - Added resteasy-base dependency for rhel 7 - Update cmake version- Update release to b3- Removed dependency on CA, KRA, OCSP, TKS theme packages.- Renamed pki-common-theme to pki-server-theme.- TRAC Ticket #395 - Dogtag 10: Add a Tomcat 7 runtime requirement to 'pki-server'- Update release to b2- TRAC Ticket #350 - Dogtag 10: Remove version numbers from PKI jar files . . .- Added Obsoletes for pki-selinux- Remove build of pki-selinux for f18, use system policy instead- Update required tomcatjss version - Added net-tools dependency- Update selinux-policy version to fix error from latest policy changes- Fix typo in selinux policy versions- Added build requires for correct version of selinux-policy-devel- Update release to b1- Merged pki-silent into pki-server.- Renamed "shared" folder to "server".- Added required selinux versions for new policy.- Added Provides to packages replacing obsolete packages.- Update release to a2- Modified CMake to use RPM version number- Added VERSION file- Merged pki-setup into pki-server- Added Conflicts for IPA 2.X - Added build requires for zip to work around mock problem- TRAC Ticket #312 - Dogtag 10: Automatically restart any running instances upon RPM "update" . . . - TRAC Ticket #317 - Dogtag 10: Move "pkispawn"/"pkidestroy" from /usr/bin to /usr/sbin . . .- Fixed pki-server to include everything in shared dir.- Added build dependency on redhat-rpm-config.- Merged Javadoc packages.- Added pki-tomcat.jar.- Moved webapp creation code into pkispawn.- Split pki-client.jar into pki-certsrv.jar and pki-tools.jar.- Merged pki-native-tools and pki-java-tools into pki-tools. - Modified pki-server to depend on pki-tools.- Split pki-common into pki-base and pki-server. - Merged pki-util into pki-base. - Merged pki-deploy into pki-server.- Updated release of 'tomcatjss' to rely on Tomcat 7 for Fedora 17 - Changed Dogtag 10 build-time and runtime requirements for 'pki-deploy' - Altered PKI Package Dependency Chain (top-to-bottom): pki-ca, pki-kra, pki-ocsp, pki-tks --> pki-deploy --> pki-common- Added pki-client.jar.- Merged pki-jndi-realm.jar into pki-cmscore.jar.- PKI TRAC Task #254 - Dogtag 10: Fix spec file to build successfully via mock on Fedora 17 . . .- Moved 'pki-jndi-real.jar' link from 'tomcat6' to 'tomcat' (Tomcat 7)- Updated release of 'tomcatjss' to rely on Tomcat 7 for Fedora 18- Added CLI for REST services- Integration of Tomcat 7 - Addition of centralized 'pki-tomcatd' systemd functionality to the PKI Deployment strategy - Removal of 'pki_flavor' attribute- BZ 813075 - selinux denial for file size access- Bug 745278 - [RFE] ECC encryption keys cannot be archived- Replaced candlepin-deps with resteasy- Added option to build without Javadoc- BZ 802396 - Change location of TOMCAT_LOG to match tomcat6 changes - Corrected patch selected for selinux f17 rules- Corrected 'junit' dependency check- Initial attempt at PKI deployment framework described in 'http://pki.fedoraproject.org/wiki/PKI_Instance_Deployment'.- Added support for pki-jndi-realm in tomcat6 in pki-common and pki-kra. - Ticket #69.- For 'mock' purposes, removed platform-specific logic from around the 'patch' files so that ALL 'patch' files will be included in the SRPM.- Removed dependency on OSUtil.- 'pki-selinux' - Added platform-dependent patches for SELinux component - Bugzilla Bug #739708 - Selinux fix for ephemeral ports (F16) - Bugzilla Bug #795966 - pki-selinux policy is kind of a mess (F17)- Added dependency on Apache Commons Codec.- Add '-DSYSTEMD_LIB_INSTALL_DIR' override flag to 'cmake' to address changes in fundamental path structure in Fedora 17 - 'pki-setup' - Hard-code Perl dependencies to protect against bugs such as Bugzilla Bug #772699 - Adapt perl and python fileattrs to changed file 5.10 magics - 'pki-selinux' - Bugzilla Bug #795966 - pki-selinux policy is kind of a mess- Integrated 'pki-kra' into 'pki-core' - Integrated 'pki-ocsp' into 'pki-core' - Integrated 'pki-tks' into 'pki-core' - Bugzilla Bug #788787 - added 'junit'/'junit4' build-time requirements- Updated package version number- Added resteasy-jettison-provider-2.3-RC1.jar to pki-setup- Added JUnit tests- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - Bugzilla Bug #737122 - DRM: during archiving and recovering, wrapping unwrapping keys should be done in the token (cfu) - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #744797 - KRA key recovery (retrieve pkcs#12) fails after the in-place upgrade( CS 8.0->8.1) (cfu) - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #746367 - Typo in the profile name. (jmagne) - Bugzilla Bug #737122 - DRM: during archiving and recovering, wrapping unwrapping keys should be done in the token (cfu) - Bugzilla Bug #749927 - Java class conflicts using Java 7 in Fedora 17 (rawhide) . . . (mharmsen) - Bugzilla Bug #749945 - Installation error reported during CA, DRM, OCSP, and TKS package installation . . . (mharmsen) - 'pki-silent'- Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . (mharmsen) - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-setup' - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - Bugzilla Bug #737192 - Need script to upgrade proxy configuration (alee) - 'pki-symkey' - Bugzilla Bug #730162 - TPS/TKS token enrollment failure in FIPS mode (hsm+NSS). (jmagne) - 'pki-native-tools' - Bugzilla Bug #730801 - Coverity issues in native-tools area (awnuk) - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - 'pki-util' - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - Bugzilla Bug #737218 - Incorrect request attribute name matching ignores request attributes during request parsing. (awnuk) - Bugzilla Bug #730162 - TPS/TKS token enrollment failure in FIPS mode (hsm+NSS). (jmagne) - 'pki-selinux' - Bugzilla Bug #739708 - pki-selinux lacks rules in F16 (alee) - 'pki-ca' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - 'pki-silent' - Bugzilla Bug #739201 - pkisilent does not take arch into account as Java packages migrated to arch-dependent directories (mharmsen)- 'pki-setup' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-symkey' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-native-tools' - 'pki-util' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-java-tools' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-common' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-silent' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . .- 'pki-setup' - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-ca' - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-common' - Bugzilla Bug #699809 - Convert CS to use systemd (alee)- 'pki-setup' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-symkey' - 'pki-native-tools' - Bugzilla Bug #717643 - Fopen without NULL check and other Coverity issues (awnuk) - Bugzilla Bug #730801 - Coverity issues in native-tools area (awnuk) - 'pki-util' - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #700522 - pki tomcat6 instances currently running unconfined, allow server to come up when selinux disabled (alee) - Bugzilla Bug #731741 - some CS.cfg nickname parameters not updated correctly when subsystem cloned (using hsm) (alee) - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-selinux' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-ca' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-silent'- 'pki-setup' - Bugzilla Bug #689909 - Dogtag installation under IPA takes too much time - remove the inefficient sleeps (alee) - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #724861 - DRMTool: fix duplicate "dn:" records by renumbering "cn=" (mharmsen) - 'pki-common' - Bugzilla Bug #717041 - Improve escaping of some enrollment inputs like (jmagne, awnuk) - Bugzilla Bug #689909 - Dogtag installation under IPA takes too much time - remove the inefficient sleeps (alee) - Bugzilla Bug #708075 - Clone installation does not work over NAT (alee) - Bugzilla Bug #726785 - If replication fails while setting up a clone it will wait forever (alee) - Bugzilla Bug #728332 - xml output has changed on cert requests (awnuk) - Bugzilla Bug #700505 - pki tomcat6 instances currently running unconfined (alee) - 'pki-selinux' - Bugzilla Bug #700505 - pki tomcat6 instances currently running unconfined (alee) - 'pki-ca' - Bugzilla Bug #728605 - RFE: increase default validity from 6mo to 2yrs in IPA profile (awnuk) - 'pki-silent' - Bugzilla Bug #689909 - Dogtag installation under IPA takes too much time - remove the inefficient sleeps (alee)- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - Bugzilla Bug #719007 - Key Constraint keyParameter being ignored using an ECC CA to generate ECC certs from CRMF. (jmagne) - Bugzilla Bug #716307 - rhcs80 - DER shall not include an encoding for any component value which is equal to its default value (alee) - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #720510 - Console: Adding a certificate into nethsm throws Token not found error. (jmagne) - Bugzilla Bug #719007 - Key Constraint keyParameter being ignored using an ECC CA to generate ECC certs from CRMF. (jmagne) - Bugzilla Bug #716307 - rhcs80 - DER shall not include an encoding for any component value which is equal to its default value (alee) - Bugzilla Bug #722989 - Registering an agent when a subsystem is created - does not log AUTHZ_SUCCESS event. (alee) - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #719113 - Add client usage flag to caIPAserviceCert (awnuk) - 'pki-silent'- Updated release of 'jss' - Updated release of 'tomcatjss' for Fedora 15 - 'pki-setup' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser (jdennis) - Bugzilla Bug #694569 - parameter used by pkiremove not updated (alee) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-symkey' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-native-tools' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #717765 - TPS configuration: logging into security domain from tps does not work with clientauth=want. (alee) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-util' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-java-tools' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #532548 - Tool to do DRM re-key (mharmsen) - Bugzilla Bug #532548 - Tool to do DRM re-key (config file and record processing) (mharmsen) - Bugzilla Bug #532548 - Tool to do DRM re-key (tweaks) (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-common' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #695403 - Editing signedaudit or transaction, system logs throws 'Invalid protocol' for OCSP subsystems (alee) - Bugzilla Bug #694569 - parameter used by pkiremove not updated (alee) - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages (alee) - Bugzilla Bug #694143 - CA Agent not returning specified request (awnuk) - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages (jmagne) - Bugzilla Bug #698885 - Race conditions during IPA installation (alee) - Bugzilla Bug #704792 - CC_LAB_EVAL: CA agent interface: SubjectID=$Unidentified$ fails audit evaluation (jmagne) - Bugzilla Bug #705914 - SCEP mishandles nicknames when processing subsequent SCEP requests. (awnuk) - Bugzilla Bug #661142 - Verification should fail when a revoked certificate is added. (jmagne) - Bugzilla Bug #707416 - CC_LAB_EVAL: Security Domain: missing audit msgs for modify/add (alee) - Bugzilla Bug #707416 - additional audit messages for GetCookie (alee) - Bugzilla Bug #707607 - Published certificate summary has list of non-published certificates with succeeded status (jmagne) - Bugzilla Bug #717813 - EV_AUDIT_LOG_SHUTDOWN audit log not generated for tps and ca on server shutdown (jmagne) - Bugzilla Bug #697939 - DRM signed audit log message - operation should be read instead of modify (jmagne) - Bugzilla Bug #718427 - When audit log is full, server continue to function. (alee) - Bugzilla Bug #718607 - CC_LAB_EVAL: No AUTH message is generated in CA's signedaudit log when a directory based user enrollment is performed (jmagne) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-selinux' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #720503 - RA and TPS require additional SELinux permissions to run in "Enforcing" mode (alee) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-ca' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser (jdennis) - Bugzilla Bug #699837 - service command is not fully backwards compatible with Dogtag pki subsystems (mharmsen) - Bugzilla Bug #649910 - Console: an auditor or agent can be added to an administrator group. (jmagne) - Bugzilla Bug #707416 - CC_LAB_EVAL: Security Domain: missing audit msgs for modify/add (alee) - Bugzilla Bug #716269 - make ra authenticated profiles non-visible on ee pages (alee) - Bugzilla Bug #718621 - CC_LAB_EVAL: PRIVATE_KEY_ARCHIVE_REQUEST occurs for a revocation invoked by EE user (awnuk) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-silent' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen)- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Added 'DRMTool.cfg' configuration file to inventory - 'pki-common' - 'pki-selinux' - 'pki-ca' - 'pki-silent'- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #532548 - Tool to do DRM re-key - 'pki-common' - 'pki-selinux' - 'pki-ca' - 'pki-silent'- 'pki-setup' - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser - Bugzilla Bug #694569 - parameter used by pkiremove not updated - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #695403 - Editing signedaudit or transaction, system logs throws 'Invalid protocol' for OCSP subsystems - Bugzilla Bug #694569 - parameter used by pkiremove not updated - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages - Bugzilla Bug #694143 - CA Agent not returning specified request - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages - Bugzilla Bug #698885 - Race conditions during IPA installation - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser - Bugzilla Bug #699837 - service command is not fully backwards compatible with Dogtag pki subsystems - 'pki-silent'- Bugzilla Bug #695157 - Auditverify on TPS audit log throws error.- Bugzilla Bug #690950 - Update Dogtag Packages for Fedora 15 (beta) - Bugzilla Bug #693327 - Missing requires: tomcatjss - 'pki-setup' - Bugzilla Bug #690626 - pkiremove removes the registry entry for all instances on a machine - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #689453 - CRMFPopClient request to CA's unsecure port throws file not found exception. - 'pki-common' - Bugzilla Bug #692990 - Audit log messages needed to match CC doc: DRM Recovery audit log messages - 'pki-selinux' - 'pki-ca' - 'pki-silent'- Bugzilla Bug #693327 - Missing requires: tomcatjss- Bugzilla Bug #690950 - Update Dogtag Packages for Fedora 15 (beta) - Require "jss >= 4.2.6-15" as a build and runtime requirement - Require "tomcatjss >= 2.1.1" as a build and runtime requirement for Fedora 15 and later platforms - 'pki-setup' - Bugzilla Bug #688287 - Add "deprecation" notice regarding using "shared ports" in pkicreate -help . . . - Bugzilla Bug #688251 - Dogtag installation under IPA takes too much time - SELinux policy compilation - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #689501 - ExtJoiner tool fails to join the multiple extensions - 'pki-common' - Bugzilla Bug #683581 - CA configuration with ECC(Default EC curve-nistp521) CA fails with 'signing operation failed' - Bugzilla Bug #689662 - ocsp publishing needs to be re-enabled on the EE port - 'pki-selinux' - Bugzilla Bug #684871 - ldaps selinux link change - 'pki-ca' - Bugzilla Bug #683581 - CA configuration with ECC(Default EC curve-nistp521) CA fails with 'signing operation failed' - Bugzilla Bug #684381 - CS.cfg specifies incorrect type of comments - Bugzilla Bug #689453 - CRMFPopClient request to CA's unsecure port throws file not found exception.(profile and CS.cfg only) - 'pki-silent'- Bugzilla Bug #688763 - Rebase updated Dogtag Packages for Fedora 15 (alpha) - Bugzilla Bug #676182 - IPA installation failing - Fails to create CA instance - Bugzilla Bug #675742 - Profile caIPAserviceCert Not Found - 'pki-setup' - Bugzilla Bug #678157 - uninitialized variable warnings from Perl - Bugzilla Bug #679574 - Velocity fails to load all dependent classes - Bugzilla Bug #680420 - xml-commons-apis.jar dependency - Bugzilla Bug #682013 - pkisilent needs xml-commons-apis.jar in it's classpath - Bugzilla Bug #673508 - CS8 64 bit pkicreate script uses wrong library name for SafeNet LunaSA - 'pki-common' - Bugzilla Bug #673638 - Installation within IPA hangs - Bugzilla Bug #678715 - netstat loop fixes needed - Bugzilla Bug #673609 - CC: authorize() call needs to be added to getStats servlet - 'pki-selinux' - Bugzilla Bug #674195: SELinux error message thrown during token enrollment - 'pki-ca' - Bugzilla Bug #673638 - Installation within IPA hangs - Bugzilla Bug #673609 - CC: authorize() call needs to be added to getStats servlet - Bugzilla Bug #676330 - init script cannot start service - 'pki-silent' - Bugzilla Bug #682013 - pkisilent needs xml-commons-apis.jar in it's classpath- 'pki-common' - Bugzilla Bug #676051 - IPA installation failing - Fails to create CA instance - Bugzilla Bug #676182 - IPA installation failing - Fails to create CA instance- 'pki-common' - Bugzilla Bug #674894 - ipactl restart : an annoy output line - Bugzilla Bug #675179 - ipactl restart : an annoy output line- Bugzilla Bug #673233 - Rebase pki-core to pick the latest features and fixes - 'pki-setup' - Bugzilla Bug #673638 - Installation within IPA hangs - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #673614 - CC: Review of cryptographic algorithms provided by 'netscape.security.provider' package - 'pki-common' - Bugzilla Bug #672291 - CA is not publishing certificates issued using "Manual User Dual-Use Certificate Enrollment" - Bugzilla Bug #670337 - CA Clone configuration throws TCP connection error. - Bugzilla Bug #504056 - Completed SCEP requests are assigned to the "begin" state instead of "complete". - Bugzilla Bug #504055 - SCEP requests are not properly populated - Bugzilla Bug #564207 - Searches for completed requests in the agent interface returns zero entries - Bugzilla Bug #672291 - CA is not publishing certificates issued using "Manual User Dual-Use Certificate Enrollment" - - Bugzilla Bug #673614 - CC: Review of cryptographic algorithms provided by 'netscape.security.provider' package - Bugzilla Bug #672920 - CA console: adding policy to a profile throws 'Duplicate policy' error in some cases. - Bugzilla Bug #673199 - init script returns control before web apps have started - Bugzilla Bug #674917 - Restore identification of Tomcat-based PKI subsystem instances - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #504013 - sscep request is rejected due to authentication error if submitted through one time pin router certificate enrollment. - Bugzilla Bug #672111 - CC doc: certServer.usrgrp.administration missing information - Bugzilla Bug #583825 - CC: Obsolete servlets to be removed from web.xml as part of CC interface review - Bugzilla Bug #672333 - Creation of RA agent fails in IPA installation - Bugzilla Bug #674917 - Restore identification of Tomcat-based PKI subsystem instances - 'pki-silent' - Bugzilla Bug #673614 - CC: Review of cryptographic algorithms provided by 'netscape.security.provider' package- Bugzilla Bug #656661 - Please Update Spec File to use 'ghost' on files in /var/run and /var/lock- 'pki-symkey' - Bugzilla Bug #671265 - pki-symkey jar version incorrect - 'pki-common' - Bugzilla Bug #564207 - Searches for completed requests in the agent interface returns zero entries- Allow 'pki-native-tools' to be installed independently of 'pki-setup' - Removed explicit 'pki-setup' requirement from 'pki-ca' (since it already requires 'pki-common') - 'pki-setup' - Bugzilla Bug #223343 - pkicreate: should add 'pkiuser' to nfast group - Bugzilla Bug #629377 - Selinux errors during pkicreate CA, KRA, OCSP and TKS. - Bugzilla Bug #555927 - rhcs80 - AgentRequestFilter servlet and port fowarding for agent services - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #606946 - Convert Native Tools to use ldapAPI from OpenLDAP instead of the Mozldap - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #658926 - org.apache.commons.lang class not found on F13 - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #665388 - jakarta-* jars have been renamed to apache-*, pkicreate fails Fedora 14 and above - Bugzilla Bug #23346 - Two conflicting ACL list definitions in source repository - Bugzilla Bug #656733 - Standardize jar install location and jar names - 'pki-symkey' - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #644056 - CS build contains warnings - 'pki-native-tools' - template change - Bugzilla Bug #606946 - Convert Native Tools to use ldapAPI from OpenLDAP instead of the Mozldap - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #644056 - CS build contains warnings - 'pki-util' - Bugzilla Bug #615814 - rhcs80 - profile policyConstraintsCritical cannot be set to true - Bugzilla Bug #224945 - javadocs has missing descriptions, contains empty packages - Bugzilla Bug #621337 - Limit the received senderNonce value to 16 bytes. - Bugzilla Bug #621338 - Include a server randomly-generated 16 byte senderNonce in all signed SCEP responses. - Bugzilla Bug #621327 - Provide switch disabling algorithm downgrade attack in SCEP - Bugzilla Bug #621334 - Provide an option to set default hash algorithm for signing SCEP response messages. - Bugzilla Bug #635033 - At installation wizard selecting key types other than CA's signing cert will fail - Bugzilla Bug #645874 - rfe ecc - add ecc curve name support in JSS and CS interface - Bugzilla Bug #488253 - com.netscape.cmsutil.ocsp.BasicOCSPResponse ASN.1 encoding/decoding is broken - Bugzilla Bug #551410 - com.netscape.cmsutil.ocsp.TBSRequest ASN.1 encoding/decoding is incomplete - Bugzilla Bug #550331 - com.netscape.cmsutil.ocsp.ResponseData ASN.1 encoding/decoding is incomplete - Bugzilla Bug #623452 - rhcs80 pkiconsole profile policy editor limit policy extension to 5 only - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #658188 - remove remaining references to tomcat5 - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #223319 - Certificate Status inconsistency between token db and CA - Bugzilla Bug #531137 - RHCS 7.1 - Running out of Java Heap Memory During CRL Generation - 'pki-java-tools' - Bugzilla Bug #224945 - javadocs has missing descriptions, contains empty packages - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #659004 - CC: AuditVerify hardcoded with SHA-1 - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #662156 - HttpClient is hard-coded to handle only up to 5000 bytes - Bugzilla Bug #656733 - Standardize jar install location and jar names - 'pki-common' - Bugzilla Bug #583822 - CC: ACL issues from CA interface CC doc review - Bugzilla Bug #623745 - SessionTimer with LDAPSecurityDomainSessionTable started before configuration completed - Bugzilla Bug #620925 - CC: auditor needs to be able to download audit logs in the java subsystems - Bugzilla Bug #615827 - rhcs80 - profile policies need more than 5 policy mappings (seem hardcoded) - Bugzilla Bug #224945 - javadocs has missing descriptions, contains empty packages - Bugzilla Bug #548699 - subCA's admin certificate should be generated by itself - Bugzilla Bug #621322 - Provide switch disabling SCEP support in CA - Bugzilla Bug #563386 - rhcs80 ca crash on invalid inputs to profile caAgentServerCert (null cert_request) - Bugzilla Bug #621339 - SCEP one-time PIN can be used an unlimited number of times - Bugzilla Bug #583825 - CC: Obsolete servlets to be removed from web.xml as part of CC interface review - Bugzilla Bug #629677 - TPS: token enrollment fails. - Bugzilla Bug #621350 - Unauthenticated user can decrypt a one-time PIN in a SCEP request - Bugzilla Bug #503838 - rhcs71-80 external publishing ldap connection pools not reliable - improve connections or discovery - Bugzilla Bug #629769 - password decryption logs plain text password - Bugzilla Bug #583823 - CC: Auditing issues found as result of CC - interface review - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #586700 - OCSP Server throws fatal error while using OCSP console for renewing SSL Server certificate. - Bugzilla Bug #621337 - Limit the received senderNonce value to 16 bytes. - Bugzilla Bug #621338 - Include a server randomly-generated 16 byte senderNonce in all signed SCEP responses. - Bugzilla Bug #607380 - CC: Make sure Java Console can configure all security relevant config items - Bugzilla Bug #558100 - host challenge of the Secure Channel needs to be generated on TKS instead of TPS. - Bugzilla Bug #489342 - com.netscape.cms.servlet.common.CMCOutputTemplate.java doesn't support EC - Bugzilla Bug #630121 - OCSP responder lacking option to delete or disable a CA that it serves - Bugzilla Bug #634663 - CA CMC response default hard-coded to SHA1 - Bugzilla Bug #621327 - Provide switch disabling algorithm downgrade attack in SCEP - Bugzilla Bug #621334 - Provide an option to set default hash algorithm for signing SCEP response messages. - Bugzilla Bug #635033 - At installation wizard selecting key types other than CA's signing cert will fail - Bugzilla Bug #621341 - Add CA support for new SCEP key pair dedicated for SCEP signing and encryption. - Bugzilla Bug #223336 - ECC: unable to clone a ECC CA - Bugzilla Bug #539781 - rhcs 71 - CRLs Partitioned by Reason Code - onlySomeReasons ? - Bugzilla Bug #637330 - CC feature: Key Management - provide signature verification functions (JAVA subsystems) - Bugzilla Bug #223313 - should do random generated IV param for symmetric keys - Bugzilla Bug #555927 - rhcs80 - AgentRequestFilter servlet and port fowarding for agent services - Bugzilla Bug #630176 - Improve reliability of the LdapAnonConnFactory - Bugzilla Bug #524916 - ECC key constraints plug-ins should be based on ECC curve names (not on key sizes). - Bugzilla Bug #516632 - RHCS 7.1 - CS Incorrectly Issuing Multiple Certificates from the Same Request - Bugzilla Bug #648757 - expose and use updated cert verification function in JSS - Bugzilla Bug #638242 - Installation Wizard: at SizePanel, fix selection of signature algorithm; and for ECC curves - Bugzilla Bug #451874 - RFE - Java console - Certificate Wizard missing e.c. support - Bugzilla Bug #651040 - cloning shoud not include sslserver - Bugzilla Bug #542863 - RHCS8: Default cert audit nickname written to CS.cfg files imcomplete when the cert is stored on a hsm - Bugzilla Bug #360721 - New Feature: Profile Integrity Check . . . - Bugzilla Bug #651916 - kra and ocsp are using incorrect ports to talk to CA and complete configuration in DonePanel - Bugzilla Bug #642359 - CC Feature - need to verify certificate when it is added - Bugzilla Bug #653713 - CC: setting trust on a CIMC cert requires auditing - Bugzilla Bug #489385 - references to rhpki - Bugzilla Bug #499494 - change CA defaults to SHA2 - Bugzilla Bug #623452 - rhcs80 pkiconsole profile policy editor limit policy extension to 5 only - Bugzilla Bug #649910 - Console: an auditor or agent can be added to an administrator group. - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #653576 - tomcat5 does not always run filters on servlets as expected - Bugzilla Bug #642357 - CC Feature- Self-Test plugins only check for validity - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #659004 - CC: AuditVerify hardcoded with SHA-1 - Bugzilla Bug #661196 - ECC(with nethsm) subca configuration fails with Key Type RSA Not Matched despite using ECC key pairs for rootCA & subCA. - Bugzilla Bug #661889 - The Servlet TPSRevokeCert of the CA returns an error to TPS even if certificate in question is already revoked. - Bugzilla Bug #663546 - Disable the functionalities that are not exposed in the console - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #658188 - remove remaining references to tomcat5 - Bugzilla Bug #649343 - Publishing queue should recover from CA crash. - Bugzilla Bug #491183 - rhcs rfe - add rfc 4523 support for pkiUser and pkiCA, obsolete 2252 and 2256 - Bugzilla Bug #640710 - Current SCEP implementation does not support HSMs - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #661142 - Verification should fail when a revoked certificate is added - Bugzilla Bug #642741 - CS build uses deprecated functions - Bugzilla Bug #670337 - CA Clone configuration throws TCP connection error - Bugzilla Bug #662127 - CC doc Error: SignedAuditLog expiration time interface is no longer available through console - 'pki-selinux' - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #667153 - store nuxwdog passwords in kernel ring buffer - selinux changes - 'pki-ca' - Bugzilla Bug #583822 - CC: ACL issues from CA interface CC doc review - Bugzilla Bug #620925 - CC: auditor needs to be able to download audit logs in the java subsystems - Bugzilla Bug #621322 - Provide switch disabling SCEP support in CA - Bugzilla Bug #583824 - CC: Duplicate servlet mappings found as part of CC interface doc review - Bugzilla Bug #621602 - pkiconsole: Click on 'Publishing' option with admin privilege throws error "You are not authorized to perform this operation". - Bugzilla Bug #583825 - CC: Obsolete servlets to be removed from web.xml as part of CC interface review - Bugzilla Bug #583823 - CC: Auditing issues found as result of CC - interface review - Bugzilla Bug #519291 - Deleting a CRL Issuing Point after edits throws 'Internal Server Error'. - Bugzilla Bug #586700 - OCSP Server throws fatal error while using OCSP console for renewing SSL Server certificate. - Bugzilla Bug #621337 - Limit the received senderNonce value to 16 bytes. - Bugzilla Bug #621338 - Include a server randomly-generated 16 byte senderNonce in all signed SCEP responses. - Bugzilla Bug #558100 - host challenge of the Secure Channel needs to be generated on TKS instead of TPS. - Bugzilla Bug #630121 - OCSP responder lacking option to delete or disable a CA that it serves - Bugzilla Bug #634663 - CA CMC response default hard-coded to SHA1 - Bugzilla Bug #621327 - Provide switch disabling algorithm downgrade attack in SCEP - Bugzilla Bug #621334 - Provide an option to set default hash algorithm for signing SCEP response messages. - Bugzilla Bug #539781 - rhcs 71 - CRLs Partitioned by Reason Code - onlySomeReasons ? - Bugzilla Bug #637330 - CC feature: Key Management - provide signature verification functions (JAVA subsystems) - Bugzilla Bug #555927 - rhcs80 - AgentRequestFilter servlet and port fowarding for agent services - Bugzilla Bug #524916 - ECC key constraints plug-ins should be based on ECC curve names (not on key sizes). - Bugzilla Bug #516632 - RHCS 7.1 - CS Incorrectly Issuing Multiple Certificates from the Same Request - Bugzilla Bug #638242 - Installation Wizard: at SizePanel, fix selection of signature algorithm; and for ECC curves - Bugzilla Bug #529945 - (Instructions and sample only) CS 8.0 GA release -- DRM and TKS do not seem to have CRL checking enabled - Bugzilla Bug #609641 - CC: need procedure (and possibly tools) to help correctly set up CC environment - Bugzilla Bug #509481 - RFE: support sMIMECapabilities extensions in certificates (RFC 4262) - Bugzilla Bug #651916 - kra and ocsp are using incorrect ports to talk to CA and complete configuration in DonePanel - Bugzilla Bug #511990 - rhcs 7.3, 8.0 - re-activate missing object signing support in RHCS - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #489385 - references to rhpki - Bugzilla Bug #499494 - change CA defaults to SHA2 - Bugzilla Bug #623452 - rhcs80 pkiconsole profile policy editor limit policy extension to 5 only - Bugzilla Bug #649910 - Console: an auditor or agent can be added to an administrator group. - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #653576 - tomcat5 does not always run filters on servlets as expected - Bugzilla Bug #642357 - CC Feature- Self-Test plugins only check for validity - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #661128 - incorrect CA ports used for revoke, unrevoke certs in TPS - Bugzilla Bug #512496 - RFE rhcs80 - crl updates and scheduling feature - Bugzilla Bug #661196 - ECC(with nethsm) subca configuration fails with Key Type RSA Not Matched despite using ECC key pairs for rootCA & subCA. - Bugzilla Bug #649343 - Publishing queue should recover from CA crash. - Bugzilla Bug #491183 - rhcs rfe - add rfc 4523 support for pkiUser and pkiCA, obsolete 2252 and 2256 - Bugzilla Bug #223346 - Two conflicting ACL list definitions in source repository - Bugzilla Bug #640710 - Current SCEP implementation does not support HSMs - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #661142 - Verification should fail when a revoked certificate is added - Bugzilla Bug #668100 - DRM storage cert has OCSP signing extended key usage - Bugzilla Bug #662127 - CC doc Error: SignedAuditLog expiration time interface is no longer available through console - Bugzilla Bug #531137 - RHCS 7.1 - Running out of Java Heap Memory During CRL Generation - 'pki-silent' - Bugzilla Bug #627309 - pkisilent subca configuration fails. - Bugzilla Bug #640091 - pkisilent panels need to match with changed java subsystems - Bugzilla Bug #527322 - pkisilent ConfigureDRM should configure DRM Clone. - Bugzilla Bug #643053 - pkisilent DRM configuration fails - Bugzilla Bug #583754 - pki-silent needs an option to configure signing algorithm for CA certificates - Bugzilla Bug #489385 - references to rhpki - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #640042 - TPS Installlation Wizard: need to move Module Panel up to before Security Domain Panel - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #588323 - Failed to enable cipher 0xc001 - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #645895 - pkisilent: add ability to select ECC curves, signing algorithm - Bugzilla Bug #658641 - pkisilent doesn't not properly handle passwords with special characters - Bugzilla Bug #642741 - CS build uses deprecated functions- Bugzilla Bug #668839 - Review Request: pki-core - Removed empty "pre" from "pki-ca" - Consolidated directory ownership - Corrected file ownership within subpackages - Removed all versioning from NSS and NSPR packages- Bugzilla Bug #668839 - Review Request: pki-core - Added component versioning comments - Updated JSS from "4.2.6-10" to "4.2.6-12" - Modified installation section to preserve timestamps - Removed sectional comments- Initial revision. (kwright@redhat.com & mharmsen@redhat.com)pki-util-javadocpki-java-tools-javadocpki-common-javadoc  !"#$%&'()*+,-./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[\]^_`abcdefghijklmnopqrstuvwxyz{|}~10.5.9-6.el710.5.9-6.el710.5.9-6.el710.5.9-6.el710.5.9-6.el710.5.9-6.el710.5.9-6.el7     !!!!!!! """"""""""""""""###$$####%%%%%%%&&&&&&%%%%''('''')))**))))++,++++----...----////////0000000////1111111222222111133333333333333333344444444444444444333355555555556666666665555777777777788888888877779999:::9999;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>====;;;;????????@@@@@@@????AAAAAABBBBBAAAACCCCDDDCCCCEEEFFEEEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGGGGIIIIIIJJJJJIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKMMMNNMMMMOOOOPPPOOOOQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRQSSTSSSSQQQQUUUUUUUUUVVVVVVVVUUUUWWWWWWWWWWWWWWXXXXXXXXXXXXXWWWWYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZYYYY[[[[[\\\\[[[[]]]^^]]]]__````````aaaaaaa````_bbbbbccccbbbb_d_eeeeeeeffffffeeee_gggggggghhhhhhhgggg_____iiiiiiiiiiiiiiijjjjjjjjjjjjjjiiii_kkkkkkkklllllllkkkkmmmmmmmmmmmmnnnnnnnnnnnmmmmoooooooooooppppppppppooooqqqqqqqqrrrrrrrqqqqsttttttttttttttttttuuuuuuuuuuuuuuuuuttttsvvvvvvwwwwwvvvvsxxxxxxxxxxxxyyyyyyyyyyyxxxxszzzzz{{{{zzzzs||||||}}}}}||||s~~~~~~~~~sssssssssss                                                                                                                                           ! ""#""""     $$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%$$$$&&'''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((''''&)&****+++****&,,,,,,,,,,,,,,,,,,,,,--------------------,,,,&&&&pki-10.5.9allclasses-frame.htmlallclasses-noframe.htmlcomnetscapecertsrvaccountAccountClient.htmlAccountInfo.RoleList.htmlAccountInfo.RolesAdapter.htmlAccountInfo.htmlAccountResource.htmlclass-useAccountClient.htmlAccountInfo.RoleList.htmlAccountInfo.RolesAdapter.htmlAccountInfo.htmlAccountResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlaclsACL.htmlACLEntry.Type.htmlACLEntry.htmlACLMapping.htmlEACLsException.htmlIACL.htmlIACLEntry.htmlclass-useACL.htmlACLEntry.Type.htmlACLEntry.htmlACLMapping.htmlEACLsException.htmlIACL.htmlIACLEntry.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlappsCMS.htmlICMSEngine.htmlICommandQueue.htmlclass-useCMS.htmlICMSEngine.htmlICommandQueue.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthenticationAuthCredentials.htmlAuthManagerProxy.htmlAuthMethodMapping.htmlAuthMgrPlugin.htmlAuthToken.htmlEAuthException.htmlEAuthInternalError.htmlEAuthMgrNotFound.htmlEAuthMgrPluginNotFound.htmlEAuthUserError.htmlECompSyntaxErr.htmlEFormSubjectDN.htmlEInvalidCredentials.htmlEMissingCredential.htmlExternalAuthToken.htmlIAuthCredentials.htmlIAuthManager.htmlIAuthSubsystem.htmlIAuthToken.htmlICertUserDBAuthentication.htmlIPasswdUserDBAuthentication.htmlISSLClientCertProvider.htmlISharedToken.htmlclass-useAuthCredentials.htmlAuthManagerProxy.htmlAuthMethodMapping.htmlAuthMgrPlugin.htmlAuthToken.htmlEAuthException.htmlEAuthInternalError.htmlEAuthMgrNotFound.htmlEAuthMgrPluginNotFound.htmlEAuthUserError.htmlECompSyntaxErr.htmlEFormSubjectDN.htmlEInvalidCredentials.htmlEMissingCredential.htmlExternalAuthToken.htmlIAuthCredentials.htmlIAuthManager.htmlIAuthSubsystem.htmlIAuthToken.htmlICertUserDBAuthentication.htmlIPasswdUserDBAuthentication.htmlISSLClientCertProvider.htmlISharedToken.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthorityAuthorityClient.htmlAuthorityData.htmlAuthorityResource.htmlIAuthority.htmlICertAuthority.htmlclass-useAuthorityClient.htmlAuthorityData.htmlAuthorityResource.htmlIAuthority.htmlICertAuthority.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthorizationAuthzManagerProxy.htmlAuthzMgrPlugin.htmlAuthzToken.htmlEAuthzAccessDenied.htmlEAuthzException.htmlEAuthzInternalError.htmlEAuthzMgrNotFound.htmlEAuthzMgrPluginNotFound.htmlEAuthzUnknownOperation.htmlEAuthzUnknownProtectedRes.htmlEAuthzUnknownRealm.htmlIAuthzManager.htmlIAuthzSubsystem.htmlclass-useAuthzManagerProxy.htmlAuthzMgrPlugin.htmlAuthzToken.htmlEAuthzAccessDenied.htmlEAuthzException.htmlEAuthzInternalError.htmlEAuthzMgrNotFound.htmlEAuthzMgrPluginNotFound.htmlEAuthzUnknownOperation.htmlEAuthzUnknownProtectedRes.htmlEAuthzUnknownRealm.htmlIAuthzManager.htmlIAuthzSubsystem.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlbaseASubsystem.htmlAttributeNameHelper.htmlBadRequestDataException.htmlBadRequestException.htmlBaseResources.htmlConflictingOperationException.htmlDataCollection.htmlEBaseException.htmlEPropertyNotDefined.htmlEPropertyNotFound.htmlExtendedPluginInfo.htmlForbiddenException.htmlHTTPGoneException.htmlIArgBlock.htmlIAttrSet.htmlIAuthInfo.htmlICRLPrettyPrint.htmlICertPrettyPrint.htmlIConfigStore.htmlIConfigStoreEventListener.htmlIExtPrettyPrint.htmlIExtendedPluginInfo.htmlIPluginImpl.htmlIPrettyPrintFormat.htmlISecurityDomainSessionTable.htmlISourceConfigStore.htmlISubsystem.htmlISubsystemSource.htmlITimeSource.htmlKeyGenInfo.htmlLink.htmlMessageFormatter.htmlMetaAttributeDef.htmlMetaInfo.htmlNonces.htmlPATCH.htmlPKIException.Data.htmlPKIException.htmlPasswordResources.htmlPlugin.htmlResourceMessage.Attribute.htmlResourceMessage.AttributeList.htmlResourceMessage.MapAdapter.htmlResourceMessage.htmlResourceNotFoundException.htmlServiceUnavailableException.htmlSessionContext.htmlUnauthorizedException.htmlUserNotFoundException.htmlclass-useASubsystem.htmlAttributeNameHelper.htmlBadRequestDataException.htmlBadRequestException.htmlBaseResources.htmlConflictingOperationException.htmlDataCollection.htmlEBaseException.htmlEPropertyNotDefined.htmlEPropertyNotFound.htmlExtendedPluginInfo.htmlForbiddenException.htmlHTTPGoneException.htmlIArgBlock.htmlIAttrSet.htmlIAuthInfo.htmlICRLPrettyPrint.htmlICertPrettyPrint.htmlIConfigStore.htmlIConfigStoreEventListener.htmlIExtPrettyPrint.htmlIExtendedPluginInfo.htmlIPluginImpl.htmlIPrettyPrintFormat.htmlISecurityDomainSessionTable.htmlISourceConfigStore.htmlISubsystem.htmlISubsystemSource.htmlITimeSource.htmlKeyGenInfo.htmlLink.htmlMessageFormatter.htmlMetaAttributeDef.htmlMetaInfo.htmlNonces.htmlPATCH.htmlPKIException.Data.htmlPKIException.htmlPasswordResources.htmlPlugin.htmlResourceMessage.Attribute.htmlResourceMessage.AttributeList.htmlResourceMessage.MapAdapter.htmlResourceMessage.htmlResourceNotFoundException.htmlServiceUnavailableException.htmlSessionContext.htmlUnauthorizedException.htmlUserNotFoundException.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcaAuthorityID.htmlCACertClient.htmlCAClient.htmlCADisabledException.htmlCAEnabledException.htmlCAMissingCertException.htmlCAMissingKeyException.htmlCANotFoundException.htmlCANotLeafException.htmlCAResources.htmlCATypeException.htmlECAException.htmlEErrorPublishCRL.htmlICAService.htmlICMSCRLExtension.htmlICMSCRLExtensions.htmlICRLIssuingPoint.htmlICertificateAuthority.htmlIssuerUnavailableException.htmlclass-useAuthorityID.htmlCACertClient.htmlCAClient.htmlCADisabledException.htmlCAEnabledException.htmlCAMissingCertException.htmlCAMissingKeyException.htmlCANotFoundException.htmlCANotLeafException.htmlCAResources.htmlCATypeException.htmlECAException.htmlEErrorPublishCRL.htmlICAService.htmlICMSCRLExtension.htmlICMSCRLExtensions.htmlICRLIssuingPoint.htmlICertificateAuthority.htmlIssuerUnavailableException.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertCertData.htmlCertDataInfo.htmlCertDataInfos.htmlCertEnrollmentRequest.htmlCertNotFoundException.htmlCertRequestInfo.htmlCertRequestInfos.htmlCertRequestResource.htmlCertResource.htmlCertRetrievalRequest.htmlCertReviewResponse.htmlCertRevokeRequest.htmlCertSearchRequest.htmlICrossCertPairSubsystem.htmlclass-useCertData.htmlCertDataInfo.htmlCertDataInfos.htmlCertEnrollmentRequest.htmlCertNotFoundException.htmlCertRequestInfo.htmlCertRequestInfos.htmlCertRequestResource.htmlCertResource.htmlCertRetrievalRequest.htmlCertReviewResponse.htmlCertRevokeRequest.htmlCertSearchRequest.htmlICrossCertPairSubsystem.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclientClient.htmlClientConfig.htmlIDataProcessor.htmlPKICertificateApprovalCallback.htmlPKIClient.htmlPKIConnection.htmlPKIRESTProvider.htmlSubsystemClient.htmlclass-useClient.htmlClientConfig.htmlIDataProcessor.htmlPKICertificateApprovalCallback.htmlPKIClient.htmlPKIConnection.htmlPKIRESTProvider.htmlSubsystemClient.htmlconnectionIAuthenticator.htmlIConnection.htmlIConnectionFactory.htmlclass-useIAuthenticator.htmlIConnection.htmlIConnectionFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcommonConfigConstants.htmlConstants.htmlDestDef.htmlICMSRequest.htmlNameValuePairs.htmlOpDef.htmlPrefixDef.htmlScopeDef.htmlTaskId.htmlclass-useConfigConstants.htmlConstants.htmlDestDef.htmlICMSRequest.htmlNameValuePairs.htmlOpDef.htmlPrefixDef.htmlScopeDef.htmlTaskId.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorIConnector.htmlIHttpConnFactory.htmlIHttpConnection.htmlIHttpPKIMessage.htmlIPKIMessage.htmlIRemoteAuthority.htmlIRequestEncoder.htmlIResender.htmlclass-useIConnector.htmlIHttpConnFactory.htmlIHttpConnection.htmlIHttpPKIMessage.htmlIPKIMessage.htmlIRemoteAuthority.htmlIRequestEncoder.htmlIResender.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmldbsDBResources.htmlEDBException.htmlEDBNotAvailException.htmlEDBRecordNotFoundException.htmlIDBAttrMapper.htmlIDBDynAttrMapper.htmlIDBObj.htmlIDBRegistry.htmlIDBSSession.htmlIDBSearchResults.htmlIDBSubsystem.htmlIDBVirtualList.htmlIElementProcessor.htmlIFilterConverter.htmlModification.htmlModificationSet.htmlcertdbCertId.htmlCertIdAdapter.htmlICertRecord.htmlICertRecordList.htmlICertificateRepository.htmlIRevocationInfo.htmlRenewableCertificateCollection.htmlclass-useCertId.htmlCertIdAdapter.htmlICertRecord.htmlICertRecordList.htmlICertificateRepository.htmlIRevocationInfo.htmlRenewableCertificateCollection.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useDBResources.htmlEDBException.htmlEDBNotAvailException.htmlEDBRecordNotFoundException.htmlIDBAttrMapper.htmlIDBDynAttrMapper.htmlIDBObj.htmlIDBRegistry.htmlIDBSSession.htmlIDBSearchResults.htmlIDBSubsystem.htmlIDBVirtualList.htmlIElementProcessor.htmlIFilterConverter.htmlModification.htmlModificationSet.htmlcrldbICRLIssuingPointRecord.htmlICRLRepository.htmlclass-useICRLIssuingPointRecord.htmlICRLRepository.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeydbIKeyRecord.htmlIKeyRecordList.htmlIKeyRepository.htmlKeyId.htmlKeyIdAdapter.htmlKeyState.htmlclass-useIKeyRecord.htmlIKeyRecordList.htmlIKeyRepository.htmlKeyId.htmlKeyIdAdapter.htmlKeyState.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlreplicadbIReplicaIDRepository.htmlclass-useIReplicaIDRepository.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrepositoryIRepository.htmlIRepositoryRecord.htmlclass-useIRepository.htmlIRepositoryRecord.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlevaluatorsIAccessEvaluator.htmlclass-useIAccessEvaluator.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlextensionsEExtensionsException.htmlExtensionsResources.htmlICMSExtension.htmlclass-useEExtensionsException.htmlExtensionsResources.htmlICMSExtension.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlgroupGroupClient.htmlGroupCollection.htmlGroupData.htmlGroupMemberCollection.htmlGroupMemberData.htmlGroupNotFoundException.htmlGroupResource.htmlclass-useGroupClient.htmlGroupCollection.htmlGroupData.htmlGroupMemberCollection.htmlGroupMemberData.htmlGroupNotFoundException.htmlGroupResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmljobsEJobsException.htmlIJob.htmlIJobCron.htmlIJobsScheduler.htmlJobPlugin.htmlJobsResources.htmlclass-useEJobsException.htmlIJob.htmlIJobCron.htmlIJobsScheduler.htmlJobPlugin.htmlJobsResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeyAsymKeyGenerationRequest.htmlKey.htmlKeyArchivalRequest.htmlKeyClient.htmlKeyData.htmlKeyGenerationRequest.htmlKeyInfo.htmlKeyInfoCollection.htmlKeyNotFoundException.htmlKeyRecoveryRequest.htmlKeyRequestInfo.htmlKeyRequestInfoCollection.htmlKeyRequestResource.htmlKeyRequestResponse.htmlKeyResource.htmlKeyTemplate.htmlSymKeyGenerationRequest.htmlclass-useAsymKeyGenerationRequest.htmlKey.htmlKeyArchivalRequest.htmlKeyClient.htmlKeyData.htmlKeyGenerationRequest.htmlKeyInfo.htmlKeyInfoCollection.htmlKeyNotFoundException.htmlKeyRecoveryRequest.htmlKeyRequestInfo.htmlKeyRequestInfoCollection.htmlKeyRequestResource.htmlKeyRequestResponse.htmlKeyResource.htmlKeyTemplate.htmlSymKeyGenerationRequest.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkraEKRAException.htmlIJoinShares.htmlIKeyRecoveryAuthority.htmlIKeyService.htmlIProofOfArchival.htmlIShare.htmlKRAClient.htmlKRAResources.htmlProofOfArchival.htmlclass-useEKRAException.htmlIJoinShares.htmlIKeyRecoveryAuthority.htmlIKeyService.htmlIProofOfArchival.htmlIShare.htmlKRAClient.htmlKRAResources.htmlProofOfArchival.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlldapELdapException.htmlELdapServerDownException.htmlILdapAuthInfo.htmlILdapBoundConnFactory.htmlILdapConnFactory.htmlILdapConnInfo.htmlILdapConnModule.htmlLDAPExceptionConverter.htmlLdapResources.htmlclass-useELdapException.htmlELdapServerDownException.htmlILdapAuthInfo.htmlILdapBoundConnFactory.htmlILdapConnFactory.htmlILdapConnInfo.htmlILdapConnModule.htmlLDAPExceptionConverter.htmlLdapResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmllistenersEListenersException.htmlIRequestListenerPlugin.htmlListenersResources.htmlclass-useEListenersException.htmlIRequestListenerPlugin.htmlListenersResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlloggingActivityClient.htmlActivityCollection.htmlActivityData.htmlActivityResource.htmlAuditClient.htmlAuditConfig.EventConfig.htmlAuditConfig.EventConfigList.htmlAuditConfig.EventConfigsAdapter.htmlAuditConfig.htmlAuditEvent.htmlAuditFile.htmlAuditFileCollection.htmlAuditFormat.htmlAuditResource.htmlConsoleError.htmlConsoleLog.htmlELogException.htmlELogNotFound.htmlELogPluginNotFound.htmlIAuditor.htmlIBundleLogEvent.htmlILogEvent.htmlILogEventFactory.htmlILogEventListener.htmlILogQueue.htmlILogSubsystem.htmlILogger.htmlLogCategory.htmlLogEvent.htmlLogPlugin.htmlLogResources.htmlLogSource.htmlSignedAuditEvent.htmlSystemEvent.htmlclass-useActivityClient.htmlActivityCollection.htmlActivityData.htmlActivityResource.htmlAuditClient.htmlAuditConfig.EventConfig.htmlAuditConfig.EventConfigList.htmlAuditConfig.EventConfigsAdapter.htmlAuditConfig.htmlAuditEvent.htmlAuditFile.htmlAuditFileCollection.htmlAuditFormat.htmlAuditResource.htmlConsoleError.htmlConsoleLog.htmlELogException.htmlELogNotFound.htmlELogPluginNotFound.htmlIAuditor.htmlIBundleLogEvent.htmlILogEvent.htmlILogEventFactory.htmlILogEventListener.htmlILogQueue.htmlILogSubsystem.htmlILogger.htmlLogCategory.htmlLogEvent.htmlLogPlugin.htmlLogResources.htmlLogSource.htmlSignedAuditEvent.htmlSystemEvent.htmleventAccessSessionEstablishEvent.htmlAccessSessionTerminatedEvent.htmlAsymKeyGenerationEvent.htmlAsymKeyGenerationProcessedEvent.htmlAuthEvent.htmlAuthzEvent.htmlCMCSignedRequestSigVerifyEvent.htmlCMCUserSignedRequestSigVerifyEvent.htmlCRLSigningInfoEvent.htmlCertRequestProcessedEvent.htmlCertSigningInfoEvent.htmlCertStatusChangeRequestEvent.htmlCertStatusChangeRequestProcessedEvent.htmlConfigRoleEvent.htmlConfigSignedAuditEvent.htmlConfigTrustedPublicKeyEvent.htmlDeltaCRLGenerationEvent.htmlDeltaCRLPublishingEvent.htmlFullCRLGenerationEvent.htmlFullCRLPublishingEvent.htmlOCSPAddCARequestEvent.htmlOCSPAddCARequestProcessedEvent.htmlOCSPGenerationEvent.htmlOCSPRemoveCARequestEvent.htmlOCSPRemoveCARequestProcessedEvent.htmlOCSPSigningInfoEvent.htmlRandomGenerationEvent.htmlRoleAssumeEvent.htmlScheduleCRLGenerationEvent.htmlSecurityDataArchivalProcessedEvent.htmlSecurityDataArchivalRequestEvent.htmlSecurityDataExportEvent.htmlSecurityDataInfoEvent.htmlSecurityDataRecoveryEvent.htmlSecurityDataRecoveryProcessedEvent.htmlSecurityDataRecoveryStateChangeEvent.htmlSecurityDataStatusChangeEvent.htmlServerSideKeyGenEvent.htmlServerSideKeyGenProcessedEvent.htmlSymKeyGenerationEvent.htmlSymKeyGenerationProcessedEvent.htmlTokenAppletUpgradeEvent.htmlTokenKeyChangeoverEvent.htmlclass-useAccessSessionEstablishEvent.htmlAccessSessionTerminatedEvent.htmlAsymKeyGenerationEvent.htmlAsymKeyGenerationProcessedEvent.htmlAuthEvent.htmlAuthzEvent.htmlCMCSignedRequestSigVerifyEvent.htmlCMCUserSignedRequestSigVerifyEvent.htmlCRLSigningInfoEvent.htmlCertRequestProcessedEvent.htmlCertSigningInfoEvent.htmlCertStatusChangeRequestEvent.htmlCertStatusChangeRequestProcessedEvent.htmlConfigRoleEvent.htmlConfigSignedAuditEvent.htmlConfigTrustedPublicKeyEvent.htmlDeltaCRLGenerationEvent.htmlDeltaCRLPublishingEvent.htmlFullCRLGenerationEvent.htmlFullCRLPublishingEvent.htmlOCSPAddCARequestEvent.htmlOCSPAddCARequestProcessedEvent.htmlOCSPGenerationEvent.htmlOCSPRemoveCARequestEvent.htmlOCSPRemoveCARequestProcessedEvent.htmlOCSPSigningInfoEvent.htmlRandomGenerationEvent.htmlRoleAssumeEvent.htmlScheduleCRLGenerationEvent.htmlSecurityDataArchivalProcessedEvent.htmlSecurityDataArchivalRequestEvent.htmlSecurityDataExportEvent.htmlSecurityDataInfoEvent.htmlSecurityDataRecoveryEvent.htmlSecurityDataRecoveryProcessedEvent.htmlSecurityDataRecoveryStateChangeEvent.htmlSecurityDataStatusChangeEvent.htmlServerSideKeyGenEvent.htmlServerSideKeyGenProcessedEvent.htmlSymKeyGenerationEvent.htmlSymKeyGenerationProcessedEvent.htmlTokenAppletUpgradeEvent.htmlTokenKeyChangeoverEvent.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlnotificationENotificationException.htmlIEmailFormProcessor.htmlIEmailResolver.htmlIEmailResolverKeys.htmlIEmailTemplate.htmlIMailNotification.htmlNotificationResources.htmlclass-useENotificationException.htmlIEmailFormProcessor.htmlIEmailResolver.htmlIEmailResolverKeys.htmlIEmailTemplate.htmlIMailNotification.htmlNotificationResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspIDefStore.htmlIOCSPAuthority.htmlIOCSPService.htmlIOCSPStore.htmlOCSPClient.htmlclass-useIDefStore.htmlIOCSPAuthority.htmlIOCSPService.htmlIOCSPStore.htmlOCSPClient.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpasswordEPasswordCheckException.htmlIConfigPasswordCheck.htmlIPasswordCheck.htmlclass-useEPasswordCheckException.htmlIConfigPasswordCheck.htmlIPasswordCheck.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpatternAttrSetCollection.htmlPattern.htmlclass-useAttrSetCollection.htmlPattern.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileCertInfoProfile.htmlECMCBadIdentityException.htmlECMCBadMessageCheckException.htmlECMCBadRequestException.htmlECMCPopFailedException.htmlECMCPopRequiredException.htmlECMCUnsupportedExtException.htmlEDeferException.htmlEProfileException.htmlERejectException.htmlICertInfoPolicyDefault.htmlIEnrollProfile.htmlIPolicyConstraint.htmlIPolicyDefault.htmlIProfile.htmlIProfileAuthenticator.htmlIProfileContext.htmlIProfileEx.htmlIProfileInput.htmlIProfileOutput.htmlIProfilePolicy.htmlIProfileSubsystem.htmlIProfileUpdater.htmlPolicyConstraint.htmlPolicyConstraintValue.htmlPolicyDefault.htmlProfileAttribute.htmlProfileClient.htmlProfileData.PolicySet.htmlProfileData.PolicySetAdapter.htmlProfileData.PolicySetList.htmlProfileData.htmlProfileDataInfo.htmlProfileDataInfos.htmlProfileInput.htmlProfileNotFoundException.htmlProfileOutput.htmlProfileParameter.htmlProfilePolicy.htmlProfilePolicySet.htmlProfileResource.htmlProfileRetrievalRequest.htmlclass-useCertInfoProfile.htmlECMCBadIdentityException.htmlECMCBadMessageCheckException.htmlECMCBadRequestException.htmlECMCPopFailedException.htmlECMCPopRequiredException.htmlECMCUnsupportedExtException.htmlEDeferException.htmlEProfileException.htmlERejectException.htmlICertInfoPolicyDefault.htmlIEnrollProfile.htmlIPolicyConstraint.htmlIPolicyDefault.htmlIProfile.htmlIProfileAuthenticator.htmlIProfileContext.htmlIProfileEx.htmlIProfileInput.htmlIProfileOutput.htmlIProfilePolicy.htmlIProfileSubsystem.htmlIProfileUpdater.htmlPolicyConstraint.htmlPolicyConstraintValue.htmlPolicyDefault.htmlProfileAttribute.htmlProfileClient.htmlProfileData.PolicySet.htmlProfileData.PolicySetAdapter.htmlProfileData.PolicySetList.htmlProfileData.htmlProfileDataInfo.htmlProfileDataInfos.htmlProfileInput.htmlProfileNotFoundException.htmlProfileOutput.htmlProfileParameter.htmlProfilePolicy.htmlProfilePolicySet.htmlProfileResource.htmlProfileRetrievalRequest.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpropertyDescriptor.htmlEPropertyException.htmlIConfigTemplate.htmlIDescriptor.htmlPropertySet.htmlclass-useDescriptor.htmlEPropertyException.htmlIConfigTemplate.htmlIDescriptor.htmlPropertySet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpublishECompSyntaxErr.htmlEMapperNotFound.htmlEMapperPluginNotFound.htmlEPublisherNotFound.htmlEPublisherPluginNotFound.htmlERuleNotFound.htmlERulePluginNotFound.htmlICRLPublisher.htmlILdapCertMapper.htmlILdapCrlMapper.htmlILdapExpression.htmlILdapMapper.htmlILdapPlugin.htmlILdapPluginImpl.htmlILdapPublishModule.htmlILdapPublisher.htmlILdapRule.htmlIPublishRuleSet.htmlIPublisherProcessor.htmlIXcertPublisherProcessor.htmlLdapCertMapResult.htmlMapperPlugin.htmlMapperProxy.htmlPublisherPlugin.htmlPublisherProxy.htmlRulePlugin.htmlclass-useECompSyntaxErr.htmlEMapperNotFound.htmlEMapperPluginNotFound.htmlEPublisherNotFound.htmlEPublisherPluginNotFound.htmlERuleNotFound.htmlERulePluginNotFound.htmlICRLPublisher.htmlILdapCertMapper.htmlILdapCrlMapper.htmlILdapExpression.htmlILdapMapper.htmlILdapPlugin.htmlILdapPluginImpl.htmlILdapPublishModule.htmlILdapPublisher.htmlILdapRule.htmlIPublishRuleSet.htmlIPublisherProcessor.htmlIXcertPublisherProcessor.htmlLdapCertMapResult.htmlMapperPlugin.htmlMapperProxy.htmlPublisherPlugin.htmlPublisherProxy.htmlRulePlugin.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlraIRAService.htmlIRegistrationAuthority.htmlclass-useIRAService.htmlIRegistrationAuthority.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlregistryERegistryException.htmlIPluginInfo.htmlIPluginRegistry.htmlclass-useERegistryException.htmlIPluginInfo.htmlIPluginRegistry.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrequestARequestNotifier.htmlAgentApproval.htmlAgentApprovals.htmlCMSRequestInfo.htmlCMSRequestInfos.htmlIEnrollmentRequest.htmlINotify.htmlIPolicy.htmlIRequest.htmlIRequestList.htmlIRequestListener.htmlIRequestNotifier.htmlIRequestQueue.htmlIRequestRecord.htmlIRequestScheduler.htmlIRequestSubsystem.htmlIRequestVirtualList.htmlIService.htmlPolicyMessage.htmlPolicyResult.htmlRequestId.htmlRequestIdAdapter.htmlRequestNotFoundException.htmlRequestStatus.htmlRequestStatusAdapter.htmlclass-useARequestNotifier.htmlAgentApproval.htmlAgentApprovals.htmlCMSRequestInfo.htmlCMSRequestInfos.htmlIEnrollmentRequest.htmlINotify.htmlIPolicy.htmlIRequest.htmlIRequestList.htmlIRequestListener.htmlIRequestNotifier.htmlIRequestQueue.htmlIRequestRecord.htmlIRequestScheduler.htmlIRequestSubsystem.htmlIRequestVirtualList.htmlIService.htmlPolicyMessage.htmlPolicyResult.htmlRequestId.htmlRequestIdAdapter.htmlRequestNotFoundException.htmlRequestStatus.htmlRequestStatusAdapter.htmlldapIRequestMod.htmlclass-useIRequestMod.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsecurityCredential.htmlICryptoSubsystem.htmlIEncryptionUnit.htmlISigningUnit.htmlIStorageKeyUnit.htmlIToken.htmlITransportKeyUnit.htmlKeyCertData.htmlclass-useCredential.htmlICryptoSubsystem.htmlIEncryptionUnit.htmlISigningUnit.htmlIStorageKeyUnit.htmlIToken.htmlITransportKeyUnit.htmlKeyCertData.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlselftestsEDuplicateSelfTestException.htmlEInvalidSelfTestException.htmlEMissingSelfTestException.htmlESelfTestException.htmlISelfTest.htmlISelfTestSubsystem.htmlSelfTestClient.htmlSelfTestCollection.htmlSelfTestData.htmlSelfTestResource.htmlSelfTestResources.htmlSelfTestResult.htmlSelfTestResults.htmlclass-useEDuplicateSelfTestException.htmlEInvalidSelfTestException.htmlEMissingSelfTestException.htmlESelfTestException.htmlISelfTest.htmlISelfTestSubsystem.htmlSelfTestClient.htmlSelfTestCollection.htmlSelfTestData.htmlSelfTestResource.htmlSelfTestResources.htmlSelfTestResult.htmlSelfTestResults.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsystemConfigurationRequest.URIAdapter.htmlConfigurationRequest.htmlConfigurationResponse.htmlConnectorNotFoundException.htmlDomainInfo.htmlFeature.htmlFeatureClient.htmlFeatureResource.htmlInstallToken.htmlKRAConnectorClient.htmlKRAConnectorInfo.htmlKRAConnectorResource.htmlSecurityDomainClient.htmlSecurityDomainHost.htmlSecurityDomainResource.htmlSecurityDomainSubsystem.htmlSystemCertClient.htmlSystemCertData.htmlSystemCertResource.htmlSystemConfigClient.htmlSystemConfigResource.htmlTPSConnectorClient.htmlTPSConnectorCollection.htmlTPSConnectorData.htmlTPSConnectorResource.htmlclass-useConfigurationRequest.URIAdapter.htmlConfigurationRequest.htmlConfigurationResponse.htmlConnectorNotFoundException.htmlDomainInfo.htmlFeature.htmlFeatureClient.htmlFeatureResource.htmlInstallToken.htmlKRAConnectorClient.htmlKRAConnectorInfo.htmlKRAConnectorResource.htmlSecurityDomainClient.htmlSecurityDomainHost.htmlSecurityDomainResource.htmlSecurityDomainSubsystem.htmlSystemCertClient.htmlSystemCertData.htmlSystemCertResource.htmlSystemConfigClient.htmlSystemConfigResource.htmlTPSConnectorClient.htmlTPSConnectorCollection.htmlTPSConnectorData.htmlTPSConnectorResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltemplateArgList.htmlArgSet.htmlArgString.htmlIArgValue.htmlclass-useArgList.htmlArgSet.htmlArgString.htmlIArgValue.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksITKSAuthority.htmlTKSClient.htmlclass-useITKSAuthority.htmlTKSClient.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltpsTPSClient.htmlauthenticatorAuthenticatorClient.htmlAuthenticatorCollection.htmlAuthenticatorData.MapAdapter.htmlAuthenticatorData.Property.htmlAuthenticatorData.PropertyList.htmlAuthenticatorData.htmlAuthenticatorResource.htmlclass-useAuthenticatorClient.htmlAuthenticatorCollection.htmlAuthenticatorData.MapAdapter.htmlAuthenticatorData.Property.htmlAuthenticatorData.PropertyList.htmlAuthenticatorData.htmlAuthenticatorResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertTPSCertClient.htmlTPSCertCollection.htmlTPSCertData.htmlTPSCertResource.htmlclass-useTPSCertClient.htmlTPSCertCollection.htmlTPSCertData.htmlTPSCertResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useTPSClient.htmlconfigConfigClient.htmlConfigData.MapAdapter.htmlConfigData.Property.htmlConfigData.PropertyList.htmlConfigData.htmlConfigResource.htmlclass-useConfigClient.htmlConfigData.MapAdapter.htmlConfigData.Property.htmlConfigData.PropertyList.htmlConfigData.htmlConfigResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorConnectorClient.htmlConnectorCollection.htmlConnectorData.MapAdapter.htmlConnectorData.Property.htmlConnectorData.PropertyList.htmlConnectorData.htmlConnectorResource.htmlclass-useConnectorClient.htmlConnectorCollection.htmlConnectorData.MapAdapter.htmlConnectorData.Property.htmlConnectorData.PropertyList.htmlConnectorData.htmlConnectorResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileProfileClient.htmlProfileCollection.htmlProfileData.MapAdapter.htmlProfileData.Property.htmlProfileData.PropertyList.htmlProfileData.htmlProfileMappingClient.htmlProfileMappingCollection.htmlProfileMappingData.MapAdapter.htmlProfileMappingData.Property.htmlProfileMappingData.PropertyList.htmlProfileMappingData.htmlProfileMappingResource.htmlProfileResource.htmlclass-useProfileClient.htmlProfileCollection.htmlProfileData.MapAdapter.htmlProfileData.Property.htmlProfileData.PropertyList.htmlProfileData.htmlProfileMappingClient.htmlProfileMappingCollection.htmlProfileMappingData.MapAdapter.htmlProfileMappingData.Property.htmlProfileMappingData.PropertyList.htmlProfileMappingData.htmlProfileMappingResource.htmlProfileResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltokenTokenClient.htmlTokenCollection.htmlTokenData.TokenStatusData.htmlTokenData.htmlTokenResource.htmlTokenStatus.TokenStatusAdapter.htmlTokenStatus.htmlclass-useTokenClient.htmlTokenCollection.htmlTokenData.TokenStatusData.htmlTokenData.htmlTokenResource.htmlTokenStatus.TokenStatusAdapter.htmlTokenStatus.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmluserUserCertCollection.htmlUserCertData.htmlUserClient.htmlUserCollection.htmlUserData.Attribute.htmlUserData.AttributeList.htmlUserData.MapAdapter.htmlUserData.htmlUserMembershipCollection.htmlUserMembershipData.htmlUserResource.htmlclass-useUserCertCollection.htmlUserCertData.htmlUserClient.htmlUserCollection.htmlUserData.Attribute.htmlUserData.AttributeList.htmlUserData.MapAdapter.htmlUserData.htmlUserMembershipCollection.htmlUserMembershipData.htmlUserResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlusrgrpCertificates.htmlEUsrGrpException.htmlICertUserLocator.htmlIGroup.htmlIGroupConstants.htmlIIdEvaluator.htmlIUGSubsystem.htmlIUser.htmlIUserConstants.htmlIUsrGrp.htmlclass-useCertificates.htmlEUsrGrpException.htmlICertUserLocator.htmlIGroup.htmlIGroupConstants.htmlIIdEvaluator.htmlIUGSubsystem.htmlIUser.htmlIUserConstants.htmlIUsrGrp.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlutilAsyncLoader.htmlCryptoProvider.htmlDateAdapter.htmlHttpInput.htmlIStatsSubsystem.htmlNSSCryptoProvider.htmlStatsEvent.htmlclass-useAsyncLoader.htmlCryptoProvider.htmlDateAdapter.htmlHttpInput.htmlIStatsSubsystem.htmlNSSCryptoProvider.htmlStatsEvent.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcmsauthenticationAgentCertAuthentication.htmlCMCAuth.htmlCMCUserSignedAuth.htmlCrypt.htmlDNPattern.htmlDirBasedAuthentication.htmlFlatFileAuth.htmlHashAuthData.htmlHashAuthentication.htmlPortalEnroll.htmlSSLclientCertAuthentication.htmlSessionAuthentication.htmlSharedSecret.htmlTokenAuthentication.htmlUidPwdDirAuthentication.htmlUidPwdPinDirAuthentication.htmlUserPwdDirAuthentication.htmlclass-useAgentCertAuthentication.htmlCMCAuth.htmlCMCUserSignedAuth.htmlCrypt.htmlDNPattern.htmlDirBasedAuthentication.htmlFlatFileAuth.htmlHashAuthData.htmlHashAuthentication.htmlPortalEnroll.htmlSSLclientCertAuthentication.htmlSessionAuthentication.htmlSharedSecret.htmlTokenAuthentication.htmlUidPwdDirAuthentication.htmlUidPwdPinDirAuthentication.htmlUserPwdDirAuthentication.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthorizationAAclAuthz.EvaluationOrder.htmlAAclAuthz.htmlBasicAclAuthz.htmlBasicGroupAuthz.htmlDirAclAuthz.htmlclass-useAAclAuthz.EvaluationOrder.htmlAAclAuthz.htmlBasicAclAuthz.htmlBasicGroupAuthz.htmlDirAclAuthz.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcrlCMSAuthInfoAccessExtension.htmlCMSAuthorityKeyIdentifierExtension.htmlCMSCRLNumberExtension.htmlCMSCRLReasonExtension.htmlCMSCertificateIssuerExtension.htmlCMSDeltaCRLIndicatorExtension.htmlCMSFreshestCRLExtension.htmlCMSHoldInstructionExtension.htmlCMSInvalidityDateExtension.htmlCMSIssuerAlternativeNameExtension.htmlCMSIssuingDistributionPointExtension.htmlclass-useCMSAuthInfoAccessExtension.htmlCMSAuthorityKeyIdentifierExtension.htmlCMSCRLNumberExtension.htmlCMSCRLReasonExtension.htmlCMSCertificateIssuerExtension.htmlCMSDeltaCRLIndicatorExtension.htmlCMSFreshestCRLExtension.htmlCMSHoldInstructionExtension.htmlCMSInvalidityDateExtension.htmlCMSIssuerAlternativeNameExtension.htmlCMSIssuingDistributionPointExtension.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlevaluatorsGroupAccessEvaluator.htmlIPAddressAccessEvaluator.htmlUserAccessEvaluator.htmlUserOrigReqAccessEvaluator.htmlclass-useGroupAccessEvaluator.htmlIPAddressAccessEvaluator.htmlUserAccessEvaluator.htmlUserOrigReqAccessEvaluator.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmljobsAJobBase.htmlPublishCertsJob.htmlRenewalNotificationJob.htmlRequestInQueueJob.htmlUnpublishExpiredJob.htmlclass-useAJobBase.htmlPublishCertsJob.htmlRenewalNotificationJob.htmlRequestInQueueJob.htmlUnpublishExpiredJob.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmllistenersCertificateIssuedListener.htmlCertificateRevokedListener.htmlPinRemovalListener.htmlRequestInQListener.htmlclass-useCertificateIssuedListener.htmlCertificateRevokedListener.htmlPinRemovalListener.htmlRequestInQListener.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlloggingAuditEventFactory.htmlLogEntry.htmlLogFactory.htmlLogFile.htmlLogQueue.htmlLogger.htmlRollingLogFile.htmlSignedAuditEventFactory.htmlSignedAuditLogger.htmlSystemEventFactory.htmlclass-useAuditEventFactory.htmlLogEntry.htmlLogFactory.htmlLogFile.htmlLogQueue.htmlLogger.htmlRollingLogFile.htmlSignedAuditEventFactory.htmlSignedAuditLogger.htmlSystemEventFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlnotificationMailNotification.htmlclass-useMailNotification.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspDefStore.htmlLDAPStore.htmlclass-useDefStore.htmlLDAPStore.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpasswordPasswordChecker.htmlclass-usePasswordChecker.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofilecommonBasicProfile.htmlCACertCAEnrollProfile.htmlCAEnrollProfile.htmlEnrollProfile.htmlProfileContext.htmlProfilePolicy.htmlServerCertCAEnrollProfile.htmlUserCertCAEnrollProfile.htmlclass-useBasicProfile.htmlCACertCAEnrollProfile.htmlCAEnrollProfile.htmlEnrollProfile.htmlProfileContext.htmlProfilePolicy.htmlServerCertCAEnrollProfile.htmlUserCertCAEnrollProfile.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconstraintAuthzRealmConstraint.htmlBasicConstraintsExtConstraint.htmlCAEnrollConstraint.htmlCAValidityConstraint.htmlCMCSelfSignedSubjectNameConstraint.htmlCMCUserSignedSubjectNameConstraint.htmlEnrollConstraint.htmlExtendedKeyUsageExtConstraint.htmlExtensionConstraint.htmlExternalProcessConstraint.htmlKeyConstraint.htmlKeyUsageExtConstraint.htmlNSCertTypeExtConstraint.htmlNoConstraint.htmlRenewGracePeriodConstraint.htmlSigningAlgConstraint.htmlSubjectNameConstraint.htmlUniqueKeyConstraint.htmlUniqueSubjectNameConstraint.htmlUserSubjectNameConstraint.htmlValidityConstraint.htmlclass-useAuthzRealmConstraint.htmlBasicConstraintsExtConstraint.htmlCAEnrollConstraint.htmlCAValidityConstraint.htmlCMCSelfSignedSubjectNameConstraint.htmlCMCUserSignedSubjectNameConstraint.htmlEnrollConstraint.htmlExtendedKeyUsageExtConstraint.htmlExtensionConstraint.htmlExternalProcessConstraint.htmlKeyConstraint.htmlKeyUsageExtConstraint.htmlNSCertTypeExtConstraint.htmlNoConstraint.htmlRenewGracePeriodConstraint.htmlSigningAlgConstraint.htmlSubjectNameConstraint.htmlUniqueKeyConstraint.htmlUniqueSubjectNameConstraint.htmlUserSubjectNameConstraint.htmlValidityConstraint.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmldefAuthInfoAccessExtDefault.htmlAuthTokenSubjectNameDefault.htmlAuthorityKeyIdentifierExtDefault.htmlAuthzRealmDefault.htmlAutoAssignDefault.htmlBasicConstraintsExtDefault.htmlCAEnrollDefault.htmlCAValidityDefault.htmlCMCUserSignedSubjectNameDefault.htmlCRLDistributionPointsExtDefault.htmlCertificatePoliciesExtDefault.htmlCertificateVersionDefault.htmlCommonNameToSANDefault.htmlEnrollDefault.htmlEnrollExtDefault.htmlExtendedKeyUsageExtDefault.htmlFreshestCRLExtDefault.htmlGenericExtDefault.htmlImageDefault.htmlInhibitAnyPolicyExtDefault.htmlIssuerAltNameExtDefault.htmlKeyUsageExtDefault.htmlNSCCommentExtDefault.htmlNSCertTypeExtDefault.htmlNameConstraintsExtDefault.htmlNoDefault.htmlOCSPNoCheckExtDefault.htmlPolicyConstraintsExtDefault.htmlPolicyMappingsExtDefault.htmlPrivateKeyUsagePeriodExtDefault.htmlRandomizedValidityDefault.htmlSigningAlgDefault.htmlSubjectAltNameExtDefault.htmlSubjectDirAttributesExtDefault.htmlSubjectInfoAccessExtDefault.htmlSubjectKeyIdentifierExtDefault.htmlSubjectNameDefault.htmlUserExtensionDefault.htmlUserKeyDefault.htmlUserSigningAlgDefault.htmlUserSubjectNameDefault.htmlUserValidityDefault.htmlValidityDefault.htmlclass-useAuthInfoAccessExtDefault.htmlAuthTokenSubjectNameDefault.htmlAuthorityKeyIdentifierExtDefault.htmlAuthzRealmDefault.htmlAutoAssignDefault.htmlBasicConstraintsExtDefault.htmlCAEnrollDefault.htmlCAValidityDefault.htmlCMCUserSignedSubjectNameDefault.htmlCRLDistributionPointsExtDefault.htmlCertificatePoliciesExtDefault.htmlCertificateVersionDefault.htmlCommonNameToSANDefault.htmlEnrollDefault.htmlEnrollExtDefault.htmlExtendedKeyUsageExtDefault.htmlFreshestCRLExtDefault.htmlGenericExtDefault.htmlImageDefault.htmlInhibitAnyPolicyExtDefault.htmlIssuerAltNameExtDefault.htmlKeyUsageExtDefault.htmlNSCCommentExtDefault.htmlNSCertTypeExtDefault.htmlNameConstraintsExtDefault.htmlNoDefault.htmlOCSPNoCheckExtDefault.htmlPolicyConstraintsExtDefault.htmlPolicyMappingsExtDefault.htmlPrivateKeyUsagePeriodExtDefault.htmlRandomizedValidityDefault.htmlSigningAlgDefault.htmlSubjectAltNameExtDefault.htmlSubjectDirAttributesExtDefault.htmlSubjectInfoAccessExtDefault.htmlSubjectKeyIdentifierExtDefault.htmlSubjectNameDefault.htmlUserExtensionDefault.htmlUserKeyDefault.htmlUserSigningAlgDefault.htmlUserSubjectNameDefault.htmlUserValidityDefault.htmlValidityDefault.htmlnsHKeySubjectNameDefault.htmlnsNKeySubjectNameDefault.htmlnsTokenDeviceKeySubjectNameDefault.htmlnsTokenUserKeySubjectNameDefault.htmlnsHKeySubjectNameDefault.htmlnsNKeySubjectNameDefault.htmlnsTokenDeviceKeySubjectNameDefault.htmlnsTokenUserKeySubjectNameDefault.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlinputCMCCertReqInput.htmlCertReqInput.htmlDualKeyGenInput.htmlEncryptionKeyGenInput.htmlEnrollInput.htmlFileSigningInput.htmlGenericInput.htmlImageInput.htmlKeyGenInput.htmlSerialNumRenewInput.htmlSigningKeyGenInput.htmlSubjectAltNameExtInput.htmlSubjectDNInput.htmlSubjectNameInput.htmlSubmitterInfoInput.htmlclass-useCMCCertReqInput.htmlCertReqInput.htmlDualKeyGenInput.htmlEncryptionKeyGenInput.htmlEnrollInput.htmlFileSigningInput.htmlGenericInput.htmlImageInput.htmlKeyGenInput.htmlSerialNumRenewInput.htmlSigningKeyGenInput.htmlSubjectAltNameExtInput.htmlSubjectDNInput.htmlSubjectNameInput.htmlSubmitterInfoInput.htmlnsHKeyCertReqInput.htmlnsNKeyCertReqInput.htmlnsHKeyCertReqInput.htmlnsNKeyCertReqInput.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmloutputCMMFOutput.htmlCertOutput.htmlEnrollOutput.htmlPKCS7Output.htmlclass-useCMMFOutput.htmlCertOutput.htmlEnrollOutput.htmlPKCS7Output.htmlnsNKeyOutput.htmlnsNKeyOutput.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlupdaterSubsystemGroupUpdater.htmlclass-useSubsystemGroupUpdater.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpublishmappersLdapCaSimpleMap.htmlLdapCertCompsMap.htmlLdapCertExactMap.htmlLdapCertSubjMap.htmlLdapCrlIssuerCompsMap.htmlLdapDNCompsMap.SearchFilter.htmlLdapDNCompsMap.htmlLdapEnhancedMap.htmlLdapSimpleMap.htmlMapDNPattern.htmlNoMap.htmlclass-useLdapCaSimpleMap.htmlLdapCertCompsMap.htmlLdapCertExactMap.htmlLdapCertSubjMap.htmlLdapCrlIssuerCompsMap.htmlLdapDNCompsMap.SearchFilter.htmlLdapDNCompsMap.htmlLdapEnhancedMap.htmlLdapSimpleMap.htmlMapDNPattern.htmlNoMap.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpublishersFileBasedPublisher.htmlLdapCaCertPublisher.htmlLdapCertSubjPublisher.htmlLdapCertificatePairPublisher.htmlLdapCrlPublisher.htmlLdapEncryptCertPublisher.htmlLdapUserCertPublisher.htmlOCSPPublisher.htmlPublisherUtils.htmlclass-useFileBasedPublisher.htmlLdapCaCertPublisher.htmlLdapCertSubjPublisher.htmlLdapCertificatePairPublisher.htmlLdapCrlPublisher.htmlLdapEncryptCertPublisher.htmlLdapUserCertPublisher.htmlOCSPPublisher.htmlPublisherUtils.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrealmPKIPrincipal.htmlPKIRealm.htmlclass-usePKIPrincipal.htmlPKIRealm.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrequestRequestScheduler.htmlclass-useRequestScheduler.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlselftestsASelfTest.htmlcaCAPresence.htmlCAValidity.htmlclass-useCAPresence.htmlCAValidity.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useASelfTest.htmlcommonSystemCertsVerification.htmlclass-useSystemCertsVerification.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkraKRAPresence.htmlclass-useKRAPresence.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspOCSPPresence.htmlOCSPValidity.htmlclass-useOCSPPresence.htmlOCSPValidity.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksTKSKnownSessionKey.htmlclass-useTKSKnownSessionKey.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlservletadminACLAdminServlet.htmlAdminResources.htmlAdminServlet.htmlAuthAdminServlet.htmlAuthCredentials.htmlCAAdminServlet.htmlCMSAdminServlet.htmlGroupMemberProcessor.htmlJobsAdminServlet.htmlKRAAdminServlet.htmlKRAConnectorProcessor.htmlLogAdminServlet.htmlOCSPAdminServlet.htmlPolicyAdminServlet.htmlProfileAdminServlet.htmlPublisherAdminServlet.htmlRAAdminServlet.htmlRegistryAdminServlet.htmlUsrGrpAdminServlet.htmlclass-useACLAdminServlet.htmlAdminResources.htmlAdminServlet.htmlAuthAdminServlet.htmlAuthCredentials.htmlCAAdminServlet.htmlCMSAdminServlet.htmlGroupMemberProcessor.htmlJobsAdminServlet.htmlKRAAdminServlet.htmlKRAConnectorProcessor.htmlLogAdminServlet.htmlOCSPAdminServlet.htmlPolicyAdminServlet.htmlProfileAdminServlet.htmlPublisherAdminServlet.htmlRAAdminServlet.htmlRegistryAdminServlet.htmlUsrGrpAdminServlet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlbaseCMSServlet.htmlCMSStartServlet.htmlDisplayHtmlServlet.htmlDynamicVariablesServlet.htmlGetStats.htmlIndexServlet.htmlPKIService.htmlPortsServlet.htmlProxyServlet.htmlRESTServlet.htmlSubsystemService.htmlSystemInfoServlet.htmlUserInfo.htmlclass-useCMSServlet.htmlCMSStartServlet.htmlDisplayHtmlServlet.htmlDynamicVariablesServlet.htmlGetStats.htmlIndexServlet.htmlPKIService.htmlPortsServlet.htmlProxyServlet.htmlRESTServlet.htmlSubsystemService.htmlSystemInfoServlet.htmlUserInfo.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertCMCRevReqServlet.htmlCertEnrollmentRequestFactory.htmlCertProcessor.htmlCertRequestDAO.htmlCertRequestInfoFactory.htmlCertReviewResponseFactory.htmlChallengeRevocationServlet1.htmlCloneRedirect.htmlDirAuthServlet.htmlDisableEnrollResult.htmlDisplayBySerial.htmlDisplayCRL.htmlDisplayHashUserEnroll.htmlDoRevoke.htmlDoRevokeTPS.htmlDoUnrevoke.htmlDoUnrevokeTPS.htmlEnableEnrollResult.htmlEnrollServlet.htmlEnrollmentProcessor.htmlFilterBuilder.htmlGetBySerial.htmlGetCAChain.htmlGetCRL.htmlGetCertFromRequest.htmlGetEnableStatus.htmlGetInfo.htmlHashEnrollServlet.htmlImportCertsTemplateFiller.htmlListCerts.htmlMonitor.htmlReasonToRevoke.htmlRemoteAuthConfig.htmlRenewalProcessor.htmlRenewalServlet.htmlRequestProcessor.htmlRevocationProcessor.htmlRevocationServlet.htmlSrchCerts.htmlUpdateCRL.htmlUpdateDir.htmlclass-useCMCRevReqServlet.htmlCertEnrollmentRequestFactory.htmlCertProcessor.htmlCertRequestDAO.htmlCertRequestInfoFactory.htmlCertReviewResponseFactory.htmlChallengeRevocationServlet1.htmlCloneRedirect.htmlDirAuthServlet.htmlDisableEnrollResult.htmlDisplayBySerial.htmlDisplayCRL.htmlDisplayHashUserEnroll.htmlDoRevoke.htmlDoRevokeTPS.htmlDoUnrevoke.htmlDoUnrevokeTPS.htmlEnableEnrollResult.htmlEnrollServlet.htmlEnrollmentProcessor.htmlFilterBuilder.htmlGetBySerial.htmlGetCAChain.htmlGetCRL.htmlGetCertFromRequest.htmlGetEnableStatus.htmlGetInfo.htmlHashEnrollServlet.htmlImportCertsTemplateFiller.htmlListCerts.htmlMonitor.htmlReasonToRevoke.htmlRemoteAuthConfig.htmlRenewalProcessor.htmlRenewalServlet.htmlRequestProcessor.htmlRevocationProcessor.htmlRevocationServlet.htmlSrchCerts.htmlUpdateCRL.htmlUpdateDir.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlscepCRSEnrollment.htmlChallengePassword.htmlExtensionsRequested.htmlclass-useCRSEnrollment.htmlChallengePassword.htmlExtensionsRequested.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcommonAuthCredentials.htmlCMCOutputTemplate.htmlCMSFile.htmlCMSFileLoader.htmlCMSGWResources.htmlCMSGateway.htmlCMSLoadTemplate.htmlCMSRequest.htmlCMSTemplate.htmlCMSTemplateParams.htmlECMSGWException.htmlGenErrorTemplateFiller.htmlGenPendingTemplateFiller.htmlGenRejectedTemplateFiller.htmlGenSuccessTemplateFiller.htmlGenSvcPendingTemplateFiller.htmlGenUnauthorizedTemplateFiller.htmlGenUnexpectedErrorTemplateFiller.htmlICMSTemplateFiller.htmlIRawJS.htmlIndexTemplateFiller.htmlRawJS.htmlServletUtils.htmlclass-useAuthCredentials.htmlCMCOutputTemplate.htmlCMSFile.htmlCMSFileLoader.htmlCMSGWResources.htmlCMSGateway.htmlCMSLoadTemplate.htmlCMSRequest.htmlCMSTemplate.htmlCMSTemplateParams.htmlECMSGWException.htmlGenErrorTemplateFiller.htmlGenPendingTemplateFiller.htmlGenRejectedTemplateFiller.htmlGenSuccessTemplateFiller.htmlGenSvcPendingTemplateFiller.htmlGenUnauthorizedTemplateFiller.htmlGenUnexpectedErrorTemplateFiller.htmlICMSTemplateFiller.htmlIRawJS.htmlIndexTemplateFiller.htmlRawJS.htmlServletUtils.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorCloneServlet.htmlConnectorServlet.htmlGenerateKeyPairServlet.htmlTokenKeyRecoveryServlet.htmlclass-useCloneServlet.htmlConnectorServlet.htmlGenerateKeyPairServlet.htmlTokenKeyRecoveryServlet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcsadminBaseServlet.htmlCert.htmlCertUtil.htmlCheckIdentity.htmlConfigCertApprovalCallback.htmlConfigurationUtils.htmlDownloadPKCS12.htmlGetCertChain.htmlGetConfigEntries.htmlGetCookie.htmlGetDomainXML.htmlGetStatus.htmlGetSubsystemCert.htmlGetTokenInfo.htmlGetTransportCert.htmlImportTransportCert.htmlLoginServlet.htmlMainPageServlet.htmlRegisterUser.htmlSecurityDomainLogin.htmlSecurityDomainProcessor.htmlSystemCertDataFactory.htmlTokenAuthenticate.htmlUpdateConnector.htmlUpdateDomainXML.htmlUpdateNumberRange.htmlUpdateOCSPConfig.htmlclass-useBaseServlet.htmlCert.htmlCertUtil.htmlCheckIdentity.htmlConfigCertApprovalCallback.htmlConfigurationUtils.htmlDownloadPKCS12.htmlGetCertChain.htmlGetConfigEntries.htmlGetCookie.htmlGetDomainXML.htmlGetStatus.htmlGetSubsystemCert.htmlGetTokenInfo.htmlGetTransportCert.htmlImportTransportCert.htmlLoginServlet.htmlMainPageServlet.htmlRegisterUser.htmlSecurityDomainLogin.htmlSecurityDomainProcessor.htmlSystemCertDataFactory.htmlTokenAuthenticate.htmlUpdateConnector.htmlUpdateDomainXML.htmlUpdateNumberRange.htmlUpdateOCSPConfig.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlfilterAdminRequestFilter.htmlAgentRequestFilter.htmlEEClientAuthRequestFilter.htmlEERequestFilter.htmlclass-useAdminRequestFilter.htmlAgentRequestFilter.htmlEEClientAuthRequestFilter.htmlEERequestFilter.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeyConfirmRecoverBySerial.htmlDisplayBySerial.htmlDisplayBySerialForRecovery.htmlDisplayTransport.htmlExamineRecovery.htmlGetApprovalStatus.htmlGetAsyncPk12.htmlGetPk12.htmlGrantAsyncRecovery.htmlGrantRecovery.htmlKeyRecordParser.htmlKeyRequestDAO.htmlRecoverBySerial.htmlSrchKey.htmlSrchKeyForRecovery.htmlclass-useConfirmRecoverBySerial.htmlDisplayBySerial.htmlDisplayBySerialForRecovery.htmlDisplayTransport.htmlExamineRecovery.htmlGetApprovalStatus.htmlGetAsyncPk12.htmlGetPk12.htmlGrantAsyncRecovery.htmlGrantRecovery.htmlKeyRecordParser.htmlKeyRequestDAO.htmlRecoverBySerial.htmlSrchKey.htmlSrchKeyForRecovery.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspAddCAServlet.htmlAddCRLServlet.htmlCheckCertServlet.htmlGetOCSPInfo.htmlListCAServlet.htmlOCSPServlet.htmlRemoveCAServlet.htmlclass-useAddCAServlet.htmlAddCRLServlet.htmlCheckCertServlet.htmlGetOCSPInfo.htmlListCAServlet.htmlOCSPServlet.htmlRemoveCAServlet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprocessorsCAProcessor.htmlCMCProcessor.htmlCRMFProcessor.htmlIPKIProcessor.htmlKeyGenProcessor.htmlPKCS10Processor.htmlPKIProcessor.htmlProcessor.htmlclass-useCAProcessor.htmlCMCProcessor.htmlCRMFProcessor.htmlIPKIProcessor.htmlKeyGenProcessor.htmlPKCS10Processor.htmlPKIProcessor.htmlProcessor.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofilePolicyConstraintFactory.htmlPolicyDefaultFactory.htmlProfileApproveServlet.htmlProfileInputFactory.htmlProfileListServlet.htmlProfileOutputFactory.htmlProfileProcessServlet.htmlProfileReviewServlet.htmlProfileSelectServlet.htmlProfileServlet.htmlProfileSubmitCMCServlet.htmlProfileSubmitServlet.htmlSSLClientCertProvider.htmlclass-usePolicyConstraintFactory.htmlPolicyDefaultFactory.htmlProfileApproveServlet.htmlProfileInputFactory.htmlProfileListServlet.htmlProfileOutputFactory.htmlProfileProcessServlet.htmlProfileReviewServlet.htmlProfileSelectServlet.htmlProfileServlet.htmlProfileSubmitCMCServlet.htmlProfileSubmitServlet.htmlSSLClientCertProvider.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrequestCMSRequestDAO.htmlCertReqParser.htmlCheckRequest.htmlIReqParser.htmlKeyReqParser.htmlProcessCertReq.htmlProcessReq.htmlQueryReq.htmlReqParser.htmlSearchReqs.htmlclass-useCMSRequestDAO.htmlCertReqParser.htmlCheckRequest.htmlIReqParser.htmlKeyReqParser.htmlProcessCertReq.htmlProcessReq.htmlQueryReq.htmlReqParser.htmlSearchReqs.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksGPParams.htmlKDF.htmlNistSP800_108KDF.htmlSecureChannelProtocol.htmlStandardKDF.htmlclass-useGPParams.htmlKDF.htmlNistSP800_108KDF.htmlSecureChannelProtocol.htmlStandardKDF.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsharesOldJoinShares.htmlOldShare.htmlclass-useOldJoinShares.htmlOldShare.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcmstoolsAtoB.htmlAuditVerify.Result.htmlAuditVerify.htmlBtoA.htmlCMCEnroll.htmlCMCRequest.htmlCMCResponse.htmlCMCRevoke.htmlCMCSharedToken.htmlCRMFPopClient.htmlExtJoiner.htmlGenExtKeyUsage.htmlGenIssuerAltNameExt.htmlGenSubjectAltNameExt.htmlHttpClient.htmlKRATool.htmlOCSPClient.htmlPKCS10Client.htmlPKCS12Export.htmlPasswordCache.htmlPrettyPrintCert.htmlPrettyPrintCrl.htmlTestCRLSigning.htmlTokenInfo.htmlauthorityAuthorityCLI.htmlAuthorityCreateCLI.htmlAuthorityDisableCLI.htmlAuthorityEnableCLI.htmlAuthorityFindCLI.htmlAuthorityKeyExportCLI.htmlAuthorityRemoveCLI.htmlAuthorityShowCLI.htmlclass-useAuthorityCLI.htmlAuthorityCreateCLI.htmlAuthorityDisableCLI.htmlAuthorityEnableCLI.htmlAuthorityFindCLI.htmlAuthorityKeyExportCLI.htmlAuthorityRemoveCLI.htmlAuthorityShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcaCACLI.htmlCACertCLI.htmlclass-useCACLI.htmlCACertCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertCertFindCLI.htmlCertHoldCLI.htmlCertReleaseHoldCLI.htmlCertRequestFindCLI.htmlCertRequestProfileFindCLI.htmlCertRequestProfileShowCLI.htmlCertRequestReviewCLI.htmlCertRequestShowCLI.htmlCertRequestSubmitCLI.htmlCertRevokeCLI.htmlCertShowCLI.htmlCertStatusCLI.htmlclass-useCertFindCLI.htmlCertHoldCLI.htmlCertReleaseHoldCLI.htmlCertRequestFindCLI.htmlCertRequestProfileFindCLI.htmlCertRequestProfileShowCLI.htmlCertRequestReviewCLI.htmlCertRequestShowCLI.htmlCertRequestSubmitCLI.htmlCertRevokeCLI.htmlCertShowCLI.htmlCertStatusCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useAtoB.htmlAuditVerify.Result.htmlAuditVerify.htmlBtoA.htmlCMCEnroll.htmlCMCRequest.htmlCMCResponse.htmlCMCRevoke.htmlCMCSharedToken.htmlCRMFPopClient.htmlExtJoiner.htmlGenExtKeyUsage.htmlGenIssuerAltNameExt.htmlGenSubjectAltNameExt.htmlHttpClient.htmlKRATool.htmlOCSPClient.htmlPKCS10Client.htmlPKCS12Export.htmlPasswordCache.htmlPrettyPrintCert.htmlPrettyPrintCrl.htmlTestCRLSigning.htmlTokenInfo.htmlcliCLI.htmlCLIException.htmlHelpCLI.htmlMainCLI.htmlProxyCLI.htmlSubsystemCLI.htmlclass-useCLI.htmlCLIException.htmlHelpCLI.htmlMainCLI.htmlProxyCLI.htmlSubsystemCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclientClientCLI.htmlClientCertFindCLI.htmlClientCertImportCLI.htmlClientCertModifyCLI.htmlClientCertRemoveCLI.htmlClientCertRequestCLI.htmlClientCertShowCLI.htmlClientCertValidateCLI.htmlClientInitCLI.htmlclass-useClientCLI.htmlClientCertFindCLI.htmlClientCertImportCLI.htmlClientCertModifyCLI.htmlClientCertRemoveCLI.htmlClientCertRequestCLI.htmlClientCertShowCLI.htmlClientCertValidateCLI.htmlClientInitCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlfeatureFeatureCLI.htmlFeatureFindCLI.htmlFeatureShowCLI.htmlclass-useFeatureCLI.htmlFeatureFindCLI.htmlFeatureShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlgroupGroupAddCLI.htmlGroupCLI.htmlGroupFindCLI.htmlGroupMemberAddCLI.htmlGroupMemberCLI.htmlGroupMemberFindCLI.htmlGroupMemberRemoveCLI.htmlGroupMemberShowCLI.htmlGroupModifyCLI.htmlGroupRemoveCLI.htmlGroupShowCLI.htmlclass-useGroupAddCLI.htmlGroupCLI.htmlGroupFindCLI.htmlGroupMemberAddCLI.htmlGroupMemberCLI.htmlGroupMemberFindCLI.htmlGroupMemberRemoveCLI.htmlGroupMemberShowCLI.htmlGroupModifyCLI.htmlGroupRemoveCLI.htmlGroupShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeyKeyArchiveCLI.htmlKeyCLI.htmlKeyFindCLI.htmlKeyGenerateCLI.htmlKeyModifyCLI.htmlKeyRecoverCLI.htmlKeyRequestFindCLI.htmlKeyRequestReviewCLI.htmlKeyRequestShowCLI.htmlKeyRetrieveCLI.htmlKeyShowCLI.htmlKeyTemplateFindCLI.htmlKeyTemplateShowCLI.htmlclass-useKeyArchiveCLI.htmlKeyCLI.htmlKeyFindCLI.htmlKeyGenerateCLI.htmlKeyModifyCLI.htmlKeyRecoverCLI.htmlKeyRequestFindCLI.htmlKeyRequestReviewCLI.htmlKeyRequestShowCLI.htmlKeyRetrieveCLI.htmlKeyShowCLI.htmlKeyTemplateFindCLI.htmlKeyTemplateShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkraKRACLI.htmlclass-useKRACLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlloggingActivityCLI.htmlActivityFindCLI.htmlActivityShowCLI.htmlAuditCLI.htmlAuditFileFindCLI.htmlAuditFileRetrieveCLI.htmlAuditModifyCLI.htmlAuditShowCLI.htmlclass-useActivityCLI.htmlActivityFindCLI.htmlActivityShowCLI.htmlAuditCLI.htmlAuditFileFindCLI.htmlAuditFileRetrieveCLI.htmlAuditModifyCLI.htmlAuditShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspOCSPCLI.htmlclass-useOCSPCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpkcs12PKCS12CLI.htmlPKCS12CertAddCLI.htmlPKCS12CertCLI.htmlPKCS12CertExportCLI.htmlPKCS12CertFindCLI.htmlPKCS12CertModCLI.htmlPKCS12CertRemoveCLI.htmlPKCS12ExportCLI.htmlPKCS12ImportCLI.htmlPKCS12KeyCLI.htmlPKCS12KeyFindCLI.htmlPKCS12KeyRemoveCLI.htmlclass-usePKCS12CLI.htmlPKCS12CertAddCLI.htmlPKCS12CertCLI.htmlPKCS12CertExportCLI.htmlPKCS12CertFindCLI.htmlPKCS12CertModCLI.htmlPKCS12CertRemoveCLI.htmlPKCS12ExportCLI.htmlPKCS12ImportCLI.htmlPKCS12KeyCLI.htmlPKCS12KeyFindCLI.htmlPKCS12KeyRemoveCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpkcs7PKCS7CLI.htmlPKCS7CertCLI.htmlPKCS7CertExportCLI.htmlPKCS7CertFindCLI.htmlclass-usePKCS7CLI.htmlPKCS7CertCLI.htmlPKCS7CertExportCLI.htmlPKCS7CertFindCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileProfileAddCLI.htmlProfileCLI.htmlProfileDisableCLI.htmlProfileEditCLI.htmlProfileEnableCLI.htmlProfileFindCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlclass-useProfileAddCLI.htmlProfileCLI.htmlProfileDisableCLI.htmlProfileEditCLI.htmlProfileEnableCLI.htmlProfileFindCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlselftestsSelfTestCLI.htmlSelfTestFindCLI.htmlSelfTestRunCLI.htmlSelfTestShowCLI.htmlclass-useSelfTestCLI.htmlSelfTestFindCLI.htmlSelfTestRunCLI.htmlSelfTestShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsystemKRAConnectorAddCLI.htmlKRAConnectorCLI.htmlKRAConnectorRemoveCLI.htmlKRAConnectorShowCLI.htmlSecurityDomainCLI.htmlSecurityDomainShowCLI.htmlTPSConnectorAddCLI.htmlTPSConnectorCLI.htmlTPSConnectorFindCLI.htmlTPSConnectorModCLI.htmlTPSConnectorRemoveCLI.htmlTPSConnectorShowCLI.htmlclass-useKRAConnectorAddCLI.htmlKRAConnectorCLI.htmlKRAConnectorRemoveCLI.htmlKRAConnectorShowCLI.htmlSecurityDomainCLI.htmlSecurityDomainShowCLI.htmlTPSConnectorAddCLI.htmlTPSConnectorCLI.htmlTPSConnectorFindCLI.htmlTPSConnectorModCLI.htmlTPSConnectorRemoveCLI.htmlTPSConnectorShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksTKSCLI.htmlclass-useTKSCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltpsTPSCLI.htmlauthenticatorAuthenticatorAddCLI.htmlAuthenticatorCLI.htmlAuthenticatorFindCLI.htmlAuthenticatorModifyCLI.htmlAuthenticatorRemoveCLI.htmlAuthenticatorShowCLI.htmlclass-useAuthenticatorAddCLI.htmlAuthenticatorCLI.htmlAuthenticatorFindCLI.htmlAuthenticatorModifyCLI.htmlAuthenticatorRemoveCLI.htmlAuthenticatorShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertTPSCertCLI.htmlTPSCertFindCLI.htmlTPSCertShowCLI.htmlclass-useTPSCertCLI.htmlTPSCertFindCLI.htmlTPSCertShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useTPSCLI.htmlconfigConfigCLI.htmlConfigModifyCLI.htmlConfigShowCLI.htmlclass-useConfigCLI.htmlConfigModifyCLI.htmlConfigShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorConnectorAddCLI.htmlConnectorCLI.htmlConnectorFindCLI.htmlConnectorModifyCLI.htmlConnectorRemoveCLI.htmlConnectorShowCLI.htmlclass-useConnectorAddCLI.htmlConnectorCLI.htmlConnectorFindCLI.htmlConnectorModifyCLI.htmlConnectorRemoveCLI.htmlConnectorShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileProfileAddCLI.htmlProfileCLI.htmlProfileFindCLI.htmlProfileMappingAddCLI.htmlProfileMappingCLI.htmlProfileMappingFindCLI.htmlProfileMappingModifyCLI.htmlProfileMappingRemoveCLI.htmlProfileMappingShowCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlclass-useProfileAddCLI.htmlProfileCLI.htmlProfileFindCLI.htmlProfileMappingAddCLI.htmlProfileMappingCLI.htmlProfileMappingFindCLI.htmlProfileMappingModifyCLI.htmlProfileMappingRemoveCLI.htmlProfileMappingShowCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltokenTokenAddCLI.htmlTokenCLI.htmlTokenFindCLI.htmlTokenModifyCLI.htmlTokenRemoveCLI.htmlTokenShowCLI.htmlclass-useTokenAddCLI.htmlTokenCLI.htmlTokenFindCLI.htmlTokenModifyCLI.htmlTokenRemoveCLI.htmlTokenShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmluserUserAddCLI.htmlUserCLI.htmlUserCertAddCLI.htmlUserCertCLI.htmlUserCertFindCLI.htmlUserCertRemoveCLI.htmlUserCertShowCLI.htmlUserFindCLI.htmlUserMembershipAddCLI.htmlUserMembershipCLI.htmlUserMembershipFindCLI.htmlUserMembershipRemoveCLI.htmlUserModifyCLI.htmlUserRemoveCLI.htmlUserShowCLI.htmlclass-useUserAddCLI.htmlUserCLI.htmlUserCertAddCLI.htmlUserCertCLI.htmlUserCertFindCLI.htmlUserCertRemoveCLI.htmlUserCertShowCLI.htmlUserFindCLI.htmlUserMembershipAddCLI.htmlUserMembershipCLI.htmlUserMembershipFindCLI.htmlUserMembershipRemoveCLI.htmlUserModifyCLI.htmlUserRemoveCLI.htmlUserShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcmsutilcryptoCryptoUtil.SSLVersion.htmlCryptoUtil.htmlModule.htmlToken.htmlclass-useCryptoUtil.SSLVersion.htmlCryptoUtil.htmlModule.htmlToken.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlhttpConnectAsync.htmlHttp.htmlHttpClient.htmlHttpEofException.htmlHttpMessage.htmlHttpProtocolException.htmlHttpRequest.htmlHttpResponse.htmlJssSSLSocketFactory.htmlclass-useConnectAsync.htmlHttp.htmlHttpClient.htmlHttpEofException.htmlHttpMessage.htmlHttpProtocolException.htmlHttpRequest.htmlHttpResponse.htmlJssSSLSocketFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlldapLDAPPostReadControl.htmlLDAPUtil.htmlclass-useLDAPPostReadControl.htmlLDAPUtil.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlnetISocketFactory.htmlclass-useISocketFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspBasicOCSPResponse.Template.htmlBasicOCSPResponse.htmlCertID.Template.htmlCertID.htmlCertStatus.htmlGoodInfo.Template.htmlGoodInfo.htmlKeyHashID.Template.htmlKeyHashID.htmlNameID.Template.htmlNameID.htmlOCSPProcessor.htmlOCSPRequest.Template.htmlOCSPRequest.htmlOCSPResponse.Template.htmlOCSPResponse.htmlOCSPResponseStatus.Template.htmlOCSPResponseStatus.htmlRequest.Template.htmlRequest.htmlResponderID.htmlResponse.htmlResponseBytes.Template.htmlResponseBytes.htmlResponseData.Template.htmlResponseData.htmlRevokedInfo.Template.htmlRevokedInfo.htmlSignature.Template.htmlSignature.htmlSingleResponse.Template.htmlSingleResponse.htmlTBSRequest.Template.htmlTBSRequest.htmlUnknownInfo.Template.htmlUnknownInfo.htmlclass-useBasicOCSPResponse.Template.htmlBasicOCSPResponse.htmlCertID.Template.htmlCertID.htmlCertStatus.htmlGoodInfo.Template.htmlGoodInfo.htmlKeyHashID.Template.htmlKeyHashID.htmlNameID.Template.htmlNameID.htmlOCSPProcessor.htmlOCSPRequest.Template.htmlOCSPRequest.htmlOCSPResponse.Template.htmlOCSPResponse.htmlOCSPResponseStatus.Template.htmlOCSPResponseStatus.htmlRequest.Template.htmlRequest.htmlResponderID.htmlResponse.htmlResponseBytes.Template.htmlResponseBytes.htmlResponseData.Template.htmlResponseData.htmlRevokedInfo.Template.htmlRevokedInfo.htmlSignature.Template.htmlSignature.htmlSingleResponse.Template.htmlSingleResponse.htmlTBSRequest.Template.htmlTBSRequest.htmlUnknownInfo.Template.htmlUnknownInfo.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpasswordIPasswordReader.htmlIPasswordStore.htmlIPasswordWriter.htmlNuxwdogPasswordStore.htmlPlainPasswordFile.htmlPlainPasswordReader.htmlPlainPasswordWriter.htmlclass-useIPasswordReader.htmlIPasswordStore.htmlIPasswordWriter.htmlNuxwdogPasswordStore.htmlPlainPasswordFile.htmlPlainPasswordReader.htmlPlainPasswordWriter.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlradiusAccessAccept.htmlAccessChallenge.htmlAccessReject.htmlAccessRequest.htmlAttribute.htmlAttributeFactory.htmlAttributeSet.htmlAuthenticator.htmlCHAPChallengeAttribute.htmlCHAPPasswordAttribute.htmlCallbackIdAttribute.htmlCallbackNumberAttribute.htmlCallerStationIdAttribute.htmlCallingStationIdAttribute.htmlChallengeException.htmlFilterIdAttribute.htmlFramedAppleTalkLinkAttribute.htmlFramedAppleTalkNetworkAttribute.htmlFramedAppleTalkZoneAttribute.htmlFramedCompressionAttribute.htmlFramedIPAddressAttribute.htmlFramedIPNetmaskAttribute.htmlFramedIPXNetworkAttribute.htmlFramedMTUAttribute.htmlFramedProtocolAttribute.htmlFramedRouteAttribute.htmlFramedRoutingAttribute.htmlGenericAttribute.htmlIdleTimeoutAttribute.htmlLoginIPHostAttribute.htmlLoginLATGroupAttribute.htmlLoginLATNodeAttribute.htmlLoginLATPortAttribute.htmlLoginLATServiceAttribute.htmlLoginServiceAttribute.htmlLoginTCPPortAttribute.htmlNASClassAttribute.htmlNASIPAddressAttribute.htmlNASIdentifierAttribute.htmlNASPacket.htmlNASPortAttribute.htmlNASPortTypeAttribute.htmlPacket.htmlPacketFactory.htmlPortLimitAttribute.htmlProxyStateAttribute.htmlRadiusConn.htmlRejectException.htmlReplyMessageAttribute.htmlRequestAuthenticator.htmlResponseAuthenticator.htmlServerPacket.htmlServiceTypeAttribute.htmlSessionTimeoutAttribute.htmlStateAttribute.htmlTerminationActionAttribute.htmlUserNameAttribute.htmlUserPasswordAttribute.htmlVendorSpecificAttribute.htmlclass-useAccessAccept.htmlAccessChallenge.htmlAccessReject.htmlAccessRequest.htmlAttribute.htmlAttributeFactory.htmlAttributeSet.htmlAuthenticator.htmlCHAPChallengeAttribute.htmlCHAPPasswordAttribute.htmlCallbackIdAttribute.htmlCallbackNumberAttribute.htmlCallerStationIdAttribute.htmlCallingStationIdAttribute.htmlChallengeException.htmlFilterIdAttribute.htmlFramedAppleTalkLinkAttribute.htmlFramedAppleTalkNetworkAttribute.htmlFramedAppleTalkZoneAttribute.htmlFramedCompressionAttribute.htmlFramedIPAddressAttribute.htmlFramedIPNetmaskAttribute.htmlFramedIPXNetworkAttribute.htmlFramedMTUAttribute.htmlFramedProtocolAttribute.htmlFramedRouteAttribute.htmlFramedRoutingAttribute.htmlGenericAttribute.htmlIdleTimeoutAttribute.htmlLoginIPHostAttribute.htmlLoginLATGroupAttribute.htmlLoginLATNodeAttribute.htmlLoginLATPortAttribute.htmlLoginLATServiceAttribute.htmlLoginServiceAttribute.htmlLoginTCPPortAttribute.htmlNASClassAttribute.htmlNASIPAddressAttribute.htmlNASIdentifierAttribute.htmlNASPacket.htmlNASPortAttribute.htmlNASPortTypeAttribute.htmlPacket.htmlPacketFactory.htmlPortLimitAttribute.htmlProxyStateAttribute.htmlRadiusConn.htmlRejectException.htmlReplyMessageAttribute.htmlRequestAuthenticator.htmlResponseAuthenticator.htmlServerPacket.htmlServiceTypeAttribute.htmlSessionTimeoutAttribute.htmlStateAttribute.htmlTerminationActionAttribute.htmlUserNameAttribute.htmlUserPasswordAttribute.htmlVendorSpecificAttribute.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlscepCRSPKIMessage.htmlclass-useCRSPKIMessage.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlutilCert.htmlFmt.htmlHMACDigest.htmlUtils.htmlclass-useCert.htmlFmt.htmlHMACDigest.htmlUtils.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlxmlXMLObject.htmlclass-useXMLObject.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconstant-values.htmldeprecated-list.htmlhelp-doc.htmlindex-all.htmlindex.htmlorgdogtagpkicommonBase64Adapter.htmlCAInfo.htmlCAInfoClient.htmlCAInfoResource.htmlInfo.htmlInfoClient.htmlInfoResource.htmlKRAInfo.htmlKRAInfoClient.htmlKRAInfoResource.htmlLoginClient.htmlLoginResource.htmlVersion.htmlclass-useBase64Adapter.htmlCAInfo.htmlCAInfoClient.htmlCAInfoResource.htmlInfo.htmlInfoClient.htmlInfoResource.htmlKRAInfo.htmlKRAInfoClient.htmlKRAInfoResource.htmlLoginClient.htmlLoginResource.htmlVersion.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmllegacypolicyEPolicyException.htmlIEnrollmentPolicy.htmlIExpression.htmlIGeneralNameAsConstraintsConfig.htmlIGeneralNameConfig.htmlIGeneralNameUtil.htmlIGeneralNamesAsConstraintsConfig.htmlIGeneralNamesConfig.htmlIKeyArchivalPolicy.htmlIKeyRecoveryPolicy.htmlIPolicyPredicateParser.htmlIPolicyProcessor.htmlIPolicyRule.htmlIPolicySet.htmlIRenewalPolicy.htmlIRevocationPolicy.htmlISubjAltNameConfig.htmlclass-useEPolicyException.htmlIEnrollmentPolicy.htmlIExpression.htmlIGeneralNameAsConstraintsConfig.htmlIGeneralNameConfig.htmlIGeneralNameUtil.htmlIGeneralNamesAsConstraintsConfig.htmlIGeneralNamesConfig.htmlIKeyArchivalPolicy.htmlIKeyRecoveryPolicy.htmlIPolicyPredicateParser.htmlIPolicyProcessor.htmlIPolicyRule.htmlIPolicySet.htmlIRenewalPolicy.htmlIRevocationPolicy.htmlISubjAltNameConfig.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlserverpolicyAPolicyRule.htmlclass-useAPolicyRule.htmlconstraintsAgentPolicy.htmlAttributePresentConstraints.htmlDSAKeyConstraints.htmlDefaultRevocation.htmlIssuerConstraints.htmlKeyAlgorithmConstraints.htmlManualAuthentication.htmlRSAKeyConstraints.htmlRenewalConstraints.htmlRenewalValidityConstraints.htmlRevocationConstraints.htmlSigningAlgorithmConstraints.htmlSubCANameConstraints.htmlUniqueSubjectName.htmlUniqueSubjectNameConstraints.htmlValidityConstraints.htmlclass-useAgentPolicy.htmlAttributePresentConstraints.htmlDSAKeyConstraints.htmlDefaultRevocation.htmlIssuerConstraints.htmlKeyAlgorithmConstraints.htmlManualAuthentication.htmlRSAKeyConstraints.htmlRenewalConstraints.htmlRenewalValidityConstraints.htmlRevocationConstraints.htmlSigningAlgorithmConstraints.htmlSubCANameConstraints.htmlUniqueSubjectName.htmlUniqueSubjectNameConstraints.htmlValidityConstraints.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlextensionsAuthInfoAccessExt.htmlAuthorityKeyIdentifierExt.htmlBasicConstraintsExt.htmlCRLDistributionPointsExt.htmlCertificatePoliciesExt.htmlCertificateRenewalWindowExt.htmlCertificateScopeOfUseExt.htmlExtendedKeyUsageExt.htmlGenericASN1Ext.htmlIssuerAltNameExt.htmlKeyUsageExt.htmlNSCCommentExt.htmlNSCertTypeExt.htmlNameConstraintsExt.htmlOCSPNoCheckExt.htmlPolicyConstraintsExt.htmlPolicyMappingsExt.htmlPresenceExt.htmlPrivateKeyUsagePeriodExt.htmlRemoveBasicConstraintsExt.htmlSubjAltNameExt.htmlSubjectAltNameExt.htmlSubjectDirectoryAttributesExt.htmlSubjectKeyIdentifierExt.htmlclass-useAuthInfoAccessExt.htmlAuthorityKeyIdentifierExt.htmlBasicConstraintsExt.htmlCRLDistributionPointsExt.htmlCertificatePoliciesExt.htmlCertificateRenewalWindowExt.htmlCertificateScopeOfUseExt.htmlExtendedKeyUsageExt.htmlGenericASN1Ext.htmlIssuerAltNameExt.htmlKeyUsageExt.htmlNSCCommentExt.htmlNSCertTypeExt.htmlNameConstraintsExt.htmlOCSPNoCheckExt.htmlPolicyConstraintsExt.htmlPolicyMappingsExt.htmlPresenceExt.htmlPrivateKeyUsagePeriodExt.htmlRemoveBasicConstraintsExt.htmlSubjAltNameExt.htmlSubjectAltNameExt.htmlSubjectDirectoryAttributesExt.htmlSubjectKeyIdentifierExt.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlserverPKIServerSocketListener.htmlclass-usePKIServerSocketListener.htmlconnectorIRemoteRequest.htmlclass-useIRemoteRequest.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrestACLInterceptor.htmlAccountService.htmlAuditService.htmlAuthMethodInterceptor.htmlCAInfoService.htmlFeatureService.htmlGroupService.htmlInfoService.htmlKRAInfoService.htmlLoginService.htmlMessageFormatInterceptor.htmlPKIApplication.htmlPKIExceptionMapper.htmlSecurityDomainService.htmlSelfTestService.htmlSessionContextInterceptor.htmlSystemCertService.htmlSystemConfigService.htmlUserService.htmlclass-useACLInterceptor.htmlAccountService.htmlAuditService.htmlAuthMethodInterceptor.htmlCAInfoService.htmlFeatureService.htmlGroupService.htmlInfoService.htmlKRAInfoService.htmlLoginService.htmlMessageFormatInterceptor.htmlPKIApplication.htmlPKIExceptionMapper.htmlSecurityDomainService.htmlSelfTestService.htmlSessionContextInterceptor.htmlSystemCertService.htmlSystemConfigService.htmlUserService.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltpsTPSConnection.htmlapduAPDU.Type.htmlAPDU.htmlAPDUResponse.htmlClearKeySlotsAPDU.htmlCreateObjectAPDU.htmlCreatePinAPDU.htmlDeleteFileAPDU.htmlDeleteFileGP211APDU.htmlExternalAuthenticateAPDU.SecurityLevel.htmlExternalAuthenticateAPDU.htmlExternalAuthenticateAPDUGP211.SecurityLevel.htmlExternalAuthenticateAPDUGP211.htmlFormatMuscleAppletAPDU.htmlGenerateKeyAPDU.htmlGenerateKeyECCAPDU.htmlGetDataAPDU.htmlGetIssuerInfoAPDU.htmlGetLifecycleAPDU.htmlGetStatusAPDU.htmlGetVersionAPDU.htmlImportKeyAPDU.htmlImportKeyEncAPDU.htmlInitializeUpdateAPDU.htmlInstallAppletAPDU.htmlInstallAppletAPDUGP211.htmlInstallLoadAPDU.htmlInstallLoadGP211APDU.htmlLifecycleAPDU.htmlListObjectsAPDU.htmlListPinsAPDU.htmlLoadFileAPDU.htmlLoadFileAPDUGP211.htmlPutKeyAPDU.htmlReadBufferAPDU.htmlReadObjectAPDU.htmlSelectAPDU.htmlSetIssuerInfoAPDU.htmlSetPinAPDU.htmlUnblockPinAPDU.htmlWriteObjectAPDU.htmlclass-useAPDU.Type.htmlAPDU.htmlAPDUResponse.htmlClearKeySlotsAPDU.htmlCreateObjectAPDU.htmlCreatePinAPDU.htmlDeleteFileAPDU.htmlDeleteFileGP211APDU.htmlExternalAuthenticateAPDU.SecurityLevel.htmlExternalAuthenticateAPDU.htmlExternalAuthenticateAPDUGP211.SecurityLevel.htmlExternalAuthenticateAPDUGP211.htmlFormatMuscleAppletAPDU.htmlGenerateKeyAPDU.htmlGenerateKeyECCAPDU.htmlGetDataAPDU.htmlGetIssuerInfoAPDU.htmlGetLifecycleAPDU.htmlGetStatusAPDU.htmlGetVersionAPDU.htmlImportKeyAPDU.htmlImportKeyEncAPDU.htmlInitializeUpdateAPDU.htmlInstallAppletAPDU.htmlInstallAppletAPDUGP211.htmlInstallLoadAPDU.htmlInstallLoadGP211APDU.htmlLifecycleAPDU.htmlListObjectsAPDU.htmlListPinsAPDU.htmlLoadFileAPDU.htmlLoadFileAPDUGP211.htmlPutKeyAPDU.htmlReadBufferAPDU.htmlReadObjectAPDU.htmlSelectAPDU.htmlSetIssuerInfoAPDU.htmlSetPinAPDU.htmlUnblockPinAPDU.htmlWriteObjectAPDU.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useTPSConnection.htmlmainTPSBuffer.htmlTPSException.htmlUtil.htmlclass-useTPSBuffer.htmlTPSException.htmlUtil.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlmsgASQRequestMsg.htmlASQResponseMsg.htmlBeginOpMsg.htmlEndOpMsg.TPSStatus.htmlEndOpMsg.htmlExtendedLoginRequestMsg.htmlExtendedLoginResponseMsg.htmlLoginRequestMsg.htmlLoginResponseMsg.htmlNewPinRequestMsg.htmlNewPinResponseMsg.htmlSecureIdRequestMsg.htmlSecureIdResponseMsg.htmlStatusUpdateRequestMsg.htmlStatusUpdateResponseMsg.htmlTPSMessage.MsgType.htmlTPSMessage.OpType.htmlTPSMessage.htmlTokenPDURequestMsg.htmlTokenPDUResponseMsg.htmlclass-useASQRequestMsg.htmlASQResponseMsg.htmlBeginOpMsg.htmlEndOpMsg.TPSStatus.htmlEndOpMsg.htmlExtendedLoginRequestMsg.htmlExtendedLoginResponseMsg.htmlLoginRequestMsg.htmlLoginResponseMsg.htmlNewPinRequestMsg.htmlNewPinResponseMsg.htmlSecureIdRequestMsg.htmlSecureIdResponseMsg.htmlStatusUpdateRequestMsg.htmlStatusUpdateResponseMsg.htmlTPSMessage.MsgType.htmlTPSMessage.OpType.htmlTPSMessage.htmlTokenPDURequestMsg.htmlTokenPDUResponseMsg.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmloverview-frame.htmloverview-summary.htmloverview-tree.htmlpackage-listscript.jsserialized-form.htmlstylesheet.css/usr/share/javadoc//usr/share/javadoc/pki-10.5.9//usr/share/javadoc/pki-10.5.9/com//usr/share/javadoc/pki-10.5.9/com/netscape//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/account//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/account/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/acls//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/acls/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/apps//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/apps/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authentication//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authentication/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authority//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authority/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authorization//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authorization/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/base//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/base/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ca//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ca/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/cert//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client/connection//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client/connection/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/common//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/connector//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/certdb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/certdb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/crldb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/crldb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/keydb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/keydb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/replicadb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/replicadb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/repository//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/repository/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/evaluators//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/evaluators/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/extensions//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/extensions/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/group//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/group/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/jobs//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/jobs/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/key//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/key/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/kra//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/kra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ldap//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ldap/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/listeners//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/listeners/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging/event//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging/event/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/notification//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/notification/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/password//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/password/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/pattern//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/pattern/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/profile//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/property//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/property/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/publish//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/publish/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ra//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/registry//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/registry/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request/ldap//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request/ldap/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/security//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/security/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/selftests//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/selftests/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/system//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/system/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/template//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/template/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tks//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/authenticator//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/authenticator/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/cert//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/config//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/config/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/connector//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/profile//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/token//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/token/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/user//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/user/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/usrgrp//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/usrgrp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/util//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/util/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authentication//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authentication/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authorization//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authorization/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/crl//usr/share/javadoc/pki-10.5.9/com/netscape/cms/crl/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/evaluators//usr/share/javadoc/pki-10.5.9/com/netscape/cms/evaluators/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/jobs//usr/share/javadoc/pki-10.5.9/com/netscape/cms/jobs/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/listeners//usr/share/javadoc/pki-10.5.9/com/netscape/cms/listeners/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/logging//usr/share/javadoc/pki-10.5.9/com/netscape/cms/logging/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/notification//usr/share/javadoc/pki-10.5.9/com/netscape/cms/notification/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cms/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/password//usr/share/javadoc/pki-10.5.9/com/netscape/cms/password/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/common//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/constraint//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/constraint/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/def//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/def/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/input//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/input/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/output//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/output/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/updater//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/updater/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/mappers//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/mappers/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/publishers//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/publishers/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/realm//usr/share/javadoc/pki-10.5.9/com/netscape/cms/realm/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/request//usr/share/javadoc/pki-10.5.9/com/netscape/cms/request/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ca//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ca/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/common//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/kra//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/kra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/tks//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/admin//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/admin/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/base//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/base/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert/scep//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert/scep/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/common//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/connector//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/csadmin//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/csadmin/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/filter//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/filter/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/key//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/key/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/processors//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/processors/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/request//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/request/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/tks//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/shares//usr/share/javadoc/pki-10.5.9/com/netscape/cms/shares/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/authority//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/authority/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ca//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ca/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cert//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cli//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cli/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/client//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/client/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/feature//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/feature/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/group//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/group/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/key//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/key/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/kra//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/kra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/logging//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/logging/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs12//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs12/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs7//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs7/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/selftests//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/selftests/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/system//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/system/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tks//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/authenticator//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/authenticator/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/cert//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/config//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/config/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/connector//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/token//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/token/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/user//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/user/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/crypto//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/crypto/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/http//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/http/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ldap//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ldap/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/net//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/net/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/password//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/password/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/radius//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/radius/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/scep//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/scep/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/util//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/util/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/xml//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/xml/class-use//usr/share/javadoc/pki-10.5.9/org//usr/share/javadoc/pki-10.5.9/org/dogtagpki//usr/share/javadoc/pki-10.5.9/org/dogtagpki/common//usr/share/javadoc/pki-10.5.9/org/dogtagpki/common/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/policy//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/policy/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/constraints//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/constraints/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/extensions//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/extensions/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/connector//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/connector/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/rest//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/rest/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/apdu//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/apdu/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/main//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/main/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/msg//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/msg/class-use/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=genericdrpmxz2x86_64-redhat-linux-gnudirectoryHTML document, ASCII textHTML document, ASCII text, with very long linesASCII textASCII text, with very long lines  !"#$%&'()*+,-./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[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR?P7zXZ !#,|.h]"k%vzhQt=,2]ZjX2);,vF c |RF6sn47/kAXxSӨˢM9g,U}f4:L 5~&y\3Fl±䲟'U}F"8/(zm=%vGx ĉ?m"{+Y_zgr@Xd~fQ/Oii] SN3(2C] vWࢌ) ̓%R6eq ZJ6gF%Y[ )>wG*rؖKeޞEv×ClhoMR\TA_녜 zNs>ML:UEP#ȹsK6 P\3fa>PE(gyQ)j&|Z7\_ OMB0M[81p-ݛa@C&5#g Z4כ/ܼrJ;3,f/S2%31Q$x5dtrPB UHE83'0WH,{rD5(iO?D:P$CܓT@ GeC ")F}eC3s~F?5M#:Xtv /w]aOtuX-9 `v3I ]̞%tڤ5N% uSv$56 _yH5>WqE+No7hD9jfQ\(Mօ%U샱8vqDJݼ&5GN[ 1ֹcO $o_ G` ,O 7թco K^Yu?Z 0^PCȷ`F檌>B"GB},u[,(I)1ވs es6J9[Dw8zf: tҾh͉|fͪȷ (}R9*Y>Y# JYR,A|`x4o&oG  ńoT5D:Q/[g"z5#SPxf#DD>h ؚtl/3@x,]-gN,HwbI|u@&4 B=H2!uギ')&{PFN}gM?襻T?ZF(W`MIn[[4{sˏ +ib'+6kxz+Noby]; ҁ-XZ-(zC%'xZ¤ò/4}Y&Bj\8ygh}GC$W+aF0w#=dOޞKlʥ: +Q++^&Z||: qnGk̆jaoSDbNpW=?ӊ127.⯠u|=Fy/A"xeP>n gT&E1@SAmğ|"LyZQ%$!RujGs;`SvƨP#Lm+͋]zO*38TfC+#Шs ||P_jA{jTjIj9!UNS$ UF5>@XlZv6*]K?J.v?}¡0Pp" ̌daq!Gn'h|wC7HO@]UByl/ 'MѮ~' 0V9.V͎94K R"^Xm<{ U]p A[*Eכy_)\y%"]f;YFz|&H !O+X'ߋD{0.:@Xt~4:1iyB5$imc+_8mZuI߯RZB73HM'Iq<(P|'y龽#+^]-~n kZOhjM8&ƟPĻşZƐ/Ѣz1퐭}8_ hI9YX8뻛Fzee]S϶:G4ChO 37!m>Y sV$k =bۚlLIC#zntʼru.wz->|)Ĉwx sv:nGU ςh踖 ?&L颥r V8 N[A8̥Ҏ yI3"8 D672x$`(A &4ߙ`u 'yu{-! zF9rE**S\70?B)ZGB[uZ--O,\ qә6y.\bH&M*6bjo/a,^8$t?&WšW/B[[ŏd:|c|ELu% .YU@I^۾K8|1fMKQm-%s;zEI켎1.!\ #? a:0)Q#4e\h1O2[ϐgTqJ+F+ :̲m3KI;fTm<dt{(-,\TZ{b:᦮0xYd=ZV8 (DSIa9;ZqƇ͙~nJfKHhFSbH{E4~U9!gڂ Fo]}3:ȇ8]hh$Z^D`Бp$ y;XPg&N &m3p-w.\, h)iG:]c8AM~3s?ٰ})mP-~kGʐ"ьh xnk%~9{Z&rBoӅ{k="^90%U#=PT]]J6k08d3'YҾ8*RWs˫d $0{CQ [V.k%yN;*j]󒅈gIDjYd(Je,-^7bD"%?FBs)T~E m( TK8EDeI+c=t*qybpSh{Ѕ`UQT4U'ǐy1G⨊0h >ijY:rNSDEQ `сzR9- +cƽi>m妮ec~kN`C܌uo gm@DwE p&fUJK^Wv=,ēH6pFtmk_TC&F$*X|5[xF]mopvV+\\PubSCLvgh@_@4>BES觮LRЉ9=4JuzJ00N J$6=4ڝ,rPTb0(%/Zrzc#e3򱡗@&B0NG< [Q=3ڃML-3YI/D:X_wyQSyJq~TrYvjݫK-rUOh-=a|C!kwk 1&s*{X)J'o 8 r AosH5=JvvE4 7&@ F/Prן8KvVԆWqxs)(@S,>&R1i5àR -=6YiX?[ݾ8xX&sC:i tQ{}iu[⚑i~Jqrr4_T×*&<օ[=203M6n+%h="D|qzHSV oPbl>>3 7wZQ-|Il; tm~t@[MHu/ +#~򨂖c#8^J"Q֫(226-Pt[MWU[36C#K|VE"xvD(VgK'-V/M7[:.餴yQu\\ - 5`_\ɂݹžZ][|T“ܕ׬ qNӸOEgi Axlj$Z6շ~wOצ;Ws~$FVcY }z㇒'_M 2B"zB?#no1@`Em4.lמEy59ܽ #j2\'_ncjigH(HlZ95 ̑z(’o.pVU&9T}&#>-Y1NgE. afx4dE`xZ$а<>202|!UB|ô)@ C>ک"|QOՀ참|M> v q3ΘTPa _ã-&0#CZABu8H\6cDG-4Wwrs4PM s8#@B Uuz^r٠ËE8=܈F^ >Nog ֧OPQrpӋns Z hӇTcݺO>TiJz%66$r{Q[Z\ \2[? s:7H"n,a$Fe{~@z9DQt'k%!lyjA}PuQ׹:zh(fa/;jcucK{8 ZnP4Pf.@(AI+yƂĜ;9xvx=$fDjǼ|W~]ߵRvӺ,SVrTzarPJd5nl8{`VH7\ѶNo=IxM`{BÊ' Bbޢ4V~LHY234ƕQDNـlUF qӉ\8$CG$agA@ڴ:F^Xhg ($2dӥ=#Gngw--Hea/^eRO@WV^AvB;}oKZCI*>¶# 2C,دFOu,3j20/ocoQuhd ́I5eptþx-kϼE+A)wհ)oG09bЫഩm fZ,d23 DryVQS$@XU_e*jAaWW,n}%bjОSz>/)v-y7 ye]Gg|&"w/JVD+2`(Ai`RiiOen` +Dg٘$P?$2-P򺽺']i ̇x*" m Z\|#`≱+)E[8 , {xfkEk,$,Ȼjx0o:Hu-6졈Ԛ!J4`"s8 A-݅Mg}X*7iDۅS:޽Hɋj`{BE'4(Hn(+n ئ@̃7?ċ*|L}TE,Jh͢!KWàIb(b?_d}'j{UO19p_H |A9n­"D4gU3mQhnSW> ZmmF W"L^̨KZﺗU|nSy7VVaD/H@n:Ri82 $rS$aͷdA"sOX" K Rڇ9 `q}`8I֓Wk4guiN1!2%eY`mcgﲨtkB(g{,̚ oVF{ &$Ay^6~#湜Yu_S(?AbǂF V~NqtBYxB@=!_G\^h@w$h#?|0X( */Z=mR~%4WP2y=K~97xdm&9?^2MG#Pb Mը;$tcq~Y>?!UE~1"$+d tF\ᑤ den6};/_sd4Py;,^o%Ue}Ц2$M5||?nin/js)|JYHucWJ11y;М:␜Lendwnphȑ G>Ƀ@#Ivnb1tߡ{|r-ab"ԏ s _iС{7ӓǢp'P\ Ijg,5a > ~։ \}ƿς`ėd*hi?F A8NAўZ,2TH|k5OkChhZoI_`ˎ]q:S@QC4G8=bi#]H8(NkC415szY$EnQO$&Z "/w݄8X-ȍHkʺ$XXɰRFe+I===mc9Uoy#EzE=pMM.7=_^qO=W:Ӷ@POvjB &*2vMׄm$Fh$q~8YPtun)ąV> !)'CThtq '1KwӸ'!@- f]@07b+!4 Zq>\>\γx`: |8L5Z ɖ9L=k1 M+K-VbNj"54&Q47$C yDŌ$ ;mk؀1S"\~!T`}#9AehJ9k60rCJOj)vZ+v+~@ |.9u(xh>ٺ Χ~lY˻IݘȢ O0Ng5?Wd:* 8*f d.n+XOĚNE]JK( .TOyKD+cJ2D7U]r/' Όۺ9X4ET@.^6лGQ/r,͈PhT9NUiG˽Ph,-|4Wt BD/'nTNсKIQ*$U> jxq?'Hdib":W\SۑE+ cRi P?׺NjE X["4KI#Vi҃x 5Xu e}KmSE > zqS֙Hn"HnW! zе$դӲk-3˯(9$R%I/aI]ߓ~Vw^?]/~> !@T^aWPƩz.]8%4g$YXƩorq qk Ik  ݹӴ6XޱO} |' sxv=>X|~-,<>*w!FBy?iEJaHǟ$C͹M Shd(b7Z0? ?dQcS~D4յ?Sn#Z#i^0;ȨDnS6ݡmTkKCYEt3`U;t[v[sA[]+~\Џȩt b UOj61dErX׿\\6u_-nWip_8Gew5V}d3H5A5ba (¼=+Ks 72ٛ_{KĚy`vnNZ3{uT^u|"P \Csbd*_ÄS}6Mv-ezgy  Q=T2  Z82z&wx˜ߞ;Wwim3N>,2I/K-o[*ww%wa!V<:yk6k,`j"ZgMn6SIC܅KdWz;W6y!\*ܙ*H٥U7ʅ+fCGkMK!BpmHF$x~8IֺKG"Ptַ>JxHWy(dP旱,<@TqH^P<$z @/iM;JHE'OMUV3 g1d{ɚǖZÿ@"@,m#b}c5(ȴ9#]qNҵsPE+\CG<1{$E邮a:RʷpVy S9I-4r”3w]Vla ?qu`ݚfnl`b1r_)r6f)PD23V@p< q +lF:&QQf=t>h%21gT4J>C$Z jOjq+NOgctTxl`=j&7q"(O`0x1Yv S"PQ2ONw_Q'ACR \y-۳fHy|"h_"nc3&܍ѫ=ew@F prF`WL"Wgҟ͟ {|uDZ.%8N:dN..uSb &YRf:V *SjԦ(ȹ$ ݀̕b:aʩ?=+uѣ%sWn&s^0}N)+l Ȳ2Hu1F(}BWaM~*u.46sdv{s6^S𥚛˒38F~i*~=+7vQ:VyfVdMy_LfM,*8q0*l~:]48ض2CQ:2 ."[ Fm׎Ng}7ڀLXxJx78_{WoB?}#M:lϧQ*)h6}ٱCMgפ|D(ryfkf.l҉_JZJH[-,IJ)BlcEʦWm'fw_ӝC"SlI. zNO6GʆfBD^li|!S,ڎ*J _u 5 p}z]\ݙk䳄6{w@Z*{Rg*^`ՍVN*yxIʻ9۷:`+gII* (tzp"[Te "6D7Җ tӃ0>1]m!g4>I+t>C/ *YL>] }n6dBb{F"! wTJl5GCZ.9]$]|gh\J'cq a}@dNЛL, XE$tI45W4I-0U`88y xhܒ˝QdD+T^^ U#8m 3$%C0hUZi^e6fYO&bгrPdȔO+͠ o72vi4bjV͕w|i0 ): Cx<ق+gKVg><+E$p%'8ap@ dw}ҧ1j&bn?ctW_'HMj ՉE4|Ֆf]@sщɀDIy ZlyTFXfEHqn&Z`LD=:P_(u}T8"Gư `ah!m$eU@V=kw+:ꇌ `', 5.8^h3o:+7szM VWfgPUA8/kNL ٭ex&_C)9L?$,G]7EsH)NM+Wf)+^=gϏggvqx?٦KcF%%OV9V1 @rl؁v,mcT%֓EZx:$ӌڶtx}{0D9Mf| hqs+a" 1Qpl$/-gEYk.YՍ /#}^'!v9x݆g\ <o.=lEڣBvE?OM 2Y.a-&E HƠl?f#8NVHT=bCߡ._ƪR9];䖗.udci9TQXOACۯь,~e"2UQ 5mۧ ft<'TkHRL͠ʶn_\VwsL>.E)A#1$c%'=h|\n ^P&ȈUłe!k1QR,g, yM*F=7|ʹKq1ėK\|Fr;z xb>7qy|E9{ǦYbH)Om'ؠC \-lcyŊT0izjg@8O&EO"v2| տe)1OZ9}Ҽ6hzù<b/~Fii}_i.0;Cfx9*v5#x u2(q(!q iW8㏉ 4$Lv&dMOr 'KC0{B W"^~OOs9Wz[ k-ʛF/LCyGbɮі%`!ߑw7s86oFiן@"oTzs71 ŹF4@kBO` 0U;ި )k8եrir΍HUY}±D,tKFe1Mn}X)!GR#T-yU5C·*=.}txD;nn'6\HÞT k$=Vo{Fm?W~3_䣆<]OEgL NT RK),ba_TEeѥx;=O[/]r|x6րڻU(e .wzo(Bfh1wo[_#vVjhй`0هY^Q>J5AhPJ"s]wYbYzM_~[d'LX .ڿ}RFw 4XA">lѝf]܉vr?!K(ziOw 4z/5[v 5A97E;;6l>Z4io6IҒ?_k14~d-%N P:㹘Y ' %'(dg?nCZ A}1.|W˽洇JF0vX?s]X'zJ2xOŹEcq%62)7 mK71U-[_k܉pT3x4]6PdV+mbVC8 ia%~u JrW#'hrH77DA*n`29CN dHVǛ@ߎWd3F[fNMjW^%Dѯi/y&oG@LTc(s3X?FvgwitX;:~j?$m?>L^)o֖n:XL8OzL+ XI79אÉ%:4B`i$lC=et`{@mb:PO앶V_dK'G"q{|4ϙJ )( :Bq_ɗR 8F 5\0 PKbBK׀0?J!nv _,4ȓg(z&~9r}`"_\#o>\情GTҭ(&VJ@ c%U +U%ilbp|.?q ry\t;b#uW&}cBy4zN A{ G-z}q,o-NFA ] K1Jv~߂\ō@-v)0nЮ~";D;ZA8F)D͈Y<8l8)N1.mޘ1Y)!]W)~%>蕶(HK7 @_c\pqTgzNWƗ$6 涾 7^f넄i2 d/;1Op6ZPRi9&8^<6C9%QyT:LP 6W ZdhTy:Ij7 [U@6&z`zg( g{f-h(E_fX۪w+549w,@6]:d=!ݑr zcNELWxWwfDێZ:W[T]Gl֙#P n]s8$$4z_xOy#r&uc/ $3CY:8]Lw"Sp? o'hO#"'U 8!Ibim`kͦ{Ӕ))aح77\1Ht(7Df_)q;J^B ㈣rP)ތ#YPuk~YQl%&ǯ9ɭÁ|,ɶ~0U-aS"hw YףvI@W 3'1o+Z΁ vῷcQT@N Un}༸'W*,a*1I8o9wAOlwf[EV~\R9y'.m69d]l,vﲢvZ{_PJyyf:AurO紡~4eeI֌hY -yd@4qn5k;D:Еog:n=< ܟ\ &ÒtnZg^(q<"Dt qTYM쳬%~gV>N?ȢatD/&$g=ELF S$1ω Yp`jDkΣ   bO(GKEvY`1TI}Xj?Hy䵚2cdXҌy&u'6ur;64FE<.SG[^ƥ;o=(}S[\͈3ׂ r_8w[ .pT~>+A7הԂ3яԚC1S=-pPU]1$b <+ ״pw`…&({OCbSq8@ 8Ddw LzDž.yve%[UvasbOkX^Cg ukqu/ڧЉ-k /[hW$12GnqHQy:WXEqjFwHlm4oT"nvUD1-#cn|_.p]UƅR2@4Ϸ5K\yG]y0}͵:AB*%~5ߓ@_[1i U[5 Qq&9V&ǽRt ?i N:2*x|ZlN̕/] /;UAdz;)'pԐbk;N _6X`+ш%^i)m79M۸1N\JrSv2Q]'DWV?bXdCǗt@薽RYW# H6G׬JRì_(J/FYH5?IAӶ3KY)0Y"{6\gAtlB.UBap[O+TZ@"]\gn[L;0YCe?UR)\\M{ ]`N%dN~P_z a-C&D 锹8FWrlfH&,1rlPĢꢈ|H3H^/s +Hr0 q^*7rIv'QSgc4.0nxV܍:M FI}FH TZ}JNtKЁu)z ;kO1.e16,{)zA6U2V 2vu()5j5:~8 TK#} 4 ^2'0%3ӑH;\;6Gډ&>f!j"/CUqaK|D2n$c 2P;M6؜-Ǵ 73E2yn1+(#eKf#LUX'~L`I:+$jinV2W2ЙЬv#Sdw_2ߟSRˡ\|KqMh >[m Gkjԣx-PrƨUPOG;"_r:> f68M0~/zK# [^cTLjsųǦiWQ0GPV{6Gs FS]/젭TJ!@ а㡻bϕi&p&i:}$@Y]\"JG RiQzͺEU㩔,{,PƝW)P zdk;>xō xYzm;]-3MA5z}?X ?%4.,bKeO 7u1}> $p- [<=򁼛jÌ Ql,4ZY7{=K4E0mRB r'bx6](hdQle،k\ٺV 0TKIn$7TV6ύ*a"}c7 Aca4;:`;ʙm "pG=1BALԏۍG\RUR݈U`\UmʖA!©Paɷ z,RՒޑޅ.o>$CY:VF&fwzjfw/s+y~l=6Y{ġ'rn}ovs @#RlD“Rq№]?]Ώo۶/J)R!//1_s4-D*DފJAμ)_HVA2_0GJ?]n:S)eW"<2g4`L/2{H 2li؁Zu,O^ppzL0C K' g˼֗q 4Y43}mk'?PdK0w~y+A2 srs^%bo}dq* X1,í :;]iR“'&۸0uHF:}xHNu:u P! SIWmqLɘp*Wx"Bڷإd!:'QM MQqw?c+B\Ќu!ã£H|yFKY b%N&*ib\k:RJǵixgjwg8u7dGS [>häxpcUW#! ѓJDſ0E젆V0&id0a2J&$V%Fq ;rL D~9Ӳ1hDCr;2a{\ 3UJ4_ˀ`oqM.clΥU}s^|Vb)7Ք}tZq)H G<\A—zFv~͢һ1\P/د3*gJ|^cgJ}̚-9AWIRmƓM˅3jE*sj6#AKh4X][dk S㳟H6΅]ZkbQ()P@Dz#.ͬ:!6E /EbeD0g#p5<B 2|'m.\> /kneZ2%cIx J AET ]=VsǞd1^;Z9R:6xO_kJCZrNIߎ677$t{h?xѕ*"ljԒ睿fh> ёMAN!Y"=wscIja+[G8_nuےOMz1ϞSw )] vhꪧ73-|W.ie1泹*?C܊.OCLGNzіusE46 {'df18 f/HaUY_k4 0[J\\:no#)W;BLZKɱ^7ۍl?p8g˳ 9E$Σ ̝n3?xr8[v{$ #8 JzQl8\"xnJa^ƎG(( N 4ii# pkt:{\BNCW<ʷZ2 rLO4@yGBQṱLWgUwђ˴_"ɯ~׫a`\hhw-'ǰ.rZhQb A} #p+ի b.53PƑ B-*CόH/(v vr;c%()(^6y o)GʌRCA #2߹g?xrd\"[wx$Z0[wɟn[3>B18EպBμ۞5+E)ryO l/{ikCc*t+&Β ?.||=KEU :Ր:m]L@U%y,dcePwZL#)'ݣtͫ sMhop #םBySLn KxO/9FjCD+h*;Bq9dN[u7t_`mP#yvP} ȓaS7h9O>S n_ͬSb qy V]&Χ O>nӶ(郒6zBLݱEFLt}0 U^K oho) jPpP i).f < 2 GU Q6Gȱ-t3VAyo k-,R@)aW%F̀xsˠX ,^b7%9e:!Xʃ'Tb"I @S_w^Z4tDKA4 m@]4 fި3"Ы OX hT_>BwN'n>a}22:~[Kfhas$>{<~V1W^ݑ8A;(_Mj6S vmHN+u אJxkCuk\ 40OOeF MqC+w]ALEp.Q:"-ec ,y}mT'EfKlfSKAp< P󘐄VJD`E9wPOthg?]𦀀uT1@}V2嬕, ʿM$ģ둢h?,hCI'U:3x_ adBv-'A kEU|9$J; Sӷ[nsG}FJ=lU)wSf$UQkk>'Ȇ"r"j):,=㣅GH-, '(V_9/H1K.pFr 0 y;H/Eh|KvgU-x :N:\K~s':Om (g bV'MkF7jN&Ld|"WzSW<"/jq]9dwRv=.墒bp&o`* J|wF$8!ƮU13NPbi{E,5"18hv$c+9SS01c d,ͅW/\UdӔ'f߽o{--PRnTSH&܃sbm8QjԺW1]62}"Cda 5ʈ&>v2<{TTPO%D)ˤ?^X 2#  W$RbǮSb愲M'Ϻ<)=oD-vqj 7!jZ׎'D.x^N* n.B ӰUw5hv"=َb Yk#g"FV34mc܇Kj-lZȟlv2"c|P'M%R]MqBXt̽= !柩fȍ*r9x)7ǀBDaΒ'aDdJ ̀u3w` cR<$?j,Wz\R͋w\jzprXI]F}GǵD+$CoDgH=נGѺjY!myH:^Di%mPB( #)MlO5m\}yO!֟{Ja -Rnz,H^߁J7A%"1O!L1>od7@,I5U jo!Ov ]ѐ:^(k(jPFLgo,n5@~G% ݟkS1NO4ykSϷd8G:'9dX*%۞A[`rsRo<<$/u99hj>['Vu9l'Ξ ;M݅y)@53Hk{H}:=fWرAnA.GyV*+Hmykaڲ='q @2| ;$ JF *|GB̉*2|cy-YHSqԑaRGk\m2mR2)z )P}dwP=hgU'>i~z$h Ғ ך`fܬ} @ p ?;7ɇ?^+  7+wsjg6Nuv_w>Pdn+zɅtVVA#YRb\ 蘶 YZ