From f0bd8075715f3147125e453fe71b5fd894f86347 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 13:00:29 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 13:00:29. --- .../20260612/20260612130002-Binary.backup | Bin 0 -> 271357 bytes .../20260612/20260612130002-Config.rsc | 3599 +++++++++++++++++ .../20260612/20260612130002-Diff-Config.rsc | 65 + 3 files changed, 3664 insertions(+) create mode 100644 MikroMaster/20260612/20260612130002-Binary.backup create mode 100644 MikroMaster/20260612/20260612130002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612130002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612130002-Binary.backup b/MikroMaster/20260612/20260612130002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8b57e30c423a9a915f05eaf28c613ce89c711fdb GIT binary patch literal 271357 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�{o7Dx8qS6LPi3x9ib=R#P=*A!j+JZ+)ikNX*xW87Z< z*=0?=#9_2~#khC#WhzL1)?xAc>=y{)T#Q<5{T7`FVBQjYcj zp^BKiAIe2svo@W!t%gw^CV?G3f{i9SOUt2DB5X)w#jT`B!|$u#huud5uwMNNzVGM% z{BTrlYhDBua+CSFFi|TCU(lr11E{~<_=_f@aDB?r3%+hBV{@)xsLqEkl-d@r=!8Pc zAr{d&W3j5xcVi?bOy=4H2$5xIN&l-)#ym}ItHsno!j!pNg2}3=!lgI?9Jm|Yvg{m1 z2PSE`=m=>H&Lo!-FNNJ_|*#Fc$G6&zRG3pJ{c9LuAb8wZENlpW zdjIavK4D};yJOpbQn;kFQmIpxixZ07`L$7(tAKZvWVUFg$o6K%(TB^Di!2;m6mSOu z$eZ{o=%$Q@%bMg{^O!nH5kkR3{gnyg=4SBBlWax*k2fC>?%Sq93@yvj5&Y-9Eij(d2G zK|n_;3Yp5m#5_617U};>yiD^mpA1rP(pc2|W6=!^$o@`yOyc(;*Dbkgo9a7@-aP+3 zD1ed_Y*_^w)@|L>u0F*i8iZt_YrxNIZ94Y*?&TB@rogG26Wta_HLm&Q7t=GcRdv8v z`9+_e^|Gx@xo3_qs1_NOfE`>bV>es}MHbwrZiELy4^2nxK{_qR>y0LK5Cws+?~XNZ zV5l#)e>KXyyJu%eusV?LH8~z)^s!Y7C_1eFHef_GT+ z1W2QMT-QL$A{+7Eh+^!IjEN5p>7F6|^?yd^YUag_IAEgqyC$xGA*S(ssNWbz$-*j& znBvX;HCMywN7dIl+vaD>`QTKj!|)5pZ7w#=b`b3Sbpb!8uoYewzQgDz_8=IE54P#} zOw}}A*3c3KYJ4(waEFj})O{|E?VQEUksg)7!drAQxYu=Tgo^^-ctZBNoKi zVMBT%DZ-j!;Yf8^;Amsae$e^mfgRCj%^rLYL8h!OVz$!H^NryxguJOe`K~5;C~~wP zK+TZ&&F;7HXPeS|h0G_CyY+!mV){kjps-tayD*Y-n!^(OF4 zc(V5Z;B< z@P3#PvOkk30DSX+T~}7s{|B6?;8KTJEK3TBT#VYoD&_-ruB%n(vW_K&0RKM#z%6>% z$Ltq=9o)FgIJusj9&aYv&i%m^L6A72>LIP&HqEQBauz0f-`5ZKXP8q+$iV1BkR4z= zEp0*EXs)HFc;ZRPmqn{yv+ryDdtx|t9v+WL{gpTGAm^oA;NYAv)ERZ66#H?{T4N;q zEjVM9_AqSD{XZ@>^`u!JC3!Zt0lwLX4B#fe(9d|xdy#5Pqmj?a_Uvzh_*v^3F>^T; zQZV1XpVV6^VNpz4;mnLW!z$m3Yp<-3h!tkx5m&PUwqlzU4`ehT(k7#$G&kSsoCm{K z<#RP-xVd`9ko5)lphL5lb6a9hN!RQ(t4ecK%2T0E`pGu*xTScMDM$wmRo&*H1Q`@H zu)fJYS_??^$+4XGuSC2#)^7#h1^lc)eeOZa#tn)mVW8-9hu5^kk-$x%RnAz;uU-Jw zoVI@8J^xV_ml|{}P@pHlM2`945?c`}ywBN*p-N`fNdM_hC{+^#=txwvQK66qqUV34mPXS&q*PIvZYVTS4QfxE*>uoPTaLGh z_{4SX$9{wn5}s&Y=*l@1#&JcgMlRVkCq@seS}G$hr4%2;7ZRN7w~C14%<5O$$J>lN-DHSNtfl2m@6dp1mT<8 z#@oSbfUS3u1-m%(;-U8Q_bpibGutIj)${8#P~&6)@FPNlAf+YN)e=U^>gore?QAIF zIQiC#9R_%LdNc?Gxtym7!H{1w+1`zCuiAVx2G#1oqhfc~56`K^hq}$QJKv3CmPCpn zV`NW7YiN%aaknd{On z7a2##2e%|8IPEhwVEl{oXGJ-m+*aN9k8{cLzQ5Qk%gki(tKEf_dc*^4H12nWOcz$+ zaX@`yb`bdGtX1aq|HEU$q~k`gN6qG>$8?y=eU#OPtn}9mb{lRv|F%2ZJcNi=m0caa zq!{znCq#?>S#J`k()moPX}`YqzP*7FhP%7AZ^~4UNQ)QKIJWO$^N;$50f#x$svM4b zHQ*tK#5(_>`ePubMeAP?%^o--z5qzh*wG1kX*fykiS?!0Y(59_;f!P%{hvv^s~R}^ zm5JqdGzez=TnGzmHk2N&es2Dax@;PhF$JI3Biz|DH1MS!Y`xKDr)Hwx#nslQD<>9w za&*N7z)M5zMJ;7S3!at{UC(lVbMfyjdTjzTuCajiE!otp-(II6Jw;TdlKU?Jdq>eh zrt5LYmV2hX=WUtk)_}N9L@yPuA~?}jeJ`1Y`jKMqfPTHwfhd$U=ijA<6_S`VFRg$* zO+`rJlTuq1>=S<@@%SWp!y0H8w9Kvy+T&m`c$EqBqh*6UyIfk+lNa6IpABllBT!<3 z)W!WWSiC=mu(8Cr{#8RAy3>DA;{W0{?R!5j5udBSosI=Bh(2}1g=-9@X)~%Q>ebxv z%w&H7C3X<;Iu^!cHVaWC(*362@I*Mj>8#y;daHc5w?#i(p5D(<-J}B#M~nCT3{?pI zHtSVLmM+m%)eQOU@4?b0%4ztidHrTaN|tkI4FOeudue4cT0MX>%KN3h=a$&Aw+%$99oWn=5WXiMv8u%x$ zmd4Cvu!Z25`Dtg*QG$CzX~W;)>XN@O?FE~}y8AcjS`})K3|^}Obz4&`k8`eC_@>O$ zW%LTaM%;LqrDkKm#1qFpIYfPjZ~}jxC@0Qbx_tWz@vg^LBp{6Qo-0nhuWdpOv}IfG z;+YS_o;*vN?>(u#XB44S^mHVv*YvnGvJfhu0IOG@tGJvuQgx|jnZ)t|K~w$Uz$0TM zO$ghxyH$~vkpP;Z3cNStwl7Caj;Ut$v9W=Kqir$#F4R#DMqenO%GUlLIyl&u!JYF} z`?;QJ34&Pc&r?zWsfgf-^%93UN>ipjS%7ao(G13YIfJ71xG9$>{A4k+24O)%0$&gAhX=&l z&X~O`_|kGWkYL^mT98Ka@+wAp1D48sw!HFaS~q&(f@+F{;48MhQlcF><%zMe7M(5Nx5uX+j1g~D zaF%Omk-CWu59Zoe3PfMvYCH7~QUmp$q<%CWhiqs-)CsbEG1Y|vX%~Ab7E=^4hy?1l z%6k!INQ3gH7sle8%HVy0YHv^E2$a=)lW|IA^1G}#386A9no=VTRYFq8Nmvji(k_|* z{roa3nR@(9E7O9PmtA)842`>Aa)|{JF@00lYufMWMu)=V6UPJ`YRR_jcuMCoGQNpK zf$K|%Z`v-je^eUWe*ppc$M9B>%B*)(-GIsKfr||+(hT1+D@rUl2mA9S9g(=9-g6GZ zHRAO7DP-t?U&rA*@}{2-Fq#kW9h>yDXqoS4RlkT+?VoNc|#)EqX)m&6;RFujS1S3M8 z3cIs#b%KkJb!h3l3t8`7Y=KcPvn8>w8a&!DKs7vK5)}W6y_8g!{23TD{E5wGl$24M z7rIM>CSjz=1avh2Uf})Q0 z?U2F?9*WQ)b9{HI&O*7~m39dQEC|kTe2;pYnZaNdUn1f-{MOUDav=7P$#6KE4Zoti z(JScdMO%%(irtwg8#aGG-+SWBHr^UoMj)4<2hE)5F{EuHb*|U2WkF?58ptpU0WBTD zL#w;PA*PdwXoVFbU^c9%wvZ3tZR(VmZLUM@ys$*}*aKGZMG%|GUv?D}aEhK&^!h-C z&0lq4qjofqr&2CUQU~OT1bsqK_y`x4A2~~)S3%)?jmQ_5`{KgDd{{w|XrnT($?9N; zT)H|NKFLZ!Ra1}eQb-9BME{YZh#@9C%n*e8`z-V?DLB=xVJ^tAi zH6+Q+6J(v3fZ%lQNnKRn3IfUjLsQiev~YD8<*Vh#i+gX@6XcwSkSg;aupq2wQ%FZ>9}Ej;{P_jJ zH*cnidGoN-nU%A8}ww3uQa!RwTvC`}^J-Q!uKZ}Pad>pM^F%Inp>dW_n z_@FiY`jLJFa7ZX^y+-pO^+I`X{=d_^=raY~t2dfgja-fB&J$Ba_%kjP z;h8{pTMoJFyLBR<1#Bo8o&^7b3%olBBERTw^;qM2l1_$OmKlafFEkTp`2?5K1TnK{UHCF4{Mrv9(O<*=vO0wbfa z0A0D92WtQP3B9uH*0pEJUg@uF5p#3j>JbmfF;eOgJJrI0i2PYF zhxZmCn=`ZhxZMprPGPOTZaOG+_tp>3ZLQ^awPG9=aM>9gyr;qVNK~v~ARdm&%2|Lh zfUZy82@uU{fjN+2qtQpj>Ok)2_ObOah;=624w;}Fv(Gyy$Z*2paLtmM#%=aqe`fpH zhFuloS}m{(kK^p5p|hj4OC_nzR&_oh8wP`PLldet2yyXYncn474orKBu zO!JJGW8Gn7*|*^MMX>l@b$pEe@|<^XEhMgFQ>R%Wde~$lKH>y@Mh)>><1m<^@vnm@ z3~Q?4g~I%HkkxO+10!G{v$kVyvDT`wP5Z3oH3)H_SMm;uB}jXPD3Gm^DmOdT440Am zyDTNVqo@$IMqiz;lFp7cHX_mqeqp9l1t-Ivd$tXvl}eVDWX7)XJ(l}rc3QSsufF4t za1J4z`$uVeHwAxJ!BMqFiKOrhDGZJDRK>#YeCZ$-SgR{E*xsp6g}=Jk(aP`DRXWpt z@tN)%GqRdOKaO7VsBKC@e!RlE;Ej<$;E~(K?^XHE)L_IViuBIa-A`e3Xm z_!rDjV54hv+LF+lMq3f9#rD5tfy>;Hy}y!X8pSXN+#bzNL~HogZ}rZ4k53w>>6NV` z6$I-_nl3Aa%ppom2l(>TF88Lu zre)3J$L&C*?Z1xVUjq457{W}-Wm|LO$Vbywl(8*ajkp1W9Mm^)-=I)Kpaha&?aLVBw6~+?rl);Z=Etu1s%T!+ZS3E#YPGRf%D}vo z)C)(?O4E!Vh%oiNWEXb*5pi!eIRuk{9qXY~3H>V9M5Ao0FnW61F>&Z-5l0~*MgR(#Fc zrc&X--H90z9BrpzJ$d*FyOnuTt;WhzA@&|^zZYg}n+LYd!3}o)H6gX9lMR&){e#4E zOH$EM-~1D`$KPRf5a56?xmGwf>4F!*P|NN|d5jd87mrjU>6O6u03_o<6heN}3*o;R z%=a0A+y>&*7g!Z+h5&7IFFFi>tt07VN*SrrcLuvJ+-d)@8uDpioL=|Pg z#=--1sTN?bl0Q*Gtou4W`-2Z1XdUy@7cz-c9<4GZ*xm64766e5@Xt2D3}bi zHA(0Nbf72`TEo@VPF!=IN=Z4~%Ru!0DVYH{;r(mn!2#{egs*m-M2CwR93cFe{1sw@f#a- zx_EiKkhSlgtrTJt)-dFc$QV-h;i7O-RlpL|AAufKa|Q#i5&)~>VA zT_rXeZX^&T-oK3IYjPfNf9fa-d9rt~P=c{VUW41uc>H)RkCK3AVOdS$TIR4*M#|)dh6XMc^L>B@aAtPFRPbqtCb$ zBii$!t145wOwe`bwQ%{eLL=IPXGbTJ6)sOzEBW{bLI>{kHI8{ko6m6&2MQ^-b-BM8 z(Q=#YrgJ>6g8%?f#omCKS(E0w^%_}XVJAph!*zI z;-#I;FC+|sFByqIn>OX-qVr5pt)dZ8wOPx2KfCROsst3^(RpXKQZPU49Os z-{B!hG1MMExd1scLrFhjF>Q^i&gGDV&jITW5~=gD!u~^?$q5gjC;ViE-6ClpDAVpI zk+m7cT>6G@HLWP7+5mseeDTl-PLRUl+Ew&3&)Ax*$F z1=ZtztGwU3+kUHmKY?L6{~K^&VMdqym8mS&vXN^&VTLFu=~(BGI}0eKrh^jh;pV-j zibR!~%xHbBrkr3Z%14}fGnS^Tifi$dEMwGoBD>`f8&UurmP%l$mQPpxw@jAgK8YAD z^LDZ)Z7kkF-v&lL>+a2qhJ$GYFj)Y{&|FRAqlpCPmzXEt=d@DFTu<@!joFn?_H;_f zqu>I+qLi-^Cm(HyHdyA0H4;~BI2dKbHFurrR*pRsbXoW^m89bb3x2ROq$GxGF*@ z5-jX?_CwxtuD-7qiy>QaD^#dM;-mOXQ`uW2LBrpyP1G5&T-aVa`iy%t%m)7C6Z zfdAml=@;n+Gn^&UA4Z#J#5bpl4%0)`$p}Y5HjNbQIk8WADT!z_XtdC z>$h0A{$)xqmwK&I`4w05b+DcX)vwKAoe2{>ElwHxFOzff0hNXStVcT}h6~LKI37BG zRsTmZX3S@NxFnMUe&Ij1r~?BoU^dS`D+P1}b(NOnO>2voe`S>16mNOc^GQUa;qNQx zs_JAVA`ui&y-@IJyvWVSoEl--22$8$!z6Bs>;7VgUrqULzKaEd*vAvI5V8z`>kUp) z!eJXK(<51=&W2zl5t|AT)OAF!$Z=AUsT!xqZ5cwm9Z`b52Tr6^88|zh1^$ zrFMPFpl-LB_&-Vbm;6@!xgYp$({FmC@9w>NI6g%2W}Le{n91>tY~><~yqFV5BIoJb z#KlgiX6qn-H2)pnup$deG zI!ux=2{;!$B4L;Ql^uXQ?_DXOZPdU#x4SKv)g~(QOdqz(I%0IEE#rW7a*5o?slEtS z_E2%FMSCm|41o50(^ou;FmlxOL7`rmH#dG~QKlu1^`1 za%%w{{Nxqi3VqhC5(o7;3nbbRG`Rq?x+ek_k4B~~q3Z3MuwU;}p%nfhJAA{=CzB^} zlL$dIa!ddu*Y}URFJ2c3`6}}cXs8b)Grjc-uOdg1{a@$j|D**Q&b9h4m3sbi76v!S zW>9x$oIA>b%IR@t{%4@7EN#7J?^WD+EauJDzq4n`DzRD1>(&$lSkjcsf4Y%Js#?n- zOmN^kBOY@tuv3Y@4+@x7fuRzmmvKybJca0%l1SeLCjJ7m$z}f2$x-E28EkRuSBEk} zNHli&Pq%K-b2^(932mSghv+HW^Br|k-#$+i5e7dywc~PG$aQy@@$xgPKSEA*E4f|T z5NK+>YSS%$;BNJzXQYk|$lno9EgAGRD>*Q;wBmUct!P z!$MD>EAlbF7_#VQH7o#}&hbp;E0hGCV@B{nM|Z<^ZP(*MV)?#1B%GKh%W{8f6z@=| zyl}DPAia2XnGQ|TLKe`s$Eo}Vq&&CQb)7TUR7`Em8>Ta{C50~~O){V1KX!5vtEYA9 zg(w)<_~DWZB=$gI=guzlZ6WugWQzhPo=fL}R0M1mTTSY+RW~Z4Ef{7CS9x3>aNY+Hxx8B6&}co-!hhR33V39v)s? zAXni^f{~u99|_i=Rg^a|W@+qUojdjDaA|7Dzt9dXDpi{i0>xpt&Fy}xmM?;{7;eYe zu1xrl7*}A1c|*Ea*p`(d0;PVA$}87eWpTMe1=VwS?Pr6Pq5vtd1{gLT|lnm z@cetet#{5v;kzhoeSLT0tX)|{Is_lzXz~eBsK!NC>aNrLs`aR$4Cbub=u@}0@y$YQ z8qt@0LTG@3pUrfaK3}x2_xems0sr;C`lWa*)`&aN&eP*rj-HrW<6s^mMZ7YzP&355 zxQI!26PZs;1kj6dPNM<8g@mW@shOd zddlnqT=p5(YZF&na|PydpGq01WD`^<_yAD56Uu`%C2 zN$i_i{10iNyi)i%Rc$f9_Ez~y#c~$<{wQ;k z;TAUb5Hfvyj-xIIOM^gZ5bh&7WU}Qqfi)cuMV^^Vs-iWLty<%4mWdj~r|pKZA4akv z%Yo-STB;fyry{!ERf-k2P|yjIkx`L@%oLQW6``6|!feyqgCfharCF>IpYinZXlLdb z!CMmL&vDJdL`cUWXAeibI#}Zr7m7IWHlTmz64MOqK&zSn81f@tET+MF{#Vxv1)~Wh zwFO95hP0GcdOVk}BcR{^=O5^1LzoFr8-H-p8?beeE>^*kif)&9yzQuQ@^z z7Dna$GkOq8H`UOYE%=-T$nqhwd|mNT^e(OlKJqj}I%^QkFv2y_ilj%$ox9E$(xJFG zo$0jSgv`GSOkKX|WoUSF)l3rqsuCGX+2?DAL*$m3pdKKHT6-gS=&a>NdoFsyqXIcP z%2smrgSE8z=m|@h0@isH9llb?@73{B!lCV(4GGZh@PmCU8sd59!dFX)=4{1oVUF8C zx{)}!ndt8*yJ{=w=ikMXm33!1S9hQ)NPA+uLNC>YK62o2YJ;RNunr>tb&iyo?c61J zng;oK+wR~?!v#el8mA+H<}5k)EisjR>F0?yMbuj0xxGBp76^|ZRLh0L$hdGa=?y}4 zag7FM@{zo=cLpTaGN?l0HLXAu+pQgm!YnW5__ovkfE|9%n`4S?OEYgL7giCy^D%uB zkR4id{xn`%4h$cWF>7X=f~=(1d$Dc{YS%t>7-mA++p<aG?Og5gzLd zrUg0ErvzI_FCi&Q<0?w)$_c7P(2e*_(VBGIIqy5Vt9F@MY1k4b9%4|kFnWjexxCzY zXeypQ7D7kG29g?w_2%Ch+QvXK+18kP@(LnaP3MC)(Ep{3%27dC7@x^HQQH?fL{(f) z@|V5|=cp9?v(1z1)^hHE)p1r_u>I(4(+oTtZ4`K%>mbSFr`qqILgUY}Z;McvbikSY z(FznM@>8HesQl%UyM>YSikzozgYg?wK>_+F=#0s)90q$c8awwsFA@=KpY00*s_&NA zaR&^(RBV`+$@F7JQ<3NptCUYR(MXv1Dv_XM13uLa2&*IqX6}pyh}&i_aM*s99j_xH z6vvTprf4GLygXls!JGINy6qz`$R>!P59Z-6h){*QwFRR6t-CKXt2R!vIHu$`LM7e0 z1)kn$%H%v@n~JsrI7FGvInZ;|8>zt?NWsT%>P>S?rF^@rYFZhfwCPA@FGkGW8$Kw+ z=3@S9fU2;ynZ9e+KmD%wRl})+NsJ45)T%Jxf(&DBr_en zu2A(!D-A>ELMZ0`Q9#>z7ju1JM~oymBSCu;sN%im^SXLW&q4Phi@3Dm%$5N6TeOsQ z5S6EFm@$8$Ji*)lV7k+pxQzgky;3GIa1lvl$#z{Oo2c(u&*Xo1W*G3H|@AfLVdZ8@6r<{AYqx z(LA5pAFq%*9o+l3Vc`@?VbgdjTHS1*o)v+sJQFxjdCOih(%VUQ}9XnYk^r z?!X`*>P>xGwf0_tW8RD>gC6p?>!)+|6;Z z&c+P9$ZzUy_V8~6S@X@jQga0bSWmgdd<02BhUWuD6^clG{zgzu-tPZ5ROGPUWN zcL=w3`G>{xOycDlx@rW}&(d)=x%e!;(ZIOtN%xihc2$lhP4c;C^>0hRGX!PcalwLz zpoq0b+%2EH4XeI2d5IehnEt!3v{7@Akp@a`{?t@y;sc(teOjjMyyF@;RbOgOGEFX( zT}5=`d;%#&DfW<@dL|VA9+!;CcggjDA_oR&;K&e`+XhJ|ha~pyat`E1^0SraDt&xp zwd}l1N?$TPYVu9+`Z#4PEJp)5Te`<``$CJ@G9dV}MlEg$L=EIK3|PZH{>A}FzE?st zExY;}$2$olmtt%3>xfpv*(T_ys1+ z9RvVk&aXJL(%77S6*bqp=(33M-qmog{S1PE8A$Ua%mcf^y60U^nlUXn}8~bXm2g$4Y_Zd(bVmnQ(`QV#$7JNVoF>cDGDPC>X~jL{v-WqpqTh_ zAYd;vwtM(wZ++K2Pbd_H;1-Hxp2@u+B|@8coO(!O-9mXpqfq4mX>^x6olf*sg<@s$ zh1Mu9c9DatEfN)-7`e_{?(N7|1Hfq~i*!@;5KzdDG9_@Gu0eD1O{5Rx&ZsIGeNp z%iME@t}SWXP2$~#?Lb8q*b=impuAYvrTVAU1Pz-2IRj_in}V9-A4>{QA3;Vrc#_xJ zJJlLXXEV7S_^?`Q_$68zzye>}AncOCPDyVRnz1ycbVuP?S}V}`-0P#k=LHV`xQ+|e zWV?#FUzs6fm2b&}+-s{UX^kH!hQ!#mNPU6#v?pp?Zn{HHD_E64{+hHQOl=2RYQ3!N zSX$7a;pqXkh=D_nstHn*i>Ia?k-Dl5lH>j*qX|BXR4RNWF5b?u8o+or;dX*9Bvgzm z#6b)5MfU)1W+{BL9}urYJvGBwzR17tr>ToVD#y!y({W?A6&kvf z?zRF>h|AT7PmE>2c+0im?5e!ce^u>Uy{01QtvY->64nzWHUQCg?SFHT`Ny%qL> z>!1-w6b~sfMO{2QlB~G8r3Wqdk@Q7b7gIC6AT3=@krD8Gvw`oNbz_@{)o*4Ex&bsQ zS1u_C3-|K17OMCZkGgv!#P<zY z@PeYOh7KsMgp|ECDKH(HvSVZG#cg&iPlp1Ed#1l@}#0$_pwc!sT&%^%mCP2 z4{;I}D|^bT&W4(3n+I@Z$FfFwZW*hVXLG!*5Kn6zt6BzrmCz$$;Td=Ok|%B7YtN(jw{)fD0o%BGnak@7u>|f@RZU%joMJ#*AeMq zjA67tl5~ev+{4GgU0|dsJI@7~uTA4?mqlHnwkFq7%&0Kb*5drGO7zmpH^4@BSi9TN6v zv#FJ$Qieu6#W>2@AXaW+$1>?WhZM*u;HA&82{AC-1<+rqfrCED-ZAgx5L;Hp4wqiZ zpiFayEwI8+J-I(X9@1Lra0eGVt_^4bnDW^uw`IRKlvfZ#Fkdq?fR_Ogr5W~_Zu^x$ zy3<2UnSwqC_8RI2Yb;hc;I$0LQCZ?-;kx^MQu4tYj*=SDOsix}a)yL3c0V7_={H{v z=u1eWLv;3RV;^ZyB@)8CLW|k2rF^WjgDdXE-5^=izF-c54mzOb-I#@LqymO{;3$OdCmCljwX4W>0=Nl=Wg zA0vraEdEF@Zf79W_l07(U+z@FIj)BScue9Js7^)mi0N}$SZhxPt>9|Jvqn7Af*yoU z_nGo$SoqnG+SwohMjB%Rk^R*bjk!u?7s%!~vXEIQt^fj$11<1jg2{#az=Z=@aX2rl z&nD9uxMvt}^5FsV&mvTjBc|~eW~u^>^eju4Y+6iMS__-C_gjO4jvUNH_A=qLYa2fK z=tRfLO@BZWX6J(W$za1gb#weRqzkaq)wxEj3liXh@aAKI4<{@Nq)I;+7#LaoHjj^1 zQ?gw^5tuC@yz?3m4uZ*BZ_1!;B$so+q7WK)F2t8%%?JlMxJeD zgRVi~i1kk4Q8o|tb0t7w!TT~wnaD4}Tp~3DD73lX%yaf(#QwTfqAL=b&LLjHR1il$ zFP79D^5D&G4z_(ys*61EH-M`jGn+*Q(HT!e_-AaX;?(;6j5Q(_rWUooH@;H)jRCr- z@VUy3x~Gmj=6YVprCg-T%_)V{_j;Uw*ylGb1 z*uup#cxCA_$Om`ZVfrXsN;F{v0h#Ps$dZnlB8KlXK(s+tQ~dZ#(~x^HMc5@BLSm4> zUf)1LUFKq5S;4wyO+14Gued8oj(z1P2087dhuE;{DG>x=Bb zK;F^((CDxvC$3{(qP2;M9A+6c8sgruu1}H>J*{5Mv7FSAUR~~e&#FQ9^M7ycoX6m$ zl;5j2xafYg9Ey9Lg@0q2s{p86FVOPX-cRa{Y%i!44&*zb#TZZaoz)1{kSW$JFJNNE z5PcXc@X15X^?fsyZ3XnTHqoqh+Z9>mrlAO6hBwgU{!-cxTvlbA(UXRT}Q*=g22ZD^q_-RX%?U|A{*#P1>@nqG}* zFmC6M;=y z1wsbSXTdN}ZZ)3a-8psL2|QzmA5AlS#laH9;f(2uPg{|UthRnxIS_8Il`$zAY){8P zBeniByJtb*ecp^7rPCaxIH`1@Ou>(5gdZI*^PofKZ6ey4J77#>@A5UwqQn1#5=ZFd zefNjlMjeyL%vI3CT73!NrAjU7-;xG{a5)$8#=`vl1Yk3NO=XE1dEa)+Lx=0 zK~Kp=AZViDQ>1c4o?s3h;mv~zde=%HpUaFlI1X2~?qj>Q4IPZ>hLN=3<`j!hTW>c4 z#UOl;HsAniOy#dSfJralaZa~@mR)MGe)edgy?q(81Tm;u;)wR_XYxgD zkrX_xj3vm}d8wR@G6+N9+{XIrb`YU$rmS(3{wLV#mzoc_w7H*Hy!;#ifUd2>f$nL$8Ug}vl1k}qndor5NUNC%fj@FWc3 z4|(eM@VA>q%T}5P*d|?+%)iI}e2>#hPL666ACd_bnu^^fZK^n}=SvoANec7R+9tZUs3T8g7ndqhH z5OkGVkciRZErdI=eLga9meHOn$0tmcp0sf>Ss(bLckGtV>AQdikmw5h9YEv)43jue z1Zo|nWV@{@JXzoq?>~E&mCqQjgqz=zcc{Ce%vdKmgRI;ui;>=pW4T+llYy)#v&}y5 zlhRTA{x76|py)X#-w8dmeKzY}DW47IiGpgBg?-4$mU5Tq5kRjVQaVQr|GD%w`u~aq zQmfz$zty39xsAiQYrb~5p3bPVA_9leiUuB*P8d9T?&=GFpndmnFu?$5GG=4Ll?~el!N^PZsN6l&K_DF5~F!Z1T6k@K1fL3 z;tx(mE*wU<16T}TqwLGHrhv8pK6_Q>n{$28_Ryl{uT}0ZECJ6$ioL^yI=$|a-ZWoz zzBZ8LvWX^+m9J}Nx-l=#E5yFbIkrm`c1?zgGOHC1bYeA~KO#w<2cCv(Bna17wEIyc zPX6F6JE+mW_co|}s!n&zT4iJ6OqW`OTvTVY}8tG}$W`VAR75L2jlCO&SfH>m_ zhP_rW<__BEFS`j(&4HW@?L}<+%c=>|UW0t<*ny901*6iA|Ln@0T-TJN$uA{Yuo@(C zb)zECdJUUWd``0mYxunltXxPQi)(rgps;%aB!2pAd5Cm-IV{A#hAO5aPAv^iD_-6m zMoMJt^a0dFUCMp7V$+|@LQ^&7;7AzH@rh(>Q$bF~P8dzRZlqGWM6uX7c!06QouaY5q35O~1mH8c z_%;6#6r8Bh2c$zg?5MPS{;!n>(`Kl|ue6aqmT(i?(~%G$oR^{Q8eGV~g<#b7GFK`F z6@p~v!VIc*k317k*TKLM!tB=#+eKzN?0?DHyKvme#v&W1V_>TjDw|RYUBcl%shbfjWGgzN}70vpG zyq+@D~{L!6snN`Q5o zujokCCmS%LIYeLjE~dhq+6frlsrqCN{;Cq996OW|6GBrXHIWxKpp}>ur|cbB&O~cL z+CX#=9@qZfea0Op8lV&IO2a0<)mtP}-_CHHDF7=4qi&eYN-Cr00|g2~fY#@)XfkBADXR>K3Iv{2L;ezG-diMND6C*qDvuk#Gw zzl$-hvN%YeE%v#>LaslU>4gq3c&}6Kj>5Y6CCM=Ju0z*v>MojUx`RGEwTy=lvj8(a zlKR%K(yY=_5$ehd#{RDi6sNo^taUrCbcn0fa(}ldSj+HWYl2Xr6Ru?gGiK{rDU(6Z z-ix+F3uEzSF?W-Jcu^9>QY*44WPT@PN0b&>kL$MR)nlEyyf5Oz6i*sN8kMjL@LdM2 zN2d78#|S>GGkIpuLHBh4E4ZLgmri+Ka93#$6eX*k*)^KlFi{VfgUzWS$3>JN<8t`? zEY1(8=yPZEUx1bcc1vytwQiW^r!G%z*wM@?=(QetxC&#Pi;Uc7 zRkVPu zF8db}LVIsxMD4S^_^w%4%6p&le}jV2{l5P^`+*fq6tn4*WEcuZ_PqAksEnfLxl6*n z2c|70hYKiG&4imD`WeVh0^!V)gv)wV>zO}Hn=EpEa>Gs5&dP~9criiZIJ zFb8myC}OH2bq;Q9_3;%)$J_WfTs30pRKlMUp~`2oVsLbE2_vgXHba;5^-cjK@Kqnm zGe@5>!!HCIgm5zD7`HZEumTkSczOMn$@8FwGBkNKlrmnNO>Cf)?*^wNn^8P~g6SAH zim1cUWi`TGYzPE4!_ybgXS_fi3m0OnDw|a>Tq6{zsUCHis=(27c$cgK!X1#H0tUcj zJCYUxUU>M|dUP)E>k@=G#IDjpd=6XUwy9CY$Vgl${f})^v#?thNF_Mth<)b*GAr@m zhIQhIK9sHrf1hqtH&9G{XmhgW;Z19c0iVyvWYm<$>m)T(UF4%%!=vtufII-fjgzb_ z0RKM#z+o!vs_!xJb*qQM`-Dub6`gd38_{=H{E=`by*?omWeRK*>guS-W`jKJ2U2l& zU|^uB>PbMONWg?J9Z-l$PDP0|bh}R)@Y8If5btEsRj~d9(Y?zey)$m8~bkEd_KwwRm8am3PO5rR0Cqx@43N3^bnhq1Q_DwJbWbrOm~g?{cIy;so0O+ zRknxCx0Y9SK2I18PELzsw+sS_7ygg!q9p6TNja+L@CL~T%C7Tf)3t1r=UF<_tbQRb zq?`u#WUNU_72;1e)s8wWY=>JN(EAHbLd(K*Z;Bf<#qK6fF$O`Bbbel^6-^Tro)F#b zc4oGI>4e)l3j5@tJ&N`(L5qz=>A6un9rkg51kcgm;`5c8Z$|mJTf|M~HOUnmQ|%Ty zWMFvs^rd}jsVl4C%)31Yw;%O1%;JTgCz(lC{-(PGSP>d+^o&Lz3xzI{Yhv`j%YrYU zf(VTAdA+uOL_SB2FO)17tY&EE3}g)I-yviK$JPTi!DOr%@6~5%p@0fzHWm!`eRzmy z=WSp(9cDaMW5dQ_jh{}!2kF?T&Y=Qk9;rU>8I?JW{_(OlR$Te+GGJ~t#RtOOm0>SH zzgX*Mj6sDD2VyADuLh)ALkEk{izlk$iD+fdoOjMRtaC0t8=FTzbc_KQkoyms_9u=9 ztuE(;JBpAZ@em8TV%?lm4Dh)M8Wg4<*+1H2;Ed+}m!x!`%KyZwsiL8(QX6k{p?#x- z;Xb<$d>>-Goe|<5-Nv5n+A?GDDbOlJOGpNoL{Wi&ZL6>?e>$`q!kxNVr0mX4p^XUd zszH;W%AHbk0lG16-$}pZd#+;Ym)TrAs)8ICW%oY8Rhwv^(HZ-06l(1@9&BVPQ3##NP*0qB%Mkl;7)aPcWy#cR4a%JYnwFHz!=L>9d&)J@M5YgrPDNTZaqFOYR74RT}<585l%=9A#2b$vI+h zbrQ`s4wt_ZfDpBPLqu-IH7qVta#&{(R#5)|LkFa+RB$bwc^VXE(PJ1xGg7}yF2(IF zaIxSB)h=mebjsnS87(($CWvCU=9zZOgSv-CNh&Z9)Wz&wa7xJ8S1Wj(Lsx4ex{uyT zoB_LNsxZ>8r^#S>KY86I)!bc%*E{qp$Mx|Fnb7hFuDz-nX417ju0b zl?1>(Bt0Ns0KSVE56}GVR@-w%y`s*}Rzb?V_M9~{nTb|oF2}AO!4=OFoAyxKxb1(GFCcG}m?&L|+cW@P~?6%HK{egK}-cp^1NN=4Wy(6 zf%(pcPa4!$h|cHxtQ5Sr=(0cgj0z%r|HmR?g~vCcs>G2`R4Scit-BQ%SODs*q>j%? zcgT}2vO|6A5yhZiR=-f9E^3#*wE0*Vi$jMR%5A^N2`qo#UK7RTeM6eM{NrecmSfs= zira2$h6X26^>H@-U6hb#U);EowS9eFEnuBFl_<|o6hY*`0)#jTWNZ4rw56z zdKrO>L&PQ+Znj0IpNW>fqOv1`nm;i;+F__pI$rf4b$9V_#{^Y;@ffvRm#+_UJ^OE0 z+)#*uL0x}GY8%GPg;soum+yyQwAGJ&X1%;o=4=*(Q+3_4bT1?xL*VCH>W{s4vsP>n z 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\"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/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.06.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \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" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-address=10.8.0.2/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s client-listen-port=33821 interface=WG \ + name=GitHub persistent-keepalive=10s public-key=\ + "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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 match-subdomain=yes name=mikrots.vados.ru 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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp 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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +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 WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +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=output disabled=yes protocol=tcp src-port=443 +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 in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +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=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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=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=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 package update +set check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260612/20260612130002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612130002-Diff-Config.rsc new file mode 100644 index 0000000..22ebefa --- /dev/null +++ b/MikroMaster/history/20260612/20260612130002-Diff-Config.rsc @@ -0,0 +1,65 @@ +25c25 +< add listen-port=29185 mtu=1420 name=WG +--- +> add listen-port=29185 mtu=1280 name=WG +27a28 +> add exclude=LAN include=dynamic name=Internet +29c30 +< add exclude=LAN include=WAN name=Internet +--- +> add exclude=LAN include=WAN name=UNET +2585c2586 +< set detect-interface-list=WAN internet-interface-list=Internet \ +--- +> set detect-interface-list=dynamic internet-interface-list=Internet \ +2590c2591 +< add interface="ether1 - Unet" list=WAN +--- +> add interface=WG list=WAN +2598,2599c2599,2601 +< 146.120.64.211 client-keepalive=10s client-listen-port=33821 interface=WG \ +< name=GitHub persistent-keepalive=10s public-key=\ +--- +> 146.120.64.211 client-keepalive=10s client-listen-port=10264 \ +> endpoint-address=57.151.123.243 endpoint-port=10264 interface=WG name=\ +> GitHub persistent-keepalive=10s public-key=\ +2606c2608 +< add address=10.8.0.2 interface=WG network=10.8.0.0 +--- +> add address=10.8.0.1/24 interface=WG network=10.8.0.0 +2611,2614c2613,2616 +< add add-default-route=special-classless default-route-distance=2 \ +< default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ +< interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ +< no use-peer-ntp=no +--- +> add add-default-route=special-classless default-route-distance=10 \ +> default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ +> "ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=no \ +> use-peer-ntp=no +3276,3277c3278,3279 +< add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ +< "ether1 - Unet" protocol=tcp +--- +> add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ +> protocol=tcp +3325c3327 +< "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ +3329c3331 +< "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ +3342,3343c3344,3345 +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +< src-address-list=NoWG +--- +> disabled=yes new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 src-address-list=NoWG +3362,3363d3363 +< add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +< out-interface=WG src-address-list=!NoWG +3365a3366,3367 +> add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +> out-interface=WG routing-mark=To-VPN src-address-list=!NoWG -- 2.52.0