From 04198b65dd78b199d995bc1567250c4d4a4d187a Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 7 Jun 2026 14:20:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 07 14:20:18. --- .../20260607/20260607142001-Binary.backup | Bin 0 -> 253576 bytes .../20260607/20260607142001-Config.rsc | 3391 +++++++++++++++++ .../20260607/20260607142001-Diff-Config.rsc | 8 + 3 files changed, 3399 insertions(+) create mode 100644 MikroMaster/20260607/20260607142001-Binary.backup create mode 100644 MikroMaster/20260607/20260607142001-Config.rsc create mode 100644 MikroMaster/history/20260607/20260607142001-Diff-Config.rsc diff --git a/MikroMaster/20260607/20260607142001-Binary.backup b/MikroMaster/20260607/20260607142001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3de7b4d0d256bc9f6471973a5372db86b42e5f67 GIT binary patch literal 253576 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%0DTpRVJD$0L+eNu=BUp7$1x{EBzw#V~~9%oU8$ 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≫(U^_3ANIDkqF`|2a$Iv&s_TVg7P!2MH=g*H zN}ZDm%0ZA1Bgc*m*AOUSlVUp7RJFFs-nWM+oE9!VjRt)>&2wj~q&|u!tRB6gpa@P7 z*(-ZTxgzup6nVxt-_C1auQlGX_t3R$|9xn^eh!Odj01fYtn0tsHyl*(%7{6*V2d;m0s9hhzsBqj#`|uM8zeOjo{pvwn071e z`WNy*QY(u3RmIbB<6%P;F;X6|j5(Cd`m_o0Zi4y=*_@QRZG{mu9E2KP-Q245bcn@d zOmwk(6o!EXoYZ1!C`;$`FSViFSpv!iD8m0~HOQuR@a)9wnce8r5rP8rL3#gfwvqM1 z^1`=ovgiciUaVM)M0a<2Dp0C3&uOZ)fS?IHGLLM9yG~;qKL4;BV|d0kh~@5NPINSI zkAOjAX^eKkL%I7g@S`}ZI(@R4fET4_wB4O}D0Yr}zhaciPW#NcuT5oMHb7}RslRsP zK?PQ9Vi0T8nox81^t9KIc?+JpryOY?a5n+<6=i%E<=q0zw%}u8_OERvj;oL`w9uMF z;LMv*x3N(-u0VABS8cDT1KwocDxacWwW!lykgL#h^=ppDm11{tT@MPWjRz}^vqc^*-A8CoFbC_m{UiyNiK8B zn?dyhw8Yr}&GGkGXRroKOFz0>7Q~*?T_fZsh+#=vOo8Ap&? z^HitF+n`6$6Vm_WwO$fju0l4-(^?!hzGBVb$u-DfQXosF+0Th(n=4AR0SE8AX1BH_ z$}FOv@hiw1Fb6}~K1GUMof=<>1?)S&%b>N{-Z#{(&x`3J)(zfgo-OK(&rklB* z=I)ET*$N}KEI3G@EeD9|kk;Y$XKhaI0@Ef@AEGyT_eSI@Lfh^{@sn86>Z3pg!Xg%u zHdy;cJPMb6t=7&)HwEo7!Z{Ov#X8NeW0w*6NsFWyE$Ncb`73np>$}Qiwy>%HURB0= z%D0yMaPYL8`iL;ghbdTg<=kUL&6~J-qT31rn-XKY3AJ6!K?93#J%+IJ5godXaU*Ro zkOiUU@*XevGC>Gi8=_+x8h4ls`;2jVTzK@DO>&jezBGzF1DuB-AyplaO*p9RWsT^=*xwMN5lwNh2&s_@$vHaT zSwehRys9)4&Qa6y29Hl4TYcVK6Te(3uhr%3;VZhU+^jSEg5 zLUT3qn>HJoEJC;)=ctDTz@TVUg{HJ|Nt?;K#4We;cG*p+Rk%_{8a0Xo$r``|HeK@@ zB_cm&Q4mM1Rk9PBft8@Pnyc8^DTJg$8ATvfzw@H65*z~lF>>Pi1Xw}daPM!r$|@si9k>0dxl_}e;D!xi}mDOpRj zApBUudMmyVI2_TXk7|qsn2^P-@?}=YIP+3qWu5@W;)~HVv0|?{x2&aSO*(5uwCk?@ z_~9_M4ZBBfBJSZBP#wbHj;;It9qHdPI)ycZun`0V&I46No4si!))Yf=F^?#pl9puL zyn7R%;3c^hOPmhC@oG@P#<2*9tnvKdv4I?DdA{w-P!h!p&qhmR=haG=HhLI>;(7*a;>9`a>=vm&2AAS$*g|2sZD@m==3@E z*~}_8u1~*#jUQ}dky%`$$b+{dH#jMtNqA^u-;vdYfS~bbaiDXnFz8W!6m{n1IXwio z(8E4%+%JEwvyer0WOE%Gy&sKY8Mbf*tMd)$9?@)eSlX;?yQ=8GYT&{llumsK!*ZR7 zfIiuZ=f}X2()aFMrcH84!!-fVFrIL;ajz(jT+g>)blF-SaVh9Fl}*~+(F^A(YA?dO zww+j5P}c2rem|%|H)Vf}a9n-Tt`CIMJQ-%s&V<$b$Gf`WXL8Dni5IAcS{SQuTf*!V z3JL+EAFWev%qaC9kU2(HS{50~heLzTmL!KbNgF{LI}r#~h-d9cgmJ=r@1tWmNQ?K4si{$AliL4r90Pm-!4Q$v*^ma&U`FK?R65(Ya#QOA1D1y&{+quX@#A zpU}bK_?H+l{igj{4A=JxlRokC=AtH>lU4h5^U*5?v;l}@3W13aP_EXZsy7u7bwBkd z8!)DgsM*}LQ_wzhKe=K_249#s5gnieZnlfB`q%?jwZwU#Xb-HUKJIa|s-XY^K>fd< z0iZiGT)a_DjSAAXdZh#X{HEs#iHc8~CI`CG;pkQC2QoiyEY}0YR>^-}mAXox2iC5PWSwHY~-Xvz;DpXCl$OlzPMl~olguJtf`&os5b z;S*w!>(qA=qLf4K`uF1reh+8TXc1rUPKh}i9xY~XF>YH5-tV}&=;m4?V`cD%+$g1U zijRej-z!eVn=W%GeGKagJSMxGm=r%Tijr@}P7_joZ675J4RNLUnVXsck=ZpgKXb=S ziiD`DOz@Vv7Xi_0p+9--qycgnzmmGqCh%Jtzpt&0*VftuW#>1^h_+GMTwbtR)QI<7 zGn1KGHk_qFh&!GwusuMMuTF+oPraJzlo^*X9I;Mm8bvtl7O|2>!rmYgMjqid^!??5 zABNCOqY-VdE&FNe*N?lVeu(aB)% zCLvtLVVc#f0zZP!q|>0(d_)N~B#h>V_Fxhr?5>RKU`o%m&?VC<-atgqu1nPS(jVF# z=oK1!g5}&EgH+zlD<-+6wn*bwqqvM>w+YqPR~WJem>J|epkaXl6B~J3Qm(r1`y5}!MR18_|v%x9%ya?R3#pW|Iq5_2&a}xy#dpMM9{~cYLWuRwN zN{kG|`^PrVS4z-|@;1%D+VyS|(Qz%G-1*t?dNVl+mX&;)bv8V$=3f=!y_85VLsSr zDo?NQStN7{mW@G4Es2u>1OnfftQWoyrI)G^T0JhLg2qpoNw}H|?0`Q63kdU0TaKMY z8K!`E%qPgTI*Fe5a1Y{Gmu}CO|DtI6E(h~;h)Lq65Z027^L)gsmP&ldSWAVpLk~V} z(@&B*IYOK_qSvYWpa$3LfHzBBQgdX!+qXG&UT9<*4)?FLLhZ@dQ*%~{0IJ8)Waezy z_vUTIihO}OUit_p04pYqTe^Gjw=z9>Fr~oJ1OdYHLe>n`5_Jo}TTa1OXrJtczhqzx z&DfvMwi{0p3WAZ}XD1y^S`%(@fUayJ<3kc7YtF{fw>O!Usu?A3w2XhX$(JEi0i(K5 zq5aj2$>}$Fv*J?hRMB$x5F**47wk>X3e6COXa^c4*NkVO|4#G^!Q4__t!r3o_L4j8 zVFUBOs_DfR40`xivY;`z*bQ7%bVf}nXEs1S(kovLFw4FRWil+XCINu9k z8YK*+*V_Ah4cpQc(UlQoER9;&%JtkR3#H4&u+D?0SEUUN<1CCSOdh#u(!Zwbl|_O{ zg{{EN;GMDlV27j|C35{d8L_U@ciG|yl4#9&W6LNxc}GFC!+An9MCMBs)p>?h4?^kA zpsjxJaLq$DsMYrOuH?i-KwSK`Z%wkxKL0g9x8{nXU#&0nOe*faS)|Jolpwx08C=iw zs+UyL44}Kj)OuZDmpz{@9)cmEFTe|38PT^mJ|4m>9ge(aTpwzw5gg_Ggg8e=gT#GJL-4`^e}K-?M{{81t^Up3?WuAv7WvK2_8lVOpsEFvlzQ&4rWloj0twZdznooy zwt*K?UOl&xNl5uZm_myd@Y;3ll{>dZV0}ljBhzzA_-}Su_}TQztnIA`R%A1lxupuJ$XA}XfGpZQjt$nMX18OgGu+saR1&jupf zHw&XFmALCr5#Fn-#7{FRg|+3_!U&fN5OU5FlG0pi%6XKfEyEHBFWI>VL>gW0?gsyx zAos_887B`Rbak-JCvd_W?N4H*&b|oBr;~kMMa)9JAY?GHFh`QKx(uH=ks>)t!JsyE z-%%<-bfWi5ZGD`R3kI_Q0hYnT8N0R+d_W4ej7*v6VHq*Q0_ftj=Q9^^?+sb2olww9 zQZwdh#v7J+=xwON1f*L+X1u{XT!i{1;^vj{uq(6LBsW2Yt1k@^b_x>z-={olx0Q>i zUc+ncbFd6J8P1RfU*tP)YWTnw>d>5_bhG-X0VD`%b($O*kVJrqo-XBn(4>M@cwa2{ zm;(U){s`Nwk%xHz*xwn6IV!W2TcSRy6nZ4%es;c~$=m95dg8Uy89-O`2msn)5IEEy zVu>BzOR)6NEKpot&b!?k2nLeDP>R+WR0E8~kudH^e?`D|*e5E91Ic~XSecnC+8Ebm z1;#9*FE~vU->Q9w1gK80skwiW-a^Vt$ddV}2~SQ)b(9?`I&oWxa{F#1K>gXcnlAow zj`rLvD5;O3zAs8c1G-gqw=*X-I_k4lbp(D;>bnmc`T8Y5$=Bc-%d#{%DP+qQ?EDo{ zU_oy=IOw?2=pij&TPpnQUpcqD(K>zX8n-5Q3GZkYIUD?T8%lTrK(;)N1=9}@**X;M zgHIL!k8cWx3}CNEi8|r`Ae{!{Z~$=eyRXEg(aqVsJ4MIR5D+BjX+b?82J%a1e2Y5! z0oUx8$7$O}5Xp2G(7nrt|G(p!B9>FajO4qB?KH@=aO@!_E z5hx@*9)q?P&0LsFMr;XHZ#&JAT~5HAojZHPKnz9qlVlw503knf-uYkY!Oi3=+)8WM z`L>d}X`WHc^PUH0^a1eWWV^Ib&TtZvCWUvYRPjg>$T@7A*6&2RiHMj?l#DF{8;887 zQcGl6^-yF=7;T8FYEdJ9k_EejT4Sl$mY*foOf8)bUB-Clll7W(YLBe3P6;VQ(cPN* z^YNO}dKP2VkB5pJb{WwMpLyTOKu*Z#(b<(9566AJaZL#dzhXzvwwiQ8uuZh1i=n_^5t>U7G zr{QUslgmd-yMs1zyDvD3bjBlCaEit2(HXzgoF^D)gD)AV(LAqUMsq~ zASBHxdy2>*yuqtKoIPl7gJ710YXKS&i_jE&q+;nu0q2Bo;Jexy82u9849wZ$x0O z|Lzr^QV;g^MQThnUm7X5#5&VdWN3_nC3uR5`ys+PT=I&e(JLM_F2Oyf5 z08f2SI&*#bW*vU~Q~>z^tdhwiOVU0+&z0X&F(EQNAMz=7O9sDc3BT36UAXNQ3+(q2 z!4j-6a?rI<64>qEG#;ZH-Mkjnlhp&GOQ-Iy@g+sU#o2@=75RXj&u(Z6WnnISW^JzQ- zTxD=QNnLIiYn*p`MRD3B70Mw4KzD2>Cllil!)Zd(x@k%?U(uK_Csg&CIcLp8Qwne` zSeOsJ3#Dv?+S}Cm&kyHdxb~rIaP}y2;LpcIAal*9drV02f&MlN;1%d)4&B+k?mjPE ziro}g2iIGV?w))~W!iO*pl294LMPI%Q*Hu{0plus!AY4-_Ogc}@Oejr&?Z)?!?z?) z(h;pPz7hvZU4DvUk(4#gK4-m5dMvtAfc^q1lJR2iXjWNDG;L-6g9ed$Q`jm+jIb-I zNNUGa^b;UE5uy9uFObDwtV%-Z3FZ*?0EO8{wGrAzP9gHftaV&EmL->8Yu8}2cZU7 zDcyl3~cx6Pv(kjGZ zY{PR}WvgbJ>R#IO8*6dprE#Tvo6HvYc|4z3E7g!O^v#9no6I5ZpT}y%mrH{7{S*9~BR#j5;5R<23Cj%D0dZVlweCW&V0!20d9{mB;M>zG5~@nVvQ z5r85E1m($|vU&s(`_p1`tAe^)Y@CYYqdu}CC|8U@sDLqd1JZo5OMOix8I7-N<>5RJ zC83!L$*0tZWQ8^+SPP1~r;^uYx^GaZ0(o}OA7oK2K~V1hT?4(a_zp0=LQPaizgQ4+ zRA6`Gt7=Lb$V;x*kX~WS?F_SE6l8dsLkJaTrrP@H z0xOnSbJZN}Z0QZGwdfT)f@W{bSt(q|+R8Bur_bu+hzJ9Cx)O}Z6WOj=CVO8qLOBo{ zQEZYm(xRai&}SQcG{#a&wZ%ffNrcu^(_Y2QarvNy%Xsn*OJ-IRj_DMikRMT}xazIO zLu`Ww(Z>1#+^tf^vY<>vM@3+}ZDGPS91tFy)KcKE^1A|VA%P@WY&eYsC&$W164#qd z=|g-ogsT%b8gdM*kBbF}>j)n>S-QS0x2_RH2yN-<|vjy$AmF)jgNU#mI9*Xcl zqafpN#n6W5vk(Pxv}Emxa0bWKJN^c{MdLo>oK(Y<#S2agV_6))f5oV+4g#syrs5Uy z>{QMRlO(Sl+<-k~IGSK;2EjwebwE-$v=o1xx3aQHs-Qn-Q!4!B-{ai&+lzYm2M5qa zMlp4S{(h^*9ixg$A^`U0aRUPt1Lk~+lE`GwM%{EMf7F1k{*0Bt z+%;Q^YUUuCq)C&(9^1QdvqD*!GE1?ht_bC2K;2m0h2USUn$(QQZ}NeUmoZ@89i!Dj zrY1!Z*p5nmVPurQ;LeuiGRji5e-ON#FsrLk5Svjn)vPzE%*mi4FROoac}CFIl851u zeK;(;Y<6KbKLul_BrA%K?^1D;!dtGQ&KxUmBq(hbt3a&ROHX}8zn6S$_h*W<-?AV+ z>)C-&mVzBPVy{CTZy^h=K_j`bLto#Y<1OW$()D$+LM@jrurt59Yb?Rc z3=QGxot;~rWb5*!NS{Q_VxH60U~UKcIM%zzry6|OvM%7S5nmGZDh8_-wTx3XjH*Ud zV?er~Z1dOsB2B#hO!0Z-5oK_NC&_q&(Fo&PYSqKX0*H6uzH0|RWoH{>>#}Er?j5U9 zH0G8S;fB0`*vtk?enV*oVB!}7Bxpd!d9760!hi;#=F^}P<gp!`pX-aZ( znIALZv>=SQ9JS#`Pk^4j56RP5OGaUrW2I{wkC_S*vVJR&%52OQ?jD!$Knn7ZpDC-vf##Xhiaov?C zov2>C{6mFh@BNN8^IVkvd5;eL^>*;%JEx^_Qa*1dR1Ld~%j8naoj2Wu?`JWCBNC*> zP-=0Y#I<2%;*ZOb%0^{I?GXJ{>~AM)&CQe%dmsBtN47=w2N$epz;!7fPdMa>H$O+R z0BRag^%!9ym<7|c3%wT9V?cG9P~&%bN0x~$O3^e6kL27ONgnKlK$)SUw?RjN?|SuQ z#x;`UuRYsD4-R=ON-by~h4c)V|fFha7<6e;BwzmU7(uWLo=b?eWOX6CHg z8Cu}>iDShwmLlp1R9?Sh)oE?#=DMQrYBOP!wJm&wlDGbi0A`ZS!S%gc&YnT$R7n6MK3K7@g1_5GUX!kNTk@gDenCAgNp4L@xc-JwTcHQjJ*KFm2di|DZTj$zlv>jS*Q z`8Kmpe#r~c#>b}$9PwAWsZjLq{pFTahesP{R0H{*LMUqgkkaG zakBT^hUK>A{jWy8%^B;<9NOcSOr#iC5Bf$dfrRiM`k{$JDLm-_ra~{b64wv;6A)Wh z^ogHkp~3l6hP4~5u~n5oP9V2@FF+vtZI^4h%0w(~jUJGSBVi@NmxJ=gH*s*~FhCcH} zX$=v`m8W@RH3~r>VmOT6I!{x5?|2o>5~-El&t2Gq%;nJn}J=bsv+cHvzw8UriTm%zbDL&ddl z`&xn~;9+2rhzaXA03@4aLDjV3Do%-Q}K%a8eR5vPPUHRgV8#Nr=<(lE9U9joiGSp~T4hu9tW#HLuks zHDdG2W*)rvkk=AY#Uq(aJ_2uiCds3UTIg}%VBGn{<{b?*&u6s&)OZaf$0)kml(pgt zoW8kREQ9qHvpzB@izny!o2OJiXGSgwW|&}!8trRYIQ$M(8V^wACQTnG4$lZ1%(z7^ z=580;OXg_v4e8&b%>Z13^B%mf9$3apTm_CN*I_B?-wVmR(OgHa2e$}_ROCim-oma5 z#O@=NQmh095|T8u!l#JuG(Gy)X341Gr+-~eVcLVw_1JgW!=4u3af$!#i?V!affR4p zN$NRsO-}{<60dIS#^s-4x?CljQ;0+3@hszo_90Ojf%JH zwsj1uux(;dFqbRMEc-q4ud9^dZ_0-JZyOt;y+{c@=Z$@j!vNIH-xy~Pahv)vF0+{e zs7myL;)GQ5S_k_a&SPwOIEY~i(GCN{BS_(SpmP_PSg{u?wYHvhQxNjP#=b$WF_8J!(I`AfZY-#N8^+E#Do? zl1O8|-!Mg~n+M9hCQ@zGlVzW|*}eR?H;9}QKd1@;`}>*pFCuoQ4YiVLaNCjAeR{Tl zmEF(Hq!AU0+0rIPf&Ap-bmN#uv78kZALB68_`Y9w5TePza~l4Akt&h-_fFG0Eg6Iw zEDSFWth(AXupXO zf@;owXfNrjLm=gmoZFL40aO2u74Pz0t&G~PCWhQSLkF*9lPi~X*Xj5Vg;gO7QJ9%V z8N=?=zM*jg6N_*vN96&+v{P7+n_GK^rzjs0pGI3PM8_Bs1(QLz;wCCYTJG(Q3B8gs zCA;&ZCM{CY0eze?2f+)|Z7swOFjRFz5pdWZBWrJSr6Q%FnjKi+Skg#7j#=p>bj!%* z)8?_u0rwfU?#%fcbc=Ys`ziIgI*bkaL7hx>pW8bQ*{S44aL5?SG9V8<6^}!a<48!pK-Eo@nc=v> zBd7|&Y$_*4NnRQx*b?#w$00?Je7RI^gvG$dJ5l{1w)YkynO<6akoXJQCJP<{h4k8;4adk?5_tSA8zdPoRF#5zcrx3Szq~B!^6`Xx*?IiH6OXU<9dF3;5B>Ls zFyc};7~;;f>g`sfjb}kIVPV$rJ&6;~G~aGZsf_!zTBho8trHi?qKkp5-E-rajX4(a z%*$!dJClcRHX9f_FHbPPIL7`+NxbpZa-P{qnN?O1pW&=nCSJ#TFzLvraYrfSB&A*a04r-z6bM3kjKG$${PQS&ZaO-G*4Lhu>L=O)S98UhzD zpxAK+CO@mg`C;$s>wl@jbvlFx^Mr+%ig7L`+U5%O76>%CcI`yeUKP-jHAM&DN4#)> z(i)UCJvhhJoFun$D?NXov51%jsi;2zPKAIM3-}0v6A4(kwYsbp*ME$yH-MHz>etd~ z>d8Gt79q+{>J529xBbaY%RSv*c%Gs-%QjEXSG;%?pp|?k_tQq57@cFFctW3#$}~U) zRyb3V1eBj@PkcvDs^9r`q~jd7X-lSSHE5OgJ#kOTvf{xXo*n@&i$Aw*e0YRNA5=`l zNH!yoB(+H{!@~Zc>+jE!lD6xNmm{U@b)J3{P=q!vCg{+96k}@?EQ?!85!Vz-47yz^ zRERj=~Vao6tA@nq+oVXtn}-xM-~zOkMnp2e&~bJQK%Mv2kxi zdkHK6t7w8oGpXNJ5xdifK?3CD^d5K(#i%-h8dwL)gelG{;doCUH{*VxoSbC&;n$pO zHNLB{LP9cvTE6kfj?w)$zaS;*icb#~8XZ6*f5!MoqnjL!6j}!g*N@dQ ziO7XQyRKW3>ybRj%sNo?q2%2$zB<4BDrUpiih(0cD0XEs(D>_dp;#DDSCLl1d)AqGTT3r^6G&V=(n!QKsy7sgDA?i3PbbOl0)^}igufKGH$kySvF zzhraTs;mN%$a6vP_?xg9pw!1uYUKG2u5FWij(a7sXo;^s5%+DmtjY$8x(ZD99)A0AOek*|1Ejhfa|68l#%|t%G zO%q~2rs2|-Xu=yq&)Lu0P0t`(B3|wV_5VO3D?pZ;=OIXL zJD|ONB}p~;@0-0FJD)8^lqcS*7um?v0x%w;%)7}0QRNTZyYGXNix@43y-#hN=)9u$ zW3I$?VWBt1=oY$Ix{;+cK&sTy&LRmS;32>GmykI%i%Xt z%-;NEbT8vVv~2|o8b9;%-w6nds;yb66aOW@-?%} zM~T{wkJ=JaZsha>SQ++)vt=6UI&e?6T+RMzUjLfj+`G+r=qfVV0IMcG)AHi%)bvwg zGe=Q*HJOPhDuj4wL|h zN`l`?0oI$OWityX1Tbla;Q>Tfqbs&7{(u?3_2k3_1c>58@T;SovI+lR?NP*faH)1@ zaw+(gPgD}^Yva_@Ymdg#skL99L3VpNX)iOp$k7eWL`3hx>CvnYc;68oMmrMJyvj;GB+Rt3)FuA@-@&0^*@tTTKxK z8|(bDkT8T@a}E9ax7L%LEuc{je?JCVVGtA0d^ml7=lzKHFgw{iB-}e9W9tq6=_ea6+*v2J+HQj!4y0-hHxS*u>1L>Jqy=+Uh;u77^ zi^;1pPGPalFaD4cDkt{fLo%#lf@;~PxD^rc>j&@h5#0t(S40)v7;h7Ji0)LSTz8_!kvSs>esi0)Dp?IO>RqnN8R~Z;?uwl>*=Vcq zLIevk;*}nwHjyOX1EsMnhgBcFXfO%>$5E% z!OK#xVLO462xWEf=>X`FM z+Hy9d-R!FG9FHQoT!vlUw~y@^s#}b_XqTujd?ZGwY>Nz49eO*SM*qtoj&kB)*8{TJ zv$ek)C4EeD3-3_Y&%kT}>+&Ma3z^LgGx2HgsI{G78kkos(_Rs%(PbYCAxP>F2ZBX_ zv0*RQ=R%AevpHy%kB^b9Ua;xV6m-^}qu&RyU4Gfw|EL?j=v`o$i@@oHz!d&h)N>L(qBRw zi`3c?w4X|Y^8~j;N0FyBgTbJiEjQntyA}v`)V#<1vmqHn09F}i2?w4rGQ^XaOXb!o zg2(YONut=tmqCVZ`r`zb5mW-xI+I$U^c5gbcwCVRtRnlAGNPW+^}Uzj{-$!d%XJk{ z6)-HL#fxYUw7+Xxk#0p@Oi)ZL<;BW(!v&z$4CR@9})Eq2IcA2i*^N>38jWXZI{x6&ipnU(tEZ4n5G*>be z@*-cDrsm;u8nm83pET=~S>rAGQ@(li&hC@oo5@CjI*t?NwViHYM>Ua7t&HkcB`tDc z{>s7ph`WmPO(u&Ews$|t@-cGtrC9ETdZokasx)X;aJ|E?+2w2*?YNV%E3VD;3 z`&}i>#mCQ8;U|L=t>ml5?Bnp3hFQs9l~al^g%52$bNZ+F)>-g_*h+adMJl|Ei1!k2 zJB)qE1(lO>_ZPeWsoyG07YCn57y*Ev;hDYvtexSZM@8twEn;Ws^jMt)KYaVj7hpenaq)M@JaMxV`f{e(up@}XUWCkj zc%GM&c)(g?+vTWTdo#+EctS zUYxoYO%2dTkpLceD5t})+Enk z!^3m!K3%t5D1=SkD>oSGiIG87dGuz@Tepl&VR z(j{%csmk~AVDUWG&VMPS^9_>$y|%pUOgcgj7*{S0u$slr5cc607%w6+iG1a1paAEY z2pQ-V6vUdDPumZ;mV4DpAUU~$%4CakuNnSOZh>^4$$<9{-B$6*$eBo%i3o=R?qc!` zn4&DDu6njHFBgHr=)2pKUg3yplas9Epc#w6i0^R^m`)=l^10b7uZ$%1D_uErs7)8o z8aBED0?u}c{S%XzL3~&r%Km~(XgFa2h1hMR*c_+_Zr1v^fqE<6;rHInnF$90W1wz} zF%@P+d9NN4ikc(|h10hoAR=rZ)Jxm4kP-ny9BU!1c)bnOv!uuAZsiL%#l-7;dfvrx zRKp1wFf|yA=9xL4x--Yx;=8KS$)@*e;UzM^6twDGu@U8U8AZC)Q0v}XuzaX1&PUgP zOi14kt_7yS+E9#aEr@2e?P}Ih3>7~{i#FhL6SZ5~jK&>M_^=&2A!DdeHA?0tC`BIy zGsKZo!3F2~fqN^|0!H@_mZ#3^natjiqFsYpZ!VK4>5TxHAwfSGF0dUp)J`Wcqk*1P z4C6MP?Q6i;dGj9c^CWnm`1$3JD?p;DnI{clbw9FJ&`tQ51D27!Gwbp0Y>qXM!Z>t_ z@1frv_Y|btJ2e!ILf-e!KV}wu_Q zt>WVD!-OebT3Sr%mevLabKV=xK~dMWrULU$Yg7G8sxwo;jL;F*SXnHD&kFv)D(cp> zOl0?|g3;S4LL&q0KLBVG+o+nbdvPJ zG;C>EU68oTVlGT#;+5mz);)vOaYKOV^ggG58|C-#D%`2qvS&e~IK-1a^OuJG;Z&k@he@YZYLlnB=4?Kn0XA}}StCTdutV$)O1F+_gW?zwh+&YY2Y3$YW% zg3pT%p{uu0y%iDd>wk_SHSe>a*`gO;e>cp{TcK{v;Onp$V*@+IcjA;CWJpCim6B%y zj7#}y2SR#>!vruhXE?A0zLH4X+`X z(`xl(8wL~Lb)cm`d$a=hQZ*IDDG=60^QF=K%sP`R^Zgwood>^S%Df)Q6;66})P6Gd z2Z#EE0SC*Qp0s_3gMYsXsqq)jD?XcW?WJOGD570WAf%kv-5hO)K7oEEAlVzIRz1Ug zV@0Jyh)mo9XhzgG$<}lQ_^~T4IQV)R1+u7@V6ozW-yVH(_q*2J5^|?fD7KfdMXXXt zvX@2B^Z9P0k9<71ppkJ;q2I;3Y!U9_MM(6va+IusP)|u%Niokr8CYn~2O zl>ZB(NzWy^$YRZZ?$0v%l$qA8)IC_O3^j`TxJ6to#=@cUH~iUm)a|yR^_Vtad110{ z&DM=UY(mKg(_*y>m3>rphMW@9LfBdUI7LiUVscBSugzb=cw%gd+nFJ#Ct8;02_fO$ z%Y(-5o}M&NY|EjHx2@(KGLDX`bZ1tO1198))UfC@LZvy=op@<6`H<+p-6w0P+&nV^ z9EiO@7G_~{E0kJmPRiZzwo4@Q?aj)*BVa&kH2doVn4jQ`aw$!;+I{H1AgVRiKabULRK5A``(|@ zyR9-`53D>b?CW1=25pqE4u*nt^k!*1Qg2&i%04^E`ngP)hB@*oko$xe5wek}^EV9%xztfCp>p2fOipo5zXypO$yA96*Olm}$6& zm0Ch#qj)?Zm5~%(GfTB#;5Fwv_Ja+=&Sl#3l4>m4o&v?p3tCk*t(&Q%(eiQdEY=ib z)YXdhn%n7mwWUvrQGvbzlXn8}pDyC6+9?>zX+3NqFyQ0Dj+PXYrxs~fFEhzGb=!f} zP;pFjKDHYX;Q#PBciwijd(0R)yX0Me zs3?=^M}{Ep{Gx@;$6xDVDzLVg#zECM$9&j_Q z1kT?9;`2T>o{rX|)%yrMN>d7>0M{OATGiQ;D?Gpn`9i?~T5TcUleOv( zt^K_yeNAZc!{s=%xKk74p5L9q3qoMZM21zaz6%PHf68?u$6EH1gCc~Lx~wEOw{uJh zeT&24PRRS%+CXLpPPh8u;27i>B+U53EwNXn>`xQz*zAL{T@+u@hla0Y?y7lcR>=<( z0p4temKR;_qxkmBHM-9ONzU2_NrE#Xtv9+a#A%KwVn&0K84P6&hg+eR)O-u{ zZY&FLWPkWf*nsCzcpJdjTD_zn^ix3TZO$>smw$v#6Hs@MMhb362Mi*y)b^wd4+{<5 zFW%-i27!<=4yiQV$*bDlmO$#JJ^==Tp+qu3C?Wa;o$+}-I3s%_`knGHy%eTe$(H&?ef+46it!7K5rNb+>pM* zUFU4IS*5lh(J;YmARs&d7TTzOeyo43KL|XT$3pr=pj~YLQDqSf{Q48903S==NB&I6 z%StlwEbLH7EA+!ACU@v_!`X6Nh?`DXQfesnag(2K-&Sn>I*7?YP6?6{i3d*QjTMs2 z%50u#UcM6LXV%QaqP#fyBzJey840iI7KZAEy0RT?pnl!*&ZvY;#=#-gd1=J`0Ra-n zNkquYRCk_m*>TlQ&4-BUL~b8|1RuqGEm?ZwEMTL854VZcjN5*cdL>zU_5Ni$;YpSs zE=gZ1e@P!_5FtCRZlR+O&$)X8nyU?*!cNXHjZ;AwSAe#xMhHPPQHSK3;m=kPSE>3+ zo7;Hr%1`d+;7#EOc_ag)D%QsHtuXGjck>&%T&Q~iJp=~XYBwPg2*H9bG$aY$+)E_# z&`Iy-+GAqSPMEEnC4Kn%deF}Zt!2lwUX2XuP!Nkft3BcyuMx%}IV#M1@suwP*V~a$ zJ+`gW)av_}R9+&NB!Qq#jS8=}*W7h7$xa@cWIjnC{aP&<-Ih%rq*^ic$yC773*Cus zFjf>%1hq0#TkVJS5-20h8=cze!|)`_Euru2;iZW$6>0^a!Wtk6JOAHoMWf7hTQ*(D zo;q=$_6O|&7=yR6b4=^ejd}{?JEl#}D^!s$t&n!yCw<`kW2!6Pb+@Y`gpLGj%Oo2O zkT!PujGH0*^^%VPx>4o~=Do73x@wOAob5*I^-9G1qXAkb20y0N12*nJw!P!QXS^#= zRVSAfH_(|L69++gCy(Nb3zALD{!hI#K*^y7mh z&$^_5IRlZ)*RwI{%+#8CRN!dt-qMs=)Mz{Lv-^g~jz2!Ib6qxQSp+?OY&~)L!4*^q zyJiR}9fl0~5lAzqmvfYc2}Im1zKmH2PdBL8j534C5Ec?}X;~}axgAHtd1smT8f&v0 zk6U3gbQb1d<+6vb;?E6l)>MUvp^05a>+Hz?Yq3nfY` z*B=FcRpTYiZy2ks(xYXlRyJaG;^L|)*_<)$h|Q~vBYg>ro`(7uwvmf9+NTRp9uGIM zL8#kN8xe<>5(>pC;nc7j{o&*}9=E&N$4TUUy7Ic=V+CsV3#KcS)LnqKw09$M=Cj91;$NmjSKqygR94km`7PW+hEtapL-mSB%0~DT2 zX9_mfK7gNa^#l;#6~iFv@Dq5ez4-iSGAHm@#^&3+7}6f2w*zAgtqczH|~L^AWG zRzQam3vq|E1r{yho*1t$vOcx#^<%g3gbpzw?w6~|+~-@1v3PP1Y&zS+!wFq)?A6gV z$Tl(d*1Fo(v>u~e$US-|=WlV#D5xo+&u+Nsu`@}$U zh(HTy4Fgeezd~GSzl=G(OXt>~dn%;v-2=i9!U9Ls&QoPLqed#Mkt^(MQ%D1^i;7yy z1o`=EXXUq@hXuu)PGBZ_`}FiAMUH+RKj+vSa91uIw(;8A>CE3)9+t7C%J@S!_!>DfI6|km+nv5q5u3ljw{sIz)}$U zcyXUk>)Vugxua~fwxPsM@RmW`uRm~jghnzBCKB)W6aMCFv-P%&apGHY@yS3Vjdi)- zmV%H^7QKLE%kK3myo*Dn*%25fkjo`M1n=SOUbnRm3m`EkHY62Rs5(LpFFO+Mm)FEk$b}1I$R* z2R7c&ry!7>t(Zg~e3XsFFLewV4YrL}mWA2zmc5Rjz?yw3U}K4#7z6LA^Xdc0oq7Wj z55oPMKBM+3&QA9>3?%o>VeIKr>mRMl`>eUoA(T{yh==Gp0Nl~JW=>&zjh0rw%j}l# zhrJgjk^U@EGCN>i*drqII7U7d@a(|NxEjQU6nc9p5hf1f`_LHWDQG|PoV9XR9{7WC z#CNAtsOM?g8{j7ae3|mVDo9zw;FU>%J0!wl%nz3f&=B~K4dp?>p2$TIF3JE*ny2El zDxzVU%=+H{}YNJ};- zTRnHZPDw^>>)ePZBoQLvZSym06WB>8yK;MmHZ5U@65?m>e9wiM5)<5 zpEYV&F#!KR0KoKFxvdG~A$UWbHBM7w@X)t)0s;Qr!Q~Z8k-VEk)~(+FFhPlqIXO~K zw^KxBEmAND=!1`F$oQB$U1#8>rVqT>(bV-=Fp{(w82@Op<9jJesDyFh5n*`STu6lS zV={fs6bwb`d^n}MOS@3@6%F^kjHJ&4B_V`l;+tx z^Y*iZZLQiU+1V~Owj#ecXd^#ZqPrV67wx5I8Onf0htyO z_9*30Fo$#)vsXJp!a*$a0qpZByDi)#tPBrFMtM@wHFPc*cO-ZGDj%dktmtSI3x%b5 z2hR(EC+}pimE)Nh^o0EFRDmnygC=RDw~A3c@x%?e*ZjB>^$B(!K)OMVj47D(Svw#X z`t*&7Ko+OiH+=o?pu6(kuj&16-!0yPuKoH2#xfD;-4~;p-#80u z{dO^l0Q?WA9bxlJ)q@-?{=R7fpumfX zta%br`2|L*MOKuiPQW|SFP}xv-U2(yG>~93W=Cu)V@k$WKNh0xfG}&nkm97G$0l3P z1PY`V2v31>P*0>UZSpMMUW`%-DPn0yV#=Wl-#+fIajP0YC#Y(ysCH0-_)2QnHn({x z4`dJ5Q}&*0v?pSS%+5!s_}H*31htp!wi)Nf3d7ejr$i@kB*lCp zsE33Q#>9CvY?3Kk)vun`TpAus+h?9}{t zcAR0n7cDrkj+OO~+9z12kGb|2AZst_Ej5rH+^vUKMjSi z38CuvCyQ)2P3b5^A$5x$v8nert6{X_wBzbxV``Fxg6B_ZfS5Z(F3) zsKPetP(KfsDz=nTw)X*cMFY;6!XpTAFNmmwjw$5yuyxwHYdpz=>w%z}*UJ zXeuofKl)GaoVG+ZT61zY%38`Ivgq#@tk7TFMeQMpcR?Q`t?KDgeuj&C%D;e1LYugL z0y({I)kxhBn0R3H0}X3_4tNL*5Y(0G46mwiML(7%CmB^O{7_-D{x@)6(d8(L5;=8r zxoAsZ>c2S$Yu6LOO$bvB>f~mxUVN_C6nxCZKo~=sm46os*9?HQ_m??wa%n(l%PZ`B zKqx}Ls>bCuL%iWf7U4oK%sjk3Er)1 z#gr-PmQFb#pJz0`9|!SQl>4CF10Q}@lN5~;f_CK9!*!QBSDM*Gb^Y=3+r~Vz`BNT4 z1xxOqJQv6z)gx5~82tX(nt>aO{8!V+Aj2zVNGQb}(obwIgD%$-ViPaWmEpB6b6Su$ zYK3l*AA=HM%adlxTM~!!9MaN1|2MWBD}nzkH3+;*r?uR_Pev68X1d@2-GMVR`Z2um zW-+XW6Ecubyl-Mv$*Y$Ij#rl5hTEsb2-Df0`(5MD(=_u*uJcEveqbEPYG=ZJbPgTO zC%Bk}SYo4Np6F7-l*%DbE|j$6 zlcLhHC1cQ2Yky!B#X4z|gT>6RiDR*+gQC>6y`tr!`C^lEY9W6SJ%r74%2-90TfUo| zhXu+NIrsv*;A#+QXn9%%-(~J4g@5Cruk7%+SV7nlHht=9TmCn?UAq_b#Dxm z_gN4Crj^5Z$?y6niV91YUAWiS5V1Fj(ufm|MgFmM-TD5z6FIYW-Dv2SJ*gV4oYho3 zkc2?bqB%;BcKu5VwcRN7OemDglH{ZkR!I`WdLW$4TUJq z8Z_UWpvKd;iM^yky8^)2`r5W8v|J^XrG|GKZN>1nt-?&`z)u7(LZq1sr&KwT{Czd7 ztT8fVB7J9|qsS;03VK+-m;P}^ZtoYQdRloQ$GrC}P|DYCB^j)Z8-`(u6Kti-X??>}Q;-hdv~;Y-o-Y*v^_7-a2Cm`m_L8 zCG0M8Vvx56B|?Tdaxypmh6dbrN(k;Kq9sLdkO=-ys>cd9TfI>R9?0! zl*x?X-!FG;u0qG`u{f=`L65&j!nNvaau?$}1SynCZF`TTlt=_X`A1I~Ord)89^9I4 z^ldt4dy!*A>g)I#6-U9p=Zt!x4$Ojnng{oj%lW8NBNif4Tc(ZH_>7__vHs^5(%+|0 zCIH5JMDeG}>K|p#y|de<%=If9v;d}SdCqc!=pfNjXF@{86Xe&7*P zuw2a=bv9oc68;ubK>rmAr8UhP*1Q=k4-usv6K7v}DmF{WG+0%0KI5J+*KXb$#Dj>f z1A-8J59_m++R4M=D*n=LaYc;GW|86h_N9K|kHI-VlB*pJm+|<@uliyzS2Iue6BKu0 z4^U z*h22rqw>ua?*21&j}0$vpn(W1Wvq(58hLedd>%YL{f*RVWG%UE_a0i(x-x|_=9f&-1eov-Tfm_P-ki(>9l($( z0{1eV$QT%SM-XzE7BN<|YQKoMef*XIiF%`YM`{_T%K@DszBQ2n3>)aIekhYa-hLTY zo$!3S`<$5b+Z(0nI?Gx7{XzSxUjMeY+~}X~yM7A&qI!7ZlwzPszrK$ zyYHpjq3wSR){K7H3mQ$cY1Du=UMV&Llj1y{C91lEZg_|m1bZ2wX&0cWH)`)m`g<;- zZ@wxkWf;KhJmD6750w7u=8t;1N+^=RrsxR ztQ_c`xYr=)af{b}5au?#j57?KD-TAbm9t|*4as&fwJzoYRB7Z!kA|Yu*kV-cdIl}} zFvzAMOu9f$j-eRTQ?3EQ654RQV{yv!N$n{M`5!dAkK{i@fg;0eAKIG5(N}Snn||Z- z|0z?kv?R71Fwrxl#$fr4&$-u8)7l|kKiuOo>5LfU1Uo8+F5c(nB5Q))&d?G!aX5X=P6A#saF-PLdpbM4 z9>73H_V0MS@M~nn-H`Vsf8Or#@TBdL8Y{qh8*%QNVqRQ0>S9C&>r8~sTkent+N#~RsHajEe%Yp#UMVp&TIPlkuEi+;+sSyBbZ30w)v9hgO z@m1KmMf3D5=5D31zYhA1YP5QJm;#Qm{DzsIUMz6GcZ68fS8%s5Y++H1B~bBGzC{8! z|LiEwLB21>1obc9t$M*Xm{n@`QdVy1kSQRT9g2{Ab39b)f2}8TtHfI9^*5UM5)mt9SVXo90DVxO!EBh-s`6%G9_KFMqC)gu#ojfs|{%+EcEik#} z)Hon6$^n?_D60P7F$n%)X>Ti%!$P0ApnCOD-hds!@yg^`9ZE2lHV3Mk$}LfdgDF)H zD`YJ%lLKEqGwUJ?r|oBvvmVjxqq{W=v4Rrl&L{}yEN9Eg(-|n2#aGnX-o1NlZg!9M z>;& zT4vP`&}R#tBeYo-ankNU&>hq90(!CoB#ixMS@lw4%0!mDJMi#wRf^5~2qEDlfyMt4 z%IYGCUMDaA>v5;@08ByO`VO8s;b|Zw?Fb_yhejaJ99;rWZkf=N%38+#3et?&M9jv! zGriAG)@Vk|K-%zvIf92vBT6C^R7smFE3;6KL}<|OF1}zZJL5WC5(y;Jsv~sy;y>_s zfAZp=A2mAO^*$;(h%82p>nV|!58JB@KoAvBvJ;%Do?CIi8zJcGV~~AyTrDU|9T{X$K)CsXVA?lz zl=3CKk)eb3HQqVZ3d>;q74bGOX%m$OT`nkEX12%zbqgGTB~A3S4i7w~wX$a_J)n+}RWAnh!5O&c7hk{3DH)S`j#7i%vI&8I-eZFL0Zxr? zJ2@a3lB&KrfhtE`;3f{~oBBtCRona5o{E1`XBh|J`q{0`|GZ)5cY3QX+hByYr6`5P z17n%UeN)cqZ29!N)F-;kfRkZY*SXiPoiZK4rR>sP0->-E6E=&cg#kI{g^jIwXacqB zk2I7|f)e)a8X+w<#ZS_e7 z=INI%_YDE0S4s_HBt?>NQs6HDkeQo6)qPPk3Nn+LDQbKD8=9DO-lzUdB5w>LU1uWJI1r4ipg}`Fre+5|^ND60x!Jmu70Gvd^&X zKfU*2Hv~yucBG8aI8J7sxDC={fYrD}DQIpo`R6zGn4(R(ZrqC~Yh*m`VA>@F&zDh* z_Q7r+=gTrbbX?D9R9nM+il)YnkSK7{q^|kkZ~wW-a#TKNf6;L?OO&1iCyEFfTB`#6 zLK%%44Ym{=+lPwW9Zz5lm;}1`nQpm9*Rlu%HP_n803ObqX4j*N^R~M7%hSdl=2|greJE6@O1{ZBWGO7b!CV3W4bc5jIA;|G1 z`+@b0EJ0cy_8SMrf2ueXdirJz=_oeIt@^S{oVO~-Kr>MFu{i-q*xKmU8MWO@#)a>TBP!ZZ`@E+Z@a{fi*~p`r$K++DdaTAapP3o zU|KgQ7XRNo4XsO(nnPajPcA=o-ev#T(hmNJ-X3RLJU6v7DRqapLQ4Mf9x}se|Mm~D z26ec{Y-v=Wql98sj5+}0bB@q%Dn1l1LuoDV_sd=vdRUqykRBK7Nh|v&qoT%g1)EEH zO*n)5`x37VMTzQ0M-w5;N16T;2f{paTN0XZbFll)(e}T6d8A-h3z81Vwrw@pqe!V& z8NWI(c)kAL9RO9vl5|_~u_2_g)rkzI8a5KBstk5a=tR{@iOIqh_`8>IUu;a@YIF|15RtB0ze9pt~>DZ=sv9}=2ad( zFLH3sWYH)%8NL-f9e)Hf_;5co%!`Pv#%h1@;SIz%$Z$D|EG_%o1xQk^(x{lE$0M_3 zTF#%o948EZ^H8>VO_f~ZrNCWNwBFt>! zgnIVT)SY~(kypnYWg{BAw~diMloj>J8#Ot(@(Gd?N^x)rMOzB6@*)i*90?|dfWclFvzFKnI9iRyN~x-k`Rd8Q zT?U*;>8|;2J~V}K2JZ=#w$q*KX1BU_`ok0K(=6<$B@qQCmt=cPlw%l?kYrbUvtOu7 zs}L2T@5ce<@E0_*H3_C^AcWCRd=$FvF%n8=mdAdV+(9B&;o)N?Tj4S1Ag2${bDdSm z*5{qmP1K%e7d!nXU50jMR5nJ`y@5ad8bz+wFNIt^bN%zPPc!| zQ9y=3HuaIY@FM%Pf^EA*Tw$TFFwFnDVh}(_oIm%v6q<}2+jfN%&N_HL9QxNX$(wJ4 z)kTXH;c4$U9Wl2DiHq1F+NI3gyx+R3$U%m;5lGy^ z&lHsn2wSp^19zk4y@@@Z)HX>{EX60l;t&w$($D>wP~uCkUggQE+IjMF`R(GjPALVe zksa~wV*+!aO~5g74JqLL~1^COefyNar%1_R$7e_57=f` zeAtRW08$sqkZ)GwW!6yxUFli|Y`cG@eJ1oxEP{Fh2KYS@T0N>MoMw&*E;?y&gTx!j zdPT@XB!L0aya?{Y`5CFbSfA3{h}ww%_b$C8Rnm+|zRo$cN8u*|(^T<-%9pv<88qq; zY&W?z+?b+-vs$O+mYJs{X#p7&W@c}kR4p=9?!P@gz7#>RI(B07d$*VE+V*3ROeZB! z-BEf!Jct7@O=)cp^HwhBpUY0z3pvLo32@>?+dr#LWNpB?ZN>o2dt0^_lxh3++$Z_# z94!!@w_cdyjYks>O>KJ6gT~4Xl`}vwk~3;4g>lCT%Hyu_Rl;r>{_WP+Es9&EJv#edv6-Q`U-#$Onh(Nq5P=bJ0 z?Fs|L5Qb&PmzNtXU==JY9(-JB7OFDA16J4ews1rd3r^+zn3376c@EIp4dnFMU81iZ zN4_GOV4Is*g^lDDo@i0IT70tFf>TNN zZKm$-nbLG843q=3R9y;RDi7(pSX<+q#{|B}G5VSc059U4OC?KJU%ff{=Q!*R5`BU@k^pfTCo#e6elv#4 zh1$Q*|HI&s_Pt#t3TcN7@0|E5Vla&;_b_W#aMWvzK2{4M8w0CwW0Q`yXVPL?hu^Q& zCiG^?0+&0&!aU+f;KnOf9ZheaI7EDjr;jg(hTk~%0>I|k?RA0FRH_4<%@l1nFjDUWvNtwd zTS@&fA*xk&g*#9t#*K5HOD7fh^R#_@Q-TkSWM>K z6jG-c#+bYcN3v3pU`6cB!0tNNE?B~u(CxZ6g|3Y3;$D3ilEr!1^n$s3UsDO%81yw+ zTDJ`q=MS2_(EkB^?!o;F_8{4D@ zG6z8kd*O-7$eEw-aQ947YMnm&mDp^rnfGEIr|WAWIDH&8#ad5oFXfEhiovlc65lMc z&)v*UXdZ;CQx&!=j*UyKdBoQ2IGt`=l-kz~@xdLrN7C1GSQ|?r4vFdT4~?*|wI!!T z@V}Lxg2?=S+|H0HM{TpkG^Z;<_a@S+g;0|W;R5DBqsG@NFE{Ok6(@assP&+ZRbJ-H zqc_^Z={E(gUDWy7BUzU>&}EqT{RA!oDY%g{qf^Qz_`MK+IT}R?W*@}lmGPWcZdc2D zNU2GGqb%UTMLLdBhia-1ob8L+JtclzphIe$(XP_Jcz+QLWbYFUqr06oiG0Y&rxIvX zt-^4e9HA6HxH8+kwuVAQY1bj7BV71a$!doa8l)DHN&% z9;we9?HthQP7Ugsrmif23{>6_J+AMIs9D9J$7*@m&AI6XmcpKx37}1y*~i`*KFH{5 z-?7-3b1veb_9`Tu{IIJ~-OIWbeB2{9X3quo!bi?piBfRA;)Fr`NCg;k-$OakZ6nxM ztH5eDMaeN@2vonkZXRoKuDOPQ8>@LA2g?Mt+?q`RVCv3bk}yp72WQ`LA(!!I)QtZ73Pfhh0moihNff=BOpJwmSgDao0g zv}vF({VI`t&r&KtWitZ#1KS++VVHxfRfYGSI;`WQIJVQp#~8J8dfJjD887STUeK27 z##YfkF%;{B$ay$&%x+wW%jD*w%)m9ZO%d(BOU383i13ZdeJ~P}P?lGm`I$0JeqQ$G z6P^fniis=@?J_ ze?%(b=yeqTnbDjZ!1H;Lcto_BwanC8`R1D=LjVEn`9%!-v1z#uFjI0_zAX$s+lCK| zyvMew5Hg$|>A83(^?)EbQTh< z{k@_Yxz04s0nqQHFT{=+Hqkfmh8K)Vr0dzyGluL^hrrVV9^z8FEa}gTK5`)tLNA%iP<)qD1nmP9)7LgGiU*!Y$>4CCQ6lZD;c}U@l0YqbT z$LFJ=(cHx8Q@j76cyKPN=Sf-IOPbP$KAGFJv5#9Y8Np1AmH$%PM5y3tcQ#0$_e5*O zh~w0NhJYY|R}qhrDiBwnKRv@ekDkXFcoRr!!h_LH4L6^%FOJ|q{}5AdKU8=9W7=Ym z3gZi=&$SS57B_tJ_+5a6en~&8NXu2hbIX%Me!!l|<9Tcqrg7E)iqUZ%AalZiX)9Nv zAwysBB!U_gq9C828k`PI6fjYb`=<_M1-_G@a` zf4Kc&!d=9>!pm2|6n)|Sbe2mVr&0{ATws#BaN+YJ8HArMo;&>AF>d#^p{Cn&Y8&pt zy9ti5qhJ@JCsK4WqW8)p2nRP*F2vAUj^18*aDFH<-iC zThFLPsQUh(9IAHIE&LZ@{&T0wsx?KJ2amBs>Dd-RqpVW8^HLw=Gz1ruGO1B8eplM zg{5bExdfh=CtYYd*fy57mrVOfW&gXx?Iu2S#k%lY!bA5hu_aQsO7A@=V^f5V+WwA< z#-bzqf4}(LHc{M{RRNy=9#I^xwg|uX6PENo@_|LoyAtTn)pn5Gmm=wGt>aL~Gqn-W zj_i<83OmpI)^-mZ)7jtsYILU;?UMcBy{^jBqEv*tKlq zW1P32je#=&4qw@_NedXM>XW3nkBS>Q&57z*sx%bPn2iS{Yx)L<|Ef*3x%48|#B0EZ zRxkPEuJCv*{*OnVsLN`DAkVDF`R9{<6DYnDmXH4+!%WKfFF#~GOy~gg$H7}hd9fWbO5(9S z$R2pcsv6Mc2#@5<=<4bLR-V)3PiX{;cn4xb`oIC8@< z(J?(Lox|AaICr&W^LN}F16*e9ZMi=dw4%rJw)#g^Ek9*&kzy6mS_OLpZCzv3nlE)X zK#pW;F%#{?o=L_E7GmbvrBbQ58W>CvDTLxL?^5I}3bpYz@~6U`SDbEJJHn`#a^=SX zrvewalWm%m8)BlMs(cHKS7kB*H~uw2;U#>j?!V2! zBW6dUOx3Mv-zwA2$k&mb^t4Kk04%05OWlZbR%auxd0@{gf5TnCY#BuZGn6rn0^;Se zr!ZT;_a6U1HdL!aan4pZZ0`QWq07FB0&|q`F#Fs; z(J&AyASA@7ZC6Q;_WemDYD;QZ?$wpXFw*HqXM>uSGa?s(clIP0G8a@r9Vmcw>tXQV zS9u$r`enfKD2VqQ2+oi2R$Q-nWBN_g-WN>s^-Emts87*&wOCSDqfu-EqjfvG_y28Sj#b<0_sd`cb$KFO@!EW+4U z-eDq+k0iU5+qmf;3D1Xnj19`{3UkcEAz=yxn(Vk6qBw10s>RxU50iNFTg6x!hZmnS zz(!Z2YCj9crlCzu0V0!m1=v{1hplVc@Nw3?CL*Jyw6q+dNv{b-7Jl>tA%yH!(9nz0 zMfHs_Y@F=|dR)w}>e((e>>8-|(@wa{MXWzqN#i2J5ugRo*PDtm_%Y#*8Ld*^Pv4m{ z2nUYqcG3}bR#@ZZ1a&^33>;^C3b$H)DrZijBOew(^ul~u!9D5dX#-mzer%axhmeye z-Qknp#tK*>)2D^+*PIopRhxC#sX}lNZM~zScoqNQ5h&+@;jEUQEB% z|Eh;D#(V^y=$F8uZ&R-D_9>0vts4#Jp}pnHJdcJZsBbnxN7g7(sNAEa(O7MU{Jm4h)(y!|qf zq^U7&m^`%phwsU5^^rjpANauouzll zL-}M2Oburz*>fKtKpclg_gi#$&M`+qG5Yj>meOdXaaT3c&UXFG#|V|h;abc}^Z2wP zSlXEL)^24uD0taoJdU^h^YtgL;3W#6jUfkZbq=|DJg|Nr8Y@G61ImcP@{necoGuUkNxM~G+cBi!HfSQD)S1ze)_poC0hJNtE}BONFOn>jN8Yw&qz)_W`Bt_cL>w_zExovV{u@}=DvPO zFVQ^q@``{;48!E^Z&)|X^{q9Oi`3QX7<`4CTqzH>>=ZSyJsJ&TyZ7j^X&nw;B5QTs z3$-~SPV=c8NWC6JJ?*)uRo3WsZg-_R)UioAU9myY?X1V|=xLci4d7a%7Y9W7P_)jm zy3Elb{nP?$m#6p#78l-A$kGe_xIr zBUP+x23xW@UpYbpR;Awtlj_|9Mq6u$4Y4&bx1sORhx_GwR>hrT#=NK~5I~!V!g2Vac7p>cE?T*H?`CFMKw#mT-%I zh~aGZCp4u30`1=y#kxgmRdTGYg+0d`Jo@LV4 za|7&S51$P}{42NdWlHfbEnOMcQ+KVRkr%W@lkk?z56@XC!911D@}+A<*)J`sWsaip zBI?sTVsN@*0Lq^DqBl^Fon-D{46b>bRmuLUwV_h7t5>tq>9-Sq@nXL<@aBLPZi8~g zp2Dp1y_iU4=d+fy;(p)9W$ELer@bL#7hadNM3ElNU17RxG> ztIUG89i$Wu@o?79_Us;z5%eOq?-XpaFwD;w7i!j(u+Kgq!V95^(|*J{f+*K`>r>*$ z$UCD`7W{MSLoIz!>yXG?g7-{H8cG3@blXP4Q2~+WKt-`sOEqFMP^4%vmOaql?{K)l zf2)7hYuAyaxBaYTgs)nXe%CzGM=fuyZ~GcK+nfkUb5<)6hnN}R4pJ;zp?pX8N*q*T z#E#KHS@0F7P8tLRkUdwK>!E~wT&7+*UsFrrhojhr1{Bd~Fc1@Anc9|u^T}wiR@-zU zJFaL|kc05gYEu#W%{BhH8IbaiDjuzF(@TA;-H04k&@@mjYxQ;l5`6f95{veXkn~l` z#$YL<3)v_#W(t(TTE1BVRDW3F>qAzZ^DB!}@WB?B|0L~$aVyN&g<6MWyEgaXPmgLi z^`bN`jXSkNk3A5!p^TscC3;yMp~BLBNt+h&U({sZaG-HkO|6xlb^lb|!=C?k`Nwrf zdo=+3Z?P=LiBFfVZZ`Z)t(2_CIbJvP%`%9pf0J{~GDYwBBy+7a;G?txv$3yJO&%Di zUj|=*|0oyqC=e1WHLC>-BO>}ZS9{V}*bao%Y@ETfc;agX$hOt=yTtRJeR#(bmH!0? zxIa=L=krg^?Qe}ZBmDwZmz%!uOuVVCM690=Bs(%!Nqj-*htroTw87mkNq8MFkWm4+?sYm7w+ zf-eY1eNUN%V|Mj7cLV7VBXA$|dg6z#w`p3^c=EF+RhNbYh|wH@ps}Ju)izhMKoJeF zPv9vy!y>Ko2Sy^d%I%}~8BwBZ7Y-_0(|>I924N%P_8jXwm1VVY1pVXE?yy_WiN7H1KWnIHR4NSBWW622JvdVk%omWG=T7bC~<%#k+YN%AV>8Ytn8yePAU8Y=| z-03Wdny5N5hh4w!gz?`hdalTc>jC-3kvI0_dHDJzXNGPt33xwi#Pm(k;K7dd%-_wr zOTDq#i^_pY;G;jWG@wfwAlNMKeYaY9Y=AIW8}|S5L%UBT^&lnUOPHx5^11f4=Lmuh zITBfF^V^vGxTEj?f%kHdHu`F(xO`pN5EYUNTeL}#>4roBH(&)_Iw@h7j}L<}`AF-WlRw|5d@(iD!l^o05}zPL%~@&?c1}Z{R>d^RM!a9B zq`E6!F$F9eg0Qye%O>W5-D8DbHH>OK$_-uAV!(VX6|imYC%LIEtum@a;@ zEj^m<{l>7Wz-YQQrF3u-{c=oB9DEv=Vnt5oDzGPSqC$L>VKa+C#D(#Qb7U9`tU=M`^a9(Z#d6zI2jE zuJ>;A@u~I?l8Ay+^`O7LE#z<%G0GE>a+62mTy@9QkRt@1(E1k1EqL}tiC&hrl(f=i z(mpDTK=ib(m?7LqgjF9|4g0$orf{GM{;;HVs*VQ{Ze~_(K+Qhcvdbg=i^d+R%*%w`NZeb z^vDX;Z@Y_M5{k{qo3=TYWm^w!`>vq0MhI+1MZVNhwn7Hc4i4X&O<1*v%G;oMd@RjED%ae#>0~K8AE4-*(hvW&e9A=v&i0`u=6ZyIny@xXfi&~f4W~b> zL0>~Z>AIP>%#?C+40q~i>DE_`v4}4$O08kaDuMB)6${^pkcj5g zUjXdZYr!{0k~$Boyj3D@=%(ta!gnQwA4Q_Wjp0I+vTSIr{0T{oKOvF7H#47guL^OClw%I@Tvy*%Mi`` zi>#+Kw8nH;A5IE+e8oGKT%oe6|E>p z+&LSG&eMpXR9w6<+vIrJ#a$>H8yUoB@2F0Dj<_^Mjz3R@&F*QeZFmxCcv9}Ncg%dI z6Db!q4Bp01-0465U$6t#-XS_SkVL!*Ql}3cq{W}Dek#;;lVEd2>e?^~F4J1PFfI&U zo15l4_2L_WD6a*ee(o+DLHi}X&8R0Hy_f8E2P!IYplv<()i|Zh!DTse$)~4iBo-6T z@h=aumxgEw1F#j8$+U?N-6-?puv0&4+Na?wYP%Gzcy;hU&C8@D*3*K5GjH!H$p>N!MvC@9+A8 zU%BLM+z_s)Q|f**(D#wgRp;Q9Hsbb;ur}e_e0DYt@JjS9iHD2qX&*I1-rE!R!mZ#e zCo0C1i=!5F^S(_5tgET(ytN>CgA&B2<}Q_)y{zM^7N%@NM%1=bg_grP2=i!|%RenH zD4QZ9Aoim_ExtDtN0F$JB6kSQ?Vuwaqznzc+ZU8q)q;_KP^eZsI|1M#NzhY>BKXWq z*a#}LOF4mg$Wv|vFnl>4-wX>de~ow7#53qmB#WAUY7p=^BSA)ArfP>z!ms`%LU{Jo z02*{Dp@ptzLWLm+AShNnax%$NxaT82e-)f~u*Q+P+PgX+Y!3$H_8?H-9N<=8hsf5$ zZoA0ttgj4|h`%d;r_7Rnc@E`{7?7dGxMZnRaMTv$$kgIfAD@_tNFBdLkcTs1Hd|-h zwL_5(Fe3Q;p%8~}{T0Z0#~f?k-Nw_Un?vIl6H56K&y4d+Z*oL&Gp3i}GQLR{YO}~1 z<#If+4@lO0RcjX1b4Oz6dPwF8VA#GV`qbmPZuYfK;PfLzXW&N1xzj6M_<{fE&qG2f z{OgH%og0#)J)JtC|Ck=W#yYp?E~{w>zBji`cDFNe5QY&JeB^1prnfw*?tTaH;%ai~4nr4-F}=mE6>Yz)W5MnVz**L`a8 zDx?}Az2l^j9FA$0()$+Qp;EhxET{^Q2N zqo<{3K8S0b%(SJ(Lib;NhSH-lRu;#285QbeC&%j%)U3o2b%ucoH92V8a1l{#&;-s? z*36;SN6|>GBF4-xmm|C92m|Ali-UVfL*8op0SWF%c7<$AepkyqyN3D_yc7@PdNhno z*#ZM!Fl-*?1{niKQAX0aDuSz$uXDqsxta2z>#0H1BsjoMBgcx{Th1iTLiT)eh+Rce z4~@>FPD9niDLB+HV|Q@oZFv9XWzuM{<`)_4njmYJf^rHAtEF_O#E{~rt_={lA%V#>5J)@=LZ_I^$!0h&wf|)y1*edR9|V2*h!CEEnRd z#an>`5N|PasC|d6_sHf(s)&u3quu1uW_80e!lLi+7SRvXuk}z0bq&a*`?1r#V4HUx zhsuzlPhUyY~p1h*g7^y#bA%hQJbj4$QxEzhXvVuu?;d$EwutBA{E zzmV-m4FzDp0>qLNFcAKoC)D<^AMZrTQtw z)bgyNaY1+KE8hjpflxJ-{XZk^tLo7a#N^2EFygAB)TzGHPwDB1QO`EG+H10jIU+Nd zoj4XpjTs?MmUe6aD7I0P3FC2<&V=OC~jPD z7HMsTo5a{bM7;=x$Ewl9qNcL?dp%3Z>BBzf|7L5WM-E(o71iFPqnNZ3tRrWcTjDO8-23e zgl4JT@CUaUfUe@hj z%R97E{h`@e1B|kh#qb|xY_21`EdQK-dFuh($oBWvqCVkdU}!2+PcUd`?Dv zs~5CfK4~{r{#JgW#$aktMkOUXY8OU>0h^&=*IWC@f>JL;iG-M$o6RcyqSTe0$8CQw zqb|>i5I;x)prZ&pk3I`i5kfl{K<)P;ztkM5g|8CmmJjXw6hWe-CVTUT&1}7O zwj4M#>&k2B0(jymP-K?e>xD1koa4~=U+_C~W7O4G>>jiM9=yh-RguBLPZhqYO41Wx zdQp_Cdp#|YTzor*0cQ>0dzM(Cebkh!Q^sC9F=&w$n8YGMo8L36&YOBArE!-si3ifk z%Z~V3>}_Qe$O|VQ4(la$sby$mvuYUb^d+dhOgWfvhr>cwF*K{ z?0neOw2%%@S3XL=fpi9e%|2M#KVqys)1q7r~BN&`M zvmxZGuol-wuM7r9Z7lFlODZXP5HCu5jFX*7IvH1#3KQ4@ zZqe&OpklMRENQ@@C{9rLNsnflx|_yN^})|GO7i<@Dqg~Bi;yXLRJTh}^Nmfq?|_}& zo?kqcwY2@CJ}8uns#;;#1)AgzPuUuqgA*1v;#ZsHk#?2M}NOCu{l zM>TI(7Rd>_^Nlr9aEG+dc7uorDG<@pUX2@vq-SUVHovt0_`+r0PBwtK*|u(cCW;u@ zrlSGdy^OBL%%NQ@J_6U%{sf?029^T%kWSn!s|pEN1=gJ800^=n=jn|BKW+i*k-c8f zS@!`W)K>&K;>v5zs)W>K2E4iRjlg9iuwGXHx=d*z#BnqAFAgK9>vPxj}Mpr*j3c`(%>-AvRRbB5y$N|Owj13zUCg76|oXDdOZX(`v z-FJ?^B(EC!+%96RX>UdxM&GtHxpycwUS&0m_C77eXt?x`J{6nI<-vb9vP!ph_P(OVpM&%e*>w5oM{*poi!B zm9VO+4Sd8)A?HTW>cOx?Yh(hQ&V7Y2T|~QT)eTz#_sCF3!oD_a@!kFpbJM^pCF@x- zdtweBe%!r(P_KMIqWQF86Y)wt#f{_P7ngaO6jB&)P)kX1B#{9LoPgG%I*c+ppOxWa z?}foRrx{Ox7Y=^$LpxykY^uVSQo-1u=Tg+ejf6(2Wc`rBIMh;{ZZ+=O<``LaF5>w_tXh!fmn_P|X1iSx zhV6;{%@#gg#=N^*)!~V5zBdzl3(A&Su<*~qxM4$lKNdP%=YVdqh zDk7(ZE!v91z0DS`x^m5`WFZUf$0kr-NgzG~+PgKl6CN$+>PBYk9SzPj>J)_su`Dru z3NHR_hMYs$u1FF_Tc;J-#C2-?X%TbF;4@u=7NH>j>~Ci|Q4U+wS0ND)xQKNv!CbuZ z#3^hpofLhSD47Z-IN>v~-@HEK$PxV{GAZaHVqW~;vlT77g*+OogV-+bn`}Gy{DjDu zSZ&zLtc?v^%}>1HIPF>^9KL8IEHEChcYsN^n4og6?6-BP+Rl0027VMGiS5MaJkDz4SFz3l? zciOjOI6{V@!_MuAQGc#bRt{hDVTxkzvR7ed#{sxT@1}!J8-OeIUi=}sMjb#`vrcCD zySb!nO^;+MuHj#nlt#l&QKEH}>_<}L{zW7cSVzB8^-K?{$ew*B z$*YqJ`Y03qfCUDDAH!$ceJ|L^%ye_U0a=9x@osi=tl_B@n8$F(`nnUKk zTSTmj?i{zf(vlNzNiQljp@v5<2(yatn>Y}X6JJjX-GFy6YYGj_Ki>V9=F?nxQ_wYa zB5K6!)sBwAw{<@I0Z{oP6PYFWPs%Fe0qrM6mV%kELW5TW?!jMQc4r9K9MV?+eD&3D z|K$sJHFUMK?;b`B|0&Us%-*+zt4Vy-x%zIsc%#(XiZc;A&XEEA(p~;zJiZS)ndD(L1Kf5k+&*R4c@~Gk7 z28Spw0(M*tI6*#1MI>2tg(98~&C;969>OOGy~*X&NVM2kQkzpu^X-7qr-Vre;&9cr z46p$~Qenh=3l)UjNu}5ik-|^9(&V$t1&?p@^Pz-e%xQc}iv4C2KI~k{gba(-6`rri zH1ka8nCL$Nx;Cm|d)<=Md&2khx{y*fj4~~Yi)BIVcTKQNfVtj1AF8UU2S7f;DL0o` z_({8gkwU!t}s;KmS5iaKD+nsWG(dm?w$-r1or-{>@{*}PC#qkH(1m~#gs2JR9^CA=$gPbb3#uxT))`t zI?W4jDeSPd>O%M>m$c89!AUp+)qqBNH+9O1Cck4ogS9t?{h+zsf6uRhmG2Nuxd+E6 zOzD*4rRwuH?5Tn7pov?0oIZFA(D^r6>?#x+^evy8KF5X2ICdiu$Q`x6h`KV>>PdSk zF}QIH|CB7maVFlD2K?;yX-LyA0#gY5!)Zb8?WiYrXaG6i~Ouu(M`;@x(_aTdriPE*tim5ciDu4A8u5Tl1S<(M`=4H_DweiCgN zmJN|*)M#ciuh8CtZ_0^B)-zOKD2cb%} z5Tn?ZtusmpBIvOHlr41~kLTe?EICVJkeel>h0YQ;PBbm`)>UcU8Atrwj#Md2&PFGv z`Ii9K$?%M<8jNEecY71YgU~Kr;QJq}nqrH345q{hYl7;0l&Lh+sZ1S0alEpkCwaIY zZnCh~Xf|2~lRzjX-UMM>s_gaoZ!6VKS47`4cW!4tz0u85*nQGXD z4k7yr@gR%sa5t#(oM{?HRqMX-mt1m(agKfI@H(QN^J(h+O>IcOG)!WVIHZ-pz(qp` zpR@rC-b*W=rC_L+=6ddC=s)i+E@^J9$C6=`#FVtR4y_>Y05J0XYuULM7j2556Y4<$ zdzNS@uQfa$gS5w_a@0`TLzZ^E*8(|k-ZdIN|7>cHT<}}32&IxJ?d;p^2ob?3E zZkOz1KIxX5DYQ|DSNfD6KeQHC!ik)}t2+tqgXj7(bVd!g&r|uoSagcOu`#)Tz?LFf z{(YK0)Xv`-67o?9*9Sa4I)Vr`FBK2 z2cGVVVqis-=Q#5c_bIaFGjuCP)YpMT&v?0b;~Un65#?mdF`+#}H%o|8?;YPF$d%;y zy=Bt)w1U2N)7InnLQ;v*@x2&u{=amaSE4Mk8AA-DmFml&FO_oZl(Cl^Fw z*SBIX%9~{vrE_At_+&4GObb+8_`stmOP|KGyM0GgZXA>T6e$IGD1UH4jceB4TZlxgp%t+%rb?3Tto{TK$}PxZF`41i-j z#~7(R8qZ$6?|u!#4$|E*`*q%rcH^v6WQz0Ry+QS=!&L1#~&Qqqx^*44PnoEH*U zc>AR|>GGS~>{1~eZ~j#~oFx$=$P+p*N`0osX>gRsBOEe(L6;%}qmWaCiWx>X|q-P;?TxsLv+OVlEWqfwN9{=~LGlQ~>BZnqzf`*8T^C$`MO(bOUgrrp>{aA{OvWEs0f# zCH#(Z5D7X*73_>EPs^g%>~1!bQq8v~CD0g#YFP-=Jj^{RA1L)##kWunZ{ddW7wa+s z!?(HK88gQ7DaqWalMj6vVdF@lrU{=a|r4PG92To#l7 zL~_kvTQ~d*?rW|@$Vc7Hs-!h}keKD310`rgs7BQo)<{kYB$~Pzk!GEHb1wF2N3OTl z(maI4&v-+tdVhFG?2yu1&2KFfMm%6r&c%t5M$Y8-bq2YOK(D`Wqa%PeSfYhRS^H5* zUX9&Y;ji}-Hf6LLHhAY_F9H~%jFCr+&vjl@MES;(?R*GUYZ$42z^GnK8UP02`zx7b zjytS`55(W9$q%(9oRVteX)2}ww6XCS{uMT(Tyj#ibskKKjW7e+1|kAN7TLeBtq-I) z0dd(dXtqC^*&2sGP*5E)X2BMH*wOeqb{fzH-&wx-FYP}#rD_pi;R%pVRr< z%BKlHflpM=oOU#Rlt#T*%@P@zu&RKYJD!nYiz)WGier{A&526yAeMHYO8qz^Lwrs( z+|~Eyv6OatFHLy)5Z%g=+yn>zbCrrhZ(vU6z(&X{&KOQKY!|f%WP8j^qudYjiH0@? z1w2y9h+^_3uEq9;u7x&M!YbC)U`SyU&J*;Zrq4|DI4q6ohb*_PnP>ap-9|D{v9#=|`kbvp7v(0RlKzsfG`?Qtx+%eqNIYS4oALa9z2d(B$&fl})7Gg0a-sP9xF zgM@@p%~D_AtRZ~bCU$q1X~M}krI+Sh7j7?;y)>B4?C0|Z9Q7LnXTgjv+nOvQF?i9ym@QCb5E{_PxWO_Tst zYVz|sK@{IT!IdLExYdPbED^avVK+3oaJ6Hsc^6kJXyoRVVA7Atv}a)?R-0xap?*2&$F^z+IK*( zSEm6LUUxBma`Bw{hL=&64)h0{uD>Q*1wt1q0F@K_#8|-%F@}w$dp!ql>XMB-MGmRj zys`3tawu|?Kq2!?pe?3v%ori2acf6vj7Dpp!go}jZ8m!gs2{c#kDac|aK=P_YVgnr z_@poiOH{KwIl3T{L06Rc-0fzyTtcFaB!DI$VmLfdM@v?yY+=cx7oQto(i(QtAFT08 zXRs^zRo;=<*b%hdosx6YD+<{M1qyMnG&RU?Ic2qT45SGe!7JrnYv@ATD=xXwiFNdJ z0Gl+>KV5i@^AF^K1YkKY!U-7-uRQJ2<=p`c0TM}HV5D%%P=`Jz7;YQVl zWpk-UvcocIsqq4xqZv7~;g<~}jcS^v$VfgHhB#gNMV>o+st;pKIhp-gOOW`GQOT7n zMXL&6Gq-}FTRqp7TUQCO|J|*w51~GB{HK0$KtOWKSki(N&=4@=JzM4KaR&56Nx+_o z9$Dk57cY*bP`!;LpOb_8=;YGB2cq6Dmw*~C%pc?JcE+irmjD&FtYEXw3vqoW70Z_0 zfo$De_{E4ZK0?;-oj6=1(|jl7uVY`@u%3&elR`5@c?3jxA6!yY`2kaHprap=W0sTk za$k?g1dNbDU%b%{G#W2~xQ4mYi2&h(yzgdG)s2duD^}P8e129auL-H0>@LxfBRsl1t&%!)ZX!u=$Nbe(hG$d|6Ue_2V~BWOrgTR62YpTc zZuHUmtLy41Axc1|6W*>eEqJb)9av<{^ym{Mlf|FZEl1Ns;G3vs-J>YsX^!29Y7KPP z-ZS-Y+c2k-=OZLK@^_c@Hvl%6auOfn8iruD6FG3-A#~(jZf?s|BW6&;WQ)-voj!r* z<$ahuW#Wc#Ivl*3)b9w?~PgW9#^`OE}AYE}QfM`Tdo9siQX zM&6K20WE^;X!W{3v$lD82~52s>y6QLcaGWLxz|}_X;;d?-Vg-4ES_yTHEXcMV`NLI zoZ6K3Rci|bc`=jUi7mzW!cilm0pu!ZC}D;ei~QDuS(d?VG*p)VMd!+6N6g!3x}3pL zN_4<&LBacJz)S0r>|NXQ5%MxBsNHJ#Lp=E6`Wsji_57}hP3wqN2u#b>Rd)@4#9Oaa zr&#pW91uQ%V6xh$z_ynbF?8hNojgqHCyX*%2JjBU+%T7?j~?@IYZ1bcCgA2 z1*H!%$2_*Ua;qQyh({J}<~T@#%x>V94*`#1f8P>8d`ahWa2T^P3mz}4y?{3|t2ESl z{>#%&+JcDd@LqJ~D=r?!MzdrId_8GDcCV)~iD^$7GoitB*Z#(bM$wISe69@TiU5=qZ8&uEKlt8_8baO_}n$lP$kGvxID4G{%h9 z54#_w9!@_dZinsn1flof;s6ES_j8_ms?K9y#+Z8e)A*|->>3cC2r*nmX?xYC2W3v) zwqo=7qqn6yBbIyN)K~<@w8yLj1zC8hGRk4L4>m=+C(~a|Q9RQ^R_QE0=rrat9q z*Im($nL>uiM})oS_#=*FqV1ue`t}3!W89~osGcN9^Fi|^nQ$&F9P_*|1h;HY?gM|z zyOICDDdEr=Qd_BE;ON9sgjQH%t@~VgV#CJjR%=60Pf2Sn^iDw{5D|*``VaM$a3;{7 z-Xy8?Ba?kHcMEBRCywHc7JjjqhTzdYcZ$r8xM7SSKUHfIMOvhCznTL=n0>HyWsm+h z$ohM)UN&)RMTT$J6+Q&kEcxjVYciQFrD(2*hjv#cx4s@0@aeIP@=BIG$hc=M!g4Gv zU2D&iK`pwYTQWZVudGnPfP1$3KO9Ln?Xu%RNsprG zJ2;`^W(igghx9**QI3)dva;QMl(Lwl0d*`7?Od5~?o*KAT@H}Z5SU}Q$hq=!~+$eSc zg|u0owEQX#AZ*r)QQqbLlr{;Pr(C|z<58(oh{%}aTvY&*~hJfbA06c4)gB3PrI<8RtB<0#%aJ$YL-N5PLID~gN)?Y{#j7PyR zDH3rWO^8}raYp=-Os+7t$~D3nLb)Jb7YWAWRIrXW`N5hPka}?V;{Ryicl8Cw8g!`v z`zU(S9R$?FKnVh{BnMJD^qbS=4;KX5F6-&hu2@YR)TMYp4dfUYo~lzlGSaX_Sp7uK6IKznpF0lv4W?G)lpON}+Ck zJV_5~>_|CSAPO$<@X0OO=?D8I{KNup13Zfhj_=v9!SkM-{f+hzZ)cFlF7qOeUTI_#^=Z|q6be;9we0X^T;Ja z)9VAS{QF9AjF1-iD-^3r3NRN*EB?3Umr8(HUuSbM#r2IH)_hXcT00ZNoR5iPEmFbU z%`d+q(fkeRa!i(g9tR<&(1KTz&8u`&q^-^Y>vYm|)0k?@eO;ZSI^^0y?~y ziIjCI(E@q@j%f0~=5#SvGM|4Yi-%CmMyDdt_(|E1B4`EH<_<;8CcM;|U>QX4rGYnQ zzyN6L+q3lOkARx6p;kNcL!_QR*hug$3nMT#V=W*&mXw~6Z%BU0)f`A468mdJNWsG* zx7^Nj08y598VjP3qHicBKND8swyqk(2xCwlrEc4j6ySq{IUJoEANe*B*EsuJ?MCy) z7Sd@qP!4$QWsRX!M(l{-bGgC+M>=3c3bzarUI(U)+@VTZ$<;REgs{BsvCBGATAz>u zs#eTLr@`TLKA*a}DqNo7VY(t9AgxXBtip;8DdN0PldV}giDr&`G_R#uxL61Q)rpJ1 z_6BEb$}F`$hE=2*k%#@tU@3{S5>TjUy|8uGq5$%?f_AG^eJ*gO z)V!D}h@)qyo6vKuv~$XV?aM5<+~#I^^cYPM1=@jqBZ=k;KBL#|5-fYiEl1mmR{>!= z_hj@87;_sd-NmC3SG}c~r$G&sUGgj0v^<-cA-X3bY6kL9-J%)^j#1U;NGZ$9gw`ww z@^+(D>Rob`)hS-hT+;fDG<}u)$N7S%Aw>mU1nPS59UR%6NNuXWKWs;(nCg8;fDIv}`V-rEa9`$t62u5`AxI8~1~KcjI~D zlX9~Mz@UhtX`?!O$%6Q9la9*MYS>FJdQ#vCD^y)qX4LSoHnYS@pVfiwlL`P=-N+kH z_6X3(F=TToTv-mgE32IkJb?B5D4;JB*DA>OeH`jkGi*azL%D|@vO>+Cip;pH^abEU z?OIP`oxcjL?~KiNXqUU+J86%`iWKcVON9q@Q6ghrtKQ7oRq&so0<_|)nTUsfLY^RJ zh(R4rfEx9xpl4<(&J+0yZ;o>;8-HXy^Sw) zy-<$@q|qH#i+`q?58dQY&4LQQJD(@zv^~t}Z|zq)AwC78W}c9B1qCclW&lGtr%8-| z^Ij}qsZt`jFkEVs$yZdhnn1?x99(8A0veI0Vh~(@*k4*Td*osk`W*q(@JjoMT6JUm zhGqM9z-7l>rTIf`xCzvK8ZLGS-`5c-QJVxZE2{XbShVa^*2Mj5mlEA+uzAO^AeqcE zobS3TM-6yEgQ-IZF@z3J0|8y(obZo$;m?^|q!0viQ5rpGk*uTg>2JJ#ZIrV{{*y|{ zPlZKU>UUp&^qGa|!O$kFs2S*^Xdix8Uj_5HG!tlIH>;F}yn01-*$hr2(K9S&x<{k3^a0S1lty0{GBPw zhn3h6bdqFO)P#gvL1f@6h|{ONgHWcLV_<7+Uf$0E_Wv*Q-%F>8KqbrTQm(R7$jUdi zB(nF=@5y|!*&JHzRYrA8e_{Xab=&ev&?X}IF2jzwDuOC-UkvrRkI(Vymm~x?{Z27} zGZi@(t3zq6XH*Y`7~Lym!h(L%8-r^m9K7D^z1~wb*aJ;GHNH8tc;QkHq8F5ESK<&R zqm|jOGy?ldy{YiS6ba zJO~6KZDoRLB9fe(qn&8Gq6??5*`#p6goWO( zR|33|IVy{|>XG{jAmv|hqtsN*E-0oNqBc97oI~iVS!`<$0l}uRQE)vINYVND&NV-N zL((|FSVpTP(f7)~Fd#(rCLO2DY1{!rA8u_am~$MIL5x_S&Vnn45X%weqm&YVyk>_Z zcg#g`R>MZxV?o~ILtw8dqIXj|preEa!*!_y7tj6~?3A!V^ z8r&@le$sh&opL33)eV%Om4AB33s#fgnf86=R0So;kgTF3m+e&b<2v;cTIMv}wwp9q zp9B6C(v>ItvHkv|ac2ZU7Vb(HW-&>eOy*d@Y;CJ2*mb>Uo<`^UR-FUWUe$ouN*}FG zPxAU~O=q38QylTJw`~iaF0_cI6SDGR1~AXUCn<=*rNYm-d_vb%4CxNCohyXGi> zux9TbC3DV``I#8w!ifV`yx#peKc}7qaY*asGk*ae>02y>GfSL z3^#GEesG%JzqfhSgCtIYpx3GIseQVc#wJ4!*JH^&*B-`6A@X^JZk$RO7VL~W$|Z16 z*cUMt8(qVcT}kI?S3B8L5m=BC9~6cWi0Akp3Dtzm^;H%>nr4Ze7^LGBeVlRNUZ$FE zK)OknwnJPVLX+`ilzfJ6sghxf#9^lU&oS4fccBhmDPU27muja<+-+L>0b}SRL(Yax zeK`)PPgYV^ES{UXMd^mlFW{n{1fw)_VEu7~`n7j$`YfPtZyV{?+UVV$V{)J&m75vd z*r=>UA*el{2b;k!SlDl7I9$J=|Hw^mrF)o2`{+oFLJ2ux9VSF29RZBZO3zzx9s!Mq zS1IQWSNUhT*txUObXndy+ao8hwotk>X*z$tR_fDkDsaD$qaU#3{{W(}j6(Zj9Vm1| z1k{gqlP4}klx+#rs*0Jm3z*HQYiGVa=GtPQQ+6>!c|diCBwyd9aco#R<<+uQEWa1! z;n(<2W5jF`i11BT$UHG~NsR+-!o@l(@!%8Uj$oX?yv1B=QL%sPvEGRhSUG?yyXUmI zDTb&v1wE7uFDzVs{YWhI^%BEli>+SS#>UXvZeW5Hr`tYojNLB%e&Mvf>^H-` zl4VlNNo13)|MZu{NT4asd{ERShh{)I@z5E-dxdZ0RyxLcJjxkcE<4u^4Sics+|>rM z%v+Jf)9HsGSQi?1YVaUx1o@Y6DVk-A9b@<7Fv* zIOWjH+bE$2i`R`>NgWq0LGc92{N^*p8ZZdJ6c-s! z+G)H# zBBq|k6%>}f-ue-(aZ>2#B2buJNJCIc?t zST)uQU-XD={qt{6@qw_vbt{M~oAa&tJ*pl^*x}l58b$ZVb1GlG0r^H49vFzQhE?L= z^X?`k9k~1*!a#6h%d^Xz>s8F(cTXQh2%`g7FfcR;{SBxtq=MFHcOZuVga%5^|EP1< zg(&t=9Pc;bXe&?WI;vG|cjXUt--2hGs%3{}PAt*``-f~??$n%TLF!%+;~Y%KEPVJ- zIRs}=Xw_Uh=FYq%!;ve2!Ajpm9FXlsjK!(78I@>6auF-a{ zmq>01E{UMmq_yk)irkF~koDmR`+i!7A-G|0=8uL0>R2`PL!N9aeEUT4{{z?xuqB!! z0eJTT^kqmy? zqr|ZnHFdeftC-OrbhL#Ka4R>qj1j4f0d(b|#I4lcvn_JAgzO1->D?vJ#vM0C5zCnj ztHP~|Y(7Nv01oisEnZ#|b|JS9A(TWvh=9>jWIDYzJy74KW=fhBwT^O+QX>1Zn5CtU zJuT8JD4AwGElY;>+*E|QX$}OSSbh3OO@+uPt1t=Wfj#*aqmPN(WtsEfe0a<70RBte2Eu=vxT><^tu?FzbjOZ2+)SJ(Vz-mZ@UqW(2dcV)mV3F z;{8z-@>rZ!MYTR=LxBPWz&!G9b>I!43SmB2eRr?-{#t=?YKPHj@10c9X09&JmE>SS zxxNY9Eau&&yE%Cbne_n;NLsvZWeEWQ+PTmK2ny^#xgM<(@2OL-?x^F_{wn0ZOyQ-X zTm2BF)$WQLGj-?!u~s7!J^k)h*eY$G?+ry8HmQyP4ZB0P8eE{S_2^LoFkmu2h+s*$ zGcjK&`+P3|>Q_Turzfahn4kQoX1iS|kd|4%1Yj{rTi1R$lm9&QgJstHk2ryeNgTTI zN@?+&fMT=^Pv74rh+SeER+=?~$JLybb0iw=xFQhHgM!0`Y*itIpsBvGJI%raN8NAN zf;tPIRMu>09Jp$*jpl%rHH%EXw#ed$Tj+yuj@H5c^w6YMp+BS5au0IZ@ReC2jHF}y ziV5YX=#k^1Xc)#s$n105YWiHqHBW9Nr_#1wBfg~og8m?FMZtWzW42$#O8 zx@Y*APL}<2U0*SRSL}_I;a;yesCPGXRmhlr+&cf6KGM6O6nnbnh^>4fBZt& zoIZnpEQJc|cO}-J>~-?VF%&Bw4`jo-F=FtNF>s&kX1vpJohQ6<&wCUycRUdnj;h@_ z*lM*M)*{E0C(PT&$1mKgsV@tLw&JAeueCa)%~-iw7@PZBz~$ALvuvoxAU?a(Zd|8a zcJwhE0tlZRK2o`8{#?buV+TQGYAz8_Rj(?ve?@f1H4m1v=iW4$o|u2wF;Tki-q@nh+Wwo=zmNfX4GnaZ zf92&&-?>57hm>*EZzFTc;O9>-KCkPNP0<0{l2u>ZD)qk3zgVB%rv?67A&J~;`-*O2 zp$*Y0sa;F)F5RdS=GH7e8XgSugHhn7S5~u>g<4E21x7c6TcKeNG zWObk4ijtV0Kl_>Pn0&YLZ=97+zQaVTCH>(^aw0~+lwb2Ig}6kvuIGuyyrvGHcc>)B z8u_d6NN<)hF@uAa0rfT^bt$hj?VO$d}vGb{z?~(k!n>D@8a4 z!B3JEquO_`tf8r>;>@jzcP=NFRbx_|63yBhEFK>DGi6y8H1J=0X9a?do4Irp@eiY2 z+CQ8F;~EXK+4CQv?nSmbG)@jaQN1<;Xr(rTvsQEU<;mzR&H&_BW!@mfM?hVYJ&m@RmA{OA1 zfm6DUv3zUll=(Hw=z2M@!K4cTe=eu@j@pIX0AG8Fjrd=q9ZSX1J$r>xPJJr}ln z=o(Z>-0d_DIv03?af#e755Go*tGoxBbR|XDmx?JtI2*k5CR{9jS`DU6`(CQB!uUrx z^jR+VSee~4ass#O{D$Hr*BLAE+z1rqyUy@#?Rz(bS9T49=#yy0Zq9i{J^%p?_b-{S zicIjQ@|c1TD2pQ(*~4<3@w^=P*gt({PB$vL|3RhX`E=m6Q;^vXuxE%Zwop-Eo}PNd z8wo<`u>vdH6{dP`6{`;fiNIQG56IN+WtII$k%nG$nvCF&)&+;maM5j`F%c5GRHw z@eG=Erv*2i^x!{Dfz^p2sm4+=-v=(eZtowSmw10N`$VWcq7SeXMrtw+S{b}Ct4KDZ z+@sbCq8G1V;%H-Gq+fGBtk>o2!dGfxhrBAb_Ju?F#oz`KdShGga%LPK)(j@A?vIUMRL#qm0X=Wd$0Ic+Ywok90}JlRG3lh+Z6e8zVA&v|;F?O~OQ7dfU8yCgaF zq+Wxh%sPZv>%<6A^VzJII%)%-35$D1jfxF?-JLQ%r;#w32kH`JH)m8S#B^NSOuLY8!%+uu#EDiGRP99E4xA#{E{pjw)DV=?F+yc)93gI^1T-U^S0 zjU=Q>NSV>5U zb)yG>$IFm^vY2QrVMba|H^%U0fFV5n5P@Jd{s|JRq|I1c%%r){HW3Xp5aSemDgLP_ z*@!UI_}=2~1l+wk_`VH+Ug@Mewv%JJiW}N7&ZTcXq~|$r+FtXI9T{q5vAH%UtW8?$ zguj<+#H8&#*_1GLBJViKV)@~QLBDHA6enf5=Vy@IJa`7Th|i}CCpCWHQEIfSa#Nv? zOZoj>{ckQ~s1bcjGEXd1qi3+L<1*)dDwn62Fa8V_>a4w9Z zi=cLnUROwcYK;2S#tRhMO>WIhy3R!Dn&Ktjhe<3t-6w<$wH()i_K&DZ{;xE}&&tZ4VC>ZHOTEmEsE?Z(bJb*5Wl$ zjTi3v9-VSSQ`I<(APgTmOds@Ku)bXr0g)bV;p0y=uJf{=jd}sp21z3&)m7>UBQm>% z1nq39LC^qp!%&rL9by7!6+=I5FwxvDMUmc?lq?zs1h30#=mwIq{_BBniWH-p_CSE{ zJU5SY_i;NdY>kfYqp9~|TDF5Axr`^^)C)HFk+7D{rlWH%w-<1rNH7(l6qOAvlQJjt)XJfs+>Rr(D(m1-oRO81r-ghwDvR~oA- zGY8U>CUJ?&qAeCkM8;YuC>~07Me9=>w7EWKxyfUg`I7R%7(Uh^3dbIYX82|Rv+yl zSN0{P=Hg+vG%gFUa=3a{uNo(EiOe)>LXIZX!r7+CxSsNM)b@oq5qyq@EYlViU)BMf zOkZ)%cV9}rV6d1MR=m9Yu^sjFT@Bq4K}u7Ryki&`WcMpizB@nyMlE~m$BKw6uKw-T z-kXDd_mw1)GmUPuESsn0Jn(I&eM;zZ(YVy$oWOGvE0~zK zPpRPFCKH{K_bnMJx0z)phz+!$Or^YoXO1UZcM2X(z_BKYOAhLGRL z<+zpOiG`rOwkMog;aVXB#$pwz#ZC?n?;pWa_5H`eAkr$;8OgJmVSlB|W5_Ndz=32? z4U$>7t~)>%SYXHBX3y*WrbLd=lZyo?aL1>hiHNagF31@duawOOo;{7HCn^7lt-``Y z9`5+c9qgh}DQ&JQTN>2xEVvXJvu*#OWnJFnRt?w&%0OPrvTru`js!CPZ%>FOYn$T5 zKb)&u-`X8sWK!crLAJ)Oi?ycUzzUEV*lJ|*&|o~7V#TAPL!xU9dn*as^tBo9gE4Vw z2*GUYIHBqpAFd40s3Me%w&{Ev+gplOCMpr!pIq9_Q+EQyA!qh!{qj^fAsoYUVw5xc zt1eAG4w5wf+B!qPGm{*kY2WneOsD!cC0bP2m8gC|=yTVIGBt+^Sm5fp6Z{q1>sQ#KSF>}Vcaky|){d#a}|=8-BZ~vqI|YPpLM06Q_*Jq}1l# z4SbFK$?3xB!j&!AnOi!WGS7H@vFdnqmKi4YOBqs?pc6yw;@l+0TLuM=5{v_EE}q*} zJ5ZHED(p@RtKDx9N7?Pv3??ar@A`>vy*K?O7O0VQTN*-%JY!th)wKRtTA9|wgW9-?KCG zQng6#PAKuv&)U5N-#Z4kp>agwE%g&=AQD#01{V$)y>Zz&kiU6&>fLd-HJ9l2 z$8^-5ca~yFlD8aqa%q)D@x0sP2K%%#o82|eN@KIM`Qew$j?>noloU_rCEKRAGJd>)E_0GgnoRDa?PvYy&&8Enue8exeFjL^M0e!twW?- zd^(J<1>$ZHc(W*5PAc>YS9O+0>Ber0aVn@&!~RqiQ3QwM7LVDqKeoQh?IT3brmd;jUW#zl31v>ni9HwQD|Rw?5VVh(Hq9 z1k0o)WpUYixfmd4^)gWmTsC@#57(oAnnrAhLU)4Y?n( z!_YWZ)j08A9!*IK11^Lt?l|$+^*weq^|5T_`Mcsm@Dko>ia8r;9h-VNjfXym1H=A= zFWxb(^O^sb8Lp1$8}RNunW$fCXnXG8#TzyafXY;77KnU-_(i4yScn-Z*>x8X{n+)z13OMZwe-26 z)}qqJ2jr9(j4aJLayM_lwt*E*J@u4ya3Z7*IrpKiScPbN;zrXoM;L#y~li9&3PxxFGydwe0z)r`gM4jpY5f z%BdJP5`qcHxkDG;jp$sMZG`y=KD^h<(cgARDs0<9FhTiqU)VoosJ* z+=oJhn#`a|8+-ALWf`_x6PyjJ2mW8ea7UzNkNfPq7Y<^6&y=#V`U=xEMMeWXvVHWXkbg`kJ^B4pwqoFHy zY|(g_mX^mfwL)Hd5b>^>|3^hrzB1ZjOGuEXJIUxQ9O(9wU84kwAyl@a>=sAtg6jXT z2Bp%@!+g6q0hUbM`~RQSNi=PR_6bY-# zbDDo$l(8~o2MOgRl+F?2C|g@0U`3MKPdUetO$IaXE{rE{DSvgFC(^Tls7DWPq;5JT za0V`gjC=xHVwtNXr^#$5^x%92Sn7?_A>$)!?sUer-s4xA$E!Z#s^G=BvsARko1N}; z+7}$(m(sWbRF^=QmxDX2PcJ$w6LHJ+G$&q?Z%*mMKcK)8*M&2@-(&@1LJe-x@|LyLm`pA+bo z<)pB4lkyu|$o0EqF*S19+#!Yk)2o2hG<5UyAidshz)VBI&Uq1Pu7Cz(`M}9F%Af+T z2v^wDo+i`Ex3 zZN2XFWzcNo<_D#TYnN9gsI>-eI;@k^ncIE}>NX{TB2XQLgi_ik zjgbl@CZb{SPaf~(#8h2$hx`G36u1OGE0{O zB>~bH@-$~9I5jw}$Y!Rs1OfBzsqfpLegIdw^5d)3QsZh!CgHpXP&y}b(+hUIwT^8eX2s#zlj2BF}2^|`NMOY#mrUm ziI@SixCAr5=|u*XrZh!ROK?y?%2ywO!;*~fvt(&!iz@{&1C zqljx{GqVF*gU*lYk1E@Sc$g4FGfSd(-%&&+rV~y3tH;F8!8s+j5c&LfN&pV)2UC9< zhrgARc3fK;Cu%tI?h0q)|AtY>mEWjf>DGt_Oi@?mI=5cq!_=Cc)$tv-=%2k0ZEgj7CEks98E$z9g8tE@*Y*iAR(n~n)s`6%=@i)O5t5xH2DZqhDy>hK=&0`B%n#u zVFdpEij2>*Wm7UzdViF2;oZ#J0obN@-{rMuS>sbf+lZQ#oa#=3m;aHp_oay>_>L zXyu5Dzx#Y&LeI(N2DtP?Q20%F=FHK4SeT+oPDXvW@uM%T5R5^=JAfCtmUgKYhBsn! zLs*x=IgVphpEeWIBdJzw2UMDi6Cd;*2w-Nop{YEd5R#LGJ)KBQLzLFK&VByV+rck< zw0^)qqATjBp_S-?G+cEkP;>G;ghE>t;5L`ypC*DDeT~tI8-IIu;2(=}D@#-Jr1HHC&J@dPGf8@azc-F6pY3 zTYNp%WSy5qKqG$9Jl$xp;b7;NrAO)&KG6A)33I)nhPTO~1oc-foCWl- zjR23yRN)LKYEKI?(=JTGEzx4Hs^nx1c2>>~#RVEfY?a+pQvPc! zu|Bi3mx$z4Oy978?#+jWdQV~#nx2U0^KV$T%tuw(1ADM+J81zuQ9oO#UX*CWTmp%= zdh=l-(T=%020!pBMdK~+z8xpo_n( zoKMPiD7wT^PzqH25JOj14Q?lHb<&S;>k`bIu3qcyQ>MjzwTD|fkpR#Pn#G>MI5*Z5 z7|aF*LvsvyAZFJqfie2(-=mn?xQosOKa9|g9$*)FPC-NOP(*)Ql5J73iaxsbWdBMD zKsB5*jEOgSr9I8N7~S(NQbJ!Qz-5WGb}-ajtoIaUPqu$aEQnedX7sMvY_R67{56rm zo)JV95JnY`F(Zuk>}D6T;8EZpp&Jve&ECL3vFd;-57x>=SSz@{(vW#e=CeBCmN^25L-fhm2(mWKnv{bR;&pp*F=mz1hd1v#Rs ze<9URF1DfUB@;MaD0HP{>a$#S9fm=INdn6LL9f#WRB&l!DfNyh*>u?p_jcJEZLZ#` zctx2UF5^`xPmE|yK~I10-^X+{r`~Bipi0Py)dUCm`Q^t{Ycq73Y`3$9CWQ)9e%|P+ z*3!P7LiP!9%{S=5e<*PIEg;_o`O9`y-X>%3Hz1;5;kUo|By?LvTq)CtO4Q}zTrm4g1>P~+8ta0*HHSEJN;n)BGONgTIIJJuY9YB^l(Pj6ez z2LZ2fgu56COT}%7EbUa0s|JR$Bj%>Jdg)Rb=RYn=1G~j}b9RV6$MH6@$nsTPRKc1@1OyG?pSZ>D8z-L^!qUBeM?sg+-rK z-w8#v;lccWcYEJ!?HSCF29vO-;RvuiH+yBfy=>>nL$8cHeOhRsz$~nyJtj%->9vot3&kd=H$dF z6_F}1C;ZG5N{yTd$|b6>BDyAQ)#@Eof+VAtVT32s0z=LSssLMrd&(|iTvl`{{mebX zhJVn#c#D;Ql3QhrQiE_MUy~QZ@Fq!#dEiX$+cGDHlYGzJk6h9aUr$c%TCVO82g8U8 z@7%)KBG&-z6Q3J8DvKfNcd?^1Fb}`LhjU=Rm0X2Of_=Ha#a0anjA2>Gb`_ozQ#zi# zTIZBz*1Lcxy@uU)R7B6WlwcZ6qJOcp@k^~c?=}#D-~lh~Tct`hZ|y6lntVI-K1!XF z8K$c)y4Zh>w51B?Pv=hVHr$N$x}Z6+`at%d)7|Kp?+D85qw&$s?%p8Ue1-4WJkVdqi*I`nnF1IZ0J2Z&)A%m{NT}PBV7b$4wPu9zD!Jx*aTt6eykm-Ey%xG9 zM=Zgo^ZuU4RXEh>fV+RXD~Tr7I46LL)^1V4acri*{+@)JW9mdn`lvo(LSpgAf!mj4=Nj~{Hm%9+c-yp5BCIv3kJ;i(LV%)-%!Gkvminu- zR9WUXtazH55V6or9b41ZFke23<4ji39Qbw>*_ZLPER4ZaI5WpVqCX9=t$9lFzKOC; z15Hlv-~J$wENmya+5)+w=^C|$fzEWlH0a5ynuO%jvA*fKk3$)W5+bws@)N@7(>iaP zD1h!uK#QLGMaZTgF!_87@u|P)Hkt!9e4bR)e17|Kfne$*KS57G`wdAL$Gk9e=bIrf z7BI1E%H*f1n#mNTd`}eS(L^V@srS294!=Vs#Cw{|2Ff~6D`-l48g8mfhnu9sWSieZ zcxbYZbF;GDipUyB*TYH{8yTRVqtAjA0TMP1t)Csol3N~t;)m{;L|$X&uHGNfwD!O? zHV>~AD`ba5PI#R+PdZ>Ab-*dFTB@d@bMqia3mvTR`ftR=L4j9M=B)^UWL?Qes|;U) zZFG*i5Q)$EjVFp~Mr~=bfC6F-d=qUTnAkLh+;c+|a>|8$Lpzbu;fXU9xAc2^M|1%5 z{HL=QO0F#D-;;wbW(0Ui)uK}+NJdXAck&v-n0RV0zLpUU<8LOiJ@Qg|X*eRV<40x@ z3sY5TGscf>rBx^Pd2Tf-5+C9Yx{KlsQ#CI}uNuJ0kDz{?uMGNCe@H&(=N=AxGZ?v? zt`o4@^UHcCqaHL#Ad8!M*!NnkS22~Wc_O`kUC7I2;OW&=Ae~t<5X0^P*do?l&4J!V zHm-oA(G@f&4Pp?HPY~Z4HfDsn@##-@apGdeiRy>Ss=grpF|Gj;YhBFQO_LJ0$>Wi& z-zE;KnE~j@tMyBTnsKaUa)Fn?!pja;0g8J|dyWYlDp+Xe5KIm)s5HrwG)97##`gPD zuk@Wo$pcAFTt=W0yKly@E9`)HC*cdKbYT3;WV5 z;2JbH_cYT!qF+Y%Pc6Rv$O92G=Ms*jOQN_c2lU6H5bm92nUSeER|dnl3H2aR-FFcv zgTTr7Va-qm+VjiBmI?8)nfuqsA%&8kN)Ob!k_KcWoM=y8GFPUOL}E~Ve!n~8=p21s zO!0N8653Y@Y~!hw9Pv5JD^U-(5vuNu7)ZcQ>eY+yv_OfoIx`h9a9FO=QXVX!8uP%< zH&*s;9{tnWtyEmEDnvJ%DHBSqaKE+rziRzTSEAX`sQ{<*go-%vlC}?jzA}cQKS}!& z-{*mZR>Fb}ti9R3NCW&HkUd@C`W(y(b(-!9y_+MbwXBj*oW7>0FZ0Y&G=j7jsusv` zTAia07SIJI-DYuEzgA?s%;EKMbZjOvZ4rfztNvLF(N7xL0VF+%K}y@d+m^ycyUQfU1y?SI9{N26FaEwTt@9d+Gt1 zy=9OgD~MY-z?$#{2pSpK?9rOPiJ}1)-)i)@F_qs0zaLgxIztVm;GkbfW@wU$-;aUSX?_1Y&c9w~3XY)wY<`$S|GItEz9bH7Fw!6PvO93N?y9&_oaxX3g;j(nH(kAuG1ZARt~T> z#nfAQ2x3u!!{BL70hWnj<`agvwFJVNf?}n0} zRuX^(3Do6rf@qD?P+6YC2%MuTaR{1n<_YKxePJ%-zqEU>61>0$S5xDMl@DY-S%%?s zhlStQyd-Ih`%8uJ{aNNL#vE6$Wa=^vpdOyad=xvQmj38ANo&w^?h3XgB2WW1TZya9 F2bPD`J#GL1 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260607/20260607142001-Config.rsc b/MikroMaster/20260607/20260607142001-Config.rsc new file mode 100644 index 0000000..5d8815c --- /dev/null +++ b/MikroMaster/20260607/20260607142001-Config.rsc @@ -0,0 +1,3391 @@ +# 2026-06-07 14:20:02 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN port-cost-mode=short ra-guard=yes +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.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" +/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 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 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,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes 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 default-route-tables=main interface="ether1 - Unet" name=client1 \ + 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 mdns-repeat-ifaces="ether1 - Unet" servers=\ + 8.8.4.4,8.8.8.8 +/ip dns static +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 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.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 +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + 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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +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 +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" disabled=yes 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" disabled=yes 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" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +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=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +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" 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=yes 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 nd +set [ find default=yes ] disabled=yes +/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/20260607/20260607142001-Diff-Config.rsc b/MikroMaster/history/20260607/20260607142001-Diff-Config.rsc new file mode 100644 index 0000000..743c738 --- /dev/null +++ b/MikroMaster/history/20260607/20260607142001-Diff-Config.rsc @@ -0,0 +1,8 @@ +344c344 +< \n:global CommitId \"main/672/7cf8bc7a\";\r\ +--- +> \n:global CommitId \"main/670/7de640a1\";\r\ +347c347 +< r: root, in 14:35:04 06.06.2026.\";\r\ +--- +> r: root, in 13:30:03 01.06.2026.\";\r\ -- 2.52.0