4X GO GP QRS T U VW XY VZ[ O \] ^ _` a bcd ef g h i jk| lmno pqr st u v wxy $z {|~ } ~ , Z ,    `    ,  ,   V b      L      Z  Z    d  d       Z qO , ,  X l      ~                                 p  ~     } j {  !Y ~"#$%&  j' ( )* +, ~p-./ j01234 5678 ~9:;<= >? >@A B CD E jF >GHIJ _KL jMNO )PQ RS T U V W X Y Z[\ p ]^ _`  a bc ,d789:; ,e ,f g hijk l Xm n o p q r s tu v wxloggerLorg/slf4j/Logger;authenticationManagerCLorg/springframework/security/authentication/AuthenticationManager;RuntimeVisibleAnnotationsLjavax/annotation/Resource;jwtTokenHandler&Lcom/artfess/base/jwt/JwtTokenHandler;userDetailsServiceBLorg/springframework/security/core/userdetails/UserDetailsService; ssoConfig!Lcom/artfess/base/conf/SsoConfig;demoModeZ4Lorg/springframework/beans/factory/annotation/Value;value${system.mode.demo:false}uCFeignService'Lcom/artfess/base/feign/UCFeignService;applicationFeignService0Lcom/artfess/base/feign/ApplicationFeignService;loginLogService*Lcom/artfess/base/service/LoginLogService;loginUserService+Lcom/artfess/base/service/LoginUserService; saasConfig"Lcom/artfess/base/conf/SaaSConfig; jwtConfig!Lcom/artfess/base/conf/JwtConfig;KEYLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis:Lcom/artfess/base/controller/AuthenticationRestController;deleteUserDetailsCache(Ljava/lang/String;)V userAccountbeandelUserDetailsCache.Lcom/artfess/base/cache/annotation/CacheEvict;bpm:uc:userAccountkey #userAccountdelUsernamesCachebpm:uc:userNameputLoginErrorNumInCacheL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;tenantIdaccounterrorNumLjava/lang/Integer;,Lcom/artfess/base/cache/annotation/CachePut;bpm:uc:userLoginError#account+'_'+#tenantId firstCache.Lcom/artfess/base/cache/annotation/FirstCache; expireTime,timeUnitLjava/util/concurrent/TimeUnit;SECONDSgetUserLoginErrorNumCache9(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer;-Lcom/artfess/base/cache/annotation/Cacheable;delUserLoginErrorNumCache'(Ljava/lang/String;Ljava/lang/String;)VcreateAuthenticationTokenZ(Lcom/artfess/base/jwt/JwtAuthenticationRequest;)Lorg/springframework/http/ResponseEntity;userInfoLjava/util/Map;baseMd5webBytes[BwebTokeneLjava/lang/Exception;tokensyJ lockedTimeLjava/time/LocalDateTime;intervalMinutesLjava/lang/Long;user Lcom/artfess/uc/api/model/IUser;autoUnlockTimece1Lcom/artfess/base/exception/CertificateException; loginTimesloginMsg lockStatusI lockTimesenableipallowdedipListLjava/util/List; machineIdListmachineService7Lcom/artfess/base/service/SecurityMachinePersonService;authenticationRequest/Lcom/artfess/base/jwt/JwtAuthenticationRequest;isBase64 reqAccount reqPassworderrorMsg userDetails;Lorg/springframework/security/core/userdetails/UserDetails;service-Lcom/artfess/base/service/PwdStrategyService;json)Lcom/fasterxml/jackson/databind/JsonNode;request'Ljavax/servlet/http/HttpServletRequest;session Ljavax/servlet/http/HttpSession;IPisMobileuserNameuserId loginStatus userAttrsLocalVariableTypeTable5Ljava/util/Map;$Ljava/util/List; StackMapTableSydqzr{y,|}~ Exceptions Signature](Lcom/artfess/base/jwt/JwtAuthenticationRequest;)Lorg/springframework/http/ResponseEntity<*>;8Lorg/springframework/web/bind/annotation/RequestMapping;/authmethod7Lorg/springframework/web/bind/annotation/RequestMethod;POSTproducesapplication/json; charset=utf-8%Lio/swagger/annotations/ApiOperation; 登录系统 httpMethodnotes"RuntimeVisibleParameterAnnotations5Lorg/springframework/web/bind/annotation/RequestBody;isAdmin(Ljava/lang/String;)Z_accounttmpsplit[Ljava/lang/String;getUserNameWithCas8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;jsonNodeticket casUserDetailusername errorCodegetUserNameWithOauth oauthCheckUrl checkResult checkJNodeheader tokenResultcode oauthTokenUrlstufixssoAuthy(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;)Lorg/springframework/http/ResponseEntity;Ljava/util/Optional;ssoModemode(Ljava/util/Optional;(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;)Lorg/springframework/http/ResponseEntity<*>; /sso/authGET登录系统-单点登录6Lorg/springframework/web/bind/annotation/RequestParam; ssoWeixin?(Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity;wxWorkId simpleUser resultJsonresult0Lcom/fasterxml/jackson/databind/node/ObjectNode;errcodeV(Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity<*>; /sso/weixin.企业微信应用进入手机端-单点登录 weixinPublicnodeopenidr%Lcom/artfess/base/model/CommonResult;PLcom/artfess/base/model/CommonResult;[/sso/weixinPublic微信公众号进入手机端dingTalk dingtalkId /sso/dingTalk钉钉进入手机端 dingTalkYkzdingtalkAccountdingtalkEmployeeCode/sso/ykz愉快政单点登录dingTalkYkzBand(Lcom/artfess/base/jwt/JwtAuthenticationRequest;Ljava/util/Optional;Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity;bandUserAccount userUniteykzEmployeeCode ykzAccount(Lcom/artfess/base/jwt/JwtAuthenticationRequest;Ljava/util/Optional;Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity<*>; /sso/ykzBand愉快政绑定并登录dingTalkYkzEmployeeCodeemployeeCodeEncrypt employeeCode/sso/ykzEmployeeCode愉快政EmployeeCode登录isUseCasz(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/http/ResponseEntity;response(Ljavax/servlet/http/HttpServletResponse;map(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/http/ResponseEntity;>; /sso/info单点登录配置 refreshAndGetAuthenticationTokenR(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity; authTokenrefreshedTokenU(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity<*>;/refresh 刷新tokensignoutN(Ljavax/servlet/http/HttpServletRequest;)Lcom/artfess/base/model/CommonResult;b(Ljavax/servlet/http/HttpServletRequest;)Lcom/artfess/base/model/CommonResult;/signout 退出登录F使token的状态失效,必须设置jwt.single和jwt.stricky均为true authenticatepassword checkUser5(Lcom/artfess/uc/api/model/IUser;Ljava/lang/String;)Z currenTimesize pwdCreateTimeinitPwdpwdRule pwdLengthduration initUpdatehandleSingleLogin:(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V userAgent handleLogout((ZLjava/lang/String;Ljava/lang/String;)V SourceFile!AuthenticationRestController.java8Lorg/springframework/web/bind/annotation/RestController;Lio/swagger/annotations/Api;tags 认证接口&Lcom/artfess/base/annotation/ApiGroup;group group_bpm group_form group_systemgroup_uc DE  8com/artfess/base/controller/AuthenticationRestController OL TLy   java/lang/StringBuilder  Artfess@024    java/lang/String  D  56 z java/lang/RuntimeException0用户不存在或授权到期,请重新登录 DLtoken非法,请重新获取java/lang/Exception D KL ,- +com/artfess/base/service/PwdStrategyService    com/artfess/uc/api/model/IUser   | +8   }   ;<    ij-1"账号在锁定状态中,请于【 0分钟】后登录,或联系管理员解锁!   0j $%Login failed account[%s].java/lang/Object  账号或密码错误 /com/artfess/base/exception/CertificateException ;org/springframework/security/authentication/LockedException账号被禁用或离职 ~      fgjava/lang/Integer D VW ,还剩: 次!*,账号已锁定,请联系管理员!账号或密码错误次数: 次5com/artfess/base/service/SecurityMachinePersonService  5     用户【:】已绑定涉密机器,不能在当前机器上登录!  *+ {java/util/HashMap   loginUser%s[%s]  23   <= L.com/artfess/base/jwt/JwtAuthenticationResponse ?@  D *com/artfess/base/constants/SystemConstantsadmin, *%s/p3/serviceValidate?ticket=%s&service=%s ./    authenticationSuccess  authenticationFailure E获取cas认证信息失败: L获取cas认证信息失败: &code=%s&redirect_uri=%s          获取oauth认证信息失败 D !当前服务未开启单点登录    com/artfess/base/conf/SsoConfigcas oauth jwt 0com/artfess/base/exception/ServerRejectException单点登录模式匹配异常!通过单点认证登录成功。 L D 78 weChatWork  !企业微信登录返回结果: L.com/fasterxml/jackson/databind/node/ObjectNode0UserId     查无与您企微账号[userid:]绑定的eip账号 D!*企业微信登录失败 ,eip用户账号:企业微信登录失败 : errmsg weChatOffAcc "# $%& ' ('com/fasterxml/jackson/databind/JsonNode微信登录失败 : dingtalkuserid ) 查无与您钉钉账号[userid:钉钉登录失败!eip账号: 不存在钉钉登录失败 : * accountId查无与您愉快政账号【】绑定的系统账号! D+登录失败!账号:愉快政验证失败 : message _loginTime_ ,-愉快政账号【6】已绑定平台其他用户,请联系管理员! ./0 12 3 45 6LEmployeeCode不能为空!AEKXtLARGEZENITHAES/ECB/PKCS7Padding 7解码错误! 83查无与您愉快政账号绑定的系统账号!/登录验证失败 【employeeCode】为空! 9ssoUrl : ssoLogoutUrl ; < < => ? @ @A#com/artfess/base/model/CommonResult 退出成功A B &'Oorg/springframework/security/authentication/UsernamePasswordAuthenticationToken DCD 0E  F G HIJ Kmobilepc L  =>M N OP OQ 9: Rj STU VW-com/artfess/base/jwt/JwtAuthenticationRequest java/util/Map9org/springframework/security/core/userdetails/UserDetailsjava/time/LocalDateTimejava/lang/Long%javax/servlet/http/HttpServletRequestjavax/servlet/http/HttpSessionjava/util/Listjava/util/Iterator9org/springframework/security/core/AuthenticationExceptionjava/io/IOExceptionjava/util/Optional(com/artfess/base/service/LoginLogServicegetClass()Ljava/lang/Class;com/artfess/base/util/AppUtilgetBean%(Ljava/lang/Class;)Ljava/lang/Object;getToken()Ljava/lang/String; com/artfess/base/util/StringUtil isNotEmpty getUsernameappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString!com/artfess/base/util/EncryptUtilmd5Hex&(Ljava/lang/String;)Ljava/lang/String; toLowerCasecom/artfess/base/util/Base64 decodeBase64(Ljava/lang/String;)[B!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset;([BLjava/nio/charset/Charset;)Vequals(Ljava/lang/Object;)Z%com/artfess/base/feign/UCFeignServicegetDetailByAccountOrId#(Ljava/lang/String;)Ljava/util/Map;get&(Ljava/lang/Object;)Ljava/lang/Object;(Ljava/lang/Throwable;)V@org/springframework/security/core/userdetails/UserDetailsServiceloadUserByUsernameO(Ljava/lang/String;)Lorg/springframework/security/core/userdetails/UserDetails;getJsonDefault+()Lcom/fasterxml/jackson/databind/JsonNode;com/artfess/base/util/BeanUtils=(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;asLong()JgetLockedStatus()Ljava/lang/Integer;intValue()I getLockedTime()Ljava/time/LocalDateTime;nowjava/time/ZoneOffsetof*(Ljava/lang/String;)Ljava/time/ZoneOffset; toInstant+(Ljava/time/ZoneOffset;)Ljava/time/Instant;java/time/Instant toEpochMillivalueOf(J)Ljava/lang/Long; longValue getAccount)com/artfess/base/service/LoginUserService lockedUser(Ljava/lang/String;I)V getTenantId(J)Ljava/lang/StringBuilder; getPassword getFromBase64format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;org/slf4j/Loggererror*(Ljava/lang/String;Ljava/lang/Throwable;)VgetCause()Ljava/lang/Throwable; getMessagecom/artfess/base/util/HttpUtil getRequest)()Ljavax/servlet/http/HttpServletRequest; getSession"()Ljavax/servlet/http/HttpSession;com/artfess/base/util/IPUtils getIpAddr;(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;asInt(I)Ljava/lang/Integer;(I)V(I)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;queryPersonLimitByAccount$(Ljava/lang/String;)Ljava/util/List;queryMachineIps"(Ljava/util/List;)Ljava/util/List;iterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object;*(Ljavax/servlet/http/HttpServletRequest;)Z$com/artfess/base/jwt/JwtTokenHandler generateTokenO(Lorg/springframework/security/core/userdetails/UserDetails;)Ljava/lang/String; getFullname getUserId setAttribute'(Ljava/lang/String;Ljava/lang/Object;)Vput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;com/artfess/base/util/MapUtil getString5(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;updateLastLoginTimecom/artfess/base/conf/JwtConfiggetExpirationLongk(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZLjava/util/Map;)V'org/springframework/http/ResponseEntityok=(Ljava/lang/Object;)Lorg/springframework/http/ResponseEntity;'(Ljava/lang/String;)[Ljava/lang/String; getCasUrl com/artfess/base/util/FluentUtilcom/artfess/base/util/XmlUtiltoJsoncom/artfess/base/util/JsonUtil toJsonNodehasasTextprintStackTraceinfogetOauthTokenUrlgetOauthBasicHeader"org/apache/http/entity/ContentTypeAPPLICATION_FORM_URLENCODED$Lorg/apache/http/entity/ContentType;postn(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Lorg/apache/http/entity/ContentType;)Ljava/lang/String;isObjectgetOauthAccesstokenKeygetOauthCheckUrlgetOauthUsernameKeyisEnableorg/springframework/util/AssertisTrue(ZLjava/lang/String;)VgetMode isPresentgetUsernameFromTokendebugj(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/Map;)V.com/artfess/base/feign/ApplicationFeignServicegetUserInfoUrlsendHttpsRequestJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;getUserByWxWorkIdisEmptyisNullK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)VgetUserByOpenId9(Ljava/lang/String;)Lcom/artfess/base/model/CommonResult;getState()Ljava/lang/Boolean;java/lang/Boolean booleanValuegetValuegetUserByDingtalkIdgetUserInfoForYkz((Ljava/lang/String;Ljava/lang/String;Z)V getAttribute&(Ljava/lang/String;)Ljava/lang/Object; getMapper/()Lcom/fasterxml/jackson/databind/ObjectMapper;+com/fasterxml/jackson/databind/ObjectMappercreateObjectNode2()Lcom/fasterxml/jackson/databind/node/ObjectNode;V(Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;updateUserUniteW(Lcom/fasterxml/jackson/databind/node/ObjectNode;)Lcom/artfess/base/model/CommonResult;removeAttributedecryptgetUserByYkzEmployeeCode(Z)Ljava/lang/Boolean; getSsoUrlgetSsoLogoutUrl getHeader substring(I)Ljava/lang/String;getTenantIdFromToken refreshTokenjava/util/ObjectsrequireNonNull'(Ljava/lang/Object;Ljava/lang/Object;)VAorg/springframework/security/authentication/AuthenticationManagerf(Lorg/springframework/security/core/Authentication;)Lorg/springframework/security/core/Authentication;getLastLoginTimegetPwdCreateTime toLocalDate()Ljava/time/LocalDate;java/time/LocalDate toEpochDayisSingle com/artfess/base/conf/SaaSConfig getExpirationputTokenInCache](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;o(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;logremoveFromCache9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vorg/slf4j/LoggerFactory getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;!G $%&'()*+(),-()./()01( 23s456()78()9:();<()=>()?@()ABC DEF/*GOH IJKLF`*M,+,+Gu vwxH IJMB NJOLF5G|HIJMB(P3[sQRsSTLF5GHIJMB(P3[sURsSVWFJ-GH*IJXBYBZ[(&\3[s]Rs^_@`aIbcedefgF@GH IJXBYB(h3[s]Rs^ijF?GH IJXBYB(P3[s]Rs^klF !=++  Y +  N-:+:Y:1*+ : Y Y=:Y+ N :*-! :*"+ #:$$:%:*: &'7 )*&)*+7 ,,:  -. /: 01234 1234e5m7:8 7*9 :; &  <-=9 >-=. 8e7Y Y ? @A f+BC:*-DS: EFGY-SH IJ: K& KL KL:  M: NO:P:  Q:  R: fJR*-SJ: , ,: &0T*U6V*U6W*U6X: &  <-Y:  >-Y: ZY[: &  <-.`X\W >-.`X\W Y ] .d^_ :.<*9-;.`: &  <-=  >-= Y a bc  :YY*-Sdd:   -e:fw6 g:?f5h:i"j:  6#Y Y k - l  m6 *no:p: : :6qYr:,\,:s:::t: uvGYSYSHw*x6y<zW* y{| y{=*9}~Y*7-Gw-6?MWfx#,Q\mu"'07?QT\ckw   +5@JNVfn$()*+,-./01235!7&8F?MCXEaFeGiHlIuJ}KLMNOQRVY[]H-fmn6[oB?RpqMDrB st-suB!vw,xy Qjz{|} ~w  Nst [+mBw! TD|} Bq1f R|}!IJ!1|BxBoB`VMANJ ' 0 7B M1 XuBaBeYBiBl1un*fmfux   e ~ * VC @W "C)  U%$ L(33[s[e[s3sssF6M,N-:662:+Gab c#d,e.c4hH4# B6IJ6YB3B ,F N: :GY*SY+SY,SH N-::**:(**:YD:E Y  - Y Y    {~GBmn p+q1r8tBuVv`wqx{~~z{|}H\ 1JB8C?stIJBBBB B+V$B@F N*:GY+SY,SH:*: Y   ::g_**: *: Y   :  :    **N:Y-GJ 'FMZktHkKuB tBB $B  'BFpBMistIJBBB BBBF7*:*:- -:+*+:T,*,:1, *n+: Y*!P:m6*"#: *n o:  p:  :  : qYr: ,R ,:s: :: t: uvGY SY SHwy<zWE, *y{  |~Y    *7G  (9K\n &7ARcHH|}IJBsBjB1 uB B YB B n*C(""# (33[s[e[s3sssF*+ ME Y  , N,N:E-: -:*:š Ù$Y Y Ķ  Ŷ ƶ*:*!P:m6 *"#: *n o:  p:  :  : ,A ,:s: t: <:uvGY SYSHwE*  |~Y   Ǹ:Y Y ȶ  Y Y ɶ -ʶ 7?BdeG"57?BDQ\fq~ <FRegHD st7|}1  uB wB sB oXBgstqB~YBIJB7o\JB }B< ((33[s[e[s3sssFTm*+ MN,N:E-̶͙-̶:*:϶Й:™~YӸƶ*:*!P:m6 *"#: *n o:  p:  :  : ,A ,:s: t: <:uvGY SYSHw*  |~Y   Ǹ~YӸY Y Զ -ʶ $'G!   $' )6?JWbl| !"#$%&'(),".50=1J5H) st7|}lYB1  vuB mB iB eXBJBWmIJmSBQWms'R(33[s[e[s3sssF\*+ ָMN,N:E-׶͙!-׶:*:š Ù$Y Y ٶ  Ŷ ƶ*:*"#:&*!P:m6 *no: p:  :  : ,A,:s: t: <: uvGY SYSHw*   |~Y   ǸY Y ڶ  ۶ Y Y ܶ -ʶ $'G~;<>$A'?)@6B?DJFWGgHJLMORSTUVWXYZ[\]`)b<d]gH) st7|}1 vuB mB iB eXB JBWYBIJfBd '0  (33[s[e[s3sssF *+MN,N:E6-޶͙b-ƶ:-߶:*:š Ù8E Y    6~Yƶ*:*"#:  &*!P:  m6 *n o:  p:  : :qYr: ,A ,:s: t:<: uvGY SYSHw*  |*9}~Y  *7Y Y   ۶ Y Y  - G%noqtr s-u0v9xDyO{\|l}~#?KVwH st7|} 1 uB B BXB~nDT BOI B\<YB IJB01~>47  (33[s [e[s3s ss  Fy ]+ : :*! :+BC:*DT:EFGYSHIJ:K&KLKL:M:NO:P:Q:R: J*S$$:   %:  &| T*U6  V*U6  W*U6R LZ: ZY[:.`XY:. *9;Y*Sdd:   e:   fx6   g:  ? f5 h:i"j:  6  $Y Y k  l m6 *"+ #: *n o:  p:  : :6qYr: , ,:s: ::t:*,:Dƶ*: p)Y Y  -  :W,W*WuvGY SYSHw*x6y<zW* y{ |*9}~Y  *7%(G>O %(*BF\fmuy~ ,6BLU_do~ !%(19@IR [ m r ~( 1"<$H`#f*Ost;[m a U  Br1 g o _ ~5B@|}m\]IJ]]]WB SBIB~B c1  T IuB @B !<YB%8B(511,n4g o ]]1, (D +  W%% c(33[s[e[s3sssFg q+ Y+M N,N:Y6--*-:š ÙE6Yƶ*:*"#:&*!P:m6 *no: p:  :  : qYr:,A,:s: t: <: uvGY SYSHw*   |*9}~Y   *7Y Y   ۶ Y"%G%+,/02"5%3'43768=;I<Y=c>f?pB|DEGJKLMNOQRSTUVWZ]%_FagdH' st7|}1 uB B B XB ~nI|YBqIJq[BXB6;1~qr %7 (33[s[e[s3sssF@qYrN-W*zW-*zW-*zW-Gopq+r;sH*@IJ@@8n 8 (33[s![e[s3s"ss"#$FX+*M,N*n-:*n-:*n-:+m6*|~Y   ǸG"yz{|)}3~9EHRXIJXJ%BCuB9XB)/YB3%&B91'(+3[s([e3s)ss)*+FD+*M,N*n-:*n-:+m6*YG)/9HHDIJD6%B/uB%XB)YB/1,(+3[s-[e3s.ss/0jFh+W,W*  Y+,  WG H IJB1BL23FY+ Q$$N--%:&2*:*U6*U6*U6)*+7 *U6 W*U6 +-.y+/: 01234 1234e5m7:8 *9+:;. 8e7Y Y ? @A  P ++:  &.)0: e6Gz  (5BO\hu $16JWH!vwnxy Iz{6!4yJ 5$36y 5"7BB8O9\:h~w u;  E 7YIJY|}Y1BM*8@<=Ff :*/,*>M*n,-*W&P:R:*n,-*W* - !G* *-EJQhHRJQBIJ1XBBuBq>BL B"??@AF9*1 :,*>M*n,-"G *-8H4>B9IJ919XB9YBB BEF! #EGPCD('EFG[sHIJ[sKsLsMsN