From 988beedcd6cad7f5abc9e3f83ac497f272b8102e Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 27 May 2026 04:40:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 27 04:40:42. --- .../20260527/20260527044001-Binary.backup | Bin 0 -> 258918 bytes .../20260527/20260527044001-Config.rsc | 3462 +++++++++++++++++ .../20260527/20260527044001-Diff-Config.rsc | 4 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260527/20260527044001-Binary.backup create mode 100644 MikroMaster/20260527/20260527044001-Config.rsc create mode 100644 MikroMaster/history/20260527/20260527044001-Diff-Config.rsc diff --git a/MikroMaster/20260527/20260527044001-Binary.backup b/MikroMaster/20260527/20260527044001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8ff1eba155a99661235f0dbe5f9eab9dc5bfa6e2 GIT binary patch literal 258918 zcmV+aKLEh*sF8DK^8)}z`lRc9b{h&Od{-zkY_d@R000O80004Z`SAPzLlIaIrW8W; z7YP8foK^~Ni?wZiR7EO=qbp2kZz-wom$W@xXfajnmCj-29icDk;W+Rq@oTY{LJ}^y z7zK<8hWPQJq=?8l7$YSSjdK4xjK}K87YbDYi9-0zSIHBWIg$^__ubCu^$h-IFh!qW+o%boU zFW#f+gdoU&n7SWvXzP6;r->ad+@ripNlSIj`r+8gNx{j~C+#(Wbn*xy92UyW<0sVP z=-YbGIH?`1>UTH4Oz^iuE2qg2J)8<-m8?q+Oud|CrAMz7c?IvMx1NA|_*+F7kealI zw^Z*yI_0KWW^-ws3(o`+ zEB(Cb|4f;RL~c@Fs^zNl0gMro7>AeTTqOp?3dgG7TO-G?31Xnif*dlLe^fGOW^VcbQB$V)r zzVz6|N!=3B>%6b7d?I%?!oXT{)njV5r=glT5*h+n?t6CZUA{g9Th3}{p113OQAK(k zt7w~2ZBrUtacL*p6~`9Px>D>&x8_DHt(==kBs6%L=Gtx$iIgLqZZRaB5|8hxE&^Iz zd?cZ<5sEyY}v8c+lMJpC3UP$uum>C*c>yKNV>9&D{feQyuDp(@Y>pxz(IB6h0;y zWOb!E7Az)Az0Z;t)wsve$d{>deROF6KRV9P=c7V0UO?4K~?+aUP`;SNlt|@ShO0_UM z%jvks8Iq0ITO(U|*Kud#AAaF$wXZ&i4z7=k2;`^Zy9-mMNt>-a^3j$f`0I$<@{~T5 zs5^`ij6$VCAT7Z-4fL%5Hd2HU!Ac3W`4qq8<^l(ehn+1G7v&>gRBH<&t-DUGCag!F zBaC6K9?9(jEm*VNO-#OtJO8#_Khkc0)f%CXKrG$H`*{NPDx@$)gmY{(+JuY2yHHKz zy-wbZ%bPgiSUUq&K=9$VjKLrYE3z%HFahqXLk=|VaVqHEGg+!#+GFPf=5DR0L6Ypy zUA3qw*=RNVjD=a{)^=e!)g;pH%}@V+5+yUOTPUD(y^8a_SsbiR;@lzs6rQz+j5wTR z@6ebe@RcNS>Zn1XRmA;?JyvO{-!t{=+7>1Bdw}+&drYHU(v~u01PWB%b{|37QS%UE zPH@W}a>&BKP0#W?3sg9z8-i`OX4Z0kkbow#{;JOt9q$?m|f$CW#|#bDUkwX||x&XF2078t(4cpVU|NB!62 z|BSRgZxy7NKwaN(>@Z-*qT`1gFSj{DMmI z7<{Jm{5741q7Q9^Vp)WNDM_p048SaJL#w`6BDd)Ghjg6&HvbO-;^+1d# z@B#9HT7rq>l;uZlo)jGIX4rgZ>C>H(f_RGqeiPgAv6Vf2uYpbX^||A+c|NnJF?V^3 z)!X#TvXV>XFRexyNeiyR@SfFqm^(Pl)2gfN!WY`nG?|SUFUD1s9Z;DSj$t}OOcG-o z0mkp)GEv838fi^UIj5Wf_K;b7kE;2{Vk2J`YkV{|E2*c>6F8q|ux!v9dHG*3pcjbs zias445=GCG`;!+!JQ7J^#f#rh=!BzLf2-fw#NZT}KU+oukrhWgL(O7<`vtt#IN7M0 z#!6_N5!*9e{|p(1p$k*0<0;$GrM*MX0f87C3+-JoX_4+7hSknG-BQl7y|4vj!G(>w ze{I)cADqSj3**{=xtSR@bl%4GTeD zXdSVcS%0iMLB~O>E^MWZyCny0V-~(XGV{vyI@7b=_Rys+(g!K0$TvgjCO_=dqW!6B zxS{UXE(ja+u|Ws2toDh^v|84Pnbps27X>HRXhGKWQMsh^&slk_tb5p5XSM<|T2wwO z@7drI2aNMyc~|=~nZxYCspL^*HgKwNB8t-CoRF98pH`qWd*4A`G_?M|Kp z(yx*IS_rGvExhzF1&J{Y`TVKw=E1nE4aH{CF~nf9b7xI{gZo#xUJAR*vaD;OHZHCs z^9K51lo;Qw@K2 z$Pg8nTi+!MQz(G>?k0tn!2;FRLNrt;sC2iRv~; zNAd`CIdH(k6ny$IY5%GCDt9<1mC|T9|Mz#XZC79!vH$V*JioXINP8N$8C7_s7UuM| zr>Ox!RkpXHfpfHej&pfohYS)%YU)GdH52bO#It2C+O?tIoXP=$v3W}tq3q2%Hqn%V zVbJ1cfJ;)MnSN0=lGkTtQ~n3~2FIAkmb&LGhx*xn>J>8X!Dg*xiL>H}f55F+oQ9;I zClvxp6zf`02B!kpeaA+kr_#bS_6m1A^cETz4x=jt-GKO;FIR`^p6W>7- z0^gv)#g{?!G;TZzi!+M!2+<;gk=k%!>B-rMg#;PJn{-8scDWFr%Zj4>J(`)J1^f{M zocg9sCk+Dn>(2WI!LGb{~-3r;h+{TcfEZfiu)8UB3?&&$lbRJKF z&-bnq_R}eMTsF>%{Mq7&sWiPIy*#LREu&oE#ruT^-i?(foSR@L*+w#to11RpLge0H zcmo`f6+T|_tD1OH4^jjwTc{#F7+RW zZVy7U7ogQ3oXm6T#IYS^w|r8#uiZ!OWjz7~&fSn6FM zs2nj)^W@#z#sKe&$8)U6$Vt=J;px!&Py;m)>Ja0F8f6MFrxjO#i%1r8a9ifx>o8_7 z{cJ{eCYy*?!BC>QD*e=?$o8pHymaT(iEkC#h%JI=o;AbuaJYg*N&Q^tTp_z3$GE+D z5&HzyCk;kLV~0?5r`(7MHf++6TR=cA3FMUlbzY(P!z=*of?qHVeZKXuWr#nzs7doe z*LHHA8=-VN6KaL8YoQBSB{#2;<^fQQv);@22)82DKSJEYDaA!a zI6Pb)TJ5|`tizx!Ejd*8^>X}GmZ>H)NWN2x{$q$Ww4y9&vKMfc({cm{=_Yob9BYcQ zi056B4dwZ+iCbb*vnX)+cVCVn>4dJfupO^EaarUR)jl)Ug?Ou>u5Q#mWg*~Os6$#u z7h3&V{Fe2Z3_n@X!S%MIn5+U>+Z^v66PrC^#jEyDV~+XIHaPz&imjksidIodbk<+z z<_Fb1Ht_!&F24I3X=pXrX`UQ!@T9&=&UBS*rI#efU&aBUPzCH#WlkNa1=uuzOU5tt zWWccEiTfGxP=kH?f0x8{_wD2LW@9ucoY%9I<6dF99%9Vj!eIzz?aL&p>1ov(>V-(~ zQC|4w#U+<0*b9W2w=rdYE~7(zst?=AFOJ$)xXz73`hHKw;%y)c2Orn9VMPXs^t89# z8b{5_BmB8|Sl-TfNRxP>jocN!z$yS~LakAOl1fSC zm|X~6=7D$~ClZD&kRefld~P zZ2^Hrm(z$t&bkJk+O=_;m?PJ9Ciqs2pqEwHemU;(ez7P!cv;=hxdT1(x(Ju7!_%{P ze1uyRf2R!thBc@wQ{7x{ioN%P>bA6lJ3wX#L2Irj#{LVDC6B z3g44U<@M4uEWIoJ{2R2W*P$@7QgH{?y?*d#3-zZIQXomw;Qi<=zi7;ELf;!SX}ESe zd26j4(6O2Qy zNSw|Ja`3Ase;F^o2eXhfrEtPiepLJH_@?!-IYLOQ>DdLD$asR>xNbDxr|5%XYmmB@ z!C_P&5R;8(rZXtj2t{>1Y0aiBUCXPL;4M^x-G%cMRy}c!m8J_R9LNJ_JoU4y3D@zKTc;mux zm?=KaEv>HXe)W#7LD_YCLL1G25u})=Pi(_(bXXMQpySkRLb^lJqX8yWf_;&j z{2ZhNS##7kkjkk8inRLo4gAM=zASs(uH-1LJ=jWV8_2jd-=CZW*My*iwE2Z+Y3hs}RUqlAyzJ(lcy9J4dzlcZ8`6wR zI%6~mTGFP=tNV8lXE4Wp#J}-%f1tEH$(^cbAh53JRk>=ENRsAKTGe1jdn$?$USYF3 zUja9ocUuvx*U3)j8W+yB-EmuQ36q+Iwl`FZDz11RRt?jGqCs0m zs!q08N%G3*MGh75R02SE0^61CgC1m%)Jw|V>rcq)F*OOi1t6fq9Kx1YRX5!Sz(9I0 zhzPoUXm6^sg_BH~mO&a}Vd}N0R)5cU5qZP`KrZEl_z-Yy_Z8d1%tt@^S z+~-HX!O6?SDTO-h&9mQa*Be!mTEn%6j5jN_DxDrfUESkxg#OIRti1_a7mtbnJqp`} z4P5rg&WOXc&sffKh)OB|6*sX$b9y_hoE%)n(&VZ+j*s1d?A-ivVOR*_5y8s4$?ckP z3>v1PZS*-s4VJRm)Y#~VIniL(j>QukZyV0|h+^uZa1hSIh}VX})OYTpqKSSBU4GL8 zB>`e#3i1Qg%dJulpX}ch_kvjH9lCAth8*{d{K18%tqwQCk-&dDb$Ip|F_m+s#e7s2 zuf!-^n5MUg&wSlrntx{2Ni&n6D;w=FR0H_`&=w?!IP9a*pWUVS3r@i>P{|?Zd%Gq? z4|IN4ySEu(e5u7nZ4U2yJ#Q&sWn>V>Xwi{<{B?~!CDI7Oc==e7Ufp4Dg0D(Je_IaA z(A44uOj@dYybC6M19WcCeRocUCUews;J@o4m{pnRUGV0kX$=WH014KLlJZ`HTL_Ej zO=N_QgCGq2n{0SqwYTh9zUaO8+R`nUec-%01ygr<_v)ZOdB$imH znNJK_o=v^S7InUiB(b2v%Y?`#K!Z41%kQt#Vwa-XP_l4vh^`b2**pdWXlJ1DL=lAyZvn!L?6 z=F;_yIKhW4NhNo znX=w_a322%oF*piS-ttxJY-Plc!*4(+q(SsO%xUiSLn8iPPM4}X_jw4weA|0=9}0} zeY_s@9J?1+aj|F6ch6nFZMsePrS&^c&^#_r)w{~P%U(AX4Z?mObW22+E!O1PoG--D zIuSf|lmqk4C@LDM>T*OQ+K_kgVsH1D-Nc6x*$D9MK@%t0@ zSxayOGHPM^8lnfAJLmsf1)fWWdP+Y0VhFX=d^O0z5$%p6ugH%9ca|~unEpO0g0UYA zXjhhvE`4XICLa$TXOG#T<(i0K6f&fG{kQf?6TmhNHffJkBBU06djs817L-!2RU7(R z9wdj;oxVjK(A&9Ul~XwYc6YaC1sT3jnAlMV9*|t@41|=sgv*0MjmumRO@sV1CPi?G<(x~w5;MfiAd1lf>Q2QjboJmUp+>h&;_#)6z)&$UN^mBNwms_$X zyzxqMn%0-=l!}dOuq3{qIu6TJdn=QL2|P_uf-A%=?e3OZ8fHFw7y$wx)}Ra)GF?H~ z6AjV3_`T~o%xCbBGEC216^&C>Z}c68(wjvq&7SCmSv&AL#}y1~$~?rD&=lfeJ4-ccLkBeJY4RVY4Eg?3SaziKHuf^y>rWl9mI z31rLs+gqkMRyvX0n6zq+W(gcItX{?2Y#zhBeF2E#-wVi$bdxncoMbEf&#yL-k2(^B z>o3;^x4{2_WA7pQo73wekzyjwEum6a{5BH7K654F7bj!Ka#c_JBjd1L$caQt&KuX% z@!_fh`^C@lQ3u|%M={ehf_5Q!-@VQ6<~Ji3mJF4);=kl%k>?C`Si?5=nc`WCEDh)k zY4**g$)G{`vO|3|V#^DCEDl6yFr?eue0(u$`$;=0fc z151P$o0yV5^*DXH2G7Fv#x~P^E?lg4U zn7qPpws{c;WBjI5qoCnnc;}((fxrP0)FgWjcsq4!iAud;UKeJr#4iE{!UK2z2zS*64Bx;5_?#Z;46I1=zU&&t zM3ihtOYb%yP2~0w)yuSpf8`KI1B2{|1}p<$sCo=>RD!Ip+Y8%k{CuGD5oigM=EJ4z zOZDWpWoZPlMKs%ZqfU2jA#+~?i@bT%1Xu|3_K@v=IPBFZt-?Qm%Y^Co-9?XaiZ33u zQ0Tb+vnk$*E$C3t+$?fCPsDD^h!k&R!8cnpj zD1;25UxV$Y%+iu8z0q5jB-(S7^LAAxxKdnGr)FXhw*3lPKcNm=T%uD1yG}RBZFc81 zgB~AYMDhFRnF2qK=*iEs-;)8zCtdjv)4pVB5#i)wXz{&qs0(nlK}wS)64`puPDjLH z1%5XmTC&Nw;92wSnpq+)Z2ho|4_LEN5ThW6_pX^2pydieL+!sw+!lV$V15@9!IDv_ z4!femys8^}y#X_M2IDVL=E;QO?S}*Coc)aWWDkkUHs~Od`$U$;UK16$HIfHR?AU|P zu~6xDQW);5$=A*{DK0>jD8^b{injEV&L!?#9;h(X4~g9_pBNB2G}5Dm;~_CgId!2ZlG zIpaJ5mNf!3Wi~JpbTuTlRkK4ov?aN;NxI3*T=hvS00_O*{i47&&Rm7;BSOTJlu4{7 z9zg?XVLI+uB$+jB-U4&e_48az(<6kU95$sWR)*f=MDbl+(6#cEIBFH}+7~(3N{~mx zSPlcZJ27jbY$l=Hkj;zW*S$&J+Q$kJfT-DsdT+Ww2Z+`1P3s?i*+=HvYcCImN)|!; z$5s3(0}!#2yVRFL!rRFkYf~O)V1v?QobM_NTV$JksqlyF%ltW}!R!iC%r~7|bj z*ea_U*M_E0MypHrd201iR^n=3CRsOq)b-sjo#U~k)2d1NkvX_q2A{sxuF$v(DCq7e zvB$h|^Ljix)>a7KS4p|Y>3{onrnH$x@f}&c8V2NZJG~*?j`ev=(YgPg0)SB)Qb_U} zNBl4t5 z&{N@Q(`ra}>M#NC>oy6`BZq+#d<(qN2{f!FFzV+wIJga;hP_6TyP{)&7hI2fE=uOB zY=gPNYdEi!YG8vtS=@mvYh&4N6dg9>!+;czp&gO+6){ZIN?WV;UA3mtQ0%^cg4jj0 z`C1m{UlSpEbLDpH%48bNY9O8fLG_8~NwitWewJo^4sQq(3%O$~Q{e#9rb>79MD*RU zV4FiUKV!hFT1vit<5^eUSwgqqK1d?r^*wyB_~Sm3FN*)mN!$#xQBGAe#%{DzeaYEa z$Ji(4E*6Lc8)}}+$On)(uB&86Z$-6@4ZTUOj!!WzlLjaU5Z>dq%Q+ISQAi$J_LV{4<>ftcmL2Q8*~{%Qv`GtFwAD+K#0k?W`(AYxhoQ z$1N{q`kf$q_1(bPy1i1BPJ)%a*gx`agxvfL+?399{(!EEU5RKnGPTrLZy=NW zVVjtCgTXWOk(qIjleGJ;lk(*|`Y-Pww9TQ>V_Sm6#f7EbN^`^<#ysE~Ck_|N7Z2_O z_c-&Y33m1U)`<(48|ag%Ws2?i-ILZqV3q>HjNr99{hTiQ_0oolB+?l0a_FL9y@!hJ zxSYr3zsqEv1YC(hDV4G?J2dg_QpPW<=Q|i}ts}lk8!-YgbhUC@wvDmg63TS&ySquh zcYLpvfEAKrl*FQ(f}ZoW#%D_$A0r;Ijnj zW#)iP6oYzvFA|ee*FJ#Si+R?=1{2~~Uujay8yM2po&e8mj&`{?kqWdQkq(PVw%l5# zNSyfyXg*0L6n*junaZ&gvA;2}qnf`$n~kZZ;Ai5i4!zU87%Cvb+Iw9fn5#{VsKHpAF z0v|nGqO%Xs%8;w&DAr^kjBW5Ga`9>dfZ-R_;H8ZXlLP405}mo}hz3lWyko{`NT(b- z-u6*qbJrA6D!l}>%TEmi*6YTkUFT_I&rcr{AWJhSOgj5&uRjtNv`LQEQ(5saeiv9k zshkZw?`QHf)auXMwD|kAR8=Zj>oy%%{9-OLYdm+h; zQqkhD3 z^WipI5|mA>X)U8@Fi48fwfB^68ZB)Hzqjs@%qKZXT^wcdh7TRIfp_msy7c22*S95le%XNV_i07**8OuF)3hcZ*K zL(T^Zi~jYOdwWc=K8BCM_Pjy2*m2-7)*{nb&4%Y^P&`FCfr>lI%nGEUgC|lbXpLW0 zZe39)I4rv?L~)coYg=>M4Mvr`md;d;Kf4r>7O*-mI-SP+jgvtx5lq(yvlO+L#Yo@f zwnx19!EBA)Q-#kd`g-sT{3<~?`Hz#HT{0y7e6gk?Eq9LcG@DF$ZET+HLxl%J*sCRc zs>txU#8%_m8{j*+=-AlRF3>Gv#U1Qa;Ho#cJ?bpk({R^dCiTyn1GvYWsWQe)cjux7 z1-Zppk-bQUx&c1<7H*X}iMs>^CTn?#uKp#;vLoj~Rxvr4@FvI;yq^BW5MPQI`;VxK zsy}JU$%}z7>vV$&;tZw^4~p50i5)SLq7L9D+e)n0Q8CAE=oje*K`v2$6ZbsrE%L(Gmwi8h$&simMc( zIsh&itLPeU2`XkBw7?dBb0XNn;{l{W)1{c_LVXUBpeb)eiF~KV>==m(IxBA4#s64B zi+KsBP=*-f{)rb5=Sq(5*2tAbGizwp{IAL zHd7;ZpWUM(5t`%r+dAq@X^WG!s;k|`yHGeR*$hxcb3%_#10q*n;i)_ssOYNkB+2E5 zMP@>Kg}?M5MZ2yEo;EbzteE(GmZSS2?!EoSQF#Q;eH-m!I8%#%Hs7`Z;jp&=Z!x9_ z1S%i}Mijn>4`(^gqD$aU9ElNMRRK*@3@u>~s~2J{P*^)+e+i%A2X)x_xuRK2jNBBj z%{Tm6F1kSw6Kt~9uHJ+bguOr%&~8vQ>J@pW^PP{)^49U`2XuyYq8N|4WSuUct@v@B z+xpwPg$;JSyb!K^h{c2}1SSj?$~lTo(k~lLE+g?8`bBnC`z8OZLhCN+sR@#5-}s*e zF(ELkRUd*(rr}zYgni?S-A|#;NQsN@UW<_|=qzFh#xCHyRJKoHgP;$^#UM{RFflD- zIN-)nmK_%NoV!Az$x0iG_07ySMiOp%??&9fA=XWn8ohWM$A!j!$O*Tbvl`N_7bIGLUPbauuF>iRe;}0oQYe-0Ik8Z)&eObGlJc4@zEdv zk?(S5RWn$8Ls@jHf%)D)fA|GTUKLx>YGe8zlDynGLQBi=Ee{zR04-&^sC#F)Ax!s7 z$XKqh%5=hK@Lf51KW2$8Dn9*(9(S$KRNVfT#adUQ0Ymcodfefg#abytyH}&!@t?0j z-XI-F08iRLYzz*_*JS4PLL{r*ym>VDh9tv2Qu8VxJ=j-SCj#Pn?rUI-&|`C=l4V`$ zW+2KX>G|MUZl3B$Ogw5<8|mC&YhFN-i^*Wy1|6;motl-4Wa-DU3tImQK2kFQ?nG10 zeg&W`>DgD9I*`ISaQZ?ytI$v$7B+9enPs?BjT|(7mujA+qH1_&I!CaTXO-*ryd?S9 zeoa$xE&nP+xr=N&bO>%l2Z4Mej2JW9^j+l?@ja|;ldXW}9M|kdp0XCB=l95?#)Fcx z+HQ5byNBCiD@)9j8=?Zw(T_kWi(UOl>#t|nny`$vqURSS>>E9Z$|=wJExr5fjaq2V z)wZr1(;S`1>kE{pKxJAi>r^0MDexMPOoCUKlXJUjvJxG|3G(4zdzIdJa&pxjZtmZ| zUE^mq>=tO?`7}v*wVRQx<{9FGb?RV*I$T4<7)&qR+bP7;FjgV_L_nS~%dd5WyLO`R7~;h$UGOTB zQ&U+I?Q}KfB>>DCEK*7a{j!*|*7FhN*hE2&I6wM>DZ?)!nHi#bML z%*bsY{A&1~r)Oy*uK-3%%?nmR+v)a=P#{C)MyG<1-*gk=GmR>Uo{ccXJn%+(^2yoE z*>%#37HBA93%{#b*K#0Jj&<1-M(j4>U>FjPVM@(20U$EDu2|vB;;oW6a>HaAfP!uj zp5`U}Lel>5d_;f+v)>rmuQ2gZ^{r|?)KbV;aa||`d>ciy?Pa^ti>x~G`_~MKU`v+G zNinB6SqRotM!KZrNs1HeF9k4~l0@s6TrV^kA3ZK_>MuTe*LE47?7BL=3ysnxrs@(P z2@o?VD14)Kkxt0S_ei zUkY_ToUBc_u;GpK4#5+IQZm_8GV}_zKK5-FPLDWYoy)RB#svFzAO*ssiY&TM;7Aho z!g$Oy^%VIUGWBS$@jK-Jh#l97r&_r`CK3K^yiq{pk24wqJA1jF*!u1TV|756;9(iz zU0|CQZ6c>U6=6!X+4oXU8(fN0q9*wEs@QGde2A~bpp7-Xp&yfEW#Riu$C0$YyA%xi z3eLK|F`621wwj+4M2-&eUZkCj_Q0f*9X{xkhTO{4o>RFXd zYO<%-^qD6S4gNxc1W6+6Z$FyV^|2Zx=pnO4mXaxxR{MNi|2HfY)r9sG(A&m`6=;5> zUxGx796L`AP|Md*5va2B*8Dy)G*3GsxR>=t16-3@brAYvZ>p9g@ib({@Sgz6UCpPtbZcdW5(saQfFrY}&%0BraOp zjPT}Ji5Ei)F{Sa6UQ@E2Mj|V$rUqx+x860=#J0CH(eVYW8o9~?W@2@hm`PRj(JPh- z{MBR(fGbMr_EWxKL9UXm)|^n^_8gG5VcA%b`0y5)eQclImeM)`xc zwuM-dE>Sds_;-RG*W^v=9`|uiu^g1ld*|?5P_7d9a?8?+{RQGU(OXP)?+b+){_hS} zTk`iIJVpo;!0TZ_1cXZF<_LH7p}N@%}u?VL<_<+6ZF;`b#d~E+B9MMAK;A_jx*vGXB4-h zk{kBz(D4tOBx1|>M6T_0$vP5$2rzMZ`=JE}aii6wK~(SjJRXIE=}YXo^BdbCLSFhr z?L!^^GLoa7UxDT1x;%q{c8Wz~HQ%X^#lpNn0dU06LT(HX&Jp#mIv3h?^hz)-THKOr z#q|RM_Hs=<173QvKgU3VUo%v4Xkape9fH~1<`~410&7mLA6=c%d!{J~y1x zQ&izkA9;q6r5&hdjYo322Cpw-PH<;m@ zRfg27u2n@rNu>^{oe|v668}VK0iR}6tsmP=q*8Sd0sK2g7nxCNIw5tPDd?Lq>VQ4x zOTlkHCXyWqfl$m`k>TaLOzR z1nS^EQ<}nFC=3J3)ilj5@>B#w8o}z)0xR2O8tne9Z@_PQEySVy zwbk<0x;M}}8?xG>R&SX*0sOX@9?PjW(lsXsNcmRx`?Y35gL{1(X29sDXMl;kPeUhu z-ZE$Iz0|Lb3Dsbo#_QO4r&w6FMH(92P^Dh>FR@|31lW_2C34)ZCo3&qT5f-u%)+&dKCL#n+Zi1e*@J{9+w;yDq zAeR)J2Gc>(46l3*^ph#mUB6v;!B--Lm9xEYrNbNQ{faix**-6TdQLR5DWKU5Y#?Uw((h2u;)}1COl&@eyGCIbE{(PIl7C zmWx)Tl$PZHt2LTsat0Jz>p2^24wOGDiz0TT_`6U&+ic7(%G)%nj|y7nGDVP~0r+gV ztrFlxa%*EZ4X=+WuYvqy_&4*09$;z1ex!!|V+=TKbtI2c$nLG~Wv$0rL^6)}PaB}t zYqbq*!lrI@$*TqZC2M|dG%ANVE+)zw+XGV`p8gtrK}|ZcE|{=;bQ2D zd>zJ^G7P?0GQR;3g9LU_xoe0Lt%Hc=RRyW?ubtXF%7biqSwflJHlelWjH`)eIqN+i zn@XT?_$yz;{&CZ6-LW>mUc-2fpC|i0OsuvAx-K!uihUeHg8stA$bBj>9PZ4Ab$(&Pm_?bo>ruQ zMzODsuU;Y9Mo>ds&3rI?Qhw!gX={_^AbsZ$^trW zx)MHGN{U=TG!oXekdYQzv2yILAeNj}g5#wF+WEd}DZr(nm9kWE`TF6gG7%*X?EgkS zoHEy3rm)=A(*4wG&h00aG<*zN*qIPj)8dQ!agE57kof-=7nXj{hL6vTuxO(&6lzW~ zuKesG_HycN(}|Ef?3K4;nXC0~fIlwsTXRM^9Yh4BOVQJ4Z50NISVF93Bcmm|M7O@e zv5<6V^THCt$pCc~ltQkZ^)9SvzQ=SHYS4&hjsdtx%i=u_T~ z#Dz@Kh()ulwaf{jA@n3T&NULLAoB$Q7BSb9fTc+^+f;b-?7t-Ya5m-m3^uq2QC5&K z8>xu!_UJ=G7-=j_IQ8yhU|H^7iH!e1{N1c1OwU%=R3EG&G;{&xEuBY#&xcweUdlFl zb~g`lw_AWPyZlL}%82RTg{69|WDGdYs;xf3gTiX*^p!AT$1KuApNnfK=S+sLfnvn0ZWX@C4>?#kZr{%Wi&6TV??}o!0szGyn3Q) zs4=#B`MRtj6woD@QtM6Cop`#{fO1(T*TTTv*@kO9YCGSCdJ`Opi|u$*TH;H@=J5%+ z3Z$fdHYR1abrXJNx0pFKntHzuq`r?MuFK<=(ibL*c*rg?+W0mjxK%Z24m2Jv4-R1A))Ed~r zLn$!oPOLBK45h)HL-+ouQ~9Bh6!H~b7KKXrG?~#&;W_Ymed?O^U>bw;GB)LQ7)UiD zcn9CY+hi$2mcvB}zxde-^!iD?HI-W$5k z&ycLhQoew*|HJbES7)cyAU$EQ0~(g6*Zy>LvO)A-MbZmSD+~Wc9vdcPOkkQ{B;9rJ zwbL9|bk)_tU#qj5X}2@~7fcPN^WTQLJ9d8#V*K44Ct!iRPa($QOoQfvP5r{^!k@}^ z8=g`s$T-NwtRuPFzaqyKgJ46cNUPt3Wb2GYP*n&P!$@v9iov_07bL--k&JyPhY=1U z6qZ!@-P#%s-4RnFaCML)tc}V-M=hVr=D+iOgk;2}SK6zr;Mvzk+U0K z8Hy1_vqr|9A+`I_inzVT%C&KLEfu-i4rDd4iMh`ngXoiV@cj?A3NF?Rq{!8qu3*gv`A7#Cb9d z^b4vonpHZ#-7<=PU~xA3Vl%X`=}${>#`$HzCP3S5+{1qk-lQ!mI5C;ME6>&8L7C_? zf7PmewvniQ?&-&=F&Th6WTKXYaLKz2#08t+%G`^nY2>W>T@n|G8bMUuo)~2pC0+oz zicS=FZRakKc1eKFCn&yoYq-{o`V?lf@)Gkgb^^`ILqQ8^iE3;H{b9HuF_!erl^gI{=8Q8au}BH}aJN5G-XgC$CrE z8TUiu*0`63keN9CW2~(o;W}-OfRnzYP_X{)sB2GeP=Gy|*;k^f)k|a>*!v_<25p|1 z2hpRL5}XlsOHP*WPv);ARocibb*A@k4;DWf(%Aw7?_b06_ctJhH`Dl=Ef5z#?%Xx8 zZpvP{Dyog!@)3&NqnEzr!_rr!l#NJVcx{68Ma^>Z`U`7#U|NIhIP-Z*1ZLDUZ?aZC z+tfpnX>Ra|m1K{s=PpNe{8T;=^k+At1~Z!^Sbwbt$;1)wGuRXHkM5FtKI3hU@h_^PQUC z+~wCGM43s)1}fpFB<|-y25n!KoBy5xI9iA&9Q~+rYs=lGEW=5WA@tECNu63FqVS1V zd9>t8&JkaXB4!bVW0=G@FlhaAhn@CO3`C|slcti%4$NiiTsBl$42pz9Fh3ABFG|$P zVn+OFx2nRy1T=+-qkfNY5*`VD8iEE4lIf&JTOQEe0*QmUeM^$dsb5kFCpriZM@pM` z*42XfboR6d&zwk>`$AWmvKz*BuH&XJ!NdL|$=c7=)aAOEQlGmttI3hYRI@~n&S25G zV9}r=XPry{=-9!GqV_BUEXtd|>5wRYJ5vRP_{Pw2*H3&a>_8C2{kT>xYwo`SwlIrW-R{ z33(d3spXY9*a4#GS@|6MyCO`MWO~>tpNKd$C~j&6K{OMpSmstxM*#MwsG-~y?waXk zDHe`%IANiSB->n ziWQUB4^FysnQo?Q!Mn3_3{G&WyLPIq`?J!scef-^e!II85!a@zN1*8+2o$tk!iFTB ziUja6+^wG#fF03D;KJ{+3)3zWg4b(MU#^)ri!KWy59_a)D-leVXBKF|qLSiHBY*j0 zO@RObn_NOp+OI8|7e>p+m8gL}*@*7HOCQHv3YnK>+B>5g^Oi-?EBzWU47 ztJboSA+MK<)>Af=H^TI(;;mTyEdb;!VR-XPv~s}a=)mGVdV?1sk=f}JV8|NDZo1fr zQuln)IbXZST&~NG6qX)H6wSt$c8m5~B zwUIQrNBp3fNKQ<^!S=zNEwcG0^diFQyQLQ+)Ub zX7?K=w2zC=@_N+2hQ+mb>-90Npv5Fjj~{le=yY-i%4V`IMlaFpva3<{^7b0W!BPV) zMGW~_-5x@FSU|r0XWFe!m|ULR^e5o^P-;-Y(X0TIn&q*XY@myUEE5rb2}_D)qiGA+ zDveWnnLe|pyn#4gl#1kfe4)^_V!pJDi#{<+3J5A|X)@Akli=tg)zv@sw=rkj7nswh zK8ET4li)7~#lgJmDKn&yU*f@OuJ`>cY8Gg zGZX2V16p0AIqRxhPSuk<{$);^41W!O$>`8h!=EX|O)2kA6-(i4QE@-M(aX>QUF57R z4XwM_6Z1NTI}GA$kB=T4>CUIq@&>zNR7;7AhI0~&25(pJBhxh+ai1f+)hktJOX?w24WwXYm&SmFcxT6r?htBX(&8fMsE zA}yXXT<0t@VF8P(g;TEOv-_%L(eJSR{KZq0tevFR_M`C;vM^`E7PYz4zw9_lEP}V2 zmS&tNdY{>2_UBFpFEz1OG|j}Jv`N)8WHgO8spJi*`WmE1e3T`KdrU)j!0!zlXc&Q7 z3}X+mV>Tgg{o6nH-k{&R3N{k%aB|`?$M3&;6pwzPJ&vpKQ|+$_RVKm*zv|>@k3n~t z?FQm;kDYzyojTg52Uiw+uA)+D#*1|cvE@(Cek9wb&wd0N__SlseEkO-EuqS$x~1%h zkseH@1}Y7GXY2e(o+2w}0#gLdp`8*`PKL9J{IZMgMNjSGkApTDR|s8~!*D^o(;8G#?! z6uSXzMDDlUinBRW4NF=%bgUEIi~IYT+~zFP9AgA=bVlpYBgj|sl@CB{H&H40`}k6_qoz5zqGX!@u3Fn9dz8s#G#FyDoJ zVwz{;i)mk?o}}3yp@quc%k?XvuN%Peql51S5vhS2>kpg`thZ6Eg@yltv#p@0-9o|o{)Fi6v8$g7P8o#580IPt1> zz0ek$Efg0CPh%$2-WuOQ*f)F$OC2f6TiE1|*`^n#SWgGH>Sl-AOpatj+p9x|bvasV z4#&KXe9;yx{YcwF6=fABrc-KH2H9T1|B#5IRJ`_Yy9seI8NxM|)B{ypXN7~nw(+p^ z2l5X@?bbp^$?o3s9Qxu|x?eIc5lb^GgNGSeTv7tFQ&kn0Ir}??EIQB)$lZXEBFBov zjRZ0<6I)bf#Lj|B%GmkaEJvjSVzLrVg^IHay-HUpI8P_jM*4C^0(G^f+M#ElzC}3u ze`O0vqzLN}95L8Ca6I?N?vM2ZfS1g%^s=eGV}dR4f-&FLFivm0HGYKc)HfpptEqo! zX_3pthJHoFqg#g!u0R4ymJ=yFWWr|^qiCHu)UXSsi*xQkx&R9@{VML9H!A#)f&&vS zI;_0JV$QmnHI5OX<)D7xu+|rL-l_X3XNr1Yx)L=o>lRFJCP&;_Um=LV zxw&wkw3uu|`9N3V|1$mw1vYqK9d2$%1Zg>XdZ%o5R-sokzXToFfEkQG5IBkw2Xu zbqVvwVf;fEJq0n5mKWUE!saVgS*JyT+rgJZ_iwLT=gYXNR%;*6WaLg8rlEfI6BSW} zOJRWfY?=O=B?zdAu-PT2QVS%@<~X%x{$SYncSnCT2v5oQ0~02wB;P6x30vKI*Wa3l z!&T4z<0Cg@?5a4eKgit5i@#oC=>wX1DpIUr<$}?Q-k8eK5q zps~P)1vKuY@J)92H9Tj>2>?1uPQP)Fct&U|x#EY-vfsI2({cD|V3*XTm2(rt$)c?W zISrDGsI}q60o%W3R6AIOakMpPcU*_~BeS!fsfcQUZ{{5Ojk^y*CxdC{z`;O^Gv7L96Cyn^&u2fW&=#Il#J13^o+2jXzfCnS#_ZGm`N+T zX8Rl!kC4);ZV0x-M2ykgO2TU`IH^^L7l9jq76 zIkG!-ALwIrZY0K=D))PxKTDYwTmh)`Xl$UkED`*(oi&ZLwkST3(8 zD1y#!HI-tbpF@q2 z40AU}_p#)7um0-ZV{Rp(w9fPYiSm#004R{>Vrw^Q{8ByPvD7lbM(O&UzBSqALMU^s zM!=OsN09I}#hiT9mZITs0P^br;ZTALi$R*I2FuUu9_*QNaDjtwO zf!xTn%kcR>%WUUjjF_kWFu;x7^Ab6W^AsY|p zVoDS;fjlnA9tAl`Ag)38<(cG{d}uaFSHxIQv&jE0%I)z zffQMrq@tbj(`++;v1qcNtIYL+T~D?Y#Gi^smIwrk9{@}39>i3;a?@DqMX(Pih<%18&=2l zba6$GZaGPLdxw&++V7IVoc8MwcU=8ssV^jY%j=l5o6HM(Dlv=wjsf$~sFPzXwM-T> zc9ck`YHo9ty8f?EqI#0-9>~qg8T%?_>%C4zmV%YpOU?EY z+sZ<`>xnt%o09HbtMw6yFPGc$$u^o1Wm_^dMm5%6afXRH7J%-aPLgcym3&i>w72;Q ze)v1Rm@p!6qc8!K}S(2}{8dT;X(=YELoFnOq1r2cccjp22yXrI{z zJQOhyP{6_i=WjpX4;g34&sED^-&_z*#P}ABM5EdxZ^JQD zw&FN7N-)X(Vw>-`H3?fMT{B*q|3jCfM41LU4bzx8*xTv;{YS`CXxWDag`Wu6O)8N4gB0zgcGgm$H93Kh%m$JTAd4yw*!P9 z2|)?xhcmGSzk>F@MFWbXg6P|=Xpc4R&p^j_z)ZyCPFC+LHu57tY4b*iJ9F|=mNz+rBQF=uS(m{}r3ZuVYwbj10_9#s`4q4^Q zk-ueJ>z|75U&PssfR7A43*#(C0U;8~U;A0*LR;=`NVKzehYMLn6Sdupi^=^qoehoR z&uJsNAs9b_D#!dqvosa+A!iaWsQR`e|7+`sd0GX44JD{v7D)4gM^c=yf)LN@v$bL* zdejwbW?$ypu|&%~dTg-UIk!Z9tJgwvYD8VOJ8NLu2qwD$Z9+K12$KHs8(b;P0E<4( z_4AO{bY^>6kVH#s$(Jk&Ae!^QTkjyuvIviU^b8@xAg^;BiIaL~gLKbmCc6pYxq@(cB~z72 zl{ALdD77xVQ74QJsi6yx7$Pu2Nd^c1GEGiG@SbM={nTLn1nM$l$N^Wu!$|%uH#ENt zU2%?`P~_H?C8;JPgZx|1A}R{Ssomy-IzyL{V&4AY`CLWv=GMCG=1!{13@9vv>ak7< z{P$#QEm=&@DQEtR73cxNMe9o_l;t=eeSfjLbr0zaM@dtCcIo#}>bn2(0YA9t*$EhNg78#tzGAQMk$~?0aM_HUyL$gD7!0CXyhFZ4xy;3kP(TS? zS-DjJs}pX&AgeAai%-atp|MKq?r|K~Uu2VS`S|C{d0Cl(02m&uShO|jzBk7yx@Sje z;-NMQl2#cT<%Gy-Sj^yocd#ZY5Nc|22tm4#*F<2q< zv@RbQ(@=g|lsD6JdRwxR3!btcIQUaYB@ljE)-$*G$^Kbda};*;>?VCTv+(fbpYd|g zW`10t^VIE{8S(Q;tMY*O20Vk9;O(Ve859wG!bz^o?Wff?sm6Z9$siFhUMM+nreDj{ zJ6&$A@#3(qo(&KVH%bbC{6qYW1;#EN>VR>AJmZYJA^wmyUmXR2^^d)!c#VZBRE8Vf z8;dSrH)b1dYbL0y!5$$kLurfc(12vOup!|d*Fh%fF2zG%dt66Cv4wYwas@W0rVCym zDTYg8r2F+MH)sCu&Qjv4mjd0Rr9o;$Z=%+my^z+t>zQqk`n81+66OVYi8#|pbv{*$ zE`sKi8#UsZCoH?dJ6Ex(w(UHsFTa#QC=+fQKNPK!7_L`JaW^X}*;LM$I+J z57k=`F4`zziNBG*G9~VE`u{=nOG+Ju$+mBd&s4;-?o0#jo*q6MY{_NU6^y8!Kn)}c z@EtiT|4GAQ%&8ta6#p3R10XuOdXxZbrK0n$Aj52Y$A|x;94sQC0%s~%n!pl80XN>1McT||IfyAYZlF-oqdpUv$=s0*Qg){EU1tY(0nVeh6X zr2qG-HH4j8+dnP<2&9xSf>c;b-6273n<69D-5 zk1Z$AgIPMy#?Q zk{UfZC+NdA_Yfwmp-3S%WduWCSSFmz-}|A~&Qk#Ra!^dF1#9E&h2;e| z~Gjm_j5F04~>$Ea{Qwp+0Uv>iSg4LY3)wD5YfP3|EG#k<2 zSgC6snH}Za4|bg?^RsRe5;c|9dPnH?Ysud}vaPoMTI5u#4MCJ2L=m6G)YJFi4utEt zBp`#7Js0)A{1GA0t`=$+K(iHKV_qb+wQm&0D?ng$)WII}G5@{_0$J+CqOoK6IQ{n= z`a-u^XJ$1@Ak~YC5LzLs8k{@P^^1^Jv=qx6s%*=M3~AV79A(;Gy=ja~bc2^L_Y}lk zPHMZa#k$4*-{X%tQGwjLyu=X;z}vlLp654_d1T11MeBwS9gbab&|`pP8qjSQ8?Sr6h*dr$KYzyP$Qpu1~@u4 z1}+;oPG!5#dB=ffou~9fmX7hyCPy`=1-@r-u^0)cX-Z9V4x})1w^1)!xm{^>a))t5UJ67qt%lTw{zmv8_WD%HcBV#_O2?Ua?yL$6t6jZjf?_ZmjmnNa(q7q&7jr-aIKcONkDgpdkS=A3{dq zEW6U7E7% zAe~OBpK0#Yp6F=tgkrzK@8RV={_raivI+}ArQO^c88Z)ORkJ9hOKH+VP4s;2 zvb8KTm6AG&dNN=0VBwJyq3T{ypQZ@stUitai$+@E3n&d~F|wit2?5BiSc$D!@?S0V zs0KEG)U7pFB-7$KYHUG<3Kyy!hxBpn^cSaRta|}cM8%%}jlk7SPC6|haD0Pz#isg( zEiWc@4KGFwC+|sI8ZQwuU zlpQzjSv5lO{w0pj-pd&$6TEq{55=_S7=+X4r@Y>3p*S9fVjXE`6Q9jNb#b|-P7qWj$Q)qpeC*b<#F6w z-gg~HB;T_26JOJ|IVfNmzm;!$-D5W#20bm&tB}TXR^EOO{{Exkm2dwY6FOq?uFo=fSO-7;0?~h z6%$GTXe_1UBGa(d>sG5Wuelc^{3o7Q|IEEV`o;W1%wj!jEG3yGPqmrrTJqticOa1C zg9ib6uTjDLdjOdx@hcLTJ28~=f!8Z!zi>5v-s)~u&C1ijb~s^2>Hr4@$H6SY>p!YJTij4Btpi`AAM(UjM%Z$x6Fqtu+=6BM$f1WrkGM*~l6QI=L zt(qlO8mhN?SCPqw+pb#V&i&156CmyK>5YF+q#tw9S7fVg<%?vtbf)V! zjd%lN_34qJbj5QtHB&pR>P1nc;pg?$gfhNFTcw_rTeYTwZLSj#C1MW!J+wsQ=C|-E z12HtAyAY*e_y{+?X-U79&(R!y+)*uhZ9yF`SaKjQZ{GY4OX=Z^APcm!MN%}`S z=}ji+?~IaHcH`}&^$%G2_Uhixr!iKI27qS)ye=g1JzjVO>yF!jYZp?&c_#lJ#4xPe zR?C^jV#fk4T%;~?x^usLN(V*1)pM>vXu4r?c<(Oiv@1#77(&_yPZ2hp^EKA_U)U19 zOrET2I@8gt;ZsR>-U9Z7)!gV&s}P{kOp|!0$aQ4+UkwY$tA_nfKH`bTX8xnMv=@HP zdm`k`OdE`cU>e4jDG>})(H(v|^6|WCXO(OGTfnoQ3UwW}@wvKMc;3jA03GISewqPw zKu@bFw$UWb2;|1U2?1)V(XVXOxacz!P#Vzh>;uXY!z%(voBM)nE=*>C$~1^2TJcpQ zRr-t8(VrH+j`@qWTivB(MveGk(n$%gD*V_Vp`!fcM2YunE1(QIW@n$66Gi~ZxkmA^ z1}*a(qn&Yl7*kJ!R3c*syPIcx25>B^0~G+^TcE#I2Q%1+Ut;ZovFZxLWB!Y$R)8W3 zZ6s59W(7oD!MdECSn?K*gbNLq#o5l%b?3s6%TAF%BNCun{YNzyJ0+M!;IzBLz zsR@yHDCGf)YGIEXoS?q>WE=l)ZU@}(x-p7CfSYKXy7dX`O;6Z5i-2E>SW%wY#_=G2 zu&VZba8l+04or{x1EVs@tumKhJ9;9DyW&RyxN8S0(4X9_FlD;4pw&cN#q`BRmaM=D zN#h?*E$MEv7`Kmkk+3)^>2eEcy*wu&%XHqQh0ljs1s11_)8`0QY!)OK*RIRnE z!r%`4uXVU!euaX73DX~@!{6~dvM3KSHM2C9h$3()q8`9=SkQi0$Zu8(VK_QRc{ms8 zB(RdJ0`+#JGUGKX;OUPRk^%-lW-zr!S04-KIUS1z6oh633s&wz2i6om_X7m(keQ#s z-dG1WK($Uzs@oTy^aORq3S8172oP1-2YlEny6OX)F2gbrQ>PZ4ImiH|Nhh4XA3ig) z3kH`%iXQzHoSR*{Jc3luV4ji4K4Rv@CRU0F@}7IoI!aEDMYukn%u6B_an^o*HK0G* z4ru{4N&O9!Z6puBz)IM zoFrX6#uluSug39LE~ogyNq3`uB|Wee z1N@WmTPuX7BR3Fvk_Qp2TVRM1KZA!MxcJzU(oJ|aFjTboknk!pPGHJM;X`EYOXrr? z@9e-uo04{;!A#Cc(|TFQB-V{|-PexQ@`k`+rg0nBHr77H13cD6{twB0**0^I(kVj4 z(rDR_{Q$L7CvBgXW3WXSV|BB18!gyf3OwFa-VJ zcB1*vo?^)``0T%XyNuuO1j-n$EcG`7St6j@Y0OU?BA-2Y$g=#x#U%i(UZ6uzM1ohI zAqm9ibT9o3}s3{7C#mov6#0_fbkHHykcufcuvo5_RYv?ww=WJA9ul7$Fj*< zKf7T-m=Q6S$jdC7hU8%Nqgms6Q#vL+0>0gh%sfczuaS(CK=glqG@*wf@al7FAshB9 zX-H{jc~OFDHT*RBubv?^C0J!GKCk<`RyC2y97#$IsSJ!I*vOh4_hncNkU@K~BY%kG+j$PXI>c6OKV!4htrJc)`b6iw_`LSbMabg6zbu3-u z-@D_`j7TD2H&GBvlRq>g86<5Wo6u^3Dt5IBx-nn9xTu;CRG^jaWfuN9hq~)LhAKie zvZMtPD31JVABREzkfWb%z^QbKlOWHH&*`MlS5;}M!_h5%f1s%xp z{beX+-RszBjIuzO9iN%jzXQG3#lM6bLXwe`n~77I%6nY6lHi+z z7};xt9Mo%?I7@!3dimmn<`~g9+t1@b8pgP5^&nP(W>dF2;--I8S9~zpC$l>#cDs1) z;|VA2oPX`7?3ch;M`m9rVI#Q1dBVbLZdRx}Fx_W};fbYM4nyxE5`D-mTSK{uG}X`- zF$T#Rl7kEN6OHe|uZYcNlr+~ehae=u>;jC5_X((x#h6?ICL7fh&4t}glGB%#6E=oa zwNJMvbxof;oRCNdNUn+Ak_&bc-5M{W|0&pv@gifrRWywiDhehX`_v$u4g#VG`ndgG0mm3We+!W__TVuEI=^c^4)%ewp9A z7>(hw+0x~6bck&6ihc-QNBYxy?<3PSHx}s?=go933utMK>ueaAoZ5Cse?&E2KJO&; zrggUD8$3b)q0ijFg@7PxIfH|yz+FO06-Z>V(g|QojHx`0w;E4}{+mXB%;|#mEgvTL z+^w8bLRpHow?*}4EsZd*v z)ESPywkZ-F0-h)Tp>?HgmvEH_<-36YecPRGGsYkZs|2)Xj+MuK6WfFt0Z54_#TF0< z9QE!oUP|%P(=Fc0mwLU^tt3XKJAo5KNHJwYd>2;e|HCnrR01lUaVs5>wW{WzI~@&Xwrdn(FnO1gdpS z#R}1NZMf>y#8b}N+N!Cr@tgYg*S!3n9Q*1c%Xr8h=*|ADdzm3DgynBa7~a1+!ZpKF|j^cMTf#WaDOE@hM-3a%|g;8X>QCxY|~F)5+LY1CrdOXx=Ry5LmX&`2e8Xq;xDc0`*LG`;ktpmD$eX)j@@1J1GWHGSMn2_1DQT z9a(J|5e1UHDr~(l5>yv-)xCNe&@*9rOV&TjyN9|bT*ZH*oV|Qy6Z!2QkiFR2W$@zw z$6EIBTvS-2Sb}SD(_kP+h%)i2Ahb*AzGBZp&i@~h|3y3tS^`z9cf_}jz%}SfqZ9B6 z<7e4$w%8VGCrV#i)8<O71iA6;4ML8d~4=mh9$bE-T=_5A@Q^v8Ml^t8id ze}NPk=jsOX?cubwQI0+RMb!8@)%=Lgb%W00??_G3s&Bm4kdg9?b0*Mwlmc!Gc-jzW z1p-$_)=4USh7ZW;#QhazVQsNx3DTn(t+25R++*#IM;hot>bEq@YRp63UEF&5a~v;z zudnj4N56@5J*5l*DFV3+mj{?yAmKsQKOVKhlGKG)(A~{a()`_oCG|dKMq!BQ)^EEQ zgmYbCeswrk;A+Z_lJ(8xvBy_^}vy)T$F2|ZHtQC5c&m?^f0W|vB%mEBkep)d+p^BdWc2hbb* zMf1WByf}YAA!(~U!jl7Wmn^@5%1mY_B%^Qd_cC;r0b>A1$-ideD5d{?DQoB16dywi z4jcNPCGraE^y^n;()+8Cxi5pJ9^YCNwFfVvMXK7wY25`zOh^VS9r#h8z^t%l%h!H` zVPUYB-uQ~mX|qfavSwKwDBc@mI*fx&(x4<^ypoA;KM3vaP8IZ}!T*;q{>tyDdNc@Zik&dz#97}0G&xFiyz@m5fJ z3!dq&_Fi3sJf|HYyi%vIk5PD|K(3->p;d!hLHq8TH>DrZxN+S=V`9FdMO!hL&aQDB z;T(BX;FaucA$+C^E)R5jH@><<3$eShP|2#zMRc^`8>OcI88;*^f#&|R^hH9|0@);+ zc7TtgWFy$8Lt7Q~@xx}LrrSfd8sIRzJ zr)rsk;89+Z+a} z&D1Rx_PE9X%(GK~$|K;pJJ$6?x1yy)f9*{}lKwm} zpD537J)QQqZMO5uU#?JsD31P0UBkmz@lw8MsX{e@E$j** zVU2|1wizaq6hw#$wJzn{38)Ib=U6=Z5u-N{13U;Cza8g~tw#px*l4&ENS^D1TM3pw zo#haa)z$(;Y&@P|_z}G!pKS(eWsB9=mk0!Cq|B-GUhZgxr@A6US9dbov-x-iREqg` z?hCOm4#2Y=30E)(*R{(*WNzTu?1*agi~ONMD|8H!7NG8ByUm$UnhfkuiK%#hLd_2P zl>~yrO%m z4 zO#7%%?=-S=@Q4d;u3S(n0X;T?o-KuBS`YxHd1hG<8U0I z^|yLW03c-qU0~TTe=C;~VB;e4iPhyN5@4MkOmT44#$;WkRU9G0DVPP-^1A#ESAf*3 zD`KTOTbO(Zr7V0p;|9WOfc*xw4jM!@Lv?p+=;&imc;Mg@iyA z0eG|dIb4R>X_mnREgN+1B)wIS;J~`G@urn7p%H3#Uk4x|rMFQhSsjW!4Hn^gjRaB5 zd&hL^6G-+$JbScXK>3vIzLK6dBYd3n#`Vd-a0MipCLz+WrI~eQ8wZDx<#b;^>C&v< z95MNZ{XIwEGD35dg`<3FEN)Z)F!e5<7@9%*Gxf;pBLDZ zsw`n7=uW+@bvIE2MBy}oz&0--gy=4AvHk9_68kUFm^MDM_SVZ;$b>R2g5hH+ndAOM z_3As!%j23XrD$HWkn<2;?J^=hc}A&`eK*LLq7oRt#pVjyhS7ge`Fr*gnvQ&Hygsl3vV< zkB4|Hes*(;*@jO7-6xbF@s;dAccy~57#Q%;MG}VzaogAhjekn$oAJd{cl#zClEz&N zGwh{5$LR9x?Xhv4v2FAD2EQiZg^5mYiJ448(uG&0Yh*`o-QQ8?F!%AWgi{ZyOT5iZ z!}D2cN=nm2kfS*6??YO7T!t19ug5=^^^K#8Qwc0ig%?T-(S4=K)!mFw`bl&z&F7)% zZ1Hk#|7x)(a=dr|qh?K+qVZ%Gnj&#TUxs|tOXG<0TFmrdKN7P1OHBq?%5?!+IAe2_;Q=_0eFzyNAS z4HQv^_k^1^;w{5rb4^D@aH2aE``flZ2^}6ir5A}Af5nPKQ}6V;PIq5bU*jp5jM$Ea zed~y;yOAMV!PT$XaC1O6Fb4j=f7x<;^BX*X&_H&^mIAg$*`n_4;bkadPFZF4%E5j& z?qxRNv01vBi_2g2XOFVYepJ zKC1s7BjZcwW;Hz7IoTlsZnVc?q&2=ZHi>m}%evVmiU%K=qx_QxsHDH&^r=SNwjedT zPI_jlS9Hw%lioCgO{<~`6>Mjc;-a^`DuyjfORJq(Pl4PSaq@yaoZu^o*;dM)t#K~K zqy2<8!Ct1Cr}rbp@IDP1hevxoCn^+nUpG_Yrnd4)FX_6T!H9Anv46zvTaO{)VNcIf zi?dfK{J1)&Ea!=bJ9r=7+=6EhX<{`TDPLvC(@%UL1MPB6tnDZroX6x+Dc+fw>R%38 ztaek0ouDqFO@#E10=3o;SwAV}shGnwLAr=Uns%d~1iwh*GQc!C2@oAVCTm{8hk0>m zbGoPo#O&;3{$Ivr@9jSxj?>pGnV^-o$b0RR+|dgzDi6dV_MxDk$U~EZ*&Gnk=#d^s zvDFNgjE6=v2Wk;a#~S;!3IaCWUbF^dSBYaKSDu3DyuccH{(4fjj_sWKzR{3t*G&aH zbn`)xOY4`>q~E;@7%Ro-6dj$`Z4k`SPB3C+So#zanR3W)74D*voTo5YXw-CfMb&qm zc{N1rDe2a<%LtWxsw(U_M`**@(MtoW@&OgY23!q06D0MjuD=I~!F$1OvPS5Ab0n(S zSFWi`ft}E{Z03+Yb?Zp#J?suZ4$Ht#T-^x_5p3ixm4_&*)ASOQTdU#gxv__2bhU)@ zaUq_I9lNAf;D9O>?`%8;i8|MUQ7Yk7TtKF}5)Xr;&;M#STZHE0M;2)>{zpkLk##X~@p^kE@5saC}4*(aE!s*rlu6b2P7-c2@eF&_Vf#ZT z(QW2pf9Y1%>Bq?EXe#?6PuZ1+AHu*pQlSQ2Bflk_WE+E5@M!@>)joZt3lqIeb^CBD z7+kh)gz-x7-wwqyYhXq9S2m8h#N8E+Q^_F6PEl*6Upe%bY1BT^lsJ|Q=3n;7I&ib5 z>dw^f<*zL>?i>8?nm;P<6@LzQaE#*DVqri15x0eS0f%z5N}brSHAb^dkII01AS;qu z#lQ!*HXTi~N8p}Kp$N4PjF=CvYZ2=@)QY+9l<<=VYg)N6!|o20(SF!y3s^$@ zD=Z2x`O%U=*tcCA(8qWjN4|L6_01X8U$kOt4DzciuizB6l+ji)`vSg8)dw~UEU2i@ zzCucFV9=2N=;mZM9iD7h(@{E32DZ7$Ll}Ay z#mm#owX@*Y-e|VRaSqOJl~CkrM3P3D6JKSv3@Q%3;w2Fq0Cx%OkZ+H-T#yReys04UO*yybR&e>kU?D}W z4Va(03Y#ZLe_{3fGjf*SjFB>~|NW=TZryXS5kO9QsVP)?^Z@x$))c1>JWO|RWy9Nd zfr)=`dci1cFP7fC(r!wber6MIxv&N6b5%Jle7O_16|=j*p~Jzpa8c( zpn)gv2dOyU`Ls}K(Ot||E~nFi<-b^m_&hPp4f+IRDa_Em<`Q^U$$$@hM38HlL#yu5wq;7DW{eVv zfi>8HYdty>F-LrqvRVbDu}aF%EMQM+CvR=0=Se+f}_h zSW2_Kb!BIO8z>3PP_S4}-4od;=I@uOn%O%%D4x6EGO%_D>3mQ5)2Q>J^%+@ zzwJlPK*#FB0qogp1>7pk-n(PVe&JB?NZq?Z7kQ?NLd5IYrVL5mt>MhoWa31CzG-j- zr^ei<8s&bbY+@y;oh^&K@5n42FUC>su3}!GK0&lIy&Y#C9$?919EM+E{N{ZXvW@wN zl$Q43UPeW7_6LiiD%7g;SweVR#i~3shI0HiziB5gv*zS{1q}+SOakksQ}TrJ#+5+@ zc!YN1cOc+DgHxCmo+RV6HZ;CSJ;8&!>m{>L;EOydu_hRm;4!}b(&EeIX)m{40S9lR zxMtgpi2GHQ-BsR2_Zi+fZ{eZGWa`1hYftEgW;bt=>nG$;X3>TM_?o5I1cU~TdC^n@ zhprVA3$Z2euFlv1Vo2J-^GSA;ejhUX_81H}w3jTyyyO>tau&CGENA<9?;eFfsZ*}( zHeexyny(+04lttjjJ z0#S{+=Cv&afw0Xq{H2J0r_x(v>^f4mmr)mKW17%(of5L(r5Yad(K=)Dcr(#~!tLp^ z$~rFv6Y({(P-%h-sC?h8Q!hqHWC2}DmZWbOc49n04i2?vkW7{kd$u$^dp~N@#yu4A zOA-Qsp!6KWl_9GQbcdWv;6XqU!?dljmNZcpPD2W*p#AOqXU=n6kg_KuDH1DK{^yuy z!W0cgmOJ;k_0stX8+QJ%oWiibbh$}~ei08H0{N{pJAD?kMc6tb;17uR z{QLNTs@A37v5SsdZ?sUCgx<;-h^QP|;&hr}%#>Fu3H067KV~rgf<_H{d4J$@gPgvx z*VQ8`>s7lGApMb2dKIk=Nl4>)BO+Uoi>QHWZBb<3M-3*LqvyKh(<%?$Btz4M+PAHB z&sO!2nVvg~;PGA4o;1R_w9qY&R9i|Z@V^YSsg}xB4O%N0*TsLYdGy6a)7K(rfJ#aM zEZ~9&Y?wCFMK7vxTasR85_zQvEB}KCEs_}$b1s8RapeV(yHLgQl%6j;5a|7pZ7Bdr z7Boi7@H<=OyyhAmuzW>Zm+)XuFo0TSN8w%?xnGRXQ&?`hv>>~hD71F5=kdR~9}e7$ z3Kqxgc%G)MP#tVDA@%w)o4%$U!)2&?`k{yd7a553Fi}q3k2xeTs;VjpspT%Xg{TZCJ5DNjD;;{;9xEPUfZPgi>|7IrU*_#sY zJY91y-$<5{7I-abY?WbZ|FsQ;Xb7`x&4!z<`^2QMa~wmQWSq=LNgqg;hte*g_kY;$afsjq@JH06wSU9((s_WWjMJZ*pGswZd~?V&igh=JrPMhaoMXw< z;)~nC=Ml}Q9DgA|lJm>0)Bmq!N)A~5)ZhpEn znKSdv2N!u0H?~#+RjGGhx=12LGoz1!09cn-_spR1B$BYG_6A3e3G*SO$Y_cqf27~C zqt?0LBA8WXi+y)q#VG+=PE(PRk0i1$kbt~$!w+SWh`itqUAPB8dp7s#+$*(fqs2?P z?Q@nipzE-JKjT>0dq53VI2x(>Rf5r8AHtxZ=+(NS?6w`o`qG5t)8MJ4P!Ux{a_3P= z8}J!?8MHM!q6uyBkTd$Ge7%o957|i-ycn~9JTs3*HSf+vC9BIO6`b?A{N}-Fz^C9J z1>GRb>4L&0>_0WV$L9rLzm=2Fq`GyQg^{S+euE$1WP~MlOX3pIJ?G6c3haeY1vZeMhldHX{|=QNa9k~QIMou2fg zuqYdtDZR!Wbmjvlp)h>Vjsm~gS&-A~nADx)tr6@0z_@nAak2zD)E|azhRabpY$rLg zGobp;v?jFyOicxi0`m!q$dIUX!;BCy@!j>6_o$UoZv=C#^THzehx4un-Tnk;T+1R~ z`ytn}=yO8H24+s1e85nESj6~Bij~z)yMkmkQL=(JM9gmkTBz@qsibP;_v#w{Jfg1) z$jA%IPX|k3JR0+;3RIHeSF+kcx^jAlx`*P^gEn_u=l}mN_AQnxey!&;LM2Q%f{E2;7LcGVg7v$b?%xE`+p9wvFjtD{*_w*qBKCn%0HnH+roOhgb>h<~ z>GD)BeN0Pt=g^Db#gD@1v#%jOav+mcC9Yc6aDVUqqJbZhe%Xcp%S_6A5(y7m9yO=> zjX3Fi%k*LsB;xSN+%%AeqMjlefATJf>!#40Zngt)g|rQuls#$AU=GWp1I5x0JaHP& z(3R8N;OQKqIU@MGrKj#JAhW#pme^i!ds;Don_K~91=L7CnsXeV@;SLN07g~9VW)l| zo;1nw3Ly~>p<^=vh`f^RS&cp^yDO2ylYcESW3nmuc((@ZV$Nnb&bU<5-S24;av{KHO%(a8>Ow;3 zif+sU7m5fS2TFpkwitzY>TBboFH7pP7T<29m{NGTx`_*-bcW$gu8E5NzanCtWm`jm zZ%U;gVL#z=y7t_#8iChUC}=u@j)51h9ucBlxr~7$8ke&GB>^p%?QDGi8zb6*wt#{8 zMCla(IGmx8B<69S^9`rHA_olgKKwY^n)wzsi~~M>sDjdQRVW>GuqgWdwpWpdl7k&! z>_;auBg+QPuik;4>{eRzs;!1PvRv6s=}Z4@#I+`->{}qAvG}K8gh;Wn<9XwFyU-D| z8}@FRR8r>4JF_|6Ve^MSG=4oU%T74?L7B01<}~a_P(`egrPvUn8O%F@=S4FP4=SPw zUpAUB6lQ*%AdDwfCHfVU<0w;u`Sozev}pv6j1d!T>FkRPA}&?5z3kgr1?y57lzR{cC%UZL~klwk}uo|v1X zm+1JyJ4LsU__g1Ar>r9kxD30eyDKQwrPx+4^E9tjS7ys|X#fo?Grq14j7pxjW;R0f z?_)EY$ml!W<33uYs+(90b%m&4TpyxHD*YYH=CRY)D2l7FvKJvy-~AV8i`~9v;V-qA zbL0Ob*cm)D_|rEdY+>0oXOV#x-0Uo~Af`UC(B~y?GaQ5{;G*`=dp{c~2;ww!aw!fh z6DPkM`F*{s#_j$zg(eM(AYQV(oJicM2je0+TZ+TR*a&Hp+u1}2hL=Ko22g>7#=u7WbV z6K>z$pjFGb(RK?!Fb)2`o3a(5Ze#R7?4mW)d=d}ix`{GPz>&AVC?9HtGP)n*4(ZF~ z=mGDFHD={rrnCSDBpGYydzflcK;5rA-zl_?`FUde?|7nN*U8xQ;}$FkH~Ve7k(3hr z4zzSVHp>CA$}koJ;DXtGUGhSiP2Ozyur|nyqD-E+cXt}eZ+D_eoWyl}(#TIe8B`CO z8M_Yu=UasV?CrjPqYlMUEQf&01}xgoUr9!Y;-;E^*1>PtkyB>xP`(2tKz+>}WyJBbt^ko!2nLJ)Qe}MPs$y9-oXCEEE3}90ws$0qt@;T4`j1Auu9Z2JyTl|*# zwgEu@Vyf;LIjAxL?K`fl)sm0F-q9g(2-hcuSF$30lweRfi0uqdm%Anh%L~0&;Fhg3 zlY=)REd)7oRLMo;cN8ch^8yy-0vZ7QtIa`}fXLkQ^3sL1LtKPPlm0pSxG9!WSP|#? zwC)+Q_uS7o6@MKM9jDC_MUv_vV~xh67moAh6VPYv0)L0WS;970o@2aK&|Cmt@lw|Y z%9pY)s97N@k~#dv-p*IPRvMpK!HmIWet|NUm(|AWD!t9mD!R9+N)62}@b2XpuS zby-&rNm4q6Ul-p2hOD3k(uw-2E$fr7r*FkPT|XfK zp|J_Em-0u-A0+q8)t_rIK65VOnKS{F3!R-}cdVdhSNbbE^qAj>lJ%&&C_9z&RN$3~ z0|w+y5XB6x9Jn{KsmY_XF{A>Kg4E#U(vl;k()ygvTm!YUCM@|#Y`yD zmb^uHG+U*=@s&ZfO+jF(v-O3#=wjr+wPDGBQ{Rw{DrhB5SG@}9L7H<=X8 zDc!!ThfIr&QxM+a^+PfM=@p?ZTI1B`*{@yF3?6KX6fPL`Hd}uK@*4J=ejW%QcuTxp zeezQvwK9~2Yj>_Eb#!M|UzdxTuLhC$h1Dyi7SR&vjY1 zt0VTCysVKN6+q{i{`?7$7{pzSbmS)?4q^XekXgKW2H!|9=2tE8=7X(GQh?%8hC9rM z#FIC)RO2|F%i@wbRTHKIcoMD63xnkQZ=Xf78H>Yk;QTu7w)}tW3sobmPc30u?k9qU z-wo)&Nl^b?dLEg-BvzjC>L?2`VY(UK3}` zsuyI>sKd(&m^>vu7AXn=KAQmw??e8NAl^#h>WRSscTvYVq@ypm)pqzBy1aum;Y{3)r_kEqRzS=jbaRoHKqh zuGDt9YIws58GH#8^8X>zfqlI1pK0S846u5+ev;~G31dHGfbKu-Q%t}q(~PX9n9*ap zBU%NrAYt?~>Mrtvx>mfakR|Q$ntS>i1N@k6(e6U&%Za&Pev=fJk;E0RVNY0SQh-k4 ztd5}Pe%$MWF|*LRUYdaW46!B^7K->kph;acQf~5&ZJu6?H#d za7=vwZ*ZlAA@JGEJvb8V(t`Cx?+5*T4&QsI%Uga zQ4tvv7ta8mAKT*?3P!H+Q2h2cEU?$@qO`c>x8$g0XXGL$`1x?cae*aHv)Ye0hp5j@ zU_|&R6x^>pG5U|C_NKF^5!gycu1rS zeJP9HW3;}e{jx>2i||?m0Xb%3*K!QAG1$a55lglYi~cc3K>nScG1bx!R>=*KH{XKu zoFa@3e36}x0?DGqGOwN7@t~FP68=KqNek}oSW62{&ij?bbzEvWy~(!b7Iq-m)mp~v z+^Yg*{aCD_lxtS+$H$z*{%~H2PdPrEh82e}{|X_V3)8vVy|Q?TnM@3IoqMJ>?wD1W ztw|M^z!h|p>(3&s8vM4eqy*jp(M@?|nU`rhnM>51iH!@g~0fxQC01$zHxfO>{vOIb)1Y7Q$r#pV9+P*r{ZsBxi zz_u8?cUy%Qq21_=4Lp3K!+ZS_NbEmg4`gV`YRJ%W1E(s0l9xu^4Xei))pJ=u zM|P1J#UBVhvqLHKI|n!G(mGv6sRVXlH$s(|6mIHyIEolxh_W^@x!s+u?dbHyRfcaQ zrFd_U{GZ5AV7dzS+`m(sODI}8hA!81?F6*(txtu=oRK(J%x672K|u}B@81E7ymXab=X zwW`@KW1XRWOSLgK(&*+RuurkAKCsRqvX!jhuZQ{m%ZZ_*NZk?c?T1U(tzLT1RzK}} z216-?c5_6Q%TrZBtI3zK`<`o*v zP*~!a2eqlqYjV0(`SZO4Pywq=cJ9yKMqLq>lgJn6WPBUY{^ikH6^_TpZS;gC$tTms zKlh4x2J#Jb{^Ab!laDgeK~bz7ut_?;5IHU(Nv3}?kS15^^El7+4|JUPVgs+O5;N;z z$vHiq%hfJFI=+%`m&M2h7AjwVT=am2R{2&icqsvlYc@|R36QK?ar)&<|(OG2S(?7(&zq#EkGKDsU( zuT&z3cG$?7yLXG*XBhj*WMzi~fBBDo#xWO_swT%n{OsII)pTON*yOs!;(Ch&E{;s5 zS5DPj4sl%uYFS2k`B&T)67ujh> zdorJG-QZ6cIAzvYqX(M!=hYE#n6{~h)R6_z^(ZGsoeI&B)knzww>QTlVplOHA#9Q` zH8wKi6~g{{P~HE1^8Zt?;SGPh>*{ixG~5VThDC>5OX|O-O`V>5pOkP9-*qz`7aeDQz_ZlzjAEl`E{lcg}v&%GBMj1sE`FPlM zuy(lG1v~4bW2S1X9mK@^Wo0Nt1nNi$if%Izjei{LaraKF_vD2%@Y|-YJOC?y^6zVJ z1`GJ9Vs`vOk|hSHQ&$fnhm;9OZaqpiD*B84S+pA&g?`dehwY$n^jf0RPr($??TO8oXSZ{t{+#d4Vw+<6oW2Bl?}y_E*8Wk?Xk1*&=vBZ7IaaQY^hNh z3rI#fKhieOzewIZv`ZrTG7-K{QlC~!3+>uWzDH5~xbgrx>aGc?_-Y10lBQ<9hj@lG+9*Z{`{S<|NjFN*m#f=QNRYX5F?nwnw=qMzW!p7G8r>Q@m^OcI4hZAPs#oACOx< zassZ0Gjoy(FRWg$ipT~FpA%gM$vT7MDF6V;L>b^oE(2c%Xo(ZxG_Ppct!u2jTyiph ztDb?4*D19e5Ah8;Jh^eLlrCVfjFzPqK!;mk%9E2_m=b$dyqmX@#Nvo{ZF?^+Bs(WNvLZYWLDkQ)2SQ~z9YnGBg$`JAAY!<#=Oo# z#c#V`6V04gXhx?2dr)Dd0oQleI(|_$A&Qq;^lp^+*;F*nly@ALO@AI7+CS~LaJmOs zIAJ2r%R=ih(MmjaHOl?tM&1H0iBo6Bu5n~2`@1k))3q&-69K`!d%{AC z5y+$ndQz+mcCDK)hs|MxtrC(1n7ndI>KRp$kNMFEnP{XJFHUwv8lRqh?8)0-bW zxom`sKYckA;fmnEz-3i$-r(eDjX!rVE1~bSAW$F>8hVsk-|e7SOF}*)U^joPGixvF z{ZVH1;oV4PAh$$ze9a-Q-Lw;iX?_bEkqVTia~Z@aL52<4Ii{fCNiR}*GO zaB1r7HP2M zjcA7u&f!iCc&+ErKj%NTU6X-_CZwMl17!HcPCoO_o?#$32VMaUr9w7Q0JeP6wz!r< z%*=(dZj`|X0~$o@4FP&f3f0PfMol=*aC09j1XVwBOe*tlhwISGt!Lqj8R6x`vW7Z+ z8xdbDK;_7-XRFdTHoKl_p(5P+2MS~rd&SDq1U1yXGbGlHx6uwx#K(cdA66&ZfDRgR zggy~?Mu4``KJ$P14eK8rfvI>Hs-SnoOCav0A>Cro*^qg}bG9DITox>WFx!Q`1U z)MLv}`k01|zD`7KaJK#I&_i#McVlOqFdZ&K=!PNN4>c`BPBC^VN!tlavaZft0pmU;&G`Cc!0YP1x9!(o8J zb#Ak&0U$^3Hj$;nPvCkLB>sT(vxISbkZyNX^Pca*+SFqxZ5k2Ev0^Jk)8#O?Fs`;l zq#(D&e~6P(x<#A3)*66Ox#m5Nm%^5>X^lK#O8H*8kV2AiD(ThYB>Jz?DT~Hd^-TrG zNV-M*I9h!A(!6$MC6yw#i*MTT;f)*48_CE=`e$fPqOu&C1!jpe(ij|GFwX&TA(las z8cGLLQ|qbP;k??F;W@1GRZ65)rnUuBJ^=?BNRIV{;lo87K)A*DW}@=x*$ecFuoq5E zW_TcV6?Qi)^=oY49_@hCkt$u2uF!objtxvil+v*1?vnihhV?b5YY$fP{o6@irbiWVr4h~>bB0DN+#Z3-9ZSe7!uw?#4B`UI!EZq`b)+>U;1Ng~55 zT?yB|-bHT}{R8v`3|h6otZ?&ROZ5 z%W%sWVZu^;yOt?p9~lPl@aaP6-S9Q^+18(z$D7CZ>X8|(*%6QelI7%kpF9skJ`wcp z!&D8{OY&2#El{rSZsz=L*>q;I4Mb zJc~zcTglOH7~}Dz+PKN8vQ6}JdmWzmT1qK}qq>NZf;e8!J`d4ODH2v{UN!Zc`lnE7 zG8y=WH9*GJ_P&{@YJjDP0@sT1=*jeIq;oZgl^J_@$9jk%Ef`{UtA=)2EKn@rfop)b z9&M~~pP+b)+yn%f#QlSz8X-@+CJ-s#69fzj0UYgI`rN5n{tv>t5Dqn()%NKL;h{kH zYxRa~-Hxl0t=_mvqkjT6Td<|yzxSFN=4tQQUaXd z63l>GJf5yXPTCb*!^aQ0O-}%qlY)e|A>IF@9P32-U9$}OwVy|5(&-(xW3ovWP@s7d zZ}dka2p$PtVBLBw;R)c&cw+Bd{Ek^3^QLwK^*25f3Zx;_sDP3h>vdR+-kbeHcH|}D z4?uDtmA1zbFO>6W{nEKP=!hpQovc5E{v+ZTV5XX?9BI2qEmU?3an-o}Rr$m86C_WK zxXnIj^Hr4^FgOa*vMgATf3fz?M95gd$dNBCEG2g#?%)l`Q~&0c<(>rRDuQxnt}c0L zx6Mj&X0l|qsASnYIPEk4irsB%XPp~)e?SvJn)rw9e|^_-N+3SI(zrcczdKWCiTPY1aXwQ&w4vUrCNlliTco(dym!47fYGwM3TH`Q zn%EWiJtgY1Qd4&fNps{q7tb}$)j>i+x00#`sS!d978whuD^$nbU6KI)dnBDMijuV| z>6)q+zy6Q2-;i?kplo`yc`HryMhbQVRASqOdn$(OR%YvYhl`sp*Iem$qsOFq`1jl) z;E&LH{7HT@0n}a|S^LsG3FbF7@cyhYCnxO;$6{3@sb%N!JUyKI%KtA6-4W6a1O9Bu z6)#;N6o(*#j8!MrTIvn-!(0AxLP(>TXxq34)6Y2B9C!!TwAX1=Su{3u*z&Vng&99U z4Em-eqesr-$p4?a0ws@eLrVde5gC$16 zl=&?FP>Hku{6rS0vM_QRjYnK;maZEOy23a^3dQPYuQdZ1ED#3V_4kyiB@=vaD zX_+cC{g2XmMdBD2W#FGe{?Q4fpmm;F`taQ{>)selccW5LeXRRaV5~gYgPYAZ5&``r zP9Vt?Rpk>lZKKAFjrhZLHlXyZ$}xPQQ%9(&OuK!I5;YbeXZ=F^xpnLL4-z!( z4K)ObLWGJeg5Zw~IxuToh&*8MaNVoe-GUnw9@u(R@Z~d6-5zT)WpGC&uDLaF_m?v? z+Bx*EYYm`_UFw4zG*K}wZV!7A)JrD6BZTljM~*o>;F@KR)Im#ls?hvGzkAUW3LE}F zsS|+ZowHW}#)GEL7)+>SKbv<;)66K(qs%9v4+(RE{?fHKjr&D$_ly5L>3H)(jCHdI`@uuZ)H_w`qm zoTpA9;W4Z)Ja7I|Kz)y!RS6ddQ#51L>4UL;0r|%Z_j2FY==EZP9LO4Z&_I*sK*weB znow{t5ZZFwV`-P}c$D38L(Js>{OfC^^J5^PJ@iEVPZ0!863g4g;osYs#n^0!G~T*P zRQlzYe0&&IoWFxk9%%;Hi6P?YQRBu96>NsCP!}4v4$v`dMMfw1*xr$uLlN`}Igos~ zVc*oiMaIz0Gk;qqjlr~DYll~R#Hk*DJbjcwW2H3i{?*OWVy7W3dYdG|@KRzffyMg> zn>A+rn@)^UTdT806wtWn(E5v{%R&7Fzz_>%W0(13m}(N;KwAx8fY{_9!|o6=|LP#+JJV<*aR z8~FKyl*E(n_utDNXYddMc0@x9S}8=vFae^=`Dyv(nEu!0{hV=lRHz3sWAhkjcj)Akfs@#6A=vdM zMfOs@f#R4wo%izBC8;r(Zidk>R_`b;0>4)SuZ^db>$cuJ^}#WlU={gb^l(+BBNP1l zqh-n`aSWfM<*M8Cn<3DaK$__RgQg=hQpv~|L$Zz z(PaT9Mft-1tD;eb5lxsHh4&2_zVa7cQ|8u>J&f&VWLw3J>HG`Zr&OTz>TmBsJ5Xsa z$Yt8KTRGJ*cS)SH;j|b0@&6<|7cT(Osl0J_`+Mi`JeUcjO(!d7x{Y5Pme@0ERkB^}^w-|?> z+hbgZu({OzF0*aI1mo;&e@0&3Znh{bd4QEpT| zTGm>^>Bol)X7MrzyYULaK819pZ>hRcKuj|c)IFkCa>_(GD~FC93Go2RiC|?MBY&(x zczjzux9-6bd)fe$*0!@D&YRjbx+{mwK;B#cWCrJ{ITNj4jqQn@8eIY^#uo9vw097Jjb$x7u*Ui*r&tVhGN^nOv^r(tP5=8 zsoUTF>P~WR4yw_k;;qr9!50jFH}f`_Gpfzgz7y>x+~ARH2VR=4-=q@@b>bE|HY;iL zsu}zH!rL&~MVj^f9O?b()Pz`$BV}O=g7WTb4+#Go!r#gf z(@=v2QXL=%EGNRTjI3!+|2l{-8l!b*GsEMGyfU(Y#F*rKz4rDTUL?9IvZ&;hgy^!U z85I$x%G%Q|em0}DB3_huODNNVM6)p=Q5MtfM0U-gAq(*6=$h0W^x)WJ!>=8?bioC!^<>3_*;wwFpF80nFhX&30AUpCfBA{hI5$ z_t3+^1_&nJbX_;9=IYvbPU=m4cRSB@AE!fa0X{-bZzeV|(SaQVNVc`^teO(1Z@Cs= z@QDKf7#f<9hq%Y1*WodS*v^w;kdKc|YLZ`JB+@jUAPvUW9MP+Qqd$weS_eVI;_@1B z4ujI=J0kVzILFYl87~@Mty*jfYpo14G7^Y3=AycFKgGf==Zbh?zn1aju8Sog8IRo5HiQt7yafC=Vh82f{)v*v; z+yOv053>xz724=#HcQt(-IR)P*DhB;p$|f2o9uJbv}17YCE@rnz4!YCAyoJ-TniJ) zI;IL|ryTpEs=@Brn=B+qppRhIjJEdBSqiJo`YrAS}9%| z7#XnG5ilqBJo}fP?;kbQpXHyb&eaL9Jnt}UdLT1*-UjRVQtiCre3=LG31%nVJOVCUqESd{wfXx%?%6-r?=#r5B8SO(ND0Fb~p~d zej)>K9`Vd1W=R1ZRDGf26*8U=ObZKR(|Ram3Na)uF5@dm+iJlbogT)K?tZ`?l=5!uEq#Pr#S4o7?lFF zkvdn3PhBJIcL*lf}!we8!R5R>robP}=iG*1b<)@Nq^hdg11hbpp z+VUY+GAmz#_uQqKvTDe`3Mt`)co$;G#@f-(V24%u%p0%Eu51ZDBcbgUWs>k4`kEq| zjKAI$u0eRSYnjc0_K6lr7%j-tpLaZGzeps9a&NqMx8-aR43|D)oP<$2=G7h+$q_Qz zjQ7n9uZ`$SrKvwm-U!RJ_l}DyY~1nmPHmgw?3r@Q>CZH4HM%-Kv^%-uO2pq1mI>Q*1pvv`otEZ1u-T zqXR&YN4!Z-I`Ma*O+J&Kl+Xikt#Uv3K}z{Zc&{3Ll(F4g^cu5s(3uv3D?K!R>LVkD zM`Qqaln5Iq_?TSde1DvJT-`{uJ7Z4td}+J&d%X-{ZVYn5cra~AV!%vrtgDbAW%}URLt`0y&G!$|$zr*`mGl5=Npx!YIfRvhbGuUmmQuQS0}wfCQvsE_L@%dw zbP@+&!iIOe>5SVO;d|p$LqbCJDr_AoZ26|WqzNyqGCS}^1qO3Ue_%e`4M{d~Sw2Y8 zAr2kJ;_SFkTzU>BpPn55v|9Zn?Ja zu&@YgIEOY-q29z2B2_X!M`WN<<&$bHL9Oe#0Ysez2)q0O(1S5B9TO+wlicCB{mxeH z#thd0!JT5K%)cOO`&S7-`~(QxLs1pbenvG@Ve5Y88M6ZcS0v0Ep_YG|$lMytrdCUB z(j9;?-Hj8r&js%g?3O8EAbPw~?o8-BSZ{hv72pas{g(*3HAOu3sly{zPYL7<;Q*tQ zuZIZGbNTcC@&%V;{j6RIF0hePxc@?wEYgQ`lC=bcaz?c~%SJyE5@rBqlo#2hODBCA z2lAGN90mK`h*giPQIl6#oEp4LWfnXN%n2bAro+XbxIBBCSw6=E6eULO3kws8wb}%1 zqgodB#a~?v_+BBeaK+UlX?gszW-x9jZ@K9MA5C|Vpt{j8I>t%D4I4gci#SOmhR+`# z><77xsvby%!8LVQCNK*I8knFy&}A6|@wA(|FZZjsCOjOIOJFcDzTUnW%Z*p=)daKyju< z>*XfJ>F-MzdBVk5Nnr*rw>5`W%M3bvmAKxJt(N&k#T^taWe&Z_(iLabXWYXUbM1kz zDe+~vLge)f&c1^2E?r!sIyHjqX?^^E>7>b4spMvxaNI3rpA{GdwP zas$K-kOOn0{;5To*vziR8;tQ9u`W-CBwdZ$ce`+xShXsuj5->E|fakbN=4tYX+1`S7 z`Q7qr-^>ACe)y@SPYL~F%(p^^E7$A@zmk>mjXKLEgx)8aO!OrH|q+HNMHGy}8ShBSN6XJH$xjbsxm#l8bjS9?XMqC;5Gk!Puv zXJJU?c%fDJuXaA=m~O=C@HsB+yq@DCf7=dqzni=A*|>$R5&<4ZgUyk`N1XU|4Ud)Z{^w4^H3!yZnHV3FVlE&w($2Xg_LC9-Ux7?)y@7yVPRRc z`{k46gpd&%@UTw<`e(YF$$UMsL-%T?1X_d%de!w?M9haW?L@+>GJfMm2qybrwX~}Z zx%I#yq8sT`W250JL@Y8hFlff1;kzA4a6~AQ^>sb7pW}Uv#yBT8(LuzhP^lG#Q2LVl zUJhSQdrKS9&}7(~Rfb7@SNDmYb@@AOT6>KYcG7IJ7W9;zS_EJR#>yYHB8%WlmyKn} z(PFqIJ=@s^LDeK*fka0lo)QpMIGXL9a&~tu8!mocF0v8{=SkG~qDvqN3ArSyNeM($ zpR|!ap(GTfg3v4Jn8j&y$O0Nzcp51Rj6vS^liH~_#UIQ`YlLXEKBrCaOMd)mJz|106rLdTBpBK zQ_iJ?%%p@CY&EL1N{e3yZ1dT(1&ZrGvw~~JpMjQSHy}tNvRAqOq2W42u@yC&C2Obe zd04-)xH`gDnZbRL&j`7J7ViDts@f`}E?AF0?E5KV3`#6e#F;69%G=UlR=+yJE<<1o z)9h!iGMIJ1wf5FH3mJmq7q~W9%K3;CRY5cfs*m{-rN(~(w5Y$u)a(d9s0lAzt0rqP z{{9mA45E_ZU|De;xw5oe8PSAicl85y$~;8vUp%pn+w9j|PcFRh+L_WrXuj?vXwtoF z>PB!^vq`*}x6VPU*z*qUmjo~OME`cqoLBI}DvGZ9ZlB+EM%69Zpr^<-_r`6^f3cL4 zQ%U<8wJo#;_zw9Q#*Z}g`MIIvO2m3Wk+LIXC;)|okXZZT552y!nIQF#kM*53Zru?Pw_@n2sl>%@%(9y&OCJbW-JL3hs zY(<2Yy2djb3P&?|0pv^qh#LD;ozKNB8pwtZFu%Sv0C-xWEjVwIvwpjaHgE}t`Q45* z_y@3;1?4vATYfH7N@{AgX%se?W6qrpRjVH`U|@C_{1m~zOC=`kTVoI-hPNT7n_U(1 zZQFH8_~gv+E2|-aEfrbC)4s2eIkF5%>hOmER5>CEUM8Ma10@@uFE2|RMwyQ?PhsNV zFbD-^`Opp!$HCoUF&8F{7}f6q@8yiTF*nc40fm>sGb3YCh+H1&SFxWh$f{6Q`ibmD z*Em)#NJ*svaOOM<2=X&B?KH!~w}>o&N2>bUJ(d{U`}bjKSMuq(4%PLJt-rK;p->kh zHgcq`YY`oP0WsJgkCxhG?aC(PTJfkuB13V$o=?o~y zm8wgc;mvr<%%!Gj$9WkFdRO3|sSGUIO#=^-2tqK`6_t2vTvyRDOPbq zScvR$cK$GVEV|0?o{NosQKY?s6}Q`bYd~cYglG!wWt=#X1+wWgUNk8x2+g@XRa(uN zE{i%}@v0HLEHa>{;5smsD6cHGZfg5bW_T+`lCsA{yD?{fd^vw+ot?qKvQN^itK^v| zw{Oz{YKCw$(dxhtE}!-c3k1uuM;7PBxKJSo{H%4s=;vUJzUbQ!{1zk{9O0N*DRFHz zLOk?rOBpH~Czq$!BO66Sv@o`hZf3*f z#=^>XcS~vX--B$83j$$W?t48=YW6qirWmr!Bfqf&8^7ON6!&zFL|MK_f(dv1k`n3g zj@z4%b)Pz<(cTV+Z+Gij8_jwZY9w>m>D-FuP^ui-o9Rp{lV7akynu-(#~r@rsTc3G z&559W_y9vHM|H2^ck!NUV{Jy?A_}MHwfCV%=h<#-cGJSV6?s5AI0)x5Nm-KQ^1Mch zdoZECTbxRf$Q(DnJ8g8%gf@c9oTJJgyV2?C;FMw)5aiPZ!Y*_(%FcPqj>Z1>wOt~; z8_JkUD%mm0Z`Gfjt}j)m=LP8K4_WPNbMWcNI)$25+zUqs{wbV@_Jb1KoFRE1n z@8Mqck_ePw9; zmJSyd*pcPJkzLAQd}X7IIef}Uy~hg=Qbq8GfK*U%qkzppZn-Q!6ar?KU+pB2V_T^n z20;8dI?k#($FvMEx`>31UXW5uM{i*WUzpUq;9~Emt|HzNOma=ESu^PSIcN{K58#K) z$7o^W+{j`=JkFt3jX;UEPgtqR;rEu!&EHwDmjp2+bbsLhugf1n9NsY7&fZ3KQq4=q z=vnUiJnJ0dMSlu|{HUGUIc+Ckbk6H^Stu(RKqCG9BLO}PV}yv-Mf~o-A+lR7_&|g3 zNlw@GT5bA%tn#t=k6fwu9HLCigU=)8qLP!}WQ2fRo$c9MOa4ru}Y+iFAkuz&4g zbP60*G}h@a^r6T_*;Dbz{0X(yvJtP8xHW4-CZAC2;k7IE52QX*+d7rId-!o55AQz9 z-F2iujo4yGiu039g{(V}Xps(fuug6WzL;+#8K0cXkY zJ=fXs>UtH(>+Lj!H@n{$DT%djjWnhd}J-N8Rv~3QD=-lV7=TaoEpD-&|CA&Hr|-FLLjl_Dy%$sCF3PcTQzcc zK3Nur{iOO0VVA@hBPQ}9I{&7~SLJ&6;pZK6ru~GH;<{nrsRAo~*lGFMcIR5{Aq``e zpr%B*NVY;W7dyZ;BByAcm4pG1mkfz{t>@?SGc9gdIG%Y)1FgHWgjLD z?)J==zGhuQ7htl)>qzW0-dVpD9QBAG5W)<3!I5|eXhDMw*4jL5x)R&670|zqBwLZf zLNHl{KumYFG5os+dg7PKcDj8;b@DJ(>+Uzdmn-DxaL`oa`5vc!5<8{PI0&Jlwub+a z=D9FA{T2+fOx+LZPq)}Y&j~1neVW3U3;kIwN_Lfw2YCQ1fmVTEd*ehBspyCTmap-B z?K@xxs1*j-h`x(lr8xHx>!RTU+`J&%*g5(E>jiG-df=CuII2OI%u|)n-ukAw>4otgJzuv>t(Q-v%E$f5$P8%}~yw;IG0*g4+4x!g{rHARy3m@lE^%Q`+jHf!S%D*C0T0^dr1 z!8rf2(u896TJPPF*R_E@E={lH5Z6gQO$ur@L#NX8B0wH2efv`M)s?L7rsUXqlEl0O znANi@&ujo1XxaOT&k{LPcI*GfV{3a-RFvMzi@T|OT&8V*fbypYUDfyn&}LfQDe;G4 zhIV?ikLx$?m9Qw$yFtPPfaWy<=f_X8j~*#bX`@|Ix2D{m4REK$edDb--A+e-=e>~QZkyOOltlL%9F}UvxfSm zZ8gr$`GkJyWGbUtX~1A^hOm)*WQxX2pMN01Z4v5fl873yL|kpum=-qo^|8$A@>Y?> z=vR|la%nqA`SLdgI^!s!jaUd2QW8|I6L+~458xLwPy1nASux4a_Y&?LXnwC9C4k^B zkP!1b`N)RbtQ~MsmrgNe%wgafxM5?8@Q-_)(33U!C;G$P?v*UZ14YrxhvCr4tY)+$ zPB*)oMK=;B|D3)o^5}S;k@!wvXOcd_=@R0FhVSWd*mFQl@J|6Ojjpu&3TF655siAo zwlnr4$>B)rd^iD=>=cv2JYFa+d;EY&Uu6fvW{{1f@jD-5hUE-MlW`iD1Hb6P?*+C`Ttd@G9k1#oVhqd%r_! zHC071w}k4Vv0$T31A(#QiQ>`mfATWo98UK{1{4o7cl-;LXGDm7`3Sgek+hn~3c^G? zqaFe5qDHh3=Dj?-9BRb^?W;WPOX&!KLM;xoP%FzL(Nc}BM z%!iCF>{1|ByDR$>zraC(@0KPZLKOLV?>)|GPooXcL=zFMk_-{4+sELYnlSwrDD=JK zcxN+Gd<&utdQVM)MwEO_`-JLXT1K$UXoj#P9*1rK|WaU^1` zvg5R>L&g$QD;HHv1&0=jE~I1%1cCIM`vqaO1Eb5FIG#(#p1_gUgmqS3Q6u?>z6=NH zv;tnmI`~^7XQ3Vvzhx9IGwnq(-0ol8jA7Jy=6Tx?u8 z)O0JU-FoD_gnshwf)(0PQ$JTd`Uyh05<`IBru;H)^EZ(|V3QzT7Nf4mzvRk9ZjRUw z;HkytD#s%X&kdc?CXpOq*+Cy+0CQ*5cokv|y<&igXJ)o2XWI(&j>7Z&7M4HF>om_i zmtuzRstka~K`O;7HQv`ja3UhSzxyCg2|0DH5NV{9aL zU%5UqN53e*LWK~w7ad^`L8fwpb#uJ$%DNrZ`$J0$L!Q?cYzE={9o2H*Mz3>{@_!V(v6cg=M9N&lm)y>URg0>%tn z@--lgSpVt}MTCYBJl7mV9ycs8;R8QhWKqzy5OZ7AqkiVy*Gvwhs+p8(k%Sm(gjZFx z@HGEUO00Gnj$xLeRAiol=mnU*p14=iygro9-;Cl`l5AaXXHR{xgc$vr)p&tup`51_X6i&~2w1<98nBO{IH!AgEcn z{`F2nu|F?^z-kF5&Ik~JSNHvW))t^DgR=dqm+*sY&J{Y5%+1X}ich(IDAfnh<@3tP zBHA664H|f~lvYJq05cCib^02B z8cJ=H+P&9+W-o98kr#DeFj$nPPV<81X_i+qd$?{NGg01KDF0R?A>8}+W?73F9U%mi zH-@8zf>@1HHoLa>$uN$yAGy{=-WX*#&=;|5o+@E@)fnQTr8$ll&2XBL#rV<*@o>_t zjTMPad&JK=Jo^TB5_fj1z}oIPsH7yPPA-5+W3!CY23s-tR|B-Zk`mBD?_OU~*M?_; zD&!>Bn`v>b;0v?RqdX_{3Vac{cq36G`$v%_aj@3&WZNgx19Rcj0r2|c*d?WZ7ZNW> zH`i%e_LwC-NoLHjUMpx}xR(GIvWe~Kn4KnwVzsydD2M;pVTYG69 zVK=pFovKXBd5A5I5LvgU2#G>&9eBKv!kNFft(j$_&XP<&D~2atXbk5&1M6MJiXYMI%%K$s6AUuxNkt%1mz9oGleDPoE*X`R5NN z{^C}4*&Z2%|ZA%4VNztG@A|l0lsbj(Uk#q;IZK~)Zb|m@P0)8Q}VmOJ#g=41AO?wSe z-enH*DtGJ^CouW!8k{+W{+<$>SQKJi5ASw@M{|+xiKDw|4v!wbQ zWc0foBo-%9>z@RMAVVt?n9Rh8idSr_u5;mOB3pXODGum`|J&I?=haaLTsuYnU|S<;mXsB}x#$cfV32B7u{jAfjL<6}G2@3a|eGik&8# z?Y@j1zUVRf=b;Q~hk%URIkoL;GP?sR$$(A+x{bEUX%TSR77JG#e4ULRRh|6~{K))U z;@_;7BNwkLndQ9bg+hTUXI6b2%q==Sp!=b4&etosZOOV(R9wI2KnqxfqtM=Wl;FS+ zydIUHadfD~?%j-A7%Ld&z^VqW?0v9ou>c8+9RxRZm|ii)HbXysVX< zalk^{w-Sd0Zz!EGUd&Y@Z(Og+yQDCGRph}Rd*-9 zh?lL7vd5Af%-pu*?2G!&C0yW))cQ_GXMoI+vDGPd&b>AttwR(P%OI;CasKg{A!3I$ z7X;`jA|KyitLtnz$Q~QK|QZ7F2bD-g=FiJBs%q=OtD z80?$MkYz^%N@@JP3onUPR(i~27J~{Asmz2x2Tz|OD05oO4cl?{x=b%bCv`b$2M25` z5_k0;0l@bs>RXQ(BqVob^eUbfSr}4YwhzFe?0qtx+jgU`)nC?QKuxz+op7X{goMDG zkcObcqD@cChYC1~%Z3Fv8$_u=`+;NUr|D52_E&m1SYp<$=uKVhCHFVBv#U&v06Peq z0j{FK6NIEC00rYvZtVxk+d`aH!6pJP!#4JB@t=Yokbub~>?#wY2h6F;EcnPRV zI;U%!-%F&y8a1|l!;XdM%vzBgHp=V8iTtrB$?jLgi#l;@)+Z(g(&a!Ge&v!{s|>!o zVR=HXT`c%Ia^Lk%3;o$$sy&hvMO?l0oSJ)os`u|^YY$*6L%(6VBG^!bWa>rC#8kA$ zw`!jIVZOp~8)7Mc;RyyLDB53EnE249u;hQR%7RYVgrHIt8HEP1ar=PtTVhZ9{S^}o z2V3_OryD^?omtvBZfFEvuG}a&G=eJ}#Z=f4`)IFa>XozTe_NsH4Gq zWD$tl2I*~9K(eRm?Lp)2$nr6{k4*`YepF5p=#)LBV%juIBq6;^$v$J*`46ayS48F;&KU=amDBh&)8TS9Vox(a>PHo{8c~q z{#=d1{#qax3+o)&MNxY;g0}GLEVoG|f(4Uug)j6)k1P^w(s$XE*pYynMm3<$YzOwZ zzaCzw{dlHsp)2%s#U zu%HOaqx97uKA!uhg8#5|jfYC}IN>Jgq5E8Oz{mcDEdGhP=-rJ@7AyC2MB)FnoNm#n2Ehd0+3?U0nuPew?D-!a!I=dyp3Hv}@Z= z5=0TH)2qo_@Jd8nZdIe2&S-`4hraiHFeAPk$1=pp%MHUpm-{>77RQa}!Qs^GjBO@` ziare1Hp2@apLlku!6b4im@P5;#PBfj zW=-Nq1rqS>8iW-Nb}3hkCpeUQhxh1}fqX11@l$eEd+m{MK#_fB8oESR4jJrk>8iP; z6a~H3Q08%Dz;dm2Km%x*uGC1H#60=2C*CTjXqQPkn5~*UF>_b8Q6rXDT!|+iw{Kz%-hc& znYtrPlOynZZ{7`OPLUiE1d+$o!yL!jy=d7er$#VaF!Pf6z(un4gN2M-=6-assc#*P&|$GR3* znRyx`KY`N#pd)@OX<@CS=DYDtNU=Xv_OBAIkw3*6Zdzu}Zjh~Cm{Buk{u_zf(tdBc z*c4R{&r%{r_q1|K>6mu9HVKYb*|3<_XD~1AolGx$f#9QW@u$)kZ4c^lcUNU%fk&*; z%<|+6m4ne*sd$dUd~J!j{~W%nN$roFvnS-~J#lAYbct_sY4Xat%qa%DPv28P-V&(o zVV`!4Wvf+^(+Y9QNR~LrsY^UFlSzFKtpI|@XZ$Vtpvu8~-YKn67Y|42;&y3j)UoVYrq>*nHHNOvOo5L#2agxb`0B@}%e zNEfo@4dR6=@_Wz>#x9o7v|>?T;v^o?POyRU`&QwT{^fR&rjo$1gwkv`Q z-LdFDFQ3Z$&zNH7&qXQblMRHIM!EAPmG$vTrQejF2I^U(bvno;ut@R(3nL`rC5&H@ z8)lAJd3N1#Q8X;M5x7y%DIMV23$LEutA(H!!&~+UlQu?8*X1vT9oM+YkW_cdrJeQ3 zO>Gj)s)4e=nA;joJ2*Xk8!6kzvYZ~<7YVh!IiPcsta7Mk8{xVWp!{$rEjG+J3J5=> zKd8nvB$*vrdrR%s^-6R!zDxv!Lo9sSnBj-I&!8{oPla5)hIy*}slUSXoWRjwQb6x~GQ}U7^~^uS4ef<1SO2#~tuW?k7wZl}YPKA*5g_;o%|K}(D?Ci?-Ogv=6RIO{-)FIi`z-Wv_@yCSOj)90_IN93=4fBV~@z#4_5<@qT#npj_`V6OwrDONql;mHKF7 zw2-3cr2NSt2NNKB-~)i#Zyc*#C`4NyNfcm99{579y`%4&Q+fv4lz!qKjz3nn{xM_I z@H-?Km+5u$mP&bP9w>%wqIFzPy{(_*!+s!tDCsY*fQeiugU%gnP+l%qa^X^xeh$W# z;;>xts`N>jJW8u$4}r128!@?291g8R@T*-ra|?G0=F>WgE4rA-!)QRF#{d;ys@NoE zbiY$|HPBhyb{g`bWMY|SQEqV9w3i+?doDU9a4s;=osTp4=h*JU5`ii3A;j*?Iby1W zoaoL%>q3W4WKk&NVJL&(#=zV=gFjgt$D0FnnGvYh{B@Ocap#ZfyQ|4j<-a(07LLAQ8tlwa!%M#s?7} zi{Q#}OqMS(%x3S1NGbo`4%e5~?|cTJc;4s!dYUwnVs#Z8!jKwwuo@?%i$9X}rfu8O zs!yk2ug%WG{8J+xg>mrLlrkTLJQ7KjS>FBNM&tr&zQ&!tBw52&Zo0%mLfyhM`~}MT z^y9nXJ90R?>FmvFMz>xRu!d%%DnzS@HW!T%Y|CKY=I!77*OH=o8_`SMR-ydo7SgIl z8F8T%6`}bVUk?XF?=+_PHd`H${W9PGig))8i-JLmC&RIG;fe&v!-o?a$3C=0o?iGd z1`(hvBUb-Ociq4s(xXk8VaQ&hM7^M_|EZnA4Xw%De;!8c?LI#%~y z6@Dvihc4(e!U#A}ygiGwp`0DfF~zTx=bkVnWc&DG#2G|0qtkCn!jSdNAfO}H$WF2l z-q1D57hE3l6X)C#U;Xm)Yv3k5o+;`Hb1tT6sc!i+D+S!J2?AqYaxeoaE`DyZGezZ7 zUn3*rb`~?KmEl-bO@oH0T?2&TepTZXG7+2J_0ao4w6ikv9Fe!YSWrg|{P_9b;zJ6Y zrG&^Sj48062%l~?Jug3sFt_98qo?+#GxE7Qor3(=Si8T+u4?AxeOpaHHgdpVSnjZq$OPtN^;H^NbUq_x0YhRxn_8>Ky)lZ3MqxjybT{j zpd1Wue^-zhna6K(Sw4Q{%IuRPPYlYxrgsGrYs_UP8sdWN!QOpGmZEv` zzbBTjAqIx;07Su|Y&nB9;QhRS{rkD=nl6e9m&?EAR688yGSarKjhJ$3^Vv-#G2D|3 z(i_^g%$E5%#ZtOuZGUJ?b2}E8af`;F?HOn&)fJQh`0?8Bw)h2z@Tw*oiXPy+Nx{<; z!ia+&Le{;)*-o2~L|pv)Q^ep>4jLl1tf%out8rchxRWA;>eS;Sv1tP)O63s7fv;c` zq}0wHGT!amH~7ZdzAMy&xwB&-_F63fy#?@ECLj!kRExAT8OPA}5?sS#C3v|YoF`~c zUDHO>UsL$t0WDy;j>nW;GFrtM9QS*^Q+KD(+cQ_+&Fqo~C4o3x8kGT3Iap^_XGt1w z8I@g&dO+kVr_GsT7czOjJ1tgg6^6QFh6oCh^TJEFF+sg;_X1o1%qrf_=L6112<3hD z7$3_Y8U@PUieYc#hO{7|%B{%M1~hqo&75M>ZzNQFp0?SFICZYR zOX4y@m{mLQqV7fxtk!H<-r;Pav1P9aU1?W5DIQz@48G6Xs%8{GQvN#X4G#;98WS^hh7h;w8J=ylt7G!T8V(xqr$(O^IyES&0Tt|d!1uEfNLp6+`M{ES*j8ENnrSB8}0=^@J= z!IphksNufY&_1XJ83Hcl#pzkibixVI2L)%8aIC2@qWyB|?|GW9zi;os*X1>h3H12U zl_RZGnF;H)kOgBe-$X!M!+3miP7;_^@7{54i|RPhSJ_;?NC(NQNWsWF@+ynLLBY0L zrq+qggI{Z}bw-)E-OS|7BUr-o%zBn6 zqViTsyY-e|7iuvnB&}{0KLEBV+Z%GD|NGLw7rTrdQ)MdKqq`p&NGY8MIQ@oC&Z93D za7#owaw%-+N2~r#zsWurZF$YtyF7{pi4=mw(e0)C*(=AjIKAKpCKpu88f%q_;f;Qw zsQuGPO6+9c@tj=(q?Z?LHD4u4cJbXVvV!_=Kf_CKH5>`2V-B6Wa|6Y<+6CD4v)&9L zpBB==vBU&^&zZO3f@LHi(xg~)V;t=oSRe&-TM@oADhpctcDY&;=+)rZY?>qG2koU& zVd>j>N=LMh&IZ)&NjKCZ^4y@By!(*aZhQTGOrV?g8}6!Y69OLDV7nFi->aStv7MHy zY0GiV&HbwoG>OwZXBho2PwhUCV2jE9=TFH5H>JL&Azyk4gfYCSp(#Mbak+gBR`j># zAl+=6LgJ@6wUY>X4Dvh<1=bxvGmg(m_|xU<0_NI5#9)ae0Du}`(+Th4%q5A|`De)~ z-1ZMtnmvn+tdw~c&u@r$Rt@$^@bIN~wW7=A38YfkAjcb2(>c$1?)RO@X+{LqpO{{A(TAR!g%w2A&;7Vojh zI0pdY|7vD_N(}tOWcH6edjs=w%sKp>GU|T=fyKiVg@`s`6y5kIGcDJ&LGPR_8ESw( zYin}_!}_)zD##f#T<+8(%$3vC%y`=kOuMM;cBkyA_(tdOZ)zjQ4qM>ky^9nyNiB?S zdpon|G>S_$@ZZHBOE9*!3dOAd^TV~h%OA@u4<=Hrbs|^K3 z{HzqJ7f2=sWFg_8M_`_NiW;`DA(w%a7Kl(j@nU3`;S4+LGbjkfR4y$gChAkL%WD?7 zE(Cp|k)KqpNzd*{xv_BW8_r@eb=E9T$1JDo1{y>29D9g|K~f zz}l-R62frCXWfK&Cx3H4bqnd}=8s`mCFsniLPKbL&(dfca0fvku&{H=z-%-8orMH5 zW%<^+M93%hH?cxvTrt?+6hcyo3DN`0T@VUwX@Yg!XEP1yVT$K0wUi704gT~KC7T-X zDr4dRQ~VPgO}=`M-79h%hS{?M+$|67tyVrQ=(CiFGWf|E zsTZ?xIxGLaFXkbi#E300lJg)6BIxb-@@V(B_%|bvvzms3{}%b(R(|_Gf$-6rvtE0; zBf=kvQ*CLt+9X3?6MJsAN!nJz#xVlw=eh>jJL65$aS{q>vE~lFo1?k!vv5e7_w_$8 z9jU`C__}7t;VIP9WF4VX7qC0a#j_o|9qiBwRbxe|CU%wzgDOA|+6zqU_u%6mhufoXm!87p~rS&MQwwWaF6#`cl1+maOn@zMm*b5Hl)PJKTfsAS`-O0 z1-dJGeF`g^&L+PJJ1^PSkf=8>Bp5R(A=|lO%i?mNnE34S?baw? z$_D_om5hQQ&C8jVF4g_NAE0~cTRP0dLYj*WVYs|6Xty@*pKQyxB~uWMb409A?`k(Y z;rHAfay@4hi$&C?ifByDFQmCl!90RDUdl@XZ~Nt6H-2GE`rQq^3J1@aJ>`QcD*4%~ zApV%Qwt3D}eJ}+!Z+z3DoJ1smi6euLPVP{vs&rD>l5_fly5mnF{s^faD~rQ|zAF94 z_30toB_k<(Me*}S-nu>F8`BzM=-1$>3G4#iEZu{n?Ru&TvEy{@jNO~?l$Q&c7@Vej zQCY#KZDGWKv=?;8-?+s8A5D*){R|6e(e!S;!ZA!n2Tc>LC(``tl`C$iq%_!i-4j{9 zA#=}tbfZ(;Mq0g=$@Bg5ps>&I*8=ozPv*3ThP@E@C%Z!FDOf8zeSbF>m@;l97Fy{; zCFvC+uVi3YObzXH#vE|vSDcW`n8dTP868tAsjtJSwNmEaVN}V++?mmzkd9Y5&T2~H z^7}EerDc!gfWvj9pi7_6A$?^8y?ONK0Pp4TLjOJ-LAu;} zt!}JzNQ~eGA7TmK^y9U@!BmE_DpiR+xXQ!H0Pq7PH(z?8fE{TF69tm4n z)37~(JaF>Z*z%#b^U5D=ZUV4aefAC6^Q+<-__9L1z?82$0kVK?B}yC!x?CA2o3yzg%SC`Y2$w+-Ic<`{rUDdqu!R5R=a zhb>Zz6v4Y~YA)NFyM5EHj*g1AdLQ_bpv|4@XQYC-01GD})%hC1?-B2|c%`}$DDEo{ zy}Z6_i~aLyn!9xV3;=+|qF_ofcIXaDbGaJIi{wfEtZ)XenIYpZutZ(Wqff;rxR8#J zbQ_TdL_>|R%*na0xy4dWlcO;;1#krZ@jq!W^x1_aZW`MZVdBQiyrUOWa`%#&-5PuC zi*eDEl(VT*0H@+_N~&tJ_`b~d6f=QmH4 z%Mq);M{LgguEt5blJJ0FVcod-ohO=kEmj@697ZcRfeD-(AOQ)d=+;A*1SI3g4xf7M zMBrI^0Llo}fse~)YHVkV#Z!}1vgN752wLr5KtIctUFR)_ap$#Z#0uGV;#MA0>cQ+p z;OXI!0A^XLu%RRGN{@`t6bd(oG+mS=n*UyzCY%f)sU?@6EEoJk0hSKq4M!5FsX2{ zd6S7SD0GC{eU3B6Jg2J)@Z1z>yS>z zl9t}&!Jj|bWo3_YvEO^K$COt)05uZ#xdPsdfBa0Tbpy7x(18cHjWaUR5xjJGlubp?#F!WG*oX9`;# znmZ75%03CPXq(aka}a0Z;952>UDho~bMM*gU1CI?x zx*=G+qsC&j4>3p`Jc%S8lhkOq@o_W# zZh1NCQKBYb-T1L{A*b`nUD7XR2xQ>|c;x>$|FwqvKc7+PNIs*6zAEmc!nCUHT_WY^fQA*MRQK024px zi8+1bY6Uj!4a{+-rH=S5GC(5eWSz3%fmkV?Mc^w31Hrkt!v>SP zO%W0&)4jzeINHgXmtHs1BV%SQ{NvUqDnW&_e-rg0!F|5a1{$HDRJh7RlbDH5Kqt}7 zCyf)ukGDUwyS8t`jA!Hi)$o8pZR#2z0+R=|9f8&pkCtE;s&S6NNEmspz&?|0bf+6DWfa$))gp=93XLIuB!FwBa8rTtV30y#ZlY^KdsLJS^A z-HW+(BTvICzZU#ok zisgq(o?Fj)4@5`}Z{Os=kCp5^mDAACY?v?EYLNpxt!`^**B>p~463Hq*E-4)=bY1T zqqjg4M=F7IypG1zKi=T{*4qb~2y1qqYZVg8C`z;l8h8hHV^Li) zz_@lrQ4>q8lXlfP+vO%f;yy!-qxoW;M$;$-Da=tuok54k`-&9+P60@-^WHqT(>zdg z5eW(bd$tLmj)?S|u11R*r+DKTL%u@i_A_AXK&D16?E|h-)U>;bL>Abg8etPV#gJxr zZ8zzgG(t4k>}u2s@3jv$)M-X*6jZ*grU|%o;c4|}_;kk$UYc$ivpv({C&ZKV$a?TX zB}vX>55&K2txBBPc`?95xh{K`j)-4 zhexWZB{OItKz7`v{LC4FZ3YwAI2YD$LLY{xWHSbzbKywH6H}cx-_W%8i-@bU5z(Tf zd2!ZW>vC%K<-ve8>{miR8iHthk=v~vVxq@S`Eb@zi6M&7g3w9Y=UZ(i$s6hUY|O)- z5^Ty+MrE?Gudc3c0}PK3lpb-y>eSaW+JT7up=T#qk>|%z3Q3(Ia*4N<=Qrwy7qu+e z9RHk|!87{%k-i}0;SP)y1IRH~-MM4OMK+9i$Chl5@u<-I_<*S-ld4Y?`L zrZs+o!FC!uCZjBJClk1PTZAn+q=$z{^)BroYL^p`Z-`m?cfm}y;`Q-LCZ=3pK$wF{ z9!Ni5-**C?nO_UuQJSC?#FB&eNoCoTYjt?H)*o_KLQt*)WKg*d1#0!v#Gx&w{vT4m zS8n{oyo$AI7`W*F*Hir&4kW=*-~{ro>D|)iM@j+cpf+3tKNfD)Ut>s@RqO zy=VCg;n)hc^{|tpjuSHNq!b8(*SA>aA#de<|4h)(s*Tt)t1;%aeD+*AQ(>p|HG)JK_1XNqY4d&B(Z|GaU8T( zN$w@u2VZ=RH&CLF7o%mq;9NugRDGT0OAEP3nrZQ>f+zp%BMugYy5G4MBn4zR92qrZ zuxQSBKX4=bOZ4-SSBoxGM3elto?I_Y!`l+!+T+K>_0D|!GC*5t9@+8qSR1RBc(#5F zIWZc>1dx?8pGT5|6+C?dRdA;DvoIAVF}!AN2DLk?^hy8%K>fcfT!6n~pav9R<8#hj zk~1jmD&Q3KXwgOTdSqj@M%cB>r6rr6YK45}M|U@J+1-M=5_u*lE95?ex4HjSKNZ~B zc|(gDz?H$>qDzZd=~ZJhpMxKPea%cVRoR0_VO&bo-R7J;g*9|-J)5pt)$WCQb2?kC z4+(<^xkg(}+z8egqDx#8R-qv=uD=Yn*xg-zpj@!{@oqKLn~-N$Da9Z>M|~ir4@akb z0Ymn}xk=`*Xpxt$KEtclhEyMv6(cwxw#ZCby>j0Ws(q~l)L-TiH(xQ6jC{M|ns%l? zXY)f#Xm)hR!aYC(Zlz6{cK5BaP<^q(yVZ^BZow4y&KK!lY>9T6N3}SMZI^qa^|<3vacr_uG+`~Q;Nh)FDhH7MV(R7G=osCa<04*Oi;#el zj5gezZs*-6YRZiDE(Bq`7;0nb(Jf47l^7S^>uvsy>=4${vR!AA30x^Ddl2`^L&NmQChCpEeeBZ_n}Vu>xM zy5ux?b-(_X0Qx*BeC-WFvR_5#lr4j&G8+vZHPORK48YeRWzallc5&}|r*mc%86|nk zTGH29!6LDbcEH#t%XSh_$qSv76funs^X6|gA@HW9p)(=J<%zC~TVlov+T z0abo{PRnaGie=u4A<3MzB(!%=S(0=UM>{U6BCa93UD{XrvFNU8V9=<234^#ghur08 z?HUYB4D=OzCHwUZK>IpN1Yj2s(=Y72Va_m9=B+c)h~=&jw>?ZnG>x}uKQR2FYTB;) z)$|IN8um@Pp}_u^&Ld>wA8JcSKbHn2zBcUt<(nRkWB+oHS7gv)WA*DO2qjG+>-HpV)c{thG2PL+NQBUVBfkyX zP?eM*Owf=a^mX`K!s6JAZrZhX{JevQZ)^gr18uH-j~SafgEg6#E* zVmejXmd8}hfCV`=G(nLZ;zgT0JvH?Q){)*y&yqzH^<_2D@RU|%`%$PRFtDfJP?r0w zz1xVHL771&*vEc6uf3X&9Pwz2(e9C!AMw_^)iJt!pfX7XM%JLPXK|fiaHgbsI#EAK z`tviJ_rGeRyT!ioK1JhzrghIPEZ?25oYY<#XwD9+;JPiK&Fl2EYP607&SmQ1ymw_yK@5bHpTM%Pp$L4XAvH`XYw!&N2DJY)Rw3 zR!o&T#$~mVJ(UfvvO42gMCPJxM?evjm5-^hmA#UbirOYyfMiHN=%2w8LAl0OBIZ9l z=l%>EPL1{9>Z;kcKq;4`k7(#hP?QD;l9_^c%P$ubh|cGp5lD1&Mj0q|HStcm(N|G3 zDtl23Cd+O3JvVmWpt2MOc#j@TBLHn0O0K4O7ojuUi4}V&b1a~ucK$XIU$3BgX!xkr zl)LO6RpkeFecKNgI7jYc&)K#kyctllYDI9KLBY<+X<-@F9K3GA_+h=#Z?y7ubN?(OO zhWw5@uS|iz#vgL9I{`;yA{s`-X~0TAZes91;wjmvSL%{2zw*pQyTetI0yS6s|Eua{ zb8scYRo|&{EAmx=vZWpR%eGBv>Apw>Y*dA-L%bF;Lc~?G0yaA|XVu)y`;E4{Z_GuI zNge8`<>Ca**3tMBhRt&6J8*|rI9;mOXPDv~5>XnGQSF5T{&M6Q`-FO%W!RRBIBI2h zQ(=i~bi>|_c8cQ5w_v^+%-)nh+`Mz zXG?st_1gm0AI>X4H1ni}tS-$+3qJp^Ga0()vDA>yu6D8T_Ok=;%VSj(kliHQ@ycf# zb-1F1eWHkYA<)q2h3z!cb({{CDuwK&_7Zd7s>8`Vp|w#A>^5#6$4Yw8D2+VcZp7Up z_TnK?N^`oj?Kk}xWTU*CAE})1xn6Frt+p^7+aylzEFlNJaxH8{^kOoe}%Lz?(C6GJDGx;JW^L=t4 zoyQB#v9+%JNB*l)*!Y?DndTPZ&Xgq15xfm=A-_Qh3GG*z4BQjg)eAxaLLn^RBB+VY zLRUx`SAXwUv)Umhbp5mZwOtBjANI3rh`>I|!o-*@+arn@iRL*bnf+>8R9V%3shjm6 z9O;GZF~a$Pdi0<-;3*%4@sUlSgDXs?*Z~OB52@iBk#OXYctPzyiRsrLHmGyTOhH4S zIRgph(t@mbWJI|bJcolB>!r9IEfrZ2hrXne3|YZjuh-&YkB|^D`#4Y#@^zz}uAo$s zsNK=w%b_Uo6_Ij)Pg(V%;-pFca9`sQss{gSNJ<$8GdW*L6-D^L!OWcNx&n+*Bjyvd z0@p0T2Y8M}-6QEi=oLjvxyNE8$BK4JRPTj^Qt;WjSA^x9Lja68CMI#u1KiaClvCQA z4B8Lv-Ak5xNyR|^h3Mi+!*+~#br=$>GYU@~m{fRdXKg-nTqu|b_A{SgutwtugzbMq z+nA)GG2(lBif?cb_}i3LodJjRBZ}9@-4V_xgWg(YG3l;MfHh4($ztk?U#2L7u}7k`;7E~XPW}UkB9!4PdEJAv>Twph+`D;1 zj&twJv+8rBL`T80Vz~&ZFHdZJ6?jVycu=xoSLoWT(5f3Fn=yr>wd+R#4Tl)~&E@dw zK?vmBKQ>H&vkf>7qbZgB6w9rn^ak0TzwY`aYpRr3|*^St&!f7-!_ zq|s#zC?YNCvYW}(45Dw%D8ESW1FZ86MS-dzqQZcJOg1XHM9H33m42rhTD|r%`b{K8 zQ;+9?xFYifyd(^kM|3j>o5KU)NUb9by_3Ew&(>N)9=;Tt6eQavKh$(F86 zHFb=*R(c_WH1+%CcjksL^~gG%Bb)4-6&f;)Imqe{CQ$`-lGv30mLZZdY7zQB-R6SfkrQw8LygW zP^2{Gz-Kt94WIh&%A(~FLW!G>vvK#q7ZCbt!UQL4>N~~(m%aAmXuDVZ=wubGo_TL% z6nTR4+w&RT6o*4(0i{O+YCnVsqRM=0)*vq+?9tGv@$Ka4eWB40q?nx!``HTqM((+I z>obI`90vV^aHMUwRkC3A#ps}ANT;v;VWl_ul$V%%#DXnE+66_|3ET*>A1*NicrOJd z^n}+#S*W@C{z)bI1PL(|ROQ3}opM4mAulX`F=;@fp$N@;WixgLQcp6jR@2=TwoWNR zLVaoR$LAl}NTzl}5FDBOacb=ejZ(?7H#Sms-vS}vTHTH->3WG%X5kb^N<|n5+4ePI z6e%W=aW2Qs!=KWj`sJ=c_L4zx|P94!tw=k0GYL@eP9OBl|s3DW;~5 z8H>aT3jL0SFh058f?)DWr-s@|;l{1oYTxE#{9TQ)*h##veXz<_$u-DV1m{!$r<@nj zI_B_yid#Wc1nvEO3bZyaMn@9^4g*EKI;zsR8QW(qg}>*4`zX8J<6fusC{facT|>l> z?J$%|rplD70w0VV+#*2LZ$Ch)vImt9RLv|hVG3=DPz6=&%Y5!L+YqklKC7OS z-~5S^I3Ww;e{&MdE5UKMhdBS;8crGOH9ZJZDO$gnb_zYh|1R06kbYCdy4jNmND<-G zJ$kkf8x6aiX4 z+=Ji=?4YcM83M*C3Be~3VH3&nl>HvQ>nlzInt|iAJOvd|5=p8AUz!FX|M&}n>$rNF zoXs@l{t1p;+nPPl>3U}HsJ(UBFPPR*=h~zB8Pl5k;TBp^kyG2VfR{OTu!^vo6r|-Z z0H|a)b6zqr16DMOdVoN(y@kcX2gM%&KqgZlZ8>3m-;-BC_M#J^h~-8KPzZn+{3`%% zJivLL?AD;g0{FabxgIDJ?`?;P`y#B$CAyCZWkS8=4i+{|K$vWAcTxG!BC{+j#_cuL zoR2VzZV%wmJn)((0Ly>+bh=F*Yrm&GZj*wMG{6_@Nh} zB-3^cIs3hNLX(031`KN28w0qXc0QtRK8mfqlc1$>CGLQSux{ctL5e6=X3s5ENvYRIKRcWTAV-d6N`RRn&xpKy0>z~LV9*F(fO&x^n_Pb2U1iaux8On(P z!;Kr7lOk3w%bG*<*h2ObF;A6$Nnk*3P0{zTRT;MN6y@JN-jRi+e-}hmk$6bfGVYPW z4E3qEIo>j>H66My=Xy}xAIWn4PPg?H3PSRrHp6R$73g4EWADpm$+dXi(BG?*&%L>d zp>ma0Y>)0t00}7R3l}D=F0!Cba{)uJ_CgUai5)0Vmxd`(W0`gULGs!Bb)Jt+DL_Of z?JdPv^(W~RKe`~Q`2xu0pPZRJGWUa+@Bj}QnYYpNm!n>bNGFEk#yKJcrkIM4+%%Lw zL0Cjaf+~o;jftk@%B=k2GL0rq+Pq>~kwlu6js3PIRs^_GBRyJ4c#|>Jyoy-u1ocjE zCxeM}btcI=kN2O;O`TT;SD;z=mG~YQ9Mq&$PXfQ1@5Oxouh36kCOAPd zWkfnanQLvCiF;P@Z3Az5F88Q=BI2FL5djR^d~bg#*ic-GSPT`lG^0fN4jb>#;Mpuq z5hi>0tA{Rl(WK|l-{$5<=6wC+mhUe_Wa(Kd)YG<3DvlTtIJxKfB@27Q=*6=aFJ66H zU>Zh9@wsHiu{;_fs|687*zt^Xz7=yOO4a@kF~H6}yH-Om?8Gqh*CuojFxxB3a@L4t zQ_x&&%*f#wc^i!6=IAOx24v-UR21unvZX|Y`|!*CuQ?28CQSHUuA9S>g+FC;Zh@p& zDnjEE{YJ;8YJ2c-@V%&&L~}E_i8yfMwA)-v zWm39o)+0@M=g?*A`qm*wuL#CS9VorgzzhB%W}ZOagVkGY0|_O7x)$1I9ry7F&b6dx zpwW7%!3=I!ot)Ub`FBe0YAD<2{UX(NuNNqhVJFLk)&IHyvo*2S855?9y1^}3H%9vL zS2fLK)8op^yfFl)9H3p;r%s2%m;=!DyY_R~+OwUeIT)m9TLEvKU2v{jwf{@L7d7E;`&x>liAhYH0t5Ixhaz4u2h4>c2iEe!oyjhpQ(8Ma<0?O|`VqYr{^rU$om5Ew1R9VR|6=sWFpA(FeF0c{ z+B(&^iCmajU5(zhI#2d5_VMU!;HxL{4M8K)co}`&+&7FJ2qR=hbTsg7XJ&{Ix#ep5 z{qpko9_eiCq+#mfG>u)V?_?1b-W{U?{BDhD-CO_+gvaXzv2GjhJ9KEE+-)o<<-Anq zr}-cL-5Dz0<{Ks(P5TMNoGM)Sw*p9-_d za9#93^i#U@C5jsdF<~rh!9C}^X&Ryq5p1PnRVC9Y$(IdkgV?#Q_r?EU4Yd=CCojpM z?<;+df#rxzu6ViY!sB+(6J#Z2SOrX)&BAx(>_3;AJ*4GS|ADqds{1F&J4cQ7| zZCI`vl;|M!yvElNJ(H8S%+agQxybiK$5)PE-iKfxxA(wK^k0x7XxIcZt%^}$q|xbt zN5a`w-witlbyaYdJiox0P^cp*nD^6`ptY=CBqgB^Ddnq6))H||Aw8l0P9(mvDV4C( ztkzsL7O6?aGe zVRpNV11hx9NArm33|$+52~@tp%ejp_NgXK3PcpY%Ca89 zb!;_MpJl_KZX`zDw)n$OO@%v8qK|Oa@U8O#7fXK?tK*YP{7Ir-h(kl32&(mi##YA> zrqY-{G7cez(R#aHp$VZrRHZ<#Cr=xi9|XfM`G^0`^%ea8L(NhEwU+G!J((#+drs|} z;fipuh=;!(;ilb1*X|5qtH8)9G9XKlkp|??>ef7^-E^F2S{kazTLQRj`Al_1m5SEF z89tYs@ttoe_?w{7k0Z*^RU1@kR1;0uAdc3{|8s?n4iVqk@A8*t$mlBf1u3*f1dxpa z_$lX4>}7=~Pu1{*q!?Z<)58I{6WaUJ4D?!p1Bk1a0_yv|C=4>0U~_ZHVTKguvZVUL zPFn+UIXud9_&Y!CYWF%>;7P|Ku%Sv;a&LACM!U^b(Ikd{%Incs**C0y5!x?yfbo7% zNT^1BluD$kAw&Ue^#Db~XnPvh#ZWXbiL>-PPnH5>kM@l6@bu#_xT=qJ-yhr-u6zkp z8nU5^m{Hj`B87|rT~!>;(_94$@a6$8M!37A{yt~l?x`+e`reh)&1vPw$~JP#1$0UvT|B%Hki#wP+X3{Q>iZMak-YxHSi&HqdKn_JaA(u=|r)uhNm z^n85uO-vTXcb63C#N`*CvJv?Eo~Pm$0Y;-;Dp&1+No?-vo==8p2_&;dY7r!y#}dC2 z1$-GM5R37Y^uiCb;Xcn)jG*@ht%NwjOOT3LI?-hT(5AXT_#C5-SnlOA9(|snw>d(n zxcXNB=kqi1ew_;cD5XG^dquf#_YV-hKR+dhMJ#za!-b=Jx#cFx}Y8p2&Oq z0mIjgnBKWrw#E~N@5E&D0CSYEiN?tCM`T=697U=+L4*ZwNe1{dI*kCLF_X`})fL3@ z!@D4sle?1^Bk)hhame<#Qdfte)x#0Zf+zE8|;Wm5K!0{%*FQPo44&i3(T_Q2Z5 z$1Lx_=e>H9@uPgrkq(O$ZEB^51~1O6?RK z=duVjn^F-3yG;9&1QBE(4cXu1^5+;*U$&{_G}2v<2wA3f@3NgJgj>Me?NDWrc1H%! zuEz&tAwij+NQo2Zd%9$f_Cs?t@C@#D{ye$jDSu*!>-;R%@iUn-vrjY~fvCPtb1AB+ zXlT;pRCCxVWS6?JnN7zfAf% zL5g~K@_&;?&PsG(V?VFe(-OyG*^vsj8OE(7zI>TTN;bH&nR?IbhmsBA`vq1K+^i#r z-uw;laLWL80VI{aH;E9s(x9_OjX0#~ju$*GXDx;5QIrfxxx4``i+DxXk0^e6- zUCU{kOE7cgF!A*7<11s153W+7=hsZ4tKMV1vHMSeRtz9XhH(LjRqhQvD`&(4amY;e zv>`QB(>UeG*qqbxi9`{DrDvy)>o4wyQP*y7AbEyw{cGbFEb&=kK#q}C$we5?_&89$ z95=HT*4PxOy_lfZ`5?NS-JpPA+tRhos5zPtp>f`I89_ z4P5s@cBY(aPI(;~13-N>*e)SltKxnc9_GB4hu;)}sV64d>fvO~!>1 z;FSL4h93h00MaxSBp?o_;Jw=P7^G0<_5K<(g{fN*YouXwdtD^L=lVpPtp5?1$a@}Y zK9#o3LH~k+(MD@OUkP4nKJFnwva4e2c4N%8PFYSW-PEK2^rZOBt_7-!TBz&dRSzBu zTs7ImKSGwe-+`}hcbTzyLy|pVywX=iOET?BP&}B z|B9~1XC=qxxf^8fu7CG$ZBiF9&+dtxPm`9vdl%6Q>bF$akjOH2S@W&aL(t(@46L?S zs=5reN9qC$Zl=~(jOU|mpu;*j$j6U;Q$3>rdmCG@&BD(7{k^tOLmwiw9X0NEU`D^K z`OH8P&hpk)bdr#euDE!zb#Ve#hX~=KhAkUG9bcNWu;8!@>e`)=YE=%ZWKde6iVe9JpzLS0|Z)+-h6&XYUM#ZlzaclUWHC>>~}Qv(;`feFpm zkD6eYzey)O&zXG6EqrXGEmP5Wvyxt~D<91t7~&!1JKN(l%3GHYN`wV5S<>^e9wtp& zSLI1#Sfgz|-)NF5EFn7aezxDD23_PU-5s5$pTNVOrC^J zrX=**tYnmxv4rkQC}_Se%Y^ZTvmJzaLLI;&v*W|<(f%yDjlrb%xzBWoHy;+Os>=$I zt`Jwu@LsXwvX9m-VO3LW&V`^FBP%RzcyPqAR|Se*%_q*zaNv+|9Xy0Ea~Sv-fXREQ zyeZvpNeh3q88ELGc?)>`=?Pl)c{dZ$TD=+@lSU&%=X2Gt;egbPXVO57*LbB(sr^xC z?)Ct&-(0gGb~Pldlw|vhc>Kur7^NY)!ZyCdVBS%Z!97NpXs=Z3h}~WY3T}jbxkl5c zlD+B(CrlW0Jh-mT3rm70x)74>paB?ohZ`BM8ZE^tV7i|$OX8kGHC$Ldqrgm0ll#y> zDq-N*wSbfz^{DUVV9B(q$nwdb@{GXb4|GR{yG01Bwo-gyy!*y&{@AFjXm{moP30=c z&1@VaUbiHy4-}h0rUz=FjhaI1v?qzU)88YdOzVq|o4=@N1575RGkFZ-ao*Op<*kpk zP#9=lkgSkb!=QnQ4l1`Wr!(gbpVx|SAgM-oIGW!sI%dhaU(q#34d+8#0{4U@lBIDe z_ur>$fqJNQ%S0_Lp8}?-=q|evjH=S&cu? z88d9xk*us-xU`wMC9WaT#`da!iYxw4dDHT#<|0PUGN|xN8?nNtWlg7~w4_VBolJQZ zwi&K_C<4Fdptq1ab*{ z@G@8RkXATQ$msU$LAHS)sjdbRNQKo?$7tMm3Oe z^h=jq!FoL{z8)phvWQ_7T*N31yvam$tk+}vI(*B@H4j;0LetScG9A*@a4uy*po^BA zGhvIt*Ht^+47f1y3H1RPcO{7uBM1~=M;`qLR0G^!1Wh*S^d(Ig!~k}@H)h)NYA^bv z%EFXM{1nEEC`YDyv0h}*+7y^{Cb|z3aYKr7e2it@h(HnCrxB;s1^bx7mW}0P(W2#BOf>kMN#BV%)R|eVY-d z#LG|n08&?ca?~V}p9A3n?PS2M1RD)qfm{&q|?sn4H z?;uOvepQ>ve_ZrZL*1;Q22cEJj?!PH+P$v`tEJLe7jc(K9t42 zxRLddoJ)I=MW)&ZG%!QwoD!rdu+j#NwC0?y+`#yhzO&s038@WUhbiEAEpvcGNv-4? zaB1ZE7mQDvQ=)*3Yzliyt{^H-b<-kL0Y%rub-p~35jbJ79|>%0bt`#&?i`T*_bJP# z*3dj+<1FWi{>K-GQ0cMl>`l{>r2bFoBvF*@k2lO{0qqz+UDzeM$X2P^ zv(I28A~WMJ^ubiXoP%+mdSGSjACWP;SkbQi=|L-qW6p|cB@@#r!2rP&wc5K=kbbB8 zwoY)?U;4p?V>jH})1Ph|>=`!#M`kDU0-Gf(*mwoPJ>v2~V3qBi?%3zXQ1~D+6F5^y zHuK~+4jvyR|HTd#`DJ$^_^IQ4@&qtfxr9C$FT>@O2u#_>!Z;nhn~VaI9IoajxoDv; zwiuKUBqhL)4PjTn;)%W5z9@)0+wH-Wrm#ROduWJV$em?+8bOxMwh1HK?`_-$IO@r) zc7UV%am)9Z#oba@ zd)?+n8#%h?8$OhjPih4w{WSD}dqYtVt?T<#6Bif@u4UrquV$JE&4<~^_%Y>yQ^~Y1 zGtX!)CJQ9cIU*DjnrUU*SsWiC+T4(ML83P@P$wa=sdW3WRq97hj6-4#@JiiI#{bd)X! zAT%%_;?1ds0H>2sbHvAI>EMEkffpl0UXbQ)*r+>u3v~O=4zYL4Rn@}IOa%(K!U)}? z6)@^L`Jptq5)J`7V9ntTooBSRPZD5|z}Yjsfx4+u8}hiAqwP$D1*2&>PC;~I^2vH7 z`u%Tt<_##2EwtT-zq!dhQp+SBTT~t{W#&JUbr*r|*QxDsjffP>))3B_t zWmh>)Qwzs)Qwm-WXnZ5mefPAmXSCsAA-p!zMb6QGtvR1S9fBG-LcT8*X-_jO;{%l9 zX(!r#?pQT`uZ@+dPetHvFerfv7Xee^qIdG~RnP+qIi_iXi3P{E&ZLTI|V zvarQ+Tu<`W>Sqn?dUaTC-JgWi8W*t&d?bROSuXg4uv%ADC>VUk%QvP01yXx*HfLzor~jL zL3no7EXB-RcmgTsR6LSJ%tU)yLmm;vllhqN=T_-XD^6}&L*F<_^4pKQ#E0`%Of%xZ zuWOVtw-1j_uIhI#58@0et=r8huJb_02B2kG?1u^Q4m*Mek2VUQk%%sP^D;qJO{aNz z-LiphuqO&iWTEc9dW}=;`mBc~{UgM_nFQ3rfKfu`<*VB*GL{Al+!s!T44~u3W!hTQ z%s%>pGOC_T;joeA(g#DwD2sRA^HSWR_@r^{T3^_$MV zeHDLd!^9)em7D1pG^KW?-DySqz__d%)h5zrY5YRn5;a+lu#V}f^9i^t_+nWc&5O?{GRjf!-@MH#On)yC7cCgJ!Ncw3a5?9yV%F z0VtdfZgwbeFW8`NP-A?^WeQBZti7)$*!OjH<+l)yc4pKNv^XAIwPpT&F;%}@DiQjA z@PlnJ#buk)PHZEtj5LEoec-DBLEInMaOcqA)2uTQzq6(e($~3Zm)#l5H$T1B_*36t zqY&twPU=RvOZE682H(~$;s9|tgZw#bXRO(O{5#QE)Ob{XpC%l*8_9gxj3CAQA18KQ zc5hi36#X_W!;zE}Zks`HGK=eXb@rd;<4&TT8 zV>uxnFGYF{FVfLYh#;!hl2A5%zFdQpA|6_{g3FA1u&8eb4r0T<0t~W*6=j#wFwYEz zQ1$a^&fj^L)D&Xz_rgm6cM=NT@WgixHpfe4)hteghX3)>kIs`K_Cdm`^1xoB4q-

!w(Ri+}{q6~e&y`jkz#iZlMNoVOrJ{;tLK}DvV@|l+?2?ZFq+yOr9(qVGH63k?Tya_7|kC#JURK ztSWE_g!|?P%{(;D#!6hQ+aZI@#`QOj=s*n`^#MC(-?ni?8(YYD_ z?TWPTbg5KqN|u&YdW*kq&EZ$jKJ;`ADF^7=Bl7OLt!SPXs%%NMGL8j~O5n~GlRn*U zUnR~l`9mZxpS4}jlKknB*&D$;PeYm~O-dq6SO|wHP^aDfK9L5yi*E^(ff%^q z@r{kY3VyX>2ehox~A-Tc7Tr`ykoBSrWg~a0lKie`ne7jY;)`1S3C_Bl6Z5KqhfDnF7o%HB8JXxT# zoF-zIMogMp$Wr+ zzY_yA;vsk2L@(~OnB$s!*x+(l~RwKF+UJ^yHgRmHX(8Yg!5e-i?^hS5;n~Aa%mHM_p?2Wm5khC_*M}jG&_g*dp~o zaaU|sl(1qSwxci8)7dyj+nPbvO>Hl;wxAi)v9_{~rwnth* zpVqZ%RkgWsK8I5;sw`WkMh%+{=JbNT+n?F75~v%l(DkrTqXpPYFm@VME}?t)*n>A* zzgC#33zdPjz=-soV*hVt9|jo$xQ$dVBd!JdwRk1ISsLg)5e2h5)2HRX@n#M*Oej>BWCLb=2*DQBHKiE--0niR zu0I*At=Z8xK!QWE1{yX(>Ut<3bp8|jP8n@OQ2_J>NsZ^mMMKyu&}c*3NI4#zO+9iz zU8vl#0Haw0CKyCFSIK1WQ=x(!f%U?EmvP$PF3--W6$GD}Ud6f$y6+b@(rT9*Wxq9u za5DD=sx2-Bi_kz=prHyffw|k>d^p4ss=c$6iSg|`f6NYwRZOrdq6phf0n~gkjat`$ zwp-~xxZ=8=h;(dp*E!6U{a$s&J8=1zsjwX*>+q$l&OE&Jj@2&x}^ z=S)I5A7H3D%w{kv+Vzva%_zaJdF`_s@4;{cdYEKf#vlc5}@dqdLBE|mR;Bq80pTLuL+4cs=odr+Xq zN%?EI4_RKz%8tMYi4es5UpNWaiv*LNGF=dGnku%DDUT!=f<5HogiWUUhplt*UXM2G z7}hvG9#=E_4qX+`FV3OTacw-frh)d<`D~Z6IhIN-F6TUXIOI6{FT0%QJrz4xdj@lar)RmC{lWs?gJDe})XJG*)sd0v@IvE#Ll@lzC8LijD|KL)1xdK~$0kQbw6FFR1BKkl{uSzUn> zTB-38YMpSyZ-_z8y@r>Z{1^-R0sQs2tYu%DRTgZtK)buoeFjNM!w)^tN_Hj(UsOyM znAMnBLVICkCFHs(148;*c{R(KVtN4f40H3CVv3)ndlcmm-R2T#Yutde(iEA!P{LCb zaBC$LX*hvT2>%vU1wko!(`Xrq>K=0el@MZPwGEDrf&2wQg9wG`6U;e3~9-Cl?2`pKQ<$&Gt0DgrWe(9+ab`4Al`UiB4sALg5gvR zqQX=t0h$Fv@I-XG1!ywk* zAEh(+dg9G?E?5MstYLu&1Nb)y&kv6JZp6S2Yi1`C{9fdPF2J6LIz73OM*{S#VGtQP`w^{ zn){31{T{(`_4P;Eim|5a`fZz?+D}*C3DJY*mPeKHXKz1BvcMH--U~}}ew4QwLuNil zKi9;dcZB7D&e>+K*B@BxPAHpE*2ilTfc%V(Sv9+_7P-_u;hs$EGnhH`aifdY{3gWj zI{Sb{5GqM$!8`W=ng&+br9cJpMpwUxw!n-FDu341p3s4cudvNy_beB^u38~n1yzV( z5;NJk?0K~5BA8%;C>0Q^2B%0Xe%I}u9eAg%$HK;IhO3{bSW68dE!fE61>uYj6ud`5 z&RiSpxMKH8!GOWPT>{08y|&(8*?)p|EhCmUk>pA`LECs2>JTiihdOPZA&6-cM7 z0i@G|bSGX76SWCSB{{J7)Q0y7k<`U?uk1oJeJs;9d5Tw%OSX}FYS`xOc$CnW+VhIl zTvwSJAP8{Xh(1|ar-w1fwz`!~B6S49yi82nlHeV26ypB{Xw2fil<$rH??X+@g5eya@s`+QGb>3LB-{YgM-s%*H_3QK6DAWTBS@Bj;IB|_T&kWI(C&OdO$3&yRJ zXH{;eq%>pij!X3{(~+0fHK&XtKF zhtAzrH0Ru!oW6Iyz}gQqTHJe7Z7NEMdnQ{R_>Wq<>aaq*ADn#OaNPS^G~2@d+Ooa< z(m0ygWKxNaO>#Xf9$Hi_-w&(?67aKAb;!5F%}5hkCJ$jh2D+qh%30rF2Ttj}uT=Ka z(Ru4;rys+HhBXcTs@Im$fi*w^AJD7nj-fM zlhb@klR3r!umNwj-8|!ED5Ucz-~0HVY0o4BG$8SV`>De%VLseCIB@nC@_}~H6=Ks} z2Fy*0-mu!D`!{}R_$H^U-w((&Nr!fT%V}{DdIlra?Ta;>Sy-&>}hS#^X}&);7`Y1vfgY~ExE+k5;^ zjekcub`%hJ36Mdf`lTB$BK?T=o{Q*a*Uy!55A9@0NGPBAG_cV}Pd2#))hFEZ6{ySv zf-(v4nMD3mMA9sG4#~L{GwC8_A|rdHWcq35qsJxE3N$7&NE(A7THu4kSB(|mE(X~f z#Y3t$q;_swcwmp2Df5*-Te8$!^T#k{&}VS5M=He8M81T^ptSaq>^>B~QjnuOH_kF#2h;=YxoZ$?4uonnU^ZQt^rA)MJTOf&crOahXU70G>QLTW1LiZr}dAfK|%wybq=Zd%F9qFp+F4>g>3-B_A`um?HDsob}Yi) zbzyrNP)aC7)m)-X!JG0Mx$%(U6=svj09Zz_MW&;>^R}K0d7jsd`auk-Nhi)pOB>pE z^Fn2fZkd6JAJ_r@_uc<~iLgtFafhDVFoE{9)>(+P?AxhSR)IOYiy0|=dXoGuN|Ml( zTMw)qBg2<9HEGI>VdF7591ly_+0vt2ez=G2t^^ba1-J2p4TXtYsi-cGN*-}+edh0K zjGNSh!}9ZM!p1-2FFqu4Rr#xYW(85#p9qa_$$f!<(tiY`dcMj4qj)5G@2E7YLZY$K z6Ze#2KL__^3^!(y_1{sRuW9m3CDIe z>C|Kwg&Nh|O#3*s290IAGO1t;Ou6hN6Px(I=yAx8+v4b9*Qzi9xF209s{q1hLhxjC znv3~d zKX-uo`HnIxoH5gdVdp$5lw8fV4Rm?N>NZZIt(i#{*k>CwYOpgV9v`p}90oG@pH9iO zy=0ggADTrT>b|a!CJ3B;xx~Ln18~aN?TG**Y8p8X)ZVN7oL^f;EVx)5-{S7drS?xzZ1mUU12n&3GMrsG(Q0@?!oTe8MydG!g+d99ostl*e^t1$Tlgd>yu7&0&J(5wZ|j5D zu)Mz<$YPCu9?inClu|_tEiFmXY#p0u*okDDUDNo3TFl(hUrJRwccKsT6(2^mQ+7c<5p5|5ljGJt&yc2!RbF>IsQ+KJcjUIC|P|4cZDW zrL`KsPwP&>(ZQ!*YLx+O21~#N;pO6Zv(P7sgqi>IDG`TL(336|hqolNzbRxtu)Cr9 zPvlRB9d@Qsh`g*h;%F^Y(Y~!6LaCT?hLIg^p^RU&&myxp8=5yW!$z1KXKWB3p?v!`V3hvW!40NJXSq^*(J>Mv>DojKf3M-$VXS0c#oZ^IpqwS>RC7 zuHB9kn0>^(my)U*!sN*&f`{3B$nf`lo@I}PN99b*`ZW%kqWKCWhac#Yw zJwN5QcA?_c*=O&PTpXRBL^|y_EQuIn7>?5bV96)|mPMbXHG;jg4O(S>94>&WQk_oq z&Kvc;#XqC-grfyGzq)L^Afcz?k!6Ak9r-H`{3esCjc-ZUWgfFtl2xI}`|; z=y>RbZ616dZ`6gE@yr~?Pm?zJKjn4miq8MIaSKtI={in4U=3b_GGPQlWG)6QG`fLE z6`OMYv?o`m8CTJjo4%2oJrm~JjiIv$0l{WlCWz?#J~*EgGR`a26st@bwPE8;eDWw0 zw;Vt*_%*$j#!POTmv>fvJ<*7Uu-J_6p>cL>2-)XAsy&M^$9fhauv%Wn*yg?(-g+0B zKauykoE7+GILoR@A?$#&z^)cAVaHH8Xu%r37*}=m5Y($){;i0*7p1HZt_Nn7Wp)3B z(&94^D;E2X;JJPzFhpv`pSE(Il$f#|^6L4~lcI{Rc@z1T+WxOD{QdLbQe>>V7$}b- zfx+`vIA)}CVB=>w8@30~H*u%~g)La;txw{b!_YI{D2l36OECx}8?kcl$RR=h)-#RH z8wkw;06LhV%l%t%^Xzc;Eax!AMJ;sg4PY{QPpVEYh~0my+C&=M)sy8)cRWMlx-HE~ zq^QW4HiD=UtbQ&%)8AsHVT_}s3ZE^ltVJ5D)XgOpM~3W)Mnjc)H*U1QYPu2Iqil`v~R_f@{hixxW4 z5S>Y6@3IL+ffS*Yo2m!!@zWL8mIn%|Lv11 zGab&9PRcJNL%mK;)>L-oPGX9FBgrY_qn5j_-i9yN|b^@t-IxljKjC&FDGPh{ zc|T>uECZaXsVb;-b)jExQ9kzN{%b?M(Sc-LoR0&2 zva0m-vUm!dZt&MS0j4v}Sv=*vFUJ*&*y$OTV`+OPhSKBVV23`h$_iy*76t3`-bo-O z72@2EoAL?XTcAySav6TQcsl=y*haZIy@MK%u~lGFd8E6~1WBXeGxZX7e9wGxw(`B+ zTS}iT>(I89qNYzTy)Iu%kYdX^(b9*HrvWJWV~A&dBsp35QO+#Mg&A(KZc}+_)UW;z zYs>R;h@b`N2~K#*pu|=F++LObI`YGHCJ@@vm>OXgxlcrat|`0Iy_M;;s- zzZ?!-Kf?f?kylt5keUDkKh^B9I_t(|81~TIZl^Bp3tb#8=WGzF!F+EyW;4r{x6RRX zvTIV(oZMYMvuhxW%XfH~@d-|KQ(5t=vDfdo1j%hL00Ov>B5~{dx>jx8^(X7Rj&wQR z;;zd(qqE{|X|#>3O0Xugi$&e$<-V7?6_zA+5;P$1w&H*tZQ2PbqYPMuCH8nXIHtT? zNoCBQGZETn_vYxd828&CIl2y^o z{jZ~8V`e@&0z2CnUOP}+aOl?rrUdu&@gJwazv;8nEWcYjGEUN_ zabTUn0PaM{&V+RswU}ZD1ZKljF=}8i5MwG8f%Au=&~+0HKsKw#w&VQ^TT5(+a5M?J zp$l5IvS};W%m(|4bg2x5qpReP9lRiGBu9i!(?N$-Ji3ruU?M8lM!XS^VLs9Kj$37t z(KyU*q@kXtq7t2BPa9FDQ$}YCLhgP>yezSA~NZgiNi{OW17t#Lc2Ba*#IL9AL zOaV6eil(f@cMyv^Xg)0I#`hg33MboUF1KCWcG}5rb;k>rQ6#NY2}ml#b?W23}&L>ofdZP#*s z)$3{GK#yKjNT7X#U#YnZiNn&Xo!z}@^UP;t)(A@n?xw#IiWMq=)cCESL0n5?az=cG zhZOJ+WnQ=7AZP>PKTw7MzC*V5=0!X#m;lHNaausb|t zrUj%x5y+K_Ejq;%sfe`Q8O`#XRAVb`!BnauMV1&!YLbO!ZDDPoIplZrnnM2s7`NNI zs*JinHKH*bezt{kBNB0Jft0Be(>dlnx;|ZZ^%o>kME!2a<&aO0g;z;H&spK8ylHIu zVYWcUE;jl7-ug1@gnh15Bye}!%vtK2i!Eqx_4{Z2bv_3~&6O_Pb;1ZQ3ejn8-r@)HwZ{%S|qD44V zrZJ*e{)cx@q+W!OXq!fB(%)z0CyNTCD}ZpAi;RJuafR2lNwNn=dD~jFjsE}{!01$t z=nki!?5|vA?`bsA;!WkVD2_f7H3+0(cyk3xp)IN%b#f(rdj@QIIJmcJrPKex?HsA^ zoSM2{sZG`8xz6VexLqPUrNruIhN0T7p8ax14SC1YKO_4quqFc@0;QORlGk7Q7dZA3c>86FnN}9QP&*5^ ze3$4OpV>X7u##i$Jm9qzdqqV-9^2`)WtIJS;Z$lJoL0mYJRnyr+?IVQv zL@a%r*OpBbPz%{69@6Ym!q7qy`cE1MU*4>QeO>60%|c7l{6_TA8jkNiF?CM~zo>_z zw(q!4URDKJGo3tO^}_wec+Vl=Rx6M@ziG@PfbA+JdvxkW+iiYh#R{=Yq`vza=rHqO zPT+jmgId)%JNHvUV6MlqEJ`~OJ~3f?u$u!Jp5DGP3am8u4U^Vxbg~V(Gzmi!MOa^< zjb!z&-`}8|_w#`9ILWVOeBE!p9juh$n5jkiICgFjy(Y^9^XDiwPF9!Pcr= zI~+KTcjeVg>@+LN&yYtI*aqmQejvBC7GsN@_yQDbLKAUubJf<21@fSpk zPBCJzn;8NC$HI0hOoR7`oF`V^$sz?&hgt<*g$Lq@pP+>>i?1!=&-UUTd0@n_uAhxO zg4DL?UUKuYpP>V2QzA+$?{G^W2mA_EMvll6{3dZK(yq%GdF=&g0{ zP>{MImv*Orw3#s#_uyi@_%0)Ig>k^YXLwlCf2YF+!`6M7wwi1jlqV*5Fm46rdokIT zr(E*MRO=man&X6R8`|HqB48~%FWIe$ekuzgN7V5uzaQNYfV>^sOITla?rvs>ZsEAf6f0a03Hbt(7C z+n}J*o9Uhi>l!5mFidvy+zBpv&B;iD;B?}* zrjh-z<=`6fS7l^m%NHL$heoMHKa*dB{w14(-qUs4FTfVkpD349xR)gOwq$UzlaCvb zl(|z#*q(1DsNNqP^#b@=zHAR*2Ft^Cnq}e^fBaUV{8ODo=h>~{oR>`vBR_bYxh3ZDyV2*I zsx58Hjp7c}`Cu>^Db0e(@7nzZ8vr9tD%h2MIN<%*NmuW%n5qS=?tC97`pXo+&H5Hr zsd%HWYugmVQqBV7;w55ZcYxRdbhuQM8Wi%pr-F4gRsM|m-TQ4k3}Tb9j6x}Qz+rV& zs2wYddspQ~$Y**i*^;t?4kKzwbcU6Y{nKZiN)de=<9@4u%i-c@q(7S4X=aF;3rHt3 zVIl$tm)BBF>W}21B(t5HiooKs?sNcE>wmM{xTviv$kNv^7n2G`Da@uB_nKcwVx0?& zsZ6a*82InXXD&W_CgqeT6Ow5r%(;GQU-L4r=~jK8T5fa*T4wVjQF=wP`;vm;EDX`K z0J9=BiX>6lI64vg@JeYh$lo52qHwbw0?MH;^iYe?v8f+#c;ndwQlu#99%bkPnw6L_ z>BUVB+aT?J4#@xS2ee^kF2$E}hKJt9HAC%(WG3YfwSNLszMNCCT;{GoT=O z3M1UyHarUzwhMq2iKa_;@R*LIsNhgPNx&N^c%D9D661u^K9}x4fveU+_Xn-pQY{=KK-~2i=ZmnGKUA}9 z&w`5R6M}tgztkO~?3}dxno&3-|*pB@$s#vF(r5#P2nK05Baoi>wm*8mZ{ZJN-f)He6F$H&k z8@%U!&5U%^sbE4BWjt#Smj5jA{{_kFtRF^MB?JY~8_tf`+Q68TgjZ)0Es3JtUo}2U9bOUv) zBv2UuCpifHN6hhIQMJZCoS;=KP7EDpf!IH-HBGA?nGCM8mr}SH4u>~zIx`q`zX%^IbSPT2Oj9s&Q`xYGe@wYcI+!qAtEo5=PGg>n_y+%1^K)zy86)Eey=O|TR z>{_Z%EpF(13WXy5b_P5evbmO@>+X~e@2h04lQ}BCG0(Ek?|?#Kb_u>zLf3w(ev9^v zN3FeLqB~Zf71#1|)JHyg7twKiuJ-bP zt47XXP)dE~SK`|(3b95Nr4Dseov@yNslI@=ysv_bXI%L8_igT+F1K4`0R#zoQu9OWR^UvH@_J#P() z(~pl|(T-BG0G)bIuCVTFa#ccqh}iHGAd5|PY)GP6ZMZq#O#>cVczTfHSSinS7yevj z@c$@#Y9G!>5BSnxBMfgaYqANXy#g)i^|8|3!~Gh$4cMz$`Qk$Bq@QYX`eGov`!aTy z9GE#-z{3sEMmobE*?~Pr`pi^1*oHH+EPqrvG{_XJPiZ60pE=WNV&c7VS3yHTaJ@aR z!#amhbyj<4_{ZIj{#~RT5Rp9@;m)|4}ZcylI>Lk z;m^p^rI&r-ny>4DzY^!n*XtoEdwrHe&v3EypT!@7{R{~=3*6a!AVOlQDTQ29IZu@4 zJ;IDODyt6@JJh_@rO^>Nv!sK`pL301&{&+2IAtggkn!Z*Qn`e4d*ic{fe9E|6K4Fv zkzQ%pH$Jy+ew!`Pz#gke?P%GZvKYcIb;trD=_L}h-Ys?LuUaWsI!b*LLNk=7mu+X)}>6n zrg?+H*-543h{C+`1RP2JR#@dS1Il-ATk0v(Iy$|^Hovb(GVPYLe?AMM(iq8Ln^f39dt)1zNYY;E z8JrtV0YRd$Wd*712E}(a$5Mk*l$_K#!=M^Mr{_wuP18Sn+z9Lpp#j06d$1RyPcKMU zNbgW+Tgl-*LmYfyOXQnqclP|eE7e_6{3$*fl(i=qKc|teWIcM+I=m5RGr!H*hO)Y{ z!hm=GPL{F36gCPCUM^i+ZT&U}2#L;Ws9Y+aK4D9uDqU`B>i+Jbb^EZPNGrGRrTItN z3rr#`pnL`T+IaRZe4mSV8R|I5C`@e3{oq!(hBaoyFIAvP?HP8AmE{<@6&V3A&;Kt5 z$khTVEU)bQ^Ku$MtQ93j9+xuQpgpO8VPZ_m-VfeG6>)wnSIR2IXr{{h&_dXwKejuR{FDEA3Zr2;NPzI)5C^){T}q?h zHj>pkGer|=c(&=jiWe+^gu0n3W*S~1o^VCQv;E z=$?B}Tnny3wo3@S&IyY{4A@2i#o3N{BpOy0-G_il2!4$0Yve+oa(9byN;gF^NEi=! zSQz!-;*z$T*mjPQOd9<`ub}o-VXTn)og3p=!MoE5L znIf?|)Ug5N3A@hjJl=FmSN?X9NQ(5dCSBgpWc~z>NNw@+qwznl%m|8xzVJ;dN8u$y zvVGv8s)lljm9-pBKkI$eW9&tpSxW|`_f&)dLq;!4`Y?O>ZZ314IxNH6cb^N{EsQ^_ z1CMNoMHkC|yKZ2^9Cum&-^FW~d-MOLq@fn;_VKI^n}W|HN{s#vTR|S3SJ6DemM9VGM@ORCkOirREh-YQ67Eo>fa+?`9&@&WrssmY{4T@}qn%ULsL3f^(=%+SYl zit>$!ddbRVTV719`c_Qe{$b@0g<2EWXK~Uani%7PM{JnsG)UK5RqXkaw*wWC^~gi0mS{_ z-io!js?khB?Q`EJ9MyipW>(STyZ{TiVF+@+iUOC5u)lMCOXnShpXqEj$@H&@<6E(- zm{Q?MT0d(RuTHh_n(&K>QI}8?dGgl|yF_s2?-0joLh?t#3E-F)Lb{bSL5@${n^mft zimFf`VO>F*oT7d${vZ=ER=9(?xP9LL`h>Q5*8<+&EYy^Y7&{p2!y*j0+7RaD)` zZ8k6$MD1<|Cx2YS(2`_};&KBE@H&=v$@PQA*_ z&WQ(d8o_fK|M6l~=+XQnTF3B_xx$o1OEa*T2W_U}{R}4`MXa443N~7KoUF2QiWVPL zgt76gLntGED1LFZZ(Qw`3HSoX>FD7AXf~CSCRtOU632-$73>DEA&d&H7*Zl)!{T@1 z28hrSI`5|#-+HwgGJWX!u|$eujMYnY_Flt5J7q4DXT5p9rbbn=_o(Vt12@gUr<0vxy6hSfe>d4go9G(x9WGu|QZRQ%$&nEvUjSOdyUIfXz)ItbPdcwoE4zUC=AG$TqV88Kah2~s} zzIA7!&#^!Bb0E@KKAlz9tQ-O*#r9dc`nJqqy}r&G2^?orrPH|eb-Fr(7SOU8r5G>| zb--5&cfkM7rx-mh|$82Xa&x;H^NAl;!;4XnAL%C)k#3Oq=d z*7TD1q=8RcRzsCN)wD)dZP`D73I?M--#X7qn)V0NUeg%<(~)zY=gX8itL*hblCwW= z-oiEXNL|+hd}n#X-rrbT6&RqT&lEjp>9>cN1Iq}|UH##Nz%C+!)vtm?fpot*BY~W< z_**9yqp8MXPyKEGn+C<}+`u2?&uSF{7Kswe+IQpST7Y=Hx6^(JpzzXSAxLT_H;kz! zZL0g5WgLtu8=0^Wl6c-QTLNz|`%|I+9yrYGKPe&KbA&#`3$jA2m z2nq%H)Z>rP>{ecgyGO-=!&f*%sB%iCmd&5RfNu%=vfZr--Jt*;4QAf{DPY}PusLU& zR_`-*H>1yFa{ETp$s_!zT+L6_=Qz}Baqi}Q19(eXslQrvx}qK^4tG1e+WKC3X=T7& zOW3MD=TVz550R4t0jIABS$6aZ{k9F+6Xy&~m*|9`&T}h8_1n?jk^VItnw&gCbotPQ z_PaAi@R@O$+#n90x1Dw*^dint;n4jf6eJ27lsPV^ogBDIVU|e?J*3Y#vP(pv<@r|z zF!)uHSa#gkVp-G&&7;sxl=TAnVc@X#W<``TC z=qvEYKqw6Q8qoYxl)addm?>&23iH_(V15*3V}92F?*9{i7X9NyfKCQIc^biy=k`qt zy@yc(ruX3HmYLn0rTPydCR~A7wW|m!N|8~3hSz*lti7UnZ4kAp%fpz^B98mBkZ-zZ zWPEbQrDxCaiYy-Pk%hRGWG^wUJ56Q^FAAnzbd#7!LFS+Ug%S1d-h;76!Zduopt!A@ zhz%dO&CBd-1c2QRez;A}Xh~jgQ4|!p>N4-j^HrLJLPedlLE<@(0U5#$%z5;hYaHrigh%bexyq#e5ku75AQifLeE&_@ z5=)H2LTwXLe|hgkx3z}E8Aw)Znx2am_aa0^{m@>oy1kS-?xntyt|16@Qe(pYJ|+D| zr@U>97wP~cv$6r82`??ffI#`4ln2f8)r3fYQykqrg<@_0QYaZ&P`0NxPF>v{?4l^Ms-(Rr$D&$ay)`wZQ=~J zy0`*4uFnXxRVpB~>KA{sd0f+!^TK^o@yZ#E!FWUpx=#;$Z!QaZxF#n(6Ez5;jBJ9qkX?tU2cJFrE@ z1)&Bv6{c2AYq1wO!&mRulq_`;DI13=$kc?zOMQbjXjCL@*)G}qL(%76xfJw<%s!NI z-`)II95r2seBSC%Hy};!w{!h|qY7ILHl!)rJ^Lxm^#R(Op3ad=91-F@;(X9RKMhw} z`dD67Wo4Tw?;ZTDPhmGQcQTK(Y-#iHPb z-ye5xGYdMb^;~F3WuIR`?wFl3A#WUC-EX__xIs)4y@~6`W!$`6r-pK7g{m2fZr{Z) zVs52<_A+~CqlxzvH;&H4< z#UY1bop(Dqp4$rsso_$Y%D~D(e*DIszjlXuhF73n&wTw~Su?psPL^>S()X25;|6DX zeASQxBU{E=^OZNq21J?RyiLmnOogh&*V~e8;R6>w^Y#A!aK5f5MGq|_q&#kZ)?kI= z1Gofiok&v+kTdEqHyZ;?Y8m(2A~T1-V^V4rY(jLAty4Q0-$Z5$@cXS9yP9Ln@2=*>h=? z=0f_Mu0Dge7A=N7GM#~7vk^LJK%{NjHUs;GrR`Z;QK#C?GqzxjShXx=)(^QD`DdzK zK`fa(=qm~S+hcehRHcPdjGu54(* zV{wKvY*MAr2@;G6L&z(e@nYIMd23(mhH`E2pRl&tkB!KHS z`*1`-9?M+WoLjoLY({ix$OC?n(CSwui-F!gL-w5aYAD=@}un@@0f)i%C|X7GnYr+H&a5lQ~s z$8nbrURb8aT%v=H+Q`;wAL#n@_)H$a`sgVTG=@;Dts&Bn>!)eP<8~tX7uY})@yOub z(^t~W=HSO$Hi*ZvpC5`Aq8S!uf0k@WpNtAU$b(L0{snZ1zZ|gzrW>4QnAqmcGqym*6o{fOH?M0s zWBY&#l82QQ74T4{W!zO4(;@i@HP`GNo?$<6MY>-n_ZA|ewJRI1%2g^lXqhxU4cA*) zA5{U@YB$d51s_+cRm^iPAe;@NsagNGgWoSX0rpDZfb(a_C3fiA{-xW+;;`C$@nbtv z!4oj2INBV|!}0``P^k=!u&m)7kUX6%^En-kMf!xbxZMATt!Mjx(d<36_H=zK8hI06 zDNPW&Os2QrJc6zlup-Wb?AJ(9gEmF%*3zO-e7~+yqlMR<=hb!`I~*hZ&7PQA#H^yK zFRE>5^HIbU5ZNnzj<-#sAI=|1$eY&whG(g8iI6zjnl55*ZhNSyi;`okI*E6Bc}ubN zcvQjo&?yAwyD6@ZMW9oWF7M{mh@-5*Nh^>;m$CfEx_mu2G=|}KCdIgUz;Px9JOLgZ z2xQ1FLyw@Omg{Apke9z<&y@7|Nl2@>6NOVZd=6b>0fY<2ifNczRg2f;ta6j1e%YR~ zarb!|(|DRF*weZ(_j)%^)@$PqDo3bS2;x-wAoN|@b}`EOp6@vpTi(h_nDHMp_nCt+ zh}d|JhI$KYajW1dSHdp0Tg!~c-iT|GfVxP(KmGY_y7Zl50v`E@u;I@z98hGRbPz5s z1ObnToTsf@hHm1=E`#0dcf=0#LuzwQNIIYe{)fb!H-g5DqsusXGXJKD7B5<}HT0wn#p z9Yz13x!_)67pgx@+8CHhhA^Q3pE^@;V6UGSQt25cij})agyxVhB2`^q8op%NO}GjP zBIjfeTdCE){BdPWL>EUpwZJ!Jw}Z)M*XgZkj< zG7V`!N&XNj?4Zo_UJd!PEYAIO+K1*OwpjZK+LKzG@>i`bM()Nx&E25BJPlL< z1euofGi#o##)aE*W+%3WZ55c;{=4p$Y8E#WGIOP!TxKP3hq7LQoRrrfZcnv?;>IW*pZTo#_zepj1z%^QdsHAJv0f*b#9v3V2R&#ACKiZPc_jm&>o z==@RlGi-CK>N}w-6R0|0<#OL+ifDc>?G474H0PenXQ+fTkmLt4mc=uptUX3z9$>B0 zH#nlMC7)ew?4XU}ij_HQhUDDn3td%6iM$Fbdt6>8kx;`wk%4Iq^2P7HZIw7#u#Rk~ zow-

m=s<j*!|B&?{Zcw|vxxUcs`*&#iJl9kCc|6{3{c24O}`7Q zo>!hJnY$6**N!y*^Nl^qk=XZ^4&qiXm`JU1Du-8SYEc7Z=IYOUd?ya;H~X~akZ|7P zN`!$`m&zMSILw|1kv16=S+x{@dUH-TgS_R(IUDKH&~58rYUpwlks(_nt>?6u0HXZ5 z|AP*M-o}Ew=4;hJ4`%E-CWG2a_Eroo`@29RHgzwMg%qn&ruqPlM+kE zmm@4*8J~ZEhKinvI!Z80l3rK_s5CQMu*^>qZ-X1%o>4L4#A`5HKdbTgm)X)pUD0Jv z`U2gLa1;sYzQavM#%dLL3V>nGh*~rcAr{-PAalqf9ljFt*bLz)Q7&`8S9^Ci={_Eu>1e z^^o{)%LpDg6@YNM?z&}=jg5N0t6m|*@uUwFog;&I zOFW|2cuBE+#wiHU=kFK(22#7sztm0;b1Q473H^-l|A|)wbHxSaWy4vTBwe>#AO18H zIOUrDM&~zzhA^yxH+Aoj2E*M{0(KaYo28 z&O6WbN||+Kp@h11^K)o#B|_{o)$hr-3PiB`e}P<)yA9BFF$hzh@zd%E&N>_=_&24F z#97n1nCS~dZJ7ea3r$#+d__dBJ_ZYSc}@y1>H4L_Nj26vvLlkF0^pEw3deAkCi?I_ z&vctdjZep_3X&$gFqZta&i+aiPg+50?Y^*)s_ap#jh(_TH zQ5basUFG5R3tRrB`#(=TM`h>wm=xlwOyp(Bm~V&afKLetUQ9-u3ru2RRU!4u<`d&; zuovY==>Ri93oJ<3xs#Gx_BxG+pRhL<`^pt4z8D(3BYcCUb8fd_8a+IwL1ozWlddf+ z#rO$JE=@llrGaP=55MqXnBM ztOwBr`Gc{YnUCQ4-y^!F(m#f2ugSaT!SM}uxNrMEEz8wRf5%nhrA7HBnt?#-rrTTS z`$kWD?>(w(;;7;+Awko94o&QrcB*im{ zkAg%Hr(C~70FDPUUJA*N=veI3KaRd%(@;~FT;~n#p6kIqY%D<$^>+T~Q=1mscC-{z zR zGR`(OLplc*FY2=XSY~j-Uy4%PzK-W3jI`AElxlM(=0L{?W93+lTF$kik|+%O@Zfmc z!iZ(tXoEZ=uH~`seR%l)?%Xek{B~1Px0B{JOgjL=T!0Q!kos(u`kuxY0K=PPE3zl% zuJk)>nxkD@WAk|4(FdI!m5l78{L?XtU&$!y7tP)7$ZI29zR6#>?P)Mh^VA=~`B#JJ z84BLxH8HnFk2O;}Md?$;e33F#pf5^?t`_$Q_ar;LT{jQa-&H$5olV?JNV7u@B#lEA z&o9Vj1c{2~bd7#>&)5_uBkHNHb&t6q*e1D5?3S|$fAo|M-$lyoeV@j;oYS2vfiL$ipLJ>BGg6zY>2qh;=S;C{8EA<>G+P~nzt^%b`lY2T@C1|iZn2K!gD_9EP zGKlaQ=(s?}v*27*8(P;Mzf0w5{ydJeV-xbP?Li5St9qbQJ33W|2nRC+k~(B8B1}Q= zP_`JjU8k?htiGwJv3BSGJ1hB_Z6P^|UlCmiOR&&iYZH>A(pek@(#>E15FacfJ{jgI)>qdqY^YrR9F zU8MxR&0)Veni!}m3iTE#b0DV+G-}YDk&^duP>AMdJoH!PVa-jpNxi}3R&`uY7aBu+ z#De@`gtIo@HrDQ3#os^{-YcUX3^Ss@d=PctGdI1;fXvC#yULy+DJ|(&0?H5h-AV0t z1iJZ9^W__m0v;u$OX-2@`iR)@_>9EPzo;URmq-@*?B?gjmk1Jq0V7#!LEe(LxkLw8 zFwk5&w8Z`j)rBs3M7dhqjGy*1usj*d^?KcAsANb^3kHEbZ?V6``nv@2NzTO;FNVh` z!)Hu^WmWC5UYD-?fyoD4;yx;2J*&Eg4y**}`(gvYN>d=@#$`AI7jSW~DhIjAW7@zp zt0K%LooniPP|T-<9N&D%Bd=mXuUyYBT?Aq}QDTQccyf0KkUMvnFh4h_JrclaqVXhk z%Crn^%7^zmT;P+84Gq{ENnW_<(nF3=LMm0u$VM_3is1Z5(AOL*)w-#mdSLae zBcZn2D(4vg3*Mxv_|s^}5zi*tzv&3+%6UwQkb#+vwrul?KI2R_v4W2&`an;UC5(R7flH?EkIu13W?}O`g27Ebg8@Knh4ZX+8uN6Ir-IRz^jsT%i9J(_ zD5a{##N+{71#6%&&=u)jE`y>zRS1np^LEHXh5q02H95&oLBfe%Jt7LdJwm>*HU0jK zJsrMHq&`-aOno+&N+cg1J8-~1pf_UzlQxP~KyqL8RYGIRU5|D3mOZAw4`EX+c@{?X zl!w|f2bKm;;FGiFH#r1*V>>sX-wt9ROI6ZPb-^4OZ^}EfWG8k*_@oi9eRCW}_uCdq zk#}*->#W^XA9~_%&VB%h?=)e7J%t-CT^4Qv*yBzaRZm{^fV=M*`YgZn$IS9MFFVMq zU-gO`G8B57Vqhiu5~kMK-~NJuICOiE?I{br;euy0Te78~?LL%AeM>l&BB%^(5e3Wu z@_}txXNL$3KqPos6VEQ@a?P(nq7Ik3=550y6fZkKyXc{C#fznF-`8(2GM`}EXNlEL+%P3MI!E%_^=~L>f()5TvPx5kF#86=lM723YT^QmVA=gBTs0G@m3E8 z*{tSu`zA!AtZlAWFQ~*|En{={55QgAf@b`tg7pzzvucvqYVni~8!cNkoi<(Xt_6Dz z<^>GG@mc`3$_fs~yCSWNm!0ykLVjiXI}rh60xUVA{R;+%QPTt^g8XTgQjyYh4^c}5 zAFd3%0RKM#z^RK^?X@sc&np}AX~$55ZIXUw(NjIj5lBgA zw=Ei#-||KZVx)P*fOQx|xoyV^l;?*D1mHM`TcNn==<*b$WAJxae&pFP7?mpZaHAA2 zFVk9#UnP0yvS)J>DiTA(U;)NrS+L5C`ygW@J_)XlFs+8jIhj%D1r6Cminf`!7I@cX zI>U`mzR{9nJ~GTYy9-@fIare8ZHRi=u;DHRl%LT0~rEqE!NTYfzmzFJ^Ls z=M8<1LpOR+>AuHDuL-4K!wj|%`6Ac$tCOTmoFVt-tlcAOG@J>MWiv%G1*m3dmFOc? z0u_+b5a~|GY3S{4 zU=jH=wvIHeb(St8xbVO|aU~dBxHLt`)ezhk;Ht&;Iyw@oD@F?1o}8$mm2W~BOBIut=YZ(93ALWnDJ73cGd$n!rjh#TOk)X1Z8*Bg0&$7Z(gYNlxD zGLKqB^TgUnO32#$dQ|rs^;5T{iUrcQ9<$fWH&BajE6)I1msV3@H*n%+F~C#Pw@D^? zb8AS^>B~xs?K_BO)iv@fswS73NIyDt_rwy%<-7x^V?rvIz17hqSXW+EKwtEGNhK`q zG=7Infg;8oB?I53PirIZt!4CFpnBO+YfZBW5wPoAlD5U*y4QMK&pR{(G}eks9IiLHg1T0h__JHBA_krG(UKi zmzbg?UtjtqS4hrEJgNE+kUrfRIF0|>F;>(p5Ak&61y$uZ-g{eqON{KF-I=o@O?)Yz zm(}exQQl7>%SPmj_tm%dIg&rvC&dz0$8Rze6-P?xur0DP zDEyM6HqSHwnsDon&ZmTyB4(T}K80a~_}9p<6<$AKdrOEWVmBfnRu^Y9rGAQ^U?6_2 zyDGtPqfdicYV4|A<=G#luYMe7N!XoHZ7A`w4eHl=(4fa*E(#}G{eW>d$vak<2PDk$ z^a`skT}J7dn#a!&&Syw~o1uOi*C30kf+3}h&ZEd^4a&6M>gsf}cG`~jmuCyE(+9D0 zBl(WrPX`KRhh=Mkv1(wmxvFC)L-p6X%q8ek#T#P%M)OIfIwfErcoImp&E zccQ%|jh$e^oCG#RCB$;7dpleq1DwHwALn>6Ve^wz?4+>T_Tbcuc#u7~DzA8GWe`c* zA~Xj^sNGXrztGv#7d2~d!O!|8S?MZreQ-r`Lh9@NJ0S9R3-K8gtsjCfgB&Gbg#gzO zT|rdJyI}QDk@u03<)wPz!TYU0aJ=hF?!dXD(K{{kh2a{lB_8=khwVG?_cKK*su%WbJ_@L)1WBmG;H$r;6zE@!$U` zYiuW-n<~3hgSAlNp1~hc*Gu!8@n$`80Rudv_T*%0k8eBFYJ;o}}1yW-qBB@%^~%aA#;_T4>TZ#kxZgNe z#jJ3EY#yvF92*Pd>#z+mgmSA>aq6j{wqU4Eksq|`XNiar&`-oszpIGl$N6*=q@xZw zzO2C8#+8y>L#9*aXtdd~-Ne=Ig+jlxQRK>ke8!Wm!OQ>42Zetw+dIKNz1xkSi&W5y z=n{j_P+UTbDSC&pfW8-jO0$w}lA8F(!%#aTbr^uKMflYUC0!1mouJ8~r;@&4p~qqP zE>KdY=6Q((vKqj)<X~btzJ%cl*!iKo6B($^|DJGE zclP2q)6xY7&BCDLUdILGLO`Y0mo0@Kf4A;H;M^uZv^YSE58jUh^3L`fEqOOw0ZYy7 zMkW=krEmKX_l!J|k@_Prc9&We${I?^Gd=WGg?xZAtK=4MbZ;}-QP2Z_##g$$hwmK= z0?La(rh)D^PVAIJGS5VBTc?5Pi3+#n5CybTS66VK$Jx_Nd%Xk{CJd|VTI0e=^)>4W z6h#>qh!HsG6}Pq|?N#XPWUUsZk}8TMnn_-5uHhOU?du26&fArMwL?YKbRPM9dofA;RNKbT8`ukUL{kIo-RAm)TdZ6^B_9DcB?{F z(Et*>FzB-XZvEn_XtgvrS%y`ZzY41O@>Sq^a##Bh?2~5xL>2^dB9<4s}kyIm)@2VJ*{g z>;E#4I(VCVTINo@5isE_N5OHRV&2eHa~hNx2D1%EcdSIf#QWTJ?+r&{*4alD>~eB( z%f>5i@iE!*P}H(cJWkY4ePA=;?y7FC-EWJ72}%N)${}ewVZ7+Ou4*Eo;p7yQp`{KD zKN;%_emBkNlOg~ZoyQwz3SpAyhvo1fsvRV1rczz0P7qo@Sl0WXG!t`3y0VT#njsDv zc=RPuCmJhv{<4d>~wX zTMBL&ow&_qdzYo*of%VkTh$L4WN%Gq09R@IZ1`qJd$Afczn<(+R#j0KPHqo7jhG(N zzu-oZeWhGUz{3EXq_21wBin2t%B%M zq@Fobt*dJS0k6mQbo3Ir-8J7mCt?b^_KK(wT6am(DV}}yctsWJI$z^`=1n8~3O0gt z=&P4i4rKFBNXeREw~p8lmuAVSktdn)uxa@_iT*0Yrks_vhmN>lIm<0UP;2(fDEa2Q z&fa7AWC2xd_AEYmLkvX61QaMeJ^mi1lah81&%8XUtj8upPg+}@DxrK6!7Ch)GK*#n<C@f|)w|q+q2KgD+t+-RveWs)_L}wBe>G(w|EZdrB(sS^#Z4b)SMF}rZEVv_Hj31la%0ZAEgNT--2*W7 zza_^G;tPVJ4VU`zqx%V6Uqtw!V}Qr$U*-t&@;g$#{4Aw($NiD;662y~4^TB8xaAMI zrANQ6=1>28b{tBb6Mnp3^aE}LlQ3=1ggPYmWi$Y|2ySut6vkDh8=$=vi%H{P7=P@6 zY)_DBzt>>$R_&CGY63FhQ5m?Z5G+lNMkn=bifTv#rsQ{r*wERM^n|@;$TSj|>nzsy@(%|!yT^RuWTOf#^clN@5Eq8Orr==%=3OI5w z_@IU6-9J#x-l_|!lof`a0I=iHaeFw_p)WW>Ny=kczFPJ4lCce56V(X(k#MZ4%gJu( z@jfYA;Jx0Jd2EvZCfR)$xSn6)+Mzmcii)*7d{lbr>SkksK<=oPC0EJ+diPTyjg0iz zuVuebBiR^0H&71LknDuWbN~l# z{5uf!9-4M%4iDRX<$`4c51HiTSqMFWHU12re^DdnPxO54HUGG`d|TMZrfI6kYp#TH z4eDuLq*R7XeP5!XaV;6>7MCty{sAe!==q$zb>9NWzx|^}|7@tkJ&+VVM}qISMv``z zQt6v{MZC~i-1htnJ9;Yt(q4H%SkRb>X?OGgx(Q))gG$I+*MDp4%Q3E%U|6g6_Frvx z{2y3ZdV3~H(y)FE5kHU3Cs9PYzb)VM1`C5<9b zxHf|QO0V|1uL?=7Pg)ocBXm{ zFTq!w$XX0-EO#2Kj`jkfH?Q^B6JB{!SLIb$wc!apZyVR(JfwD=cm7 z&ompY;1e+`QR@h?a@A9$DXQkYVQ|B7q8{_^m$00vxANP!XoKaR;}LSB@NXQZuWOP2i@Q7JrjV~)Sw@Yr{vXSF`%JC)D8%E3f zbOD;M@|Wv(Fr-h#lPvlQ&uQP)}_F*I!LoxNd4K zXp#{R%7{{tVJH<<%c+W?c9U-UZy%7Ub>^!- zdtoM5%aW^*b#oOXu>^TMO_VYn3q-bQV~MoH`(Z@q$`%yLhs?E#^e8(P zOdhdIUoQF*4R2yPYxLuvXa{q|4YbsEo=J}YSsQ+*x+04Uc5i*kU@F79mMsLBpCv0y z*n5ihhg0P*l;(|IpiB(Le(`-gjw)A0omxF=3kv<^u`!R@mo1~l1@o(*Do;JfTX#?F zMkt!^8ZyY^wZQr$Ie-C-d(TR~`T!r@A(&0vM)2@)Bd1^bLA4*+ELmGDm_HVfBnkZ1 zt#Z6M`CBh?H813kS#BPn_luZW(F`dk|GO$E95O(#pobSE9)2hTP9`TRiB`3FHs?FK z2w>@&>I_19m}-Ik6aapdxbn2V(Yd-%miM88Gp7^mLz6LuEj?#5<#pMv^2=?vrVrnj zPe9<%+#z5gCNuUrzK5vs{JC9+nsUs&l!)^vDVk;(c2b{X67tfIZ!PL^IRrzz_J1?- zRkB^ip57c)VFBv7jI3B9ZZD~5Zo-`4k7O*OxEzd;C_)$#TiRw2Td##NAj$O>TZ8_e zeEsW4lCJ{ME*#EMl^e~jxkErB3UNlYTi`kr9Mc0|%5oP~n?A^USRsi6e6X<&yX@3V zX}xEBw+CFNsh%;+O3s?dE#NGY=M9GcCI#NT2^UsW-w~m5Td^62|AxSWw+%of%Pi_N z)drlS;XG~mu@Y5`Ksz;O9}*5_U?1T86w$LT;$tv4ku}W5IIB^BdJn2MiZ!1%?sC>IrC)g{ku^@J>2_xGYR(?}cR?yw z%~ZU3%N)n}uLV{J#X_*F(VBvZ<6*g7A4D47(B1Ayc3a+5Zwr->&fm{ZZ&rPJLe*z2 z^q~~0VwC41yT5WEQewtV<3@D48t|7l`q8vNv0JBV3n&79nSIf zFo?4mgs|-+k|Rf>Uwy~@g;IX#v}nT?!mV_D5^I?0IT zT!sOSW;9U72kRBxWEAVjYpOxYZBMFHY0*6{R$V z?DF%L1L*t)F$z<5fVR|2Z#YF9SMaw8+45!6?Ku1iF%(lj@Kp)771;-8FC~%waCw zDq+j>asFsd(|X~*e7-4fe^9ffl1McETbb|fTzSH+ng1VkkJzWq0}$a`(d?NeTQ=Gb zVm$9f+15Iu==L{-zNxP2HHB%k4_doUa&r#BD-P{qTgq2!^HD4hyIpioeD z^d_W3Vn(g}aLY!vsqlmRhoF-106diLk~GpAY<+jY=?mL8=GxqGbk#;>xiuln&^Dklz?=+uD_QZs)J#*4QuV~04C*3b0FKt` zgFM7>EjoJlM{4myr>0Kg=c(>v6_8TeT>Q22Pv+Xfh*0sGCcBavj>HF8)_<7@836?6U?jCA2v70^3j^i21AAPZH|H1{Prs zrs+yD9lb1iHj@|$^X|QTOF6nB!7U@pALCYCnFpw+uqD_%! zxw;x|C^|#{aDGh>og3x2L3H1l^Vc3IM_*Ong!SmiP%cN@yf>f4y6ITsc~ABQ@{vym z7dnNcq5PvgAev348M8A5L=p@3X#liBm0+X~Tzr#Xm-UeGkOyZ)ZksA_JvnU?6WRY{ zk(>seKUw;6byD}^pg-IYYhdUq`duI^2{E-iNymL~^ZS7nFow$8`WF)RFOM)fOUh4R zlM;PfYaj}9=i|KQZiv0+sQev*!r9>bzR=wj+aUm1DKSVUB+e8409K0*KHJdW^0LW; zulG!^y<$FlgLwEB$LJ8D=4UqXT6%119O|$u+@K4F&Gv(0LiBRCan#`ggTl-|cU#QD z6@e+c7$1AC{UI-sbnj>0emGWk)8~%#DNi12w|7`TA!Zd}TPKT3^1RTnO2QN^c8WA< z;>N5)YW@AccHMU>{LtTZfBjRa5nSNHn%ZqtC?yu}KXnXt36Tg6=q7Bh1|1Fybc#N>jLee~>^cm!a_c}A}Je=BKWL24) zL)^O2CjEbUsGt=?Hc(<^Lfjx&5gk3C642f5anA^qEYbMgSI7<2_2SKK7Qu)zOxZIU zn2Eh&tb6rj-i4OhVj8kj5{gLlcd^LtN=UB7g|Cyx3LE=>_kpE5w^8*z)8N!3XZ&1c z18z&x|L;~wfq3O?-B@ zHc3SC;M5J*ccLg3 z#Pi+0E&X|#BwdneCP4ud0Qpj9y5UR~)7soU>|);vHZGm_gi=J86N<61S6L}^V+miQ zVl*+OZNwyeurfuEpUJ+Ng30IhH-=z+9;nzL5sHBOG#CK7oX}c>2>9qH3Ft&6vycQ8 zrB9dy;9Cw$%hjwIa6GX+hqbyw4D-MY$Kb%qe|8_L{((%y1ZpD&S2pcp2|iemrzg@7 z47@TjXzA^qduunuk`*zH)Nmv;X9D8v^!Yo!? z2Ho5BCrTDWFl^=e2QN1HTpN{~jW6nvdDO2|<``ZYrWGl3m+j5*uX+j0l6gY1rCu4s zXhEzUB!v=P!9=aD%mS-3@d1F(>IMW>YNMb*>Cm1bVG0OkMYZ_Xl2(NjHF(K9Nni-z^AMWo3^and_{J-#QpZGp9VIIQ=W0W3FgJeRCn!6(5b zEgvW8Pb&*U6$mUlFG}~-=uEvGu_5tG(_v^Xx6|LOAsx<7JU5h7({% zX`piw!N=BtU=b7=AAub-jexc5QztAIs%+!k6weC98qlIbNYGskC`BmMIOh@j)DJD- zJ9NZDT_-Z#9(L+(z_zj^V9r9G#4L>N=s$U)gA12#hlHlOLda>>aW5p$TC=tn5X6O8 zn|0R}kz5c4E#3=NXKhHZXQvJK%WuM@Lp{RS0_Z-&*gk}AXhvMaW3rBLk6*60iHAaV z4yDSe?Xp6_YB_X;;QKEtCV#4St;2Nc>VBdCH%V*@*O|;Ng6W~Kws#V`IzO<05S?oX}my)%H zcodvK=$9u8e>BB|u#W81+tVZSw*HQtXz+6fwS_tAv_-)T&_`hAh3qutz`m zX#Ps1(LDzy;}msywBIMS`@`HAPuXLraqN~@}UtV?JM6&+^se^^k zP`{?%JK4;~f>HAksI*01M|{L_Bn-ej`lv|dV+xF%gz1Qljzy(iuRcv8l|d#J6wwLU zxU4c$A@~-#cbi<3M7xin>^|%e<+Bgt#?Q^#x^Dz?mZ!%S6Y**Df99k%g4BUgzf@lE z$0|YXLeS~E#WQz1-0e{q8mVI!3*rZ;ie^*l$5M8paZ07-xnwGS@e*#i{ZgtII{WcDDP!Pkb}L35I=+!W zP{Szx^C`;&&v#jeamfdge@T7?hW2z7g`jhIyS%MN1saxSK9Zf)+K7_3gg{V7AJuO*P z^kdYYdo6q9>RuRFzM!|F`P+ImcP}@ubNLJOtY?BOr3dTedvMZC5N*L?o2`^>$|0g)6L`ohx%8Nc;ah?pa8E>OhowOn3UP@_Z8W#a{f1>U@J65mf8 zqB(c^U^q-ll7HD7J@J0uxXJN$7LQuc8pq6oGu!rF4}}m$=V|aY zYu}o`Kb!Bf)oa=%$ocbj_7RsVCII4$n(C@6?rgYk&qZE#9Cyq34O%p%BqW4gqfGl# zib#eFl5+*xEN@bZ;~JadkfCsncozgfLpM#`hx(?3CS(3IiHW$}n%TIPe?=_^E60*6 z!}``LftETp zN1Yt+q!k${*4f(d=slLtUO-D|a)UAw7o+IeV_859km&g)d63}^Gal5iia(xy0s!ob zLfxt(neEKH(9FN`1as6{$ldon0niVob7V9Wqr<0g&3$clgfpJ8#wkfjYynnL%8p2fH!d@3MF(?#I#K#M>KJ4 zg&7AWjoJe~9+k$-$}}@DtkJIpi83bb)=OY-N!Sqd0p+NY^TwQy?xxw<=P%K(O1Toe z#?QUqS%)GGD8YGIU@?-_GCPvDzo)D&SxX`J6vT_TSr(&%X9oA~P7%`D0RzdUrEs0d zkRQ$QwOwABeOltQb=#2S**DCx_Ox#u;zC~4fg@xm$M(zNmP~Cyfok*G??N7#o4+H; z)J)>xgZI<<#QmdJiniI@o=2srACr4R*zW|FejI4AKv@# z-a_Ro^K?fQ#Y1OZ01>BABg?8929wcGxe*Ch4yonBfh_Wr{f`3^>Y*Zs_|=l!uDJK0 zr@*VawndL^L)wuk=*HF^@6E?Hi7t^0s}ay&>rf>szgU*83~OaS5Sg-k6GicF`<<^+N%DQ9A8YZ_o_e?REYu>1gH}YNm8f|c(uizl z-pE7p=7=?Yxtx}x8zt~l@SSwLDS^ELjku*FR&XIx-_)%1Fx-&P0+Og4O>aTT52O*_ zPsHOcIVHt?JPSBymcGh(uul3z5i==ZsO^e-LAxBSuZ{4a7K{+{=iyX3CR$saCt`-c zq+R>QC{#ivGSGHhVcS=ZYTrr{iGlp8Rm?M|mwsN|obSXx`167jH4@O0Fz|5%Uu@Pl zWvCTN;LEDzSMTJ6jre__YYsQqXec%qdtaMCO?)=yY*IJi@S*?*D=A(T1II)>Bbxr= zpxn7Ney~hCt7OcZR%XUe2q;hiYD}(Yf8)i_;MAZF9s>Zu&2^;1uKynu55wwtvHR@i z39pzn9pYdbqLElK(W~KMPLPdzNM&|RFBuPP4$0x{eVD!I7&!l@cqn)F2+poD3Fahy zIB(}}@e~2X`6Gq-%x9}Z4uWl%z3jzeh%)nE2T)X`9t+P`EiQRWz(J{=qIux# z8`|~=9*&(hu>+M#yh+PRscv;ON8D8+v^`@WU|ij&l5KPSj*DQ9it}80u6da;3{(4_ z#XvufHj5err)R;@Py+BY+L0Ye|EB=(XTZd#-2#+w$9h&Y2KY!L=&sBTJ3|BH1+P~% zQd%3K+kv^tRwy${V;8aF;|$gZU@D^~%BUpWl=gduvP`l&U$}I-4BAzrY%!R2UKsvf$^ob|9W02El}0McrWSCrdWY450*?fyA+^^KzS}N6J*de zyY)BMQs7&l;#e!9hyp;0sLgv4v?UecdvH&Ny$*q7fYuWnF<<$w1UTPB9wd_iX~}F~ z|0;4k_v#-C{uAe*Wv?zj_bs+OlP8MY+N1J=e+?X{yu$W)<=-DQDfuH&VTOCyRHwP4 zu-U=zmWG11Z$NsqdwTNEYsGI7S`FOMIF~~f^K~3!K5Q4OVf|SI8h|-E;6g&cpeu9k zvDt_J^(|8GBUiOmV%3$EPK-icAq*()AHezn66tf&ig#Lea;9X1%rEj(m1aw3udVC5 zS=I;&!B?z^d7%hcW!>|u`jS$K)eDdhCvHHTM~Z>(Wd{i2Yzx0wY0EtQ>^hz}X>q~; zo9kfJV%elmlKg^Sx^faz1CxxDW^&zlC1e&uv~-~IELXw=+pp_r%QIt&)YNoTjK-u64x&=o$br;eJ|@~wC2Ic z#{au+y>Aj0F-wD8F;e*)KW){O>*>AV^8RtMEh|e0K9|^_PuY`^89fxoA)#|C6WL4z4J@bM!rB3rgwXV1{llQ49mS% z75z2sP|z|(;m=e!A~@q2Ya9yp?WsvlMGV+KHP`yTZF-khX1-V8dqr}i?H%>WQoZ@T zD;6NxS9~YKXJLo<%(bDrW-En?xDS#qR~SeWO=&wV1y6C3q5A#Pm7)uiNjI^!mB6GEj9aJtfVBG8#ZnX~?scc`7Q2C9ALE*n`h)fAj_g`7j2;{#oodT4fLlo3kHBfA1$ z+%7svgzpU|YF*^n=oyF~-6IZhL~{sL+!^8DCltk4qz7V4zqUnL>6tFlGN7vVdp(I@ zgYSt+GEAiTjt5^fzrrk-0k6!5P<^Tyzw z+!eHj_W;%11VxjU6Wv-lQw$g0yb%7daIa0j6Y+{edZJ%!|KlPl^!XLyi(%m@^3N7! zf<*RL#I6G8tpr5Mj*2Q{{)O5R9OG6^J@#%5O3)W(&86f} zwAfV2T9jX)^s8p`NtAGL%bP@jm4wX_&DZLSM4*$3A%y^81 zFQQU+D9r3M=T1gAc@7N0rzwaz59fcvYm71-D+|Xm3X~yobp7X?-(6x$ox|~r&~>Ep zAF&0)(&B)CwdNj9CWj`X?Myt`F&GDMVlOKr0a+FlNq+PCWj)4Z35``Jlfsf%MjE;E zv1<27r^ZO(7Y)zYL~d(`yspFR;5A%n9iY;-d>bzhY-AnCQd-q6%cg`rk}Nax-}_FT z$1aj$Vo#+c)4*6E{#H)fUdAR>E(#_>%E6_)-gDvIl@|dSY+_a2kZx?PcuIV|O|YQuBglAVy;OKV z8p#2?U(O#LrhNBGA5`L~GbA;<7yb(a^!qrfB9i@szfAV5V&z{wdHzJtskPJaBud}f zzq9%@JnkUag3>uGBni!&d>C&EgZ#YDTo_L6V-G_uyUX&x8X5CfbKCelGKCetdI1 zhoOv!I(zVfO>R&5wP&}RlRS*eEBb~un8ayO zZXa_foLj&b)$4620j1?1JO%rST1xO10?xf9U0R>ZN_A=Av1xo*UoEwzeQWy@MZwUU zj8Q}d?{f&}sKXO z(@QdRWkq4SLs>RFXb7MZL~>4SEIT%FYS28aFc_H9^K*_(R2QcC*d6MIDgDnd3M5E` zMps}^Jn5udz#vPV5)**XZ`Bd_TBpXOojATxx5kRLOJKre+Z?@rkS7?J2i0o~#%|-F zdN~>sZqtXLBLF|YKN0hQKHo@vb!-~n{c#*63s2s|FZROK++>5OL2_gfepU);6YkPh zdPrK5EVP5e8H7!cGL^R&0w~43t_DJPD;2NsTl8W5CN`@hvaaB2CYLR~#agPYPay)j zJJ_l5gx;RunEBHhYPV|E#Nnz3#ey~hQm-i9NmVt4zeiqz@Tg4>x}FdEJihAr5qCawR>JzzJmTh}%`y`NrZ z==^ZIlndfA`3!4)oLjT5;D>y9hTM<|l6^5p?BFc|{GYSDLA7ta-$*6~(CO<;QELS8 zGOQaY`Xp))(-K_2?e&-Ea@!e$cb`%T&{W)XkE0HX)X)d|>o1@6iEN$>Q=N@%0L>u` zmjUf~L@SiPHEp=4G+|_o0h*>74rC?)Ut0+X znr_tl_aNxQptr=NO7NL;jcA=zg(EzIk_#Y74lW+Ko4b=|UtjRIrQ|%?qlBh1K$l|- z@Ln~9|1dgsXeivUYKPW98;B&e<2g@C1>)>*16)7SD#XA<|L_SRw1bY_^%Mdeb3cjv z+Tc^RBDw1^F+CJLE!Ie!LYs%5CZDQ6c7JP5mOUF}1_u%Z9KwYZCcD7>o|jNKIXVnN znd|XYFpoIRt@}Z|v@>#|`9X~I{o8)eDLq%d0ktGU#i7GyMWq2B^S8s-%8K?>lN(dV zIYZf)H(nvEKFV%T6JRfy@dmuEGAsZZs47}3J4lw3Iy!$R!H}hZNe}3c*F2u(*LyeZ zrd~e!O4x4Ex*mYr^tf;R;8w;_&c9&mSJA9%IaUZ{5ms!xn!zumeJR&w!-^L%M2}@( zma)snv|_pzCUZ3i@JD}%){H4y`^0<6_*H8OH#o@f?#i%l5C{c}AKh@{$IrU0|3o39% zOvc*eK0XucFBLLHj(hU+MU7_! z4~VZ+pgKC-^k8$b0(gXVS@;vSr^bGvN7x~K=BdmumdzBL=guMb0#DbB9|cHja-b0o z1U6AdhI&I+k%grKMV>qyGnUE)ZCzV{QxC-MV&Lvj;Fx(veYnzeo0$&lGlRMF&E5mp z%zwToD1=#^gbc{^IW8SXq&&XctwKx+d?qLUY0PWg2-+Ud?pP^9`h*ioOKg;VB9UoSh#^&2XzL%N5BRb^c z9oF@r-c``M(s_ZZFrJdroaWPsS-2v~cole1{JoS1!Qf+_r-?Z}6CJMjiGY7%$E}PU z)b*?!1*(xG(zf;nZ$YtG%Cw5rxI8VFz`zvSMJeAN;75t2t8p9puugm)vf`2&-&Yl^ zxQUwwRJ7>AGY(`4X?h`}T32>bS_HmR?nDt$aubqBlOteKRf51&1al zYbZVk=3qx&Y_+g-Vji&@Lp^K97B*NCtd|6^e66gQB}wjz9P+?B1Sl8mErNe>{@N8r zrBxS?sT@Q9nEX8KZ#V!-zS{QASgTeohH~i2XQy?t5tW&c6}OLg)9dm%4EA#@Y;s`KOMhFVzB-Wh(2iE~QdQ(GCZO$16WwhM4LeGM(=s;NcQbz5^U z8(i}mOMyLacTi7z66y%51Q)%C6(}(_NYNXNKFMQbl2E3X=WT^YF zGzDY0M`6y)($?f1te04dnyh*;TiFIKL&?%>-V<@$cx5Hh(Fy!SzYJ}3v)%giZqxPG z76Q?XDbs$W6 z{$`+AX?x4MA^o=tAt$f5rPj*4$zIXiN)L;K=;UaWV5`=(`f=QFgFplY(Q~_}@!9tI zxYukUFOHA?ovBe>O1M+lmwOpPKKOvEPRdNcDqIpwtvsjJ^Uh|`wes!~OuJ5~RQ7TM zKsfyo7cHLT_f^tZD5o>S0q2I@ROm@;fKSwC2M!+ z%bs-NTZdhzR^SFob?^rOWz~anvz(K+UV|oNQdKIKh<+cJTr@#;@KGAB$M6tBo%i!- z}7q$B((J=%L{9mQk&>DhN?7EH+WX!ZcAvRkWqh@S!wp4v|V*|AOyfZpXDL8x{`Rm z0tlSsKr7&H5ANtfs8)&sJ>}mmzcGFc5j#cc3p5bPDnMB^jqZRZ8V+gu(p;pK$9M!3 z=QR2cl7|B$6@L#S0O`aBA4?ZEM%>C6gT*cKNI*o znq*LlZ*|26$ct#V>9Ho}<*(UQ!KJeYwX&(`MQqsPuU}1bh0@NrR0E+|ZKEii^~{qd zNBqfzU0V~WxXNTtBcoOMWxI1uj-8%!cRt}G%~vl?hbK8Bu@zpIS3U|1BryiWNEX?- z{w7@*M(NQXUi0JV`QfnM(ZO*DwVoQn4w2*b;u_J6d)1lxxeI3$|`uUjC7=L>>*bjkayTl<;tPDxMn z;N;dE9~@Ze`S7b6ZvL)WXz(kVZi2C@k1JQ^&`9wf^*ld8K^7^oxXf*9iuM1CZELA$ zO*17V5N%%>oN4-@A7lXz1Rf!t0^RJXs$=XD_@f$6)N2MaGX-2V|(! z>0atJqZ+5T1opU_y#L4iWk1FaabI63I#n-o`iY=F;6HlES)uigdZ+~0BXV!HSR^q2 z+uKq*8t(M$KErkf(Fe+XN7bV*yO3@M_ZxxNTS?k4R=r~>wB?Y|v~DTvH&$=Z2g}Q1 zG8iE3ev+szsGvPE$ocKXn8fk&a;G_?97SH247;I|_H*^y4YD2Hb7eMmR#%u?@-~ii zXG`d){t}-V4E5{3iZB}r<^a3M29*~dBbWUX^~!~(!qCoU0qOO>dvP#86Wo1jzD+K1 z7R#0m0dA$cV{GBH0RKM#zyU{Fc3r1rF~IN#*54KaaIv9R1(F7W;nm6X0XAVh7ET+3 zSCzIc$V}aZUCITLdbem{6o#Hu8M3!;3nK6*8%a1<1kaO>MRPq%EaGH4Nz$)-DP(4LH4(2PmPZ`(ke!cDtu4o^Chv6mI9Hucz*CoqImzR zVoqDPX?Ianp{XfX1_3QLbEnT1heZ|7R%Gw0LgB8q*(9#{hUYOQZpj|O{EpW&sRQT_ z<`R$MhRuuf+uDbe3xPu#2=7EPyvemJ?jZ>1ntHg0(IZlkKXj( znCeHr^YHSc%0TQfHS9YKe@%U|R=37vQ{zymE zjm7!bftS+nb|{jiOb+7#nmb4u5lJPhAS{FV=`>93@2L@vE%AhIkq+DMXlfp`Ffh2* zES%SZ0?~(tGSYE}c@2ye&r&iE^3p?5uc?+AH25=>AgW^ipGv}(*Im2pG@bxnr#O%F zxvr5&CTpDpUjuRY{tIf zm$F}5=QLu|n>z#=rA9XSMzC45An6&T1>Os~pH2C^$rB*IOA&;7P(?jH?`B`4+X@xa z9;yutWz)U|nPH~K9*yqpQpgWgx!dxKKN`A~K3;P*stUobuG+(rAL!NJ^8jmi>_nqpKTFhXaHslv}!xSv86UVDe~Ns%JMpJLe2+p>>CR6yi;^TylFc9vgDdHZ)bPg{>w} zz5>b=mAwGCFh0L-PG1j%$u{q@HYPLXzK^uiY3kEgwIUdO>T|Y;ERV3-87bW)`J#o1 zFvo2GNJ9u;! zF{Ae=+ccon{-%;ueW{1!4_#9MENDHj7Q#(Jf6B8J$1Lz|OorO3iwQw#+nH%P;#86; zlBH_LShYJc#WA7oV(5c{BZuZ^xX-iS0yusRKl;N^efIZdc~EiSI{E*Srd0(d^Gg_{ z;34?&ZS%b8TB;?|fvAjUvmAXs*Iu>lU|HSCG; zm~4>UpO#Dlp25n6dI%~$3-b5w`H#QD8XI6(WPBDN2ON@p92aS;2h49{R|pq03lC>- z*RSM0|DB#WXYP|*&>**~fFFuex0UadXVK`H3UbD0tb~RUkUk?lDRgn4TBD`FkpmA9 z2ISfeQNyWS10u_3LlVg-GG%@}v{)2e!KC}wqF%=2o;ck6)*Jq|YX$*})SHFyn!EC8 zIa5{s#~H}-gZ)JB`8sL15Sc?O%5E2C6ZrO^m>@bb^KbS}(|JTNQk5?zi%_x=tfals z#Pd&ynh`YdOHi?CM@YDla>Bq>%-(F*=B0bV*(XW{O~}Xs^NCwrm@SE}s@>_z5` zYHAF%cY4ZyA`vc4y4KbUm^2Z}U=-BXbU4E)E@`r)zSh8gzxJNuT;1Tg;7^@b6#?LW z(i|Mq87S0k?s7+D){UENwdE4Afb7|y^8180{k2(q6gnF8m_3~F(g8|8mI}DV4MW>C$r(K$y!d;LKx5gy81 zj#PxTL`xpSFt6jfXpmj*5m7C-^=fb^E)cu+4pA^Nx-Q(|lp3~KCo!i9gzX1<@RYwu z1&W$8t#<6+qsV~seiJ;lsFa_eWb<7NpHx)F`+8Am0h@iqfB zA4pOQ1kWl0R_YvlaW?lJUc#Q=WC1Rjm`~4sEO;I+c(X3A#YlXa>FtIz@ss!+F9**T zlbOeYUbz9($)yy0WV!^bwrEc_rFr`2iwWVVv*@aQeIKYgDl>N>EAQ*dsPL!|mYAc9 zp>5WY<@Wvq(%frGmNnp$^5E)}VT(XRUAHE_H0k4>!K!WB6~{XT&KT3g-f8LgP~i&4 zklF!U(jI)gj#uxX8#d4w)mpkD{vwe&{eIGA6_uo9@)FDj$F1o@U&g)*%KeGZPm#YD zK4X9r@VG1VC+-dqfaV1`I)VV`E|$FDB-(WX4)07iz9Gq7q6{z3OxiG_!Vu*9|Iy|! z31dU37Sja>_6^V!4W*jiS=S?>aXQn^uNV}HWuSV#7>big$iGsJj0ZXGc*9yAh>-?` z+ada38|||ase;g~3}5!bo!D5V;#vd=(Hwd_3K_1>Pqrr>Yvi>RR85qHFC>B4V%Ua5 z8|t34&prQ4W%3{S;QjISdomY1a&gkzb4+=oxQAZPc{~4JnX?sgb6U_A!E#xJRJ==; zr1IV?zYr`(DU7DT3Vy*;R^GJYx2VDmdTe}}15uY-T?n~y0cM$AfQOVrx0pwt(jr_< zOD}^)1kd3)TNJM)$x(Q~l-`Pt&;>J~e6k6ek>6*mAQ|MuhGa0T5)4mIB?7bYJ7(2| zMpaa}Yrf^o32BHpXz@JUcPn~UGU{G*LCc z+}E=R)c#X8G&>=G_cG-T=Qt+5re}FdxRl$%3^q&|~_*Uwr|Eo3P3gVOPd1)^u2&vL>1K}_Wb{UK)?zWX-yr};VCo(|Q`JJI^Thc5y=-049T8u5tz zNloHxIQ!}EgXAK&034Y-$8rElXp&Eq+k3==3oWoRm4Bxt*W%J_;0`T*{B zb%gA2%(9;jPjh_n0$Le&*zQ2CM7)0}3^J!Blx5>2d}dQ0Nt9ZAY&8jCziGA(6(Pdf zNj@H{Do1!$u2mTMN0&`1d$i-SgtG9|20ERB#uc$8n50pQO%M4TzS*9;5%l1xi&=9Z z-~s;}CXi+um-1{Yd$gXQhd+bQ1{F82N>&T}84fy1kJHu3P%01@#)b3ehfETaas=Hl z$il4y`F;6Vk9E>A71Wo6Yn&Tg`Lq6&ci|_FmLB-}hu?$?d)f| z1UhjjROvHeCtdSgYvjXG&b>!Cyh z-iccdd%a0@3-@RVzSX|NOHgz4te9`1**r#K)sti!Lu?o3yGXkl19P>UpfY*S1yz#z z=vRgtlMM4PjT*K+3)_21toU~vUA-d;e{b@KjtWlMSma*-@tExc+~G#}QUbB5vg z9zW|9eYQO0XwA-78$H2k~mG6g;Ca~C$t%f^cJ-PholU=#Lm&>KbN zPjDWN?$e%u&3UbQ6$d#*UzIp;9K*^XAr2n-#lh5;D{WTGYP@eBVduoA9<8h_?2m2B zJS7ynTXQBiSz*jrnx3~V^7d`1TPt5m7D*Dm4kG?QX+0e{kuPH_IvYOa7CS$A!Pi}# z@}PR)U->kmXWeiKxD;$Mfo6*ShNb;&MvKwYVAEw^*Jq^F-qoE%6Ui?0k4%yFu3|op28#ni7iGMdMu;nWmaLTg2By%j#EgjG!7?LdULAK zYi8O3hRMcv{05<7gzvXy4<0BhOs3-q>UKy_7)-V%9%Dpwl9w)Z>D7Svd&y`%^JCr$ zPlGJj^t1>bhYF%emwsP4-hMVa^8H^V)Iv9L%sws&EDYIf8?H*=-nrR+hJ5BA(=3>5 zx{N}<$Tb3AfYe8U`K&2-@1~~1!}pK8@lRorf9>O-f%$ENYy#EM+oG+?d*6$Yp?lxKvUQTUHI!N!>xYv}>oi%TLQAf;a${D#_I$G8{_aSt`iMi|{yk;$eK_I>1n-D*(A^9J)0R zlzu22YaYgRTZ)+_xt2J*Pd8{x%f&^rfpyOb@j^poZmvxrpzuEKhMGaf{Fq)pbrh(V zyA_PZXS6Sd#!MHh-UD(X^DLv2^W zZAs2(YZ7fqwm6i1MSHJP2XiR}Iw_~_(7+swbH%u;j~l}$_uIJ!tf_sC{fDN>dqbM) zgoXsb!s{M~Wc?KY6ami*-z?IXTJmqY(_5h$#*gjMHz2X49k2 zA5FaATS~kU4Wlh?YfJe#Nt!_7#+NmQTdn$24Oph!IdCdSB-8`;q~JJJ(qx*zdqVVr zI}uLz)es-s{Dd81sc=+-FpJkNy0S+5yplu{YZ%Xra%c+TbbOAch;fC=d^`bW=kB2w z(R|~qaF<)AyV>u_RLzez#MlO+4hOS;0mVdEb8L!%3}Tyf{8e#Z^Q2^#vcZP{Cc%X3 z@7ImXPcjKKF{LsSTzR7Js_H*;u^Nh|>u2lq$h=VvD)HqZ&}PkD`?16e;kS`jT4J{L z$(rn zC-lhk-o;GQY*xLKo`!S**N+XUF^2=Tg-j`Q#;x}Dgd;i6_Sdig@If^V)^aLe_E+tR z8Do#i#GaPaW-6p2IF79pqs!Q%{YAx`-iqoQgFOhNx%P~psKb8P-_K~$dHCFE0NrY< z9jL_K9Og@l6lhJ9w6r(`N?;-*eknb>;yLDofpvhdsC;fN#p`WTjJ~}!%)HMOyS72kCi}IbJjj_kfp+{=#&*z- zMcANUzfrVx(RHUL3{FXslFk6qdY=F&_uD#qqUO?tfgt4{-q|}&ZxX5n?gmq->9~#J zpmD$m%~4RxP*9vE{S`u^202qb9#qx%! zdE76*p_l#0ts1C^A{s%q*_t*P4w-)0a*tU^2|LiyNp}g)3mx1e56mXCNjGE9= z&(uW_0w&eBnpng8JKc@5Jb$RYtZiS@#u&{8_gOwOo9c`lgOGH?$-qh*=G;WbYahj2 zNygYWOBNn5(gf$kgb+s!KmV?nDbkQ4RCTo1!r@ zLE}@U{7S9Fk}+IE1xh$Q+kal^sn|FUp;0@Qyi23Te@U^*hHDqWr>%3x6eCjy63kQP z(pW{zBgZL?_u9tzRbk3*x+cGhQ}UFfg|Xyj7!3~M<6-4pj=xJZ(VV75f|JR%zEdws zwYX@X?ewy8%CcX~r~#~NXoZ(-NU*zD=d{U6CtX&Xs@<=}!VB0BuKHq;*gt{IJvTw1 za#^$fKb|BSCc|8HW_2;80p;rWr&m)X_;(E)1?FjtrgzP(s0qd0gdUGzf#{dR)X9KR#g z%{)+>Spi~3COlZ71<|}TK&JN0spgj%oGIa6d-V%v?WP=I%^lOL7g`J zIXwaG{@c(HOVjFDs3adpDhd0b}5HjDj)|x+LCa~y8j&LWgOLL(S$kudJZTj_McSBLowueFNaU*L*OWN z!XvpA6-fjvsub4MuXOC1m8DP!(({$kdZ|Z@p1J=AM!&_3qhSdSll9VyQV(HZ@c4;U z-Y~k%Fm6?KcMsp4!71F%uw(iBG3_I5(hiQkMfP7oG>>sHu-ZD&lI$)b;s0AH&f7i# z4ScYwdqOdK{C@{4bx_8q5ViJBQjjUe1zbYmX8O7$-RvW!^L1?O+I#9s@AmZ?AMsVoL017ElXgg$9Ao zzoCldXXB417RC_8W2vmbEBVy1gf)J4 zpauolBu08k2N`BOA64@*rGi+Y;c7wcw{s|sL;m~cBS1`N84lI`cTw5&tl=KZKRHy# zg(f4$LfgeH2GYnB55$~xF1W7cheJ-o-;dDWDs(f1Q*U;HAx}Pne80Tf7m_ufd$z!}hg z&Rkins2yzR3Kkf5Z(s3Q(IT(H#w~a$sIM1ajY_8uhh~bBPbw;QhZ;B2yFS_Z%@cR1 zYK~RM#xVk#^AQ<|Q2YWp17!&&X!){~o9foK0fz8)o;w{=;Bf1O?nJeTvmk&)d9tR$ zYK8`9iaA9j?A|$34qjTPQd&BZ`|5iz4LG-RowSDP%9od26kId>j#ZZwq0&5QSu8#9 zpqXtX``rYJ?jpId0oM42k%m!Y^v_eyt3@7sTk+#77eJuh*Sb#HGs(htf69$LsPx;b z+~|U)S5N5M+x+ulHk6++7_n--?W1s0aRLsrqkA0O+jkA*^i z+9=Ug#uw06H~3ucEo}%>3bu<^C-n3<|z#0pwF;fxrg!_!|K_ z?#euDqr_@F;7USCSB&oyCTUr3EYbSgWU@shj z*evGREZzhho~Mk6M7^a9d4csCcnf3X_`)A4Jq-K%)IZ_mohNO87}t*Y3;4~gp@`L- z{p#HgVC>K$=3F`GFmRD#+(`p+O98&fHo$6e3YTVERJM|$_M$7#3aH$yW8ZbPcsiYw z9-!9084IpkdIJ6~X^VeEuMjcDK_z}6G4kQrD{bS`;hv$hUZKf`-iXFIWvzS6F5f`E z>;m4I;;rlho3~TmQd$@{qY23noun7a!wt0(pWW~cCFqV_GRYPQNgx1}-(N^ZW5C+}rt z(p4tvFyP280Vi42p*Y6NYW`jhy)7f*1D4!GMbFkI4BldghHU4?O`qpTqa|hD;dJkX zHMc>5A1&ksS_ZyKjzH%An)LJnA5qwqep4`d-iVb$tz~#?G6FfaeXnha^=0(R$V$w; z^=9c|`l>0iQG3o4X$1fOCed7f)y?slhkU2jNY!M9JpRk2AW!u<*YIQD5Ei9;VpT4K zn40%6zvg=$3Vy#{kE;&t!9B_nyZlHnh&HJ^!_wgyF!SOrtBG zo-Djh{ME5hko#|h>+oj5fZd(`m%o+itzLo{0uYU)^Sk9qcj20$W!HI{H+bN=qWZJi z_fFKJ5-MJ4(L(__c^HVE>TWW4DAlx(QG=1S9Usb)oMOHrJYZ5M`mIJdg;LHq7vy(> z6==ogk@D8O*D`X?Ep&WJRha{bc&_)jcDEvtK9(b_T61@$o$FFhGEx)i4r8i)6sd8Y z36?;=4n%0n2ekcNF3>e{k)1R(KfuRE`huyw8OO=FxhoAq3z1U?W$xC|HxP{|m(O9i zVHWms;Keg7Q@TqILT#YV+$FMAYCbg=1YaGZw+*gN)Pj;I#Q9yeZ85QRm)3wO!*k^Zrq>7P(s~*D z1KipUNVB>S3q5|N5X!U*Lt^?yoV_`>6%k|h7Y9oi@e@#ZQEC(#61j|bxx!&1n~R+od&7i@_RH1}PY`^uTgm%Bl#?s->N zmJyl^COL%x)^FogRo50Ws2r2TD94-Jfs~u+`7g;5yEo|u6Vlen1^(xnQE9rdkh4%e z&~qa08KCurZkz=#BrcYSFv1ZN7AKLM&~a*#{^p*uj=unXJ#ZVlO!J~XT+uMo)&XM^Y3d|b9 zyWf(L^}9t_&zCwg&=cD5g=yAnX&k`nY!N4d@*~C80Dg-G_qsPy1JY zii#8t9ROM4O+ya84hTqh=Yegb8e-$nCA~_Bp!HwYn{du6=<>ix^`;`p(ESo4CpWr} z_*R?aBl8-&LyGhKz?|6B3*ryy+v*s;I4Wd(O_kYWd$Wh*9yE#9aQFvT>eK#X7(HU& z!jI&Fq1WR-(hw_8*jgodh25N8H*w&NKP&s!P+;CUfNR*^%%z2p=R4L-q0EZalT8oU z^RU=-AC|1r!pM0rN!w4t-a;%7oF{nynvM{p)8tG8dg1R*+=pH3F$b{q*$n&qth)uE zQ^#BRcYmSs3lhqyL(cu`4$2ES>;4n;H742 z-=-uXw7?TFB=c{<5|SOnIH{o>Lu{h9!r4}@J4ItV3({UWM+|`iUoT4|3Vy0) z{hd0nZ-~0IO^)+U!ch@nV6Q9d;xjW|X%MntRK5P#FNUpVE33UA+ zha0pBDlzw4k+m{99qDP<5;?og=k}gi^_!}Js_CBsD-9Y|cq)To`{pf+``6nqVvWj7 zN@%QM80V1H<;rAMv?}K^OrnN=4`2oqO$WX6%$!K)@-4t@OvUmA0K|dJ_e?oFKZr>r zeMbLH9>$QC+Tdt5?>bUNj9a zM4eCexF?SZkJ|yt5#ySkqhLf~)vR`l(_CK|y_i~mo{B)MY6`PgplzTUtcLB&1e?oX zx&lYD*g=sg7=nYv$jVU@QV^4dBNJnf!k(t#mk9#hBAx+864 z6BVmFp?8r8Zl9p9PZM3?Iq8l0!Ce(G8wnqQ4>+(X^3bLFUD<%k z&a8gKNWta9?o-oE9sXdUxB_hf@V?+{(!)nRieA@$Qu<})$%(xU)zuTeqt^uc(3I3k z+)Xs|nZPBsPLcNfVPxg`a*gh!4yo=Mn1K)tU-P8zUl?;g#xsb9F+>zHuhD_Io^fyeyK(Pb=DW@(%(ei%92LxA1&ONi^mfeOk>jQ}xcF;EDcmw~*W7dg*+2 z8e9wN*>M_Wm zo}34`5ZVhqAONZ1A^uW>Jj?R7Jf{p6vh1b$>UiGL&EmjB0qhs5>zOZ;^rj)*NwjX8CFBeKjuFKpliq&X=AQG&AZ) zuP_1CyEeh&;H^@GX=YUCKCV0W#6+%Ek+C_ImM2_Kd{+{ zN;>A2M=-S&4QZ{Uj1gj??jLC?Pn}`zh|w@KP8>9|I1{njEotM3Js1V$=EWY@(>mlx zES4asC?CsHUKl-p5+dL@WWItZLG0y*a2R*6dWWm1=@-z02NLc1bAvtU zFEu%o_;-01ml=YbWcMa7iqC?`*aP*yl;E_K?P1c^_L8zv<%;y#mK}q>s+#`GeG@5fK$zeUXW`q}=HvZd9Ph8|upk zy~yBZL?yQz)x;V6_qNg^qx4E%2oG%dMnF+oPl{|>V4{RN`TK5WyjMT1=bCWLNFlrU zjr@UjDEhjHw1s}nKPV(ENgQl`C)N8Qr=FIi2uNM^>=NFt!hrMDh~mte26`-a zJF#ZWa@JWWH`!tgf*R4`&zD1cg9W}z{2O4!x~+eBORdji^W|y>mxFicD%HK;h!27) z@=9b5h03TDp3(@?Fd(P(9TDvJ?<YBUg>p@#$&< zYTUAMgk0FaQuYqRF!F%v2rUhk~+^c17^5|j1dk$^W59t%RW{(xtIL9 zp4gUsylUT4cE}lTw(tBJ9~qK90P0lN3&8Xff=gF|0?S>}J5s(OcK9{_?4d}!zQk#C zo6cbir#DdCNg}IIP*%)*;gvjhm%gbWeAuZu#B!^_=pAO?pFc4T>SaD?#w9aP&*y^_ zh9R?nIODL7Q3gThyk&{^V88f0Mmd+YsOS(Z}ZH|03A!({rfTw?Qcbvw4ih0 zrZudD*Bq0W-nf-2 ziw3gnUv6%gH_O^uNa!17K-;&U3jnW0LlnJ+tB|JX2Fr+L9oo|@j$eg<{5$HKDPntP z9uceLAhN@-@Tdb(SbQJ-3)++F0Cq+{$yLQNd+pwfMh^y{m)gDsbgu8u>MRahAp>%P zY2WS)fs@p5R;i%AW>0F2*4r-nDoDV_=0V)XG1 z+nq5Qfe1Xriph=#M?g{3;kQs7SnaBnTCH`#IAIGvQ7z+0oWH(Utl&#?-W}tdy=YL0 z#%lk<;=vY1B~?Iw;XEKSYyBg`{}Uk?to=VU-b<%sWc&N*^&SR8<`KuVOal&>W>>#l z936i!Xwa)OhEPV?+0xvj>HrP@CMq0NaU;V@z2&};HPl!Uxgqs%nHvN62v~jrPWneG zV$4J+fJg%zdU9nwVrWTW>wg${60>l>NxlN2S7mQF4}#ffnl`22j!iV!$z#}07d{q@ zV5h+uiiuU-{GW2uuVanII=GfjvV0xNuN@}FvX;JCnA=U^+Fc)70Tu=|6^CQRik^wK z$PiknoM*=7IvdCd>MxXSrY00cny~q(G3{B2Cu_z9KHY(`g;;S!T~Zu_t4=3Uns4r) zfIPSNk-XCf5tLHCGK7?V9#x(OjU7xepvBY2YbvF^8)@!h$t%s_FQ7eEtw{>QT^k`- z1C?F|bkj`7ndRlXXXq^_@K!GoZmh+SCHnFWGjOf;X9Xpcv`yj+FP_9kspY=&{8}^9pysDTy8X~K@1E>iqOe{c5l4?fQMS^eC zd_sg7pKJM*a3-i;UcU|FL-5KeZWm0XOnS=Skza==TT3mmY`KSe1U>eZcp2l+LM;~P<-k;g3DI&4f`K3Cmz{^tK-_W{+r@BJV2lm59 zZXrtg1((c1dDqZ$xuurD@$X$P4Jeb7E{hIqW)AG8h?koSfj(x{&UEOA-`6K#u1e&xuMYJo@q!amHNV=?{9MTRKtqMY|=j<6J+*)a6x(CYTR*@ zK80sso7uvOicdY?ANXbCE3+%RND@W>#K+{6BIE%Zy{j&VzXtunO5N|ebi!l0H43)9 zU+K=>kNmr2BNcSb;0Q&^^`AqRf0|Me43?tkv9QMPi_Mv<+%jl?hBQ0pbR0tz<>?+i zj*-G}w~e6fl&_1b`%3L?9r*9M?$|_kumtRFb=z1p*PF5l#9&@z7Y= zrNuQU4W*%426ORO=wt6_wwWQYkj$D5i?e6Oz%=td1>$$^YjpNWc}H+yOPV$?*RL}o zLnw+80}L{uAkDPCoe;dy4}?ESTltmu>PF*T7{C%< zk-w$#3s}I~jJMWzarrjEaXPZ9&m`sU>mM5eE5U7qbHSaX54n?NmXD-=wD}b46Qx=p1M)~d z&96r38qr5IYb-qp0J3ca zq^YRlsv$75w7C=0#3JF~OA?I`-;>vc2&Hh0ryhf@3^*=;f2L?apT`O#QfZUnq?IX1 zw#hgKRy61dwr`-7kGMT5Zihdo4q~cPdShKP1QiWGV1xe2vtb=(>Y6ntll9nFOJv3a8r82Q|v>) z7)IqeIE6Y7P8TQ05oE*C&8l>=(lqB#$GM?yWcJ-0*GD|B8R=8YSv(|2@%SQBRrtPL z6YK)u(2KqsPT`fcK2roIj4&blY?1Q-Z}u(wQ?WWy{R{r1v$06H31id0;F8z=;cG0^ zk+C#+wPr2Y_K%!RPx2nV!%c=68Ye+@+y>ADM2<2_QCVUQQp|CrLmyE8OoPV0kep)! z@+Yvw?4IED7f2iG2OWI+I=CbHSpDBv%WF$8Ya?NMNwbk^baZl&^H1MF+;RVR;VEQq zq?#sMYA>7OWh!N{X9~GK)$t{|Ud`~}Ryi2$*Xzjnv@bryOFQDlTHl)+s{c*Wu4ecg_dsJchya#)C6jwI2v43=q%M#jxDZ>F0rGWIBH zKd`6G=_kgt1>bb8d{sEbmlVe9opB3#kyF7Qx|og3ey|gmJVPd`Mn^EZAIR11ouwW; zbr}-tb|Oh6Rmf&AKARxq2}zaofdm}$iXfOG4dVW`Y`+m{Nl`@+7)u5cekSs8i-?s0 z6taA?x8+(Pg7eM4i0`+18usOkxHw6;w#;ujf?|W_mz!cDiYds#z)~spkg{l2DV@}l z-Oz#LudJGuE5xwid?v}%gryh2!TQCv2O6GrJd1AhN$eBckDp(XSAe$#mPoEYc5(<# zDaetPyWbCRCMVYYMeIDe;030@3;=B0Ta6VyZ-KMk05-53jA2F@*JLqHGGVlJ6VZ4{ zKH8_V^^{vuQl$Y}5(P@xv4O)8j}d&U7X85@j7%lidi~N#Fkt!?%Ko;=k|<;2$n9}2 z3FP7;UldmbR>_YWVh98`GL)L}x!i;x1E~Os6N@p^W(WNoTvJ7+dS}}qO^16!Jkz{_Q8 zo2%dBg53cF$Tj(o%-y7Mes!HfLqPYeWrND-V88{JOlm)2JIk3yi%y6_nm!7(#*VMf z>;Ue_W(IW{m#k}Z>n?nVUG-uYSV_skuDvndm3@|5`W_UF8BEPnpe7jEQZ@*hL5cHi z?E1>Hm`sY%wRL+vtQk1i-%0WfCI;HpSJna2H^j6p)OJQ{5i{u}?3ps+fe4jj8* zk8PtRDa(86>re{N>m9}S>GaMc5`cf+qb?X0dDjUeOCE92%^?FKr;+4$axyYNdGA0kjgKF5F|&@t&Z?7mMvW=KV|e3smEAsag)SVi=N|e zPqyj^daNQMC&5b7b45u*d#)nk%)*-%&OlorjM4>?TmCzl(9uM55eC8zQ7r9KAfk#EIDR< zQ+^L}O0x7gC9|jNK_v6DWuV7g#)X3z=&m^8At;Ptu6Ag6aA1LhG+#we5@T-mEXa{F ze>?4QK_?q2sLQK%*%2iNsnvjpYhYI;|D_ah5U@vz}% z)<3LpqZ}VU-fOk%SbQhzy4%>_&fpobU{HV%VlbBn#Ka_CXkAGcjVr4pEZ3yTGI4S& zKY+7PQEuV9Xj@qEZ+XM)dYBVt^NEfX_|LmpIV2EIEH|v{5+={~Kx}0f&52CZj=B@S zcGZH}+L&9{$;u`2pwWmyc0Nd2wSL`)cR-#PQxLPN{pP~hSzB0*c#5jet`Cn6AEt;- zgN=V97v>(1{wsZll$abVD6;8zalp|*jhf3;V=`6aGt+xO2n{Pxix5^8@b%o;NsxN$ zSo!|`j8Y=GK3as?S6>AkWR=tJN*d$s(j>+pb9%UxkJewom${7}>Iy{Ycp4cLmu+DA zk7U+*HhQ1xBZ{>7lk`)gc3yHEn9*L!eP>cnlvN6JfcHz!3)2%|3^BKp682>qH`lFep62o=ti5b$)rks2Ok@n7FEt{M3rM&oG4sSxb z628J&9u;j*wAj5_7TrXgkV_(FyB(`k@H#w^ldLs@#J|zn924nMRqi; zXcj^h-{oJ=RbE36$9U~*{UM^A0RKM#z-A*7lr*iST^@MAeW$}t9|FpDc+i~nzqAhf z%*~Od$~A-2yi^b!VipMBtBS)yn03f+k(X=LMA(5A$(I`g{;71&0Hq4Z?17Ngg?a

n^1u#CuPj{)6j2t<*P_xw3O|9wPPHQ9)550;SX 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

-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�Lp&(kWw~0&E&~bPV=y5qrI#^VoE<5Zw2Ab!)uQ58`h8-`E=3LERHE0pS)2Fg zp*|ivSxEbCF*0;~Dx}i{{%CncnR^2*h3`>Y$0-}sKeCM3xgqOutj$-Hbp_y|zv4ik z9Qrxt+)b*Wo^s1+3)mqNrnsrP);0U}6rcw9i75;(3yZ!WX;BPG-Ve)-(!2DJ{Zi7E z$6LhcpGWgP3vHi9)jN1!H+FVwDYQdCuX*#?bk z#DFt&VhufAhJUta$%MxWww5kAVYNn#0{SlJ=Pef2y$x?<_dUelq3a0+-_7?qmD5Rg z9=1K@gRW{fp2qN|hek^T7w{A|_rJcld;X}8!rCd(Ntb$IHc6Su7x@OxUrW>Ta6!Hk zQ5GfTlRiejB#?w502CQd&wkjn!rm$}l!mLW*bNi?kMrNl+G?gj^4kAN7?g)Yy%YOA zpbY#+hosZS=o_4(Cr7CcwnQW?cP#FK1e=Bu!o_(4D#Jvw=3HRN(ki}AU6|!MTQ#8i zici63tO5%k{7;Fw-MC#G54iRAxcU|yZ=zkMRpaerAyK?$GoS=L6|v9uCh-F|{F!q% z61ou#)yq-Pvq`=3jr-TqqI{|U@OJVBAp{g8uN1<4OwA|7Ic^B+tv|P5IA5;jTWFEb zdYFRMOyK=O?_B0XW`VtseL6U#EO4f#@$$3NczjJ_HEU#_lJ~vg>$n4WxB-R?bE8>B zU^14G?Y~u%QTbIH=f7wo@R&>xgCoPhzE7q~U9o?axj)=R9$r9kkd5;7_;\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260527/20260527044001-Diff-Config.rsc b/MikroMaster/history/20260527/20260527044001-Diff-Config.rsc new file mode 100644 index 0000000..5cf7e1b --- /dev/null +++ b/MikroMaster/history/20260527/20260527044001-Diff-Config.rsc @@ -0,0 +1,4 @@ +27c27 +< # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +--- +> # channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding -- 2.52.0