From 3e11cdf7c45c75057ff52733a89f7b67e065f817 Mon Sep 17 00:00:00 2001 From: vados-dev <192440777+vados-dev@users.noreply.github.com> Date: Thu, 12 Mar 2026 11:08:31 +0300 Subject: [PATCH] Backup for MikroMaster sucessfully creatd at Mar 12 11:08:31. --- Binary.backup | Bin 0 -> 290740 bytes .../20260312/20260312110823-Config.rsc | 3987 +++++++++++++++++ .../20260312/20260312110823-Diff-Config.rsc | 4 + 3 files changed, 3991 insertions(+) create mode 100644 Binary.backup create mode 100644 MikroMaster/20260312/20260312110823-Config.rsc create mode 100644 MikroMaster/history/20260312/20260312110823-Diff-Config.rsc diff --git a/Binary.backup b/Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..86b7b3511a2f099b1f426538014d35fab9b44ebc GIT binary patch literal 290740 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 vb|J{Z^DcD1L%w>=6$MgeAj ziP*(X@aJpuH;s}f5>>>@KE5cwNuXaNUk|jn!#ai+m(>>zLq%4VM?Q#PCh2qcV}}_a zs;~Ng>AX2T1}P)wPA*FP(>@n}x?O;>uZtoO7YwTT=OhZ(Wdj}qRm=OkQXD(-)!aK^ ztc|X6&ET&35Ww(SEG4X4Z+U`56VoCJjI-l)w1iq}CRX$@HU@K9R}AKyQv7uAA!5 z`PB_TZ6_=548=5!LV%l3RJd{HBZLG%k1zB0?)Py)G=O2`jahwVTROk~bo*@x&o%7l z6}d6AUR8ST=uaZE9em0Z)d#gi3ah+#++367?XX%w>SB;x=<{EvBJEiH3^=9qMV-2wBJO9cpCv+3qZO9>WR#|P5DR3EyXZ7Iq~(PL z&AW^ZUE>N&`v~il;mA@FE$FDm)Hr1Th0rN%>v9PQ3ckM%ul1vp*1fI~3Y#l-crG@q zJP@>Vn`-hLN#%~@ff9~s$3oiCyjTJib@ILJ0w;B7oG}7z+hlL6ImBzb`e|fzy=&NR zhW{rL(rN^6RB-v_hNGm{6j(%cT$^2_&l)a)xJ55b7yg&DOejeuY1nSm-rm>Sr z8W6=%m$JW$JQHf~oWa&p0 zO`)s-w2dj!uJLB4ru=m`)s=u-}jDq5U% zUWzf@d^kh_`tcjwW8(e(oDtY!v~zb-BFB{x>5nmBrD=i_c$tyN3f4+>w{9q%b$bIe zzjHFB4%?=;qjQESHkM3MoQ70MAG7IE@n&hFqs|OwrvK|T25tSx=wPPSdaKn8aSqiz zYR|n*46}YW$7wU)no;I;2h)=Qjrej4wSvNwDZ@ss@HoxC*-RFECnP1Bb@V7~XD<^N z8j|u8gFhRk!zUSQQ&zA*fV^ks1o_4Hi}C@8zw@$S5E!o&*V7wF5`day@X^xs-YnW^ za#LuHz5v>%8B>Ez-5kVAIrvgHw5Rm7z3$hp18v6JU00(r#ql5>oN@04>5FQF7VP$V z;Vp30`78gXlD!0yhj0-ux?&zRawnz%l;(sBer#uBvH;r#n&WgbZCeWCjk=0|#iE&< zpzrCEmL~AZ_FBJCT>Hr*AdvAxItje!iqm384x|LF9w*H`^?EX5;jNd6jF9Xr(qFNA z=T`o{{;pRCK7PKEzOwE7xbHq^kYhKh@HSu#4$_nqvX&u0;Ybi8w#4|^evhBZz zQ_3&)VF$1t$OE%RKpt2EHbH@*FW!mE7N3ku;aGzv3@(AQI@stt#Gn=}VSmhMn9jvj zCONbq0(76Vd>B{m`Z9p8|G0G7-Efrag>n{YU@FkeSz!Y_VXQXj+?AE|Nya`03FJp& z;e04W;G#CHo`lUg9lVgFT?XTq!pxN4tSyQj;}7U0zbP2O!idQSj3nBc5oi7%i~unl zYJgzvL7^w?Rb?c8<3-1bpk&`(nHQvE>!sqzLGv<;8pMKQX1o2^_JOe?35oNGv946h zZWt*>?@?-)59L1S?q3;f8puRX4}mbrj3%m4e)=IP9-M>)vi2X1Z}zUgJ+Er8OKbx;4$R|418_R)zgm? zWa}#?iwkYng2BYx2ZsFg_A4@4!ve0U!E!mTalN#G9r7*jK4&wayrr?dbQ}X+I678( zAdRww+C){ApUNh|A*5!~j$D=V(xsA)gYWP&fvCD8AMl$i3>Z@Jzq~V^B;`Ut#-$4mJOMjI7cwxdbarZCpkY4Pqlp_& zNdE~y(Z70y23$dhAocM~t#xcyzBtG}hOZ5SYimUfNDPGwbA_(KEHO~zlYM}&vJd;@ zE-%Uq1uD8=LIaimQ-qfi@f1N?F=;d4BMSL&zhPf79?P`T*sfLS0kFF+8I9%Q)(>PF*b&BKTnFSHG%yjlS#*P*1`!DkYO`198YXEMZ0L zc}}Eaw5p;Gr(V;4=6A(~Ua9Ki9Fg0*$L75=zO{gz?jEQ2H)t-zH3d6_8ANH``U)rZ zwq;X{B%c$I(S{=7C}C8J?*Dv$`l`;4kW!>?(e@zOfs3m zMe%b661=}+D$cdw$voI^C<7xsyygc5cOGd)Rtec<%8d2GH_`q&TrZjRyzk=PYjhzT zQ%(Gk9f+dk@H+3aUg*}PWalN+48AT!zumCE$CIzjiq5@SdP zk~?V^zj)J^!V}X-RSKEqUiGar(6LVk zVQW#s&m>-n6zzT*I?)2iw;q-(ZVmN8Y}AMd@mI|er4)4$pQboJ#i%=#xk8qYRZqj{ zf9=4pJ|gsh{gt1@!SlyY-3JuoJRi5e%cCX_Z~LX0yJtYL`MrUi;nMg3BDdt!1waR* zU2z@i5fKuDNn>GsbJz;o;irv>D+4~_xLi@Z=oocWTUpoI7&@i&XZu2ly634ci&Vv& zOLaIl`)g4ID(V%T*EZIQ1eO#cSR=(}4`2d+u-L_&JAmT9NO3nOO_5>9{h=t#6hZ(TjMa{2K5MS60Q8%Jb`Am$<=J~>F%YzU`-E&;T9CkadGi5~`n$rct70^w` zl*fWYGV?pJnBVrot)+j%Kf3~TLMY%2pq+6puHz?O$`jFfSKf^yW9x~7!s~9#V1u;R zsvdRRI`SSsU5zX}iv2x<*dIpiagSg8RlA+Cjn|7X?9bx~%X1*1r?1=odu74#D$v$j z&HoZEryZjXBx{c?%`$m4;C?#6*#N4F*Hu&%u#W>hi=tISI}8ovq|``hBkiIp`INv{ z*{r9}X(iH$A0;kIXtLcPFqABMm})J{XFG zQFBP-s=ROzK7htyZX&EkWHNO)5~Zb&_*@>2SbRSvMkXw3MoJ}YL?Rhf{B455njkpP zb9(r3Bc;Csp%?-o9i*MYyU1>GDLXV^=Bu^PP7T<($dXt^Nk)LrtN^g$zdj|5=0& zGVs|Kx9+Q{@&CXAk9^RlAtNs$2X_)Zwe)tkq5}v`2KlG~ zN!rrw>9;*EcG}#frZ4InJVYm3x58p)w1m$oZeZ<9por?F3pr=$>R*ti()}tZ@snZr zSP)R^Xlc3hxvTWD=r~s#(a+>_F&-VajqCq$ex0v@=(URvJU~Y~7c2=elvtKC< z4xo-cS9V3S5Jl;A(Ee-ULqnu_bpT4f_EeVu5EZwxU00xBt)uLBNZSfpak_714zSxwxSk2$D zsU7BmmvvZySPgj;YGT z+qknKvp$G;C35n#(bWn3#Vv)Dr~v;z0KoXtuvnr4f4S}(*)NjqUt)|o7RdYA-YagW zNT=xZ?HCqeJ!SI^#2451Zpl#Gxl{TJC4oKlY9;TUT!_T#^Vtl zG|EepgfIa{EQxnnVoD4Z+jY!kF`;ip8#GlAdUX9LxVqo80xFw^_}~NkXp(>pf3ytZ z>;yG(woJvYB-#Ovi7gP`hnE9Kk?&hjTapLyPB%IwWxo{{UuXmhxRTMaS%_klNu#>ObJi!+^So%{&nVEbZ?%$lT2=hzZD9ZI@kp7-2ek;7{LgU zRXva)K9vSUAMf7JQ#lS0FETBh0~d;LUxuFqa?IK~EyPjnD2CsW$apHbQ?Y{HeH{yp z)2h$RtWNWfRYHUqx^T!M^rCymF8TeUm$~$NoTaHGS)ASlc@WST!W(7*DxLW@35?U` zFM_}7XzK1A<2$GEfJft~t7Dwir=@X$_oR!Z+hc|mu#wzqdUrGLFS~zfp9IaXLZGmD zc80@)oFLB*47fcr`4Mfc{@kmmH&1C=jvIwLnIx%E2 z5ri21?c?mva>jPNXGY4g)9fBo&CrI5L~!W*gS@|n8xAyUl$kaR7=U+Rz{84Q=Q)W4 z^dp}f2O*fnxgT?}6=<+*XXu{4P5|Wr{+#RF;m;rd<}z_kP@~NMTjBZ72+R~mOxLdk z9uBA^2U)?R>u7l#u8@!}f9AZI=<+PD!;q{809$MN5kL4LpQw&Q|I%6HgEjm7vT(zw zv~UryNJ%3~PVH0g6H1T(9;gfXJ7^I+kKxKxB<7iXn#PDT~N2_>H({zD77QCG^`X&l+ znsVw(+Y}U`LBcO^pH(ml#_l#i)T*2e5!U27Mev%QhxjydY+pm^8-J=tg#4}m4Hpl7 zCCFjSP%L#A535{>hA?jP_e&&Su5>a4_QDW^Esh(o8PfokSG>{p*kUn%=YAXOv|9=( zXw1;i-V^bmTumt5`U5VwLYm0;{kLTb7c?A}$WuvrYLapJZoaw)2sv?WE#coHPDn*=uDoxDJ_QCPr@!eiWxc)D$0+zdgN~`eI%{rQXBHV-4 zC5e2#s^vdd(}4@a7l90q?>c!{FxB*U9r6)}ltA>?*|uq1WZi=qrmDX#;$#r@njB$$ z_B$hBR`7ZOL_GC&53=F(jqKK+X3<~2M^XibCnCrHGBf4kdztA1thTHNKv1mrA~{+M zBsk}A?PL>q{`_S9IEAszh~0$-+628}yn~r=_YSw-tQ)NIsGQk@8KhCSAbk~GnqYVo zH+mNB)^y5wE=##J0_^ql^^?kIpKgz_iT%e)C?iIuhw8p}NdqApbfBiT3@!z-c;ciP zUrWo5ScLf$4xJEOqg;1+^kmOup8P&HXzFQ-h4Lbbb=ghJzoKszhjI=w5?f@T?IkJr z0(l zt|^gxmrL%%>*7Mjv8q5xiA*ae3%lZpGNO?PjGwx-o$XE1o9-c__|D88Md?%&Q>T=n z^qs^`YO_nPxTu2fXrEKBy?w@Upp8_|MBQK=2T+GdI?-gK`_{1rwdfBeI z9ll5ExdEZ_mvR_VZ!6IB)jmgcVVyjAXpqYx<_0jSlNv^LaN#xdB=r>Vhc2Zdowbsn zVDv9`n?-U!;ORWN@wfr1jclah$ns1KX#~GO}&_=7024*T*%g??7+- zRMVXXKoJU}w1>?;jVI0t57y9nQm(~jKm<&}%kOy`C|^$M(gv=`k9>BJF3pR(;XFbe z{`bNI^4PU#oSaq?Iu7%W?Iqr0pAZnsjF^GsF229ol6&w`^n#+^q@Q-^l?Tla33&>> zM4t+~XV+lrcRVf{ah(k;sn&PZPE;2F_Kg%n0g$w=9U;?7T3O@CnDJTs%t^tm7t} zaqK0>(SU_ygp%vg)8D{&_5y}vVKFVPo7YQp=ExzK_+ALEW98uBQ?*liH*??_6|ndM z3sq2pcEHqV9+k$Cf%CAj@p1>@O$lrS^&>>7}r|n%d;Tp>X zG>g}-g9}nP$80B9uo*UXNFXENMH0xa?Wy{Bh<*@-X>li3XtK*UL1xG@6xwW~#%D+b zNP#rYV|mSm73!nKTCphFz6ZXU;w5B1-+&X>KU(mA_Z5dXqDau>&-XhB7`-)vO`rD# zSjl7}WL3^^7w(ZC_n5M224b&(GLP8$f#jypstEAT_X{sd79Kf&*OR}Hpvps;dl_K-vf2bmC|pXSz$&!8kl`!w$5EWd4OuXZ3Pz|@@-4A zej82S-k<@F>w9;L!&%5`2oU^1;F6D zK{2tnGPcJ+c4v$K30~w(?fIAfEe{fz5r%KdC0^H};r}4$eqz?oc>lk3}_#lz7VwulOpfuOml>C4 z07HuN+GJ&c;{!9R}3A^B#B7Qh?oW{c~O zzDacaUMi>{wu=Do4;<0y4Nv_d%H`v&-7Pb0i)LQQE{v>+0A?S;PO@!}{Un`U?6 zyoeLi>%r`gCS9C#HdGE3qxZu&?x8x5D=xe{A!smf#UEZxx?e5c$yc)9*Sgo%|I@=a zt(|1`(|=%nY~`z|SPxdD%)I!HO)rF7Am4DcfC&c>DzVuIe}AFC{a@HjHLaQP*;Zg@ zz^JZ`bAVdOMVl)=;;QnSx?Ue0@F01)9&HhS6$&%qv>?I_lNm$v zR{=j2C=3IrWr(t3TDvMjiS9a0IzGxIWX5NBYux)w2=283>}^uIiQJg#OSXb&P9iye zs>HGunqOD|ggIJ*c#i63ft?qlfd_tUZI`WH@e@~*>Q0q9v$T#A=jY#qA!=WsRWysY zE>>jRzl*x{|4H<`6t5F^OVW7&L;3zC$Y9iW)tp10O5vqs$t5QZ&b(grF3Z4(xeV zoCPHWr58pWIE6(NQ|n~1hF`d#X>)I{aGZlO5S#MFE>V*=kW`0S|x(6HMzb`95iTSxYtsT0IFCG1+~S&;AdbE%r4? zfu(|M=`kM39EC5@YXhJ+EM_pfToDt#dS5q0M5HjqS%Fa<_;AB~cesW3hCm$M{?;#+ zP>;xlO&;I+(r`9wq%PNazmbN;W#CJc`wl+l9MnfO*q(~;E^?m1eyu4vl^pX4VKoE! zlN}9JOSX|f&(o_Kq&JYor(QxN(p{Kw9^2-MrO7wgB-Z{J$@x|q$7I}D zkZceFOlLbdHT#RH>?YTBJc9?wY72|0cMD%SO|c%-H1>Zp-};fRcW`_Slj{SxC2UgK znSKvgml?65z&1+yl|kkhJUpN<52W=Aps{>-uOb6y5i@6^U(cTR!i6ql%3>I0)!zrT z!k2^7ydyrNL5pu;Hp#9n^D6`5&;~-`w$-qtb|&|eoaH9OINe>L?Or5g-8$U&wNMIW zH<;8eJ(#sLEnvV989TOAu&@bCPEbmZPsEFR7^dcQboqg%?$;Q2@0HBMkjL8=yQ9%* zbveOLkt}qu0KAA}OZ!&{bC4VN{7wTJXZ$xEIB!C^Wr?WL6P;HS1^48M*~?D|XSybOBX%TKQGv8T zYVngKgQybHt~9O0al(q?cX~4(lUZz4Q97tcW8invGw$w*Qq|sC11O#1La@<_+MKHr{b&&KEZ!zy7vt_QljSczoA;|C#m8>%VtdFqtf}C;)7tNsq+7yUOgS1kaoOE8BsJui8=zjk49V5g47s|bk z{&9WVfo&yIIPNo{z-3SLajVYo@kwDPaS;lt-!VKFsNs4Kh9QuHidkaVJ^LZWs#)Qu41hXpdj#lxZs0uNA5PslPZKhBEMdz(fQ za!TK(+5=`bU*Pksh&powR$CRXFkDoGBH}ou ziZgQ_x6}(pa@Mlj^2k*7E`z9VTi+Ml)tb?*9OG(he8;LlZ0|bT!qI6#VWrMJP<|T=yV;NJ0>FPDr zU>>PdvSZr8_QkovPqmLf`K$vp*(hCWr`SD`B`Zyyhbs+yz0-{muia@~JBxO76dD2F z!?Lfzq=X>3agb3af8C*b7^AK?B>@-SmsND(h$kI|j2khW(O z$<^5fcjgQRLRicOncs|L`dpF(y8x90WHM?@l2ANM3lPng&8LZPbLeQ;2+$0XK3^WY z+g#sNhF`lvi3QP^r`_gVuX`X*_CL!I&!C>hPcvi> zT1>Nq90tSMa-{wwN3KN-irb98c!#%(w0n`_iJ8u7HmOlWXPVz_Y9F||v>}c7@GN=- zZHRT9&ypzDhNH4MmGQJA0wDeXw(}TFqP<4wAs*F8UY@+Eft=n@1a;zmGq{KUT!;K` z5-t%02kJA|olJRZ;+frbmrJbXME=1Zvc8lccp-oE9z$92nOh#F)=ibiX1ecOV8H|9aP3iK&zhTeK3fjv$y z2f_gDJFH{|t7PNO7WgP5Rrm%~{FhmG~d5_XR7?mz&tU(YvuCgWIM6zzavua_-hv%1;(5=%T z3_79!q;;uJB-Y}EEzs!(Pzn)h_RDtrg}Nv=uxW7{Jjf~IRy;XI>^lM@ymq$sJH@Am zWCkf#*CXzMrgadq)aK*p@#aZ+@ zY{VxpkWnE1Ex0@KursT*M*_ z!HtXYb$!3@AjKD;9-4>gEIBB)8!jHq;IegLwAiqG(d-zn`c?Rf8#wJW|7FeJB2nBZ z6eY6@!Q|V>X>8cPT_7pL()CmY=?+b*fTDY~0`cnVe|u3qGYYKC%g-!7DpebQ-IJKF zjc=I#X7j{}q6A|vY7Ldd9)%L+X;4N}WYgSf#Jh>ddukcf$@lmgiZ1fS*+TJMd2a@B z>FdwRsA|tO&L!aJt9ZblvqdQ4c}q3!^f8vP(_b|tQFz7^3-R~$>H-3A-bz7o$bTX! z;)aZ+hN45w(Jo|15Lgd^=^b4tp-o>9l~#Q3$^uXtPI6O4 zhd#AM5$)hn*2@4*Sx+oej5c#M)n68|C;&}G#MaMalt_IA+62972cn{Mer%GDm) zTd#`%Q#$B0p~mzP!i4g-eIf4($T|l(eq1S(R=U^Co!FMq8Xq&f_Z<0)@+#c_H%^w6 zGg!+6P=77V%3{A({W=NY$dkaJpLEB?5ONvN#F9fX#crQ5Kg2O4f}>bnh$M@wlOwBE zMI#_Ho7p@|b|;%ma78|pRn@%zNF*t)KZnI|+#I4ZLVe35B|QE^Da(~6DdwTDcxcx9 zv{9>P4SUEC%;zCQ8T#xvQx~53LxxY7ebBCoODA;FsLZi2+Fj&9v$u6jR%(R6S$!;I zK5R(9uLj~t0TIU{ZFqT=)wZ%|4j=WSQnG@}(VU?@=D(GcbE*j1{!~uZ9?!tgcm>ZN z259vc;OL;@H#x?9->7M^N8W1M_g7dL;gHwTkLg6!NVCbwz~=N0_7}tj2!h77fXZZ) z5b!ak=nzY;))K^dH`_SBRLZ)!ssLrx3R5iXjY&~^iWyw_I}RufM(j#2z=IGjMP4)8 zOKfM%0>3Crj^1(qZC{IF3>oBc4oc_X(K@RogWd+EgOuFnejsMQ-)31=1PyiA0yHe4 z1ka(!AM{9VmXAb=7SLTt_OBE0+)Ya3T}HmYsX576Lo=LSh>A2QZZH^Ha!4q9vWGcl zK|0elky1w2XxiFgc!#=zd-I(&K*4f4$)=T1$5AHzGjP}Sd_(G`^58$_OD^STn{p$x zSGaR%ASCcW=zJHSJ&}0Wyiqq0Hf~+8_;JTSGZMLdu&9*vh}z94nVy{_LtCg$nU>#v zdPHVB5!Ap}mGDT&P>*;jQmPje&tS7&W-F@?&fGCu(rR;Ats{0F_)bF?4Qymx=uIn? zMp&|VaHTp=gt!_ojxWNqy;jnRxIXQy$yKpQBqS|GD2R0Cx*`bfw-TFfHLe+DG7auC zpmAguE{Z~{sa3NVVXxebKo98M^HgT97y)wkd&=v8CFd5$h^?)iOB|mbJrOPbEZLrM z56fvZKedU;iA6NQRPIvT+OUfI1)mK=+f!mdR%6XdwG(UZdZPappv!lf1Sjg}^H70@ z!|8be#IYd_-fNpW`}Yujk2|dA_^`HYGWU&lFuK-*mvhq7km2tT7?8l__4eLM4A(A_ zg7~E=*d}~KJD<{xcz5uR)twa{JS`*7sjDiDb`<7qKYuPR1%}L{$n8d0LdsqQwDmmI z+k^3XEkCorjW$IsJ592I#l+LNEfm8-(yP(Lhpa_wM*$?heWV z29rM6+A%#Zb7n0$RFZOyNW|qzFRH;BHAq&DncTCt;pA}rkIV+oK*9 zas&T2W++WvODE$Mo=WWKz%}63VPK>QQiZ2{bk#ye143T~LYb{>9EDrr>3iIDB>U7zZh*rUD@k9P%OLjByu%`ufrRgb40=k?K4Qq)~BTpc$!*>_K?bB0`x9@-n z&AB084R;NfVek?1GEM-85waY?txl!LNj=gV$Y%Uf4oE}XMwa@R0>zO01#HLMVDop% z&Jfrrroi>Jg(JxMcZ0!z`zV)rbNaRGez*PYfrCuJXm=nlrmmtjG1XaB5=@77yrWRy z|F-Sow9;b5`|c;FS9}YWC&8+#Src>7qb}ux8l#I6=|c4yNHW28-S?i8O-Tw&wIo44 zU`PSs<{S3k+Oe(dy9pll|NvxJ#7{%jZ;Hrh#N+%WX&Kx za=W8c3)yLI060)V+%Q4O_=Cd}3QBxtCo6i3G!Llz8#)^TyylbH*Y5RJN^6-?N5{=? z_}P(1=fIFcMoMYrwD2Ztb6OIW+c#;2opc80jSP5&A_gqjNqW1ypeN=oeH^P(NIoeo z8Bh3Z&hgDSAK-ePOa^7jJY*E}H0ejiyv_4Xl8Mo5Kb$X^vYk7uXa0U?pjh>ZU>Y=i|%)M1qYP}6EY!iBMSoOeN|$iR2V$LZtmqV+JO8q zf;CFak&9^qyngRICvLeG!hw#?LM)}b+Ak8uY)I8xTw`)>HPWfpXX);Pn(|5;Zng)> zAdj=Q{@HQh@NGZ;wT4^kUfTEwhluCD22@Ihljj@V{un9Mg>0hEf_MaXWUxeX;W zl%BNAvW`G+dU)%m{KFs0i>~PAxylVd6ivkK_KfZAxV;I1AI&jhi^Ntdz~g*oilVQY zp-`=B)&hEGu_57uPW}^3Ulf4~t$(aDhHsOF%6YePi%SUF>x_(3Qk|Re@m;S23}{&) zB`X1&;N|iafaJ&-Mi%gEn`MKmH$cQsaPuP6A%@B%75NwwzWE>C_t-^C7B!FEtv*?f zHMyQ0wo9sWf^!r4M*SWArYx$_0}v4OJi74kK>&LW`8wFrG0+3OcV{#vizrQZft~`{ z9T_w^vtVwZk&B*xeC9S|srG@b!Bj8r6+xADt}G@-0riXG`95h>npXI5$RAH(zdi74 zr7CPGv*a(~bMA)Cz96Ahtd*2-Nen#b;9K690$WMQi5%OivG}Ab01sCDe))jEkWs&N zRSzODj|FW~hD4AvrD52oiX$G-N}RfIPMs_nl_;B=4RBQ0)37L#*o!}Vj&B4TQc@in z{M=p-)Jo|Ob6;**B@tOQ?BB#G;?xwG!8-^KnA6sUr^h4h9jmgA9Tp zxTUjr^M>VU(YRPLQe^-PbxyN&M%&<88ItqJzK&`c8MO;j(t_q%@uP`ghH@DWK#XPJ zM3wkorD7v3*ONzds^_&)?0;oR#Xftj*Kl4TgwWFfOc1o2VuDU|4vKFf4}lhW<{uq(+3}`YH509 z*C5*kZFSX8z)N~Vv>dx29Itsa5ov@_Qfaqw&1bMmPQxWrURNF*BGwr&Pz#KM&p9P* z$pPM4F&MSrE$xoIxNkm-+{fj4sB(XbiXW%hfS=BtFJdh&Qv`gI>Mni^ zb-P9@Xe{OYZsHxH?-*}PanZKRz-V1SN?Bfw7*P@agC_kweEWjEPOtnO1|0nts}w#D)cFKo4f4m=k7PzRv6M?-k3y^QO`Nc400 zh6+ecM-!W8q8^P6M5sgY4|X%3`aWCC?VbEcE^4ywVo!5fTx|~7`6l^rQc3Em4CKeX z>luhuBJ2kvPQc7$vlVGaEu%agaPf$|3AiraW*-bW02oWT#9n5H_zBc)2-UdgKWCC2VCJZ^rW%9QjtYH;pBs zRYR`;qnJcmv4@f;Tb^L@%5acJ6}q z_DIZ+UeW9R3q=k)oo2nVBlMTfr2gb%Dl)Cx^HBWbGH|eK8|Ar|M-FPo7}-0Jf) zEF$B&h3p-o)zNwsk`jIB|CGw@OVv2+5Wr1$aSLAHODr|huyZ|PqqYego{ogdjgjZ;-yxTgXf}RbyR$SM10$%8xk&DR;Jvk-kpri*@PVnlY9LF;miT7D0I)o%+cx{{H+StigwSn=EJ zt%dn=`BIV*`C|hC62~$1hX3TaMRmBpE5U1{J&(dVL?^N4g7EMdex?KleJ%>}uQ~!{ z`-Xs=xC?3S8QnKk{|+Hw`pj%M z&f@dRb5<38dKldb8G<{#k6G?0gGkj1!?ZXh>Dc(^<#J)S|4@t>K(?j7nMUptg*ETp zVrFg2s;9H9W|wT45S5X6Gv3+A8r%X zD7Ul8qA)Cv<`RR28<{=GGa|O>pc4$s-KR&@O*C;?JWxr2v|^?-^#&$r6p>*6eM2ZW*t)hU0PTN>cseN zf(nBi9q4e9WtqD_%V^U@;FxWbCUb)L!1Dib2h^j}LR_Czof$iD7oyO@-PGUMSE9x& zIT@L8(H%K2p|Z49t%#JCt2+J77#cIagDS;uTS z9>ILE5%Cxh7OzlZl+`l(Uqu}HUOM0m(*kUw5`I*}+5gvsKE1CE7~4=|sd}&sG#Jl4 z-vDxcB57b1cG`UbF=qGl3`&?DkwtY$;rS`0^|4Do@Du3t>XuAc(>X3DjGhqg>wfZ5_y1X4$+2I7#Adg{|ffG8E3|YW{-xF^sf;yxeDgqAe=F*9% zLj>NMCq#Rp=EZJ8tQInCJ|#Pj;-MOiq{!V^EU?K$&ul)IBf_icH@hhqZxqX$F{r{O zkjxH7a#{t|$h4juEsjnkE3~Vi26CBffY2s(`{^q!W4Fw;8g`Dk#QPK`hYG$!@4KCv z)|1_RK>KLh(6BvK2WMtb!^`A+n%>KLZ}dZg$4i)UAx`9fQ*l_3dkWwOm_-MT=z`KW zLHgLoZ>P0Znlg|O`Sj22N`Op=w$ducv!V`O0r7|~12;^UGua3i9d2{hE0#n*{4~Bp-lB3P{#p_O2wexAYs}+HWyb2 z&ht|FFo(z3yp?wwY%Bjq&w1) z+fNw$U>)jtMr5?UT$yXI1N)g=_xr4gQ|wTAQ@4^JQ&=MypY^~egUpEMZ&w1IBF^_%>f>5LpF zFlqH%y|eI;*l_!xwyqzxichG6{IpmoVr)!-!#pBVb9n``dxQ?* zc4I#qv%iMz(LqCo6dNPr--G%Z+0*bP7RhhHc)-8LGr`C#2T@mF4|u<@BeCk1cP#tr z1vc_o7c~;a@x)LJ21OTLLIZ^9Q<+gs2q5v@8|-UxQ>NXKVk{eGX!KHL+7}7$qiwkE zpdvGk(L@5;(=06Wc>AuJzU5nisKxG9fz7Midt{etIA@J5gUnf@(A5YDD*g^*G9PSVgq_L#~`$DPiIc+P$gTZxPaen)#MGRc#G`{-nE{EwaA!R-~V z7<;q0*E5S2rL-_Dg5?Cxe^f2YE@D_DZ>hUFo+vFR%zJ-b^`K261qn-?_eJ7w89!Mo zw1cUZ+%^p)Pey~&{SPb@xr1y=rW)Huuu;@})pq~P7@skVZjg!_1}Y81p|*tpJwyF` zsV>3Y;H6Sj9)y8qQK!)4Ohwi42GIe0`!LfY|JiSgqjBj&P*N z2YAiF8D!ikLYa|_aJEQ zgXmm{tOn~46MM)KQ*TK{iDz|Lin{LjH{sZ*|9dB(4~B;~VXnZe?*@ zEXo-d_Z?D;%^n|2`YK-(K-5OuIY6s|{y+|d6-PYKq|9Gcw&A&d2vd=Zd6(n0drv=g zg5&UEyIvBv;iqu!YQy{$xE@JrH^PSS^@QKH!|be+jd8itQBOb`Iw3`^G`9gHMOq$H<>fA6 z{dj2z7YdG`H`CN>lFjXLKsoZv{Y?;5_zLWzZ6;1ee0?$oBOQ1I5j%q37-|G#5k|R> zqN#rqn!rt|bQY?B(*5^G&t%|&(Te98=N=Tm=TbF)W4LFh3|Hb=6E6YeH!QXURbgH+ z9D#UKL*Hch>l=lN|5%n%&0Med`ZQeoxswSMF*{@xdfI7WB%-#xDyOUUX8F*r_-qd;Ge9Z;fEF6T?RWifSX9YQRo0I z2*85rPAZUY6f1EC0PD=86YF|&Z}xG9%mevR(KbNn!(f&Y7SkVkG52#q^E8e1xT_f_ zAm30}tW{UVsDT$&(F%W`j&mXQj5 zZ=UL)OpH7)RNWWa=eSFS8s35a4I^5ZjjZ>#WcA$im|b<&WIn(tw1b?Q6WtfJ0C9M0^OPG^4-!R+ zVaQ+_lRY814r_j3Ou)PPxW+UD58a}eUoUyXtVEU5}^qjVCL42K_ZB#cX3>u_rP?CK2FeIEdBal}FlzBKL37QB>p=8nES$C4?E{JA;bqyF!BKmH&(TP>v7!4e0?VG_#d0R#Szh$3xi5$ zkx=BJ;Q?{0WS3gEdG7GbEXp)kX|I)?AOM>z-6laqmHQGU9Az>6x63puav8Nk1or_7 z0S7lr3CGvZHXG0Z|B+3YLoDTT#R>tT22A{44C&SU?GX#D zjM24Q3>gi2idROz`uf_XQ>z{7V9)J4vQPiEfPFUs`gLyB&GhA9w6fSQ&Yi|7&Gw@WZIYK-3W^mBC`I?Cs((26 zRMbn|1HelJ-EgNL%E{O@Qg4N<;2roiE+&5OQO=+2JZS}%z%Ri2w;&bXNnas?G|ut4 zk;w%9hRX_UnE)?0o`AM%_Lo>DNaQb`dBm#{CRy3^>4NCoXT!?3IVLr$5gxD~2!;+< z#Lhe}J+`^EJttRu98BV;J|yw?D3}cnqzwCW#b)G+HAs)}{aY>>Ea;u$_ii6-&B^x=%|#$?yH9GC_|l_1E$%6919Mf(W+Gtck0KAJ5+2Zl>=oW|ArV47}98 zFvYrIjkiHz?dYf3E}!(uHKgbE8lBxmsKnx~AOLWY8nHl3G25`DYz#{>0O0CD z5IHk%fHOiH5VAH{v38MwgfmDvQOaqWiGi0Uvyc`IoPrmA-#1lBU?qbNTsp>iHc^Fd z6rsf2S^)G&RYLCjX`ht6${a`F6C!o{S)KXDNqVa>N;mcDc}K11d;o-Q-B1# z1GV>Ey`(s?ui%^JP?nUU0LYjCspXTDdsTi0R`LBYsb3e$Kpz19B>ee~zV6vx)O1lx z%KBqvZiDN{%juta#F`T&=3X|?XEu5OOs>pDz-w0xvy<4}NA~U3?X|UpbwUcM#S0E1rQ_ z@+i&#R7WY_Cam}@L-YH5pG(TVav2U4CEZAr}~ zv;QDm!rA~I9qn()5J+Y{RI~^WY%ngab<6ita4GEQ#t@H_ic2wpb5ntwWF3d%PJx^i z!t;PJ>!xsZm5M?EBH5xk;qPVA-Xa)f!c(Z!*h(6m(3*lZa#ovSWEju5E3VC$d*sw> zpK`2d+YB2k3RhEJ%;6Ev`%{hA!3*cOcq=K_vsFq1*Cp%bjgF^)E_|p1NMa)OqB;mZ z*Y!p{3;1E+HzqSukE)nBP`{XWv)D_nvG@s*=^Bf!#NDz+>QaPWm1uZt9Mf+6#tkRB zb`#B^yQ@;79#{54VR{`7_9KVAwtgbPywm~qlf_4)y5r?f7Wvm@QCtE`R=3Sgcs3~Q zugpNfbZzZjE~k2(J+()5DkI{~snnx(Pe{bLRhjAFF&pUGKYSnN!F8$uG!26Jq7g;n zdKcoxJexp|xx>Qx=&kV)CT^V;?QEI-J8ebVJ_3uh_0jfO{IRUv$nZHN(c^x(iiOKn z5WjEHRvQ6+UCy0?a~{12ZqlijZ5U;*?btpAV&O<0+9APBayzQ6L{eM7+yy}RM2g&( zA670r8OMiFpKVJkU)___Xvt4-oJpea@|X+ZUfqid7op%`5``dpHP4`MAq)ufo5(`UnWU9|ImmBNk?aYE36U2qA_*-bmL%7Z*W^?wF*;)Z3z z-HCt-g=`ZUOj=cG&me!AhO!&rG5g&OwQ)Gw1>2|$8=`ZW9t1AZVFIJBrXlM;U<{iZ z%SBbN|~TFo7KA2@e?lW$uAN{ZvX=dK}9YewOZS1`=aE5$f=YCf|bzi9kLlmBy`>r1?~Vy;@p97jICyXhb#M2~2FWo+MWN zya}DK5@+~7P%qv`YI0p|W7dVp2Zp`Qc16TZSv&QgPGS|xif0^PCCWm5JlGmr_>0Ab z3jNqAI~R$8)A_I`bESg4XW-W{B9(=X%PQLHEKf}f;aZ%m5XWon|Kji6U#xtO-&VI^ z__iiUNQ+A0;=Pi}PYjZQk}wzC|HXZ?02feL3l9ini8-r=u^Z>_8u&9|QkS zpoZZ0tr|d7l=wBme=6(g>EPU*UyC^ht5P^qQ9G$moYaTV6-+-t>~#ZShn89}rZ8F2 z?$4H(-vM%W=Q1=r?MF^MGAO|{$%O`O#j04gHJi>ZBItm?$V|F-L0_4FS+PN;B^PSa z4NF*$$89!Z0*}O40}7+me)_pZ(K`h!+v(bO!AxNcT@W7W-5*oIB5ckrX=40oaKyAr zv1(|w5>?j_N0Uyt_1aS3Cr>p=ta#AZ=zX)OJzCR=*KbGPZ#q-N#Fr>T91leyIVKkK|z?*zV8GWuEY2Nz-jtVk%l>d)RfRb!?w4KVr+kYj3x4iWE%T# zm#`e5PK1NVU(YgmD;!ruTFsN!v~as*E@^y_+EcQQOm~qi(JzleFwEPO2+#$0Kj34| zNOM)VU)dxBdLLmfmw^j6)U8Sv>uXU^naAzx1unLN$k2;xL!>}@HkN)sore5pgA5so zK-5h;1PU0`=C0R&)rSzwW7OSxU*3O_ z{b2SSAXXjL=$jhO0N^!Xlmc>IT~*q%Q$gATd0_MALp`hj30I$;ZY(XO#8#i}jWr;r z8wsA49>b<+Rai4mp(Jq!2Xxu<#80ss`nJrE1bdy3-RbIRR6DnDpxtGWct|*mFf54D z1Lg#Fp>#hoRG~UI4CIk*+nr-tx1g7aC4lBcbe8)bH`-tdl7A14q&k?u_x3cDY%xPeFX`=xRW zJ`A69M-esk+RpY?O`#cZsn`*w#e!dg0fLgfwtj0SoSc9tDEBJ*L+h071Ofj?8Lp-N~TGh#qW_!;+Ez}W~TVx@uf-*DIRRVXcW%BT6xjzGd zPvn2_scW-*V&0GVA-@x9!GrQP8aP=ie!6Y`1|l%y&QZ2)#6+^mm?=gZ*1`h}yPS67 zq}Ifek3{@;edgAUqA!Q;3O?iI3oO@7_%QlRf7Qx|(NN z!2}l;k-zvUosXIj$={b#NMsZIO&(A29rOAq9RqGESO#iQ94E!Vk6czf^j2ZdZ*UE8 zj5nR1e2$@rnXT@iZQdTIHm3Xrw{(>3HQ-Fj<#{m2pjK17}G_ z%1%2jzr4Qi0xfWQCJx-sIj*9{+-f^p@ew1C%AIWu+DN*wp{2SaTbDGq=%3DW7WrB9^zo})OZgd4p!fcU8=@n#ps4)*L zncEdFH|b;3pZshOcW2dLVq2&*dk!S8MMbY#c^}0CQI5#5gJG! zz3`@ChHM{n_%*;3mexMkE^eXRfQOL&eC+)GrY$Umkbb-VT%2D$&B5O%jT!wTHc-D$ z9mBU4aKsiiHK(1Fd$zMD2_{5D=wv4F&Yd(lH=rfiY@fMw04@*;Olr3k|1p9!l=6hkN5Hld*j1o0(T}Q{A6n}QX%T5UCS0#o*B<3dJ zpkPeFYd>thBe22o>5;X489Mzt&YtmGXD=GnE3aCatx5?Zlq%pw$8JM3`bF?OCJ&dw-PCY4kRCTvL#vOO#H zzP`;?Cavk%$78B5EHeLg{mc|DK{sF!7?EHK7@9wt8`3x;>MomsoEJCAIzXQ1VNJVx zDLXCUwcPd!ukg@V#r&4EWs}^!vL7Mn^3&`nIsgJd{l5^>YWPM9uy9QithqFWjV|OE z{!5R)S}arUvGd`u+?$dy-Q#Z2V#>*m`{%Kmyt6EtsFJ}&&QhqPKHPxuT`E>~-o
KCNe1LYCB#*sd2zDv#Q&{ptvKT_8yAFoh|S-Dt|e7r7y}9TDP5o@u^o4lWy% zuBpRgJC;s-rb#fvf3gdAv z%~u@L6ute7xD4yB31*+@i_DLvuNDaXvB7@n4GD8J9Z)=!8kDtqtVuFegm&UQKfiB; zUF>tzm4vawDcu{hMm8rEVtvAMk}MfAsmn`gg=`Zg8~$Zj81`)8f*{)t4Hf{!+3yIe zGJogAQ&^m%UYT`R5}qFX%HYf}<|lQS|KXY{+B$Y_%Nm^OT)SvyB_U(LhT5}iadx?i z2WvTwl%B+s)(U|3o>*dh9-)ekjT`cg5dR(~hDN!=pF?1@2Izs$kc=Gy$NjTNp-#)m zr6g0x$%N>j>aD((&>{|=I4hJCN$eN@mXhN*V7MFLShC#SDRk$9;Owkr`K>chtv1(M zeG?xO(XylmYyQ1bkKo8Gn6%-c6$JI9c@XGjShL*{8A?>jbvi!*Qrq}gkR><21l+7s#n#5spiP{l9LPE`b1f&cH zv~zJi>E7eSTlyR@*C;pd1X(8;(mGxt;=$D7i8sI|TMjbJf?>|-%>u*@wJMLD;1m>p zDs(FJZLdCE^RqUT&~=AM5OzlBv|2T)`CpOwl61)+_w0&NpA$pCvsqM&H8mS3*ty(n z`fPtk;!_^Dyjkb=pL#B=brEThIdLc9QXqwX`~J>*kEw9J-QHeI__BeA85s$iF5Wh@ zG9$csd2It!3l=6Q`p<@pd#$KWD|l(p;itrU*WWSGzE=~o(JHEmhCS(4U-8Kj`crr!DeR?_5BzeTlU0Es1%Zw*SZgkH za-j#bKx4m;{*1yw73XLUP78YiB6sVsH^}#k7=LC#C=)KCj%9>>HTI0#D8H&=XX8uM zKV!fLqPB+knI`}!Q`!@w^?xm&4MPDx;a^&@BVY`^D$bXzDTAil+BNa0E2k1mj2Gds zuG`_z8axl30I{|qGyOIXSv?+QCi!v8ZI*W(=H=|jy%tZ8)3>ElD$n$q_C0Bu9IVXl zXSG8{Ss7F@%-ldV$T0v5X;}Q^PoOfJO`2pJmoGYC4N>;;Yg_m?bNWX9`?RR$vGKEH z;HcOpQxE^VZ9!|3R#_XI^u0-ea2cx{Jb{pFzcz)mPwh@%ZKu}OnaH)vfoM<^<5x0{ zh1VBXXc0ggSV%6UDzWW~+G6c+Rte^Joq+`h10uV^O#SZcp!nP_Eb+3e;2m-NX2L%c z#OOZ3myQgFVQ^r!E(yIJ*z&;V(Q>tEycJHC|6cc=`NyP2Gl?0H`p~pOB9n0xddB2- zn^6*Oh((^Y@n5aVZLc6=7OuPC(h}3LhAIp|!HI0pgkW_R<~x>oH^Bm}ux>DJ?yItFz+BvN%)?4~$1MtzM-3=P zi6il7>x_5)oxMr=QX?dc2aj@a9QYkr3>AqQ=ip+q#Q6;`bU8qEzg{eAn)eyY{F~0f z;YdvoIOQ&0$+_+vMvik1l`_--6)&ZFgvWnnW(fQIi8#-10DA_sQMTg&W-iGf_HYOi ze1@Z{71w0HmTOD$U_`KP;MVMnHm@F3+~+OXaSSqVFMZNhfsHX{6AmDahg^y&ei@Z- z32En!h-Q6FN#m7Lww3}#X;^ONU54?}d(^!hN;JZ*)CJ^=G1~=Xz!y!pdRQ<5-}VD1 z{{oItYz8Ix0SjufK$$)v!au;eRRO#19ZH!5bcM`ZHRKRDnZEe^kjZ}gC2atb&l;`0 zJ!+PVD2dra+A+eMRThRBcc7oRf**lJkyB}X5%nIUyUPFr+45WXd6qu}V8~{>A>#wL zmuYMs5zdROL#TPOqr3}Yw(ZGnIxgVAvpSmfn5t%`)+*Yuqcg!!r1bIbPrZv1nO+Mw zk=##QVIq^!LjWy)Fn{YajDUVkn{@p;G~C3A1s^G*xg@s5%SE?K#!OBz$?rgv;?>aUeSPzhaA04LK5F$o1=VUhSAGP!lD zz4Jw73&vO|>?0l-N9VM@{PDHm&cyKhWcPbgW4iA%P1ndz=O|F;|Kdywrk>3vZ~zc$ zWWRExd@;XgkTRY^wqYW^_QEd}{AH}sMnM!dE}L{jmS&tjC-t#@$?z57g^z}1(RsKs z&{fD$Ps z+r37s?(#L>so6LCVi6(Y%e;4=&q|-b3hJSL%P-9cvMGW+dA(0#vS)s_Yi1lFt`VG_ zKfA0@4w>VQb(LUoNRBy`;L5XOa^vV1U{t(Vz*t)x-{Sj(ArBI1GX^Ed*JiegszK_8 zrr{y~f{~1zGZ@|i%(4xO))j+Fw7=uvQO94Uy?TM!Zs)p(pB&}khc!c^c^bPyF6u{7 zuuKmq+X<-JKwJ-qIO6eis(IX4Jph?m%5N8!p?L#}hesR#kR!HAB+zjIs_Ca(GK4*w zG@6A{;VZ9N9-$GEl0F}tuS{=Iq%bp;2_m5YY0X*oayszCT$o9R7Yg-NDE=m9Q8b_F zAYPsNUgv@B-uH#AE31gg7Mra9azu)d1mT(!e5{=~5Kigm@Kt-?vfp_1_)%1;#C&fk zzC=K#VJ4mrEBCFqa9#UZct`Ib7x1jf;GDk==Lc~z8PUj9}+xR&O@EQrAS zY~;?_mQ{}mi6o?u9=1s2?`ODR61)Oe2h_-HMZtAXK3B#lmj%BT5fb?wzeW7d22H7x zX=9F0JdtB&!wX>D@e4PjAJX6G`yMN~A(#to&@J%0CY2GiX;V;P5O0iIgs0I-kUx8{ zlI?+Ji$DN94_fcU34v#g?AMyY|1W4cZ<$cwCrvcm_wj%*no|WI?)}lIV;j;-+&2bq zM})&!J#3Vf@iK3Psc(Rpw;-pc9NPUOjTWF^de z7vtdvugSzyYYbU@O;h{Uy66Qz1OYVR88jzo*5UP^uaqmwfj?qx!A7fzK@|V^1Y+#M z#jyjb-idF7G5|qUm^^6N27iut7Psy5vQba7X;pqSU6 z3Y?`P0I+kB0Bp+^oR24$ySGO{;`F=KBbxKiN}P<<23mcS-H= zAN4zDne*rkC8F@ST(LRz3T^+B-ISrkKlt&#JL~gK5nSdKtE0Vw;Nh=EKep^ zA>Fo;2AumoqB!VV$0|R}_Cj_E6S6B;;1Ka5d7u2sVG~#_uUIOWs zOVmxvvH=SRWs1a7iG#`TUryP)-ebw0SnSR&Lx7B5;ToSIidUa0!VGhr8YLL{oMJ%K zLDFp8KZ20Vy1zorvqLv{w}Rn_rudnb#N;?W!Ylh8r;(sMo|3raNVY_?F!4K|$M?L5 zCw^@BREpLU?Ckv#3uHBieHTfkx4`!hJofobtaqvs$D~>k!rFl8i_M5TlUd!}*$&`` zvH_UIk<)8st_(Msryq|#@x}SruU4M{6L1}F$Y=%&QVq1^?I`~ksX zB9O;#AHUTC&2A733S~j|>t%@w?l@{Cikw&nPD_B|SO{YkSTH3wu0C(FWEYXT_BFww zA@Z#|OqP=W8Al~oebAZ8V&-PGr$rog5XEAX`yqR<>D^4o$^;5i2xNIVsa%nB4g#n} zhTEem8e$PIfbDJ46)zFj5V-Oo?~3pe|Hd06gLs#g^TyRnm24lS0@)Ji=sa9pT_FT z#ko9ts!u3YPX`94)oL|LSSb%X7&}-4BSHM9br$*h8wf(8i9F_h!!?GR(0gQrhg=Xq{_MJoO0RDt1;{ z?DyhO_Z`G>%~&ss#AQ=(CS{z}CHxb3ME*7=S*z_GW$8b3;YQbGdXwvSZD!Ef;|IHT zpdgX&kH?Fn_KTf2_7h3OUJ}{ANvWSIClUUKtXvmdy<##+`&Lk;n3yfIR&VjNG{}HI z$AG#atHyNMjDI|A`@R9$FO0eU)1z?!q~Z6~|VmOCG}$aH6t))Rr- zDbTP2CDRKLwt0q@_;ax4g`~r18V*)7HuBKm5|B_Zw=`BD*j_8iAH@Z|&4$-$*86X4 zPIV@F82I60@yBZ6WE%ajrwGtq?jYmLr`8|WnJeK32;W2c8_qmY78X?)5DtF@b&+>| z;FA%TDy`@hmHp81G5{HMjVIA)yUr)R<6O;*oCdJe0!1vm;OJw}1Q6+{>)nq^#N1W&6v2 z9&+zdtH-!z?0$XI00yW7mH8eG_gp0|`umzb3Apuz=4^-L#j2s38PvKg4@G5dmlaBH z2Vkg>@<&Ag&E;vs<1hQj2OL+{aHon_F6^p}<*q{}(TIWP96AH)=T`|kO4hsdS4 zV_>P8H5BXu+G0_K?@GU%S^bEf85Qf6oWmB~Fa;Me=&TlFU7@Z9vpjbLq&wUbFqcxq zc6t4HeRXP!SV4lNJJo?-Lr0k8Sy4+(!Ma-wJe03Kw57U=^cS5C^NQ&F81cm5TWtTD z)3qlYeLdvosHr>=iKozxy2gSDpMaLn#)+vn)c=q*%)Xz%63)5A z0`khM7DU9DJXPVsmi)1Nh}v51Kf3+_dP6f7u{}mv%^(C@_5`@GYRfZ5*0 zSm>@DXDNe;21f@teG)QM_-f#alMFB|cjdXCL5wfxV zHo(kEdLuBFt%3G!i&b>x0{mQc{FJ8^bFHjDr&$4*%HOYkf=Ap>i!WRh>#+#7ruWH0 z^{P4~21KTFJ=3XDr_OmoWF(}3_(3rqighK@lnMkciC&S%c93t^ayisHe~7aD2>d4( z8Hcb@y(#K)X~&^7n(Z0aV4|Pa#k&6mThAa2oE^>^`Hhu$AM+CJV@0Rkj}vcg4**+u z51PL?`8tbyh6CUB&{-5}+TH7bQinI<&5@bBUAPx!7n}=7ztAjcG>k&DtyVcTz35@dR;LvrooPmlsm_)x zEw(i>MWfxoq$-+l90g{V=4jzjYI4a%2ZRyVF91Z#TZQPAd=k3{(?&sP(d1h`e()3? z{2joi@r3D?YN9ZE*b7MgM)cmS(C8h2^%I^cAqo%(46I3TqGy|^J<*@cn~!;#v9wGc zWJSM&!N-3-hH}kZ2huVnmC5FP*-jDYuYuq!N{3#k?>$+|yJ_kv5>FBUaw}45v%0(K zHzu$@cc$8AhzeYX}9T^k{Hs%KdEjEakq5CG9wj?`xccd@ExG zuND498$?e&$|9eDS4mWChq%p3prz4j?X>f&-6w%8b;#J5`ghp?O^`|b7b5kDCPEm5 zs-D1)Cb0`Qp%1bAyOH54^|lWB4&8b#5==(|1hbbk(RCwUh8)61?aDHdq*naUzQ2om z^~2ROOb@tKoabyb2`53w!@s0V=+Z|;f#{yQ-MP5sDInQOJ?LNQTN>OxKW~IhW|lx! zqr6ULRK}<{GdGLVABF)Anz3Rp63a&VL-kB-d^x}c*<1?C-YlxZCm3rWMKQBS5eHEx z!(Z{A@mDimoX`{`?RHz6pe2pezsavrsE_2SI&ihZ__n02UGEg78n_vAWEI9Rk@yM+ z-L|R@+1r>tV!UVD6@Qo;FTC6l>kzNz8(hLFUdzaSGY|7p@$36_>`j}dfd_IU1zT?_ zxq{$^?D{Ntj5007bkWdSh97I$RvM*GA6{Loyzvqr8t)67k{Wwpk~zKxAKvMG;CI7T zlP_`-y5BJwb1W=RV&Zk=&VvvcTW&Mhx&N>#%pud2TJI}_a^qcuNk!|BBIa%Ur+*$~ z;GA~KYe~om*xj1k(I+1dI85QWeZn*-kE{N@mkmyd!unoTxM7awhK2n;Kd`8?+Epzewe*oc z>Vgp%J{Vk5*wc`tYcncdu6OW7u;7TS65EoAh1&jCBR}M6;-=fppu>n$Z)Qj%z=ydL_mO;vB*VBIs` zcWrHFeR&HluYNal^jk#|Ak8J)4;%0va7$L*j#C|b5!)yYO!Ri(_j7VrvlltW10N#gHz=Dv1OLgBc%M;qq)G&?D{K-<~`dd zOm~w7OBj}CSB`z?yiy_{H{vM}q3>t)P2k!3r_+U(#L(^O~J)9GCo){#@>-)xP)2Pp2 z<&1=YY(&N*{*=^$m2j?vdHUF=bEd>sPOYU;df0j|F2w6<)*R@NAA=}iVVyB@Xq*C^ zHQaPMxD0^B0UM&i=G6mHuv<(hFlWX7=D@e%hnLmL`OQ|dDK_MbvFjDr4)`m91Pyh! zdZ2G+M}ksK>^e(10P*jJ;bgwUgqfGw{^p9EGP^#j4rG-Hb9Z}C7}9+yRD0So{MzMs z?+9`^g7UUXGQSi@QQvhLyG(o;GdrAif%}%ibO*lSgPmYg8^}pzbZXCL@o9o*YOAk9 z5u&!uCsFK3?0R$j>U|{w8Sbkt%ivksuM5LlZikNF;UHa4C$k0n9S6l8f`c8z*2P*IF;9t1{H_F-56 zJk38uL78Q>(UbpmIsT=y>CcFet`skiqOph8^v@1tQh;uPCSG8uSEU|aW*Hw)m-UN@ z5dnh_*@(B|$OaDOez|ggmG+KzTif$B1!1ZZ+=)i3>w(phyc8cZ0*axCY4v22o%W?w zwdc3`T`3}`{)6qLF>B$mJ(<#e=e4RXZ>BBsaIQ)M1jo|RJvu@@C71=3?pSFc3ser&C zg#xvwUpx`k(-DV&$2)Z%_pimnYvTA3$=P>y(Y}EJ0d0!-O0bHKrWoba7^bbt@yDUB zG4!6lO_TnM+oIzzTcucf^&rC8La_~5#T)-{Gz&15{-H@wu1oZ|ueVHHm+5`_6pwvIxh-t&4xruq+oh!Vme`_jg}XJww5 zRm@lo5F6LT|BpE_+v6An8DRzZfJ0=twWU>gcD~1t(;4~Tarzp3&gZk(uZVkYo5@^Emb4{It5`2Ynk_Z)9-XzWhmVCqZZ0!MRc)q3utln@+0v z1q@jsQ~W@ko~AM+C|8(awzA&fpU*F{877~m;z=dAaY0mgHBfnQ&Op(j=ZcLBG)EmN zd#8x=Y=Nf=XMWDKh6qrvKT?GNpMaNYeR7?vyZO@R2D+b(nQ4(K6G&VO9fR+7*WV zf*gaN$r0_reiU+sMX8=ePM%_bZqkxbq)$bFBab421xjAkV{N;}N6}@_-p^#Di7m(! zqz_TwSs#FmvEkI9lfMCJ%7ds>)p|g7*lykZJ^;Pt*w48~$)SQYGP2k%A8cqEg~vSY z@5c>?1AA}2@S&C-g2_&A49qf=nK8-62{^L7pi&jyRL%@y$fc!6?+Glj+JU0Jwc&W; z<6P_9P^0tF$TK|1PMfW$<9CWV$kzyEyVj!dED5)iAT}1B3bgb6G6$^0#vo>pBNj%U zRe2ucF7jfg<=G%q9|up4^1y~c-urewFZ%SVy z2beho$J!yK>4I9Z-Gd+MPOwU=7UH|%xKed&QFYo?bkL@P_{Z%`$QsR?tb(8t8R_jw z1)aqSOcoiP#SeTWhOi0p;9#qX*F-HYgKU5>4XuWxB!m}I!X`&*H89pDoJB}@SxIz3 zM>xu0>D|D4F#BGIjH2xZ41P5#)u6#b;C;%gSJ=sjy`T+ANR3?^Og$WZU_Ly~>tv{; zu*6V=dniQ5a2FkPVVWge$`8hQw;VZgjOKhcRxwTj{G}x6>bJd`qs*LxIcb2w`eD8t z=A_ArP)>{(u_o72WU4X2aWmPN;mKf7sqBe0{aSO^C#7KkYoX1gSc|n~*Xm(Zt ztOjV;vbM&X=x&8yzIQLB7zo9W-JUjf7K8e~b9dl;Z)Bb7*mD{5@P$e8 z8MxdQSJvudKa>&d@Lc%a1(?=Yz$BxR#CXi!wY)~88+rWkt69r>{o+{7bClORL$>YB zTmIRNge?;j!?nVsREMHoJ)7KXnuR()yRwzObZ=!decJs)d-TR$)n_j{^R~F?0k7}# zb?VFHz%MnRWHSttimmWX!mA|UVy7DmzLEtmHE}zpQU+eaqyHcbSg_vT)t}Y?8jgE^ z{VC6ru!KP0eC@U*9rtvJO-Xl127$?e4~kyB`~cG382qn?DyO3b`mzUvd7Wq>^GtF~ zF@vVOM=lIKL~3(vP(v(A)jpXLc!00Rq=1IHBe4}@4ilSLGI0cqj6~$%WLakW`eb>x z1b?VEF=>gMUEl>3`)~f9cG}li9N#lIMsFl~)R9Qa7^A<454!HClTfATBvf2Mdbv=R zv<0r9i5)#ZsYZ>*Zj+=wB6KKs7Fm^yZP@qB)nN3WxAU1B2WKw?$i=9F6kG<9+rW`#kJy!c>riG2q0X-WYM78X;;W|TA6>EhTu%eadRG6rz)riFYg2<9#-vE zkoP3bMt;2X-HtCBn@2mtZy}|o*Qt;)>P8&pdp^nE{(B4bga+T z5rRZh7toNx0#|MY(Av1PcpRNQe~4m%6M{!i37qcR-Drf9g~#=$4VQ2+4rwmhA3m@& zNdNqLxKm{EIg2M6g+M%vJ8$t=d?!8b6mFcH{WV7J2N)_`J_(SelbLO&g@NcUfvFj_ z@@A$0Q9!Oqf52+!CCEVc{sxMpN%#9I2*6BXZpcf;e~s1yF3M{P0E(xJX;rp)~3I^PIaR?S6t{%5= z!C?P->inQs%K-7ALyJxVeXuj|oN%hVjZ{%h_~L3($wCo)Kz(_Rg(iUVF`A8GI3<57 zG$2IBWA`?-{wUEcTTa9^HB+bs(SSTf_ANF^>B)Yhnh7YP&F=M5ZRv9EU`I-V&tiAA1^`-763eu()#^oK2v(RGtBG8YvPB$9ffDR`5p?7rA>Z3SuFsL1ycCrwA%v~=A(jI%0OM;O7UlX09+TB6`-HAH7b%F z?tTm!?&dCCUi2U9QdQ|)MIS{}F4ZY-Wl}kmp>%iP#&cI^3sKvwFN+(64&eSfVa_e% ze69*-`OD65$bIoIPW!Efl-J>ELGJqLZEpf!iBIH>f{9sfIy9P-If{kZ8DEZ?mE?K1 zUhHRZVE1WGX~dLq>mG#HNh*03W6vVsN8OwrYW!TJ$Sk7G4`s(HFxoDt_FzRNn^>$N z?d9->x?0LzFdml{P^{mL9y&Sfnwf?TEA-{Z^g$Td=MG} z{Za2G{^@x}ZprTp-!-DQcb{DS&|lbmo^y_pDrLH>oC>|CF#mv}$S;fYYJF9l@|KZh z_dLY*diPUT-j&4iPhUBOjB6{*v8-e7M0nkPi3a!pfvKx6fNaQ7i@@pn%7nDxJMD{J zEkEOPvc-?q2kdJ|Kq?b1jT&5EH`|+(6-K&A!(&nhjx%*>u%bh(13t+Hkt&ichh;?l zk+}9_qj7$v>d9ny6-6aZ9&tyc#@$>P>Mj&-BMl=MWT`3s)_dsAvq56L#yq42@EdXx z$!nGx2tLO)?0*f?Jsk(jx_A^)N-r;Sc@?j^o=K*#L_@Xo#pr6GcjA>`lXkTElZdN0 zX6#rjc_;PWV}LZzJeluLQAP|&;MbO^!*{c)_z?FeL68_L+Je;Pn1+twxPX*<9Y}X+ z<5O8kJz^*#5=s9MlVTfytc3uihYfS;xFvlO(57&G(9*(7OSmEHmq}a}0DtOl;3V5!jU5#B3^T+$Xl@zWrL^C^laE1i{# z(1bhQubc-HQLC@Sh5a2o0k#QU4{DJWhFAVLE|4ov-umxEYurRVx0q(1?9_%i(6+jq z8#%d#VEbp*p@aPM9xM!r;cXEQgBRpP^kcTi=2E23R$%gX^@J=-2=2;1SmC{$iTdp# z42MvceSsqz^~I8i)-Wwx!NcFx&Lw*yycu$PuE3sdn?Oc0DEi+A)#x6Y-wvvp_}WKq z+no|!RKjUa@ZQ9s3gKUDL%bro0L)N);%#P2=v@b4fVXHSjZKi@`Y8${jzOu`IL4}L z=@v@PW{0U1C!f66En9z>|I7hEqc$5Ti^3q=k;Z&@`*BO02-yY%+V@@u&5HuCfPB;K z-|07xH0t%ru&iz$%)B^^YhBlMj>CW`sT;ay=OnH`Td3QX>?yr3-;xS>SrYs8^G2i!>=A~D~{lM&#dfpcj$KcvvLC+0?I zU++AF1=@A?Lwpf$p?}@77Mnm0+j7a@I^aR4P~>MZsOw6X+96N=0K@hfutbhq|oKNtb68jD#fuCB1B2n8%MT@oD7pZ;I+|<%1BKWxH}h;KM+v)H)zP_oN{l zutUra76YW9G%*>njIny1-fv}m!l;gtV~y?BxJ`&5>njMxk2zHAI6t1PCZcHN-QK-q zJ8B{^$TZmuaOnzTc*+PPx*GHdkSieu_Mgr)ymgR??1dhH7O(bn&@O)1?edo6Hh8Kg zIG_`lg$O|cr0+^Sz$%=lPKcYsz2ebHHQnVsa49O7wqBa&=FfL=yoPi?z^f-!2GK-{ z-OWm}$F8&UX7|>F+m>0EMD{9RX6{>Gn)w72)&f&6Fo=1MR>7rub2~NjdvUBLM42Ll zu)U7h2nYWRPoM*5C*OOTjxg%sR&e?ay(s|j$AE>WvEvXu&XTz2k zx(+MI%dW;%qQeMUVykmMvD2xl0_w|;57HvyY`ofThlYfWmk7HkW{(YO$s}z9&u#V2 zKGfAz7sr0l1uBbm)WkQHr=9(n5IG$j`JM4*lf8E56*Joy3qeA2(GKeAi0Tl)#SM6} zHAHRI9enXn{cA8pc6fGe6S$MqqrzG3P8@T0*k!iZku786$b$hHO@Yv#Ea}Wus$mAL zmo>sWpN(^K1ll`-Cz!QsGYrrSpp|p{dsUYa-OUjydIc$_<2|^c^?6j_F~R(XshVNj zn+o^2IhP-i%>S&=x2AfAHXX>GhO+J5ZYd;=U!qp%TG;jWK44rNSO18b|>3FMHwNkO?3Df|SWwEY37P}%f z{?ofGV*L}W(~8bUQ&Kr!wk^E={ay!L9O4@{Ay4wv`LMn|>2M@jnM|`rPNlrJ!d=zY z$->SCX#|AoJRs`eNJ)QKz5cpUegl?EApf6pMdyp2QcF zzBe?douOPuB+Pw+&N!7*oNjK_y+?kTtMa7bHi-_qWRCCZQw}ZN8B@yd-b+C!xX}P{ zE!;1@HSyB>LLi899)!?nTv7`7a-}4LO^`8BL zAu51_v0<(p{3l~HEY^l4%j2_N5xl&(V8Mm>6yG>*!@CH~nMZ06PU{4q?@F+ZN`*jW9?}AQk-sU6l7S<@n%5D|9&lkD z*#6D0D-f}WO@Lx+D_HV8S`|bENdXjW%<7mbN9I89=1=)`0o- z`*K_yDq<4tft=z>w1#aK)>k}}vXnLRMr+cm$5TiLZVcQ(Zz`Gh-Y z*c6~*x$taafZxwY6b*tyhJ-=n?fxa(v3MkEy z>{>Mc9hj74d3fZ>;YHhixhD3QPT7lieWF-!NA-X6k)z&8H8`H#Tg|dvfd*2rTL%Uu zZ+C$JVjWfhXl8@nEz!D}3m@?I>bf*|If45bucvy4^_Zo>DA}2LM!i}$YKNU+o#wuy zFX|w6^O>su;aR$9oRB7j$~EGDzPLfwn?!AZl0E89bIMHd))?)tUQN15^yM|5y%Iw4{^Ybafju$*)s8F{7@l6)sXf;k{S2<+DT>GY&L`vDRkg z+P~RS3Y+Z9gleJRt}kqG<9vZl(jqbhe{>z3yshu@Khice0_-g%X)a{0oH&S?=ay&)l=0k_EXix~oElmCiOXrc6!(?NbtME<@%%K`vv@?Y1(KNN>o7Ct5EeOzL~;=`sg2nE&e+ zzRPyxcP6dfu`Rt@iC%kMRd>%RGwXnDUmL+b)`A+4c17i8FCfMXQxb3X_12x?_X#OG zihe^NhghDRl{n6m zF5D=PAz0)g4GIX}m4ilV(gCNa+=JY}VRWXv^i+C^7Jh_6xHcv})ERajZ&9o{3Hx5! zaVues&L(_y7zwxz2T~>>iE-r&uoHq3TemAEsz6nv$5!oeJ~17yOwlO1D1irfm@6f2 z84f5wSNBa$K#8MDj8)}6PlqcA&gx(QpIcj!!b8!jcqsB3uvynnEtq3 zME1fsDman#tIf9%E=`|-+brO(Lx^_19`%Vs{L}FHF z_93tqtBR|*fRA3FZ24Vm2l6A*-(?P}BB7PaX=R>MDsk~cr_}bYD82rwQ1PLohKt&M zm{;doFpZK@F6SVBMP+Jg0?9+~K?n5gD0RQK9!F_Pl!dE}AxoCGYmhR76godSt}rWb z##4y#Jw6vFt}r)tkj3!7t&V4SwSwqh~j}i zR(0+A1uR@3z*}@63?xuN<@u`hN?x;ys_cJCNIAQpXoL2A`&*jf1=u-(kira+RsE`* z*stj?pCWiI%+Bly6EA~!-(9R1%O3m6w$PSlq&b4P($;OlOw z1B)TCmjmM&CFPxum(Pztk0v9I+#C0#CG!elNI1=`=NmJ-Wf$PwkggC9X zOJ8=cx64gF;7~A4;kqrPb|Kx0~W z*nJ1URRmUoi7QU(Oy`>PCDU4wA(d}R%ZmIw>p@enxzQev+Lf2egcjVQw&G$SR3{kt zP~OnUxEwhXltxF~#vx2*z8ompuwc1Ks!8dEg>)0u7aw`PW<8$k91)&>8cvOLSIRa0 zJhTPGKlHd&0S=bF>5s;Dnm_0PeSIqvP`m~TOH>k(Yk=s7!+XgY2{0bi`HK8|O7&H& z_fT^pr9=q`oYFKP@?&N=Y*iDt=Q4}_<|h&`;n#43U6ov*Rk=Q)L}6Mc#po8+cPEaV z8ywu2jX}Gq^15#Tn&5k-Xz|?FDaJf|dCP>re9bct*aXa=tAL4jU{n1u96$dI5<A>5$L*9ae@KKHUD;Tb4@FGOP@c>C|nO>=G+kaPha-z;aM zPwYotOgdqThaiB`l@10dY%`QCUXlLiaS;!|&zsyhPWL>6H@Hh8Qr?xpeTcBfKb=PF zle03aEb=keW(gg{{Ll96FS3 zX?hulkoM}8lnshN6ejpkY)+O(8XJK?V`q8T);xFYDX}?HLgwT7!rPslzR<|_}buxzKq^?~syO{Fd(iLUniK|V8{2482s)1o}9>azf zfoWI7S-mibE%=>R%bi)g;@X!9_|TddgSh&hTyGB6JXm)8*2l{>;ggpKb*l5&04Gc8 z>YUH{g?K{m?qgv%sd$}ZT*T^USCoQpc?7#{0+E>TpOG%3W;TZ`Ls@gfX5$yrWl*3> zorML0>r#sWOTx(a)m?XspGZ1tQgWfs>?T8Xf-R!q03Zkn;A(PWSe*zf_~tQaR~pbx zm&|4G3^NUhSLT|#zD*2slTHySJvJ|ZVgMWbPM=0yUvmbNKehz`M1G}^LQ89VKg)^$ zTHp?~6mw#ZHTfee2ImURm>;rJBYDK*#M;#GZ0@wxv(_eh8}2PtPp;_5!~i#DLWAd1 zQ~GJ%H6;S5Y798(@EGKTb*Ycn5?Drp-yOC-P$wnAS;wl<@oxuOSi6Ney&yH$g)@`Z zrs`5c-rx9IWN--8wEwhAy=E_s`-|H9$_>($cGT!^%(~;s$s}X60RKM#z%1}_(LV+V z!p@|bB99O6Xf)2xA%JEg3G95t4+8D)Oq z2o<-lDe9y>OW_n}084&Rsa=?)#}hVPS)EA9UaeM6tSRSvAs0C9hR&$9-ov=Zk7~Bd zU)C-rdyK-TSK!seOTznrMI0Lb$}eG*_d1+&1rhYTV-qRs#s0X(un1&mi2dZUx@=wt zmTX1NS3{7Fg28@p{QULx?=@oOwY=j>akINs;g6edGNTQG^{{~U<8<2axl^mIxEL-` z_dbZfJjLqMicEMdGBl}`k*$?L97P+l57m;VIm{;lRy_>3RGw`;5)O+jB{Ka}-9B7^ zCnB_zpg~V`Ks0cP@@?stMMcw-&pH|SWKTBJ^$ zB798itU5a?AaY{XS?&|N$OZ8ji?$ekXJ52_m!;SwKEX{6n`fwc@Ir;m1@N1QO8JR% zJFH}hNTiY_t84w{oO63N0p$!2yKVL>)w-?h<_*C$}OD0zxJ16S^&+H8j+ny0nzyOt0r=A=c6*8!^7+O>JAd-hRGk)Q1! z-7m0l3(C(EXm1P_(^5J6l> z%ejlTU(i9LOf0#L?b~{q7_R0(WPL5f3fis_|CRj#;7wNc8a;X#&{%ArHIS|D=sqi~ zY@JW^E5KlvTDGSb8{*0y>}&O+0HU0*x;F^Xayx&=B+Lw1JkPCSOvc9aPuUR| zw>_RVA6~Au(bgnGlO=-{GD?28tz!H5i5}7JV%h|Z(g}%11%RsHfXKHz5BKlk z#;+IN0uUV_ag?9%Ysy(A9qcr*=Cy>K&7Cdo4!~x?fo-Z+r65vh9RIz5I(P1EUb180 z^X1G3Zo%104+z-B*_LJXpX4&IAWqg)b|7U(!jHgjZpwlV+{PTE)4@ja#3-Z|swc+8id?VwMb0H$WF%`)?Dp{yGz6#qgM*AT+7BzfKMhv>N%6Ry*y_&ndt~+fTl13&Gm!xtZvECCl#cimEG@t287@ zDmP0>hqi4Q&V!K)unz;tZtwd!vGs?c>uBnfQ{(&g%aQh-nW)^=_2UPUoESMB2tWb{ zhB;)jtp~<`JC##ZduRJ+V`~MQu~Vg~$V9h%(+xb|vL^LB9bz+$StqR6)ooC&4n=Vl zB?Jb%;>;5mwJ)_R>$fq3?8Q|`OgFc!pUC=dPW+J22G{cjk@ACd{>3MJeN$bO`39Fn zFJ`cxqN|@KC{Sr4>37^JiXo5^#NEj2WFyC+Ca6Wy3tZ{Z`4P?f!DTv*79_|0U)Y20 zBnB6Xb(ZawkfuXWxf@q~~iDStL*nbl#LNDFRedCBv_c$}J)5GLRR&2*~dSK+pW zNDVoebDt9D7J5Q9JtKq(=fF#;WYB~Uv50qe?P)!ap4*{@h(c@|$B4<6{o+B)Z#magoxc2`WQ0aEF@D{64 zDZqM|9+`Ro7N}APpE%3FraUKGSjhPokvq@CJ(y>V+29)}EL(&ss&q;}quYG{ zNW;sd-BlVz7N%}edP*IVg><k z>he22gJbf|qWFV4DQLf)row%k?}IhJtG-8SQgzQTpg(qR2HX*QZGjRNx$lprzVfiz zlY+>W17Dh;xJyy=eqoPu4g*>qv7Db8p$A6k90Bb!Uc_gZkwn+^v9~zkUH-&7No_3v zZkFISKCnI)BJf0ohW~~g^^5M%36*77G1r2?OO{_jpPA7%B8fSFIOjMZR-uNf_sxbN zJa2J1q^#Ssf_Nb`xnMW>(dbeu9pYMmu>0ZFIo6%d96}iEDv=%|MRSi$MPB=Q-qCk; zfI=KEd6$BQiEM-O`pO!X0D3%B;%&jHG@(fz))7UaM`SUe7iL(l4YXEQ)l-zL4M$v$ z^hNBeb0#ykZMz+lCQ=gc5c$Swl!d{^$LZTI*@~j;+u0b?nh8qdF9Em_(XdTKat#4f zq!ErO{6Ok*pQ@0T$=Szg8lfZ|5dc>GQK2gM0FffOOrk}Ei(P%PXwL|-6{v78`CC`R z;f(j=-WNiSf`9QKTw@F z{p>Cgm2?wmq{*Trbm&LBwX-C&tuFYyoje7AM9_U%?H?R*te#8A3_%Kp6MXl}II_eZ z{7dAq56^jS0!a%G$u8JBWF(5AnvV-w;dS*udw%6Za0c!jhK>eRND@h3pqEsYe7w!B zG2n@Un8EEDub6ioETVhc2^GNf9{PK|%E55ghag$8AY&jC1TGAoiz4yzw&obWqt<$2 z@?>OrtgGj&BwG>Ha-)mLZx05yI zgYPq76Y>Z;#4m0dIzP7T_%XPf6foXCdj~xb`!ce;bGt%CRT|4D?q6qY&h!D(Q|l^! z-#&$u1u{r=eluIHCeHpOVK^ZaBntkmi*o~Tt8^p&5xI_AiEW@fy~s4%rLKjS@+#r! z299498Je)F(Qy|mlmn3}l1&ew4^PBux*_Pb9J?_aDbZ)HkgDM+RekdB#eB6$JISXG z{@S^*@ku=6hg~hsUVU)Pol_nhnd`S9(zcJ9tR%#pZec32!uWoQm3K7h z{W0`4EW67J1IW;zH-VYAnADgC^&Tl z_(FoX)5Bd)Zi{rkZ&iCyZ zlO;boPV>>xTJAPTB8=y~aSk+kKd}GlPZsWWDHE^Y=_34g8`;2IzPibmu4J17lX>As zNhVGpyp4Uj#5Lz^+#&wwj#VRbO9o{qG%#y4Z^p6~SNR3Q@k;Vow7~;LxvZ!gfdvJw zzJn~Uf3yP9uiCA0)&yWI=Jb1Qi1=O{9Ty(jo7Viv=ay@29h9xy9le<_&(`upqh8MI zfa2IRPlI@a^q4L#KoVq7;e>9)UfS9!h)X0*{D+yz_3GemgWO=YdquJt_bH9<4ZUac z4&N|{1EY5m!Hp#q>%2aayD_J|c2@INhNPcB%9@{$=>)Rw?vH~)e;5=JvLZkCG$nZ< zi=VDw8##-~IwgE_A+g|T7X1D(xUgv8Y$gvL7wh=QnFoM?&dc zQle0cT!Z`IpAr^u<%y!E^5~F=^8L(p<1u-^f#u0uSLngWKClq3o+n5?ql*C^Eyabb zMhlcG80mu?z6ESn*4sJNhL>ljE$nYS(NCizB;EIs=(2DN&cP^N$U6)mK(!?grK7*Q zgQg{uRff@qWpwlQq1~42ScXC)rpDP}>)1%zA!gMLHso=reWwY(hKlbmM__6c&q=nk zo_b~PcDLuRP~wfWc!qg_l-1WxoJswG#WI z=IG$?Wx2`t(`8U;w7baip17m7(v7NB6`X##jbqnRYN31aV}OPJAvpt1QZEFs$U05} zlR?H=Ect`z#Iu;?ydOOUyio5Cq-L4g#fC#DHzQ~e;8^CcCdy+UsOUmBi3xDRi(C2e zI#8VAb<$KL?9|SM?N@V>r-3JweR7f@llczddg^_5Y>R2~0FUmGH|6I9>k_(9wDIEN zazfy7(pKV*0S7G|^ku+C+3(OsfF3o9a1a(9MN4UEjt7?>=_Noa9KHVcwsVOJqow|% z`w%b0VrEA^>L^vJC@te9UXtI}8|m(`<+j+{99#(+!F5}&MCS;`QI4GIeAY*Q3!E5e z+5B`+f*Z~efNUmInuFi#UP=zn`pUiw{cPXh23jy1ze@ZuaYuDS*w zVjJ2M(y7T+$7P3GD6M5_|VP+TX`^Cua2CXaEt%s zEH93D3fQdIs{sKKF{)DAkr6ds`ObAWqnr3H(IcD(j7PSv1?Y#$0W1cEY2&^_Xmx!? zylu@BNI+Hr#+=oGEE%6Px>Cy2zdi5g+!~J2%ZT>^Yv`JAGq`34+tXO>@39jO$t)Hr zl=pmyFE1 zF^pj4dVx_!iyyv_W1*oFyX9l`j+i`qhu-bn2wk(XNIjyuyv~3gIn?cCmg>55 zSbzeFc3n6(+ZY0Bt)8=tOPKhJnaZ z)Bm|d5zGN_k;#P-T>=Vd<`m~rSx?DC2}kf}z`4$ntBJ*vNkF)Ihm$gij*|m87-7?< zqk}TFh)ordge~vVQJlrqg-X0aBspQ=yDT}@;kn4_A@67h`fE^x5_wFy2Ehc||16c- zHfnf_OYo$>hP55zARg+3Fi6QYCx#KZB93y9$Mkb6~s*<5Q>z zh*TD%VhadW#D_=5xjD!ov)M&q9a%*-@tugw=%^?yd)%lAz~Hu$dSu(9;yq5c~WehEr$=<21<0YWb z+>b*_{S3N0YKqRGY;xjwA$b8M#C7Eq$`TYD zLv)Zdc6VpZR0|k^@bq*V7TpU&pPvsQG*N_O;+{IOImtu7A0a??G&>q zKMDq-=oAFahQZLA_{4d# ze-C9di>xA4SfM=7Ov^$iIDwF_msMovf*mPP5aHfO$Zn2wA(C>*D(P>eG@v;%_Qf#o z>B}g~Q+om*m)8DElNIuq5Oc1a(nD0mLQ+cx%QIKG?EOc_L-e`>*9$3&m2ZT3#|w2U z{zVFCZkU>T(k+rOubiY#8B0y*bIvV_FpZF+_&zhS=Gp)A`V$d?uzo2=qk&Nz*V4ku zl8jEA9}A^6oYP4DH3h-=6}a`dku@K)h-bD#U%@^r8kHa%w~YBqXh+t}b-hxlpgBut zkivut03gEwHmuG69q=0AoPlxUXh!jBYZo2;_1)W`1zwcofrsn-l?BYGXu*K%4f;5( zZ_vZ}w44h0mxQc$IKt6d)JX)q_hiw(ncN(5`6s)B-#L|`M!I6xv$q;5muAgo=dpASgoGmDQnJ7nYQ;M2vM=pW%x9rV7upt~ZdMR_?B zwp1Hu2=|h&ioO^qAFH==OBDWgBI+Z2pJ47>`GkhzvW^B<*EPyqhGc@kk5C}ZYss|{ zbhwO?-Gfkz_CXZQd$?e+JM*!pmqMTNi(f^3e`O3s>kw%+{&@=h0TW}w;d4XClsJ-A*e;p8wGKVY+E-dSzV-itj^!KT=#L#sm!BJBS%lYaiSx2w zp@XN_NCjpF%I^6Nu%C&CAwkxu7e|tXHEZrsUHJSa(9&b(JQ#REr(+)X`^Na6E1s@I z!hDc*>XY}tt65SFSI>W8P|GZ=U~fCSiirjEWAg^M zTA*yB)XM5~0w^#-x!O?YFzn$8jKt){*{IDomt_JZHI!|%j5iUeo;S5HaI}RO^+xKl z&5H%(A1-pNW`Hs=npKqhK(6z1Qk7*;uQ&dN%@;LG9&!=8KwNCj-}#QWzL)Ooq(_zY z*sa3?`$8>+@Z<$N?=Xpy6|JS592=WmV?^;%EU52J<(va~r*HDhzp&ejMmv(yiBmHA zX%-%%<0^jHy&Y{xS-#>r1Gi(F5D4@zy7vt*CFEwj->_&c11p9k;=)9dr?_se`jm7$ zKxIRxB$Sc5v(xbNX@r%G%E|5m_ot?{DYS$AEv@)AmJ8xw)4{IjZ+?x}DnSeY%T!@t zm?H#I_89CI3!79~sOE@c`0-C8B3yvsx=G%E8L;{(A(P9ih zK3ZDZs+a*GTReg##Lj%Xat{=`Fl*h`AEtnhpoqw|`&dikRytl{5+$~kT!rK7b?u%U z2MIc%g@j|5{Wm0yOuI#0;j-eORuZL3K90+nk7|^x2JX_8t|L2Q=bZ_js`qR9^wICg z=1d{0e#i4~yQG|CMhbt{GSE*K5wCM;?GMeSn;r$IaGI$Hgz8 zZc|U=;Eb)!^_-ldkh-uN>yg@%6N@gsy&xG*w-oKOc`<3UF0EIkwD6UK%fssj_Z?mH$yb1{j~o>{|@5e*yJ@&2}4Jj_l^P zS6y5KQ<%3gRoD#d`sNak@Sd4kzrh2-g+|6uw)IYq7gF>iaugfB>@v^crInEJnXGDx zOXD%j?wvPbXd$l+b==xLFn_gH)MBC3UKj38TgFa2?p-SoHXS@`Vq!ia#VrPl7C|vF zf>3!mHErVFXUy)MGCZ!3YZ}?=-N+CSSzEjEfL)%rLLod;J5@<(c9%5!{b;RbV1YLk z#)>j8Lq)ENcFJ0%s(_g49Lik~xE!$Cj)7=a#{gvUrSd&uD*yZS=tl{5^O@6HB_(gN z=3CSg?4)w4^Gm~kKB?)QjJ*2Dw7 zQCS+GKB3W3fH>%BszM8+3AZf7%-Jjr^=X8m8ZKV1i`AOrt2O_3dqyPXf&DTQtMf+% z?v-Oho3{W(iy4I%2w)N24#f~At@NpF7{7WL1a_w26Y+kVE!JV>M$)H2qEXi{*0N|_ zoMT2U7G|M>wtd5!Pg;__3v&9{3G>}zP1&8Gi!>h?mZ+RHMQcf;J9Hr|{>YU+2;%U$ z%bRz!sJ;Cfe_R6|f+Bclh+ozba(AqTX?A{t#Fa)-lY@J^T7TIUTO&fiVihj^te#kv zIkH11qa;4!GZ`vD6a+D=YbIq7JsV&u289;6(=R|8>Of@LNTvFprktf_MI0814awr2 z$AVQ9-Q;(|P06aXOPf42z?@H8G4b8xpYBI8k(k4?sOQE6y16rw<=0_BS`$&(w%Gx8}%M7qX6 zGRNR@`h??>>@O>MP$!)BI98ick<^ej*o8_MEll0G8NuHsnkOA?9`Oib_zDB$&6xU9 z(>7Z}VXjOhQR~!gdHX^pTvh{+EAg$G_3WjeztWx7S003*o*9}F(iE7MBACawzk}!p zB_0D>OZ@+bPh@-$ywF$;bopLU?fg-8dTFPdaL3<}5S-JHO|4}Cm)2ki@?I(3&0}Q~ zK^Q1{e+@t=QT2%a#m4}57zF7uK|BT4Uoxi$RH;ti%QTus2?N5-nI#G zecz=ULu^;W(E@eV5lQzrl7%iGVRYfZoznP6U#p6++Hc<&lKV~Ada)yJL2po-2CwJV zr;x+sz%fd=!MyZ5PRM~o8v2J!tqi@%dbmdK5MUY(z%uTkr$gfdRM-86r5#4W4oce! zy_Hx^s%WO&6Tw0n?zgDMfl}#vUs>}^!q0oNOS?fg^xF%RnYQM4@egb+Z*m{Y02GDk zQvkhE+gC`6qtTN%UASRzk$&YS*4c3rm!RWl&?2R%0YDjO%_v07!NgeS$4R(jV|G6=ZapX@xgM-wu z_O{v+Z?=AbaI5%c#0YDyYt(XOvF8W9gQ@YfEL%!qXJ!B5CO1tymEbY1Cu8&-sy+;`i`pw=OO&SR= z0bg@2Dv*8E6hs)@tCE8_73<68csSz4_l`}X;UTXHlUN-#5Y{~GjtEkJ;Ib-baTTu= zeyo^*Z4QuXxdyrhLC>}tn(O!@$Lov32qjTS`FL@B#79|%)ia4?ENtWKX98;f~gXb+gy?F_4?`GxMw_dCU0Q_V<5l7{-XW7=De5?#!aSk|_d;W|0ec`ZT6q%^HQ zUwZ5Rv!o!0KsCszphB*NGS{Q2OF}2umETRWEzusC2>HiT8y+cL_$QabDJL3T{20)J zLo>r9V1gOfU<)S4(Cj(`hkWiG4K?I+1N35J2)PX~gda5&mRbKD=gZ;qjJqhz$ARb0 ztyY5MWQi4%36~>8WD4q;f`bORZ7=Pwjiy>SX49@vgBjxji;>S#87Qd*zGnZoc{03x zRGUg8N%Gt1KVfjJ6msr@-_xta?g$h>a)DgpQJ-2{sNF~^ZVAn7+O`NA#<(qBd9$aI6v8caf z2>pCFok}8$)%Mt4;9Qd1g`2o1@wPx#u6MQfIpZ3)>a#4$@2g;zotFVLTp}u=vKnD4b?f!EsL$U~S@TeP0VA&1Fmz~p;WMEMgJHJRs&e<@bEDIt zvxHFrbze(#0!u*tX~-)&5giuFd3U~qI-R_$y_zNBBBn*6ErjJ_XKg>%0;tii`unLs zVZpLm?9v1_+liC%$hLJR(>_N&O_RZbnw7uyHLNM@a)w-mLZ{KM2`T81iF6NL>3)hq zqcv1TYvG~Q?jAE!3*uRp&yAx%@Y{V~L2RQIkEm)O!;|kEGF)inXnGZgn6n~3>gWSC zpiyvJy#WR>V4dezo+4?1ELu4ZH_f3U_yy{nol2DXV78n?WuX@z?>gAYu7syB-;7GK z3Ga&s&-1@ExoKFF(XGHeS$|?i?#dvP>FACOfV&ik<6fV|{FNvOVBQYfoyH@RlcjoN zB*(OO?#nlb0C>tRe6yr)e=h9aEylbNit;J{rOOZ4AHIhHAAH!dy*ASqW``xKU9$~t z2|)*~1H%vPJ6c|4^(!gzvJ^_pKwz;=me-19>m2X?SN4!|LkR`<%Oz4}d{=U^1PSch zJPSLcs?7ds}(B+;GZbLO`08cAvF{%lAYIXk;Nj| zY97nu3FXoy1t)M~YH3!lrvnZR1r904B^d&?{MC=27JM+ep+l%$i$n(K#Ng?u_e$kE z1@`&FbeZd$-#rXe5aEoTuBC@MBHs6Lp0EI<2P{=4#fucxyh^V`H0IVYu}-MZopDr3 zbmJWhMg#kVLE#ta)^o%YeAf!nf0WIq>0}8uJ#sALnfSbW_@B>1ZWvJuI3KG%InGw5Pa|=_qosEf2O3nlTfaK= zxom4pI)PgX)^a^~oUXJYjT58+dz6$ka?}qI?jw^x>D^n<`To^N z2uE7GFrzMXI6d|sZ^ehobi=VJ5xJbW=|}YeasQAULb|cIes4$JCGtka!7zqKgE%h_ zN_Si$E1ssF%&Eojg+Zn$@!?|vk=O)jKY41Y^1*j|LKL3z^VN2k@iiS6frw<-R>Wli zQ3*vQTM;7p9vAdw;HkA5pf(^30H>67j5A)TxO;p!>B*8lS#a@%Xn2GtjoYFjR4!k| zO%;!D_rv-M+&)-sU6zFAN$&hi{HV2*KjEgr=Io`%z27WC4lE>V`CXM43P^_8GPI7B z%d1El3%&dc%VO#KtM&ao#4*8-@dLhbT)6CdSNEbe=oR*gZ;RS6eSC0HOaroOsR5?F z5lj4|=SBPuSf2-9L<)zxs9n+?;`uA7hE{~osvekeIEhAun4G$*9CcBaEo5hLzwNHr zw!m#?M4@V}egivNwT5?|ls*8iIpj$7p@%F0lDyHA=a7T@ZMa{b9td~Uw`}##&~H|a z_&cv{s}k@Izo=|VP2i=U&NF}DQVk`?`buM{j+78OSyEs);0_FfclCgnKBI7OML#k! ze|8b!Ui*+sirTQPhoqs{Km3HIDWFE$nWwcLVU+XLt7HqS9izp~N_CBGQieo#rFW%~ z@YVIHCcw&-+B6ZaOM4OLKhsApB0xdoywH7p>?w4y!2T7Hf>g;^WyU*+qDHw2)|2y6YI&Jy}$&f5$X}0;jF1j?~~hjsrbeR&;e%syWpPKg4l2NOedCtdG7)MvnfI* zi#?ni9sSJ!=4*fl@ zL*^Uz^+uXBs0t*&T#;0l7aJkBP0Ot)w65$OjV_{d|7E#XufXw4t|AUx5{U1{K`BLD z{Y~E5M)`h9SotaN0m=8Vw4YwnHR?tr$XS+?1zNT_nc~_|B~7j#CLVwKV+(cT#6QRp z{WfXOXKifU-J%1Zn1hz`2E%y<&?v{r~qRSug9 zw39TpltqJ4WgBCK54lT*SmWkEE(Y=_hw;e@@Ux2BP9{mk(N{|ZlPez;&&~4u1c>HFr*fTk0qhXAwo}N@`tbhrYuE9 zSZ_1er9uIMgAiFk5=lfL9ID87-2uui)jH)4;!obIvF0-RT{kZKYww9W@^gY9`1_9{fx^@@hI@fNq6k{R6je9;y)uQD-qmu9#{?#K;wk_;uw z;G;IX-co*+c=SK|Wf?3x^aA+YJX8RCl0p&vReC&fvT4J076}rEqg|i@d&uj{Jee^4 z$n^4=ZL|j`ZYPRC+(+C=OqnEjB$fgq92TUH%zrSj+?ugF)3+;gQY61a-oqbA-8Ngf z2cHHx{SHWrUyipan|jr}lzg+$4KfFUbg39n&~3xs@?3t|IN57|-2v+g1d~c$8WCoj z-T~_42yw91_`Gc>@!cu)e#>hN83;L`#}xbNqI?x8B|Q?P7jPOVANGtgeOh0_T6;*9 zf6}(1x7ENO#kYtzT`(mWt&n=D-a}S!&GAsF&jk7>>KGPECbI|ts`Ac}f9LRVxEai8<;2kMv zwlata3ILJ0ijS-1WT((?QVxhaf@eN$xMJTDwr0GCf}QQ%WrT3#69y_ftJa9yB)#5P zqQhX*;Lhc4*eqPoQ^946_@!2t-Q8Uus4CQASFa1v|TDWNg- z62QneTKGz6hv#21GU7-rBHCP8duShqrW>U{50Z}$%Di1ArZ~CT!}X~%G=8eH=%&S- z=C$(gN3JKprHiB6*OTsO5&Mvf-PAfTgw{`TL(?LqI|b8=V#^!>Y6 zi24lSyWH8_i=u&(e%_BuGRcESUfG!kd9pA}pm+0L6YrG4v>X%S{TG9&O-zPK$v9je z@GZmrWV5Ack{nh$$kXP5pF}~14H=jQR5XFnLd5)`v2$QyAc02qcqWuNe<#&M8ZyAM z^qzR-k<=LkRO`@v$%`Y)GTp3dqhp~^8P$Y%6R#7TjA2l}sKWWN2~^Kcozkc=?=Tgj zkJ(~fw`g>P8Kb**cv2J~0cHL6RBz!_Uc&1dK;-=9deOB-$xXXyz?!NXw$OT={cQnb5^!ZNMUS_wb^4#8rJM{hdp>6up0i= z5_8V&^*(pncb(PZ28%icapp)D^k4+pgZDR;YW)ekdti~owA2wP%^4n+Ok}#}I>wXC z7J?oziC-w`Vz1jzEFWfp&)NVKh4g0sV<)DuT{ImKmqw2ZyJ*Gnj*_KeYJuE`y%6_` zPw-Wh$uW1KtCZCSawSb!&>eu`oN8c1^8n&P|C-W!ieT8}t5%c0O4yp9gSM$}15|l5 z;hP`NSzHCpQWP82t2+R7%Nnxn6C}T=v5qw;_ zPg9ldyi7-Szy7b#*$(o_ON|fu4QYtsK2*}II2uJ``jp=!>KNNC?0Xj#!Q2d=v!x`O z$(Qmjwj@8f38IDuY1_qydJI+YdUxFN4rL#MQh-nzwwxXjg;i+WW*`aK+kpiCO|Om= zL8&n12CaveH3;D({U|i(0FhEQ64xA()6N2CRE=R zrHq0jYRdG9%Dxp7ogq3Buc5d^Z6NVV*Tug?YLqR`l{q@OAal)fKU1s)3*^t`v$DHV zm3gVc`ws8=t5%;&RgGLp?8T(+wL2yo;WT*2kbv%*W{w>5QtsR#7Cqo1vZaKxj(u!x@%y9;rqr(P{m4` zcFU=-mz|^TzTuBrFEjV?U7S3*eRvbB+N*UIZAS*5fgf>R!$4y=1k!e{E}^%)Lv`sn zDladJ2CsDW1j8^DT(3#xg>Ex2uj>^?|9k9W9d4sq@Z@qK8ryL4|K-Bjf4C?P>TBof zQ&)LBN1=I`#^g71#$|~WaI&iG-^LiDfxs4!iPTflD9~|sDyv)FSERBrT?eTTU_x4K z7*cxU&(8{N(1lL4Y)QrcAOE6o0D{CLv#AG*6tn*kUHSx3dC4k!KWac(XN$5MWB}=H z$4yr24qg}+M3sc(kC{m`_W_d$a^zS**kv>pSB}BLg!4FJ?=Kj4mv=rEQNfX4^;WQ2 z0%$h2loT`DkyN{m0;G4I+Y2mkm??UXNPg$aCI;D&gq{JBJla@*cHIH84EwmqrSU=#b8p#@I0t-ti$5~C`} z6-OC^n)pil{5`)of6IT}Fy1G9&_`o|XYV4m#Lk{Ol4OG~zztZ$B24MXUSmEn$J%>~ zM7&sK+on=GnPOwmXZMjHfWf1f-)vCTB)Op;dBz~!8GNQ|asZ{MO9;?fuigryyNmSk zG|YVK9yI=vjAXBrH_pdFwd#Cw&I1azvB3QbG>ZM8lk}*}xU^Z|z(#5vZ~jY_MA!8o z-tN?-2}kncu}caZyYYWInGkz8dFsQG6slxuATfT3_&S+P*l}BX8*-wfzK<1n-t1FB zT|8QHs87x2pZ?HFkk>os>m3YS&)2xAj?Y|0@S)xjfqeM+q{gK?tWi|Yw4ZH+`WD|* zbyq~MkBF(|eM=48__VJs!g3Ka+C$C;n}C>8ki(^Dwi!zXZ8;i$Lm&gb`0{n?4~aF4 zzA!{4vHw5U)9R{PJX{w`J}ati1Y|k*m^24mTlE6dHQyrZYduQRlBXgBz|9;|TCW^W z&2$CYx=UdBWtBjT{Fq@sZ`7UpKu(xRwq_kBg-Sxa5?90$&Lxp)YgAWCEL}O`7=3zB zn6yIh3i7GZY4Sxzg}y6>ds+@aY#vt#(|`jx8JCk&@Uil!v&q&c)nK@hu;5}O`#JyQ z(=IVpi;Nz0j#Y#q z6{x8w5lYfJH}`-EP!@J7*-Z?`Vm;26A>JxJFimOChu;5pV#?1O138qO=CNn=GXsa6 zJn)QgmAl8b$01Urvou<|vBIW)TW_GbjxW$B&g$$e^TQbtwbPr2Og84dWY7!y=5V@qpxsg$857-^{Lw0@OM&oY}0H1BdO`wZ4abjY0cS{5^sfU#48NxvJ^884;4lg)Z+^-Gb;MC z>X$9k09vZeJK_KK%s-)^UQP6zS2AN`2h@%|bTWbg>*DZvzeH=^8jd?hjx+5A44;)I zXgj0kH;0mYUnxKlxOP66qj0S#;~c(m>+@$B z+JrnD)_MdYTkxOud5*!S8eBiR_1pqD9f*TVl$%biEo2hfit7?YZD^8_Wjr30(pj=}k2cY6+PQ$IvESpRCDv6o_7V*Vb22P9#UM zo#V)O=do1$N7MJQ??0jq>$7x=C#2py7AgEuZghS7Em-p6OR0zZo6y^hMvXF?*dcmP z!xU=ug}4=vwBa&{%f1z9YlKeE@N-wQ=xl;2DGG7hb-d1~rUlkAg(gc%f{$AXv5G2& z!b@=X(n;=3lgl9#YGFoX_Fg3?-+_rcqU_LLEC{WLo;cqktP$lNrg3S539CSSrxNgQ z>WW8cepSRZZp4rb5a~*H({4;wsJ@&1N$Wanzod$=q{C z7mui@_&Q=%P0H^b z{iwBmjbg+=%@Gu{X@zh@OZVo0zzS@(zb5SP^B%FTMM$f8Yit}^R2ZrLY)A9_SQ2gj z6WW&|dRnPEJ<{k1O$)MbYnK0mq%`j3)wB=oqz-K=2gW@~3G>-^FV48z_&!ZAp}k&4 zR-2lF6>6ZODV+l;9_=3O$T^n&Dvy*7#9KplCRc6|UjW8I9T1C-COQVOi*yuI)Ar@g0R)01Bs*fel8 z+F17Lw6LVG8~*O_oaM7;Kp;0hgFob&&67o~rBZ!z7A06b-ah%tYBKc$nI&I$O{c&9 zn{kHo|9W+miQzfk_@kz4$@x31BN(NXGGM!}Pb7c>$L%*`*30M3T_}BUp<1XGsG2}5 zyKSqxc;x%`@dW4J_a6{|fmGRFn-kI}B$I6m9!DSQM__x6FQ*QPbg?ENBzUkU#BRYH zMBSnFut>1^s!!%u6!5AOT%D zv5mPl0Lbe5jcYUsL0*yIu>B+-PbU7goBOVvP{{-W?O$7EUaR57SS7*)>uBIJCE@HA zU0MRntff3jOm1FcW#=U@J?F@4(`$)P_LmbegW*H&M4m{3^tb!f_W zrBI?@JtSAG(anR7&7fy(rCY1XN&G9NV!WZ*axRkyS*J4G9MZmVv*F+nD9CS(Em7g# z+n$61zXx)V0EZI{|2!hRJR&$>m}EnNei8gA9f=2tuD`;5+HRjcOsp~eK(1bmBmn}W zH<6-*okT)V;_G*((s(Cp-AV?3R=$g!8yUC}s|q`F8WeK4+P0fS`TPTNI-e;8(Fg$!+z$8DOI1S8emlvr9-~$pL4%fy=IBBfD;( zvB6H&6$y(o$U_*naF#`qnZ9IakuF$LxQm$8)MndyT>pH_5wTHs9&6NKY?I2}Tf$Qi zUz4(j($X{_B`UA(Ggvd~o3oyfEBV;YVA2HTfM(PZfgO$33H^1;>+aRYQY>(7(uNC*mlJ&^ zh`Y0ng~#R)VZZowVZ#4zjM8!=S)ZU?f|-M$yjA};uHp(vMAaksDZ$ArkRisY+;DmM zH;`nfH&eFoUGxY=1l49#ybeKqCM-}EDO1Jooq>$|Y(%A{$O8^wO^2ew!?i3Sbf(6D zbiMH8(*SKbC#vp5dfwxiT~e_*(D7(N+l6Emi3~`qgM|W5Yd{?;uu0Aiuv`C_ekB(Y z3YdCFak;)e!PGy0={{w^T8i_wqKH6xfI>oq_%GWBZydTeo!~nH@s$+AOPX}(di|8J zVqhd;nJ%mJnXBeeVHOAGC}k}8%W<8k9vp=MNDf}VgPhNhAR zhUau#TT6KHXs2vjrr8rt?D@Dt_C@BO3QqrGVZ_(@pOowQIv#lWKM7#oiJl<&iScFK zTh(=lT8D7p^=R{FURZ3cou_t!M~GlwQTr^F3)OCh?t z#$#@5n-C%0fFBny1py~U^B>?va6}bkx9Wu?Ek?X6XJF9h2FaMHmqVBbSc2zxe%D$& zz`45p_Hrqw|H`FWjqYGV?jdL?-}W|T<8Wd*G0-(+V^wCpvjKD{O{w=#2bjyHSOoCa zKz|^Ix}=zORGlP!%vm!w$KPh4cqx9o(uKvn6@D8zb8nuSp3_9cn1Fez*}|+TFd$kk z^x<6Z-#&clCqA8;s-3`GTnE`O*P92{AxjUkwUok|fU*9r_j}}{3xYMH#K4+GV=eRb z{D{qUJjfq?ovDGQ9s~UvEv12WI2sUUTex=9Y7Lva(O`dK8l9vmM8J~|2Qsp- z?Ny%n9UKMz;=W@orwB@bki-_%9cm~!D@zx;smVM(7bcwC+RtDeW@5Cm+v8c%BRCf% z`1AxXNA`H5Q@lzYle9r?=m1-bC7YM?K|KqnOCpma_lXL%UHw*PgY%#<9Nr_TE*BlP z#q@>Q0XC&l#dq>}rv66A*!&xObr*i_Bz)sn*<~Z&FL|I*|U3@ zDZ_%WqF$A(@AHGKi-!KYB{8LxK@DF-?bgV>UB8h~`OMR2;1sXQlo1LaN3IoA!8~GpFahpMKFKe9Ie3bUOec?@KtE`&!<^#jm;6|Aumx5Xl;#t%sS0( z3suNIDR0|3E8x&?bV5a zIP~Eio<0uVFoS`KsmA=b`O~e{mt)i|;VFK5Zu`#OH!)j^OgMn%Di5J3fd}{d6rLmu zNE%%ajAkZ`M*nCJ)R|UAW>|B4nQvE4jMj&K&}B+7Gv{V~%gc8br9dJL z{d@B)N6n835##@#^dkOWgqN4~uv6pR)0Hbg@`4fl0hvEj2RqU1=O;r7VGEC%JoTKD z``G)$AJP5X#wKS?%s*yu$WYy9Sb>IldF~d~x$JXlb@8Y6+a{IW#q$Vxiv_NF%wSBt zmXl=UpP1?>#>c^lx5((Ou@W_YEhm5h?z}TX=_W z!K~k+DZi1zo|+Y*FCjoi3Y;pNR+DeUZlObD1)Q-_z8@I1Asg?Wus;z85R5+sR1~#S z9c$FQD4-U7oEzQmlcmzm_m4UN5$s1-h{C$}9&0aPUfr!m)m_@UtOkvdpIeA7;n)S1 zE|dcA;M?%T58GzArb`j}+(;uusj1I8WJ8^He=l{COn5gpIxe zNSt>`j;}*{9jP?9eMLbJ<_rFnL=Iiig5&~}r+hf5U8t=8d+H^uCJ<7>+8GVym6n9s zdrvlm9#)pz3&q**mW%z$g>mQ=g}lOcUB=^M7ot393dBo`^ubErKtq^`33DO$`JgDU zVcC=dLRkUCXDRVNRXT@wQ2S@=P>+*_TvS#92EjnRP|c(0|bz13d< z8TEgHUEGCC%;AO zAFx4rp1O@e-Gw}~L1~@8GO<}fKk#akz|dEH6_1KOo_ua z*{6E4c_1dRf!GU|(bD)OX_<+IHH|78Yrm@AvGsUgILY$79{5`N*VkM2bH z2hp1shraPHSw1zO2OBY}fcdhCEC)Qp>&Y&xTHte-lMI562GWv?q4>U*61-&%-L-jn zxn&Ct#7T_5ar3qAQJJ6ema3`dPOs^qEzr;FHqpN*=1GB`ZSS3#XKI-9X{(U!8)CYr zC46o)k;)UT_2dmCM%IlLJ#;Ek%`va$VFZd>$H{e80xlq%>_>MX9w=lKCi1@wwSIVNND_B+}(B`y)^4Y1h?6pswQ;u-~ zas%ME!e5)>aiIxnrev|-lR1l<4P)Pa&o~dM0EUEk06O}8wRThK=d7QtI|1XPKNqQ5xiZwl%<^pL)_^TvM*WX5j9 zHct=(2enOa&w!kSZsgjj+heuWA}%qq;y#yc38-BEYb5E%1m(mp8!t$@#ve-A^A7N^ z*p0oUJts`%H>Wp4n_X(B>b3P4yp*&i^?5pVI4XKg!oc+pkUhP_H4>5)?F$h)h)EUmkU${SAi*|PW}|WKiT;=KGX|dru86`Fl$S!IW-rvAz@b8O+tPf<1e;W zyFBn>93i@>Wb9STPMi^7uwQ{OjgCB+7v*PrHYLe5Sj|>T$jc6r$2SzUA$ZaXpK)<2 z8FQMn1@MPw2(g>~g$0=MV`Ngr0spJs^slNy;~5b5$0$d($;7lFkolh6WtZKD1k?(O zpbs&f{F2#qAZa{tA<+`TZFN#TxW$|uMX246mlFXWq@i#v8-?8rtFqfadY`5!X@>H3 z75cG%v`Hc0D~yCUwN`YDLbLA&hw3hfeoU)Twy}XJG4vHqmGv{Hmra36OBX&O)fHfd zrOiLC9dyLemm3zJL@4(q;M%;uKgA~Q$6oARJY*V()AnC9Go*4%Jw%oSTw1{8c zxKJ3C2r6NqFpvCoXE_@t;)X4-|DM=}!)_MtJyn0SS{8l^ZJ>NYwlp0tm@%UJQ`xO+ zSeB9#NAUAFXPM%#IQ_c~qcPhM?RKbFU3D#cGaJHfb&!2nlMj_ z`Yu6%CBoc_|G6@p-fKRBz?8z6n{V&fA!TpQa0@bX2TedH_kxI}<(5f;bK-XQGR(eu z-C_Av>^mp>%Puf69;%(Hf@nv}*5;my0KxM$&wVYy$sy&U3{YNNyoa#U-UE4+(*D zwpjC4;>n+I_Pqn~O&3xJXAs;Q3_ykG%3*YLP~1M(uYfkyh`BIfV& zJ0LKX9k}n{wuWVRQfab%YQHz8sHkG{lR&WJ6ItzdHzMM@yt@CApok`XHPB(R|9All zss6E2;ZncS?MaRA*^C_DWARNDu7+PEfwwxjUEG5Chm9BPGQcKf81wzVV_8z-FXw@V zc-yAS)%xW9kNOS!YX9MYR?G|BM{`t2^B700F($>CemM%<<1|1U=Z5HK2`3xHs~kBhyx zG*cfCbe}sz#>H3l7pD-^u#i5Lrgv#-9Ss+zgS~eh9$Pj%V~bge!ma9_AHxUjiNSja zgr7cQH8w)G8ia(_@(Mn#x8jj^DXKWrjX3=cN(Q7!B^IMhCKDSf?)!F?ed}V)9N)5N zxY+=-tWu=nhLEn77f&BTw!*R-|1kjaD{t%Y6|_4yovqb6X-?7Cq(Be&QxIAv&DpDO zBX$+uag4)`D4rH@ErSZdJ107{6?_PO@qid>)3|PwFtQmt`x^`_-p35opx7OKP&Ie! zz!=-i3AoNXWc|HbdOGI#mYjtymRhLSk~O(~^9#q_2Rd+zj*!1Zpt!tp=->TiPRLqP zaP+=XNNv7CJ#|LyF^jVT<-Tl5nt=3fu(og||_((j80AXxFOT973ggf>l z@1G0{sDO8<%Pc6+bj9b02k-0k3&`T=nHoqJAgZ6h8v>O)#AiDvrs7M1laF9-vyBRL z!AKKOL4Z0C8ICLM7JJ+r0&cTVUd~8~q{xx;Ws4a*s70~87H4JAS_j1!gBx8rC><}b z`w@u=72+nu6wfPn8(w+u=O6aDCWRvmd#yxgX6%4y_uWH21@SyHdA1v#L(0gx5-SpA z+}pm4-zxKdciGb)hi~!ti=PcJZvpluSHU@Z^jnz5!_saAd72*;?nXMzLyt8aQTHuF zWW_KVvjEihSl(Q+e3SYW7D#j!lmkq1jZbcIk&Gfw84=Y4_y%zu<85y1k|aroYSdz{ zF#)@H$E2c1QXeKh$NAIvrjF&5^Y$)6UPCv|=(Ni8AGjn!gFG{G(`xw8f)O@4Mdxf_ z38~RmKVeAmATQntZfkE&$7u2r+U@&6SX0cM-n=j#1wJV%gk^|U{i9>T)bOZWu7L*r zN~KPFdg@tnEs}N`kiC}Z7t{gogV4wZO;w$nhIgp6kGcx}v-p5>(?-&F2I3|-21Wi>#bFrBf3f>66-N!#wAW-h<#@H2%KmY2_Dn|HP4|&XaZlStm zbiF7hQ%1?=UD}t|nur;`kR{wecZunk)0TUrUTeYe5{NNEmjSKEf<^55K~Qs2U!NjC z+fAHd(R1awDv0MRXKGQioJ1d&tbP^v%E_3GW#LtRMY;j3`2hLG8?$=X_oueEBy>G_ zl$*>0OOiwlNx{mQG=u+!5g<;O0LQKGdyBQ*Ob5EXo{1y}v^$+++)!9Th5d|xtKlFU15ecc zx1~OlMxV|@@vml%Jn8;lJON5dfC5K69wuYJvlgVV?x>*%Up86-3G^Ph+4O0!bE1-l zEw+AZfnPgUV-i|jqQ#!;CCESG!;Fkv=g6MmNroRQ_wqlHsx@hQz9@Z`cK(6rs>q${ zu(jTk=Q-W9QZahBv(`mmJ{EB8?TExORzU5>9eg?jGE8pwF{XsKH!m+S;bjygknt^eq>;No;=f*R`_Rm-n=|+-~`q~PiRx!aaof)Zjdx7 zISG7ml5kqLth7-e60#J1p;EnZnBC zi3xo5pwTgc_nQ#o-L@yJ^k-N%1ESIjH_d4sOVa5E_Bw&8bx+d~;T|5viD2iieEKcM z`&hgT9^rMH5C$q><31*X0T)=QjkVPplvhdb6u&w>^$wr-J8Tzq8uck((=Nujxxoyc z2+~L75f%d$55t5J-^Dytg|Gd1lIKo zp!1A`N@>-a^jQgN%y8&gHF71iDsjLVN16xQAAHl_z^1$yWT7p~o_qmFgyYyPnumo2ni|&bCMvgA8pIU~JEmkKfC1vU<+_ zHXySo`&{0WjMg4~n!LmcIELJf%mNN2f6_-*VSK-hzR;!;ANN`gv$m_Nz_joXA)22` zEGY)82~n!E7&$ppqS2x`ZA`Vf4m5vT$$jn+73y27$`nv&IX$B@cg9*(6LSoJ!xev49W<6 zP(`Yh!#E@aFI^U?8eBSIqu@rVMFxKBtyV4@EF&umYm3f@=dYTcC}2!Qj+Vk9DNO~} zJ_N-B6WGy%Z*HC}TbFhg@iEE>TA+L<)TCXt-(^WKQhS7_T&v!FafwhKsh!x^!C0~7 zl=4fU3Fwxbq}5;1MD5`YZA~rnN77rsZLpxCcupr*n@wY-0jXv6AH3k>z1s;(k#uw@ zNlpllmNj>|Pm1>zkC|L{QVNkCB`nibs&!}y$M}R=8Zr5o<*8TD?H|6;b4z(d!i}q& z)*qFsd7QFWr8i-|mW#{X7{X*AANZ^<^>^ti3xJg+88&qU+GE!LuE6I!F;_k6Y}eku z`&>32*<0{fDpA-|yRWEd98J|8xzenWb@2y=5oCX5{tOl$GRD|zzK<)jD!a*Hf^M*P z(v}HGKoZOYKX4J_-h(uV#-)rerWf`$r0s#AX@k3|bFK>^rQW~uMGDswAtV@0$oGhL zQ`3AiRv(6mxdBz&6Bf4v&MOGeINP6~f@bEAWH2PLA#uADInZ}HI7Z#OFT%qyZf1UH z$Jm;Ca5=vNv0cKasXkS#aBP51-)9m~VeE_LZRbiz}2 zK9RO+_cqAnjD=R0%etjIKpISLbBJMRw^2;QwWmM)7vxFi8(gB7Fyc_hY4XODBIC0< z+7*|$#~*J0=gLi{ZvMDDGJ8M8W9T|b8J(-YKid<@# z9#bP|c#eIq-~IiA+z|0*0!x0u^2+tj%W|@q8t-~y4%S3(DmGTTJ7$g;E+DyZeyCPI zpS6Z}{BH5_F?9IBa|+c9p>XMtp-+a6#8i#XjlPTf&1BwHN#QBzq~+D!$WZ_*>3d(@JF@ndTh4E+I*6 zeD|+Qqif6ZW;y%BaEMv?C?~m0P_?at&0Ht3yVZXHdBX(+K0F9DL*z(oY(w>}bVy)r z+w9q5t$_nL0^^imoqyAKnx_2Wc)1Tw=s(7z){?t2&J4R?1hiov@+cV%&??daG(~rl zNNdSXyz8|T;nSTF6**34tb7~Y2{rxz$8u)$(f21K#?N03;kHRkd7_(zIT3^b@P^!- z<#{dbOa9=M*@S&&Z#14XB~%En62rT&yY1C6fCbQ|f zSLDS6%$ib@A&X^CYpJ2uER7c<`{p zJyPIn2&jcZ1EP`9=xl?Qw1QB=P}4jH%Ta*~PxeF2X!`BO=(LpB(bJ4$G1yb6)`&YE z7`_kX=;<}A%3D*-CFID{B){?RNPNiHkO(RH{CIYd18>a!l_tdDAgm#|`A3jRrDjfe zp%^>xYHQA)=cqUSY?Cy3C+$&SlPmxbKjd6$eJM3iMx)%cVp6AgV`&}-Xt)+_qUBC{ z8GEUU_SZ-CzAcKPR_@xtMk*IBgP@$z!-i>_s{P$>=9|o%odGhRGn4*^U>dokdA9V! zX9iA1Ku~5Xz@5HH5357a*BB@bOe$(+uUg{dVMZw8|D(-RwJE}9l*|rMPc2&b$?Ldw zyNKLS=nS~UZsTN${7yfiF`tt}+KrFM?$?XGo_y>~>;WW2YZZ3pE0#jhRg9TLmCDD} zjX;)K`t-w#0~>`dq{w_Gnb7C7Hxi7*Fk~>#MD$;)NkroYtw#NT;UdU@Ei~g>n^Dfj zGR`JXBKPP8GzSlbsCU*XD7~xgvE~-e_kn-@%7RKA+$BZ(vH~Zizu- z1T${_v2RkYcx@9)=(*7aDb$cStK(KG@h~e_jv6@ak7Z%bh9d>Kv8?^y>j0^mI5VDR zIA#Tq_^C&^jHv{e%$o-3&1)b=4l{ilSBs?%r^!ZG0J1e0m2Hy+*&mT;DcVR7?&#&Y z$n$Bk$SD^c9ZknH9>p+CH|pp&pwqY985^F-{#H(K@c}vNrJY^GM!|^3L&&*^C0XlP zt2d3zE9{Q$=LbJTGpo=7JQd& z6$HOErXq7PF2=p6g3)^>nuNO&18#60D$2XG@caEFsy#F!N?a(+x22dFyJYIc`0Np$ zc*mMIUdnwa=v{qfXs$dl!~Fy}qC{W0{ZKmj30ZH1HDO+@8C`@=X)ryiqH`P z+45Fbj0^XKm{`QymTdn&#@9BY9bmS*^}_97aApCd*;+NktEEKJO zkOiNaemXR*T&I0TbntnjyUn{3J<1Kf-%{hU%X&ON*7Ekq%?x`7(>0ce=?sCs3!#9& zSnv6$OnY$5$y(YoUb|@7#Gx7xeD3J@YwU3LbHbXrl}4Y2l>C)5@!Fu6OL%Lzvd)I8soOWd} z8QcnI%b{FoLRc92aRMU^L$;~P7J$)WaZEuuvfoe5tCD&{=H;CCuv={~m+$o|ALAde zkG48-fImpl_5y*;q7R7~@$z=DWm?XHyv3GfbI;|!aX^1x?9JC_JDrVgJP+dPw&C_u(W3f-q7bJujE`~0pMfyR=SgBU?F(cg zcublcro*9Mfc~si>!ktD0Tbn-S2xnG{c9M>3)d$PK|ic2RQ!dryT$QaY$_f|*o*!W z2h%QZ?Gsm(Rh`Q0g2-=_s#F_lQkU1)F@his1E}5Fwb*=FViUG3=!~-AAVgviuV{~( zl|ngT538HEg*`S{4?lk-wdG+$AJroOV`)GcX50Xhvpb7opF~U@FSPTQj%S-EOuTd2 z?`XIv^FC+XgNLeiLCSU6tFeewSFPefp8hJvwlzMLb$`XPEBk_=g^vS;6ZSrN&=NPk>);exZQHf1abVSRE#rS`3m7C~Rj`3X1ag8i%^u;iANUVkve22ZRRu>0H+f;D!z&hU!TKnXw=Zo%Lw8W#cCPl+U2KU7q0KnVnPbjmYQ~O^o zST*Q@*)T@~n|z8Ic`+gE7OaWg!71*td81itlj)hyFFcrLW%#oq-dG6JROW}2b59PS z+#v+unXYxHt5Z!d9U}>2fuDb*pt6%R(EXgRY)x4&SMAX1!rdhe9B@T+NW9QcFC3&| zL=Cm&bERMe*^u^OdP7^JM~Cv54fZ)l6WU!9HtF0`V z1`~8HG-o@Q0OF`c1nf;DjR$)#z9e>6x+wYa>}W3P0;NycUfPynd;5UO5igA6rNzF& zZ<^L;bjeWj89F37KmCwXcIEm0%vHn;Xh|pzZC>RtV!hfS^qIz)#gx0{sBiQ)DOwFX z1ST!aeW-3ZiibB-aHVepx1W~1j#R2VwguvyDU}=aoq=?N?;LqMOrEIMQ;mcr(P#&V zV4NF(rw02gYbfI0!J9Y9 zT*M@xVAY<`1G^yE>XIRsssh>#up;uoYX85PsXj6|;oGX)qRl-(S=6f32o(xEMKU2( z6Tg`^DpS2vT)cw8k=GX~nlZ#rKsSm)e!b=?`ukgO&hKqP83vfxc8<8z5e;#DV;VZ8 z=tPMZfD<4CG{L>u!=aw6Bi!vf?c#(m4Mg5cWs?S_IK@8irD~0o%J`hm6P-qdZbm@nZ-ZPR%oj zQqGa{xnB7E69jmv25gbGUY@=15LR2QKM;)(xYo!cat* zaxmIS!HJQvSKUs==8^Clrww20Fm(=U_DmSaH}~F?$ZQ5BfhbF>TJ*aAS^RbHx`-Du zHE=qYY^s_=f$vKtUfgH1a-|o#QgwVktK%}Xm(SBiwo0&EyF9tsL)?z_U0C_ISC1!1 z98IksM#;YMTNp?1zsP5HNuLOy9_`d2*%QjH75V zgBx;{6t2+O0s|4-0%~4 ziF1%R<1Zd`;%m%xfr3r}N_;b58g|t%D6&Yd7NoEB%V+(yp%R%4_-nmGgfGQyGOVPU z&-k!Jg$)A7M%&)^=#~q#vlClksoRtjbl*?Fz1<(Q_~zb>ROc3I{J&iTGioD~Fe0^) zK_A|a-@~M@nIk1X_G|%syZ}$oFt&MR_jzi#^fH|DYWO?^aO%b*N2}?he|Ey5*)a`; zosUzdKya)hgWzJ2EX7=YDFXDV43p()KX5^n=-YoVP>6~+hPemDu*T0G&T6vbG|?Dj z%U@Zi6m1`J#}?N`N6o+pg9iAvgpv7{+@~E03+hU;MY!f9--o)*Ri)}5S{)X>#Zf2T#V(=6oW*PJq4pamp7 z1x*W&jK%&wE(h|Q^D<<~*0&_c;ieT9!dQv=`Z=9GQ>8{XO=)PBh$_zE-e-XOo`>R} z6>+_5;dnsx1Q0GBH4Hb8vkDh2kk{bR84dO>zCEnboG|?}I@rgh8n;qiDpqZt3kq7k z4jJ81+Q|$)%$sr}P&l6j^o;K51J;#X|IyYCaOOWJHh66umsWEnbNl@)GxF^q5xy&h z?UmCz&mq{%SCiPC>sBAkH8VadLO-B@eu7?Zk`8~`Hrkv+l?FJLvOM9KYB%0zpFpTr zM&T*YRC1R*2_e+T$8f*=THM3X0jDgId)1bii*g#;eg0Wk{}8W+XfUPgk3hg_pm7+r zD7);EE5?1Y0>P2Oz30ZJE7=LPV*A0dYu7_OMj3MB;z8NZw>q&h6SJfd@!a_7R2PU# zFX)NiZ1NGih@3nBbF<+$f8EXxD7=^DEm}gZ`1v7DtHPUHJK6Ut76B(@|zdX43HP410vY_%Y~`iX|TAtO?bAU zR4jNm`g8hk(wB6lW|oJA4|*q2?L-h8l2&;)?I86UIa0FyYJOnvW?BJ>yvjc@FexPd z_`nCKd{+^|7&qTECse9lxW=3kX+Qeg-L+ex?4c_kL96dlnlsYN3pN;`a=iB$dyD;c zlePF|4&;OE)t+B9xyr`p8r|3Wkx4=5GC9R=Y9Rk- zSn(9^>d&vT`Nl(O`}p0j)4{~ZX383l`!v%uY?QkbYV~O)P;2w(1+A_J?s&%OAvWfs zW6?tJMQ)kGiFAA}i{9yHY+SN~B#!hZc$HO5Re^37iwtrGv>U&g_MZ8cqEnu(^-MH@9W? zWhhDn+fo)CMIX@pA-8x|a4L_t!hgQ#5{qZ4!lsQ6@E1rDMy=kLIdE|j|5i|E{%pmG>FVkQ$7+lnb)pwafw2Um^zt`GD7nVjazAo3v`z30 zegL!7IZM?gAc`bHPf_h#+>T;~5f&saU1Ul{Hgilm_+hO3s&0oMcG-qQ;WMZF8NLL3 zO^0cV`XH)>fHT&=+Oi>Q2p1R!?bB$ClqD!L_s#NYktj&K{@HIxAK8Tw=kDVIL@!ET zG^8v=F~F{r#6q0zA!eG&Riu`A5{IuiyC1>)h7`D*{}aZ&bt<+n@qTD5WA}0QIW>rp zKwJG}CFX$zv9xKu5q_gG=vD9jGkoUC722HMe zf`70*v}z-eRK!UuOz0Bj&Ce?3sO*2k zp5GWX8(G=Glc%`ExrRdHLAt)gYPpr^GC7KG*tYA&0N|pGXnoKSQiP#JQD0Vqyt!57 z0g^Hqdd2n5CH$GK0N|iTnENVmG^VEMWRL%vzH+8v>8mCuKeMy!z37qb6@r>@vU~-# zie#*7T?~)MNI8>CkxD^^+8tZ?c={9QsiS&WRiL|JD;NPiicM5{F2N*|_Rhe$9ftsL_AH05yxN759m}!{eIUMV>oCbZKh+?DB&rSW6?P;dFazJ&zgF$g!TH zxN&VP%wzOmwg~`8iTlpl@Y)Dj$_en~Fqs+gu`^{g!4?eIZ$*ses9Wge51~Ld&)vw1 zL+Lq&zvHDx!qt^i#YEt%d_~?PJ>gi5bmsjvPxf%*`kHcFaNCo@+b3G`|3OQna^UB{ zW`C3^<1CrlQFfI?Yr85zTc}s6%m>V{$|A-{5gYfxr4canwMFJF9g-1rP3dsSS^4=! zU=#FEB1shVZiZ!>=VRu@P)^s3gx1<76RORdjQwviOsvLrUmLx9&u@WcqpCe)WHs-< z@Jn!N(s}iaPRvvXaPM+-#I4vu3>Oij5E9?Yb6kLo*RH)H7@lj^JzA;UTgPg*9Ww)S zR2Zv;VIP)8=h21k3Knc}i<=(tN8ec!_hzInnG}~XnC1dwMtBLoOLg%WrlrtlNfCCN zm8Rs?>ZPfIpp^g@mXM(I^o_}7dQa!|fO$mk+LaewCJ^M#UU6To%qxF|%{VwPQy>1~ z9C0icb@_LT&VLiKN+-R_P#(uVL+{Dxz?HF{%^LDT44Ii97RV=qD03sc?55X5IqK7Z zB=uuLwN@Rng3~d+Ka+kGTF6?ISMq4^dFpXdj|{@PAAS}b3~WliAD+T1Po{aZjM&9f zEEle<8uQMa)a7UCmTv$!o+jGFFjiY|?^X%@j38;oA%~x5dWT2YpDc^UVZ8c8Z$eE4 z@KjysWztBFt8X*eL_Co}T!kDrl_p8BK@V&jTt{NeHIegVgADIBj?J!NBv=oS-aKha zV0#B8AqMQBovXGPkpfJ$_#;wOf3vZzGJuY6JI$Ns^44U|lU^ceYqO8Ik%+0%Gi;Hk zE2wC;^^3YGPMJLY;t;%Y8P^Gw?GWmn@9a*y9o}mmeoM>!qFm3Fi+65Pu={T=oq*|cEoJV%# zcPYJhl=9xje)+x>{A4EhX~$(Gfg&p)<#!r~41GG7Btj86R4&HhTE||YTOGW< z8f3j|Y$f^7PKU(?CfudbNe#ZhS%gLC_spVNf6TnqpT+>rZ8Fn2`{+rm5D;_pEmNO9=kh6oodo|f?_G1 zKs(fGZBbW05Z~JEnA~c;Wb|x2lFYm=adC)l`pCPT){*9ygIg!?%WX0pLXj2) zQXxk`f2ESl*ceYuL|Gs(U8HCEtdKB_Cs)jx zK{Q8Aw&c)=oGqqF>MV0iRy8E4*R5|A(gA1PzBd(YQ(0-subT(px?;QrG((3~IU-J_ zze)xQw-~q#qg18G#Bo&^xip_o3-wJ?rH>d2xNePh)60f&YUg+2>6=Tx-a*x7YZJv3 zBhQ?xj$hEaFDi!#pM=Bj?@99*m#V>ovot$^75Vc}EGWAc^uz);u+&@XM#LFUdOkJu zT)d3z7O(bxPn4R9(qr|gD@OsAa*XF_9;EvX54o&I4y5?xs{Bzp3f8qRFVcFV5OFbN z;*Y!a>I{Xf%XAU`>pBTq;vgj>5DS{L=E+$tPL{1s`@$Cj>Ym`Ci!o-a-Xg=A7ey+S zXwIIY1{E^=mNTgm$LE`Z;Mvy#ybjS5ge#Z-EG_QEQ0@IPdKg0#pC*mZ=6mu8DLyAo zVwUxV5^d>*Egp-|?&$OG*BKLnrp-b4xLR`~gDy&qeej&Am*lbkH7(UTk!(0CbE z;e$KdFa2MWKp?GS$rHN{V^^MZDhu2yYLD#bke+LHNP(0h>ZBVAatq8Hiw-2(8Bc>f zGPfPb?%wtmsMx^vecH?e05T?hH!b#oE4CG7M)amJ19;o->vASU$~3t$_t|pjL_LGq zYl0T$uW|pH@Y64oj}nE;v%(rflSd7dm*vEz&%(+}yT=3A@{K-V#7^bTkLc+f!zGOE zqt-OMKX=!TSs&_oHJxfWiBpDd8#O0rY8svbNVN~$%WBW=*t~1ZKVR$2A%YL`2{9wG zh+TbB_1XyDGW#c^V7yP@`b@^A?B^fRN;(1{n7Y(da4A02j zVjV-%=8yzZCMcg7*%}X}&lUQ}LPryWx=kL?-%DayiUaH5@C%BZ?BP*k=}%4uTQk9Q zU_NF=b(j;B1GkbhwI?*c-c9QNCb-D9TNF?!J5RJGMU!Amm!}- zdJs@V%XY}2h)O_Nt|x*^#X7?4@QHY1ZKFu&yBUmsm|CGsjb(RJ0GLTQJIgwuV_-y% zGUbqUhS|eur?S9NJsSGV=A}40&Kr-J2ucZ!$KANnKaGN$)kmladGthgvxk&j{Z%C3 zu;NNj0Z(-;TOXbz=UN68Q zSR}BNQDi&HxXErd^D5LG^wAZAeC*`($c&dun#74#P%8k=7@Tkb{1P&ldhHmA&8U%G zs7sS4q0CAOj*tg^AoE-~=DaHB#5KKd->Gd|jp!)Oa0WLe=7UkEzjO=WqIm{1j> z`;wawAKdt%{lY0yV}<4naC%7K9Jz7eb0&YKXvZtw{VAU8XOhx(UJjWW!FP%{KS{_8ow-3I5p zF?i80irwt-;hM^(Tije&;6PGEuVivLX~p~IC6DFgi|hu>pK_kfL$vkI%jf(>I^Y1! za8n@Z{UE9UG(Y0j*OV$m+asU)^)|Rz2v^bc6p4CrMOd*}-zUU(n}smLz=YmkNxAsH z_eKqpThu|J}A5qzjlKDPA_d2$LZH6*(ryTd1~ z*#)p`DxZbR80yloI>5w$$`3h-w)F*J+nn%998?^&vg<87flJ7r#3QEDEetWG$ElFr zhUtwj#MOA}IqrQJqY<$V{-5U-05k~L;Dx9^+(Y`U6|Gp;BO7P}6W-0@<%El=ql7Z^ z@g#OfAj0;ARS|kQGVbUFZVKyr=UV&PY=_D~{Dru<<;SCane&RPZP3LioyRmstXWzu z=fi%yY2+KrE6b2P;>5g3NKhfpg~nZt*;J!5*;O1zvIl1&Ne6x(u{kSEB|Ne^=>vr= znh19!S62VaNs`aazOQQK8o?`R?u9$+ya+`NfjXuad9CYvg;7CSlX_daA%~jVHgU~+ zB^IFQ8jjYIRKM?M((M%?eK?x104s`PRPeT^>y;+4rd$`s{dzmb;gBkdzb3I zx&LB?(~-Au3COv^F2Gzh(W=&mf1lIky=>j&6@ z%$!vRZr-YAx4K&!W#18Gn9$a8Nm7t=?P+#d{IvydWy2NQH^OYj%YU|Hhz|bHx74{r zlwTivZ!?_Ry{?q=)u-{20#JpBTSi%hZrDG9RvmCm7~0%v>}_rRFF__@_8pKkYX+4_ z7s5t(T2;YA`TF^1j0ZK=Dn2SZLBed$coAENdm(iEo91MdJ z8W_;m^ZF9VupN*>Hk+Tcf%8( zHzF;fr6~nLnF=~Ldjz}@;%ay$5<(#L`zSl02cPI_!~SOIiC#dQKeRq8 z>^lVg9aoV`_t?_j`Nnz7=huPFUQTL(?L}YpRzjTv=_=1{0iNUgFo|hg=0}&j1!6_B z(gQ0?N3a8##YXa+1pO*!4$C|q(TtokCS^-xyoZbCU2CatNMo@;Wsalt@Nbd8Id)X_ zCwKz@cF#c6TwN`6M>69kCFUzUhYIrFXDgjz2n4K^Ke(PTJU-LU7eO}>wT@PN$(J3C zUa+aex+)tR`chLxa;bvcI53ffLiJ-|sHR&VxF!=W*$>SP`8N;JMGJ*I={LZjFrVVp z(n>)sBni>|r*g;Fq9mWOLYct$K|R>dEy)L67ngO5)cA%I*Y3u z>9lH89k(Wzp*+;)Y3v*qwZg8GJ(hmfB?JXcEdHm-4TrV(b>l3G`~eeryIlXlq>kob zTFU>dgtPvfz)It#-Y@aKcT??OG~E@R-}M@@TO5MUTiYoh8Wmp(@jQ?T1yfFJg6mOt zP3!DzxAi5Yd9d0)Yg=4VxL#G%hA1Q;QxNuW6E$#P|FKk+9U9QTlTrIr-)>Rhy<>C( zn&jCk8u?PmY41H0)GQ}hbhJxvEY8Ojs}N!yS`7@y($RReWS0#;XiAgDT9*zRClFLldC2<*;uTarTV30{3*5EmRKEF6Gam>enUY`}MS*yT^KuN@bO8C&{1 zqM2xbTK@w%oHa%y6?LF0Oxnj*Y3j2olbu9?UYmpxg}U4@pWK;tSefYc6Cg8T5XvK3 zU-ZF$0RKM#z;{Mz=qO*9KZvZdQG}D?`EKmU=rt#;0_ev!4y(MgC4vIL^^<x?jg2QFZ=3uQpJ=dfz2zklGEaBX|tA8WW9tsX-(Vx^b`u+kdeM@KwWze9;p|6bt zg70yCgc96ZB}%)FyK#kuk&$@IS%J(0+@u&?+ghBLV`*-(FK`mzYIs21r>__H+w@t| z)bLJUDc(e#4{+h}a>Veit72T>>8o8@+$E+gQblu7sD4oI7Uew{NSYm>m+ZUN%6oUf z_s=4m(7)q@-9jEgJgnLkEyx{SG%zjK7gr>l-q{I*W=WC2S5VFqD$Z|wC-gtWWnaWX zg_$0B%e|W&9$6mLqSbimac)4OMw~2dVi_9P!F6iE*Y~p!oe#T3V{}A-eH@Hl^SRtQ zeH{5iCQH;C*5y->P%!g)hTXl}`dNyr1z_N8wD^_ptK4E)M;@Mp z+mUP&P@5e!Q%m~65IKTw*J-$5sD!SYbS1Vze`~|pOZS*7`ajZx+OPGq*e-a)*9K{5 ztt}X*&nBd)xkFb&kyyqY+{xUiNCsM4Nv5&}1)WG3 zh$!f;Hb7i<@+$VU@gq3XNTal%zB`R3WPR|!dh7rix|L^eja)+K1YAU6T z3&5c{k>37qjHB7g?j2#Z1v!C6unL|D17A(zPYRGH+C(tYAateAly$q1ulS7M_39z~ zp>c4C6wht@+O}La1D->X+iFz57NbQmwAxXKO4y zrkA`3$8YaHxm$jxC>0lLqS~dRCLRO^7gd*+9p1aNMiNb!aSdW6;JtyV=(m5N10|A4 z+B+qb732(1!bKYsp?*{|%2U#G0VZ?1tO%tfy8VuLC!`;Ea0CUyeO9Di64kMrB*_lV zi+2e2`(Om=HRM4F+$pe z2Qk&3IPjvX%aip24-bnqlDUB>I&g2ia)hWz@;%Hb;r!aF8{o;U5CLu@d-fM|Q!%$v z7NW{!vG?+*8v)j+tq=N*qUgf`LbO+%sYnuZqK4BQL{O+oDkqcPXxB9=5?8<35GDH_ zF2#As`y5~{LJYnVG;F{kbfU%#1G78Bh5w~=BhpRG zeU^nSa|NfUOyVhD zu1Rje+fmESv28I5a;><^8B)Kq(77p;> zkf}*cR~y-O2X6V&B2a*;KKZ#OR3=mRsOPU&egX;dfd_WvJ1%yrLOKAML*e~MvSGk~ zN_sTejpaAjLZWwb1O_1LR%>i@7 zK7#UnOi=ULmG`G!s6+Cj^UQVbq8*|0d5~UGvA0JQSSqjm5NNNH4_FCYR{$U=5jR>f z6JVKprNEEoOCZteoXTQ43dt2CoS>1i`fLi{o^bxCv7|E7H}R1r=D(-glJBg<(=swV z;82KbLfOKKU>|izIDWc~{g@ZN#WWmcj~KSFpEd>Ja-y4D%i2&5bAzmJj|tSDD3h4Nb)m z-mft%Vica2d^cnIt)g&p3nTik36kir0*Lg)&3K_xKNct(Xb&0(azek05NB%xBN{rO zy#*`??OYJ=W0T1JU1D5rMwkbpoRJ{|nzeLBK8#a@++>kMHdACX5tYqkNQBq(i3QF7KNH}bQYNntBkba^M$!f;d4P`H>^(!s`?3wp;T zElMmNA9RhurSO*!lpPCm!BSQ!ju1N4VNM3GPteljU4VB{=hw{hX<$drrp2rg$F8E^ za6e(xz$5=EV{bUXZcwI>?vjEjYB#oN)*4bpQBw?<7FAH}81J+k{A!yoxyHAyvu22W z9b}6y$1#GtCPIg`Ry3HVAc)_qDiY^IypdXZ)H7& z!+Ead=#DpZ|D6t!S|iQ)1-WSo$RQ?#s#dRy3&8JL&*;J6!j9pjx;u>_!I^>AKy@TKq1x4B1bQh5e+p+!$7hYBumPQrngE9og5~U+X!96L3oy@wV zPif%LI&`#d@M4b=c^Tz@-);vtdXnUjrV|PCAe;^XvORGJbP{4zeUeO|Zz?(a!`UWO z0^33_t1$+~*xJ&facR4p@Zn9E3w(o$Utp2zXfrx5Qp!n-#X!4D;5FS;h1pX)xyc(? zCYmWdy3Sml?1DGqD@J+FYP(ppg~!AUCx@u;I0-fiqOLgk%jK^hZ)ClLg0|fHkbN;F zvkWhc9zl-X&3|op$v-$*Pn)E&$;fHm$Ss8sfFLa+4FE#U4+ ztSJnJ!mp0mTmVxnn*M9Rpp1 zMvfidmzRPmsG~m_k5KORbgr7oPl4sPXq~DPUz!o%`-;7=q92 zC6-k#0l{Dy-jAeGeq(k48*^(|Izw7AziazIz8Mp$AdYg@z>Si3L8Y@+D%fod(8u;t z8Y4rvy(UXNg<0(M72fGH0|w~Bi91uZhs=x5<_T3kIaf+kg%a*obGxIjl*uM9W-=_Y z>`gj%JEgH;D%$m`A8WbA_e}e*bFlp|_jtQ{5I9D)t#Mnsl72_aw#%Xn*H|tWQfT># zf*4nCg)rUj*h$n4Kl3q2w*NlphjNZ0t?zH+E>MCJ7cRU*=0FlhMK0l_g%&8k=X6qV zYWqZ{s-Oy5vk}IVH-g70t3Zz}-{C2$3TZB7`RLf4%@Y`#_Y%Rm6u3UN-FL^x=q+E* zCNNiY$`pC}pNcF0$s0`^17D5L2xxeNZxb35J(tF?Tma{oqNV6CR;56zP;e3>q?*W+;eZC!YP| zLlmaBG-)d#0nlPE_Koj>K}cufGVi#cQ1prJDz{tLi?Poo^4Mol3!+wfGT)o+)lS2( ziC(wRoB}h%t<8YeGy3QAex{Xv*YBdL3c`q)a>k3n%~qp&e=PROsw{?@+?)ZGr0x`E zB8d%TZ=CcNURuZ;h~Hv>bX!fp)FQ?Re$DCwqSKu$Hj$@={`{Fh`TFIp;=<|(fu;S- z1vY~DFWt!9C^od!CTb*W z&o&dCUdM!KvwluU+ql6&hcc8Te-7q%t3C*g)LEoKGn{9E;IFDWh@z^+e!CbZViEYj}SNc zQQgZ(#VY#lQI&nIM9n20E*+V!6Y)$*0ew#N`+(;b0UM{CtKCaW@_MQ^n>W#hH_4<2 zfN?Uhqfi;Afa?WvIpEV1AQ0y4B6)<-ANt;*WRMnDQlc`?M!*rX^87KMOhUca=a{4n7*qc}=0Z zKhM*#QrO$2s1(Asuc9E)%$dEia}r53n-an|DWAK+_vpE}XhakWpV0o2+;}!ZlU#fO zjqiq=-=QZg`WW*Av_^KSom{xNgmf=GkC$m|<#ZfgC%{L^G9TJw-IU+ecc0{`HrlkR z{-qT75$u;}3%C_f18dNQd2@!~84U9#<*$H7dbp69b=HlI8h)3@Dr7$uG3NSBfS)nH zTRd1VukCyHd_kAv>w4!v^$^>{YhI0QBEF(U8?~gaVv#^&3(BE zO0_*z;TB?*r)x%AuXqvZx~2Uj7`>z+Nqm17`d``eb_anRsnOLQ*$MRpBoLB{7<6~e zwpnM^1HBYzl0>WPsaORn_Bk+x1_378P$(7Fokh_Ep>G7Az-#~|_NMtlb_}%5LQ+yP`E_Uq$b`ZH#%KcGHPR?VQ`64~oTOLtoUi9M<0L?6JqD06C}T^Il$P-J0-E<4+a zGb?e>5kLEUGC|(=mVL{1RIaeZdZT6hE8^vsYi6ehk6Iip0gzl+mR{E2r20Lca^Zp< zk7+OT6+ofJe*IWV>pv<#VGa33FpGr0E$B@gX|SO3x&BnsglPDSwua~&@^-=`wfnBBIY z^OlN+q3apfi8aU{hr0V=r)`idRT@M(ilI*C3kMy7rpRo-t-Ru7b|x3+uU3A~@8$f3 zN=?99Yy|Z%oxm+}6uBgM1_hEsAA!4{uggAkiR^&3*U0aSOJtIxEQ?WbFuUC6Fm9b! z!@G<4B;r+I8ioil^GbRli-J*)L!aRX#m5l;wmHjH?97#|A00%pE1M?e!A8EKm zgA_#UVj$lTg^WcR412k|*yN#)$D!s7UNgT{kpVFpI1Ae%p6ZtpY!x0I2|~bJIzUE2 z^u>OfZRcUJ?wd{%;8E|Hf|ec>NBg|M4{*zTeFt0LA3t+5+0_m!?hO1L#f`rD7OE5; zFCh@;Q;Wm2g&pG{Pykt0Mtx?wr=l6Eg9CgD60*s64fDqH|1d_O-=iSnu>xVSqG&q` zg)#9cmQ4-KK-I?OPz<_nna#cUIpaV#7?+>K*sU7-mywE@T@9=U@m7rGYP&mrri+#IGIMDZ*7(@_aR5`0=0!4!YJ$#I0R|~A}f%|4^FE;pZhQI zN6l*t8KYwT`MjZ+`FKtt7H_Oes-7!kJ(zv-X)`xcQR`WUi%RlfJDx-iAXw$(7Y9}c>4Y3b54yIWGa^%`*I21!>>B{Zb#!etzHAg)F3PexM4#Y^spQG1*2 zj}Ot$0L*J|JOFJZq%dHG*|B(P5t+%yQ3a zYFT7o_kd7jekDbj5t=7`@qb=qv;T47C6jwcmRJji1}OVt6ax78_bdW>=}v(4<)q4# zEtwb?+S@+J*4^zk6TgdG2mrmNDb+)7>^0&62L6M1JI`3}1^Ct2aDr+>#!Ztn)bG*I zKbIs*&2z+IggQ?`fIzinZ&md`DTP6?=&-w=9+5YsQ&62zvEnLH*AO5;hhpBZtGzTf zkvTVV(QUm`KXDQ9D5_C`V4^}WTD>`$*In6syu??v#Rtu3GLHm(W9R%4OqBP#&pXLH zgB9?+vWvDMY-~8f0dpthoF+Gpc{3PULhg*P+YW)3`P)=b2r`wYd{R~40aws#7P#r} zfJ8h%Bdrv!a~}l*3~H^!qPY9(o;0Y{)g(T#o*jBUt>2ex>8(HG2I#O}54#AQduH4l z1-3E(QLu2G17x|=z7yBokQ zb|he1`j&3@iOTLbEDr>~zNrCx#02{)wpjn=u>ea~8wy?P7JcB8L48hpl1?{~{ioxH zp2I}Yn~-4^E`!l6p>O{LXM|t*kL@k-8Dfg$#6epJ)>FlDEm30UNA9CXG z6Q~`G`if=@UX4K%L1?VSR4lroY}HgGX3!8XH|nR*m!jf?Uzk9Dk2ALAQ$u?-j_A&{ zgN;##>LCSJGywNv{dkQ}l&92>OVG|uPQ0Efu&F>5M3hSIrBo_QqgZxXZ|b&}`^)DZ z+vL{l@91o6##hY|=1tI|JQ*wiYK_~D{|+O&^9fq}2A23C_XV@qy*>a0Ekp`DOuQdg zJjx1q>XFYnR{?y6ryFX_djYe3qE0O#vUDAyW~Y<<>w4K8f_zBv%(bJEL9M{Uqcmyj{x z@rUfH9CVdRAxkvEBQgh1Cti-`n36%zwnJvrf(;<+#57%NiwwCP(M`!TGvFVMY<_Q0 z!pJ`o5IJ)L!f@wOd%uY^=7Tq^rfwKhD1in+E+jxeOx4|xk`k6>^-r?QP}yWbQ}WqT`2d~I0MA? z&6E)HTe4-e0!i?a?@o^rk}0L3H+WMN7YlewlWRUVxOd?-S|BzqPxyiAj_x`>CUrr0#~>{L_~2TM`nbx3G^c_U17 z6wVvI?1dzTvYz6;e%xbn{UWRHMdn0yAgxU~lhi7pCQhJs~{n~KhpHu9mELnsNU zvbW9pAH_2q#|H@Av;$MsG0ILZwo>JZ%rY!HO66cBwKfkn@^bT!z5uCBM`Ot}{1$hr zS;csGq!9TK5E4LpRG;rG(1>3boaA_d?tNAaofns0aFx`T_=&`=kBtiZIQ>3#CQ*Vv=? zSmG{G@*CZ3!57DguvZLghTx2V!eL-EfbES0XFn<DuKblL?lE#2Mp)0l=OWPgB{vHw<`4cgD86r2+9In_D~ZF;QtEx`j%a z!wEGL!##145J{szs#skOQf1Lx)1V`4-tX_#1r$IqgMtM*mobPF89s})9*KW%>fUfe zGq?yqya1ZZFjctlbM z1-fIh2B_410Z@=drd`R9py2S&!!#qYO6{g*O*$ga`EC-z*^l=Hd$n!OFL;CUyO~&V z*qSwkzJ%o``GNsU6i1hXy}oA*!%6seyIPOWm@|MsC0C24St)oRBuJ`e0`zNi#D|AC zCPx9xtY*wbQ}2RbkeeIh6SSjoCOkY;wD*aVq7At1X;LpILi<^bobnft^6j9c;F|1n zw_|@Mqjv(#+b-7&+`9FS|4U)JeB1a;4Ok2?S<#-@s>A8ex(G~Jzz!yDun8s{@;F(^ z#u8v$_zBeZDIE&_1l>NBW~VQpbt|Y5h6OA_MuHJ%WIc%$oF5h>8(LMhJ(dFG!QaO5 zdxBuK+MD^&`lPO`fJaVZnX%?iCV2#l0_Hz2wCefHq-ZU~*}OQB ztJ4ATi4jf6#Icu)`xWXrOv-t|LT5cw-|%AKc#~>>N2LegT`P>|?ElG4;@uBD;v^w8 z!C-ClMb~ne3yeGjS5mJ^|HkL(JIyOQ>Z?@(_Q>eZ;AKVdcX!=)Zz9U4S~Igi-_(u# z)R(cQG=D}|5Llsxc$5hDsxszLq3RRuGMhBNP+q4CCr^{VsbQt6M|>^09wnGMq5E53 z)``w0(|M%P?BBe}leKZ4U?A3?LUy;Fg)Zz&n+yJ^>x2!#+-^+GMZr(EnDe(+7^Np~ zb6|yTPyZiqG?LxT;7oYR_#61Z@SKr+71t!?Y3ywgrPmBDHK@+CjPJ!}wYp?n@TF#} z7VU1XOuhKVm-)Zt)GaCOHc!jwk6@6B1pd&|peHY-$#wcwz@OaGn=HzK=gKyUVnwcTt;gD+M#Lv1(q&iGz-gg62-R@+AvjWfJ_-`!WN; zh5caUcWgD$h;8l$@l{dFTt=opjTQ~!E}T+h5VVW80sIn`$1f7l)oZ*kI7gvUoiZ)>k*gFJQ?pV9V1b-6JE!uLuPk8Jup5eyC}} zU%Og0I^6kXuO@w=GcZ8OjCm7XrrvLFu?z9f5H29s`N%$$l|S3E>&dR-W!lb);8m-tlh zq+6q~x6%=eN5yktzB6|e&jI!QU)0ALQ{m`aR{ZSisl4Cs>PEqyXE{Z!@tcKGM>N)Rg^4S_%Tb7$|yZJn`M*%^uZKhGHx`KrdyG*bfx5Q{_?EQ z@0g1ZA^~g!&7RSwi!L*hsB0_XD$fY=O=v6 z0mK8E5BnpNu^`1fx_cq8&$ov6nz=IX*8PVKKy}9#7RE-I)~gD{clhd@7?`x*!nIi8 zKpY}K?#~XgXCaY@m zA4`U7z5>*Rd051M4KKnCG4@rymzYL#LjwvvetR9)}yAi6RBB*VSpgxJkkRsF*dhDm8 z2BBzFHRNJ6HK4}GaCHNqnB#mly z9R>PCv?OWkk!k4wiz~;esqM)3u871wSk>Bw>okC1CQ+d-wJ`(w8Adnli;?hX8YF>B zLJab_@@I2-NCjC^c|A~b6`k2JXV(L!FeJOwR{(G%LGzA97_n5A?bup9GgRY!i`a(L zFGf^+a(mEz)Jcz#YLFyhH_#zmFTJ0_`x&c(kJi`6r#;+KK%n1Te|Eu876a823%pO$Cc6SrYH9snb6gB8-FqF* zjL4wiZ7Ou$D?}#r#B>hKWC&<;{3qxk69>S>32#D9eatE9EUyRg5#E+%-=7qJlq_b> z;X8~$CJ5R&HeAJ_Yi1+c7FkXP2|dq(77!Fx!w#j@zY= zjmDKz<(e}@;_-)#qeGDu@2Vj61G@E;V`@~mbr*9DZgTHR)dPe zolZUrK;5H5$}qqiPfR@)Q()>Q*X~XbWP4XAY+CwhBP>$rX0C5S(E<6MJvU%{&IN5} z91mAj9xiK&u67-LApQPIYOk;dY1S*v%%5aj%AjSH$<~Dx~%iv6||IHmP z3S1!@-;Gnva)#FNB=jw1!thScHzj-HCEYq3;vgtKt&SR{XiGD{YSk5g;?aHm;PelO z^ndSYB-=DM@i&9lY=I|k`p1D-qU^<Q?=jEhIbxqT$^3~w1t?jMOnT)db%~>?Mbqrfs4~s1+Xo`#^fycKKP{w- z{53MBO@n_JQ3xEQ_=F!T&R?zpL==&dN!dq1zGeH9=MxckUFOR+IQdAVQ{b)(`tC{ioSN(b`mxu9Bwy{xp!O@p>13J8#Wg~v6HJ=I5Us?~-DsWu_ zewBtY#B%YL`n3LO0Y#iYM|nB=$y@7nkw;%^1iOfp#ly)sCS2kf4nr_>0$_8;4p&U^ zu$>~-R5hPRbUy$^=ch1`WpfW@cheWttEhl0wG6jtC(s@<5m#z2n()2{dsN@ppcyeI zKDGf5w~CuKcVABhT1XFz81I;`&5>TXp;5^kB}JnjU29Zi+69e1f+|*ki~XXRt-cLl zV_HUN3=E>2BF7YM=c~2?c+0lWp8rrBR}30Sti$jStw#Vz)ML-rLP)89b>KT%`++Ig zc~g|GWW%6*{rUt7(~FIg8O_Mee6;(S_IUy!{WDfNxgX@>a;BbrI;^3WYZ(mwS&X-k z8Tl4|(@*@xZ;u|02FgsJhh z{%XW)L4JKaNVoXG`Cd=&61$(oy>B|9Jk@_v61M5YA!D=t#FRj5)RlqAsSE_3l!zc5 z9*S0r)HlsofmcVu^=|7$?O>> zOoV82;frP-`jLT5ernL$I9DXx_6^@|R4n#+OE&$lL=QSSUuwPqSdze7gs_h#2jSZJh-Rbx)B{2h zr}_?y(DdokOHl|mMj^v_Z^}6D<>p^E{+Ht-F**R%c7?uS%~irClU65SE&8B}!iF;l zJ(30yS@oaR6}ui*LzNC=n?pFN8aj}ty!<$+uA^SgqNfqG2FP9+)xoYgvOBNTn~R$~ zM1vja(rUl*uqdK_{T(~(a6QG9?kFeouujxppsWd&-lG9PK92t0f8`o|i*5gu_vi7M zc0!?*7)4i>JtvB5a+Gvjv-Wl+!JUjdP*07$TX>N!T~wu|M=(+cS%unpWPb$y zVR7;!k1j0!Z~|W7muiSddQHQNQQl1VUQ>nGRNu7L1-dl~ez_v;CyhFXZjN*H0d@Dt z&LH8H%(s_vo{JGPUC!4RV;TALhL>43iBq1;FXhV((cg6syR5j}lU2HVMLdV)E?0x| z8~DK3jllU9ft$QLB9fJjizcq!fn4CBp}9uvbictv6Ht#@9WZnPL}3vmLy5(%nOGD$@86|~jAfMKQrEF4ZX{A- z3qX@dqE{r|Pv22_(}tib9ptH*rIL5~xpS@XUIArC#~+R;v9jj}pdpuRPHKjko$fEf z{wdbAVugZc%w!98HJ|)o#tjTO0c5F+nUhlJcq_Epj6xCs;$FV#kn*n6-s z*<|Ff3Gxb4ego||8tUCw0w1FeCCHb%EgRvYP<_ocO5<`z8e6m4tN=ZUWo(6;;-Yww zQF6C#rozmf#5>99RdLAWD6^fWauP4oP==$``L|d;<`9y*E9T~7*{n(rFe7mlK0y z3${EEl8R=MyKXaDXkI3pvnC!{c1vU+;@E7=Gl=@YENQ~|O5QEza<}4OuQ3$;to!5k za8+CfQaF5W#Wf5xkbsAiQ8}VN;jVj`c@_;l@B_kz5|?wPK+}0%rN|Gg3=enj!mg6PU+L1b%}k4$ z9pbAaZMJ_H*#DDB|Ku%)LJ`z%gLw^8(sIyDWtE8~PX6Z;pN?@5(Z-BDq!Mc$=4|G` z_*0yY2YK&JMRBzB@(9!9)ew-3H7}c~MMA)0#erTlKtC=A>BmsEPL)p7FTRE?N(=jY zw3EY8tK~1{3@#Q*pcw-c+Tp9wd4?2j@pV^9h*;FbU(d#DS(^6LxnLJQwKhjBpVQ)4 zwQHKt;efcEzDnrGfhA}1<^9i+-rPM71pdwUV0Ro?5Y_VT20$T-BHy&&$s5~$KFId` zkdsDgmbB#)FJY#d4p|P8qdN0v@|SEWprs};NTX@LYYLe+UtGuZ8ui3*}J?Eg(S)&STl3e z!`&M7F_|u?ng|yC2Hz%XZv(Xnv@U;AC@A;Z(-Wxao{s0S$gfuWF{hv@S&oueJK4IsqllNOuS=l2YuX_Mae1y)c0l^r&@*;aK@vEFkaO7(|c2`I5 z!uMTYe4Lv$mdzF*X16PR;g`%s-t5i(j%fB){JvB9VNesh9 zQE6v@)}MoVc}3oW9uVaLtHXfn~@WxbHV&0X`GqFH9? z`Xx1@!Ad#U;ECV2s(i+2(!LIjT`Ejis8y)T)K@&~y=q;Dn@ z{k^YwqzQ?)Ld<9ru95c+5rR*?X;gDVc@jtk}Z@1SxJAd0vY zUFUn>4o$k$gK?rd|G+zXolk2vcx!98E%Ljaw$A&X%FLJM+XE!5zrxkrYVanX$RPXG zbEmJ5_OX|s%HI{t?RG_^DAxuf+mj&KErgYMSrS)fV&;S%IKtuS1S^-r4`z8Ge3t-u z_@tZStWel5vK*DUv5F+03$~6Y_A0(e!W&65=1|F zEe=~EN@W8riPD2-*H%U2X$`k9IWbTtuC4d495|bkax*IcRg+m$fHhI+>!pMkWTM4r zlOl1&t-ZOPN)bUphQeb;sfXAHu@gT7s#oPCKLUQkIP}I0-Pyr#ikX*gY2{| ztR_v@>x1Nqbj059_CY-KeF5HuEoavM4RG{4*nv`f%GO%NZCN`gCLOf4qht~yPbe3ApG~RnEA6R-5z>AkS92mOv+t)0S;g@P&+se9Y4yzn%;r3{Yxf9Tcov9lK>vK< zb5RuN$!N)TWYHG@IEd70C9M!fVckMgN4Zq-vAr{!t{e{(U-E^(8h=ZA27%~-BbxnF zc1I`6^BBeJWABYn%jC`NVp}Ru5S_CWpGZFZxd|Cqn|h3BJsH>yd^hSE!lmrG%P3yk zN5l^~Ts_o8o(gJY!yMffUncJ{5nORQN^%FnU zXk{Z{w39+{8ZYyCoV6NRzZWSis+#jow^1w1=G9PV^m&DDN^G$|dRu$Re;(|CidW!s z@X)mxvb2^SLvZ+)YzT3^2hs9 zb(zY84iY@*7|Jc{L?r=^S@aD-w^r6z9y4D30-W*5mnREsNq(7e6`tFr!gMt|k9;)U z)^4{jvlcGFCscd-j5>+I!LqV(#N2pCKj*#Tzn!0k`nDhMKLy!I;8z6C5V~<| zsF8b7p5O?Jk<7x@Hev`f8M4(h1N?)a%}h%Pp48-WDM?G_b?RP+yeDN(+dblV8jz;*g?31BZ|QC?I)L zXHcPQQucLqM5?SNm;qh6A_aLCXHc7K_tAt0U0vzAy;83fMPx&2bVZ_PrLWJ3sx z^S*^dCaGdK2vKTon5(4T{DN$v>PKtqK_>%Oeg@>Fx|X3mLeXK z3-XCrt8IlXCnqU3MYWF*@}B|9eSE;f90EL2{~Rg?YVj!?;la*FRD9eYh11g%NLw(| z-gzpA(#$mDKd|9sJExsk%SjSe?{H>iv$N%Kq(^4h*10Rqy{2i_bu4E=-z0BSTIKoZ zGFZC?5pWR%hzN{w-hrCe_KB9+bG$;_<7|;AR~zy_*S>Lq#wS|Dve%$)@l*=e%Ui!}O`0e9f8Q87-EI@b(w z3g-V4s^j7PFyrC_&r!3TWQQP~$F|mYV$XMSR4ki_{quDs9z{iY!X5J7hI)lZ&$y@4 zh^H=_(1s{mR`p})?e%~#=r>z^?z5D`LBH&9D}nid4d6X7k>`u^$81XAWq+-;r8Xud z;f&kD_$$?Cw-g5Sf7B~o#7u(JO94f@Pe(VVOi%`BDF){W4?q@xzk)AwZrnIsJ3w_- zoE6}WdHNt^@NTkiW^Ty(a2{PRqcDY=!FB%GW{*~|0pCzPh%ow8pFVU0@6~W%hP#_B zh^C?ILP9gEOUk(_KpIlni67L_g3(!e_^4=GLHzErND1G{;p4}dpp!YAM`d%Ux|!_Sup;y#u1dl^jcg%0AvnWo6nL%^qnEbqWJ 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

jJ?4`G@i$Ye8y@}hjMtI8v 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260312/20260312110823-Config.rsc b/MikroMaster/20260312/20260312110823-Config.rsc new file mode 100644 index 0000000..1cc3fdb --- /dev/null +++ b/MikroMaster/20260312/20260312110823-Config.rsc @@ -0,0 +1,3987 @@ +# 2026-03-12 11:08:23 by RouterOS 7.21.2 +# software id = 2961-C4ZZ +# +# model = RBD52G-5HacD2HnD +# serial number = HCX084RAVFA +/interface bridge +add admin-mac=48:8F:5A:60:A1:0B auto-mac=no name=Bridge-LAN port-cost-mode=\ + short +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" mac-address=\ + F6:BE:9D:85:53:F5 name="ether1 - Unet" +set [ find default-name=ether3 ] comment=LEN +set [ find default-name=ether4 ] comment=NUC +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(17dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] ampdu-priorities=0,1,2,3,4,5,6,7 band=\ + 2ghz-b/g/n basic-rates-a/g=\ + 6Mbps,9Mbps,12Mbps,18Mbps,24Mbps,36Mbps,48Mbps,54Mbps basic-rates-b=\ + 1Mbps,2Mbps,5.5Mbps,11Mbps channel-width=20/40mhz-XX country=belarus \ + disabled=no frequency=auto hw-protection-mode=rts-cts mode=ap-bridge \ + rate-set=configured skip-dfs-channels=10min-cac ssid=vados \ + station-roaming=enabled wds-default-bridge=Bridge-LAN wds-mode=\ + dynamic-mesh wireless-protocol=802.11 wmm-support=enabled wps-mode=\ + disabled +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(20dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] ampdu-priorities=0,1,2,3,4,5,6,7 band=\ + 5ghz-a/n/ac basic-rates-a/g=\ + 6Mbps,9Mbps,12Mbps,18Mbps,24Mbps,36Mbps,48Mbps,54Mbps channel-width=\ + 20/40/80mhz-XXXX country=belarus disabled=no frequency=auto \ + hw-protection-mode=rts-cts mode=ap-bridge rate-set=configured \ + skip-dfs-channels=10min-cac ssid=vados5g station-roaming=enabled \ + wds-default-bridge=Bridge-LAN wds-mode=dynamic-mesh wireless-protocol=\ + 802.11 wmm-support=enabled wps-mode=disabled +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface wireless nstreme +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(17dBm), SSID: vados, local forwarding +set wlan1 enable-nstreme=yes +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(20dBm), SSID: vados5g, local forwarding +set wlan2 enable-nstreme=yes +/caps-man security +add authentication-types=wpa-psk,wpa2-psk encryption=aes-ccm \ + group-encryption=aes-ccm name=security +/caps-man configuration +add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ + XX country=belarus datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes name=cfg-2ghz security=security ssid=vados +add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ + XXXX country=belarus datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes name=cfg-5ghz-ac security=security ssid=vados5g +add channel.band=5ghz-a/n .control-channel-width=20mhz .extension-channel=XX \ + country=belarus datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes name=cfg-5ghz-an security=security ssid=vados5g +/disk +add media-interface=lo slot=tmpfs tmpfs-max-size=44739242 type=tmpfs +# mountpoint [tmpfs] taken by tmpfs +set usb1 mount-point-template="[tmpfs]" +/interface list +add comment=defconf name=WAN +add comment=defconf name=LAN +/interface lte apn +set [ find default=yes ] ip-type=ipv4 use-network-apn=no +/interface wifi channel +add band=5ghz-ax disabled=no frequency=5180,5200,5220,5240 name=5G-AX +add band=5ghz-ac disabled=no frequency=5180,5200,5220,5240 name=5G-AC +add band=2ghz-n disabled=no frequency=2422,2442,2462 name=2G-N +add band=2ghz-ax disabled=no frequency=2422,2442,2462 name=2G-AX +add band=2ghz-g disabled=no frequency=2422,2442,2462 name=2G-G +add band=5ghz-n disabled=no frequency=5180,5200,5220,5240 name=5G-AN +/interface wifi datapath +add bridge=Bridge-LAN disabled=no interface-list=all name=xs-DataPath +/interface wifi security +add authentication-types=wpa2-psk,wpa3-psk disabled=no group-encryption=ccmp \ + group-key-update=1h management-protection=allowed name=sec2g +add authentication-types=wpa3-psk disable-pmkid=yes disabled=no \ + group-encryption=ccmp group-key-update=5m management-encryption=cmac \ + management-protection=required name=sec5G +/interface wifi configuration +add channel=2G-AX datapath=xs-DataPath disabled=no mode=ap name=2G-AX \ + security=sec2g security.ft=yes .ft-over-ds=yes ssid=vados +add channel=2G-N datapath=xs-DataPath disabled=no mode=ap name=2G-N security=\ + sec2g security.ft=yes .ft-over-ds=yes ssid=vados +add channel=5G-AX disabled=no mode=ap name=5G-AX security=sec5G security.ft=\ + yes .ft-over-ds=yes ssid=vados +add channel=5G-AC datapath=xs-DataPath disabled=no mode=ap name=5G-AC \ + security=sec5G security.authentication-types="" .ft=yes .ft-over-ds=yes \ + ssid=vados +add channel=2G-G datapath=xs-DataPath disabled=no mode=ap name=2G-G security=\ + sec2g security.authentication-types="" .ft=yes .ft-over-ds=yes ssid=vados +add channel=5G-AN disabled=no mode=ap name=5G-AN security=sec5G ssid=vados +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.150-10.30.30.200 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip hotspot user profile +set [ find default=yes ] address-pool=dhcp +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/snmp community +set [ find default=yes ] addresses=10.30.30.0/24 read-access=no security=\ + private +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/caps-man manager +set enabled=yes +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=gn master-configuration=\ + cfg-2ghz name-format=prefix-identity name-prefix=2ghz +add action=create-dynamic-enabled hw-supported-modes=ac master-configuration=\ + cfg-5ghz-ac name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled hw-supported-modes=an master-configuration=\ + cfg-5ghz-an name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-store=system +/disk settings +set auto-media-interface=lo default-mount-point-template="[tmpfs]" +/ip smb +set comment=MikroVados domain=WORKGROUP enabled=yes interfaces=Bridge-LAN +/interface bridge port +add bridge=Bridge-LAN ingress-filtering=no interface=ether2 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=LEN ingress-filtering=no interface=ether3 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=NUC ingress-filtering=no interface=ether4 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN ingress-filtering=no interface=ether5 \ + internal-path-cost=10 path-cost=10 +/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 disable-ipv6=yes 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 comment=WAN interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface ovpn-server server +add auth=sha1,md5 mac-address=FE:82:A5:78:8E:84 name=ovpn-server1 +/interface wifi cap +set caps-man-addresses=10.30.30.10 certificate=request discovery-interfaces=\ + wlan1,wlan2 lock-to-caps-man=no slaves-static=no +/interface wifi capsman +set package-path="" require-peer-certificate=no upgrade-policy=none +/interface wifi provisioning +add action=create-dynamic-enabled disabled=no master-configuration=2G-N \ + name-format=2G-%I slave-configurations=2G-G supported-bands=\ + 2ghz-n,2ghz-g,2ghz-g +add action=create-dynamic-enabled disabled=no master-configuration=5G-AC \ + name-format=5G-%I supported-bands=5ghz-ac,5ghz-ac +/interface wireguard peers +add allowed-address=10.8.0.2/32,0.0.0.0/0 client-allowed-address=0.0.0.0/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-certificate-common-names=CAPsMAN-A2A7DF3D5EE6 \ + certificate=CAP-18FD746E5814 discovery-interfaces=Bridge-LAN enabled=yes \ + interfaces=wlan1,wlan2 lock-to-caps-man=yes +/interface wireless sniffer +set file-name=24g +/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 add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main interface="ether1 - Unet" use-peer-dns=no +/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=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=ros.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" disabled=yes 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=91.192.189.2 comment=Unet-DNS disabled=yes 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=10.30.30.100-255 list=KIDS +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 +add address=157.240.247.174 list=Instagram +add address=46.53.178.107 list=Instagram +add address=179.60.195.174 list=Instagram +add address=157.240.205.174 list=Instagram +add address=31.13.24.0/21 list=Instagram +add address=31.13.64.0/18 list=Instagram +add address=45.64.40.0/22 list=Instagram +add address=66.220.144.0/20 list=Instagram +add address=69.63.176.0/20 list=Instagram +add address=69.171.224.0/19 list=Instagram +add address=74.119.76.0/22 list=Instagram +add address=103.4.96.0/22 list=Instagram +add address=129.134.0.0/16 list=Instagram +add address=157.240.0.0/16 list=Instagram +add address=173.252.64.0/18 list=Instagram +add address=179.60.192.0/22 list=Instagram +add address=185.60.216.0/22 list=Instagram +add address=204.15.20.0/22 list=Instagram +add address=157.240.200.63 list=Instagram +add address=185.60.219.63 list=Instagram +add address=129.134.31.12 list=Instagram +add address=66.81.203.132 list=Instagram +add address=185.89.218.12 list=Instagram +add address=31.13.66.63 list=Instagram +add address=84.15.65.162 list=Instagram +add address=68.66.224.28 list=Instagram +add address=157.240.253.63 list=Instagram +add address=83.174.11.224 list=Instagram +add address=157.240.9.52 list=Instagram +add address=157.240.252.174 list=Instagram +add address=157.240.195.63 list=Instagram +add address=31.13.71.52 list=Instagram +add address=57.144.110.192 list=Instagram +add address=157.240.252.17 list=Instagram +add address=84.15.66.97 list=Instagram +add address=217.168.6.33 list=Instagram +add address=31.13.83.52 list=Instagram +add address=157.240.241.63 list=Instagram +add address=129.134.30.12 list=Instagram +add address=185.89.219.12 list=Instagram +add address=157.240.252.10 list=Instagram +add address=157.240.201.63 list=Instagram +add address=66.81.203.197 list=Instagram +add address=179.60.195.52 list=Instagram +add address=66.81.203.7 list=Instagram +add address=216.40.34.41 list=Instagram +add address=157.240.202.63 list=Instagram +add address=157.240.229.63 list=Instagram +add address=157.240.252.63 list=Instagram +add address=31.13.72.53 list=Instagram +add address=124.108.16.224 list=Instagram +add address=157.240.205.63 list=Instagram +add address=92.46.37.96 list=Instagram +add address=157.240.247.63 list=Instagram +add address=157.240.234.63 list=Instagram +add address=157.240.235.63 list=Instagram +add address=87.245.208.97 list=Instagram +add address=216.58.192.0/19 list=Instagram +add address=209.85.128.0/17 list=Instagram +add address=198.105.240.0/20 list=Instagram +add address=173.194.0.0/16 list=Instagram +add address=172.217.0.0/16 list=Instagram +add address=142.250.0.0/15 list=Instagram +add address=108.177.0.0/17 list=Instagram +add address=87.245.197.140 list=Instagram +add address=74.125.0.0/16 list=Instagram +add address=64.233.160.0/19 list=Instagram +add address=157.240.0.1 list=Instagram +add address=157.240.238.63 list=Instagram +add address=157.240.238.174 list=Instagram +add address=157.240.0.63 list=Instagram +add address=157.240.224.63 list=Instagram +add address=157.240.224.174 list=Instagram +add address=157.240.251.36 list=Instagram +add address=157.240.253.12 list=Instagram +add address=157.240.253.35 list=Instagram +add address=157.240.238.13 list=Instagram +add address=157.240.238.56 list=Instagram +add address=157.240.238.175 list=Instagram +add address=57.144.112.141 list=Instagram +add address=157.240.251.60 list=Instagram +add address=157.240.251.128 list=Instagram +add address=157.240.238.5 list=Instagram +add address=157.240.253.13 list=Instagram +add address=157.240.253.5 list=Instagram +add address=157.240.238.2 list=Instagram +add address=157.240.238.37 list=Instagram +add address=157.240.251.5 list=Instagram +add address=157.240.251.34 list=Instagram +add address=57.144.112.1 list=Instagram +add address=157.240.238.54 list=Instagram +add address=129.134.26.123 list=Instagram +add address=157.240.252.3 list=Instagram +add address=31.13.84.4 list=Instagram +add address=157.240.224.12 list=Instagram +add address=157.240.238.4 list=Instagram +add address=157.240.0.13 list=Instagram +add address=3.33.139.32 list=Instagram +add address=157.240.0.35 list=Instagram +add address=157.240.238.14 list=Instagram +add address=157.240.238.60 list=Instagram +add address=57.144.112.145 list=Instagram +add address=157.240.251.35 list=Instagram +add address=151.101.84.159 list=Twitter +add address=pbs.twimg.com list=Twitter +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 +add address=geoip.co list=NoVdsina +add address=x.com list=Twitter +add address=facebook.com list=facebook +add address=fbcd.net list=facebook +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=82.202.162.184 comment=comp-lenta.ru list=NoWG +add address=smtp.mail.me.com.akadns.net. comment=smtp.mail.me.com list=NoWG +add address=17.57.155.37 comment=smtp.mail.me.com.akadns.net list=NoWG +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 list=NoWG +add address=10.30.30.10 comment=MikroNUC list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! list=NoWG +add address=89.110.101.17 list=VPN-Server +add address=80.85.244.9 list=TRUSTED +add address=8.8.8.8 list=TRUSTED +add address=8.8.4.4 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +/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="ether1 - Unet" protocol=\ + udp +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="ether1 - Unet" protocol=tcp +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="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +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="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 in-interface=\ + Bridge-LAN in-interface-list=LAN protocol=udp +add action=accept chain=input comment="accept WireGuard" dst-port=13231 \ + in-interface="ether1 - Unet" protocol=udp src-address-list=VPN-Server +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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +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 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" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + 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" +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-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + log-prefix=Mark-VPN-FT new-connection-mark=VPN_No_FastTrack +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=Instagram dst-address=\ + !10.30.30.0/24 dst-address-list=Instagram new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=Twitter dst-address=\ + !10.30.30.0/24 dst-address-list=Twitter new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=YouTube dst-address=\ + !10.30.30.0/24 dst-address-list=YouTube new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=facebook dst-address=\ + !10.30.30.0/24 dst-address-list=facebook new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina log-prefix=VPN-all \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp tcp-flags=syn tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 dst-address-list=!NoVdsina log=yes log-prefix=VPN-Net \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +/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="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" routing-mark=!To-VPN +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + in-interface=Bridge-LAN log-prefix=WG-nat out-interface=WG routing-mark=\ + To-VPN +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=81 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 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 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 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="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=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=vk.com \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=ok.ru content=\ + ok.ru +add action=add-dst-to-address-list address-list=Instagram \ + address-list-timeout=none-dynamic chain=prerouting comment=Instagram \ + content=instagram.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting comment=Twitter content=twimg.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=x.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=twitter.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting comment=YouTube content=youtube.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleapis.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ggpht.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=youtu.be +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ytimg.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googlevideo.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=gstatic.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleusercontent.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=me.com \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=icloud.com \ + content=icloud.com +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting comment=facebook \ + content=fbcd.net +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting content=facebook.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=comp-lenta.ru \ + content=comp-lenta.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + smtp.mail.me.com content=smtp.mail.me.com log=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gov.ru \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + r78.fssp.gov.ru content=r78.fssp.gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=api.db-ip.com \ + content=api.db-ip.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + api.telegram.org content=api.telegram.org +/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 hotspot walled-garden +add server=*1 +/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=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +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 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 +set www-ssl 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 +/ipv6 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +add action=add-src-to-address-list address-list=bad_ipv6 \ + address-list-timeout=none-dynamic chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked in-interface=WG in-interface-list=WAN \ + src-address-list="" +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +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 packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/ipv6 nd +set [ find default=yes ] advertise-dns=yes +/ppp secret +add local-address=192.168.60.1 name=vados remote-address=192.168.60.2 \ + service=l2tp +/routing bfd configuration +add disabled=no +/snmp +set contact=@AmsterNL enabled=yes engine-id-suffix=MikroMaster location=NL \ + src-address=10.30.30.81 trap-interfaces=Bridge-LAN,WG trap-target=\ + 10.30.30.10 +/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="Windows Update script" interval=2d5m name=WU-script-run-schedule \ + on-event=WU-add-to-list policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2014-02-11 start-time=00:00:00 +add comment="Backup Every Week" disabled=yes interval=1w name=BackupEveryWeek \ + on-event=BackupAndUpdate policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-07-07 start-time=03:41:27 +add comment="DoH Cache Flush" interval=1d name="DNS Cache Flush" on-event=\ + DNS_Flush_Cache policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2019-12-06 start-time=05:30:00 +add comment="Create mkdir function on startup" name=\ + create_mkdir_function_on_startup on-event=\ + "/system script run create_mkdir_function;" policy=read,write,policy,test \ + start-time=startup +add comment="Scheduler for Update Certificates CloudFlare Quad9" interval=1w \ + name="Update Certificates CloudFlare Quad9" on-event=\ + "/system/script { run Update-Certificates; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-11-28 start-time=05:45:40 +add comment="Scheduler for Amster-Backup-UpdateEmail" disabled=yes interval=\ + 1w name=Amster-Backup-UpdateEmail on-event=\ + "/system/script { run Amster-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-02-13 start-time=03:41:27 +add comment="Setup Global Environment for scripts" 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 +/system script +add comment="Example add WU servers to AddrList" dont-require-permissions=no \ + name=WU-add-to-list owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_Script to add target web sites DNS IP addresses into address list\r\ + \n# Tested with Mikrotik 6.4x\r\ + \n# Syed Jahanzaib / aacable@hotmail.com\r\ + \n# List name\r\ + \n:local LISTNAME \"windowsupdateslist\"\r\ + \n# Web site names which will be added in address list\r\ + \n:local TARGET1 \"update.microsoft.com\"\r\ + \n:local TARGET2 \"download.windowsupdate.com\"\r\ + \n:local TARGET3 \"download.microsoft.com\"\r\ + \n:local TARGET4 \"windowsupdate.com\"\r\ + \n:local TARGET5 \"ntservicepack.microsoft.com\"\r\ + \n:local TARGET6 \"wustat.windows.com\"\r\ + \n:local TARGET7 \"stats.microsoft.com\"\r\ + \n:local TARGET8 \"mp.microsoft.com\"\r\ + \n:local TARGET9 \"ws.microsoft.com\"\r\ + \n:local TARGET10 \"sls.update.microsoft.com.akadns.net\"\r\ + \n:local TARGET11 \"vortex.data.microsoft.com\"\r\ + \n:local TARGET12 \"vortex-win.data.microsoft.com\"\r\ + \n:local TARGET13 \"fe2.update.microsoft.com.akadns.net\"\r\ + \n:local TARGET14 \"statsfe2.update.microsoft.com.akadns.net\"\r\ + \n \r\ + \n# 1st time runner, check if address list is not created previously and a\ + dd entries in it for 1st time usage\r\ + \n:if ( [/ip firewall address-list find where list=\$LISTNAME] = \"\") do=\ + {\r\ + \n:log warning \"No address list for \$TARGET1 found ! creating and adding\ + \_resolved entry for 1st time usage ... zaib\"\r\ + \n \r\ + \n:local FirstAddr [resolve \$TARGET1];\r\ + \n\r\ + \n/ip firewall address-list add address=\$FirstAddr list=\$LISTNAME commen\ + t=\$TARGET1;\r\ + \n} else={\r\ + \n:log warning \"Previous List for \$LISTNAME found ! moving forward and c\ + hecking if DNS entries can be added in it ...\"\r\ + \n}\r\ + \n \r\ + \n# Check DNS entries and collect matching names\r\ + \n:foreach i in=[/ip dns cache find name~\"(\$TARGET1|\$TARGET2|\$TARGET3|\ + \$TARGET4|\$TARGET5|\$TARGET6|\$TARGET7|\$TARGET8|\$TARGET9|\$TARGET10|\$T\ + ARGET11|\$TARGET12|\$TARGET13|\$TARGET14)\" && \$type ~ \"^(A|CNAME)\\\$\"\ + \_] do={\r\ + \n \r\ + \n# Get IP Address from the names and hold it in temporary buffer\r\ + \n:local Buffer [/ip dns cache get \$i data];\r\ + \ndelay delay-time=10ms\r\ + \n \r\ + \n# Check if entry is already not exists, then OK, otherwise ignore duplic\ + ation\r\ + \n:if ( [/ip firewall address-list find where address=\$Buffer] = \"\") do\ + ={\r\ + \n \r\ + \n# Fetch DNS names for the entries\r\ + \n:local sitednsname [/ip dns cache get \$i name] ;\r\ + \n \r\ + \n# Print name in LOG window\r\ + \n:log info (\"added entry: \$sitednsname \$Buffer\");\r\ + \n \r\ + \n# Add IP addresses and there names to the address list\r\ + \n/ip firewall address-list add address=\$Buffer list=\$LISTNAME comment=\ + \$sitednsname;\r\ + \n}\r\ + \n}" +add comment="Add Hosts DNS names to NoWG addres list" \ + dont-require-permissions=no name=Add2vdsina owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_Script to add target web sites DNS IP addresses into address list\r\ + \n# Tested with Mikrotik 6.4x\r\ + \n# \r\ + \n# List name\r\ + \n:local LISTNAME \"NoWG\"\r\ + \n#\r\ + \n# Web site names which will be added in address list\r\ + \n:local TARGET1 \"comp-lenta.ru\"\r\ + \n:local TARGET2 \"ok.ru\"\r\ + \n:local TARGET3 \"vk.com\"\r\ + \n#:local TARGET4 \"smtp.mail.me.com\"\r\ + \n#:local TARGET4 \"windowsupdate.com\"\r\ + \n#:local TARGET5 \"ntservicepack.microsoft.com\"\r\ + \n#:local TARGET6 \"wustat.windows.com\"\r\ + \n#:local TARGET7 \"stats.microsoft.com\"\r\ + \n#:local TARGET8 \"mp.microsoft.com\"\r\ + \n#:local TARGET9 \"ws.microsoft.com\"\r\ + \n#:local TARGET10 \"sls.update.microsoft.com.akadns.net\"\r\ + \n#:local TARGET11 \"vortex.data.microsoft.com\"\r\ + \n#:local TARGET12 \"vortex-win.data.microsoft.com\"\r\ + \n#:local TARGET13 \"fe2.update.microsoft.com.akadns.net\"\r\ + \n#:local TARGET14 \"statsfe2.update.microsoft.com.akadns.net\"\r\ + \n \r\ + \n# 1st time runner, check if address list is not created previously and a\ + dd entries in it for 1st time usage\r\ + \n:if ( [/ip firewall address-list find where list=\$LISTNAME] = \"\") do=\ + {\r\ + \n:log warning \"No address list for \$TARGET1 found ! creating and adding\ + \_resolved entry for 1st time usage ... zaib\"\r\ + \n\r\ + \n:local FirstAddr [resolve \$TARGET1];\r\ + \n\r\ + \n/ip firewall address-list add address=\$FirstAddr list=\$LISTNAME commen\ + t=\$TARGET1;\r\ + \n\r\ + \n} else={\r\ + \n:log warning \"Previous List for \$LISTNAME found ! moving forward and c\ + hecking if DNS entries can be added in it ...\"\r\ + \n}\r\ + \n\r\ + \n# Check DNS entries and collect matching names\r\ + \n:foreach i in=[/ip dns cache find name~\"(\$TARGET1|\$TARGET2|\$TARGET3|\ + \$TARGET4)\" && \$type ~ \"^(A|CNAME)\\\$\" ] do={\r\ + \n\r\ + \n:log info (\"start entry: \$c \$sitednsname \$Buffer\");\r\ + \n\r\ + \n# Get IP Address from the names and hold it in temporary buffer\r\ + \n:local Buffer [/ip dns cache get \$i data];\r\ + \ndelay delay-time=10ms\r\ + \n:log info (\"1: \$Buffer\"); \r\ + \n\r\ + \n# Check if entry is already not exists, then OK, otherwise ignore duplic\ + ation\r\ + \n:if ( [/ip firewall address-list find where address=\$Buffer] = \"\") do\ + ={\r\ + \n\r\ + \n:log info (\"2: \$Buffer\"); \r\ + \n \r\ + \n# Fetch DNS names for the entries\r\ + \n:local sitednsname [/ip dns cache get \$i name] ;\r\ + \n \r\ + \n# Print name in LOG window\r\ + \n:log info (\"added entry: \$i \$sitednsname \$Buffer\");\r\ + \n \r\ + \n# Add IP addresses and there names to the address list\r\ + \n/ip firewall address-list add address=\$Buffer list=\$LISTNAME comment=\ + \$sitednsname;\r\ + \n}\r\ + \n}" +add comment="Flush DNS Cache" dont-require-permissions=no name=\ + DNS_Flush_Cache owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "/ip dns cache flush" +add dont-require-permissions=no name=create_mkdir_function owner=vados \ + policy=read,write source="# Written by Phillip Stromberg in 2019\r\ + \n# Distributed under the MIT license\r\ + \n# \r\ + \n# \r\ + \n# this creates a function called \$mkdir\r\ + \n# from the command line you will be able to just type \"\$mkdir some/new\ + /folder\"\r\ + \n# and all the folders that need to be created will be\r\ + \n# if the folder already existed, it is ignored\r\ + \n\r\ + \n:log info \"Creating \\\$mkdir function...\"\r\ + \n\r\ + \n:global mkdir do={\r\ + \n # \$1 refers to the input variable the user passed in to us\r\ + \n :local newFolder \$1;\r\ + \n\r\ + \n # we'll use this variable to report error messages that may arise\r\ + \n :local errorMsg;\r\ + \n\r\ + \n # if the user put a slash on the end of the new folder name, remove \ + it\r\ + \n # i.e. \"some/test/\" becomes \"some/test\"\r\ + \n :while (([:pick \$newFolder ([:len \$newFolder] - 1)]) = \"/\") do={\ + \r\ + \n :set newFolder [:pick \$newFolder 0 ([:len \$newFolder] - 1)]\r\ + \n }\r\ + \n\r\ + \n # if the user put a slash at the beginning of the new folder name, r\ + emove it\r\ + \n # i.e. \"/some/test\" becomes \"some/test\"\r\ + \n :while ([:pick \$newFolder 0] = \"/\") do={\r\ + \n :set newFolder [:pick \$newFolder 1 [:len \$newFolder]]\r\ + \n }\r\ + \n\r\ + \n :if ([/file find name=\$newFolder] != \"\") do={\r\ + \n :set errorMsg \"'\$newFolder' already exists.\";\r\ + \n :log debug \"mkdir: \$errorMsg\";\r\ + \n :return \$newFolder;\r\ + \n }\r\ + \n\r\ + \n # the name of the temp file to create\r\ + \n :local tempfile \"mkdir_temp_file.txt\";\r\ + \n\r\ + \n # port 0 is unlikely to be open to HTTP requests...\r\ + \n :local fakeURL \"http://127.0.0.1:0/should-not-exist.txt\";\r\ + \n\r\ + \n :local fullTempPath (\$newFolder . \"/\" . \$tempfile);\r\ + \n\r\ + \n # this is where the folder creation happens\r\ + \n # `as-value` prevents status messages from printing\r\ + \n # wrapping in a `:do {...} on-error` prevents error messages from pr\ + inting.\r\ + \n :do {\r\ + \n /tool fetch dst-path=\"\$fullTempPath\" url=\"\$fakeURL\" durati\ + on=0.001s as-value;\r\ + \n } on-error={}\r\ + \n\r\ + \n # this waits for the temporary dir to show up so there isn't a race \ + \r\ + \n # condition where you call mkdir and then try to do something before\ + \_the \r\ + \n # folder is actually created\r\ + \n :local count 0;\r\ + \n :while ([/file find name=\"\$newFolder\"] = \"\") do={\r\ + \n :if (\$count >= 50) do={\r\ + \n # after 50 * 0.1s delays, it's been 5 seconds, which should \ + be long enough\r\ + \n :set errorMsg \"New folder could not be created at \$newFold\ + er\";\r\ + \n :log error \"mkdir: \$errorMsg\"\r\ + \n :error \$errorMsg\r\ + \n }\r\ + \n :delay 0.1s;\r\ + \n :set count (\$count + 1);\r\ + \n }\r\ + \n\r\ + \n :return \$newFolder;\r\ + \n}\r\ + \n\r\ + \n:log info \"Created function \\\$mkdir\"\r\ + \n" +add comment="Certificates CloudFlare, Quad9 " dont-require-permissions=no \ + name=Update-Certificates owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_CloudFlare\r\ + \n/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalRo\ + otCA.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase=\"\ + \";\r\ + \n/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalG\ + 2TLSRSASHA2562020CA1-1.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n# Quad9\r\ + \n/tool/fetch mode=https url=\"https://cacerts.digicert.com/DigiCertGlobal\ + G3TLSECCSHA3842020CA1-1.crt.pem\"\r\ + \n/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n\r\ + \n#:global AmScriptsUrl;\r\ + \n#google\r\ + \n#:local CertName \"GTS-Root-R1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-R4.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-RX.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#internet\r\ + \n#:set CertName \"ISRG-Root-X1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"ISRG-Root-X2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"Starfield-Root-Certificate-Authority-G2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n\r\ + \n#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 do\ + h-max-server-connections=20 use-doh-server=https://security.cloudflare-dns\ + .com/dns-query verify-doh-cert=yes;\r\ + \n#/ip/dns/static remove [find where address=1.1.1.1];\r\ + \n#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 1\";\r\ + \n#/ip/dns/ static remove [find where address=1.0.0.1];\r\ + \n#/ip/dns/static add address=1.0.0.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 2\"\r\ + \n#/ip dns static add address=2606:4700:4700::1111 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip/dns set servers=\"1.0.0.1, 8.8.4.4\";\r\ + \n#/ip/dns set servers=\"\";" +add dont-require-permissions=no name=script1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + tool/netwatch/add comment=\"doh-fallback, doh-url=https://security.cloudfl\ + are-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Clou\ + dFlare-doh IPv4 1\" host=1.1.1.1;\r\ + \n/tool/netwatch/add comment=\"doh, doh-url=https://security.cloudflare-dn\ + s.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=CloudFlare\ + -doh IPv4 2\" host=1.0.0.1;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 1\" host=8.8.8.8;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 2\" host=8.8.4.4;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 1\" host=9.9.9.9;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 2\" host=149.112.112.112;\r\ + \n\r\ + \n/tool/netwatch/add comment=\"dns, notify, name=ns1.unet.ws\" host=91.192\ + .189.2;" +add dont-require-permissions=no name=script2 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n\r\ + \n:global InspectVar;\r\ + \n#:global RouterBoard;\r\ + \n#:do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on-erro\ + r={}\r\ + \n#:global Resources;\r\ + \n#:do {:set Resources [[ :parse \"/system/resource/get\" ]]} on-error={}\ + \r\ + \n\r\ + \n#:global Updates;\r\ + \n#:do {:set Updates [[ :parse \"/system/package/update/get\" ]]} on-error\ + ={}\r\ + \n\r\ + \n#:global PkgUpdStatus \"undefined\";\r\ + \n#:local Update [/system/package/update/get];\r\ + \n#:retry command={:set PkgUpdStatus (\$Update->\"status\")} delay=200ms m\ + ax=5 on-error={};\r\ + \n\r\ + \n#:log warning [\$InspectVar \$RouterBoard];\r\ + \n#:put [\$InspectVar \$RouterBoard];\r\ + \n\r\ + \n#:retry command={/system/package/update check-for-updates without-paging\ + \_as-value} delay=300ms max=5 on-error={};\r\ + \n\r\ + \n#:global arrDeviceInfo ({});\r\ + \n#:local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};});\ + \r\ + \n#:set (\$arrDeviceInfo->\"RouterBoard\") [[ :parse \"/system/routerboard\ + /get\" ]];\r\ + \n#:retry command={:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system\ + /package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"Error\ + \")};\r\ + \n# [:toarray {\"section\"={\"key\"=\"\"; \"value\"=\"\";} }];\r\ + \n# [:toarray \"\"];\r\ + \n:local arrDeviceInfo ({});\r\ + \n\r\ + \n:set (\$arrDeviceInfo->\"devUpdates\") {\"channel\"; \"stable\";};\r\ + \n#:do {:set (arrDeviceInfo->\"Updates\") [[ :parse \"/system/package/upda\ + te/get\" ]]} on-error={:log error (\$error)}\r\ + \n\$InspectVar \$arrDeviceInfo;\r\ + \n" +add dont-require-permissions=no name=AM-setup owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_RouterOS Setup Script: AM-setup\r\ + \n# \r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n\r\ + \n## Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:if ([ :len [ /system/script/find where name=\$ScriptName ]] = 0 ) do={\ + \r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# :global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n# /system/script/add name=\$ScriptName owner=\$ScriptName source=([ /too\ + l/fetch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptNa\ + me . \".rsc\") output=user as-value ]->\"data\");\r\ + \n#}\r\ + \n# For run from terminal:\r\ + \n# /system/script/add name=AM-setup owner=AM-Setup source=([ /tool/fetch \ + check-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" ou\ + tput=user as-value ]->\"data\");\r\ + \n#\r\ + \n# /system/script/set source=[ :tocrlf [ get \$ScriptName source ] ] \$Sc\ + riptName;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local RemoveThisScript false;\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n{\r\ + \n :local ScriptName;\r\ + \n :local RemoveThisScript;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local AllDone;\r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$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=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n:log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :put \"Add Schedulers...\";\r\ + \n :delay 1;\r\ + \n :put \"Add Global scheduler...\";\r\ + \n :local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFu\ + nc; }\";\r\ + \n :local Comment \"Setup Global Environment for scripts\";\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] \ + ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-\ + event=\$OnEvent start-time=startup;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Commen\ + t) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEve\ + nt) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Add 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-ScriptInstallUpda\ + te\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Commen\ + t start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n }\r\ + \n\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n /system/script { run AM-GlobalConfig; run AM-GlobalFunc; };\r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :set AllDone true;\r\ + \n } on-error={\r\ + \n :set AllDone false;\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$ScriptName . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n\r\ + \n :delay 5s;\r\ + \n :if (\$AllDone = true && \$RemoveThisScript = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :set OnEvent \":delay 30s; /system/script/remove [ find where name=\$S\ + criptName ]; :delay5s; /system/scheduler/remove [ find where name=\\\"_Rem\ + oveSetup\\\" ];\";\r\ + \n :set Comment \"_RemoveSetup tmp scheduler for remove setup script.\";\ + \r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-ti\ + me=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$ScriptName . \"\\nI've done everything, and now I'm ti\ + red... I'm leaving. ))\\nThere will be an error below, this is normal.\");\ + \r\ + \n }\r\ + \n};\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\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#/usb1/mikro_bak_rsa.pub" +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 GlobalConfReady false;\r\ + \n# \\/ start edit\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in Amster-Init-Script\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix \"\";\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\"; #: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# 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#\r\ + \n#\r\ + \n# requires RouterOS, version=7.21\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/80/71f092a6\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:51:02 09.03.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\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 GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\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 ExitError;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n:global CharacterReplace;\r\ + \n:global CharacterMultiply;\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\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 WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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 FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\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 LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if (\$CurrentChannel != \$updateChannel) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n \r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel (\$Update->\"channel\");\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n \r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([:len \$arrDeviceInfo] = 0) do={\r\ + \n :global arrDeviceInfo ({});\r\ + \n :local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};}\ + );\r\ + \n }\r\ + \n # else={:local arrDeviceInfo ({})}\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [[ :parse \"/\ + system/package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"\ + Error\")};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannel\"; \$Cu\ + rrentChannel;};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentVersion\"; (\$U\ + pdate->\"installed-version\");};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannelVersion\ + \"; [/system/resource/get version];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateChannel\"; [\$up\ + dateChannel];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateVersion\"; (\$Up\ + date->\"latest-version\");};\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\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\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n \r\ + \n :global arrDeviceInfo [:toarray {\"section\"={\"key\"=\"\"; \"value\"\ + =\"\";} }];\r\ + \n #:do {:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system/package\ + /update/get\" ]]} on-error={}\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devRbCurrentFw;\r\ + \n :global devRbUpgradeFw;\r\ + \n \r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global ROsVerCurrent;\r\ + \n :global ROsChannelCurrent;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :global ParseCustom;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global devBuildTime;\r\ + \n :global GetPubIp;\r\ + \n \r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :set devBuildTime (\$Resource->\"build-time\");\r\ + \n :set runningChannelVersion (\$Resource->\"version\");\r\ + \n :set runningChannel [\$ParseCustom \$runningChannelVersion \"(\" \")\ + \" 1];\r\ + \n :set runningVersion [\$ParseCustom \$runningChannelVersion \" \"];\r\ + \n \r\ + \n :do {\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :local RouterBoard;\r\ + \n :do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on\ + -error={}\r\ + \n :set devModel (\$RouterBoard->\"model\");\r\ + \n :set devRbRevision (\$RouterBoard->\"revision\");\r\ + \n :set devRbSerialNumber (\$RouterBoard->\"serial-number\");\r\ + \n #:set devRbCurrentFw (\$RouterBoard->\"current-firmware\");\r\ + \n #:set devRbUpgradeFw (\$RouterBoard->\"upgrade-firmware\");\r\ + \n :if (\$devCurArch = \"mipsbe\" || \$devCurArch = \"arm\") do={\r\ + \n :global devRunning [ /system/device-mode/get mode ];\r\ + \n } else={\r\ + \n :global devRunning [/system/device-mode/get running];}\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n \r\ + \n :set devRbRevision false;\r\ + \n :set devRbSerialNumber false;\r\ + \n# :set devRbCurrentFw false;\r\ + \n# :set devRbUpgradeFw false;\r\ + \n #:set devCurrentFw \$runningVersion;#:set devUpgradeFw \$ROsVerAvail\ + ;\r\ + \n :set devRunning [/system/device-mode/get running];\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Error in Function getDevice!\");\r\ + \n :return false;\r\ + \n }\r\ + \n:return true;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global WaitArrDeviceInfo;\r\ + \n # \$WaitDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devCurArch;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global PiblicIpAddress;\r\ + \n\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :local Return;\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n \r\ + \n :set Return ([ \$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:\" . \$devBoardName ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Arch:\" . \$devCurArch ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Model:\" \$devModel ] . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbRevision ] > 0) \\\r\ + \n (\" \" . \$devRbRevision) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbSerialNumber ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial:\" . \$devRbSerialNumber ] . \"\\n\"\ + ) ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"nleve\ + l\")) ] . \"\\n\") ] . \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Running Channel\" \$runningChannel ] . \"\\n\" . \\\ + \r\ + \n [ \$FormatLine \" Installed:\" (\$Update->\"installed-version\") \ + ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :typeof (\$Update->\"latest-version\") ] != \"noth\ + ing\" && \\\r\ + \n \$Update->\"installed-version\" != \$Update->\"latest-version\")\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Update->\"latest-version\") ]\ + \_. \"\\n\") ] . \\\r\ + \n [ \$IfThenElse (\$RouterBoard->\"routerboard\" = true && \\\r\ + \n \$RouterBoard->\"current-firmware\" != \$RouterBoard->\"upgrade-\ + firmware\") \\\r\ + \n ([ \$FormatLine \" Firmware\" (\$RouterBoard->\"current-firmwar\ + e\") ] . \"\\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: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: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 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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n :global LogPrint;\r\ + \n \r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n\r\ + \n# :retry command={abc} delay=1 max=2 on-error={:put \"got error\"} \r\ + \n :do {\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using default s\ + ervice: \" . \$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={\$LogPrint error [ :jobname ] (\"Fail\ + ed to detect public IP using default service: \" . \$Url . \".\")}\r\ + \n #:error \"Failed to detect public IP using default service: \$Url\ + .\"};\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Failed to detect public IP using default s\ + ervice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using fallback \ + service: \" . \$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={\$LogPrint error [ :jobname ] (\"Fai\ + led to detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={\r\ + \n :set PubIpAddr \"not-detected\";\r\ + \n } else={\r\ + \n :set PubIpAddr [ :pick \$PubIpAddr 0 15];\r\ + \n }\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\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 \$LogPrint 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 \$LogPrint 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 \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint 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 \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\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 GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$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 \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' 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 :global LogPrint;\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 \$LogPrint 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 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 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 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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\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 (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\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 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 GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \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: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 :global LogPrint;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n \$LogPrint 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 MiniDateTimeStamp do={\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 :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\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={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {: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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\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 :global LogPrint;\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 \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint 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 \$LogPrint 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 \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint 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 \$LogPrint 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 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 [ :len\ + \_\$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 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 LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint 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 \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 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: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: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 LogPrint;\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 \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\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 \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', 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: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: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:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\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 \$LogPrint 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: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: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: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:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\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: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# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\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 #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\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 :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\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 \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\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# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\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 \"Setup Global Environment for scripts\";\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#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\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# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded on \" . \$devBoardName .\ + \_\"\\nRouterOS: \" . \$devCurVersion . \"\\nArchitecture: \" . \$devCurAr\ + ch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add comment="Import ssh keys for public key authentication" \ + dont-require-permissions=no name=AM-SshKeysImport owner=AM-SshKeysImport \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-SshKeysImport\r\ + \n# Script comment: Import ssh keys for public key authentication\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global configs or functions not ready.\"); }; } del\ + ay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global SSHKeysImport;\r\ + \n:global SSHKeysImportFile;\r\ + \n\r\ + \n# import single key passed as string\r\ + \n:set SSHKeysImport do={ :onerror Err {\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :if ([ :len \$Key ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass key and u\ + ser!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ :len [ /user/find where name=\$User ] ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"User '\" . \$User . \"' does not exist.\")\ + ;\r\ + \n :return false;\r\ + \n }\r\ + \n :local KeyVal ([ :deserialize \$Key delimiter=\" \" from=dsv options=d\ + sv.plain ]->0);\r\ + \n :if (!(\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\")) do\ + ={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' is\ + \_not supported.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FingerPrintMD5 [ :convert from=base64 transform=md5 to=hex (\$K\ + eyVal->1) ];\r\ + \n :local RegEx (\"\\\\bmd5=\" . \$FingerPrintMD5 . \"\\\\b\");\r\ + \n :if ([ :len [ /user/ssh-keys/find where user=\$User \\\r\ + \n (key-owner~\$RegEx or info~\$RegEx) ] ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The ssh public key (MD5:\" . \$FingerPrint\ + MD5 . \\\r\ + \n \") is already available for user '\" . \$User . \"'.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$MkDir \"tmpfs/ssh-keys-import\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Creating directory 'tmpfs/ssh-keys-import'\ + \_failed!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\"tmpfs/ssh-keys-import/key-\" . [ \$GetRandom20CharA\ + lNum 6 ] . \".pub\");\r\ + \n /file/add name=\$FileName contents=(\$Key . \", md5=\" . \$FingerPrint\ + MD5);\r\ + \n \$WaitForFile \$FileName;\r\ + \n :onerror Err {\r\ + \n /user/ssh-keys/import public-key-file=\$FileName user=\$User;\r\ + \n \$LogPrint info \$0 (\"Imported ssh public key (\" . \$KeyVal->2 . \ + \", \" . \$KeyVal->0 . \", \" . \\\r\ + \n \"MD5:\" . \$FingerPrintMD5 . \") for user '\" . \$User . \"'.\");\ + \r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key: \" . \$Err);\r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n :return false;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# import keys from a file\r\ + \n:set SSHKeysImportFile do={ :onerror Err {\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global FileExists;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global SSHKeysImport;\r\ + \n :if ([ :len \$FileName ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass file name\ + \_and user!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$FileExists \$FileName ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"File '\" . \$FileName . \"' does not exist\ + .\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Keys [ :tolf [ /file/get \$FileName contents ] ];\r\ + \n :foreach KeyVal in=[ :deserialize \$Keys delimiter=\" \" from=dsv opti\ + ons=dsv.plain ] do={\r\ + \n :local Continue false;\r\ + \n :if (\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\") do=\ + {\r\ + \n :if ([ \$SSHKeysImport (\$KeyVal->0 . \" \" . \$KeyVal->1 . \" \" \ + . \$KeyVal->2) \$User ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key for user '\" . \$\ + User . \"'.\");\r\ + \n }\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && \$KeyVal->0 = \"#\") do={\r\ + \n :set User [ \$EitherOr ([ \$ParseKeyValueStore (\$KeyVal->1) ]->\"\ + user\") \$User ];\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && [ :len (\$KeyVal->0) ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' \ + is not supported.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +/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="" +/tool sniffer +set filter-interface=Bridge-LAN filter-src-ip-address=10.30.30.50/32 +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260312/20260312110823-Diff-Config.rsc b/MikroMaster/history/20260312/20260312110823-Diff-Config.rsc new file mode 100644 index 0000000..f2552a8 --- /dev/null +++ b/MikroMaster/history/20260312/20260312110823-Diff-Config.rsc @@ -0,0 +1,4 @@ +1c1 +< # 2026-03-12 11:08:23 by RouterOS 7.21.2 +--- +> # 2026-03-12 11:06:46 by RouterOS 7.21.2 -- 2.52.0