From 0f7c8c25700bdc4f39cf12adf28f4aaf7e900575 Mon Sep 17 00:00:00 2001 From: feng626 <1304903146@qq.com> Date: Thu, 16 Sep 2021 10:14:34 +0800 Subject: [PATCH 01/15] =?UTF-8?q?fix:=20=E5=B7=A5=E5=8D=95=E5=A4=8D?= =?UTF-8?q?=E6=A0=B8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/authentication/login_wait_confirm.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/authentication/templates/authentication/login_wait_confirm.html b/apps/authentication/templates/authentication/login_wait_confirm.html index 36584f26b..e72a44738 100644 --- a/apps/authentication/templates/authentication/login_wait_confirm.html +++ b/apps/authentication/templates/authentication/login_wait_confirm.html @@ -134,7 +134,6 @@ function cancelTicket() { } function cancelCloseConfirm() { - cancelTicket(); window.onbeforeunload = function() {}; window.onunload = function(){}; } @@ -158,6 +157,7 @@ $(document).ready(function () { cancelCloseConfirm(); window.location.reload(); }).on('click', '.btn-return', function () { + cancelTicket(); cancelCloseConfirm(); window.location = "{% url 'authentication:login' %}" }) From 2030cbd19dabc8bbc948a9acc4e78a286325d0c7 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Thu, 16 Sep 2021 10:36:24 +0800 Subject: [PATCH 02/15] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dauthbook?= =?UTF-8?q?=E4=BF=A1=E5=8F=B7=E7=9B=91=E5=90=AC=EF=BC=9B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E6=96=87=E4=BB=B6.mo=20(#6882)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michael Bai Co-authored-by: Jiangjie.Bai <32935519+BaiJiangJie@users.noreply.github.com> --- apps/assets/signals_handler/authbook.py | 4 ++-- apps/locale/zh/LC_MESSAGES/django.mo | Bin 94985 -> 95490 bytes apps/locale/zh/LC_MESSAGES/django.po | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/assets/signals_handler/authbook.py b/apps/assets/signals_handler/authbook.py index 7564e738d..55abf5c55 100644 --- a/apps/assets/signals_handler/authbook.py +++ b/apps/assets/signals_handler/authbook.py @@ -1,7 +1,7 @@ from django.dispatch import receiver from django.apps import apps from simple_history.signals import pre_create_historical_record -from django.db.models.signals import post_save, pre_save, post_delete +from django.db.models.signals import post_save, pre_save, pre_delete from common.utils import get_logger from ..models import AuthBook, SystemUser @@ -28,7 +28,7 @@ def pre_create_historical_record_callback(sender, history_instance=None, **kwarg setattr(history_instance, attr, system_user_attr_value) -@receiver(post_delete, sender=AuthBook) +@receiver(pre_delete, sender=AuthBook) def on_authbook_post_delete(sender, instance, **kwargs): instance.remove_asset_admin_user_if_need() diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index fbb686b2476c87d37e7185dc5defde8a4a82e00b..73b723b66aaab9bbca45fd21389a69ac57d8e7fa 100644 GIT binary patch delta 27640 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 delta 27193 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 QsS~h1dgO@40VC4\n" "Language-Team: JumpServer team\n" @@ -5678,7 +5678,7 @@ msgstr "* 新密码不能是最近 {} 次的密码" msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: xpack/plugins/change_auth_plan/api/app.py:112 +#: xpack/plugins/change_auth_plan/api/app.py:113 #: xpack/plugins/change_auth_plan/api/asset.py:100 msgid "The parameter 'action' must be [{}]" msgstr "参数 'action' 必须是 [{}]" @@ -6126,16 +6126,16 @@ msgstr "租户 ID" msgid "Subscription ID" msgstr "订阅 ID" -#: xpack/plugins/cloud/serializers/account_attrs.py:81 -#: xpack/plugins/cloud/serializers/account_attrs.py:86 +#: xpack/plugins/cloud/serializers/account_attrs.py:87 +#: xpack/plugins/cloud/serializers/account_attrs.py:92 msgid "API Endpoint" msgstr "API 端点" -#: xpack/plugins/cloud/serializers/account_attrs.py:92 +#: xpack/plugins/cloud/serializers/account_attrs.py:98 msgid "Service account key" msgstr "账户密钥" -#: xpack/plugins/cloud/serializers/account_attrs.py:93 +#: xpack/plugins/cloud/serializers/account_attrs.py:99 msgid "The file is in JSON format" msgstr "JSON 格式的文件" From 7890e43f5a182e5f96896cb92471742561637598 Mon Sep 17 00:00:00 2001 From: Michael Bai Date: Thu, 16 Sep 2021 10:59:01 +0800 Subject: [PATCH 03/15] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=BD=91?= =?UTF-8?q?=E5=85=B3=E6=B5=8B=E8=AF=95=E5=8F=AF=E8=BF=9E=E6=8E=A5=E6=80=A7?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/models/domain.py | 13 ++++++++++--- apps/locale/zh/LC_MESSAGES/django.mo | Bin 95490 -> 95665 bytes apps/locale/zh/LC_MESSAGES/django.po | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/assets/models/domain.py b/apps/assets/models/domain.py index 7aafab504..7fcb02c3c 100644 --- a/apps/assets/models/domain.py +++ b/apps/assets/models/domain.py @@ -144,10 +144,17 @@ class Gateway(BaseUser): key_filename=self.private_key_file, sock=sock, timeout=5) - except (paramiko.SSHException, paramiko.ssh_exception.SSHException, - paramiko.AuthenticationException, TimeoutError) as e: + except (paramiko.SSHException, + paramiko.ssh_exception.SSHException, + paramiko.ChannelException, + paramiko.AuthenticationException, + TimeoutError) as e: + + err = getattr(e, 'text', str(e)) + if err == 'Connect failed': + err = _('Connect failed') self.is_connective = False - return False, str(e) + return False, err finally: client.close() self.is_connective = True diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 73b723b66aaab9bbca45fd21389a69ac57d8e7fa..50d8518503fbd7f1b8701755bcd010f7d83aaf4b 100644 GIT binary patch delta 27195 zcmYk^1(;P;+s5%dbPY9h4&60$!_W=VokK{cNF6{#LUQO10qO1%q&o$qkw&@%1m6FB z)-&(rzP{yet!L$4JI*=t={x*!)b&rI`fenQGS%aF6~*&X;i@d2H#eH+m8hkt=dJ7H zc@rXe-g;aV;CW@cc-{rP+tu?LQ@_2t=Z(Xl9-cP<7h-AZQ}y(`8uV+{%k$n7U(v_& z8c<%;*Yj>r{_vgWwTtBWyvzMP?+t;H13hmHh79t&p|~3-VX47xf-|_Ba*H9JH=7A! z_!x}xFGD@A59Lb3JTE5YUBf*uF&;wB!@Guo_!q{;mzV@UV>;&d68)fz=M}=V*a(wj ze`Hg<$(RqPV=g?3YX2UyVe%24mmSMt2zJBVxX?Ur?HYE#$i(|%R{S2b;3ABP$1o~hz=rrI>XLY zcqi)KI*#gh&qqdE_71he*gtz-N=$>As2Hlg8ES%_sE(sh1J6YDTW$5fp(eOw@t3GG zjxx@*PlCFX*-_*8LdmE@U5tZWQ3DRZ6gbY}zoHhh8TEJ_L!HqrjD;^y<9tH(Pdwgj zeOA;xQV4Ydr7T__S%A-LOGX3t!5BCib!L+>3NFQDxDqw-0o20&MD=@X^|2$P?Yx#Yep_(xIN7 zvZ#S8qsD1~8aE8pe+=qUOucn1KJi%1Av#C(+vZEGO&_|{ynMxQRhoR1BGG@h@s4d)&n&=p+ z-Fb|McTqRn8;p&Sr@8ugsGSQ&J(k5WG1f<&P-oP*zP@BM&|q^M=Ak?nwWTLf1KdM( z{A$LW?#?I(wSaV(2=k)GtAKj^>Z4AmDeB&8gSx4EAeY+b4JMY5;(F3c0huXquGh93w>QZJw^)GH#L+w~o)DCt*&DR$b>iHi`Mq4)#HQ*d;um&~Z z7SsR-E&hkaZ=fc6iplUZYMdl9-5I7wO_T>UPGKuoMD1ivjHBnj5t;lLhT5u`sHb27 zs^Kn7j)%-!sB8HVb<@V5<#sLuwxOIG)qWCc0V`2wz7aM4F4V$*N1s-Fo{X-|P1H4f zikdjmY-bz{rkn&dP+?TRGN>)Dj!Cc;>hb&zb&Ut1+K;yKWYj$KQTP}BluqZYW>T!$KOH)=tLP$&AQ z&oXyWXZ#GS;s;cR^7Gt+YM@sB4QlHen_;MSJ+ToEKrQ$@ro!78ieIc;c0QMlatqX} z*f*by1~`CvUQc2+JdfJK&!{sAT;T5V6sU#dN7WZY-7{5DH)BiG)6xqS{{a=BVXj1- z=pLlM&pS#+kKGm2nLR;m>3d9rfeYPM=R`eb6;YR>C2Fg?VOi{lA-D~T;S*H<%!}L! zRxoQ~dg2W+o}T{!WVFIDm=fn=X55Zx@fPMoZ?U^qLQvPR1*%^!)EWPX+L39f1uiu= zquL!nE%=hfZ(;)G_nujW_ls*71GU8|QI{q?s$&k+PUW}y3YeO5bqvODQD;2X;ww=7 zkD$goi`wDKs7rbmeM!l@B%?Emxx{U8YE*+lr~%5M2B?l&NL?#8wfZ)wfjeV5{0`NB zCTd5PqQ>8Xp?C}%VBk{re<_)E{9`A^UgkO+M%_G@Py_vqn&1QK=85{NTTpzAPB|%R z%hRGJ%8j}tp{VwCQBOq+RQoQd$G6X~?7!Yz;|XY`OHeo2W{iZVP&eaQ)B+x$p4-=` z0Y9S_8hg20Krlw3oX0GHYF8BXI99TFJB&%Wlg|RZQ4{n>o$&|^#z`0hH&}cp>K-_P zQSndI!f&A_dV%Wy1^o+K;Z7vj%z!$<%&2jErOBvc9jj=Gx+nUhws0b*$A#trEJOJL zmc*47x4C5`55LQeg<`k zywz@plA?Ab1L~UR#6T>L+Ttpx$E`i8-S_5jb1do}n1b2#{Ldkyj)yQ7{)K_~47IiY zqHdNrYur0NGsdJ`7PW=dQ2m;t+IPg**dOEK2rPi%sCGwC3p{AXSflypk1hY;)vB>L+!-lb?m=7yd|KO zMPBb-!6{H33!x?s#mra-)v-V78vlUWnQ5pA7g%{YYQl}E_J>jJ&!JB29wxw7>)C%b zh_b;M57jXR>Tb@B+QN#c4mD5eiE7Uw+ zd}MTH2{*cmqL`3!1gKJ0ya#+< zJ2HAB4L4_FBFdXEF&;(j$W7GE`U+JacZ)mo45)H3vleP6+M&+44{AX}FbV#EYCj7@ z^!%?Sqic4@e1h7#H>i#QTixRs4fUP~L0yVksK>JjYQiC?_Ty1o9B%PNs2$jV8h0D& zray?W^!%SElMip8wlw}WcPWyh&LG6fB~S}(h*_`|YT{9-t)GFB@E6qMxeT??wWtYq zpxPh7_;?xpzyBYRQHK|(0scX)^b>09V{CT|Nr~FJOsJc%7|y`zsDbaH`n^R>5NU_I zgh7~uayHZsmceA$dUc&gMm;6T zQ41=HNwJ0*hM6f3M(xNi=4PuuK?d>I)SHF_Pryct%$P6UF)={atLa`8mIv~p|06@)IyeFF5HKy z@Hy(UBhFrTDf3`K${nx(&PClz=TPI`L*Af1FW@)#rpti37pkDHQBBmfZ;CqO&Zw35 zMxDtZ)IBizotV9jG3w5s?LM{9(hTv_~B~7&7{YfV?rlnj96EnZpos7=pM{^S9raTvQ zPndda9uJr?pzeg=7;E-z<3nNobgc>Iq>SoM@`7zW- zMg#Q2K{yiCF!EtHKz!8Qp2EsmF*@ZCix)#JxH4+u#;6xj8}yHhTKGt-pK9@WsD8dR zWTKJTYaT*f%ac~ViQ2OJm;+y;22Op%ZFMdzPq`ZExt@sHp;f3$wFPwoCsA8|6*b;7 zWT8Iq1DWUq0*|_i#HbYqqaL$7sC%F)>fJvGwSdW}c8gFGthe}Hj6wM{Y9}wF#=mFr zr>OStFsh#aD97A@u`n|gDNy%9S&WGlQE$H5r~x~nCg_K{2YjeE+*s63{$}yRs1rDk z>i-P2<fgGO_S`jEW;r1C2qQ;Uv_87NE9piPdkj`n^^@h1!{m=s#oB z#80gp?SvaAF2*Jvgg(8?(~?ogqNt8lP+L?7HDOECne;;K$T-vjr=$AM!>qUsGvIBj zk9yKg6bJQQNQOG0To{NYPO|@6NmZ+8fVz9bP!oQS+OjDYUxFHFJ8H*HnO9IdbQj~` zBh)2&hg$GgE5|(LPADO&U8Ym)zXl2+psg=y4a#94^kZSgfshf&YC?|@k_ z7v)-*0|(=IT#ge|KI>k+f#>+TMY)JM4Lecxy&;p9ObdGHE7%ZhhFdTcgD!BFVgt;B z<1i=g#-jKbi(|%%?u=Vuf64C33FfPQN?;#77wHDk(f8! zJyaMgQf`I5CS;b8DT0x1x~HHx22n1H$*?}^%)4O{9En=!T-2GZK%LPJiyuNQ@H}e4 z*DZbrwL{NQ3y*q>{nx;WZn-VXX_iFY?KM#YeP<5C=ak1{Qyh5P?a(D0MEMSCVJ+{t zg>^yg+#uA}k3cPS8Yag@cYN+mwu^w?XuqSb?J-P)_b@F+`ODq488Mi0E!4t$pf1rU zRR3_)j?6+$v;wuDEvSY3ZXQSf4*4u|-F$$pY4{SgRdw&WE$oCEpqtqbHSrMCR*pus zpMj}x4eC-IN8MX@P>-&`|fGU zhnlb+>Wq70LL7{`hbE%N{{?l%8&M0`?aDsy5gFZNuThUpoCj`z)Tmc%Uep;BMJ=e3 z*%Av<{tk7iR%28=fjW_MsD3xGG(JU*m+PTxR|uo&`7c36D=%l(LS4hA7#%xXyf^9$ zeApRBV@7<7(J;j$xA1hRg%m*TR58@}6;KPVgL;wugh`m++eSuPb{chtcQ6WmM4ic3 zGtOha*-}o9ny?WT#g-U?Gcg^W!1eeHHSU5ZZb2I{1Lf`Jb@b&S5b(Eam=6Jn|oVt5YqlmtF?H(gd#zfzbR>tab9j%DySERO-t+>Ta6wXgY%{f|SYEdiZz z4@?!n9~v<|<;gtkns_s6OHW};yntH34b(mJ0b^mT7jEH+F&^dOsGG1F#>JMXr=lBb zr+$3F{%hi81T?`a%!V5S_6idMc8=a{UUT zCTxU?55QoY?jw_y%r?{jmoX!Lv3Q2pZU@R?O5)8hA@)Z-?_*H|E=0Z2_Mmp=GU{G> zjcOnJjccC<<5MnxrPyg-1v1acjCjkx`-6Snb8Ya>Kkj4o{RbM+p~6S^A#)IuQlI@3 zUrsReU!G;^BYokFB5|#8J>}b8fcKI5@PGhs6Xo%d1HA9CT$BKBIPS)94P7Q`fH#7` z1ssKqqfyoZa3tjpF#^1fl%JvQm4>kb{Abh-b?Lst*fC;yK z9AoIz0%8aFuVE|Z5Mbj;IMnpq`@fs7tXG zo8U>S&l*3#=WiGi-%V5kH9$GDC2FF9RzC`BQl5bM@rKnWOyEu+Ed~)Uf?9ZWvo2~u zO;GQJcBpatB=EV8!w6^xW|`bqOA!F41eGpU;b)*sU=L0)xF}}T^Iy>d-OWMf zXw<~hP!nyi_;&LUYN6**3wVW^_+N~Sad=H?qWETN)OguZ<5g5#&wmYT(8TP3dWZKx zeaK8eeH!k>+;{`^VhK#<21_**0XHe}Pq0aCH>dfDuK5V|ACQg#v^(%;pC|9;}b1U~ijrU`6o`0R`JPT|` zO>hpifGem8?xU{l3)IBXQn)u^EYuk#HZz*}%}~@Uw~pD;;$2bW4oboEugpjbOf+Yi zzn~Vh26b&Wn+H)lbJ5BV&40`oDP8+yScZ04Q76y|HJ%UkSu#=?EnvM>>_naUe)BZy z46j-FiTMv|0a5w7B$JsrP~(+CO;p+9wahlC53RnaOW<2&nS-c_ZY}33NwpY05xG*D_1t_qZZo6>bv;kJb%5d!BDFhXXPoV2^XTaY7=UJlU9Gp%6F~& z3^nm5D@RJ}78nmJ5l@AxZ-*MUGse{OKZK0Va1?6mW>|R%>Wj!`)WqkpIbKISHN}Hn zya8(9R#xtS8n3503^nc~)Wq{p?boAE18*av=XO7;d>b{u6V#c1LfyTI(z%Y=Q3K{P zOPSToMrIgl!d~W&7N21*NyqcA2{u^ZxOv&UXTCzM_^TN$y?d?$Q439pT2KyDyCPOD zje7T2H@jK=M00w2pBrc%0S&MU^?iRkYUQ`hH>ib1&)_BqMzzmk7O;3()PgEoypb7Z z_Co(JDl2dIkpoD{mrrFJXHJjRz8e+*Z+xnzMrE$6F#DLE@5Uj zP7bpa68Cv^T*mtrwU8gI!9>(T7GpJBfqC#9=EBTb+!@qE^=pS}-xJefe~ZsR-PB7^ zzpU0`PP~A5{ontyx>sTdW~QPO>ihac)XJBk&h$6bPW)j$GXF(=uE)#fCdz?YP(d@) ztcB{|47JeiQqO-sGFstaRL7sJ!4y=7*{BKDn8#4p_CBg#jO=c}gs5ws95qfBRR02I zCDaKuvHITVfBuJ((LiHRE1P1@HW#4=T#nkpEmpp2K16*Xd5gNcqvZ(j|EaYM&Y?UR z*J7TWZUHyVe{%BtYv2UA+yrS*3&>&R5G$9qaz)e`)J2_H7mNGMpHcm1qTZYfP;bgT zsGIQ$>aKr@Y8Q~3=ik4Dx!nR1qVC?bR?d#e$e1fjWUO)WUk9#v5z(Q_VT3 zc8kq*sGD@RkBmB8M@{s=e2SnEu`ny0I)b|G; z>R0l3)VQ-yJLp?TCJ&iS=3T5oIZ@sK?;C7`YPcD-g-5J>3pLPd)Nj0xxCk@ka|<|x zs=sFbWj;1vVp%=^|B%rH#X{T})5 zk5PXgh?(E*TtZBs=RZ9eEuaAE4OR&?U^CQKwnc6I_f{ThD{rqJ_Wn~Z)Ebw+)=^V>oibqz0~7I+)Au!pD#-=g}( zDCj0gk2-;zsQOUUO1l930YAdf<`5vm@E7VOH zwUBF<*i4VA&x5KDwfHxM0&@EYY)L>jQ5UP2it4ZkwUEuI3HOG#E*9ip@*QjO9JQoK zg%881)etA*-Dw=IjH^UHA|H-KF7NO=jUzAstR`Q5| zI=(@5h+oW|c}6oI>UJ(=)-^ktgU!k2GSo%hW&V!Z$z!N%a0#_jw|!Re2Gt>;xT}a^ zrZjV#Wl?8R&unM$KBx!tC)91Z)ZA+PTR;-bK|HmU ztC+P>3u$P!GkcmtP$w`JwKJ2gJjYy&KCN^G8UGns#bH$Zlz9Vnrq8e%29$LJ*FX(i z54CeGEZ!G2-XPRXIoisb8vjUHo_}4d%NBTp+KDKku3>7_3nVXUz;Dc!r~$g5 z`VT_&n}Isx^{DpS%!8<#`5dbKM~f#Z=W`u0lyh639o4anS;OK@tlR@N@nCZtYJqc6 zmu@fW{c#aB;Um-zB`EJsC?)DC%WXFHktJJ z)HneZUHe3+axT=TO&QeqRZ!#CMeYrs*UADu%t^)1m>##IcHkQ7L*sAML?1CXMy=#- zt^%lm>!Nm|IqHMIos~P9-BIoOq23om{c)bZS!6WPLVtiWHMgNwy4T7lPy?JducLP6 z0jix>*%@f2FtecUjRL40sfrq>x$5=&cOavir4Q;1=BNS}o9nPR<=v>e_XDb3;wtV_ zGZm_RUDO1vP&Zj`RJ(arzXY|A4HiFw{y$lsCZiSofg0!*YM`f9_Nuyp0#WfqsCHS* z0v0ce+R1umJJf`IQ0>Q9d^+lqF00D(uN7{#ie0Fm8YfU6CXX#1uUdfDlX6{QD&kgm4U?gs-)yJ>N}@W{KrOThY6n_d zxesc>fv7VbiE2Lwb#E-kj=0~-Icm81%A>}w>9ar!RL721(bvj9q9&edTd=YA) zYf(G(J8Hs*Rv%E)jThHUX=XJGn!ZpnnxK{i8klWSpK3i&k4rz)1QSv1mz(QQXR;Nw zlZUN*7PT|CQQr^#M)gZk%e7C3jOX+6xr|p8H9%X`E43?@#tEpMIgJ|Nn)#Q-A6xmo zmA{~#|Jb!%zj&yAsZir*uyQU;uAeLgEKn1p(4ao*jGCYp@-6C`|7`L3s0FRH_%77W zoVNHw)I@JlH{Vy(r(pa#u3a9~f-0l``L9Jr6E-uupavME1~}5<;i!cyM*SS!V&(JZ zee(mVf1GceNl+68qsGf(7C`^^|FRaSX*M-Gntf3N3`b2o+R95&6RkG4n)|H&II8_Q z)DAtja*Vp}*Jq}>_9u&y1oWqcs;Dgs!>rg3)8c&84(&Bhqt4`}`8TTl2h?Xr`g*Qh z0d)zxnG3^O(i@c&C* zEm5!J8K{Xip|15GR(^}R`;#_uzaJ`KL&{BXIBxKf2_sXmvD>2ASb*{-)EPZOEg)eN zw*y&G|Bd<1Ho>8|YamRVqjH8_U4w%4uv z*vg;HSS?(AQZu8O4|S84LQPn~;WOkE4n{fTE$@0r5J;{ zrfX5x_!R1zy+fT@!Zz;SNQM40MSUvP!fn_T2VkPM?qhZWwxK*1)y`|@{)`m|{h$9S z$>_05j~XyP>Pu%yE7wDvc?;CF3qxJ=zUE|1PkAls9yo{U{{%H&q%gN5am?gq<}jXr z4Va&RJ}k|CtvsS)}TG$g*`!84mlXh}5#Qc;?qx$!@_yp9wun5&} z8WtQ!yDWYblLYW@4qyiAAM|ifLF}GxM>3&yBpYg> z`OS(JZ;X0O+oHxFiT>aJ;nrX=YK5y&XYdDVL9b9-{sD91XUu`wd$}EGfZF0=sQP87 z`U_U?^>+0+Fqn89)W>?S-aP;6IGKR9dYe^Tw}zjsoTiT(pcJZIJJbN9Q43ve9z<>R zZSy_qMHSfB?NoMDxxAHI_vQIlhk*oimrp{yB9|aL?Z1(n`lMB%SvIG6Hgi`B$$ zE$?r{KMq84x!)P!sO1$&MZ4mZr!!6;Y^1tYq}f!wqVezKPm+Icohs2V3rR;tVi_#2 zay;5EA?2j~eBx28kLrFSrlUXgjl<8@3i2(ac8f)~nyw9R2F#T@?` zaX$H>#3qo^(Z3tzO{Bcmrm_uop8ANRCHbt>Cy&BIUX-N_v&KtsJ*}!RP^techIh3$ zh`MN`PIR6}-Dc7+wEc$iVjKAa`8E-=;4hS;(JlxlQQm+$N)n6DSSbUzRpOA*3;q#4 zXQGT$>Y>(=H9VkBkZ&|m|3UYrq{>$29`;&O=1uND7Mj1|I?@W#5k}RKm3HOHFChPn zbc%dSX427tIvu=rywA9qw1L!~^e+!0@OL5_rzH)iQ5n)vQg_O0=zN`Y!UpNez)48Y zNgnBY+VKU<>qdPn%J<0Y_)GO1%PCi*PVcA5#PX4EOnw`w9_4;f-2C2I3i>jW6Wh|L zD3h14!G6|4h({dDC|98n-|D}k?j(IOQ%*zro_xenfwnr%l46lRPwGg18-4a@OwIo* zX)}e#bgoW*C;59cT%iUWy)lCgr1JNqP^&vY{yC`><^A+8#pEMtt2g=_JdD3!d+HyO zk2q=(`;NB0v9{WSR#TCNwW;idFBq_k)fXnlM~pWFBaUXY89?ke+N2=8r>-ZlV#Fej z!jyGmKm zbu1@#fmDz7`r;dpyxz*gF%{$PBDJEf7;>?>IjA^pgFH}-VxcVIx{GLPwOEHaKtAcN{>)H zK4jl*5K} zIIRFj2huJ&jVAUpNk^jp^ig?_O@71TNh$xU3XX^L(U%n+b%D{ z^v)DcO<2>R(Wo zhxjtut);FD`J%+~lZMi!Am#Mdc0cxt%>G}Z@s0lsrZLA8({YpZtJT$JkceXdnH(0s zZ}AZN93|F{x(}#d#BZ%lPTD-8+!^CpEFTMaqU(Q$KmpPnDq}Lp1oEXxKaihDqt2u) znLZjRpbW~`-8OKU&CiFb5zMkgSVtzR6M8S z3k;_mOg;_i5&6+HOoiJ?v59q~Jdpfa@;Zu;#)j`}66DkW()L_R-!RHjS`DK-hWrv- zfJfAv<7e`Da1H61jq;S(cKSpmR)yG9X3#O1l!x+gEU5s;JL>wTic%$)-gdW2Dqvg9Q;P}`VwnM<4L3`#72<%s*>Y1ll(~iKJwGafAL3|hc;wgr_ze)W2bth_~^COd3ZIjJ~Cib|SAgR!LRR;S-oIu=rnkMl{J$j_tAN^4V{ zu^NzcJg^Cxx}w*YF?HmpZ5vV(>!Z8bf1I)gDja2yQdZuIaVQ7Tp(=HWun*-k*}4^OLjJNfRXHl< zLX=xsn-&UkR0v<#Jji#KiMCU^NNsDmp z75pz6QSp~`8eoH}?gFuK)TPF0bZA39;AaI?~diEU|R1s6VuLC2aBl+P9~? z-0C8@PbLfTLnIx4U}oBWqThFT0<#nUlf3Vk4R)Ep6;c|?BdGY+;)}`axJDYtLKcxG zlCs<2W3dKp3ex^Q`NO1X)W^m~{+>LK)c;NTmvo%?P~zEW!{PH1lDSXCR9x(W-a!Uy zM8iE+9_4S#uOnhQzR-RpuB84DZMPBMNZLTWE@`#;Q+Lk#f3kiHu%G28`DOppGSCuI zcN$M7_?Ub)2AD$r4QW5|e<@$WOZW}3Z)u|=6Zw?H!l}zkz5|m7xhnrZ_Ym7j3M8(h z1tz4uj-I5MJ}Y!L|Mpk8f3&9KW8(Sf^aHLSoQzm;ChI}@HTg_7a7XgBh)=h2Eb<3Q zJL!{%wsDDHqs=E9KPu(jeGjri2Hy4f3U? zW;9I-GE`0SHSjj&XV%KK<)6ftQU3$+tQ0?COq}$ektVq+f>9ZT76r_ z4{>#I{h|6+@l*Ihmeh=@5!SUFO|Q`X6-mcRmeC(CSy{1mwE30xGgPqSJh6(jiB5YR zB}jFM{ei`ZH^+JOiB1}9WBo(@?ufr9jZ|Y>gwGmOW3b%BcF_4ANyiauvy}W>(p>ue zr8by^_OFSR#lwt|oRo|dmHHZ_47NC$cSkyl5}jv))<@0NTlxMN0Z9Z zLC5dZ&mff}{Yrgri>q#Z_~&*>eP@YGP?6&&hgX8u*{$VBVqfU_JLy}N^pbcr@;VNY zW?8!g^wAMUnn3+F%8xA;%}%8S&LIt=%~R^a^(G3o!L}2aY#rjzAPx-^GI(BMm2fq& zh$Gzk45Drt`I|VCG=_GUX!L=;nJ9myoSOV|e2Pu2pT?<0zJ0_eQ7tN0kup%R?>~)v z#D1cDo53QEnPi@lb~9+iv6uSvl!sYh2mSh6pMB(8SpK8+IY?|Su{N5ZG3geQgizUl z0b*F=#KhK9_k?l_e-hEO1(*`&nezp?gBXp)lrISeGOqYwEg47(ajlKv*Gr{8f`?IobB<05S$ zjtAt2k@Ug)-{U&{;_5HiH>oVo1g-IewJ1aWG7Z|CR0%Kh=0Ei9tG74-?}w}5y?+(^YX@+Wl{=qT#&4$<%t6_-iXsoTO}>1^@_ z#7>YFkvfxfT%}Dq+HADR6{}0^N9w20ucGyxO>8qM;>b*<1}QwaQ3o|GRY_rV z(AzgHjq6d~g@52n;)U9=& zu#Hcq9EudJb=U5FyY<=l>+~C?g1UBZ)2T~XaF34NyM+aJ>)W+WSg-I@=aX+7`A4Mk z(e7?reSg~OtwT}-?2i=f{?v7kewwhgXzG9y#gpD2J@)>b9rq?|y}w}BymcO;0m3!?t=gh0$+Q*TGK8obuh!=5+$MHO(=Ox3*89eXj$etIYx}u&pxP#}7 z5B9tvxFE>$;&$@9-*7``&ud8isIHzj7Vlzz?B31uic|jttI{t^56}CDc>i9WSC4X! z-kx`Z^3gt?*CyEWy`_CU?-hZV13d3X3?9g&I2I>htnb_e^KcpEY=b;+786{;1(bUY zCQ(i}#PdQZj~VKD@o_409^OifiR&>s?!^Rn5>qk1_eUT@mv#)qv0it zfp^Up=0}V|JlYSgJ|60f!Y~vwqxu)eudotE!RDxTU!%tDX%0qT9mkT1jPo%HF17L+ z)Yfgrgm@4&z;)DCKf);Z3gh4h)Wk7Ix`m`Rvtm5r1u!*MMvdELB>S%|9B2&|BlnTF z)f$A4at-ri1ma~eBUZ!=*aJgwCPu=ASRa?8E?F=)lqSl9T0kj`i*-@sef=Z*AB#*! z0vf2lH5i84vZ<)2VgaVd-KcASAGLE)N4qmmhPtV;Vmd5?+Np0)?fRfD@o3b&H4C+4 z8+|g`vO}m9Ud5#N3^h@-F|IxfYJ!rejtx))cR=;~&gy?cO|Zn`dr@cn8>;<%)TMln z8pn?})^$jOF$fez4Oj`2U{j0tMJ;qV>hYS1I-@lh4fmiXK91^t4`bq6)IAb;oI8P7 zsCYVL0lt@;j0P@)QL!OvrL8a`ev6540BYjNsD&*@^*d52Q38#obaob;%1 z^P>7ULS2eB7>wUyWIg}=$Y{dBsB1hLwc-V+30GKr3u*^WV;a1Nc`;;y=jF!YSO|Nf zcIa2s4jx4<;1tHiOPB*6p|6!Eo#+;j8nrc9Q4bbs)+QA2?Gk#$PPj=<6%=DAl|4@|<0?vV?q1>D82@Nd+B zQKq@aE+OiKlB3$EMcvG~P?xwkvJl^EOh#MR8Z|%{SK$ppeOQdJ_%hViZADFd9Chig zSp75e6KbboO?NvNhC1Vns7ss!wPU3*uAcwu)}SS7;0~w(`dWOH#V4Q^I1dxy8q`2X zQD=4mHPIc^IFGFS4z+_pGhDmqn45AU3_Sl;$Y@JyqZ)R_#MsZAgt~^SP-n0owPP2t z72d|gSZ1bMKr_@m(++hBx}p~TEo#9dP?uyP`nq=W$Y|n?=59<$`6z0jN2rc3QCt2Q z6JY2p_c&%k?Lc-^`yy5@i<+nws(%aALOP*#Xy7dNUlWfepfj3+NpPN(x1;J0p(Z$k z8t^)5qQ|H$e}x+O18RXWX1j7q)DGl8O_(1uV>!%%J!W(L^+K6TKm#sBO|S~pVLKMU zW2h~T@Uy!V$x#cO{tx(@-Zo-zQUv%t};;e^3kZ=D3wd zLTz0PGZCs?T5Nz>Q41b{$#623!nIa@g(WD*o$Fq`wNU;0puRErgUN)G8G+iuHK;S$ zgNg7YY76gM{ZrIE^AUA3#+&D!mUO6iK2*H2*$j22-BIHYL_Nl1kQ4L0Ib?KqFUJ(P z2es8VQ44s7x)kx|yRA-zB`JqvF6@Yfa1N^fWz-qIHG>wo_eeC<06M&e~ZZ}f5w!Ue4#tzVyJjiRQ~~}@rI%9ozbXEIt>%zLevTE zKwn#Y#u_|C4e$mvz-QDML|){|u~7B#Q3I#IRG0}hK^4@FG(=6%0ZZX`SP%E$VobV0?uPZykkBn&=l)|Fsxc80tjM zn-@_hco{X$->7~Om%F$hkBn}L%&09ajj6GY*#}Edo{2^AD(Wdoyu$S>h`IzdQJ1JK z=EP1&Q*RFH=B&8VU5c+!C(_lGeXq9#zQgQPe2=oGbWL+!{#)Rx~woxwBI7JooJ zZi!d9c3I54W--(~P#(jvI;vkkjHc&*Dw&uB=A*WDHR@*Bje5sl#t?jk+QLs54deXk z+9yRVG&5>}`7sZcL$w=#I)M=w3&&$-oP*Jr-#bP|TXzA|;5F2Q-fH)4HX7>977KN0 zvYIte6Zb@IsgD|GIL5>=sGXdN+JUv06t|*w>;n24@J})^F!~yIMu{*M<&3C!e$)VE zP!m-#YoR7;fI7o=s0DRJ-4g?>emrU?ezx*b)WSBcVgI$FlLXZ9A!_2+m>wgpbsaOK zR-6yDGZj%2*0ypJ)P(I&6ZJ>6AC5YK=@=Imq3SoA`_{7m>UffXo`Tz`EqsS@(Oc&h z6c6>LONDAz8Y5t1)Iyr07S`U%JusZ|0Mv;sLd~-lbz%oC{=_E}kHA|@htb!&4mnXP zEs9!51+x)q>pEd<{2o){B-EL1KrLu5YC*?PJNlb>*ZdoGbNfLXTqYUnxz2CaH~W~= zP&>2P+=V)`gQz#!S=5{JBI+J_V*ZV~dEcVm0|_^}7f)WN?^Pr76%}7&d>n|{k%_2# zV-c!;FY3%MTKTCNyvglELev>&KrJXICcu2C{#7v-wnFXDlz?3SIb^hTOHds*U}oHk zdQsd%U5en%?(vL?+WMTR_9anUT+ZTkQ9IBUHEu`LQ_>eT&Irtj6EN`oe?J*ri({xW zxM$_(sFg944*-;P?yDb&_oLfwQ$em&!A6XahcE$NL+#*8OoVZ^xg86~{FJk8 z^ejXJ~Or~xNnC@w*r;da!{976RwZROul3%_OMN2n8fiAhl3I&?xw zQ47qmo$FtYOnCxY$T-vlQ>@`U)I=LmTe=JNl$<~<=m{o7Z-+Axrl*(#wIlV-_Ez5y zQxczmx@Xq;WVE$=&GVR)@;yw9K|9?UCPfXH#>|6iR~FM^OVmv_!W@HI@I=%J%(L<` z)J|+hU26ZF1@55+^me%clcBCzNz_6bVOH#g$#4Pcvtu{vTHe9Dm}Iy6^s9lIU^r^r z>8Lm82Goo0BJ%Y3-Ul+eMnQYrwU33mrYTS>Pmem2?5KO9D5}1qSrgT+A?lj8LM^Z# z>Ry=x2Lr$VZ;(;Ni$H+E_qt1x7Jl_V4crxVuk=IRw8Ky@ zn8~P1dKfd}WemgMeePyXjXIG6(kD}fOg5~6x+#3r1mjTGbUJFHIjEa-nbogB4YUnY z;vv+|JV5n(j%xqf;vY~8i@4v#6QHlHNlr$lM?D_dQ41-9nxHmn0nJeh`vx^oFI4*x zsEKBw+AqLN_^ZV)qsF_1+QH|T61@Xlf8A864!9Lp$DEYwqB{J5x-?TU3$8*f^a|>p zxQn`$f1wr-`=Ff}YN5$d3(tVM8FOJIEQ=Ab@C`9C_V-TMlHM`s=k87YohwK#K_pg^!t&~wH$1LiKs1`fthh3YTz@d zt-gh2@Du8}E`7u;ygBMpbwHiKVAPh6Lyb2d^~PL@QE-oo``!^UTJd?*V|E914}3(u z`?DW)3n+_fR~I!w8;keAsFa7Ic5*aog6S5YhibnJBjIM$3GKx6+<)FlGP)UFVFa|0$rO%RT{2XbK^EQZ?3o)+(qI)M?W{_{~=z750iIOfCG7!9)=XF+=Y^OMm) zMNwy12DPBts4Z+@^&PFghn0t*&SWG8&KNcEJS%TSjk6b{;~~_m{2Z#^6ZF;b0~u{m z#1n49c&IZ;huV=6s0CI+4Nwy^VnbM1CP+Uho_=leUBXJaCi!*GexC z&_JKesJD1oP>zRQ^3o43QNF}ot26o77V|Kxo zwCn4W(Nl0I$uDsEH%};kGgks(lzH!@Q_VRSR`QiE3?l!@CmhDXv^Wqo(0tUHFGWqT9ko+?Q4^d% zE%*}ZMHcI!yF|rN{pz7kumeV9es2gFoyiDu5*DL84>jRUEQt3p7p8pVJ`-x=TFSjq z17~>b7E}n+P%dG%!R(YrqS|f2ukbkf>B!t7qX{BEao4B>7NXn`^_WaX-E^x_9S>qQ zyn;nBtYBtMlGN% z>ZTct+Ug0Yh0n&=xDWLTK8Lyq@1vfI*O&@pyl@j|Lyeys!?EBC_CF(;)&w%(7}SC` zU>5uxGh@WR+Wx+wwKL68H&cI9`-!Obi!csu$6{>t34D&xU-JQm|GweU zpx@!G`&b?HP7fmuu?<#v&%iWTi@WjYzdTCBM}6dsg1Oe8+|AeC3-aDmpCl;A+dzH% z2ti&yJcdKDOvE5>5+253*f>&s5{s6u9QKVg?1ax;N^k8-X$LXLE(sZ$;g_$52nl1=VZI zuanW^@z{KeY8WY&i^oB|2a;Pkt(ns-W>!YEYhX4g`KC&1j;7F9n3bq0$u6nCQrJa1k>O?Vq)<6~66e^LFS#&xDL3&r(agW3et zu!Y$fwZi^Zo@)Mr8h8zAC-zwRJnGEvn(t5_RgqG11}uX*!$znD_C%e~_o#_~vhpve_G_%{AF|AO^A>92r&bQ(Eun!D zptd>2UOTRCZb*C7vTfU2m0 z>!23U40WcxEItfVQ66XUHK>K}LA~NnTKSC`A%W_7{^F3)#K}<;6%17HiDp(sUCTzO z1@uEr{5?j%NvMgYnF~?ltwoJ@(&E3Fx6NmmM9=@fWb`4EfcLFFL`tDPUfZJH;geAV zEkaGS(%gz#*deRGXYnVfPr-L))I_d-LNf*G=1YgZ2Fy=JH%S@PHL8!Aup86_!R1od-K3%`XL=MCyJFQY!Jo}jim4d1h55!A$W%~q%r^}Bw_pw3{tl^3BV*oc~Nhj|D!&>7SK*HP`B zTKpC2k_9Dq@fet%aww`_A+tQv-}mZ}(V4cfiazErbAmYsHPH$yuQPX}7I?zyFIxP% z`N-n`SosrbzUV2mGdzDO$Y_B4s1=s9ay2VAKuz4%%AL%9Sf2O@t3QPr_yTIYKT$jM zH)`DAFjtO^`d$%+A$tCcl4*+NQIE+YRp1`f#K)|B7B%2i^D%1Re^C=hP3hVvMfFdO zdQ7uexiYGMUDQ3%7JXgwL1Z-1WYmDO%%$c=bDwz{HQ_b$xy6H1x&E0 z-E5MI=U)?dARxP;p5s2Kl@7OtQ>=c0m6xI3^_$E~sQ&NGpww=hsHhW4fcko$2DR|Y zX0z13TWNO!8sJA%hY98!i?2W}Xr0CPnWxQbSdjXMR!)<~jhDmBj~cg_S=nshlPN_- zTMH~jt#Bjez#~?EXXO}a-I*6f?NoEr!aG~M7iytXQ4=mkUE=kqc1Ka~{xhg~{5zI; zZAMM!IwVCk$ccKlmq9((4N;!~ZBW;EAgbLIbE(C*o4=tJ^3>|zqZSe~eUMjK&;M6s zvJ+^5S@9>-8SFxJJca6T6~pk3#e*}ryF51Pr&MChg2hlf*Aew5oQ>)6JnHNDd(^_? zX4HxD{AD7eGbmx!Hrt^-$NQlkrzxlf%{5n=TT%TFp%!}CyoKub0M+j=i+@73j}*@M zdj1nBgLzPQbq!R<9;g8aqOSG#sDUP+2AE^6MV-+BtG|xw|HyoW8t0Q4DU&P5z`*B! zC>d>GO4I~p&0450Ak9&CcQ>qw%W*b-z|}Y-vs*yLEY4P_aR!(pQ45%2<=IwVmc>5* z*AUPd>_nZ}MQixbe1jSwLRRie#RyFIGjj<%{TA{{Uh&sW|R)4_C$DO`+ ziHxq{J*)VL+KFhn+(ciQNzK%#uU6rxPq#X#-}gOHJ2w#Zh8u%gz#P;IY%S`<4xvuu zBnH0!-?hMtK!Cr3<#sC$#lTZx<+7*&YoQ+3wy4K-h}HjsTKF2&&AAQr3+Mvs%j`o; zj88EoM#;kqNzZ>qGP;JvQ7f#B+Ok@x37exj_CQTA26YBgt$royCf$wdcgehG@xM{y zM9=H`r!X^O;J^RLMMfP9qPDV}m8+vVHbHG|SBv}R7^|OQ^(!sD!#s+*hb~(AGitmT z`P@Rn^6~s@!f*mwKrXYmSq0Uhp_MyXxu2ECm@`n1(_(Y8#gCX5P~+S|-8-*Qmo8;~ zd;Ux1cdyu5s24>G)RuNceTWQ0ZTWW8wLgpcka>#QnG^+FJR9l{7L}|#2-R<GOXE8BMej zbq4EE3)ye+GgkiH{KNbU)6?z~s(-qoZh=`){fna>+bXDqwnJUYZm4<2VBmlMn@vU? zmYN&QeW*9tY1B8D+vZ!;gt3b`6PU?SV1dXbTt!UO zO25Lu8Cg81#S54fP-ofz`7-HsL=C(dHSR9d&Kh621$>E9nLbLrt6u zb*)NSxfyClx}YZf0rdizi5hT+c@)+EBC7v=RKMU-ZedAL?NgiCeKNY6i=aBRv5LW{ zGZ~B8`pFhwZf>^t0V`iYP5i+82erT`rCtAU)cd12YQEa29r6c|(HRX#J!aF*{iqkx zGt`R1%D8q}P!knLZEbbbLffI*bw-WX-{NCY6HPYfm`h!~@2w-Fj$2*8JA`_dpF|CG z12w>3sCNHaJZf3DwMkL&JgBFoq?K!9;8l(qrz7f846^bxjH>5s$JBI_WeJ0MR%7bLsjH5 z3!)ZO0yR)2)IjyE{0*voABzvN_ylu~#aEzi+Fj-;)Khh%qCNkwtRkqAyQXnb1BanH zrbqqFCLijjb=VRy=-P+#HxHKSB^iMrnMjeM)gVCq~XPFyN1Dr&? zQh&$d_ztx*1*^OM<;<$6cpWRZv~qjY^WWRb{Zy~#e*_s#FjfJahB~u3R^EaUDep#| z(E-##enVaJHx>`6;U-Ruil;}NNI{F&Le0}0bx(CbKk!wEj2g~BEnpq$47Q>sJY-%( z4RGJ;Us(JjYQmT`-H+3hsB%%WhS?g`|66l#O`d;E_#**LIKiA_t}wTl2hDTlO;rCU zs9(h|tsJM8n<$}~%FK*vpBL4>NG+a!oq0nG^g#U>9gkYj64Y7zGdFyP6Em51O@&Lrz@yeZ~eMKUUl@b9G=F4 zn4q3}u4|y$wZlR<4h!H>)GIl-zMCio>Qa}ma&y$TV}A%4{eW1F_3;1>#bgbF0{ zT+Bl`QbTtpg-|b))~I`& zDbAu^9FI^Rr?DFcc@wc1>ZUr2s{aGEfRH9Gp4iNSy0*np<2A8(Z!AT5BWg7DDwagSrGYQS-F%EzryS!JLUd(qI)9zyj^u0Nqg?2U&R>YQR~jkKJFbyboJa zzJOXt{;%C*ThgqLiu;|(Xuv)gxJj%$*~$x1H{n_<-$XrDPpllNz3U$jHDGEhXF)Bj z2&#Q`EQ0M(-=r2H^ZDL>m+{V+*HK&g2({(eI=GL`yr>BZqRzCmmFuGx-V)Wmi`m;8 zh@FUkk6OqJ)HosEXn{O`p=2~bdep$V0~Ores55V5jzkTx$vlmED*i-$u1D$U29Ayz zFFxu=X=)5C4E5&gjrw=M7Go+s|0l@&g3nOT?Zi&*aa@S{@L7&}+zz51$J?k&7P+(A z;smJ2FB~&rEsKALxhemI>VLrEw@|O}m*}fwNSC0%zi^lf^@{9{WpD#(y1A#I32H~aMQwF|)V(mwoM!Rm-FW`>oNgeX34TYN*&o*66>5Q> zP-l>#yPLQ)YJy6b1*>6Z9Dv$^C8#YvXZ3HbK3xx2UlUb7um{h7N-_%wgyDXxxQp8A zke)7{4b`rimAj$_7>{bV(c)K73w>`U=;gLLmstVzqH2bEUkvaqFvSAvP}k-J>Snxy zdPBZJb~);mZT#!v6PlqITr1IA!VZdY~sPzM|Hc1>G+oV`u~X&niRW6 zB!4ck4c2C(8R)=2;!{@=uQKLl(rog#G5kN{{7n8kVq-{Q^zTG@9Vwf&sbGVhq5jL! zgnWAH6GY@4ke`JG{!3VDe<8RQ%QH}s|15@&6t6#Z5lQXnJe#`pq=mGtPWcxb`7HTX zmKXCWN2FaGoIrUs>L^Ss7Got2;>L?cMz8w^_>_rKQ>h0*NBT)QYliwi5Y_RCng$F} z&dNL)UNg#kP6Up*<}Un|w3Kv+QFWxFT`BVO$Uh~WAm5bnbhNQ$@iOy1P~J#dM`}lU z&wBz`5{;9S2Ggh*=`g7?U4E%f26i!pnD>9RH%+KV7Y_K26ue3N#yhW5NVr;ALP2DjD zPD?o%>09z&j?%Q%ah4R7{8>_a@|)<06$ZsWomxfE#fTKI6vVm0Y zM=D`;2gpAo6`{O`{)L%*7;W`_pNWTY0k)z3Px4=ms>FKH)*orBJ!my$XjqNPZupD= zJ6L^QVtm4R1M$nzh&FwR?W9dY(rfCv661e!`2UfYvW~B*|K8%$a3k@7y8h$IjJ84d z(nv4#8u$rs&`=+ZWoc8#ItP*egQTM<4z|Af2-LBJ*f~-y+UpBJO!9h%55~ldyOq?8 zy8OsjOn$&qanuHRpcu#ZRDMTXM{DFuN#MUesuk$O-EE6GK)-dwmg6E1eheE;BkFh0RLXs5JxBqLSmaC4qXh0Fef^*Igf%*e-hm1kqGEF@MuzP8{`K0`2U$;8Ux&+Q*GipF4HbD zsUGPR@i(-+NUBM@ev}uuX5L~OBQx#B5MM^UezGhle-elL1azFXhIz^B$I=nvCF!JN z7Ii!6P}|xlR)eIzw}_V`4X5tB)t92~XB#&fV;rTt5+{&?tW93i-))m*An-3~0FCvx z%zW115rfyEtYawoezZ@6I%d-*9r>u_7ho02d6;;bjrl#Xe@M@%{~H4bZT48Uwyu9; zD)Nw)(rFHzr_kUA`C;V$p&?(|ygnFeXOx+?#VGTo(CdcpNMDYgHgOEvwkDX6wv{mz zW&O6!NuST8*u>qz^}k1;FoAP88tdC2pD_Zl3Z#R?H_>Ayc^xgSO(N{W;QK6ogz^ci zQ@ir?J43k?=_YL!({?DXK^@KYo_#`K84a^wb;@H@!x5K8>4~+VuCERHkXRzpTjIZy zQj+#ir$0rU#5I)5Qy&)#&`(De;=htgQ*K20S1d!l4*xIy(U!m;cwG^WCzJep_uT}RKS{?f)Zd}=CyS{~BFjIeE-Q75Xt$d9H{|mX%Rw4Mo7|LBTH8I? zEdu+0fyURU`0p`>n2wvI#a369LB1UNbsui=yB5zupTor3Q1=h&`|e9?6K-wVV@!)> zX916N{cjP-MY>64R0bJKz9?x3`EfMrK-xflKIs_k%cG7Bq-mtIq!+a5Z}GB>vx>5g zk``M@egLuGNc#dcER;DaW~aeR(l#od(D4~gpq!k1QqlwRKhQ790nizW%>z|4gX{qb#J=Aj%`jFTgo?M9n#VB%d9BB|WxL9uwP4pGd^Y5u3ye zI=&-ip*$3eD!}oIx}LO8M*BO|jV8s^x0YPiX{;HUMmiEwo6X{#hIod=)9bK^pw*B(0?FxleOc25VSJi@}EBPM8>e6^T zX)>{4q~5CJ_=`z~Qoon{6!ISfQQjWp%UPZuZ-JwlEvOjs8`_&^<@NeR*kY^7M8y$O zMACE`j3QmNI{m`ZF_&^2Nm@sKHf@$!n~IE8o228OP0-jCy`GGzBPVTJkQ!JY-OYjH zgf&p%5Q7x4@-QaVp7a20hih|eeAjWPcC@_faoFw+`(Hqm@K zA0WS$G>=YU7T?Ms*QxvO@rFVK>R;exOiY`Hq~EQN+ODPik$znm>(?)F-QS4_s9cc- z$H^=qA5Kh1ayk?vmdX{q?!*h(O|w82tFjAfdM9x|C_X%_>JwX zNJBm`v7e~RM!qeRhq|i3KX(w@N{UWgM-z-gdmY_L)4u%8q_YJd2ddmZn$z)5;@Rmm z1eX&|K&$|hb)ozh`7}0gJMvYCPqA_o^7}~J=@XB(F^FHG&3hX^0_C0L{ZKM}XmFeq zg$9*SM^pTTy5cyM@>S|yld3Uj7#2qzL9}_OwpMOwo}x`%QZwp<@xG1Qg>qf;?MSJD zz0_V(GHFTtpO?!zYv5iq)G={V&eoxR5^8>+Np6O!OujPSr2NEMxwd>4C$o_HA;dG1 ze}^GB?mr`!x5lrr1@Zn?cZjyhh+VMymW-d>)x`>g>RQF{NoQG7L#l>Y*OD~-o$fD4 zI+n4#zIegPinXH6BHB+^!H%=U%FrexuM(2AZ9S5z=V)Cy@v*>q=*cSYX_J0#Ajt3bdAt?bVnEFbjRJJ&p zc&&(Ep-&ZiHui~ z;|GUVkk%Qk!3(gbIc2GZsc zb(8caN@0U-A~4=M#GpZR8pdJpti;OVDq>%b3D&0{b(6_o!>Oc^wELY#|Ijxz<&Tt; zl7EViv7z+)>q(`LH^gHgVy*1S7IBzO{kG!v>!hepd^oy>)WM8MUBoj2p6V{*@ z`HM7Y#RNL?QJzfNMgF?Q6yHfq$1Yo-^3(s5ufrIFDKE4>hwv4Bwh)_2enc?Kib&o;(pNTU0`jG3tK%i@z8v3BzuC&);uTxim-?pE$D!XG;;C^x z6`RN(*Il5apu^iw!v|DcBvqnr1B0co$?Fh1Mw&pO$kdeWC8J(;ScNi{k|YMAL;Gwi> zNI5R!d?c@\n" "Language-Team: JumpServer team\n" @@ -687,7 +687,7 @@ msgstr "无法连接到 {ip} 上的端口 {port}" msgid "Authentication failed" msgstr "认证失败" -#: assets/models/domain.py:133 +#: assets/models/domain.py:133 assets/models/domain.py:155 msgid "Connect failed" msgstr "连接失败" @@ -1433,7 +1433,7 @@ msgstr "{ApplicationPermission} 添加 {SystemUser}" msgid "{ApplicationPermission} REMOVE {SystemUser}" msgstr "{ApplicationPermission} 移除 {SystemUser}" -#: authentication/api/connection_token.py:226 +#: authentication/api/connection_token.py:230 msgid "Invalid token" msgstr "无效的令牌" From ef8a027849e68d9d72e571ed14dd61cc90bd1bde Mon Sep 17 00:00:00 2001 From: Michael Bai Date: Thu, 16 Sep 2021 11:15:28 +0800 Subject: [PATCH 04/15] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=EF=BC=8C=E9=93=BE=E6=8E=A5=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/zh/LC_MESSAGES/django.mo | Bin 95665 -> 95665 bytes apps/locale/zh/LC_MESSAGES/django.po | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 50d8518503fbd7f1b8701755bcd010f7d83aaf4b..26741a205f8b0dd8985259568eba7b5ac523acaf 100644 GIT binary patch delta 24 gcmdn^nswuA)`l&Nd8TYHC+~aKw{&}nDWk0e0GIX)QUCw| delta 24 gcmdn^nswuA)`l&Nd8Ta7W~_fYVcGT)Q$||{0GELaM*si- diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index eb0be9db3..3f2bd2211 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -3980,7 +3980,7 @@ msgstr "链接失效" #: terminal/models/sharing.py:50 msgid "Link expired" -msgstr "是否过期" +msgstr "链接过期" #: terminal/models/sharing.py:63 msgid "Session sharing" From 1ab247ac22f304c40d17130b2c997b0c605d1b7a Mon Sep 17 00:00:00 2001 From: xinwen Date: Thu, 16 Sep 2021 13:28:43 +0800 Subject: [PATCH 05/15] =?UTF-8?q?fix:=20=E7=94=A8=E6=88=B7=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=BF=87=E6=9C=9F=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/users/notifications.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/users/notifications.py b/apps/users/notifications.py index 87eae3b42..57b2c9308 100644 --- a/apps/users/notifications.py +++ b/apps/users/notifications.py @@ -1,6 +1,8 @@ from datetime import datetime +from urllib.parse import urljoin from django.utils.translation import ugettext as _ +from django.conf import settings from common.utils import reverse, get_request_ip_or_data, get_request_user_agent, lazyproperty from notifications.notifications import UserMessage @@ -160,6 +162,8 @@ Browser: %(browser)s class PasswordExpirationReminderMsg(UserMessage): + update_password_url = urljoin(settings.SITE_URL, '/ui/#/users/profile/?activeTab=PasswordUpdate') + def get_text_msg(self) -> dict: user = self.user @@ -186,7 +190,7 @@ Login direct 👇 'name': user.name, 'date_password_expired': datetime.fromtimestamp(datetime.timestamp( user.date_password_expired)).strftime('%Y-%m-%d %H:%M'), - 'update_password_url': reverse('users:user-password-update', external=True), + 'update_password_url': self.update_password_url, 'forget_password_url': reverse('authentication:forgot-password', external=True), 'email': user.email, 'login_url': reverse('authentication:login', external=True), @@ -224,7 +228,7 @@ Login direct 👇 'name': user.name, 'date_password_expired': datetime.fromtimestamp(datetime.timestamp( user.date_password_expired)).strftime('%Y-%m-%d %H:%M'), - 'update_password_url': reverse('users:user-password-update', external=True), + 'update_password_url': self.update_password_url, 'forget_password_url': reverse('authentication:forgot-password', external=True), 'email': user.email, 'login_url': reverse('authentication:login', external=True), From ef7b2b79808cacb8e762ba8338b42bed589d5da8 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 16 Sep 2021 14:04:57 +0800 Subject: [PATCH 06/15] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/authentication/login.html | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/authentication/templates/authentication/login.html b/apps/authentication/templates/authentication/login.html index c54f792c7..3dafafe51 100644 --- a/apps/authentication/templates/authentication/login.html +++ b/apps/authentication/templates/authentication/login.html @@ -147,7 +147,7 @@ {% csrf_token %}

{% if form.errors %} -

+

{% if form.non_field_errors %} {{ form.non_field_errors.as_text }} {% endif %} @@ -160,9 +160,15 @@

{% bootstrap_field form.username show_label=False %} -
- + +
+ + {% if form.password.errors %} +

+ {{ form.password.errors.as_text }} +

+ {% endif %}
{% if form.challenge %} {% bootstrap_field form.challenge show_label=False %} @@ -220,7 +226,6 @@ {% trans 'FeiShu' %} {% endif %} -
{% else %}
@@ -236,6 +241,9 @@