From 01b527035311decc9d45bf931c4274aef5f5a320 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 15 May 2026 22:20:25 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 15 22:20:25. --- .../20260515/20260515222001-Binary.backup | Bin 0 -> 244616 bytes .../20260515/20260515222001-Config.rsc | 3409 +++++++++++++++++ .../20260515/20260515222001-Diff-Config.rsc | 18 + 3 files changed, 3427 insertions(+) create mode 100644 MikroMaster/20260515/20260515222001-Binary.backup create mode 100644 MikroMaster/20260515/20260515222001-Config.rsc create mode 100644 MikroMaster/history/20260515/20260515222001-Diff-Config.rsc diff --git a/MikroMaster/20260515/20260515222001-Binary.backup b/MikroMaster/20260515/20260515222001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..35a501488c615c1b5cea8e8e4f5cd83373095901 GIT binary patch literal 244616 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%0D^&cN+ZZ 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Ξlb9SuRp;+(4)2sn8 zF_INVAj9fRP+@~5?;mW)xqZWS-wL@=K4+8BsyqUqsZI>sqGU4YhvSmuXa!s1=u4U# zyV!CLCPtL9zkiI2w~?-YC=Fc^ST%#Uu=L**3o|N+fW(Ot;;q%CksKuUlLK*F&+Iym ztln2m-~x9bO>ojt;=P_o5`%{BmNoSaqQk%Y2v!{^lNLCSYZmK}?MhoLSM+@xbZ=OW z06YI@^A(zd!(4F~OZkqh8okm+LtnXo*8-W$Sb{$%|5RWst`f!<9PMH{MAbuoOX}Q; z%;$zf_5nfAg}?NiHWUZx47oh8RPmEpDuKpN!@JClqvbt}bP^+vQ!9lIVK=P;O&H$- z^>xrHSb5|FtR@YZgAhq!*>Tp^Kj`&k1J)8-k&p=>dhkhX-UzPn$l+epts*kAUck&_ zuG`>tl7lLZ?;J#|ZsCT9=z_(7Mo|p_V#9<44u|FSG^d-*mZkLH!R&tn7QS7Y;Owtk z3H`9~t2T6Td&>Y+-~3uPgN9@EHKA_?hL=WkvO}sc;*rKMu#Mc6#z2~Zd%CoUuvxjQ zJ4akMj1CJ3;kMcmp5Dz02op^S1*?*cTkq?w!B)`60(#F&w(e2vSAj@N`M99z;#U{z ziwX(+NaE7mP4t$Ic=0UCfalTjbn4^_(c=djxMfx)s07qlcyCMWEn``{$O~)U%k?Ki zkgVv7&vD+&SxTiHXuP)-?qMD;AWew>Amqs~?1EopJo^ZCiaa|c(IFSb$h5}I>OpP1 ztHWxV#LRqCYMENo2ZcLIib5FHWOM%~o+5@pazP%p2|%;Ge%v`V^Yn6z+E(~`4fLVO z^3dg=^1b3z3F%*~ou|n^h;4n|itZ?h!feiy7Yqf6VCD;>TG<_5L`V4)7TfKD!W1|} zXs#H^pIfq{X)-UhMSaQ=D+bN!Q`fzQ{TyvD^o#$Af}LXqNtqyNSP#V{y16KRwYa7o zSz|7sqhw|Sxrm|0nvbAo?P*bfijlKKBG?gC=bDLE4j#9r^&3irn|Xm|-DF_!(GvOk zU6>?W+4G%8w8ZMo@%MY}9_fk^F=fx#J8X>MdO-_+mt2O09R@VXrz(uDTvn-~BW^Q$ zykNK~{hhDffnPR@6Zy^rXW+q!NpGAPkf97`a15qD``lu+x64=n6I{%t9>~T*@uo$Z z(gf$EBMP6tDIdGEWAxkc$7EUJRq{&H=bveY$XZPI_PeQtoi3pU$Gsgq1 z0R!zSSdKg#t;nP&Ka;rNU4s+^O{*I8IY~ZWtZ*i`!Qx*-7)&XB6|)J+iZEZpAJD)1 zYWVo~5tHSlt=mB>x*s|3wTV$wR$gys37RYqPUU``D;(T@E9j(h5=iHk<$hAqNpKnL zoqCTDhcxUqraJ3`kYEV#i&J|zYv`tdc92d~-lDiSAKy^xzA^sQQYmPhie358S)s%authD3iL&_El|0KT8jvqK@f_m6s!9^ zt!P-!G&h8BemnqS>nWRyaPGrTlk8@b=pF-Hart~(u$oitWj<> z_s7=}fe2EMwh6;lu9nCOuLu1-pKqe7c$*3COGa8`LsgqiCA`hVzMhwIkpb~k#Fc-W ztD)SUxI;C!&LI58-lu&dAlm~Ch@y^Wfx$aX_Q0jhMZ|6e)kVRF7R2;Shks+I{j)MB z270ENM1(Ie*b`nTh=5H|i<_bsW#dW zebwfeK8#}Wz@>8mp=nULM_qOU-> z8%@mzILHa-*YQF%ErEp|ofp87^9ovX!U!7d20kPTpu#vnWL8Kt=sLr2p73+Dg_g1~ z_L)H1T`jSjjj*#m1{4}J39CtCYJ~zpX)l-Nf?nvdy+*_AB&BX%>&|@np^RYQtv;P- z3gX3qXj@uP7s3>turXz@_g*?3eJ-C+CG#>Zvp*h5gyO&Qh0S?L3SIvrt8pCRn8|od zTt6G&dd9AOv{BvFs^r|Sf#Yoa`BLNeFjjT0LkqPkyqg2E9;=y%9kAtPG-o}E7P3Op zGNYt}3hO$rc%-oY#@ey(SL2|4p*D{tqHr~MHE@{*1{;Ieq6P3ipS!W2lZUZRr7uRI zqiI=wH7jM+$ax4Oi5VWx2$m$|o#0|Q0vU(5v6`{02pj*ciHqJMWn1?cnT_EF|Ds7i z?vc;u%2AU~ zHf8#=SJyR?saj{Nrp=AkgaDW_wdt8?&Fq`G5fu8+{%3UZLU0k#X= zLoao(6UMzxwP;Z1dv@;-%b#r3A@1{sArFC zG_d0_F|io@GTRsYwv@?eF~2KMyp zc-7Zf5lIrJNwWX1?MNk0q$Ma=#b+i2i8qJOLB`DjDb)r}fs6Tz%1*3CDqL=~0Q$qe z^LmUHQc*56KaSZ3Lzh4DDFlU=XKxH;QgTPw(^0dWYM5>PV~1D&UDTkq;9+>C4U}=} zxOed3efvjNTJ-YRWonE4@yzP;`+zYQ!Rwu2^TV=~ur{jRBJ!2;#+}IYtlsWoz1W=j z!t#8gaqt3Mrf;+^C_=VTZjMv|3T{a%~K&s3a5cklNR z=zVffG@cMmWBw_yqT?JB7oPj9I!E zTvgT?caoW_R}(vK$r^KjpGOhElU)UKMCotE5;Ah+CH<)S$WfSP!i`bQ%lMp%2sUYrt;y$urLdc zRM3%)zz5rAtD|6+oNu(lqnPjP`V?YL_>jt(8=nc|<6AD^Uqj>ku6rrX(93SC|25W! zHXUSUs=9d&4){flfHXZ52fesWr5e-*CWq@s1Md`yp zAhD$LvrdS(l}CvaBQ_qwN)UUn-+e$-0#kdPEw-p1BDyri+K`xjZNW_PI!haV6JMJk zgJt-~=LoGD+2-?b0V6CQ$B^i_cQNGSWLh2m`&$Xk^@WoU@JDa2kTO>m|Hg8~E?yGu zUPDl;5zF0$Uxty6Qw-@ZAYi2X*GRa(Mq&9c<>gI_&7Ah_W^AIH{&=042|qSWc(?^Y z7(P6qf#>H2#D9MTF}KCtYJA?$1`kzDWxdO`I?;|OE!c@0mUf|8-+!?|chZ=-!u066 z;wqg_xVLkiYlYyIGnvKHbr7~on*Ew)L~Vp^i0lB!E^wNy&&;vf^x&+1qj~N{)5yac zyb*pm9!d8?4j3p3k3lwctJZh1tPCj7HqV_nML8-RLs2|E_bJ?syz{k?%yHGEN|p0@ zqjA6E?Kva8ql2;4=LC@0uF!qxqP*Xz4d!G=Ag}(WEhxY>1#Y!m+^ns2Rkw}5!;kAG zQ+yDB*EG6u7@<3&<9tHFan%YRQST(@xrm0oAY@gG!8B$WO0^NjDlOX^c&TUhltZ-c zP4^=(L-Q$R6~FKv5H1uXP^t3_s=`4KZFu_T3X-^1d!+N6I^mG0=j+dVyH*_bc zk`0ldh=aI@M18WWaTFg^T}=PG9+ce=@&cY&j*(n5dIkzxD_}4DsMawbP7RV;k(n1& zJ|*f5yUj4bwMOX!Jz_th`(LI>ejp0!MK!}M)w&CeVQe@>*LIC7l1u$C^WU|JY`dt) z{7I8P{)dobsJr2`}X zMaCTrp7pb9F`S@}`sPM{E^kZcx=Iq!T}9MjBzjFtC-j7cnAYJ)UxM3We#n9mZ>dC- z6VU8HzuCzO+sc9OU;`>D<%qk6FG#o>WSkN-Q)&b8oQ>#o;v@;<$b!Gg0 zkF3y$f`YXYSeZJ!Ofa;8RCU>)-slW*1UEMXYY!(M;p(0@@p542w)#OM{p!Qg0kOVo zV4AanKK1j(fcL&hr1tYxlVLq_bStdh&+qBO`%qBQ zxLdJfGcock;b$R73Ht|aa;^6h3S;~KLsSD|=9I7Ss~i;9X#($bkd9%#ui-3SBOT!9 zQjr3h3n#-%nbZI)^QK+cCD%I;2Nb^2$7OVwj{0?G;$Co>$td5#E?e@bJgX#qlBJc3oo`97J zwdZbIq}Oc6VrMde7bTQ%XHFJtoW9mYAa3cqH^wIfD#s*ayjHr6xvqu7M!Oqr)5^Uo z>K`kAgMif0FV4BgN%Jw#dn1BD8%y*G-U0lwJs1Kd5fBzBb;{*&U4Ke4Uz8!PVAptz zhChWQF85hT<0ydAM$G}un#RpbVIpPhq-NlHI7bnDJwyTo$mGQfJX^>=BMpFPog zq&v4*6#tKlkj4&V2XV8epr^d+4C#Bbu6eII!_9t6blKoS1)E={9d_^1D%9$u^6UJE z>lo|<#>HU^Q0J5U`7lFWlj7oKOe8TcL|T+9nnBicUeXrI>Y@KO()-hOgUk-%5A8cg zOPWasruzPjzjfcmqo$_#cNh*#D->3Dv!1#gtuTbjs#k_tkM=y~Y+b5iw}@Jlz>ni^ z@G;cTj9z~fuM+*6fQq}BNZPK`6Wks$TcX5~F!t;)k9Y7!I^-#K0pS|xsIstF`Z)Y? zHCIQ+s01oeSaueMnG#Ap&5EVRl`mqHG9+iq7{=cqQg14Zii88XAq%pYrsHZRvAJG}nF-gXVlFk{)Ep!t)UNt-*!yFcVY!UG zzqK+9QR#}+a2Th^_)JjF|KZsfGRwq#T+eHMLu}1&5yOi^avfh$+p3`$F1ZrXC7W57 zkO~98=DxdjW|hsQSAD=J1er%C5iwtQ5MQ*rUVH1(!igly{RS&wsO(0Fi46f)7-eSe z`-Pu|YZ7&fYVGwLXc}owbpju!NB{g|TclM=WTihPN_1ka&*rB1I5zDhxp9Kbk${;! z+QYKw++=dU#i`OA9UDp91wCPYd3V4fC1{eclH{v}`0kT(79SZ2;$h6uWr!0Ij!i`0 zFnp>=GvC8b>jj-7iR~&?3I5i-C?}ANc6T@U-zxP0P<;z88o^F48gZdDe`H{l(7?NfgR0qIs6iZyQGTb|G{(lfnCfL z3s4SZVDoG9oAzr5HcFC_6Y8UAR|NA)tkYc7Zxjk|%U7;r$nLs5wpc;LtoEwwJX~OC zmmYx4PInrsu2JFlRcFfE0ziTmFe`+`tfsJc z_eAD47tFu?P;ns4p$8avc%%;8j$E5IU0 zMlwD5;q;>wIo zTuN3SHW6=Ic4Su5BXu<9?VVFseMwVIwJt&I0lj7{D7e;a^q{f;cas6fBlg$h=eg0P z9vkIX3?^y+3$;rmftkp00YgzzOWO(6sD+MCaGo zQ(F4knLK*+{uvZFn`tg%SF`(1069~H#h`QDlP`xzX_wC$-?rPRw3%tui8yg=*sJ1J zz`4yUT+7pARiB?)zz$a6uN?WP1X5oH%{2h;PlDRGk*-m8U5ahXY_sB;B^ zCcj158uqxXN-5=~|JdO}gJpe$6S*7Z;SQ~VB5}{;%vuaVl}Z{*6Et`^F?c9td`bfj!p!i^Z{FRJo6*VlDcW9=9umO?M{-f8cSZ0M?as_7R^-vyA1eHrKuK z*sz%3l%DkIwRu7zeCE;yLB1(^!?t3jSrz7;igmvTImvBu@PghXGS8AR5FvjqAxKQw ztgOew#&d;r3mE(I3olAqD5Y7UbPfkSErST3r)8>Fu>E7)a1Ea1O!_4tEPw$%M8inr zz{yzfk-S`8B%-~zs8w?Y`*NSUuN7BsNcNJ4w^(hIJQ*%??=#Q15Al81wEyIR6Lcvw z#X0*8s7G9{qU&BB!b1t|r>884im+Gsjw=zMRO+x@nwq9oHM~(~CKeOLa1dI%@>=bS z+UYX9%mLGpsrSEPORZ&VnoB~^hYf#pxTg*}c#8H_hkD8p2DDSL=R@MUj3lpuZ&-t5 z13WparKBB!p69&(5S#6>QS`uitfA27v3126or+b_zF+G1BSo%}c7>yOs%$z=S9g0d z>kYoRY~D3>CV|WR-!10>P*!gDI{qZ;igAzG-#j~}j$1p2ZXV~{Li(k??}9OH3fDJs zx$c|nJI2;e#Ni`1`1sk5zzxG?#t>oG;$f2(4b-+s~W;kfHW?{s~KN*fzMwkCg zjc9q)Wcyh}@Iq$q_f-=!YB!$g^bvV$rCp>dTaL$auv6o!qa-*tFO@ zKp4|C5;V|MxV|#Xj3~MgsNVg)Q)*u;^mAXpTYzdtyy6eKznj8G`JRWlvhQalB)|SY z;_;+&4?Z7~7$2zp@k<2vuHjsrAknZNNoa#snLcJ}!zW-tO??uwpt_OwLtgpXnd)sd z&FTWO-jEJS{yKUiw)Z{+tF!`zLGHWwg;CyzX89XvFaZZa!2@~nzN&55x{bJEd}*m$HALSSGGHBKcI1!#Pfb+O6{Ph4mOw7P(?eXqLmdfxloEF;j z_cfVEP-RUtr%~ekc+HxvRR|U#J#P9-l}#g9S8$mBTb#M@^-A%rLBkZ6U4G4&7Qju6 zw)O^6S{)8^t6j(o)y=GW!`Z4s&U)LV`G)PfmL*T$#FCSW=RQ*$iBR8kJFduV%uWTw?6<#f%eQ| ziEF4(*VtViswv)sRvd^xLxJ}|#Oc3UjmAXrBJ-#z1p=v4LQE<5|sn|+Sya46|m1ryhxMwO2inQMp7j?cu~C^}5NAr2^;juHz6FkVQ2 zeMm($Z598X*=jlPRzqa!bk*X?|a*|V(Mx&YVX`;<$&P=nuR0$5fp3{@la?HJp-ENuquZgfhHdNd~c(XRXua*{qUJTvBJLdgy?DA{#GsXR+j>Z z7umc1REap(MrTVGRXAE_xMD_|mLq@X%nn@H9lh2)%}c2)Izn8?@Xci@EZg?en(4fP zGcdxE4N#wjRuQvN6rUU0P}Y}HIcAhJEm-71?{Jnw?MSY4>3x}jtY0z6$ECCHXsQVR zJ)ZaIff4X_UY}(SMNO(r1zLsvs0F^5gLm4~|BayU9OYRxQeRox>up`8zQhgtAzH#X z(Fh}G&1QMo0PH1Cb8~ARR50ge)VMdni3W!HiQ@)80cJ;Vqo~j&(>*!A6(0dB6{>q- zVY=hZK(+Q!nfrTZ3!6)iScg)QUO6iHZ;I^E^KWp#;anPELu}nW|M5V~OEisNMwD)* z8DoypBuxHx7?J~a0(m{STY^BoW#5?496_J|t{|u;HFhwf9B*T#UkO2guxY|jR>Wj4 z721ia8dgGrJoo7X<*da26hkb0DDvE0JGlMY){hhPTXV{0!7PDXMS_|Y1pT^z_Z}bh zvh%h4=$W?0>JPkWbd81BHng(J2p08^S7~H5{O%%g@A_!j#5~~7oP`J9P?GNBTu*&m z@kc_lr;ilo6ga0=x20sEib5U_JQ6EE@k@CzrlCFNgc2sGH}3?J>UZnFurQx@z$mj$ z4#SL7x#BUrzyN&O_vqln4&1?h885{GDX`6tij?(L#QmohOTniKc!7Ym^a3C127H^f zPvl_S=Rn`HqE%A6V_etlOoXM?@fMu{87+nVms&a|6Rkuux(Z}MX?nRB|bJJj$4rWt)W)#_U}0KVws9A z=f8t~o}U)etJ?OmDchE*vzNSiY!uieegP-az_)p*fytwa6&1*OrSEoh2N;lLKDCG` zP<7MW(<`tF%>R|SLG7KQ{CrQ!cGHK5W%kErA!rDI(MXGkhQC4<7UBHQ(qePtK&sH$ z$;QYsBC*z{$HhO2Sy&!r;^zTWFSHs2-8%S*8gAt>S_vi^;!9(6;Ym<6=%?YJ(G?K` z4}@Pn42$wR*g0BABhMKX?h=X4#;T{k7D@^M@M8`U4M}+TfjVK6>=G^FCU@9;%M6ukg2oQQZZnsrz zIC#0`@$LKEIQ+b38fOKS0W6EN$Q(T9?h}Q{BZ0R1i-la(vsiuDLUFocM$XG(v5U5h zr^4vCqYw0g*jqI+ zc$RyUBj9xcVvyP^tE@vcM5gnAnn5k?vG+Y@e;k&N0oPXN4SGUC%k>OgwE1|(pER1E zrpl)Zm1UlaXS1f1Y?aLgnh7ZTu>|9)@XITBoC6h{a#Du1wJduWrs2yv6HZx$Y5Gis z8xem_2VH(Q#7hW;+NGBy&Ij0N$Yjfn3qrCGs63pwu+>fDd%tOQ_7(w$czr9&i%1ls z{kKj+n+WoT@h&GX>!GdVqI92_yUf$!qxop#WaI@%40pXV_~h#a_bJj?>q*6#`z-UV zJ5?&V3O+hI8L7_f5`we#=t7+QFk z_+N)~{G#TG%9eWo8ftX_0G+3|`DJS&>XY&(11xmaQ6y0<2bqrSM?tzO3CyqMNXB!z zkhI)M${R8%ZSG|WW=91G?dcFAZUf^Yq@V1eyXdz~s|G$_dEmKn_=@9Wv~U$7S8E=4 zz&;b1YG3UK{)3;B!uSCB03JHgJjD$UwnGGZh*9l8dhIt?7jY$j!a#n2sgmNy_DZY- z2?oTjwTEAF8NMZ6#Jot&tJShN(Er(_McAO@AOMDC<0J!K#2V$*Gg0+D8W9r4HgCo_ zYIviJ>-IN-ep4aFE8pikaL&Vv;7)h^Hb$39r>^@hs$d5t4B8k3q>!>Eo>JM^>Wb^kO#`<=1x0f(fC@FdYnS<%q54nl ziKUM(pbx=0a^@TK*gB58&fVmEum|bunt5bGJ2a?6I`0(mof-_5iFGuoYHb?Higq1+ z!Lq`Ff3ffIJ%H&7Q$`NJpvLVast)$L3|k$JPQ-Q3L_Sxk?qp47E#KVxra&MWg4|UwU*yoqj6h;wU-)eHyjY77Sb(#w*_=lF_wTxX1h||Dr&TBxxg~Pf91h zDcRJ1D5yj_HFi@1P^+A(ueRrD`odW(tNy(z0#q zpzvr#2pCBfJC6p4hcxcDT-4`Tt$xgDe55xt){S=iB#VK}8D?ya>=141prxHq5r=CR zHbcM51{ke7qzPbGY$ByKC(ZJipfE3gy6YTGF!XZj(itNA6Axer>>1?F%ndLww~GZD zr=d{|zk=C63-KP(nzZT|_!3X@#QukS@X47feXPt&I9zxwk1`>t0L>)|+#j>jVR!GN zRQeaFY^r>O!|lG@AmBMJF_u?qB6YJfz8hA+XadCs*|5N?eq()UCm4@aIyY^SC^?vdbFCGUj+YS4wLJBT#brN4sAwZ&Q3Y zMeHR8IB1bD*kV2;62eY$99+rIySJ=wv#F%u3SY>(!2t|G0o;$vb$k&yHyV1CI$_z0 zREs=kmKUEKPOHQ%nl`` zS!+8{O>uH9g*|8-mq|2Rm8}a2<|?{CLMkmO&QT00Qbe=P6sLn!JG4t*O?0}yjN^tz zi&!b0?cXyNMX=Hih9Tt^(mo#SXWEE931&KeIzZk`NX&I0SAfA2q-k z_;t1%xiF)jn-lXd^{oaVI=cno+%NU7vM+lloWKU-Noep1P|?t2$1UsdjGdDZaqCA~ z=H#Zv5n4c)fWc;F#s6e6zG8$+!&dn(`n0ncZ}j(@s9)a#L!#Ha3D(VHkRNEq*M|Zj z*jHDfEKLx32g6l1u_I>@Wv6%bRG+RM@met{ZKFHGG^;MRTW@8=G%ebxy5kDdK zZ^5+Nbr6bFWPQR1(*t^~MN#>%5+fv5+jP$g)$=@(qTo`8GScsK?ao?Z6F_NjrHV@h8LhXOOi{?`2IRSyce0*=PPO z+DQ4AmQ|@jcoBoe!&l*XcWc+YapTyZHbf$TNiL#1<#X$#&iRW)dYv#5X(@>tSgdgt z!FE!bT~O;-v2we=yiu5~%R&jRwYq@;U*#QE&+lnBb|HwhgUpJfDm6{K6)pX*(CHszDRl`rzCV|iCfHRWum)cmebE9!Utw7FHm_suVlf4Uxd5} z_tZ^Fiy`=J4S$ec|8-^$UN#k%JjK`f-VF;R&j33}tH0n^olF~fZ+SaFqp)b$x``bg z-QfKmb$Mcj>)sS!Bg0>ID3TdBeL?I z=DCGk`FURmSoT$~Nt7r@&Z;hS@{#H3yGa)dfxfI-;*l3ck#A;MJU?LVHshH+su&;S z{Z#rM#njGa0FIM~tdDh%LPv?$z zM8h+vk6W&0&xIsldEf$_>W#w6eF-wtz1IOy)j#au+042`n#@1h7p&LfQE#4 z>T3r}r0=yYU7Bz9DX4hBfW2PRBn-W~m%8Eru?SLxz1$c8`nUuN=HPA{dM*24ll|9` zd;$qpz6atHKP{u0K>c!@nCy^9tupip!iWLo_}I}Ej~e?FS`VZVHj-FDkv7hP{sZ*tv$Pz7GzSa!-Tb)HM zI6Tx@f3R-~q*w;w94cWmS@=E>$ZTh@SWu6-e191WV9S3yIgU%n0 zQvUaEHR&Xgkd3g*#~2aUK_r>dzLKqGRXbrL z+uDX7bh`$&ih+b$TR+0%uoxzR2GZI9cd27fz{p^2ba9n6Fq%(ah-6 zm^1v&d04L3n_{L4X)x`$5FOf%@Z}QA>C$)5d)bf+2Nj8uTlW>xEHBp?@l%W)H2n?I zn2$?D5)X6+b5ZzKdz!LzCT7CzUP`8&A{KfQPFn^(PH5qtty}6|=O)icb8qY_ zV}p@7ht#s>JNVw-@~;)s$Q?q<$~ua84aFILyV42weX*F|NrQTdClQY0IT;{n`Nl2akCh!)irEbusy+tCY*-%sg>Rl58uS7VM& zs@K1G^T8=dE_829@n|p%^;&Om^o3HtZG!iz67x9qSVG#9H97CSn3V7EaG6k;oeC?j zodX4;iKDmyJ^WRc51rGb+KKYWx=5DjiCyD*~qNfIubO`B2!Vc?E8aOgz)b68<-cdsgZu5Ra60g{A!JM$1{YjCnz! zLZz*1M>fXBV^#D^#2B#|Tx5`bzbde0s`53Ilf9!lok6ZVg>7j>u@C2eNegb6rFFxi z_^>F>HhLcQ$IhZ617c)B-;gdRS&UQmF#v(&{jDXU-wb-tl1~w7{|jN2S$6GFX5|>F zTBO<(jf_7WxK2;C+}} zurUf9Ez6Z{I!0jv>Y*m-d-RKx8*A0kaAo3o4(Vb@63$1Hx{m>gNg5E4oWA(xC2^3I z!^R==kIik+?2~qa;!rN^4{+wTP1K7qW`W?c{_JM)$F$ z#ufe3nnx}v%UhY_Zjg&)B$vz<&UG(HYsA_ll@<0pP z8^`un`O|GD(>5Rf$)2UrUuf0o1u(uy`@Ig3K-EmO_8FJkRTL+l__Lj^aq*kT|rf@PSmoTkafbT~#)&ZEFyiao;Gl>yMAL!d00tid^G0jU@laPiSvt8|kP zXwMGIZTN^O@c7z;Sqt*T8IXJ<4{F2v$E?O?*~rAR9^X)JCVLAnntSK4Eq^Q3`Ou(= z&IpRt^KJ+hN1Lsb@p%R-b~|&JNlXt#|1Y2`b~YNz>{oxlAUP)m#>PkLlf!`MSsZX< z)a$rP{RVNZmcC<+Tk`Y(wbadC)R^ujm%Hzno;uTFo}gRWdeL`<-OineM9WkhQ+jQu zP*_T3E_z79Pn|>FQ61plsTA5!Cnj%nw>>ST+ktAG127~QP!^iULvxnXgSC*g9(-?? zx4eOvpF@{vOf+j)LKPAefN#-pt+ac(bwAi@aZvJ2L4w@UqY^>sCFW7rV<8CO#_>jqTH?xSHoYh|gKGKS!X@-l7j z;21cq$_aD~O8X1>!m_omn!17Tioki=gn@Y}mM%?Tz#Y= zY70cbEVZD9suuigKYz!%zC3ZXK;5#Xrkan6b`YP4@2?SJ_GS{pVLtus)s9?9IiMVM zCwXD;-Cji$`7C}BaUUXLumJG!&dPjX!;D#+@A`3--sJZ7D0@nj6u*u>pKz9%pea*v z6W`YNGR4Oe?)WSM=34BjrpSG;W=oCZYvc2Z_hF)kNOdbJfsYy*`Wq z98 zl3%n&Z{`Eu^9NEg%X(i7#+Fo1VBB6T5M1X%Ry3FDoE|YFkZIp2?e>=MTotzf&Wewa zF!n?gMO$&rNd#fXOYK-f`asr&?ONX4`Q8zE8ZiBOhO$ddOpBK}&7U}&L40x_VRhF$ zVr*0D;=@<)C+f@*G--5Xo%6J_MUTfg|R-BHVtAMqd^7r z)}WE=1~||Rj^hiY@{!lcDtixXO~#qn`{)xd1eI=BNgNS^Tne#62bBB=R?@?_9z*W+ z1;6U+(4z1MLI0W=87CQ)o(RaFY?(_+<_Qg)0HFNfibxw3LfZkA?!-uzcCp!zmVLD( z?kZJM2;phXtSP6=k#_I)8+b|tg=pm;u@jg!oi0J7zI=Z}A18H|w&@iGBXeFCWXe^D zzL_-9*u6#6(V_V)-;@Z}q4p|$YsJydI1*Gmp>%^H6t_1?yYkUD&XZ;x)4Nvcd+?(v}9CB1FnZxoIyU}k^yaqls z0&ZYc=!ss&j;NsJ)ACK0U>I_Tj{|N~Mpfv}3(dlHD!kPS z0+JAIW*UwRBnw2C6q%L5xVo(3OAJUlx<8ma(K*Q?4Rga!Z$jCmWJcpA`HF}IZB50S z(WRWI{~M~zjgErr>mQ?&K2K_c0)ID!RRaLXtVZdemtiF6Gi4F25q;>V>BV|RSe#2^yV6r(TD45ba`4a^-{kQCjXlz@%^U8A8OSB%TUjVwPU*J z*tzY8{+q6cL-*Af4;( zwKfMub<81X=)e>pYrqqA^&#cimm@PfN8=AeHOFZMyfZ0fKL=qdYGv4#*dn+B$0jD| zWd((}A&N|Jdu2a1KiEd56)-NY!Srxt?7a=pJD`Iv6rY9aD9-p>oO@9ZYck3vvXG$+ zOd07`< zjPtWK&z~#RFXt1FBVut(5VR|k<}IYCdh&)FyzZZpS=*R!SdOD|MAM6M3E-;U$PBN$ z@%c?L3=_S2DYYt%yX<0jyX^$9pRSAvenXv}*}b!nJ?o$P4D1#F=O{mguYr-#tc<+oLyjw39>_)F=k5Y4@-8Tm*aAAul+uNrlp&JD#7 zLAb&V#zo%dgl8&M*llAPjdf`v!{1d-JWlM!Jy`V90(y6oV585w$&L9i16lM-H2!qp6G{Ts~;N|k*@g`M8qm$*O{ zq!$D5ouvbjdJN{VWNa6Vmnhj@_e@!;$yB{d$1raw7jA%1VZsFjc~HZxw5%{ zNw0gjjZuW+OnE~Ur#dg;n6#ddV%5pq>xMx*P{b|3 zt0CpOrD|*358Vj{OxlzK1VYIH4niX<`=rv?z_@{l!_OwgJhRl^tcx+NdvkygY7<@} zuN^oJ7EIvS;o52#4lh;9u2t-bx5qOaFP*zOB+B~|KA?@Q;mc0~x={chrtu9~Uu9^} zP!d=bqpEljHAU~YOEcUwiZdOgg+655CX!3h>p=7o*-=kna16S2LSXKA@l?l((&|0X zd1OssIq!SjabN}QG(vbX;6o2dMFF&`t|=)n6yFtPhr!`ZjIMy6l$`DJ$qAdeQYQL+s#$S=JMwC?$Nq#H!)NH2O>!ObYy_ZyjY3!Gw;aOTS3G=cn4ovHO5 zBiee*{+Dt_h$1R>x9kWN0+Aw)PyOn^YL9Sid#u3tA{63nxNrJ30v_w6nZ-`BV^7q#?yTs=X5TxtIcyLn%xuB<#)YgZ7aN}o{~?fKNUdM ztE%3Wg{%DNB~r;{xr(hr!z^aduU0+^gzU8A+9#8+`ilTV0YCbdE ztC#kI!JIPyzy0X;4*ZO_!OQ++BBKFMo&jLj*1=?O9k14jP(cBpD=f1CpFT(ScMo#L0(%-Y zm8An^*g3L+dQXWlaQ!RLv%-F3mC7F4g;Av8h09H=?sEsneZL^w=%kZNILI{oApSv^ z;!kd1$&n86P|e74lwF`zhi7}c+Y=2`w2x@Q6xerS7VCVN5$!?hZVMx>D^1C5L+zOg z)Z{-|LZJTi?{?)5DKqwUAz%BLKVwWE=Gfgy39vqkkKjU+_(vX+j#V6?C=H_nOlvZE z&_lxwD{tZtF`gJDM`ryts1A&{Va(hJI8}~<8uXGpHwshq(G95cBO?L=z%AUtJ!BU< zd0fmVy0Rbo@gWg$+xOirmm8uQd38YNC?8HgE2Q%$P*h=UehjGGRc?ZsQ&yq(7HbfQ zYeGM0860TT6#I8DC7*#Ve?T>FbCYlh4c%@3#W#v09mc^94wcL@@n&?+8T-Bg+L$n2 z?mYsBXglsZ+6FzP7Tm`jxd^(L=*E~>R5ZMgqUzo@7RveI2ec^A!Ey)=AK_mmE&2ZBuag(taWNp=W7;~w2Pe6|X4#Pg1^Q~wV;wQ6p-=k)TT z$>+j44cdaOKDA}?E8XHVvjB0Le+!7Id<0;N2+8c*AR2G$taL4vp9&GH)dG!g?^Z;E z{G&m}|Hg>LmYcw_$*!sIN}Y^^uH>JBYoE%l5^jWF#8nsy{54E5A3rD1y!6h%B-iq~ zlEWoq_JA{7HF!#z3_v!d+ioOTkVBM`{7nhvVv9^0On=Y@+HTNn_MUB|s6HQUxPm(~ z1MCz=v#r3+m%}*;fOBgNq90@~)TRO6RvF6hYGaReISg;~c3T;Bk_F|0b!dSAJ{v!{LXC6VphKq8Kl!kzx00E?o75kL_BK_no8kU3#X8q8f% ztuc{yyjBn6`eB%C4rq&{^1xlDlmVPoT`XX2F;y{`>YM9U{H91V)Bz+?CD5Fe6%B76g1SZAlPfSa#oXv7>EmZ7 z>1`TqI0sfmEvHRQXQFJJF+L2VE)q1mAyQH%_*S&8{A^=gJE{M95x@MjtFSYNBw;g# zZl)Gy!6&(uUFW-hQX#kB>&usC`a6*BOuNau@_=L^sKh4D_e_d?Y*Pq{hqYEq4`=WRB zUoTW~G!fPq`fO#d`lU ztI=I+acUrt`yXJX6~7$~5k0#zM+^*~Z}n-ROpMp4FhxRG$7xoy5vSRgCV*q~3YR^0 zN}!oH8ZT3qUG}gz`NP-D#i{{!>)k1JHvH?-n; zBth<4j?rRG#4gd6e`$wjpm*RAtZfC(a=P;PPbPrv6LA87sn>ct_?adhG8iG)uodd> z*~>jW-!D}{0d`U`LIG#5X<|&2+BZho`T`iRhZk!Ps=ay_i?}3W+mohwJ|8Nh;V|_v zm>29O(7#@Bul@6jX>*^eQAls9chdW+?GI)q>drkqjHtCg!zMdi(cA(kdKuz9HMp$L zxEl?bBfQ|7VBX=UgJdvRxHz43y^Fgc2OJO6M$yM2suX7>aS@~h((T60h0AeeJ&G>lKTQYBBel=ACELqO zvhW^*5qV8PNq>O~8!)wRlKgo^y9PF$jhiLF)>Oy{zD7wd@}1+4;UO*`jfbosduZcj za2ACGQO)xQEldiAICINCGudB`sx)EJIU%yfvvC7y_k~1{Q z{f`i@_2#xrW%vnFb7x~zJIpA{*aFA9Z&!OM2@SGKAx^l@RlIZ$J~fvF<5q`9Iv*)R zz)BuUyx{vHFaq?U5w#Xs|8=@U1NdE-D?1aK@z8vhqVSO_Fz_t_$?beGakJ?l45M>< zfF8QqkDQuo6GKER&X6lDnm`Zt9S!qo+s*?1+D&x9wCk9azKs9oa!DAFtk9xXT|K^N3I!nB7OgC6yV*IHTUKc4k@6>7@2I> zVQg2vHOSqQAIbs;$xQoXsn~BL$5rmNI9Cj_T&U8CV!O#3ar%ZV)z8}655pVGGLU(+)v4-;+A35u~6TKQ75Ngk0eT!3$kIsXN< zYP|*m{%o|dp2%{CHxV5IaEYT4X(FP=ETH|f<}j$Kf*tJT6G}WQY3m z{rPlL{z6>311bUJIX9%I@RpXhbE+tUJ;B6aRA}JCExFwwrSswl_(=z?u$36M+g^V! zSU{~6{V<|IZnu7Op2pfI{(nZ3+jB$kRg}V1?p_W5B-)S8Fx)lX=yvdYYP}cIi~@~P zh(B)dCQlI)BqNnEqmA>+lKl^`!E^sQ!ERdW5`J|2><(Y`-o>&}0$-ZKH#3-^mxu^5 z+kw*yPcuyf2R}a&tXPmPa%~5@ATO>h$tdNXnLWh~cYr1J!ZK2&=G9>yr??mdAQ(W< zmt~-6G(#t?(!4qPQ*a5`@x_V|T*1=2@u@n7%eeF^)bpZ*QGKM1_=dn!qfX|GOT$4E zrR5~02Z*y4he^`?Vl)jr0gePMkHO6@>qyFnYWXrhVIFs-G#+jG^AZ`y7*UP*}7JTj-WG%QvS*TWnf8@PgBL(P-2M*eJUM4{}gKO(yp z|CGEVpYtrBTB`p3sQ{cRMQ*p0dA-k*gYT-M!18+(UHdU|q%a)Od`v{ngmzlZH9G{Q z5s^rj`oh8dW})3OVza~(tnx5iWJ<(QoCO1X)L%3d?I;kI3iM}mw=(bXL!9)_U#j^n zriILG?sVo$RLlOIVlK0TP=#${iAu+A(n_^Vb|K80buxK+>0q93{#I*NAHEYkw*cLLo3hfSVrb}5|TqsA}pyvuTi5F1>$u{M{DaGw8MG3vXmRe^xX z!LR^?8CPufi4$%e-ypIO5*tz%+JDIfX*kghusuP90oq&ngI|hvAusSA+?ewI6SQ97 z3OK6rXg{S2_sxj0OuHd)L%=Lj(oE*v9GANAV&R`t?w`y>hu&f$Lp#%t*7#|}4N zz&=Vi$=1S-M8W2Q^`1tx@Or?PHWza8Yl0cmiJ_+Q&4h(+)U4yFu7Me-`~!l@)vu9A zOFL7O)#h>&RW0@9Yn9PEkx4{4%tY04ll#x(-3G+VpQBs z64%)yuTQ~_iuGV|*1HS)>*<9AwnvQH6TijMOi2J)isuCt$eGG7eh z6T@@%3z=spv^XNRO64CfTP~8n-7ISmIU%>3P1_Mv6nrKOna+8mTQ$f&^cYojg*q1O z8R9^L%kGMv7@V_Z$cj0LwNX)9R|7B2dQ_yPBi9}p7llD`vj{r^HAfIapRysafN6~f zq>Y5p$d-jEIf_iPj4d?SPHX3Y&_CP66sd(W&vis@BGUc${XT)s0f8QU-eIiuidNsJ-GD6XLX!IZfxR7PhUG>cCY;oh*>_?{veN6E~Dlf z#%tPogGmO$a)4GrTc5EYNfK!Ix>hvf;TpCu=#P)^kS=CiMTD*((L5gUzjE^XDCx#T zb!?_%i$E+GK~q%>FMVmL^zcTh(f-B*0N#wN>#%r=!@>m_NtGQQ&-%ajtT($^wJZV5 z#!tCYj1X4TCdkAQP&RV(%VS&qd2J{rL85!OtlwEc*SqmT>AUm10gTe)6%x^lSx@)c z`I^a_!Hr@FtOos_Ku+qj&e4413V#J@*}t@F5$)#@61MU&A{kk$hp&Ny`*jzFR}1_YD+wk8*ah>Bn(*!_qz;?o!E`)N0FD<1K*C`SGF%}NoJp%R$cmC?ImLZy?`-(AuUv5x zL3hC{`==4KUb0^#xChiQ!Av+DXuXG8*;JJkYgD(A*t=BbWq2cePJsGj0viNp7{c z;|R^s*b}m_J*zi_n)G#tTL&b7mu|8rH6RautezMlx7c2f2+u3FS(W4pjwhX}r%(;V zf!K|5HKXqK3wSG+Z7IX9iGBjD^>eNW-&Sx2cTsDC?o+#D;~j^;{6M=$s&Gj<^;)@l zwd9K-hXbz+-FmBWt19SstA3?1w4TRR>JJcmN;fpt$$$1umE}4`PoE?LFRLgNTu)m6 zoL$o1vDGRe5a>_k-wtJ}oPuFm;`GR#V1xD^7ndil%+#@M z7_HOFwvuzSpGKx6filC3;ZJb41{_>i8={wo8g&l_BjL0A=pU_wFf(7KwS_w*v`-p3I+s zN=e_*o4p+dnA~j&aQdcW47|P4Q()FjUI{k2eM0Hw<7wuZw3JqJmyc-Tn4-*f6i_rjlbJ$@_7qtAocNPz6U(C{$d zT1oF}4Oxgrnd*VKqg}F(;bG_Z1^`0G&pWNVxy40TpVD6Z)Gv46kd*IGvM5=?fOHxHBJlvtIR`2D2;?h( zMqGEWF)4tsKP(`~kN45Sj1k>St6~}j7{F6E3oUK`GhQ+HG&v0SG4m7AI@@SN;_o@; zgJM_vDl5SV8<;gDb{?(PJfRq##S3)lH^`03jx8%2AEzS2K3UoHacWd#;!tb;{?Fok zT?c)Js3c0$!Td$InYIsRy01g;c(O?ymEOT{(1o7>i^uQg2+8Hw300=neJiLpR+U01 zU(!d9T&!klTr^`y2-FIt78|3`d(nXkHmPn6209zJW{r*!3XN9y7s;A2d&KhE1-IWf zQ%b@l^7jwHa|3g*;Mc&eK)eHW21AOtj_m_9IIE?i8Md`UcJv_-ZAFd8BLA!nO1=MU zZ7>fW5aU}Z^zZ9O&$?Ab{fG0aoL2M#f~SWlQ7CrHh0sWOCf&zrx64?Wv6eKI zx@Kslv5i5WV~0h>YwA(~gE6s5 z?!a8D#2nJ;j$;xJ#0zcaJeQ*Ga0d|RoeT48!rIi{WJAoDhDwlZ&26V;HLl2Q7C$Bv zt?x+BG6fMak8S-0lvXA*It8u@V^?xX{blfOv*j@PKBsQUbZ!CfmvA}51dl@fwITY< zwAGTzXwcnDev!gT$gD&X=ieO!FAi;Hk+gjjX}_1zj&eQ6YB>bL6+YP<`n@uz_#KDUMQDj?z<1IVBP08M<>lF{81MA5CLUqUlhku;`! zTst*VBCt+t$+hK5a74)qNCJ)J;7Mf9YKg=|(q`(l^mn0da))O?^pDB@zUbO78Bh1# ze0HkUQB)(;3B?ZyAwy~ySE!qS7zIedlcB@FG~4qZSsMJmDveq|`)Q4Hj;x;>q3hS4z{V7d%2CPc%8@`)g zKBnp^*aJ6i^`iEnH4nvq=94k8N3q6RkWg|wIt!_5aN#&8lAL6npY^(^m7n>rYv z=cbperg*OV^_>`JGwZ(?iB0*T2F(H+T3s$$)P~G=e`$lET#IiH9?TC95ilz)OF4PU_B5tD1z%K= zi_25k&2qcqzS)tv44B_ujg|fD;8<=q4Pl(B_o`QPytZG+xRxVo3QbZLud-bC6tlkZ zrP`iOx^Er2f=9^VY>>GGp?F$H|Dns3=FPOYA~Oc>l8!}SbPu`M%w8nhqzUB4qP_QR zx#}e0sP>XBj#cVEAo5*~Da3-KtUn^@2y8B*XAyMPEhwm9#5_?@WuotXbYw|38?SE@ zz$z7698sV8?&@tY$F9L9`j^X##$nThXc!p_&>!t^Nev`gP$3NRK97i;E2T0olBhvY zdVC;}`x)WkCR04aLR*O6*VU2@5l1$dZbAqide`F%Y_sy^VXdQ3zXI7WZ%^J9Ulh|` z6q9cK9*XWnsevS+4=41k?ssjU9T(TP3}z(_k{~0 z&R07Sfb+%jkh?`12ef5r+8^{b_GoQhJZlM)81_e+xcoWu6xxG*0ewKicQJM&{7?5!~1INPeSYIHwD zU{n9GB>!FW%mCxqHhCHB_b%^T!Vjo-@YmuG;&#~TmFR}EZYiYJnS%L5(x#>4VZ)V< zx~fPscH`RTqmi6&DsJgDrxRke9|Z} zZpJKxf4r#R?h|>kNts=NH5#|sh_DxgX2Ur+i4lX^Rse9xnmZH38h*vov%b2n7%AF1 zszb0GIZSXc$Tpn7c!A5UX=q~Yev?0S!FT$VTe+Leu`!-IHWgwt5fK+mK&t@#OzE#( zI@cfaL40+=h5h3OBRPQl#*o0wI$M*--}+HDOSmIVWcV|JIv_B`WT%8v#fc}Y`&@2}pmhyGp+;X9-wQn04foGJ!4tr(N#c47<1FO+f1tmVqq=E5{ zM5ftn3nCiGqUiD0jX4W0x~0L+C+iKyqTpK$tzu#~A33d@VA`LEs1jIew1*H;{o={* z(x_4O_Xcm*TjV=tQ5yi>yWb&ntqnSNm5@>;7Zs}*+Ce`}PmSeQ;W~xV{A4!559=RT zFUO05OlUcLa_i$R>uQu$8nNyivOUC=uPAUioj+wJp&FOgC<|joOj}BuNbt!UA=@5XC_n#` z+C&!$BJW1ry6pE9B+U|Mn9?1SEFre6C(}pH0~%`jdw4^4sTE`QLlX-k>yi#YPb$y{ zf6cNk{IMW-P}K#~55=Xwa74t$EpY0dD~N@G&e+Zh)XhvdmRob3WEt&^&IhfKkbgw| zF%auN3OW@fOjjO}y&8%iW5pJf3&E$w{}re*zxj4M-9{p2o7_O0+VHg^y7nQ!?|5_H z3Wil@dUuXaaRK@n+VX1Cye>U{J9p*c>9O{DnI8c02F%|#@|T?>PCFDVl_Dxg@(~=#Ff>hs1n9M2zRqYeze4x)MG{XH_G~bG zn_~_dDTA3~tfnGCWesGYvDnRNZRM0bR7+s6PYBj6n^i)|JdI>+|1zh9Bc#<-&^JkV zk1^hR%u~xzNyU&xEX$@A@)27~r@ILiQqc^WSHDiN&GJD=iTDDTYgZxLK#IaJ{UUaS zzawM*`n5CgJLQhP77@sZXawH$ttHy;3d*P=+KGvq0awQO^RQ&Lc_?kZ5AS4 z0?1RlRIrR4E9UP^&D~bda|tIn4rg){%0iFN$YY9rJ2Fx4W-9TnF~t1qmV4IHUln;% zCe0BMkf{1c)Ub2m-K#77*O zu7ahwBQO%-UQ^Yp$fMFDlpNjx1L)Kl=}2rU(?-R@&y-1jF|&pdf_Uc16S7{{+Ri;cL7)rs28R@O!8-&5Jds}C zi}9;bCbq2lK6!pxCwa$#lL~Qg6PCwkasYppD>j6hx&E}-klWK_G6x~a(s=WwDfmq@ z^tTWhTdGVTY3d^)p0+oZXvBXZc06!3yJFFdj%h5>wiyU|ZGAHwrNsurar61lSJRl! z{dh#k6QK(rtS_+t8B>2NnJkQuD01 zQ?En8(Yzo+p@Xu4z9*E=X@otDi2VZ%@Y=R5B@rZWCNl7%&@B}D!Mg2n7;+a}pTjnz9i8GSp>)jQnnOAZUeVBWh-5fZs0RSB(H3cb(dteiX1O(U99 zX=8l-NRRW%Y>eIk3v7xaU(%QY>i|C#y-I`zlLF`cPWn2LMsp?m&80>8+q24aX;0_xrDB>z>sqyOB zDo7d(K@H4-;1TGf#)IpDAC3f8LrP2_Dw=KJ4XT0k#gtV`SX!<5z7dd|ezg~Wg%GhY$f zfNGnB81*-Fpy)dtWL>M)cy?I}Y|*t2)>&0}_y+8+-!8JTPe=gE|M1#PmitOnwI>}! zEQgYaJzrmHs+2zQD^005evuqLjBb6{3c=+Sg1YL{nWQ!${(+-@K!r-`|&dTRBdL}dG<2$E}U2hJZl|_y3?-nYOqS}n$CK47WZ1T-2XaHN7T+cQdal=+TMW{q3ep?IHnXC3P7{ zWG7M-sptC?9hF!k4EJ-8tOtN#F^noxy+-eng@ZFh#qmcuD17+m98h=xDEA3U>7U8 zoz}Rv>mX{2A_9QC0E0L-KXyAX0#hvVO8F*m8z9z;7wo!yi4oY1fa^ML< zRf|y5m`+;$Ne(?F2u{SpXwNyQI288a>_(yR{a|2Xlr!&);o#azmN07P@0h-{E%Re} z_k*}SOf$(a?ZOeuui2~C;sCI>^M-b6x}(<>X+-fs>SuS5GZ{ zY{u^p-nc;4s|ITDgXd5x58k_O{K~6k(NLzX{42t+?>N!+(^C5HcT|g8bY}Ky^zQ2L zx_oexf8oX!^|EP!7k(SLjsNo^9eDlkF{8`ub5J`BMKinvWh{>jDT#Yf6FhPj-mvHA z#juw)d8+Pm^Be`e{hGMGUF+~+9~ElAFnymZ0kVw-CdV#ufUBvVo|WTqoc^Qa#4zJI z0e=-xc;dKvNqbsHIGF2Clf&>S=zr@{k|ig^^JHRp2Hxq=&{^A&ZyZu@33hMLHHnK! zN{ESF9=hNC8?#Ol^+J3L>@gszUkBX^1CUYE%|pn^!SIaJhVG!3u6qPHjX@>0)Dv$8 zJ@ecVE)lk00ihn7?mD|%B^_AC1qmf?wvJW`M!WXH1TYQ#ZDTQl9z9YU>=yW+oP9W+ z60k;R&hP}gfC3%G-4Y{8=g;7S_G-zy#hxY*Q(hXg>r1#rXptH*ces)+U-v6Fe(Wa= z1JVgDqPRKIA~@v!cURO~R?b@(YW-lg!C+@;C^B#Xrg#l~)1FTogG!4~SFld7@S8=` zi40+Wbkj!W7YWj)5$)imbyJ6&M^_fy4HlfBBaK2asJr!18}#t`)j{;+%GpV}hL@K7 zkPdc$nM?NTcgg74h}dqG#ck1%JEfK=QLb`3S{EJ4U0%1nGZ(d5&eMSkz|%>Go0N+d zni)j(psTNaywFT(zQh{yw-2-G;VZcOC{2{&{y%xuc#!L;wN|@KLNv)Uu>aF&D>>W% zPBC5Sw{KmeJzkDHU`sGi>P(Dd&!3?RV=Xao<1<7ma;9WGhwP(j1w17Zxl$4T1v%7f zwCb1l`!Sj;0J$~I=DrC9&_s8zC+mIkuE@dLA+;o4x_1GRidC%DAq)N~!SV$}!= zO<*Y46ISX2@BOln3>B+w)-`BI000*9RJIkB-Kss>3{SiU^%i@oI-hxBq9-2RW30L4 zgs$t>w_l+8w_QD!v*)1jPe6IpT>dEc)hppvpTwsVCK1i~ZZ5V{Gp=m6Fit$pF-|9w z2tCVvCon`jJ1%s}Y1_%_Jc}4iN-xDkj22HhHuf++o!rmZA#iBuFPv)hfkr~ENN})8 z76B|xkKTSawTtLuklQ7%i;la>)?0i7wlA;;a-+uKNt^ zgFx)oabwp8mM;>2Iz&z9jE*JR6}x4`IBB9LtAa~`O}~mKlv;MaiIWTpLP`__xQvpp z^@cZ_;giUdN>JCPYxKNtRQQRd#B-K(9qj7WNs4vI(RyGOcg+ri?=dhOD5Kwa^4Ch8 zd^qdh^34*wV@@!}86(>D55_P0Z{dI*k(OJf+rg0Up)UE(r3KEo=NT~)xZ3WS?fAgF}e?=kDW-hNW0ka?nF++s2gxGL29kjf9 z74mzbL=C3hK^JSG)Lg1~FKWytcK!u8P+SRBVjlhsnjI@eDfG+cw_0B}TIQV=c&E7X zftuSwH6tjuhNB7!T_$k;P6^EYDxLpAwpEO28;z1md-@0H3S+Gvjk>eg#=Jz8rVz!y zwqrrGm=9Ytv$*+S2Zkk2mYuje?l0Hop7iNjVNTso#4W81<6BT3d7ukibtnm*Y)Y0_ zecZ~GdG^p4aYGMbNe*f5I48@*e;i{dJ-)!O20?1?YpP-^bdM(8lY+HcDNVy21P4d< z59?-(iD?S}65S1syH&m^%N7_UDk3H*tUelws6+qM;T4@2cDeu$F$R&9)J}8ch?wT$ zij1|&{`Ctd_Gt1U9g9}3(v+=hvq|m-`=~H+zDtq5Tq%#Zk>sYF60EWQ*8yK zwLrVaVlTFhOu_((BmzLWPZzL|o2t{{b+qE+;>qG*k-9O@Piq~@6~)XkN8NVVkLzT= zuyu{6LilcuO7sc}XrQaWe;DMvC&;~uN0t&!5s8o+>jYxww?$F6`&i>fTu0>_VM`8M zA#Hat^6(xdAmp+7;8!WsaaJ4i9G}#dYF8s^$r=PAxn#!Z%m`0s?xiDuRWiYU(UkQr zQLD{rK&AT4d6x^SvPHApTTHGU4{dm~lyA^&GE3*YsmVZMVzO5|Kg(YBFX}uvO?=mE zv5j8}wQ!Xk*K$9)OW6LEarwS3FK`A6IW}(eaHVlObb&8`$>pazjQK>nU(FJXs(L{0 zv*}pM^kIP8x}sAB#3|mwq=YT0%9m?pe*wbLGaX0{l`9PxmV0oJG*vmhEx=hJ7obf8 z94(0+6S9`G?n3|RpGKLEg7k7Ug#^)bd9fkfbuWS})) z;d}5_{gZ4bn(qbBIe+AV>^=y4d7xg#4`Nd98Uy%B0I=mZJ_bm?u zW+~J_v5kmvNjDMGl(1I{83o*+pNDyGvoe?1c2eU>#n?xCzOG8jVb4+oy=EQOpC6I# zuk%DHC{f^`LZZ2j3YdxX88x1`52J=ztyC9yb+**J`o3vgICeGq{)m3t;av=1ztt;G z=uv!-A_t9>H7{%MF5~kl=n*QE*K7tNjXc7?Z59QJo7QF@BWr$ zfhA3K8iVZmXuiu$8UpUcD`|^u+0c-EqG)6?@w-1)rlYASCQNpoG>#&`ZiGjmTh#`C z48xB^CV;idUN$q7E@mRud6X?CAyh}SWP63_MuL?q^!RvbDGD?=^qqp};9ef+EAuU> z3f~J7=!t*2DEH^nMQ?=l3f2^-6+C)Hh=r3XjaG8qy~RWhd$j6?6Trd(lU2g20W!p3 zBB`YY1e+W+EkkU!BE|VgG2Nhu4e6r%{{>hjGZe!(%75uP3Fs-0dC@VW_R_=-UFHX} z1vL}ntyY|y%uc(E9#)m7%Lbagv(31;enlK9HiOvlK%7`;PSBHbMr-~E{2G?55O$b@ zV9%4JiX?72gO_}0j_~=On#a>QSKK>xK`99C0ecqU2%WTpb z191trNV4B^P=ISP9iL6lg3-LJiQ>g^k1@SqULp>Ke_67^u%qvzD!61K3fBZ?NGnW4 zgocP02q7tyGA=Eqb$f$L6T>eKpjIbT}cAn4>tF`BEOhn;bHS`8H0)6cCZS=IUV+(Jn@ z8U@?VDE*$YJ&6s(4>hpjGdARY96nrZ-4@;0FQ@t02!?Y)=k+DpJ(WNJ_lcqajzjJ> z#8W z0+fD0ubC2~P1W;*7il-D3_7zIB^j5HEGnHpK6e=>v>BR1)(=VfW9|tjygb$|o)%47 z^Ec_~#oQ9VVk5YKn?DfjjsqxUbU0JuO!y=!y_^;Ce3dy7h@?-@l(EQw=NP=oalxdT z!~ar7b^~~5CvA=Wcm3hs>7S*4Ap6I4s=#S$JsLUgdS*Xt%Bipu)z(KfQCy~1@=y(K zx>60y(9)|Qox({lBi+ArR~1$TFpzH*wg({iDyEM*_UyMvKh<_9`(EyDYT34XA7m5- zznQYRn@$~9aw1Sku0dUtyMsNQUo}^;~R@UzCfdzTN?eq=&(J$QY*x_&B6g~IfC(wdZ4`@(tsHd`(1(X zmt&VB%bU6ehcekKsY^467c%&~@rD)rVG$*%zK^x3Cw8Yl!7f8^gQ+>$vcvFP z)9{q2;T^UdarXWvVfb(;kh%vQUsy^L|K}zgp9{RWm_Lh%MT~9FAZADKZu2E`A4-NK z#Sk_wVRi;H&DwwfY(0HZP;mtmK}b#TN-I5GKd>B0@|t6o z&n|Qd|=#{-K;4xvSA>G`b)-x>eI50ueRj2Qdr<2%itek-V zz*OjIdeDKiMDFv1v9G6_SEw$$rq21xwB~nz%zJq^8b}U-!YNb3w`H=<2=l7A7ZFAX+z zBOu>xJ(j35ezQ0Gz|X!elXWuhK)>2%Ho{v-ZL{B5KJ5V3vy@#PhD!}7zd*OJ+}bUH zwlji)I{Cg7IUl25VZz{Uk6k5AKE4`Fdbhs>+hp-}Qj zRne8=%LsJamiu;d6py@n`yr|C)w~l_G&u0wX4&~7veIAH>0Cb>Mv ztC3@!b#F`0usctn0!C4%^QoyG;tVypo64^xjplKH?tdrsMZP|OXZxO1mQ7i6`T0A6 zV340Ii|PvU71Y@(rIJ=ZL#C;3hVAexZGwS;FwZHSOdbW^$HK{$iO={a)UV$2Z!uS1 zOqB2G$g*2`bXT010s0<~+$BSP2{ZBeC|a^inO%q7$#|%H9uIEek+1t8Keg_d))wrZ zo}hM_PS|sBMA#%HW{Mpxn@Cwp@A>qFgkROEq!KIYu~u3N@@9nds;re6ue73=cbn_B zYC=X#@n8_VMH=5m_#R0p#iqM@N4-4Xx7Qa#^>~@~5llK!7F{lGS%!PA%6aiJ_x<#F zK-gq*7<~9s##l(UO9i)PX~2j#cSsF${XXun+F_paYPm$ktd-sCA}!nKv+cmpL5(`Y z>T&I%bneeGBB>Yc2EuUw{*(k&g0q-0!X$oH>*CRR(eebNkid0o#G;$LM2%6(y- z8W+Y{0Imft9oS7Yv)hUXO{sI=`)(yj`XpS&q6@_QCk1ttXSwGRE^mmxD~qbIAgHy1 z)6O3a1M}r8X^NX15=>a9O5qTd|u!t`4C%%JGrbg{zhV~M@XM>&MuoF z`lVz5WoFHCdEI+W7D~$*4!vz`a*lUG^@RapFMR6?9rt1$9poi)6j+XXx72J(+GCj7 z&Qhj%0V7j^W0Q&p!4tu#*4N!J&Na$%Jbvf{-gvAlkDuT2%SXuH9rE8&Rl=vt zCr?nXK-8ug_C-eVmk!urZ35xt_s4vzM^qt^AK~A%hms%X3hWZNKxjd@{ODqwl7w56 zxoWQ2ib+&V@d2`W3jz(rB!qEd!75A}#3wy*Ea{kKUjrUTHLaYNM_?RpXjyNE_ZTy0 z953|u6Q63)OD?#mROeoPbM3qMP|A%tc?c|_zw5ijr4R!2TySq9PI{yhOZjhyuY;WILHxj?i@YIXbJ_196L2WGgPuq! zEedc*s+M~$lh4{Vl;I*TIxlw!36-n3!+4r5!cHU>D_uq8D_?8Iw12uw9$rY-&W69F z7VJsS6G+zTJRE8{feDuIsyQ$xZ7BvstgP%KlmYwBcQzO zs>D6HRacA<>#q>R!!62|&ugrLc`OcO^bRNHR@0bB)&gD7Kmrqf(!0w zppJHncr2*|7g`&RJ=|M=jwpa!mO(YWL9B8LP1$y`cCcz#hq9(FrsClWk#PB#a?8I^)UH2hA8gXZr$zL-$ z*hS+D3qYze4EOFhf{dtV>#yHH9fjUNZ(k`6F$AU=(&eEK_%76|q=F>JI-<|YzgMS= zi2)OE+!mtD)Ax`WJpEM<{|A001zCzz;ReJftaP;e5mlu z1!yoA)M{aBtY1-}tGW=}IKMjU^q+`S`x2}I9*kC%GT;)%FHY8Cv*jR-I*majMZ)&C zt00p{DdbZkIyV%=0v_N9)kau?r$>k&u}ssS@jTPki=*Y=TE1@^Q(|TGR^>y~XkNGy z{F;V^6=xBbK^_d5n_rv@c`-IsFWh)!X>YjVZLF|{1}iR}#%VAkbJ||1IEIMPq(zB# zTUWhKT#j_TIi}QC(~~pVk3D(l2s2!9*&<4o_C=Z6w7*m z@m6}VXu=kq9t;Ki6c|9`Q6k8L9!@PujR7a_G7^J{>)guG&bv=&&X+68JjcR*3{8=R zD-SQ1GelhS{i-{>jsd}XV<(vBLMBD)}Z~V zr(%*ze_B}r1MjfOkQjqIwN{F;vpq!K5!-VnU{YG7-9|I>$cMEHO4)wY@!y@yG71*c z`Ni_GT4dFrn>l4PvhUsE%}tip<09IAE`po0YH!zJ&f9P`R}ho%(W9kH1dZM;^V>XT zD1u2ELH0~?0kmFwd-O8u0H7Nb`&D#Dz3r8N7jfT;Q&$8I{;ebc_L<4c`ufuS$T$0~ zoXSLea#=Q~jk$3tpcG;yRurutX&^G$hF|9{)oAXs`qY`8vuNaBjg#L$5aPncpxeB1 zsYY4sj#Mrtnjm`g_nG%C1V>(nI)D&Rcs@Wmh3t=W

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