3x   c  c c c c c  c c       c  %   c   2 2 c c      c   L Q     c f c Q q t c c     Q Q c           ! " "# $%&' ()* +,-@@ ./01 t2345678 9:;<=   >? @ ABC DEF Q"GHIJKL M NOP  Q RST UVWXYZ [ \ "]^_`a bcdefgh i Rjk jl cmn co cpq rstuvwxyz{|}~  $ Q  c      & & c      c c c c  & c c       c      " " %  ldapUrlLjava/lang/String;ldapsUrlldapBasereferralldapConnectTimeLimitldapSearchTimeLimitIldapSearchCountLimitcurrentReferralInfoenvLjava/util/Hashtable; Signature;Ljava/util/Hashtable;rContextLjavax/naming/Context;userName userPasswordrefExc Ljavax/naming/ReferralException; logMetacatLorg/apache/log4j/Logger;()VCodeLineNumberTableLocalVariableTablepnfe4Ledu/ucsb/nceas/utilities/PropertyNotFoundException;nfe!Ljava/lang/NumberFormatException;this!Ledu/ucsb/nceas/metacat/AuthLdap; StackMapTable Exceptions authenticate'(Ljava/lang/String;Ljava/lang/String;)Zposition position2decodedrefUrlrefBasenpe Ljava/lang/NullPointerException;neLjavax/naming/NamingException;userpassword authenticatedZ identifieruidHldapAuthenticate((Ljava/lang/String;Ljava/lang/String;Z)ZsecureConnectionOnlyL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)ZeLjava/io/IOException;)Ledu/ucsb/nceas/metacat/AuthTLSException; aliasedDnee&Ljavax/naming/AuthenticationException;aeateine#Ljavax/naming/InvalidNameException;dn rootServerrootBaseserveruserDNLocalVariableTypeTablegetAliasedDnTLS;(Ljava/lang/String;Ljava/util/Hashtable;)Ljava/lang/String;aliasuseTLSa(Ljava/lang/String;Ljava/util/Hashtable;)Ljava/lang/String;getAliasedDnNonTLS getAliasedDn<(Ljava/lang/String;Ljava/util/Hashtable;Z)Ljava/lang/String;result%Ljavax/naming/directory/SearchResult;sctxLjavax/naming/ldap/LdapContext;tls$Ljavax/naming/ldap/StartTlsResponse;ctls'Ljavax/naming/directory/SearchControls;filteranswer Ljavax/naming/NamingEnumeration;b(Ljava/lang/String;Ljava/util/Hashtable;Z)Ljava/lang/String;authenticateTLS<(Ljava/util/Hashtable;Ljava/lang/String;Ljava/lang/String;)Zctx startTimeDstopTimesessLjavax/net/ssl/SSLSession;ioeb(Ljava/util/Hashtable;Ljava/lang/String;Ljava/lang/String;)ZauthenticateNonTLSgetIdentifyingNameJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;sr referralError moreReferralsorg#Ljavax/naming/directory/DirContext;B>getUsers:(Ljava/lang/String;Ljava/lang/String;)[[Ljava/lang/String;slee)Ljavax/naming/SizeLimitExceededException;iattrIDs[Ljava/lang/String; namingEnumuvecLjava/util/Vector;unameuorguouumailtempAttr#Ljavax/naming/directory/Attributes;users[[Ljava/lang/String;PY getUserInfo9(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;Ljava/lang/Exception;userinforealName_K(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;attr"Ljavax/naming/directory/Attribute;groupk getGroupsL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[[Ljava/lang/String;rsrDirCtx searchCtls attrNamesrFilter rNamingEnumnameExenvHashregfiltergroupsforusergvecdescrsrAttr getAttributes'(Ljava/lang/String;)Ljava/util/HashMap;a(Ljava/lang/String;)Ljava/util/HashMap;>;K(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/HashMap;valuecceLjava/lang/ClassCastException;attvaluesattName attvaluesattrsen attributesLjava/util/HashMap; userident&Ljava/util/Vector;MLjava/util/HashMap;>;(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/HashMap;>; getSubtrees_(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable;refValuerefName referenceURL attrValueattrNameenum1trees getPrincipals8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;j usersForGrouporgName userIndexoutLjava/lang/StringBuffer;subtreeskeyEnumLjava/util/Enumeration; searchUser)(Ljava/lang/String;[[Ljava/lang/String;)I userGrouptestCredentialsK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vmain([Ljava/lang/String;)VLjava/util/Iterator;userInfoattListfLjava/io/File;fwLjava/io/FileWriter;buffLjava/io/BufferedWriter; savedGroupceLjava/net/ConnectException;ie"Ljava/lang/InstantiationException;args authserviceisValid SourceFile AuthLdap.java java/util/Hashtable  auth.url    auth.surl  auth.base  ldap.referral ldap.connectTimeLimit ldap.searchTimeLimit   ldap.searchCountLimit 2edu/ucsb/nceas/utilities/PropertyNotFoundException java/lang/InstantiationExceptionjava/lang/StringBuilder5Could not instantiate AuthLdap. Property not found:    java/lang/NumberFormatExceptionOCould not instantiate AuthLdap. Bad number format when converting properties:  , java/net/ConnectExceptionInvalid LDAP user credential: . Missing ','   $AuthLdap.authenticate - identifier: , uid: , user:  JAuthLdap.authenticate - Calling ldapAuthenticate with user as identifier: java/lang/Booleanldap.onlySecureConnection  )AuthLdap.authenticate - Not Authenticated+AuthLdap.authenticate - Looking up DN for:  ;AuthLdap.authenticate - No DN found from getIdentifyingName:AuthLdap.authenticate - DN found from getIdentifyingName:  ! $AuthLdap.authenticate - DN decoded: ldap "#5AuthLdap.authenticate - identifier starts with "ldap"/ $ % &KAuthLdap.authenticate - Calling ldapAuthenticate: with user as identifier:  and refUrl as:  and refBase as: !ldap.onlySecureReferalsConnection 9AuthLdap.authenticate - identifier doesnt start with ldapIAuthLdap.authenticate - Calling ldapAuthenticatewith user as identifier: java/lang/NullPointerException\AuthLdap.authenticate - NullPointerException while authenticating in AuthLdap.authenticate: ' ( )javax/naming/NamingExceptionXAuthLdap.authenticate - Naming exception while authenticating in AuthLdap.authenticate: ZAuthLdap.authenticate - Property exception while authenticating in AuthLdap.authenticate: #AuthLdap.ldapAuthenticate - dn is: )AuthLdap.ldapAuthenticate - position is: *'AuthLdap.ldapAuthenticate - userDN is: 'AuthLdap.ldapAuthenticate - server is: 4AuthLdap.ldapAuthenticate - Trying to authenticate:  Using server: +javax/naming/Contextjava.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory ,-java.naming.provider.urljava.naming.referralthrow $javax/naming/AuthenticationException.AuthLdap.ldapAuthenticate - failed to login : .AuthLdap.ldapAuthenticate - an aliased object  was found for the DN *. We will try to authenticate this new DN .,AuthLdap.ldapAuthenticate - NamingException ? happend when the ldap server authenticated the aliased object java/io/IOException(AuthLdap.ldapAuthenticate - IOException 'edu/ucsb/nceas/metacat/AuthTLSException-AuthLdap.ldapAuthenticate - AuthTLSException 9AuthLdap.ldapAuthenticate - error while negotiating TLS: 'Authentication exception for (nonTLS): 6AuthLdap.ldapAuthenticate(NonTLS) - an aliased object  again.4AuthLdap.ldapAuthenticate(NonTLS) - NamingException 0AuthLdap.ldapAuthenticate(NonTLS) - IOException Authentication exception: !javax/naming/InvalidNameException8AuthLdap.ldapAuthenticate - An invalid DN was provided: =AuthLdap.ldapAuthenticate - Caught NamingException in login: ./0 1 23 ignore$javax/naming/ldap/InitialLdapContext 4!javax/naming/ldap/StartTlsRequest 56"javax/naming/ldap/StartTlsResponse 78%javax/naming/directory/SearchControls 9(objectClass=*) :; < =>#javax/naming/directory/SearchResult ? @ A:AuthLdap.authenticateTLS - Trying to authenticate with TLSB CD#java.naming.security.authenticationsimple EFjava.naming.security.principal java.naming.security.credentials GH0AuthLdap.authenticateTLS - Connection time thru  was: I seconds.5AuthLdap.authenticateTLS - Authentication exception: DAuthLdap.authenticateTLS - Naming error when athenticating via TLS: AAuthLdap.authenticateTLS - I/O error when athenticating via TLS: @AuthLdap.authenticateNonTLS - Trying to authenticate without TLS3AuthLdap.authenticateNonTLS - Connection time thru =&AuthLdap.getIdentifyingName - uid is: &AuthLdap.getIdentifyingName - org is: (javax/naming/directory/InitialDirContext J(&(uid=)(o=))GAuthLdap.getIdentifyingName - Searching for DNs with following filter: javax/naming/ReferralException,AuthLdap.getIdentifyingName - Got referral: K> LM!javax/naming/directory/DirContextFNamingException when getting referral contex. Skipping this referral. NAAuthLdap.getIdentifyingName - Naming exception while getting dn: 1Naming exception in AuthLdap.getIdentifyingName: !com.sun.jndi.ldap.connect.timeoutjava/lang/Stringcnooumail Ov P(objectClass=inetOrgPerson)java/util/Vector EQ RScn: TUo: ou: mail: 'javax/naming/SizeLimitExceededExceptionUAuthLdap.getUsers - LDAP Server size limit exceeded. Returning incomplete record set. V WX?AuthLdap.getUsers - Problem getting users in AuthLdap.getUsers:3AuthLdap.getUserInfo - get the user info for user java/lang/Exception=AuthLdap.getUserInfo - can't get the alias name for the user  since *AuthLdap.getUserInfo - the aliased dn for  is (&(XAuthLdap.getUserInfo - LDAP Server size limit exceeded. Returning incomplete record set.-AuthLdap.getUserInfo - Problem getting users:+Problem getting users in AuthLdap.getUsers: uniqueMember EY Z[ javax/naming/directory/AttributeKAuthLdap.getUsers - Problem getting users for a group in AuthLdap.getUsers: 34(AuthLdap.getGroups - getGroups() called.   description \] (objectClass=groupOfUniqueNames)(& (uniqueMember=&AuthLdap.getGroups - group filter is:  description: 8AuthLdap.getGroups - Search result entry is relative ...AuthLdap.getGroups - group  added to the group vector8AuthLdap.getGroups - Search result entry is absolute ...(&(objectClass=referral)(ref=?!AuthLdap.getGroups - rFilter is: 0AuthLdap.getGroups - referral search result is: cn=,o=AuthLdap.getGroups - group cn=.AuthLdap.getGroups - Caught naming exception: ^_ )`1AuthLdap.getGroups - caught referral exception: :AuthLdap.getGroups - The user is in the following groups: .AuthLdap.getGroups - caught naming exception: EHjava/util/HashMap Ea bjava/lang/ClassCastExceptionCould not cast LDAP attribute (!) to a String value, so skipping.4AuthLdap.getAttributes - Problem getting attributes:5Problem getting attributes in AuthLdap.getAttributes:2AuthLdap.getSubtrees - getting subtrees for user:  , ldapUrl:  , ldapBase: ref3(|(objectclass=organization)(objectclass=referral))&AuthLdap.getSubtrees - search result: R>[]HAuthLdap.getSubtrees - Problem getting subtrees in AuthLdap.getSubtrees:1Problem getting subtrees in AuthLdap.getSubtrees:java/lang/StringBuffer, c Z[ de f g> Rh#AuthLdap.getPrincipals - ldapBase: o=&AuthLdap.getPrincipals - org name is i j ?AuthLdap.getPrincipals - org name (after the xml escaping) is  3.AuthLdap.getPrincipals - after getting groups -AuthLdap.getPrincipals - after getting users      . pq       null k              dn is: (AuthLdap.testCredentials - position is: &AuthLdap.testCredentials - userDN is: &AuthLdap.testCredentials - server is: 3AuthLdap.testCredentials - Trying to authenticate:  using server: follow#AuthLdap.main - Creating session...edu/ucsb/nceas/metacat/AuthLdap0AuthLdap.main - Could not instantiate AuthLdap: !AuthLdap.main - Session exists...!AuthLdap.main - Authenticating... /AuthLdap.main - Authentication successful for: +AuthLdap.main - Authentication failed for: /AuthLdap.main - Getting attributes for user.... lmn op qAuthLdap.main - : &AuthLdap.main - Getting all groups....AuthLdap.main - Groups found: AuthLdap.main - Group +AuthLdap.main - Getting groups for user....+AuthLdap.main - Getting users for group....AuthLdap.main - Group: AuthLdap.main - Users found: AuthLdap.main - User &AuthLdap.main - Getting all users ....%AuthLdap.main - Trying principals.... cd java/io/Fileprincipals.xmljava/io/FileWriter rjava/io/BufferedWriter s t u,AuthLdap.main - Finished getting principals.:AuthLdap.main - I/O Error writing to file principals.txt: DAuthLdap.main - Instantiation error writing to file principals.txt: vwjava/lang/Object$edu/ucsb/nceas/metacat/AuthInterfacejavax/naming/ldap/LdapContextjavax/naming/NamingEnumeration!javax/naming/directory/Attributesjava/lang/Throwablejava/util/Enumerationjava/util/Iterator(I)V1edu/ucsb/nceas/metacat/properties/PropertyService getProperty&(Ljava/lang/String;)Ljava/lang/String;java/lang/IntegerparseInt(Ljava/lang/String;)Iappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getMessage()Ljava/lang/String;toString(Ljava/lang/String;)VindexOf substring(II)Ljava/lang/String;length()Iorg/apache/log4j/Loggerdebug(Ljava/lang/Object;)Vinfo booleanValue()Zjava/net/URLDecoderdecode startsWith(Ljava/lang/String;)Z lastIndexOf(Ljava/lang/String;I)I(I)Ljava/lang/String;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;errorprintStackTrace(I)Ljava/lang/StringBuilder;warnput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;getClass()Ljava/lang/Class;java/lang/ClassgetName getRootCause()Ljava/lang/Throwable;4(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)VextendedOperationI(Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse; negotiate()Ljavax/net/ssl/SSLSession;setSearchScopesearchm(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;hasMorenext()Ljava/lang/Object; isRelativegetNameInNamespaceclosejava/lang/SystemcurrentTimeMillis()JaddToEnvironment8(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; reconnect([Ljavax/naming/ldap/Control;)V(D)Ljava/lang/StringBuilder;(Ljava/util/Hashtable;)VgetReferralInfogetReferralContext()Ljavax/naming/Context; skipReferralsetReturningAttributes setTimeLimit%()Ljavax/naming/directory/Attributes;get6(Ljava/lang/String;)Ljavax/naming/directory/Attribute;add(Ljava/lang/Object;)Zsize elementAt(I)Ljava/lang/Object;J(Ljava/lang/String;[Ljava/lang/String;)Ljavax/naming/directory/Attributes;getAll"()Ljavax/naming/NamingEnumeration; setCountLimit(J)VerrLjava/io/PrintStream;(Ljava/io/PrintStream;)V7(Ljava/lang/String;)Ljavax/naming/directory/Attributes;getID,(Ljava/lang/String;)Ljava/lang/StringBuffer;keys()Ljava/util/Enumeration;hasMoreElements nextElement&(Ljava/lang/Object;)Ljava/lang/Object;)org/apache/commons/lang/StringEscapeUtils escapeXml compareTokeySet()Ljava/util/Set; java/util/Setiterator()Ljava/util/Iterator;hasNext(Ljava/io/File;)V(Ljava/io/Writer;)Vwriteflush getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;!c ^**Y ** *  *  ***ALYY+LYY+ *!"VYVx^\Q_`#a,b5c8d>eAfDeJgMhPgVqYiZjklxmynptu ZyY^*N* :* :6+:+#$#%YY&+'(++#$):++#$+*)L+Y,-.+/+Y01*,2Y34566}+71+Y81*-9:+:1+Y;1<: +Y= 1 :!: !: >?+@/AB`): #$6 # `C6  `D: AB`D:+YEF G 1*,  2YH45I6X+J1Y#:+YK1*,2Y34566: +YM NO P%YYM N(: +YR NO S": +YT O>L;>L{Q;{Q;> !AN]9=AEOWhq~ #-36;>@Z_{}qr ~e  A E @; }   NsAATB|c%X*+,* * I*%QL%6!:!:+YU+1+AB6 +YV W/ L-:+$ Y+#:+:+YX1L+ `):+ `D:+YY1+YX1+YZ[\Y]:  _`aW baW cdaW* ,e6: +Yg h1: * i:  A+Yj kl m\*  ,e6: +Yn op OX: +Yr sp O,: +Yu vp O: +Yw v1* ,x6: +Yy h\: * z:  A+Y{ kl |\*  ,x6X:+Y}op O,:+Y~sp O: +Y h\6l: +Y OJ: +Y \+Y  N1)47fYQYqYt)4-tT_bfQqS,fT),fSQT)QSsQT)sQ&I $,FLOXux    )4F79VY c!h"#+%&+'(+)**F-,/-@.I-L/Q0T3_Cb4d5689:;B>?B@A)O,G.HKINOQJSKpOsLuMNQ' ' ' Y 9 '' d /   .  S uE  ,    u HX nBkk(B&MnBk( BdaFh >*+, YZ*     Qqh >*+, ab*     Qq :, ,caWY,::Y::Y::+:  $ :   : Zijkmno"p5s<uEvKwOx]ygzs{{}~p s E[OQ]C   + ' Qq. +1:9Y+:Y:  : W,W-W9+Y* go1g:+Yh\:tYYo:tYYsfQqZ %/6BMX`fz f2/i 6b  a` tf  :+19Y+:W,W-W9+Y* go1.  (3>FL~H}oL4 Q $:Y]:_`aWcdaWbY,-aW+#$6++$`):+Y1++`C`+#`C):+Y1Y: Y:  Y: +Y \6   !  :   ::6 : +Y N1 F6> : 6:+Y¶oO W6ç_;:+YĶNOQYYŶNƿ18258dqtQ:1Q2Q,  :BRl(/258:W\_dnqtv (  # v&_@ :e   B`RP    6   &T*B7QdNY :_`aWc* aWb*aW*aWY:Y:YSYSYSYSYS:*:* : Y: Y: Y: Y: Y::  ::Y˹N!ֶ?+ Y˹N!DW$ Y˹N!WY̹N!ض?+ Y̹N!DW$ Y̹N!WY͹N!ٶ?+ Y͹N!DW$ Y͹N!WYιN!ڶ?,YιN!DW$YιN!W Y#* W :+ܶO N6 ݢY-2 S-2 S-2 S-2 S-2S:+YNO->CFQ5&2>"I'R(q)x*~+-.12345689:< =4?UBxCEHI K-NPOyQTUYVW\]^_`a&b6]<fCoFhHibq `IRq     zw Hddd_!"Tu#$$$$$%g& J J K &B' _ %() N+Y+1Y :_`aWb*aW:*+z:+:+Y+\+Y+1Lc* aWY:Y:YSYSYS:: Y++#$): + : :  L :  : Y ˹N!ֶ?(-Y ˹N!DS!-Y ˹N!SY ̹N!ض?(-Y ̹N!DS!-Y ̹N!SY ιN!ڶ?)-Y ιN!DS!-Y ιN!S : +O;:+YNO%YYN(-BKNnqQ-~)3?BKNPv %18['Mknqs{P&*1:  s  j g 6+)B},N#-'*y ##%d&GHB' #7%. :Y :_`aWc* aWb*aWY:YS:-:Y: :  5 :  :    Wǧ : +ܶO ݽ:6   ݢ   S :+YNO[0Qn$0;FR[nz    z#/0 d<   ;FR [ 1!b d ##%$2B'  #%3F*+," %34 +/Y:Y:::*+*,*_`aW*cdaW*b*aW**aWY*:Y: YSYSYS:     * *: : -  : 'Y -: +Y 16  @*   :::YN!?,YN! DW$YN!W>?h`+/Y#* W+Y#* 1+/Y :_`aWcaWb*aW*aWY:Y:YS:**Y*"*"$):+Y/* :::+Y/Y˹N!ֶ?YY˹N!DY̹N!D#* W+YY˹N!DY̹N!D#* 1Y˹N̹N#* W+Y˹N̹N#* 1>:+ /  R6 6:+Y N1*ɵ"6 6>:6:+Y¶oOW6ç+Y \:6  ݢ+ 2 S 2 S :+1  +Y \:6  ݢ+ 2 S 2 S :+Y \:6ݢ+2S2SOQQ^FQ^F3789: >%?*A6BBCPD^Vk[t]^`cehijkmoruxy){0}M~S|#-7COZcnu{!D^#H_cw 069<?Fdp}  =IVgx~V"5ZQ6cH7n=89:;#<) &@ p=B  kt   > s2 p8?"2 8?"L2I8?"@pAgBd  aC  $$%%##h& q$$%%#&#<&$$%%#&B$$%%#1T*3 $$%%1$$%%?1$$%%D.$$%%D1%EF<*+%@%GEHo-Y:*:* :-:Y :_`aWc* aWbaWY:  -:  :  ~ : Y:  : :@: W:+Y/ W~ =: +Y NO%YY N(CQ~5 678;#<-=9>CCNGXJaKkLwMNOPRSWTUWYZ]c^_ a*eI!JKwlL0 cM ZNQON XP aQ 8 ----@ $RST# cMU $RVa W%0W%2$`X% W% W9%YZ[kϲ+Y+-/Y]:Y :_`aWcaWbY-aWY:YSYS:Y:   : !  :   : +Y  / :  ::!:::!::Y?AB`)aWSY"#AB`*)AB`)aWY?-aW{ 0Y#-aWF :AB`):Y#aW3=:+Y$NO%YY%N(rQ5o/q8tCuM{W|r}'1=IRs~ BIPUZI\R]I<^s/0g_'^`  P a}   88bC ##&%2O,4B # 9%cd &Y'N-()W-*)W*+,** +:,:-f*.ɵ ** /ɵ+Y0* *1* :"?K*#$`D o1$c1$`D:#$):?:1$.1$`D:#$#$):+Y213:+Y41-Y5** 67)W*+,8:+Y9N/*+,::+Y;N/6 6  -<)W-Y= 223>)W-Y? 223@)W*+, 22A: 6   +  2B6 -C)W ,-YD  23E)W-YD 223E)W-YF 223G)W-YH 223I)W 22JK+-YL 223M)W-YN 223O)W-P)W -Q)W S6  -R)W-YS 223E)W-YT 223G)W-YU 223I)W 22JK+-YL 223M)W-YV 223O)W-W)W  -X)W-Y)W-ZC(/9GW1 8 S CR]iq v!$&(*'+<,K+O/w359;<=>?@#B3C[FG;KLMNU0e R;f  e g ?"!"h ij(k/zlmp/no; noq#I' 5 no% pq|=+*+22KUVWUZ er" stP _!:!:+Y[+/+AB6+Y\W/M-:+$ Y+#:+:+Y]/N+`):+`D:+Y^/+Y]/+Y_`/:*_`aW*caaW*aW*aW*,aW*b-aWY*:f`ab"d*eEfKgNhWitkwmpqrsvy {|"}.~:EP^\ _____[W*5 VtJQ uv *2L*2M*2N+b\:cYd:$:+YeO+f\6+g\+,h6 +Yi+\+Yj+\+k1+,+:lm:ndo:p:  q:  n8 o: +Yrs \ħm+t\+,8:+YuW164+YvWs221:w+w\+,+:+YuW16=+YvWs22122:+x\+Yy1+,A:+YzW162+Y{Ws2\1+|\+,::+YzW1_+}\cYd:+,~:Y:Y: Y :     +\i:+YrOF:+YsO#:+YO!$Q7:%Q7]qQ7RT !$&DENQZch(+.3<Eal 'BMit $).7:<Z]_qz}&*&I RLFM ?Ow wxSkywd9EX?"Ba?"l7MV!!"Ai5z{ *|} ~ <_  QPn$#- ?#W($>589AR#62`Bbb" c+W