From a1db5af3fafd2a122d6873626bbf3013f62fdc33 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 1 May 2026 00:00:04 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 01 00:00:04. --- .../20260501/20260501000002-Binary.backup | Bin 0 -> 362395 bytes MikroNUC/20260501/20260501000002-Config.rsc | 4181 +++++++++++++++++ .../20260501/20260501000002-Diff-Config.rsc | 3 + 3 files changed, 4184 insertions(+) create mode 100644 MikroNUC/20260501/20260501000002-Binary.backup create mode 100644 MikroNUC/20260501/20260501000002-Config.rsc create mode 100644 MikroNUC/history/20260501/20260501000002-Diff-Config.rsc diff --git a/MikroNUC/20260501/20260501000002-Binary.backup b/MikroNUC/20260501/20260501000002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3902a17dbcd0c9872cee6000aeecba9a8d162119 GIT binary patch literal 362395 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�b&Mizg&KfO_kaa9@Ek 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
3RJUR(G%Z_AM*ky;*i$_SHlZpgbiT* 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ⅇKI#l1r*T_*;_@eWzg~Ar754r4#8o4k-){m;>_0 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�aSf2;WTGE_@456{6f=Gmtocv!Cw`wTrD7jx=_b5_1nSg~P zG-JuIW*p5KBAT|t1pT@(=X*4!CRr-$QMrfYU=xg(FP|O9#9D_O-2wy6EG`<@R7Xpk5Y2HU9T^fm4-7{-$gzpMbGm(&o818lo#GjH(e=48c zq?l{%6Ao5B&-pb66f#8@OqeQcSFg(en4=2t%7DHOBk?WTenqTk}Ev#0Ulbiz`k0Aj<)O8y(mr@*qk- z)7uJ1lvwTOk6||%nqlR4Zpw!#1Nr|6Dz1;X}?;3Z#Noap4~<%gAH3PYSvZXFyZ zEB_^nl(Knh1>fvLS92q;fksx%f7147DcP~c3hwy0+1{=&y(*TTRVfgh+UF8; z^$f_G%ia=lW2P<&^$(zEVd)aF0}py3icTQ$oyiu62yl1T-g^OBV1e!0H9h)T>A@)p zDtOfY*C4z1_c`#ZX>$M@nNuix#O*tL@cf8v7JQF~mQ|*eEvG@DIc>@DT1?w7U$cQ2 zT#E?z-TIjCnD;h2UL~>5KLrMS*fd`(cL(vBtQa|{9=jcW>M|8}+PDl0*4nn$!!t631Bam>7R+oUHj)|i|uFU}A!I`MpvYny#i zE$wu`iH#E>?CCh_WrwBpU9EA$R1`e+t*}KB2sqmp93$V%P#_RH=v*^c(lJe2s`sdY z*h2Exh#8b}fv?jmVC#1z_&j$$rn{Kx%6K}oT=d+%6A%&sZSzMlv<#s6H+(}k)zTwM6f1Llmp zZy4Q>>88SQmZOavE7#GDS<2Hp9*>4KkW*~#UzA<_@DUj6Ac$H^lg*77R>6oG0^QS2 z8^5TO&z%4UqpYE?=3QYvaBXyQPQV_DB_*A#uxl-B+7s+)WzV=*cGmr1Ka3Nh4FJA@ zD>D^2sugOHhx_^1swogfive-a0a?jGKpb6uAlvH+Y|3=X`-cn<>a1#CLtc|9pHrg{ z8T1|Q*Yqp(T0Y=O9ya87=X7cP!@--Jrvvgu5x)qlLv3F3k>D51jy;c>lpBEh5{19R z;qcMEr_JyT{_#fureuv6IBvgSGQnO@d-sRG9+WU>dM0-o;R&@vZK%r)aZaOau+)HV zhbi}U=}L%uZwK~grWZ{sv4qb6lV6 zq$DQ7%ZJ>$c7UyId7^UH8KH!~Q=jryWpKyX%-x7OnPN9%4qQvZr{iQ0Ytt-buYsf7 z3B^gd}Hd3Nc+EnUR8tV+3rgvW>@kxMD?5YJ`X^{7hsLrYYXGE{1 z`gACHE7jQsKHc>86BrM)@9`K#H^XEDJnIcbi4=A2(PT?$WqzS1Vw>%J;WfV z<%U3toDSW2;~an#p-Ow{J_rN_H-ILiekOQA>g?T~Eo;keZsDuq#T&Dot>YYAIFm9L zKGVJk^5pyuKvHQ#q?2Q#baI5RB2Z0ewmWs#r`?ZC^h1;uZ$UKxi}2V}qMug+<`5`g zfV!=Oyd%LatO*n$c|C!ymLtM^9ZwLYfet{;)M=XZE3Juymz`7JZ3pbXy%N}Bag4AH z;Q=1u%yiqmi>Ev|Zr|DAvJ?dM)zrmp|_m*a2c+NVWK$##qj2i5qXqAB4@#;k=e z7$xHL%R7dlSSuyE5yeV`YpxF;1cl0(41mI}Ze_G;qg*)IMpw>vlljgN`kQsExu+Wf zgv#=w$y@P-#B% zRqiXzjwRnA-?Gtpc|J}pLu_Av!QDP+6b`gpX?6~eBeX+=g8X}IUiesQSuO3mpN#H0 zC7)j#ixK7VShm*Uf=S6wtyK*y(qC%1F1eo{-pFf$?Ml8pg&y5Y5xLfy%zKQXi=o=9Sn^<28-uesMdfuD$&iZE`+3rsi?%4nV5}$+{&%$qT zq9`B_VF1Zr^MqGpQ!`!!U{aPFzkY8Ig;Jd)EZBG?sJRz^@6x*Y4Xgjzdl@{zA69mq z)3IO|%n*i-0b@ktw53Jl&*6aLi)bC5c9S=zO=#jX0cpNSS!I6)l?phD(TI&fklU;o zoizCu5yzJsA8ZWNF!|=o8WceWimOi6j@#APY{R zJszDzY_+(lme^u6~#0%ga9b&1K45|QD5HNG|E$X%G@ z=_=58o@idPGiGuXw6>rS8#{0;s>5w3t>j9?C-+A9+{n%8B`k&0Xu9;8J)`&UNo!Wn zbKI{&Rl@@lKY>Fi?MgmAyL0?F!ci&;jEdfZZRoxv)A>B#_1O~62GhGH3h8hQB2?}# zOzocNge^ne#(XJMdw*a>Ibm$R4(IIje+L)jxBUHWarS$EC%=P4z_P9B87%{oEu0yaprA%j6;wvGzYl%WVH z=%jH}e=i{IYwobdU2neuIOv2imqQU{j&7OE#RU^w#MDq!L;F2ZL=1R-$n$fR>hz|x z^V;GGwnA>ViY+=dVuW7LptqT{oV2rhj0C4&Q*6>@QAXT>Ma z6H#RT6tQKrY~!aMWfk3u7u_h2i|_<qwFE{0j^OrAz>l6g8c<-~?9= zZKh4key_v%=-HE#($^YWVNezQS}>4zaF-{{^|(^eb{w)T)E@|vxP!mF>jadj8VppK z#}6e!DJ-!A>OJY}T-MFf-%2Bq${jNFw%}+1)c^)(o%p@_T5#v6SBbp$-_z|JwyA;Kt=lvaC_JHVPSc+(omF1TK{^mvr|2 zMGS$nmZE{VPARucB-&H-mGSHQFB!y-qzBvFz_&|v79ApMFbjaEQX7o$gVBXxht?K{ z*I&iN7-i!xX0jX+vaL#~B}Rc<8kGaOE6I78X|j}$2Ml!7OXl%~u`NK(?3ALQ$lGK! z>(Y=LtFSYa@Ws{ zXmYzRRDR@gD*YvpghKUJd?ke*70!hp}>m^xwGGv(6VW ztTxgEI_GshZ8}dG1@3Oz>MKb^Ia%MFAI|1H0wb@d{48fz%ul9?uKeY%_s&bHB9V4e zSqlNTA%&h`nFAx<8s27yXl4KHgZ9!O(V-ZPJ8f$AS+KVAw%^qPXa`MXKR|@Nd`(iBrz?g0Bm5 z2p!%4(Y8ZWA0wn!vzZ2eMSNH-gFDU;t=2y{BsX*_iA40PyPChEogW@_zpABYf%el{ znTv=ni-(`*m>k!+`f-FAJ0g3v4Jq&UbCID}Yeh{@g6t=7qyoc<^9cCE`mQtXQS4o< z*@^j`PSD{3h2F`v4qI+c1s(yoi4NJeN`@*W-o zX#a@oG7zCWK@&g~ttn?jDRZmn{C1hUd-c7qt)Bq@8o&{qo-~#!{G_0Reh06lD!B!$ zbzpD@I0Q&=gx<&IdPCpBJSx1(MOjzxEElO>X}z1%J;|$^Iz-<{okOBQL%_C{#q|Ij z)Iluig?aYkH|vEi7?B_-DQ9Y`9!q47EG7y}U`v~;6xiSEEed9ix|}jpanHmNX*lZ( z_#bpgPf)>-4r(#|jn(O4LUC2qGz-MP(QQ{N_ZW!AjzF7F9`ztvhv%`xt%;h@uBh;9 z7l6d(-f}EG-uhE9eLB`Ym5jk2*VKphB=aEJ9RJd2;GbD_MTfO&M{^Phj;vZ}T6Os= z^DJqTJn^#~`oPc8$TtKju8hjx`Y1`LxNKgtXdkxngwD2VYR>92k7GJLze)l~iVjTP zu0V}m`{nZr=1xP&p{+t|)#4m$CSX>td2af3%>$3NVj#uS?fz2jUz=$~3B~qk?kFeY zU%)V1X6}hnKeXpO>cdc`|1TU+9?hfVoc6c#Zsi>eAQz@CEBD_X{M-WEIyNj&Z24GG6VT$9K4?22qqv`EvXUk~&N<3IZ;aI;hbSeNK1s$%LiLZ&TXiGte&h9(NL|L)_6vL|q|7)`__X`#sD8hzF+!So**1Idj=TqA@cq&ZWEmRV&KD zF^qrhB6TN0Z1*sKc^%9=EG5gYwba~RokR?_F4?JIz6f~B0y(Tu&A<05cgbS}DbVl7 zlYuK1zCh}OyT&{cAA!ciA84m^IXo2VuGp7%bdb26l3^KyV^%>^yCo0X2uP4{`_>~@ zeQFz}YNFq7DfPM_*x)NAZFRke$T*z&;WK``U+oX8Pn-Lrf1~)RMg14{>{25EX4$>X zl7g0Szo8@nx4lDaXuR-FgCOi7geyCW#TC_(=ob-=?{l^*XITPL(gJwvqNE3e!ahrS>5~@Y818s$Df|3~ldN1Mbqx-}HfW&6m(1ss7fUudj^ zkU<0L?T3%5)IO+$vZQ=fOD}W1v@yU^A?izkgXZrB@|-35X;}TozA!_3Nyh@67}D=i zhdAFV$@^^Ya;sqTi0bdWpMldUl!AeM5cq?4r{?+vmzq?%b8`12OcPoejpKH%jABZ(4$zAbu* zMy^6{kLE-LLe02R*%)rg0lNr_FF@0DqOQPuC{}kDw$mJ(^qN2jC{t)7w4ejBj}=k_ zn@1X>S6^K{W9fqIXeSyF`TDjU7Wum{?})P7i34L~;O&jjh1g3^yhJ)qbDuEtYm<2e zxT~Q^X|u1%Z_DrE!J%JB;_Y>dIn2fOtON z{~v8chS@wD`5$3}V4`m`M^&!|RCQ$M?i?mexTb6o=C)3%%+ z?-?GLw_n}K4~n72{(P%MUo|WLAHoS6!jj+LAxY)dYHbUgdp!StxmW7aatE`zugnZ0 zz*8hbQv-wg^m5Wm5^BW-!rzfR8^ZB)=IF{rZB(D$(h%3ICk_T@Jqskha;Umj`5AG@ z>it&rVgO_H1H*W14&q{#RpKfwx_&Af3cyNA+#?&X9ryPd3)U9o&F1@Yn|bH zqQy#4QNT|MSA}Q>0Fm(j_hX%OQC}I%OIECrOB(SQNetBOS|0g*l-ihq&2^H|DuXby zjFfTA!X7bxWoM~I-mRaGHNuMx#=3cJYVDYK)5V=!7#;=!Ipq!EP{i;_f+(yhyn$86 zv@U;e73EudQe7lGDnJK@ntKg8u#*Zq(BT6ZbG8ncaIn{Hzg(NbAD2fPoxZ;Y*L5XM zVEdRfQx$I%KCWP7m{`hRP8iTr?GvWVh&GgnQ}MJ0#8}STu4K7bn>j#g2s@Ch4z-%} zt^0Adj*=}2|GMKHmq+QIrgz9~krITz(p|ZNr%_h@n1lyWR^qOCMWTwp$Oi(9s^#7tJCd3=tPMaNqyR;bW+I7<# zAm?CtpU<>y2%fEfcjuNu4rE_n2T9zA++XCe2kUDHHf;3%z0|_vT5MOsunR@Oc*a^7 zycq$i#lgZa-HwXiSkbtNC`2ROIo^mE}^y9(6e8^_INSo>YwwXYSBbWfKThKJ{Jj-XdKx5zve>7q_3Uq zW|}qQ&t`XXZQea05Rjn~zjHF^;>Yu0UdjKt-~{lA<)iWM1e~sdU%ff;9FP)PKIE zPd)2GH$sMtf4moZm=j~NbCles?&&7=q@xkIV+{%Cni=}bo5|ak$1&9O`hT@mH9lic z(D57(b5N~|8)7F?sX@zC?&(#HqVR4P{R9TE8*ut{7UYH#bXY+9JA;{%n24AfK>MXJCP&MD@0&P zwSQ19|7JR$F|}j3KxQ)Vf7OHuApAjgv@e0WgJX~9b@ELnw_{URvbmAKE$|-MEgAfocb@H2T@XN9G{m=A9!LA5={d&rV zx#?0a;>z#QImVXbic^o&6%`xFkk#wo*jKC03wLj-PQ@V!iS4Q%OE9>n2fl9B*YY5D zy5wHT)53gh=Bp-lyF&(pk$q;}U3ZsF^A_DV5L4@#pD`w3dsKUasYMxw76OB*l?&!E z#CF50jmXy8t>2U(BW34Zm!<;Uy;^oNm+1QT_#AjTrKm%V9_#=@jy`fqA9P-k6Zu2OLneJdOi_D7OZgBgSIUVaIFmi!?s>;#6PfVDNxy(mkE)orwAb}92|wgIyw zb8l66Yu4H;SSCh{9`CA3tfChuQC%bi=a~$LX&9hL!RE$WMZSLT)fYzaIx!pW_2rF< z1b7t@3ACE`iAsf^N1zoXgHbPx2oi-u17NQ^7*iPJ4!BbWYj#ONP?_~k+We69GKnJq zH+_+K+}hTf3n+x>49_}_pxQz9!UG4xQ9kCXcLsZ^cT);WzcMgSsnh;{lyYt*dY<}` z0#wlCJC>8M)csS{0iPsZ#Sdqcbj)Qo=2~Fo!63%)=Bi7FDBi~m5S2@SoV;3kPs3%i zZ?Z@zo(>*MMjL(JuX#28!2NiJItAaj*8~m0f^=b(JE!-X7LPT-(DDW5LzTek1lX)o z`pv$b>FqhlWT$|>_+|?xg4e^LrKug}OHXSjvfK#Z-!8K!c^$RXW@>HCwsY^80g5c+ z@A~|k2$5|UDhgptje6wdTp=eMvyu+E>u+gJw~chN*g?SNVA^gDQ`Q(4Or6Hnm|d2% zo((sMhb?Jx_~~U8nC3_Ei#-*;hm=UhE5Yi>r?hc{I6BJ5(K>KEKwvMv6Vol;t&6cN zpuSa(ZVqP)Cj*`50DlTTFuj15Q>TOQR?{YJF*~}r7DP_^wqN9D>{IaLa!IsW*BQ)V z_A1Bl9=wDCBU-0BaN6L_nxnJ9@UbsiIMI@$l9&Ia2fH~AgKp4boj@@OjmCH~dWyIA zS3ehw;NXI-F!oE)%Uuw%)>(#vsXv5^zAqjXa5U88U#4UbLfRqNZ`y~%9HCauc$|YN z-6YQInJuo~o~fX{_&cSr3&ci+0uue`%?J7mku{72VMrry(%d23y8-zC`P}om$zO$4 z4rGX+H>Jji9yC_BJ64LL-{;}U&5bTor;J2!x}t`>s?F}+xEY_81ccNP2>X&@ix3aP z5|){5qo?-8G@Jt(Zk>=PZCVoeKBv640jZcU<*^;5%CL;EABJvtQiQJ7jvS&Bev;^d zLwV;O)s!Z{Hb>sGAdKM#er-M44pMcb)$gF-j7zA04L4s76efe!eKYcma`(_pavn4^lWr(kyb(vrJsbped%tQ&1}%2%{B8=7uvaD*_)H~;Epy2h0Kh1FsM&57f5jN1^Cl#g82B4u5zKOwPrd3QDo z7DoPG$j$euJL#_z@jx{Ea6wQ_JguJMav+QaoacI<-9j-=Y}-dvU#V^N+2tIC0Ia+Os*Z2V;jU@e_rRsKIsa zJzcXxj8OCHkUpJhqmQCcI__~HTs48D$DC59d{=$G3O9g?mWJFFN_FrQopUi-U^iEP z`FS+S+nx8f^&*1>U$_`r}+Jx;leU|>Uj1+2T zwj3R&rUE{Q*eCidV2SipwDq@zC+Pn>iRVCSO)gS3j})PC&fiWC_04`C-~cWMGJM|P zq9nzlEYVr2m-JDu7}7Yf{I(HB>IY(XMd)pHF#KtYFFT)_NL#V{zeCTbxow4z>bq>( zk5@ihrB{BxC0T_15h~o_onKPNQPNgQ2LQPuZ#V6HM6LE@xd7%VVc@&D;=cYt(K_DO zi?n7#tkfx;Wb|W#+)eP{X5i!zx>IqlmT*z0t51ca zb~33kcnW&`^6Qe6!<3j}rNpla(K>K4sg{~Y7eRrHvjq!xQ*rFYBg;xAo;};q zR;KB#c-5kwE7y|8vW`B)aJaqPOf3AAl}8cJ$GsgrzW=7$T;iBY`QMAfOTp8OEWe*#I)5aBw7v8B^?R>03#=#U`0n)JOP`ouq7a)%VCcn7N zfuD$jkr1ne^gddKeIbQD*;E3^5hS6L5lKe_T#2phVia^z8lWbFjYQh>8(b!c<@r1w zs~5}6rtvyUXsdix^{t1^ovjr`C1vP?_Ol;e=cyngBL%kkOKyTR!=n8-*r4QWXYB=rK*>Yg=&*E|`#;jOSoov} zd%ndY!6t~;-~jju!5obRx}h&||1D*UZ~yj}GN$n4guWMD>Tr54jSH0K8%zb_nY9Pg zXyx`7Yzx&=W7kA#=CdhNBt7|*Y*XY6s8IZQz66edsN371H1_UI_UMIUoNcpx)9vRm zw_b~q-0L!t)6xQM7yzJg(a9NNLG&I|-O8#Z$!KJQ!aLzR;>_0AE5ByXcvrGSSbB?LmNnD1-tKyJTz%bm7IuwD+38cq7aAVJET!$E3qNT{zVZMnAdNIw^EF(%$_{**p10gAdvJ`N$GSLv59hZ4f#*(J1wRhD*$KP9oyf1T_d=`m zW92Hj_WZ!-*$=pTfJOl+ZyCcD>xr1oE(rh<$}!ZzvD*cMV*aO-Gcy>=(R(WsKaAp@ z>N&r=_~$_#1ni!cCbQ`H@5NEa27M)&$Q2Svd^;@DPMpS=@SmtnpE@xdV|%?`_=DBb zli3bI${U}widdv;chIea zGPc@7h7+hTTF5l0rFC+KivKXcmk{MpY;GHbHv(c}kLh22)<26;G)iN66F`m~W;nZF zCY1t(?4n0Lm|#NIt$bpEXYphz_-zN7W;|*|gEw~A|A9M(p+r{QB_5-Z)_st{ zy$A6Q>QYZ7&5w)bII`&>rDdT^iM;OF2Hj#?tJHWM6gG7tU}zszhGLNV^dX@DLoE{b1!9W%!31P^po?f)SUyHT6Bvd zfic0lye617tG;&*I?AQAP4r5SntCS%;zglCEv#Hnpj8ZJw`@|jD1ImxAAwSASPO3L zo2_L+2>j{>eMoDZ4uVKY&lBv0l9>x3fj13q0O2UqKt3}kd0(rmG*6HA$cLqhl&xWR z^wi_P2p?ko)3l!@g0PChWH)-FXpM(3p=Dd-xgy<-6+WC?l0ieWXXX{sQ5Xm~DiLiq zZ5Jk)GK|R1pI2id#G^T#sJ93h9|~4|F2b2r8g3_PU^LR*Px0*HKYd7gno$Cv*tn4T zaC+1m43u{}RUU*3Y3kqRopyOWARBgI0@#Yocx2Hu$d`E;zzP>h${1W#xZ91b#jKW$yOT>ahnMd?xI zg!d4uQ0|m3%ng~Fq0TiUV%`t4t%FTVp!JqD?{4XZ9)ba*Cco(V zwl3j>Wpu#!<7ojU@25i3Qrma<{aQkIU`=y~nFh2iT}E0=QVul6ElFa+eC=O3MI ziK~IzeiUE7R%gET2Rbi2_2EFqJ^9pZr}IkOMPxMe+M|)%c&XEjVZfEPs{7GtXSl0d zVxT)`68|pU=vzc@U@LJUonQQVJa5-^|a%9hfXjLd6xFr!8h7Sc& zOay!gr?N#Tm4S@9=#c6j0@=Fk)7=>Tlkd}suv&9w=ZXO1!cpAH6zTSVf{f*y(N8yl zGbJoGzc$av^9m9ztDnkXhAbUgAH2gVUCnsSWfk~@j(4f;q(yL`hF#0svGxDLw1|ED zY~~gvQ5>C{!eJantDQ>fScH#=hob56MzkcnoVf1RAH#iWf>80WS@x84i#jY z!At`G<_}=dr2-b!aja0JCx&6*AZ$?|i*e}r9tanbRC|t;+_h!3JvQSw84;7c2j_7C zDCdPoeW* zK3rxSku&GKM;K+x)egB3%{d8x#XJ1lnT4OF(;T{~^HV+IKTn3ORSeJ@oxob~Fm0O` z{ZcSZc$>c`(|Ii!ba?=-q45b)cq-9!NR8zDz1v7aPe-2?>_LQF?cjFneeot(BWC@`>{Rk0~F}?k#gwwLBxeso0%+$r&ciRQ8eLuxt$6w(; z|2s{qxn)!VqNWcgrlZZFo)=8iv+Ju;~LOo3EQ>rXUB^Yq)rPydd{?| zk$5o%o9}|C zK`_x$J|AeO1Zrjn_eL|gfRSJYt8}g|*%2zk$$ZNNxGm|WgB&qCGMPJTKx~ebp$-Kl zYQGgh*?x#PQ*r+KyxI{p)+O2`^A;S;Oehx0KTe^?v!6&ujrEm#XL3ml>legK2 zn*c@fyi#6ppkt0o8A!y&ESgt%uw8?Zgv%N+Ezw;A_mHNKR5t`)RJcMsnM)A7ohKxQf>XM)2L494Dw6s{G0rO zsOmZJhv5l_KFAfo?>PFY;H~D|JQs#SqGkyX3DBfzK6s9G@<6Y>AgE z5=ar#S1|9{YL2ZeU$OUDMeGAPf6IoImF04pdDUOgt>!*eCJzHUshdMEN8Jcz>9Rx| zfzJgdjA>HANwEYAa5gQqgg;q(NJ{$sM^-MLY=S>+bQ!qP)*k5&Bp^dD#Ngbl;}lvub(ct8x-~fmxIO$;jq2^S#LJe8 zw_b9Tb}cd}gV8nl6NL}+`Cy#C2VQ$1CVXVj>L$$`0OFD?7Z1@VO5bg_KYC^!vvCi# zD`aR{`Llh;VAMI_1+E56dqIKw9ICHMZRND8dpmzwoW8;OQGb606f=PfC35L+$npa0 z!TDhq2?bRt%6_yGL?iy4tqUOE`?tyoGVi`z0i<;`Oq49D(PHCg>lBl@bo`m#aG_u_uFn{gVh zjtD7ipC0=omEjsR--^j>{3KBAX#rP%!Nz&y@AYbspfTxf@$o$`@yOrtOBXO*Aoqm* zDUoApWcpFU0%bh(H793f?dZ)Efs7;xP1Ygz_cq_j&xZ!dbhSg`-2|JqNV&uZtE2e? zRur|ONs*)|Hw?Mn8v(tM97nK~kI@rTX7dyjQ!g)K>^~lXjxddFrenU{RJj%2oUPa6 z-)qZ3i;#b;G5=usQT_tCV^R9E-nHE*2r(@rZe^8$eVBAc`}4YERZ8vLm*rg}nt^4w zEM?*_#{NJBdXy@AsSfQ{X561{2(P}u#{Rr$2LoyGZrT0i)lPPXLKonv{aaDBla3T4 zxYVan`R?Srno1Fl`2*SE$`r!)WA{<|pp{siti%WM_`(7Wg<=2~`*mv`bf_3bf7~YE z5}Tr`qMG>eWtwm(iq#r@OLOYhPCjN-)*!V%FXS-IPKl zGse`ucg>=Vh;1;bKtkMqsSni|oBg=>vPd*ii7_^mSR)m5@tZtXOO#tT1BhzPQ(%n` z@jl9zQCskKiWb*4uj(;!HFd`4ue?Q-pgUe)eNTrD& zTyBgOjuRISO>OO>@PfEKy)W96YRfw6*BQS5?~v{SNfLOZ^R|7*53$#c%a@BS9GEbt ztqNzArbGvh-*y7e?a2gth4!<*`JB|+e?IUH)>@3hF^f5oxIm*G&JA?Kb$$h-~*$x*m zF3-;)7#pWwTgS`PsjBpG(4!v{nI55*7q}&tXwk!J^H+6gd7nQtc8y@{k`EZGC2sr| z2~>ndzxk7MME=<;Gy97qNNIrHGkywDK#7~S4-%(Lo_S+xFrpr((pxFIo@cO8O7eV` zxbGKF{_9C2V!!BZAB~W*BMLN=jr0z!Dfd@t)%gC&J2*c5J_Bofksw3;VD>|tCmPig z@XOQ6?lXj0IhGI+InuKXhju&JvRSE#>l6!xHy3M(J=N!b;X>Opw*>%rv`Bq&cJ%R1 zLi%=}jC3eD`l_+GTGZx0qK?+m`BS1Aq5!(r>jQUKd?pf~VB=ofF9hou>FnikT(fWv zgJ0)L%V>ky*SbQH7%%lp5WL`^G>)ZJp!;0%i#&^tGRi)IaA5F!u>q(bcp=l1j??Oe zxqAOs?TwoXg}L3hfSzRArd7+$;N-;szn7_kG+38zgx=6*%=(B!C3AuoVc(LC;OSG{ z)$2wLgn8hQ-K*ESxSHCQYGC4h6&A=z1m_z7`a^}=JXFI~{v~U&^%t$TSL!39<{ci+ zaY-Eu)<(e;`0#?D0NK`oMJi%$yD&UyrJb>cWQ zmjp*7!{)!E0OLG^Ylx9P!p*vkB`A(u!SgZsnPVPZP`8iNrw!+w`xm5(Np$AQdVe{~ zSHvv*)?#+maJd&zw9XEb&E)BTjRvAbxt^AjC-n=V4LGSwz46I}iPi#KN4BlxG;C&Z z)|3XkDRKRH64Efbi{WjHqtBHA8im;VD!TU ztvet5VADCLpue!Y@YpfS6zQ**;Pbx54Fgcmm*wek9uKD|B1i%X=fbe`y+m*>fBTQ0 zhj&MkUk?-MYH$Jupj-Ip*BMf$v6Sio9&Vo4$rMkCd4} z0+&pfa!lr6uRH_2SpK^ShmqS|4U6pVs=K|Y8(OV-q|QCww~`6GbX=Z5e8aFKo4I%c zm4qya-r_uTGanCA_HRN#`@fXDY%EZrZED2nriYTgV(v|hZ30tnD%pq>>8|b zr2xM-QPcqE>*I0|CI1u5uIBl)Z@obF%;ByP+cB;x$4$!`%PKNhY~GJJ-Xq#BZy#m% zg|xDR6wmk~YpSWNB(N#>&?`9Re~E1B0Y>@PDl|Y>JoL3{Xr^)1wgcO1qI2|@J1@IT z(AZfA)tGakq{60{Y%{)@J$FQ>%3i>t1=tiuYiqegbPSsYy+MjaVp7@EC;> zr8t#>6M;d>pGiIY&oixy#&g>(NMJnVa6!&4dksmTptq>Gy?~d81X?_Y`jkxI=!UFY zknRv=y~F2X=>%5TC-o#N<2@%lXPWmmSuDTYY`Q~qrQdI{)1WC;d0qryh5LeQP4SDer5{Y$b(1AfHrp~0(&WrRi%R5|W4+6-(4)s>l^Fc{XH6a6l5YFbN zF?Q?JxE_Er8A;agzrxG=T&DhnKTi7fji}!c05~%~S>#LGgThok%0UuaQnQe2{Onl+ z4l)`q5xDty%s66nG@^le%uh0=+`36TPfafTO#~agFoB0M_~a;aY{ag~OKVJBp!x}r z|L{zzsv;dobwvsw;GL}JmjBs z0ft&~2wA&J29ES)t#KS`w*KhOL0N&oXSmLn(5EhanUKJ)^+dcPV=(Xq$oVlQ8vh1> zU(Up8DnDLzX=41)16R8pkXHUyyaYWHm0eIJp=S`25du9FzJkzB%C=J4Z~6Vg_bv=XjUU3+ zYsMMh*KK!G8dWdx5`84%Wg2@Gz{9R3Fm}mW!S#?EWY{1$lz1_{tMT88rqu-VI;7y~ zp--5W${428S{xin=hJ2sP=LD_w6>tIr|5!_08Gx@GTqD$GAP`s zRFBf4@rNS>A!*3UmWg3*6cxI&!aPtswiwY$I&8ES?n5`hAqc$F$2%;MtlR{>sR=?d z)KcF2tCEwfyB#O)p?~@k3M%t^v}nekHbt8rjj-O&tbHf9eZkL~jjfmVrMUF~Ra?0n zLJPP6II$09YD5^c6xtBm2e^jz7p$D^;86T@(_{g7KdWD3c(ADgnzq3e_kIb&w-xK4 zA%9CCT7?TRWGf<5V+t`DqYD<09ZsKsy@U$6(i2$yK`nquS}%juH18k391b|mI`zCP zMp~t~4m>=gkyZ1Q#dn*CzL-xumhz--3$Ftg!-MCuKfI`vusKTH-w8b>n3*y5^pLU} zXwbll@oEkFFHoqU?T{Vl1AU{XH}+&=SKLa&qG}c^Pif-ltU6tm($|~&M>P$&;c#U| zm^Jkuj&DP8kY#kM_CPP?Jw(ilUKWb&YuR_!p~&bY(b(JDEAN&NC$Ls$nApA}0RKM# zz;lX-NVf5{V!dRL>BkkQBI7RJDr{pUHx)T*d3ZU06Cq6&ZfUlnNoMDKWR6sik6q5@ z8z`06YZ?~;SVd;}0>--ZUhAVFQy)QkNrv{gmux=g`fJ>k%^2`zVxWndAa z1b_y6VUz9$H+?x{F_e$brjlAZ z?jX$&IEMH#yL&WQ)pThDoyD#BMy?$`&G(VjqV;Xg=tos(z)Xv)rCNGK` z-%r*1^OMVj9PuD?Z$8?9xW!1Du}=e3r2U+n{_JdHU)bo0FXpH$Kq8{V2NT4$!qc3= zVrs(hBnzFG-e+~!PgtspdZ%c08Do^4cmi8XSoh}p@Ue_G3F&`5X(+1Ig^SYyEr2$! z8%%;1$!U*N-Q)u6ALVViBAlv6VZb(pI?L+$b>v`tx$`VKAsODxENx*+Vwinc6w{HU ztCYZFg*R-6qwK25hAH5@pyf}lk&rmCFE0$QjIyhW>$nI1@-?Z9pc5c}1=HF zb^|5^4sJ712l?EccDj*D^1@*ABiy7#biW;74(!iHcznqVjQqV~`WJ=#Cx~&rll}|S zu~x*~I4%x0HqL&^eUe9Z&FI%@RBuD*9j?ufv5fkdd^fMWQc5Vh&M5BvfD9Idr&Qmj zYD^INJ^e62RRJbZv)1(N-h0UwBy0fK4y+A{ySU?RhurS5tqpi9Bf_irCE#0qw!0_(toNC&B(4cyn5Q~ zn&2tf8o5O;IuXlEZowdOTd0#7#M$CiFV+>)9ke(y7S7RPVG5$Mx{{zevQk2nQP#qh z6(S7q%F-yeDADtKafQXgZ>x~VlDN$M3li(rJOt8$oWYT@A&$bb4Tq4F1WBBjQ#&?R zRsp?6PvY9s0~0K-L{Bx)@@TT`Qiu@a5Pow;(-TG~SV5K=k$Ka~Ve-V*M|%QA01>2J z+q^p8x6!A!qUP!|yOwE}qj3~3wU!b|dHiY3VUf0AMN<=Y2)rUe0%G}G{hY=J58M8zMU@2klkk*_j_0yoBg^^)eZO*9&k|s3Z z5EIY}ExE-bF|t2RR1=C@N=<;G1x?_D%-bav5$Q?c3C>ee*{awY`He}K@YAkdjuQD} zm(2uQRYc)G9tjC9Nvu!G5hz@Dr{R~hl{@boo?#+0cQZh2F~!E8iRf8UjYy@=b^h8g z0=FPYP7P?@Atuc5MA*%!lI{RB9VuwnwIvt&1uDanbCut8xo|I-kgRPE%>efqUSW-^8%S zt$$*(+$>*sE)pfV_ptcemxr%3`0+cUKue8XIr_(s+>Fi z&j%~AV3W)(!qy0jcdEZp#}SsL3Fv5>~_*W9ptOZ2f_jG3rv>Au4*rHi0wOe zyG)*1v|yFkpWCManwj`#96YxC5B7e0c~=%G3Q`xkSwb zjQd|m)>ameY6!jFfDrdkk9Jox_71ZiOvSJ^4ZmQq5C^x=q%ZTMVx)b?Fejoc4?YLD#^}$d|zzdaX(5?Dj(gjm$eP03=4G7k9 zg6DN#KzD1bp?Rq5KUY9IN`DubV^Tp&5bwy1i;Ph=V{hR{d+FiZfZ+b-brS@!uT7){ z#S-GGuKBQ!C?2GB_wN8fLAxXP_cfYRF%n52sa6!q32!DSb-RQNMzi2)gPGcwXpg4{kx-rc?MyZRdcIt*h!sHQ~?^_ zscdj-(wz^1mORa>hgI3-!HqWLQUKTXDB2Cxbd-J-ZTrLLAh>zUW=R@ezOuF2diF~m zC05~mYha4|8%{%Pda_ z*xYP}{r($2C}mXP*u~BBV4$A&`#a7Nrij)<$(Xp+Pn$*2d~%xU(c%;;+K$L$T9+|f zT$Yg)gLsO)pAav|c4_k3OV|(f^OxAlNpGN=^VH68-!S(1uZhE4 z6u`_ssW1Sc_}O^;<#2Uf2GmHJD(pd9KW>#y^69R|kG zoefDLOuQ#Oi=wFu28_w!&7nH|Bc&7RbQ0Re7XE6zbx2V&tG}FE3c^>|rj5cnYwt(k zT0BP54N9PF1a^`nrp4N-=Nq(OSsHpu+E2!u$Rb^!{Zm7=h{<9SVFV4_A_wcF!()Mj z{htYSYvk)g)$nv0p8u@N9CZ0}3hnGR`;SO-`^1N!m1fJNcv?TKj$U1SLuf%#4bINd$7<4xJ* z?aHlq4POl%-@&5<{fA{jX@^ctq>#Wf;!AHmv)XkrLTD0}Y|1nngA{(>8&!|9`fB?p z%T0zHXpaD&%M95{jZPxvk%y7bMYgKDGh;58Tms%2ICNmO*J7M{AxO-6zt|958 z>d$DuI5#1~*BXLbwUMAE36xQcljVb@iCAMga7#@87|`+2h$i}LhIhSgW4tcsLmQt= zVL~QiID}xlll+d!mnuMeW{LtUZ%cF=@!0YT+m?>&UVx`Ej#6PC!g_gmOa;i68z|?M z6S~Qg7avYl4FI}9=ne=I$`JdazMoS(AbpKUxO zA!(T+V#=`omAP9p1^O9ddVkT3bo1E?Ga3`MLOD4FaQ^!kfsJ>En6d`*?6SekJSFc( zp-$j`!>e3^1Y7$&v}9)CX{P&Na0#871iDoLK0V;KToB(aCQpqH^jtqZ9O-#3SRZ3S z_FUL*G}<>&jgS5zf~xl>I$t}LxakV{#Dw{TKvDOQ0J{}R0>F0tnVi+)fe-07JJTh_Xbfh%SBP3!C6mea`R63u>O1b zZt2qs?Iy#|t_OY8FvLbVXJcJq@RJ6IO#c#40Jn;U>a|&t7!`(W0gd^n(5eD6xL#8h zhQe6b0rP;8@cwX0k8W?;Pt+P0aTV(Dd5es6Vo5H4>hxGxfZNU|c$Qnr>^(gS%ArRC z`5hagFZGsSt z7P<7wJgwAAiih&OUIw-~HSSOn%F+h3E$`>RV;pkDhk4$}TDR7xM4%lVmaP1hncO3N z{X?daPl3|p$X&@1yyzx94TLEiUmC>bnbcMs*-X_+`Mb76il zxe7R%L>tIqAGc|W6Y-trk~>Gwyt4JU36e=cjr+W;^BGA1$S}efSsZMtqfz?c5BW#u za!+bDxr*!aipTk_^VuYg^GT=ExdKXP9cecO^-IpVjL1R_e;}PI=aDqboM70hTh048 zvQVCG)W>r03>>M`L{lrmOfCrz`~T~d6vtoMQKp-ld$O_t76#FTnp86P1nt~}b)9ss z?_wp}TSi16lcM1Nh2~tW{AK;S2Z)UslCZ~XnXvtf{%;~_J+1l;?2vAdiw z0A|it4F!alVCT?w6aoH>RUL)eqJlq~aCWTdhR1G=;f^?f!5)LhK`@n0PB8YFK3a=+ zg6tCWBV-*b`my{PdQq^oM!O@=FOjA2In@anZOit5yH(I_Sb0)dcr+Rv_*KBGG2hxY zTJb4xrxvJq|9&$h>1^l5xITkgX9?b7=&K34Lt5*+c<7wu4_|}`S=lP;6{F!;SnxGzbjqT{R#^8lKT5K;kqIYvakR;3`#3u zXyR{4zxvkn+5$TJBB4gxL%wHo{qgb2_ZleX?WM*3D`Y z_*`Go?*0AfYaPL%0-gVaiN)GqwMmxfvk0Dkvxmm=u0o(n`q{AiN@sR$TUTR~Kid%? zU%Gq+LZhc@r(ATf&9vf{L9a?yTo(AcWKWxpNn&p7wgqy!&MB5aRoxK%Rr+-qL&pw< zElmHnEHZXToT;E2Ruz6Eq-UI zfQ@XSi)cp9$EfVgijFkBdQod6QLKmYgwCYZAeSVv3V{2Y2Eoqae~k8rF{tm0tGkV$r}vuucn@ng}ubI>Z-Z+O@}1s9X|V-?Ak7Y^E1I^m+s{a2NKdskNp+?TYx@2 z9#SpzRu=XoOn5Pt9f%cO*Hx4n!&Y&>|E|k-%&LU2iFqK z;{~7vOimLRN8}`7BmB^Wj#Z`NG8d{cdb=^S%O8I3m^Z)*RZmkn@50BuPHColbM7}C;NMp{yNxK2 z`Bce*&HbbdQxY0)If?8n9)ZMrge?|xAhOW1Jeh|cy7~;}C47V29Q7u1pq6K_T=iCK zBM9f&LD-lA*Bgx2po_6~2pU4@J_`6Pbx+n>mvjSqLO>27lTI=YNJTk__l)1>32M2iG7NV4g^5ocxEioL#02Wd3g6!e=+)}L zDYyJpPlH1uAG@Cdt5k!HD|+G3?JkU$zuOEnP>Cxym-EagL?GBZ&lGeRaC~mj&6^1g zL5WWTfS}!+k6-H&a`SbI0GGxxn8X>905*nC)Q{8HnTr(h zQR*2uJB#OZ^W||<@f7qr`KYF?w_XLp~OLtl0iH;v87)K`=^P~8t)^)mgp-% z(WIVp(jzL6nUYkAf|t%;CyPkECAsb1;`PwVhKz#?w`LZUc*t=Gq}O{hfKtYgvS%aU zYox2xDYOU%IltsjiNJoW^Up22g{x4mo9QQ!r?NhYR~wMzPLtECNT~d~KpQBqdzi$#Zej0mY`w6$p36lp65b}$u!U|m_{*#_vZ9J$Hl0@7@ z2aeIU84G#~ovdy8^n}Myi}D%D3;v!kYZ4IMJVLDQVn9f&LsQZQwZ5z-_L{=ehpV?T zpFLgc)X;}_!&nU;QUkgF&LIGW-Wy1ipZvrc5p`cRz@5&B!eRYT!1Mp1x@Y-GZt(97 z4e*epM136acMC9t%q?KYjNhGSB{Jk^IOm5r-NtG3i>?H&QKfH-6CCdm^bz4yD-6$! zS9(iUG=ey9!mGxh?_W7qaA2a+aFVtU%oox(u;BrXG#w<#-Ztvm-KXIuQ8U=2qQ{vB zLyvaftJ@paj;vU9kJPZzvK9S?n6r|3h?hiZ`-S9gzK|Y%!@80X9KsFvtknSU%pmdt z>z2;>YTGxvbOdTNfMsm`;Qn%w&a!fEO+Jgnd#QNWI6_ThxPicelq7K8y8ReY3|sqq z$;8HrX-7OQ4E4oBOsYG}K#}1JVY%?_G#eG4bvSm#ZKfJ%s>p|gG&B@+4<;yC&;@oN zgG6tKXYLU6pwa*HeDMMRSUF@>UH9*@&0jxG?)W~N4)FmM^yF(%x4s82jn&raAyOQ~ zeL-)Vjqv^vzc4g|g4@u0r(7#WoRy1d-6x=Mw^I2XIPEwYOo2kGms}!Fc3vyX&H{0Y zIIRo5(bd0CvN8OsW#X~AEkWtsPX--y0&(Y-L7xJ7n@yreZsn#D3jnrmTlo;-`ADg- zCW5UibzOqO;g3%4{45&uvPYp9=Tv`c9XZnp)CDUS+-}#DiRjE5LK1lSLwEAp983?0 z?E|DLqP6$G@Ke$9r&--T{*$0sQzLUU<~1dZNJ*pbeRkIs1^E#1>`>NvogG3MD^865d8ZnVa?UL#>< z5OuDu{MTj8Cu0@Tz9-V2CIZAY&K!Rizq)vh?IlZBf~Q1q;cc}=!*0)9)*AZ2W|FGY z(Xu4gCSO2|cE9-3X_Mp!CV^Z)A&;8Yuq)hx3K(f{zylD-j-`;q^)fzl*NVd`Gm+o! zgDjN9~%_z#bME1-i!C( zWiUuILZepOohD4<3{3i^$P^`Ufdttc%oxXDB6Es37drJ7e=n_cq zDT&S2K|zKxd4H5_ePfU)1>P_&D9T;_`N9b#6tb+Js;j010sR$@EIMJK4Yyff=>jr;i1mofIf7~ROV(kk z@^PzJtnvAY!U#h}**x3Tn#{voWrNH3``Tm?5;#gt!)P^@Tjo40l~~-M1PX)0gZ*{b zXY~Mg>BOPPRo&w?xLO0~WDa5$Rov7;Q=dG{*zYa#qkCtSVhTcwymRhW9RW zuH&@0+DGe|^X`2)cI$MD0bNfd_b4Lsf{@M@_cyzU(rQ*z+*O#x44_vl^nJ#qN#%wM zT0q$Bl22pVG#4}Mm^#A0%-Dto6u|O@wG2z(i-?@r{5)tu_&G|G>NMJeCEG9!!2JD1 zlD6pt$}ti~>Yq*8vdxg}+6jJ%j)I7kG$Y2~Pm zP!uO9iJ%uQVCRweDKC7g&Zy4&j;cDAd3OgZ*P?yYUS5SBPijGq{3YyQBWd;sy_-1( z>45dqi?cmY%I-(PE<%+jo>8pIEH5@(xU2rJ<%{?RT%9Q!$+sm~2oYGtPCP$Eau!R^ z7YSLVir~e)j~~nEkb-Z8mSm98a^4F~F}>^j8qiCCeFlupd5&vuZ1DW`&Ocj+T=Ffs zZ7+O4U4sQdG&q0@tD-P@oW-_m4n{3C)5xai2IT%NmEUujudf=-A(ha1s#yZ`)STR2 zky>P0b#IDvv31_6JVC=(N11}Z^?zW2@JMbl4?hVv#8b}YxyDUy)SIcPSFT%iJRwkn zE`r$wJ+!r24`|Mjz1-3HnfZ~`HHsNaLwOTmhTn0|o-*?Po1B2b!Odp4_88iIT}`!d z8wqATX{o5Dj*BzvO_8NfCgbX>;xs9nh$2-tZd0gdlGRj*nweCH;ixY+HmMnbU@{c_ zy(adPjTOa0ppRk2sqgH?<2}qC2`;7}?ub}DT5$~4Hdt0?%3|)X`lN~cm-Z9^ebX(g z66g6)EE-ufMQA3*LwhRayO@_GEB#7X$Z`qpb>( zul2KVi6wJ6c~q1^(p3S=`WZO^`d!^ov_|UGi<{#NcC{g?`6tU_x^ofzfE0g}W|*!Y zUz=2i5WC`9Vb6sV@@(uxQTGjUtQ@tn)bqVtILo&) z*4x46N2IR(8pB8&bw{_h6Bpj0%%she5s1$f5d&x#^~}bl(+B23p%Yfvr8b~bB^m9T z!-D&zz^+B7Kew`E%uBbLgI4zaU*1hlOWCuD<+@ULYtNaMfesu7Q7h1CiPsQn~5m`JSA;HF+ zD%PlW9D+$iI@*nkWc)Y2oG7c|Nlbor<<7OoslmKaQ`>&>EVoL4p` z=I~vnD(S%cgX0|xmfJVh!*=|;<<&c242N1Dm1q2ijCzHDV?!3)Qlnjl2A61l zT96X}zQKUY!3s!Ip|Vc#?Xn)L=x(F>6&OP>!ogu_lBDUM)vZ|C?#sj-c z0S3fYr1umZe0c6>e>_9}iN}KlAKQ6uwm1Gs71IZoFPe81cyi+MxlVrgBS09)~(tl}}j_2{2q%?R)ske#1(!w)WqVs!*!dv3BG$!N*JWx~)Li=pALwA<-r zy?GZ^&ymH#&p29beOAd#s(BPrrFg9`fjJ(b%2o39+t28$)_-37{083+NB(t*kMV4~ zPKS4@_;D)}bnX-y++?wb)d_rYAP(5ZMx-<((2-A9AL4@`+!3{iTehC9cLX2zgrRLh z?mRpO0*Ia{oS(KJ&cvh~t3eOV;!cX?>4?nqTf_|KRzGTa+=#VUJ!c;pd*u<~oGxtz z;i&REL;OR?$>juxDQE-_>+68cNFo-Ze9UYpM(r!K<4Er%13E3Hh}N=QI`zm#e_(?D z&i-)J2kh*7rK?cG{w&B4`05$~CG%}sbHbWtS3GyxMsygbx=s6%qJIdXXJ&@V0}&3y z1!a+$^DQ4`?lok&mM3Z6fYi}tZHWQj#v`HCTh@RG(CpG{km?;N99dJ7$G9-b$}EdJ??mR98ks>oy*_fc(g$62p^e zv=^kvK19s16Aq-@@`5_^KUOK0C`N}^TV2hJP=2fA->Wv2QNJH$aRtNMjRGxZyCMk=$KMb4{P?einDheQ{P+#s6Tn=eRf?L%R(PD@2jg zFJ~ZklV@?j8f*kgv=o&OhS@?wE(k>ce;w%?&kI?+%BJb@`RVE(Q>}jXD17Zw@2AH_ zob`3x<(~nES@O*5jOY_K!g{mS;t{X_M&;F|%-u-&!GI*VnlAf|Nk!hkuUpm1t2!ol z)_^YEtAB$u0N=p$q+GENEuU_V;ax0y9TZ!XF?sSr5G*Si-9JvLIh<#kcN+#^%oALD zxPBro<35QBnlP)|ar9-u3^}K62ZpAO8OpFjHXa8C2Uh~Ea<2Hut&XP3|cuE#2$@N%4xm#|9qbu^i9Cro8Z{z7UAdle z{xaj)PldvJjk@^t?t{Wl*~?M}*n|-*j5n5-TfQR5fhlQe92 zpqzz3GC!a~7f9@O;4lCEn8am8iV{OMfm+4$bA?}&lcQ$i&=ebt8zw&sidufr177b zLHeu#*HlNp|27X)`4cxUz@B%mU1+M6SDBp{>JCG)P-@JCfg%&VEkQ02WR7PVR#{Jh zA*>Hy8p9Cu)hvCVBlI^Cm>mM;0lF|=7ed)w`^T=y0MqOn{f}Fkk)aWb^MhKc#`iGN zF6g>byob;fzV38Cos(e$pxp&m$%qB zKkRv5K`w*YDzoLVgi&^!QfxF-W!FQDck@;pD?DE@8b6`b~tdbwJ{1FE*%$?^iX3G+HBvIy$pgg+^$wF5*mQaNmU{9Z=I z6oZr+{L>e+e(RC8`Dp94gE_$s!^s(F96bNd zp*3HsuTXoq)t-wi()ldL3IaStT$%h5RL0Pgmx)jy^Fu#^OeTDj`!|}ko$F)0G%CEm z>~q;;d8tQJP?AqtaZHg)mw5WHp!xsajhFiR6DLrNsyG5vUEJQt!UcJUt`C9ca%r5k zSKJKd-7POrqrximMytqbV-=@yN{cW}H7in39F`FR;EEd4w6~D=ym*4ttP_|C@nVSd zl?J&BZ8Q0ooik?8^ zKar(3%1+P}Mp5k09Oo*kO%x*C6J)hC|>~Z*pSv}>gs8V zXu#OiExsbLm+z*rV{>k7)(fEP82G_sv2ELQi2U|poN|xK!yIWpQMzT$s4y-QAdyHVsme5A-*k-@x_ct%u`j>6o<_8zRjluPpuoV=uC#umD$F2}5%O zDqUTV$s57Mr%>q7G`R20v-DW}$LotRwt+Q%tKPjCeovlFlU+TtkA|5fklNu6j^_yI>2>eA<3_azFy#SA1C9FSd zw~;U6%a}#;`@z_%H>U7BA?+@j<`IEVT`5I`XqXdGe1<Y^M zDAc~W?^fO6mCHpMDAB?|Qgow*X$shad>OEE`fr^H(4E)wg>`}EV z*<5Tl*7$mhr-Qbz;r*xGREqnnItZF8jU~P=Cc^G^(-b|OQq3FXI_Cj&c_(F#h$O<* zx_(zq#mPd7LMFebJ36|>+=h%u>v@ke-P5QX?hz@D_U>&529!348`KYBmFwFt1LwzAfx>CCsSc!M-zVkjlc8KX@G~kceAEJGb%mNs+t5_6`4%KqG2`VXc_&9Mjxd+lBggt>IRJSti|h3 zA-jJdx=YQM3|>#G$-bPJmv26Ol4_ArmX3!`-H2)h2@FplYXz&St59a2!AubNP10Tg5vPFZu&fczS?Ep zX-M+24{IREH%g&FeZq;pf#e{0_MdcFA~h(2he$8tu_1@iDo^ryI@e91;y=Ws|6^!i z2r#xKMdv}WIz}StyVF$Z$mPK=UC%;?zL)MTHy}RYrilW9;Wdu(xO0I6ohDSKIgz8ez+u z1ZgYkCj{D>|9*oQ1o*wd7_3MdI4vapm!WAs4QO)Ky8}o+*4F#&+)E5l;fiM=X1EtS zKVt+EfSCL`w}VV_yAH}_5A_i$A0(&v2fS4OqOK;$3m_2rh`=~--c6eH7$7T`DpnLF zmRVC0B{t-l8>1n#8{;i!(P|oo4`3s#WqL}NyOw0JDBi2UygQk0Hbzsh4Q7rm_1CHQ zTr_nZz^U9w%GgYhfN90qTBVAm+$E_CE!fBsSVAfT=MIr}fbDdsY{l zoy(+pHj{!63phMXny3hwhuxRY0NB>^FB{{5$Wr{ww%%NQLVvO?+k8pvJ5{vcI zSdkt}vUY5hY(0%<3v9LrMia@sDd+|+>J414ztu3qhuwWQe}f|X2{K#NkiU|;l$)jU zDrKB)kz$+BxqS>t14Va=u8(3LkPAmU7qh+7Z;Fh==bz%C~y80vGC}B`f^^JZTCy{S~~XlAE*XwZ-t$ z=~7to>=PyWt`ub>)%{^ebmENOcCLGZn8*+~kx>Z&poiC)`_w}@Zve;WqQwyj@qy|7QK?(z1gEW}@|TX5Nv<*uxwr z3UEA~GIJb!AtIug#IPHXbEpr;I87pE zT6>73qk&YcA!qj_8P?^xN~kR3k4JnbeXXXXvSk8Kf67G-jEp=|9U+D_c%<%kzL!-( zt0O-KS}Cx&Z&gbzzEN(41NcU~$tz9q2L1cwj{EH>RqCrT3`!CuyqA1@hb*Wklh z5|j(oZG#wKKivVK>~xj_6}>bPw1>)!Z!$PcfA~Z`C;7_-GBQ@TyXHmA!(dEwf=QuX zqPptn4L|0yhNC#Ih)lAO?JdQ}%gvAGM@jS#-z@F1;{iP4(FifOv?i(06W;56ei7b> zDgwa9)g5bqY)4Io%3mHDG+LKU#lIK;`JJplzxL%*vZ*6j_;zORJT=U%FoR*q^=F%| z6cXYlxs37aT|)XDLuR#uMInD1Dh|O3gE~pahk$`61<3Kct7RwLICiNO15-ZATtm@mFfTEiOir-Cz)YX^etAKASqubPiMW@AJ`1s!hHyY2 zI01hv*UUv&=>_G)2i=3#1~?-4!3|a9&J8}EDYhR=3Oz<-PTRYktD_;Z_#~j^xI6VV zv4~kyX*qPXsii$dzm*v?_y}s?=IbSLN8Fn8kmE(p%&;$yc?-Ftm%4Da+8vo95 zN01XSt8E1z;K6_??PL$Os$yAZ-6fBKNsP!bVMHmRCb>rx8O+?Q9#a|OQ_`E=E?nt} zp=lU8Fjp6;Ygzyg7=WR$NHP86x*sNZ$r=PlOrsIiWGrDe4Xn`vSJV1^C9J@eL;n%DD%> zcA{EI9D|;N(yAvGKNL3d`sef77`6H-I=Ew56Ws-~1TRLtHcMeuOY~$10dR{!QO=f= z>};MuE7ydR0hwJ9GN~Hr7|?T|6nQ_Gh$C zM4HNLF7#omZh__f6BeDl9EB1+IA1$aa+a#si?KhA(zdBIBAjenqkuk>`I?0PJ!T7l z^;huY+L#|dcIF_Bm#zuY19s@VnSJMMQt(%O-MNSo$-9)OcD#sphKzB52ZXoZC<)}X zjzB`jv+;W67_&g2#Efj8tuc<`Y1YWn;d$)ghk4z>Q{Ey{i`zx_kPuj}msI=9Xp ztPyGYL9d5}f38B!RI)WPkx$9~uoYThLKf3>gB4oIu^NSVi4wEA$C83rM8I)hN@hUUZQ52t(kuGLY2DERm2%Ovm|Y)s&Sw61z82`1dAPqf!yVS zXUHWdoGCEewv(KOGclp>Zl8I2>^^^IU>V`jsx6CV z@LVdbKRqc&qRL3xY#z_P|ArY)Z-p1U8*#{3?#!wl?{aQWX9^a~nrNc+ZNv%3T6unJ zEuOPKoBM$CRdmy{D-T|qmON0x?$t)*b=eI*cIk2Yt=^XZ2m;sC;;=v4vDex(zVVvg z;sK@-961jf9nmrA_9F~4>0@_`lQum{yYex)q9^5b_u4Rd;P}E!akfc z1obezvLe{(Z~80m>FhwF9KR|#G0l&06z4&S1bfz>g~}DR>AN&sih9pK4I)6At6Wjm z?Z)11FTm7=-z)L>R>!CmRz$6=*CHVn&V7BE1w+0}S0SQ7+C%rYxQ>OL^u$EgZQg%a z6-th3DEbFl{AAHQxIoIy$LV;4$+gA8I*4Sn(B+9=cJu?_a}ER=z%$pf z+Lp2wazevu1aS9TuRQo#tz03fLtwsPtI9;VsR5=T8G?g*Jyz_RPBO+S%@O!6*9xEf zp5?8P0xI%?VW-pYel;gH@OEtq$?)(#eV5?CLVlO=K<&f~oNojR&lhKjLC850p8&MM zblQ0KokYAteGV&Pk<2QP64FfgYs+&bHjUpE^4#uV#(*44trMRN{2BXs#<9muzejuLJvliuj z2@3kUyd&(_dn=PLbINBl_o<0}eNHFaFnI zF0>t@ZTL8Dx)obj<1|--5uy<7M^x0FVc+5IyK0i|z!a`-RGxk6Y5I>$#wpb^88Ozj z7J+4&xppF3;PyO8#%xu{LBT&fF~OnDpZJ|!v6hNFytd6>3NJcd+De^dW^OIP&FD*Y`$yc$EEr-)%4&V5C;O z@biTDstsLF7?RiF#A$tgH>Qg@XHB)B2CnE!m`sKB!^o8OBA@*2HtgeP+I$XHX|F#@ zzf(4D#@A*8qVfiApwRwD7s(+z^xc~|WxQdpIJ@Bmj#P~E82H$r4T2^k!RhqQaNxV6CUR;yULD;XJ1MYA;fAW!>xk%; zPw7;^Nup1P_aYk*2swP7AT4m|rCnUBkWf73lj-7Xe{{u)1q5RI%rX#-P}B1@rOb3bFzJy%1VI-FGV`~BlJ31){KEZ=Hs6c6tkhY02sN?l41Ex}9nFhG^W$3; zaRzlzW_?~QK3f~L`(~}xK)_552aY2Tn6oU(@2$biQZYV+V*QwacLvNl|l&+I%T>$AO@gxOBeox{+EP{yvNm}inMpqz*3 zt!u!Yc*>I`^OK?NFB!sKuw;wqb{zg!#DRlUPJkE$Gy^()@zg~4X{%+X7jZm&vB*6J z@mPkupjr$-<`XIErIa~VSq~S^G9LEjFL0KEuq2#nREMG5mU|QSITwTz`WZ6C^Tv%D z-!*)gJhAMP)>e+B))CNM3^fsc)nOIVwWlW@`tt2VLN(xJ64AQm4`?&NB)|t;j%I)~ z+HHRtt@36z08_aJMYSLBcGYB0>t|XUWuSSfTsxA-tZy$UnARep4s(4QbCFT#RIEHbm00d>JCW$J1^asP}o77DKnd;Lo3Jc(f}9zO?< zcEhD?k}7aVnARMp8F6_i&CX3Dgd$XP=aO$xlR{j|Rn=`U0|` zB?q0$w2;6W0rWAt?XD_F$~U$F9}cYdFTNVfi{5TgO5C`Gl^z=|q~` zOmeb+Yoe=iLsn|Jmq9}oW>c98&yI}jb$2%>aUME3%Kw!XDAvJ#|HU0bvOA(}6Kr}6 zeiH^+UFv-S1SVOf1RNfw53;IpsUB?ps8%bfUncPKc;?o5Od!__^95;JV1Qe$iwT(2 zoF@zEk35vUK9dNZ-7`e9TRQNeDph3VC46BIe$Kx3VsLKFE9P3Qb?|IwJ<{A2)X7r) zA;0Ngd5;%K)w05@EuSVa6w^Hj3qXt#AYu2XV35_v%_htl@sO@-Puxx;8{BnM7x4#) zxJ0y13o_UW_PV({2Tyh)&t~1<7S@&~Ro&EE^+S7%^KX%$hsoN^q_E=X790x^lV(vu zgJdl93OnAdOalX2MjJe$`|L)!;c?qG*Z?w6+icDgjX7yyg z8GrLl-r53GrEac@4n>7n1!ikHZ;lmir#MD4?!op*2!`kg${xc>!Y!o-)DEAP9J0wr z%*tG&?q*o$t<)-AtmpV(5V+-+jx@)fRx%*USj_7z_&Gf?yu+t5>unLe^v;Ch@1uiD z9V*B;wj+adN|fGKAE=$5GG?z}y#m%JkUkODAk@II*Uc&Llkl!nimPt9aq;<)_#U^6 z0?Ah30RKM#z?26HBj)ND4V4$n)GWM$OraCaic4nS!cEG=%c%88+14N=3UOB-m~idH zL)QOWZml&@JFwS*599^>klkjb<4nGqfos7}V=eQDRv?1b_F$i|^m~sJ2``78ATqTo zwHJ@7Nud+!<%ZZ-My%-s0hr3DI>9?rmkRl9&e$uly)ICzBm?Tk)Zc2Vb)(G?AV}rk zeH1{uk`w*Y#Ldoz?Jd%~F?%Ed^D$Mn*r$rCQC56}?doi@`UajVj^9hq5`(jC2aw*XuXo0H%ByJ2(4Dc6zuZ?3Xmxm1BSN6j`1QUxXw57ZiBhIm zU%K};;75p)C>BvpRk3}m_u?KhPv%MnmI5$!*{V0z&vM~kGP5nPJ>z3~RMF#&XTm?; z7J-`I&5wzGJ%?QIlwK}3xeYfYRo9SE56COYWg`1Hsa%A?Zo z^EXHy*pfic(0SAJwK$O$LKwVe1wj(kS7R_@3Ls~;BbFDBwFq zav&>WXH(S|%g0Ba%QG{j)B9b35K9B+3h*4r@G40Y;;J^4dfG@FC5N=SwZXPVKlf&8 z!V6y2qN|iJWdg>R;DJ|*{aDmu=lVA`x}_;3b9F1KZZzAUFQ&p-U=%&XM|rRHxR+B0 z)liLf=*oYlGJT-gkK^BPf{~Kw&1EpZ?U1yY;8vb*lx=kSn^fuT9Qjf* zldfxku|DTY%#e!oihLR@A$gFA~0IGFA^vs`&p5F5(>%_Vt=bH;i2=oqT-I$BXOAE6y-a%X`GT<%dMa1$=Zj ziw46B!vK_9>6LBzh*q(fKszU8vWZMaqMi~UsWFojhkjrW4c~+;=iBVheHp40QRG;y zN4&0wgR(QkFD4}=)?XyeRYlMSb`%)KGjy~g(f^nhHh?0py~_N-vCTaqr}nu;THenF z`7y_x!jxm+PXBo|FlVcHWdh13#6rr1wnQF?1GG6nJfVDuov3!$ej?elyrhBBxOLN+KNNw}DdWr&Jdhp(7<0jSz=ELr9waFNTF4$5PwShRuPMB1w7STW$ zTj2@rJs}=&Yyc)@Ce+mMJoYDf33atsb4-JTg{fF8&a(o z&6x&#;1L=~XC;>`N4s^Pv_*!(EZ%eiYQbEZSY7^>BO#WA-tz159QYLc_=BR2?q}N zNB^4&0I(}Orguy7^nGfKYfedNVV@}k-I~+tm)F(Qk-x>Nf(7o?s2ArMwNf%+>%!T- z0Nz;NvC2+u27%N^C7mo0EEex&5wZ6+NljrnG*&EV!+Kubka0EtTV=|dyi41`Ia@3n ztUOoa2!F=)HWSbolm?Q252bqVpZ&c;9>(Jf$9mYcP*0=MjbQ8ZVmL^aag|mlIV<7a zWgn%pYJ;r=(HhgoA+$$nP&%dfwVMm~HNv=7_bYu`3elC1zvuR)^f%VHaeAPlKq7%R zvwA*yWaSg;4&N7Z z0$N4)DLraNZhaEh1iqOuugVBaI5H5(HohQL03UVV&_`sLu7RgMN=FcuY*k{5yZ`}p zHM1OFn}}3Sv>nwOFUu{#8%ry$cXY^XVV89HQwrbXOas6&#U+?M_Q6Ca5Ds|UQMB92 zu?Kp*)XBxo8zXZPGdOl>N7Ln4LEY<%`0#nsjQ(%teP(qPM|%j1g~iM2*aob7JdJtE zha6vAH@zQI@>Y?FgGSptgLZInKzcUl+sS_*wxSzV`wQ^0B~qsYO|&%*_ijIk>xp2g zWO=vTisjZ8<2!*Ph*nxpM2ZYB6A;EBBt2!xngm&|Br3`5h`+WPLJom<_B`6GeS|&7 zjn&vfyAmMA9d-wkrGZ?4$?b&Xk)4=wZ{8I7xBpM=2B7>Y!F^z>j*MyFa*Z8ICx28; zXIw@xIGE{HDvZc6YO$-Ge=*aFrN>nK2x)c(3r=}p0gycI$I^~pD`FIowC&+^?nO0V zXmqyK;hI|tDh@x6tX>RcoemnRvDL)nvSmpy&0 z*(-bENmd7&VpCDhz;@j2VAuT0W`L%L%2C5wO8X-lU2f|;oFD!W7cG0JEFk`XKSIPc zId>O1!TfPYfGUkq1;gh^WsXs>S;`smqq~mEwsdk83!JbHeiq)t?D!%?i&C4xiJuGi z)L94rdo(4X22Gl~vue~$<6)!qq*cC%QS2eu{%qFhd!Yj_Eb7T(++Vg&yrEaYa=LCSMH-K)YrntCRVvyD|BAI^RrPlmbPcFNHF{Jr51%5shi(X9a z{cf}I#%!QCd_)@>EQk2&+RIc$xwqj)HZA3Fa`ARRXVYrent~VvI^7iS$6`fg(L%2Lgm*FpV^fZd$2WE2P5ej= zoAgR;YU37ZR*cWebu+ODU&Q`UgHF=$u+|+2CRI5@tl_XuH<=gUleRhEr;~8EzIAu9 z9{QlPMDaAPp*I=k>DjEoFk>Y&!igZj?)yZSicY!Q;aaAu^z8C7yavmu=Bq?mgaK2|G@AzB%V`gq~*Wr2%dA4cT`m)3%I7pbRi1cV8BJT zdyxX{ty-K+7f$i;3nYhvSf277Ols}vo}fbKTt8BCK_~Iy%aY;5hVTM-o&Z$#3#-{N zp8r0c#yeyX2QcQq7uRLFw?17-=H*RgJG!#ty|U$T%e?V_ zyc9pUt)e9fuiurd$avCZnKtzyZF_(tj;gETWzWY6@DbfkJf$bZqlT0jH7R=HaA z#3))E#HN7MWA18-@^f{qow0g#7MCPHUD>sV@hUsm2SXS^*Yp66BlAwXTZNUEv(1CE zjq&=0p9&>W!mQ`BH7?M6MG2}BN;N?>bz)=n1vDUWEnvE5{kAuItGVWv#)CUJ6C`$f z?vlu^3xe99ew~@wsZh5XDO;GU!wn&ATf@FX1JJkkB~;AEY=Xy!(zz(GR8sgaALhO8 zz(T$KM=k)8^O+E$wy#c(u6EkNhGT>YyqI9IwenViZ_L#qFmQwpBodxC{(`5JVzL^TTq2egJ?BbX>NS~2^8dktb_y!BrY6TCWO)Q3ddaz!aSU8 zl`#YI3gIkE-A0+XwIeul;H^dPLw2i0;F-+J?Bq}HlkWIZ#`9e27=dEKHrf+n72Ilbw!{xX9B7+U5@dKMioYmR&=J2!`|VTQdtWw6-HKeNvlI ztJhZM`)RS-mJFgbM5>I7v7}Vz!V2#pYEyQK1^@-+0>3?3j88eQRCVXr-qMOIm*m3U zPD`46w%gbyh^UBlabHW4EiFe51t6Hk#dFU~6(TbUL5&u|{SpGpL5E?t(?Dq1?-Csq z1VOKMXHn`+*|k4I`>V;;b>`V=P9Oq@p(p%KCQ(cr!;@(;efni%f;($9$e4Tz4|NZ_ z@|P%MJ}i4oY`+JrP6GX7ly&yE+fBbt$ZZW|MDY=bAnUh(VKV#ED`rY*3}T&oV>dNm zmvxIMNGZfCDPl>REQ7E`}<|g7>oDY2q^oa9;Wxs=O9^4 zmBYTE25%9T2-&#?J#T~zsQe(CA~~O3_l7sP4&M|DOnJzH&AF>Top(tx^6H%`DRrcg z=p|j~+(Rwwodvy*3)nS5-qD$6NJ1N|)ekwPoY32n-On8hP;G^7ld~%xlfDB62&IANtt2aZnaI?z)U z_}&DagV!PHiZuu;cbiDqyHqDk2#0`V-9K7-2R$de>Bhmo)ejZG1i!efu&73~;1wbC z8`YNAHqmrMLHmB6?S=l%5LIS?0UT!=6wy1d6ZO3D_YOX5{--)XJ!jdKR7zn8-Ufh( zAu33o-FVAQpj?t$3rr%>a+sAr!HlXtnm(t^fjIk1Gie4qaptT6PE_!+YyVz zJ3Wx;dXfU_g6GBZCUuPDUrI?mtdM@$PNQ9)$>9Jd}ApWP#g3}L%sAOfLH=`2PjFbgTe-$+|C7@?fHe=%r1 zhQRV9ufgp&D0P$>l8t;I9#N_mo4i&85qCPxKBFhL!l%9|WB{5+vVH%)FI*b_@9S=L z8FYMu!iIXbnyh)NW8()8TM(#?v>Rx_!;ZGeij%kB~gQZ6bNFLBupM8$x2C0u)uwGZ(q(V;;f%wjeZ<3w( zpa?Cd)eXxQ(_1gla%#ba?F`1JG${aDpZoR|wRH90xckN0jY6$Sk>R}yO%M7XHGqZd z>HS`K4eG8`1(v2q#Za(A{V>@x$PU-6dB0D2V>tjfOf>Q4jA7`0Gh`gh!wW;0KFLz# z9${;VBq%M8_E?8YD(wFU%u=7HK1Pbv&vA8Ze$x5`CTJqpn({RQL(IGm%;y4_Qr0n$ z?IiX_hW?CwT@`-Ng~HK?-Isg{pbywsh}Jpk%12vKhTIML-SC7;ZbS4$)B?P+%SE%Q zNJjw1^QVpSvX5>Iu&ssDHiTCkYW*_(P3Q7kwHU)n)Hx0^=LHS4BV6quUyf|KjAEfT z>hr(~aI@=U{E+r`8Ys5_Y#eup0a)lQu!>yyiC7(5>#=@;MKd-QBJ>Zm*D<9>mY+UC z63CkO+R&MqqF%}UB}fN%93X0>nM}^E*CzS+h5DzifEjhlPpATZuMJxUwP9(i4%~K4 z8A%<^w;WVfPtjlIq5y>}*)wzco#tGU37VBFgJ*^v{ld_Far*cZNyhxj!WydIle2eP z^=x-l-lPIth_*pEMO3=lpsvW^UFlg)%b)!d!CIFE6iT*GOdp|aHHW!kL+93gyn}Op zbg~;BNd+w~VjSa>Wmc*AfQmOYB31G~>8Bf@oJ9Y|f_4wXejdMqxSqFekN{;R*!#7v zqQZcI;NgV1t)(h{(NRRWj_sI?uY?}I=L17iN~PA_u3|}>dhnB+^v-jPzzJ1>^5Wu& zSgse|2y4%Hr#-SFUGcx}PfZg_&Okh_|GXhMhTdP`;SY6yg2~i(7^~!qMw*2WcEjPC z3VL|cuLlKDa0zu;2@#2JYy8;f&<~pWLLRd}Z~jXmD5msKA}Z{}4<4@^N*=i;BU9WI z!^bIqVWflb&j=rRwa*zW(BR&I6|ePH_PO*RKh107AAjRaIX&;e$GF5c);%+ioD12# z0~jhJ4t27^I--aci3`ZcyclbD2V7kNn~-MUR%37(k@08$jydKvddTcqo`p5jlhkdm zk78qI9%eN@V8?+r?cvE?Z9+4ShWiYDB+B#sm)gU3#sJzcx`L$!ei79#IpAC?+uO~y z+5q^RmQu7ylstoJX-i~i-mxx?Svt?+;9Qf2MjmOk~_vXzX=8 z^{brexHOE@z)Wf;taEn)jL)MbXn;QbJMWFr>r}pxTEi6!W+US|=-d;!Yd_@hGE%5pbI8Xc zn~#}~R;hP~8EA$mDr$894DGmRC9Dk=Bmvfg@Jjfbo?m|NV{dklrRQgKz_%{!Z)8>$ zU}dGGO}hs4m|6FkaSe$HJU;iJ@WePiXHu5CcSzU@VWbjP^Y~{QtQ;K;A`wO#G721? z_1U!dAz0tjxN~ghYE+6%otRxDYt*I|+ z&_(;KaFz`UTM1 zPe^{SXKQ|)B^VgtKUTDLXyYcCO>i4q+Yt$7x)SzV`14_7!?55G8BEVCg2vG=B|2!n z_*u&jY3T`Rs_RJ%X_E@Da6j=0k?b!8OLOU8v?aE8IVM}&y1OTz6+^?_y6@BV4Ct4^ z!GfUIMNczXi5XkIgE5D8}I`S>cIE zjMBSXegYsfNf**%Ln*EX*Cd1s_@oj(!})ogg={U=2R5&%+=bE#M=6>Dz?@{~WsrGX(qT?{kkJwi0K zq0Yp8+_lhT1FjYDraJ)Df*Clsu&x)mMSTPYc(pc1TC!Brq)wUk=5}B7lixAyF_G`{ z7wyaI5~yNSQggum!#x$b(iDamD}3N8ox30L+RmXTJvC;C*n;n`asjtTIS`6n*%Azk zxDz}(!?Hi&x^UOPYxf_2{e#*;X?I=kDMzZg>3R`IRSv4R00)Mc$BkS#>ml4e3tEwx zFw-}x#~T$%I=5$GpFhQDxR7EF&vyhyD%f-q3K)^hoOCuen=CIY_-LD3K^SNj)yTrH z%}JE3cj+$Tc4?1DMD+e4DSxM`b}*Eaiw{i2t@O%b;4z-9f#-@BoSOumRirWerA4Y8 zmkmDj2s0xD*={p^L&!fw*Cm_1vv7`3H|cr7q^PJANev#Ku!oGm)N#<0xk@r4J57#P#dc zFG6~N&x9NK*dx_gi7?Fk@EY?=a$o zy8iD89XZF=vWX$FrH|&GI)gp^3Z&5wb{(_JwqaSxXAM%?T65d?Z7S;gy2zkeU4Bj- zu2*7&%u7Vi^J+E1MDxP9vtR96~de_l+sGZ}=)REo<=eRz9_R zF|=d%sRd$BMy8s=_vIFhO}ZcIwMbd5K9{*2E}tsas-4#-F4nr;0J$8s`Q3EX)4G04 zRS=y~sbpMO-CR@&{=`C)ya3wZTKg8gez@@tO4VUK(5C>l=wVz9IO$j`m)D7*)>;ojcr169vSkB)+WPW z5_@pR{&LP06QR>!IszXPYLjV;fl+yA$1yqPs853JZ#vh*z5!#C2W2Gk3ME1ll}G6P z6vV1j4&*(;dVAwW+sWxh4E5KFb3QgWWtb$v?C;-eBe&ywdH9V%ub$3XSxkO(`hl8H2Rl4%oD*`&^56=Vs501uo zeHvEznqPL_Z*Asa)6kboElxSRapjehBGqN4Ma(T}F!$tk@&3muB)er&<<4so~ zq+JZwDK|{rr+$@TA~p&6cYThOZ)?aU9p_23l<4`IlgL5JXTg{ggdFywPrZqpLE4iT z%nj@{ak;t-EpOvVDxIkh{FdT8n*5&SAQfinZ`a~c21aDLP5DgLeM_&2%%ioJBd$?2 z%m2t#_4*iLG!3YK>`I$qpQU8J0Y<}FM%EYTmX04f0pD=MEgxN#hNy_1R1=_tX!Z$RN9YDLmdHQMn9d3=@5uF4+*(nES;=YMy%CMFJ%z!`QFQg~7B z$G4;m-b8UU>eFp>rvWLlC&0>8jaAYEK?wI2-)|r=HkwIvf?B#lsPO4DUn$LS#Ua2W zd80!g)w7xC%G+Ya@QK_hN09y;PU>9+jGc?dOPO{sXv@k$z6Dg9-q}VNh1q@r`>6Id z&A;hoWQg`uLSo355VOalnwcqI*$YV{mS7JV4xvGSOMBr%%7Vn9t*X(zr%^AfPKfRx z%a#T4;Fmen0VBOgRvsHS7qSFM1qFsH09bGTrEq3M+7y+elf8|n<~pNOR`_g-WmFwv zEvYB9TiZj5_a)D@-|6e7l5suJoc!@G2AYHkmoL>q(A8hbeVMOyV4D?+xTme189Nc^ z0)XSdIQ@T`PU;2V@Q9iQ2JsbgIkeAJkZlE3^c5CnOy7=<2yB1uTbU3jEc!b-fU~tyLt7D|?ubIDVK% zn-<6UbD8A;IOwo`-2lX=zPzpUkKaD? zJC)Ss7_-BQw2zuYva`?$roF9cj__Hlccs*Me`-XL2mU z*-9S>{FEJHzg>u^rt6L9NhR1r0vg6BXdhjO0sBF%%7V&y$4B}3vvEm{;?0+RYlDd7%DIKTjQDDKi zlj^nB>;Hh61K$fCV28iq{d`nM+_vhreFulzW!Ds`Hbi z_)GQuvf1%Whpl$X8a9$Qu~~Y!z(Wx;RgYJFVSd*K;$Od8<<7k>bNA%67Q6}Y3VcwS zO*&UQKH>Qu9~JL!36W@=5z?Prs9pWfZsLljaqY`hJzo+UR_Qe_EQ8Wn3nDF#sn{zN zxUkFHmXTOf@UgqKDRuNs(XjQMBi00hvjN?NsO}-fb^>NfiiQMxBn5Xs zpgBc3*{wp+1y(Ikq;iEtPr#3b75l!i$tha4uO91C?=*1F9sO9BeEg~-q$%#_7jx!{ zfdTWri1-I8uY;$ z?CVXg9B8HFwr8d`f{layaU@?pcP5tULd4oN_rLFOexg$E*5F2m!`2p)Y*9comFy^s z?P_~V7on%;@jPjLej~n)K{~JS^nJhfLftxyAKf&mf}o&oXBOltm2#^B>;k=X zI`LQ)f!{#PJ`#WIr2{0jT>w14fipu;A9IlcS>2%7>kh36N(xn2WGINWw$i}uwew5|unX)oN?Cf3O2Kc6GiyPk=VgP*>aRh>id3FQl&EI-|gfvi)~; zP}ca4BmB~!^u8{i)|!+9!5o-WKu+XUG3rI>m3G^9HjLSJeQ$2=K*ShI*!w<>9}8za z*NGZ`N`IX$Qb;*yD!`mN=4)w%(p+t~@{`x0y$n%Ve<{3qK+ycv#V4gkl+W&pBfQLIDNw)f?=Tm>QP_u-Z^uIn>bV7Q`ru#xej|~_$m?!DGM4^*j3i)lDx7QM=XBtFkIm!Z z^qTp%20EyKV2{jb%WT|d%egv`=niiBpy<0Z!oU7&9sm&;{_frE18kpXzBaGz_rE=6v=7y>;ipsj$JqQ4BH&X>L|% zHJ}^T9CH1VOV8vm)lh%78V1GaR|Dfo**(4R=% zzYY}I0_XGQ336hUUv;bjSV}M>IAaLel^80lR@OWcTG4$Aq#c=FYalT5LlIJ#VtJ!)x%>Jaz$9&akA&^1dMAv`PN6JMIh)gfOpnLF>5d zU7PY$KXhvl8LvGRhJIOWUUXSMd5xA|$u~gBfZL*3G|j#MpKkG`Yg3V)UbY{%Kf-8L z_8g~ZfK7{s!jU9^6!rSUwd)f-U#6p_5=}^qCN;8z+g02fMLMNHkP@2zI{8Dxb*zP? zH{%R)lR>-Se+{-X6w{(Mz`v!4FNFOU2j zn>)^5=`(QYNmF->AOsEMjvAu3-B&N7zB*T-ZX~CO8~IoXu?IBd(d?=KY-J8*C&-GJ=DyWFM+ec4M6G3DWICB9qyWT|&}gKMR46cuc8a3I&7?Q_&3Y@wG>cLEL(#ZPoF)`ze1@IggJ5L{5eQ zu11w+H+8_AqxS*_j-7L@}Zc~5Y(N0?8FW$ zu;tY1y&m$L9TOwZsDiG3AjMC>jMd|=)(uROYod_w9o zm<9e_=~r0?P4?N8+<R4i$dsLFSK(WKA2OmJn^Mm<^bH_9!oU$rN=ze7oO#`v$r z+`9kK)D&N#GJ9X8BRt?dmIY1iMq{Z|jGfUs0$!#ztpVp-OpOVtdV5JUFUYpR43*$-h8JA5mDbaX@5yu>ik)}XlbuDrs4l=q{Z<`1X4rc zo`Y7u+Gny6dqURPU4wUT|A^tA|QdeF+qo+NMzHC!+%rZk>Ly@Bx%J1%?Ap9h}< zHH}LiAr&WGVhB_%9_)&2DctnP5%cHWuLy~qfAYLQc8>b>>E-EuLCKyhis#8jyba6( zXB1bY{-QE(k^@1GOUG0WMl(>oZ1+1JaMhJ`eF%2$U07 zK_Kh-T(`2{iVThz6+OyxhCaFCT;)-S^DgeTaiTPXzG+x3JUhVc=Mu0vf1d83YzR@t z0%Ds6#**uHUi_ebqUnzc5AGf*5UyH@Bz(dt?Wf_FC+fZD9XqL*EP81dZI`on#3c-I zzm-3&zLmgEN^T!YDND89KOPYsf?i$enH$k26DugQa&`7~g2pGM@spKshaVpQPR(|? z(!bO3WH1dYn+q3`B@?G4T?#CUx*<&Nq0393$_4x|WH7fUG`W0+hwOCtzc14GTFKSx zRNd#|@HU})N*SybG%FoSZ0Et#{jw-|=%bjWcAh7lK{^uLwSU`m*7GuL#MEymVa-_o zT-JR0dC5pa8Y?u#Pp!{UBKirAq7rXRGg6{rw|bciYJh;}V;%HARg9O2ZcZ)ys??7F z8WABDqAWDPaagZE;n*%CZl_J!azC z9AzG6jRtNu8EHB0Ky@=~8z~aTnRI^KxI{VQ_zbIe?p!Z!%8a0s*r3FhV^M68j~g(~ zvnykIt{zPaF+m@X7ygJV%jj%3XW4qjF}8!GIgk%V&hS@Bzy7zPsGlxHlET zS-_=_CsJ|juD*5ah{r-8@Hc*TaIK2O|x&^IV$*~Z_jE|<*+`9QosadfSRg1jn5uJBI zb1qk-TnT(>Oqym3pi+dn`k$i>v+x-c>L}}4FxpdkdV0@tvyV{pBWKZ0k-V<-A|d%TR(*#els)^7t*6HU_sBFJqi9&#&xB($znr6Cu{OObDd8kO*zsU^M@55uE+H~iP%O37F z6`{V6=m9lX8val@Tr7M@kfbM`Q)_!K^VB&J)vx+t4r4m!Oj&1C z5Euv^<(8gz7plJxz!xz-=F+K&D%T>9QVJ(7dlb8Q;-VW->6^8Kib0=l+%SWaUl1RY z0AE!fTLyX4mRwQZrK-9VxJ@GHpzT-m;VKC1-jMxwH>~o1`0b=aDW%W_{gf#*OpOMx zYs|#xP(OYbmQvQ+fjXZxZT=p?ob?wJr52hIlc z=?R;lUmI$M5dKAG$Z1KVr3neL&|^zBXvMR43d1Dc2t*kXd6(ZHiv2h#==F&W{9}d0 zzly_RM!{sMgP(HXTkuB%2JVat%{Kjpk{?ASsaa7cg_mOk?b|fzbW_x6mSg`3f?b#a zhyXiFOV=;NP3G>WV44?sti`-bYhluhUeXTx<4opqU#5-dCTeBK#@3J(XGDQUyMQm= zRFy$kC!ox5bG6DK8)MAm{hmNS&YfQj%;ZUG-o zH@k`;<~mXYBd;%SH$51_gq(Kp$XvNGpyGYhNH((5!*~eLkR|#fR9$QZ9t5|aQ{1VN z^U7JfhOvb$@H!c~7eP%(BOAp#dogh8QH%Gf#vq@$MfJ5F$mREo7FKGC5AEWP3;GaI zcu~y`U$u{bl>gidH#UV}{U()e0#sB*5c}`jf=K1{5yMnOIgl+x*i9Se6g+Oa#ujzx zE$5jn;zXix%RSWYoCCNXogKl_QT zCfB4YD>uRl2I-J8vQ-uZ>?@|Am-0r<2HTd^nlmQ%6j`6iRo{`#_p_~%p_DOyZvUSE zdYy}^$j;HYW%)I9B=Fd9Q8f!A8MIm7f!a{ZpA1=skldh(tYp7mg1?slcXDD!q+zdu#2 zCIV}5Z`%1aJ7W*`^P+U+nW6GzZevK}RdY3>B1S|x&Sz5XRl$qDKZT6s*oZwHDQc!U z%rh0(B6&%3TYNg!|DPyR!nHNZb_n_o2iTK zP;dcEWM8nEg{0seJg7f*Wn7BM_v$=Ok(4z$-gUsvwCNilx%TaQLK*xmqrS*E_pi_z zlSbcZQj`=d4Vb(!(nqmU`(8>Dhaov2ug!o(FJnsaC%4Qmf=Z@*JcLgM;gp|N%WgCF zCP6@BXd`A_%7R@vBu|9fn>ltqT$vT6%d+p;xON+MUGA+SD@&kUbnDcFpvbtG<}mCg zI-xr9VqSV)nLKj=VopQ>fuc49h81vP0P{x&tRKy`@1gtW(YZ!yFsdWtNZE(DJeqM?3S4smH{dC98e%{Dfy*(TW50hhi7gKB+g(k@^~` zKk^|jX}Q~JGL>H*Q$35D6C-T228-ccUaw`mA0mOqlAOsnW%opBaM1cyjbSPqpZ7bp zqdHFjT7I@75YW9TZHgK3X?i?*dc4Q_=P{|Ype<^kBaRZ=7`)O&W})OqKH9RRh=Z5L%X`4*FhsRJ;8@Po3Q>EP2|DI+1u!^R3B!Pz6+xf`HRUm zO3AO+ij)vF2;Womc6at!5VOxmmurN{iV@{dO7=_iYnnTy=ug`OdKufjYY=)^yDb$` z!?W8m5_@WcL#{7x7h=BGWdynlWa)&F1-njMGIYK?s4~VS!wd$_{5aGv978f)45xS} zvaF47E-j=EQX*cFCjStlLjKF==GUr>orKjju=`fHF!f2o2A~&ya5{AueaC6w5~x#r z8#83H$`Yv%hH7hMGuiU)cqwYGTdK8!z^kc?{r?!x>Jtw$TuN60a&L(p}so*V$t z`eE5$?H;j8)%PjI35ENkpBVudLi%@s$0hNX{}~WiEt2Qy2jCj1w0{ZC%?w`tD%uzS zT}^H+X5VZcmj0jKXP;}#I*7M7_ySP9P^P)0&YpF7OaflN z&R_ArY53fabMKEGsu?XB-X{mVw+)ky3HQ>fxj+R}RU}hw&<+B+9PH3Yir*?_fBtcN z=d|f=eBXDWX@eUJv(}0GA>M1Ll_{U%Kr(tp=s+MGU^o+==W(J6^iRv%o`#P*!dn(f zab!P_RdZ*Zk@+2ScRCTVJ#lC3MhyI1*-8*ADJnHQGWH_r;N4h^Srdhg}=k zXJgo^#3&=OjPGUeVP8Yed6mL!$wCgcag_0 z5-6>u3Q^sjEFj=Gmj{YFakl~!e5d?7=AR5i#k`F-DmAIBlYZ`g+qdoLKh=9^c^3+0 zUgwiTpDd#pyTUlkQErtz8>uGOf0>#l_&6megbFJ#T)pn7{*r0TW8i;TyYkL_E@ADO zy9;xi*AO(ncCM@>V3NkVW{%)kD zj!UL7=x=CcToG2N{K_XGx53NPwTdSkTVET?)TFGRvaa_0Qj$`}K1J$r@?hiZC@W6Y z)v%@wI&fs*k-Li$BHyIh#DR((CJ#IpJd|IaG^LKJ^fjgNPK8&eiNhn7I93w*L9(Aq z(A^iWX7vJ?KRSdAI_XVaq1D+{ygBWAjTnQz1*{;hFKDDoM52h_6!&+=FmqV3anbjSh$@3%|- zBT$r0K$H$?1|ni#uJ(qv!TpYRAa`}pWnehS(vvyWt)jOH4Od$HE3ywt;BXg1HAY%c z^L>s_d+FP5@*{`xRQt~8q z6w%62cZK=?W#%zMY4myb%{vQ5|5x;NcJxNV-c=AJ-p{W|Jk;55*@r4YQb>IIq;Ks##+ga>nMncrM;STq+w9~$%qBJE$gX-YfOyM#Mpvm zNns#k&_#|jWE14sF%Lnw>WQ|#D-Dg4(7`ic_>W0yI|a{?#g4#HpdjAO;T%n977hFE z{*?y=vS@c%gPv7gtbSmfrPEq-c+#x0`*n|;M&sq{F$!1B0{7>SfS7`qNcBBDzaRa6gHX~4P4DkETC?l{NY>U9EeY7?>oUct9S=uW5 zNbDW>PLiKC!5Cr?xGajz3$IhDaFne;~6tZx*yOIyP<4?pg%w}k_jcZ8h^urTZZqQz5eIyL1MUi{wT{S;tQBRQxx ziW-@3rEk)Hs`FR-bA~l3FF2Yg>lWygNUD_)pdV20Q}COkOUB#_YxP2ze4EH4lhpMF z!>;p88^&*^vJ|%1+}9s0yAd!tGV2)|n+N3DGx~%^LHPXxQSFbINsS_eCB7?)G1XN* z!KmbKx2e}(VOxyDJ~P%50tbl={7SHHrcTFF2M{dq=u&k)w&0x%@{wsy-l0%Lim&lh zz-Yn}WnXSZc}yF7&N7&yqpO`l#C4PZQRu`VrEQ6TzaTh%#XOnl#IC&Ms0sU9V1w&A zYd5FMww_mCWtv81KczAIe35gsB&F%R8q%J`1HHZ`}5!pgP!4f zJU-M1WA@Alfk7S^B-<7syh8ojl8{Er2%YUmtl+?Key||xo%BG#V1p?zWtQGnF)WH3 zwxw)R_AUAy#Fo!vU5+O^fu1ciB=Ckd)WWM1iIxmb(!WfRxUm&?Nm?CT`8*ZRUCvr) zj9zM5rSv7W{I?-}rO^Q%lgE(hsq4Qs)cMHwxS%!sOqj655Bf$Ghu{yY821E;J($V3 z7_Ew270qi`{ediqcqhp~Y(u}UTeQ{%G+0T(iL&p&{h(D_4x_!`8UH(bn{~JtcUe7^ z#s0p8Z3mO$QlNSjGpf6(IUcVML2B|+{XP13U)Y!WZ8W|+1B22~Bbz2lQXw%)Y>@C) zH6|o!qXsh`=E!@H^L5{?;#2>Ij9%y`Y!=LJ6Y0Fgs~}@`-J0;g+M+=^6y*aCN(so) zOB4p=MCao*be^;a%b0$lC#~d0OLK7pZ6m{nMqk!eGJ3;pCV2gZgmj>dNG3^wNJAyP z_${wXH=@Gkk~FsJX?)v;5>wPEhQUPW-4-gjO+3>1Q4j9W5=zvrSaqgc?BW~nO(2Vt zBT-Cx)_uLn=By}J0RKM#z@U&IQQO(ecn_4wql%z1*MESE`#O7qZk}|k&yr_ZW1g!m z-bKrGTDc~NK{yx&bBBIUSJwWGU`}e(KVmd567843D?Zg=)$G3TB}Q5mvy5v0Rc&v4 znPwf>c|GxFoHGX8Hk{N(^J|45m22-iDtO+VLV{Xd<~9v|x&bis6n@?%)O?~Cx%OFh z;TRIDMV9%dc$wQw+w@i&ebiB|3EZ8=s`i~=AYGI7LgwXT{CD~Jk>R&71K{lGJ3uuG z^-@f(Z|}~t2M9d>g(7Z*m;^n7pq3(YE$7k+YUu}gH{(+hnVA-l*vyW z;S54}W}l~vcD4x$VHnWbP<0R+4F3yL^ zg>3D>k4A$U^Otkp-N0tGIlX_JWCx@7J7ByLt)3fbfk$pnAKu%sTuz~W?*sguHXY2M znTMQHM0&ofTh}3Y?|3@L5s_Iq?r~LDGOjcz)84#jJRSqc7(FOBMg#bdZ-ZGr9ylWX z4fi~Kx7fKz3x{V84i{LZu9U##B25HDYY zq34XOF!_b~jZjRlds9Fe}citH+n45$R2D zQ+@?QaV`FU$}oT)cIfZD6}|=(bYcih>*Si3pzMEo-KPSSK;O>SRznr3{Kkg?#2B;B zs>JsOhh638zy!jz-@Ux<*C&JB2M=$uYZyqajN!3eP_HTz;GxJ=s`BL`6}J{sxVFzU=DfF$nWsK~2nNIT$c4iX41CHDK14xgQYTXxp)<`EboymTgqmrPc>id{<}MBaljO?wA%;vy38ais3Uy#FHMp_1+?Y za)k_F^2q#H@pLo0zO~@;ctA^`l{dv3bPNMg;AXs(R%Gx4h?C$T0#gG)wG`W&M62_3 zTF^ji@jMYDVaZ=TQ1QKTtoY%~cgdnW>_&NOgQ$U?M$~s=(*3w^xV@UUKz1cVv*MWY zG-*_*qdq5g*vAP5EHN%{pJkP@%!ekX@Z03QWcwom7>&<&b?b3WL55Se+Wn{X)Ma^y z-5Ld#Z0M8U*U8;AK@B*&JzRp72%loqkX%7)3Vog#+_SoiI{PvoP#xn9rRjZ??#*cW zh2tOwVO8d{=$wbFzb=DM({yCR z?U&wf-8Tt1ae-tJG{tas0wP4NbLXx>pNveq>Zqne;DA<_6QnR#6hnFR| zUL#Ym6!xU4onPOb$B^#%W8B*3}wh&c61%Naj)HOw<``vb|okkG~-qjr(&diZ46IS(FbkKKzia*Ja~Q`)Aa)+ zRPuV&MYJQGS%*#v^qtd3z?bBu^z*-xwyhgU681vofh;mUa96q!-PVn;Z>LnSN5B*C ztS-e0qJJ}#LK0v3UnQ&$anuL!T$0ZjvMHy=vM$gtTf5k||44;xRdmQRH%p4UEL7YI zW*eCh3U@4@+roditHkbxv8(B1F093CKmX_xhc;-w5}=e-H|#FfnF= z<)99|N33&lUP;t-`h5_Pec7H&0NC$%)+2>aef`7{DDZ5v&$RKWuUM!xHVFO$;NYd% zZ(701_FPQVABB00;sxYmI_$TgQYPHkNdaillT#o@dJtR!fepv{cl>e=ulH~9bTaY; zyaNki(bR9|$?HK=Xtk_k0qW8lj!_rkY$Xc4H(xvEC~%Z@G}t??>CxKRD}Qs;61;Dc zCKrb-dWuH5a+uWWDz^>;YNpO^89Y~g-SevyGuE^mzB?Q%;B zw@y)vv-Yex3S`ceVb+X3mMe#^&SNu`2tlV?S>u9dOEh6k$E9- zxOJK9AAOEHOaII+V$5@*+3%eXAWJx02+Iww*1M^yjRz{|jp+eTiKo;?#9Db9f;nQH zD$WG;S)Q*CUp)T+-?wN|@KE4vC{ZUHbAB+^7cP!#7I9B?H(%~w2gkHRmn0$w@Pi~3UrBG_>8|tO)?ETq>w*F@J0YDg+&pL<>;=2CjWMFFD z@fId~x`&xJ4)7e0J@Z6AOXDed3S}NN9@&>K&3NEtjFGYdWmr;QJsm$u;}_NNl(@o; zgK7HL1<3G$hQBK#$*OGnnm(F(h<5<~8G)pM^A|S)0q^54h}1Cwn&_N}bX-1?ak!T= z;>Q$5h7k)5{*^G}qn&)i%u^d6MPqV&q`tZ|0=h6(qhRFMHbjRJMs+cEkWpMHnTOIW zoapT&=akJcUYeVjBc4;3nlzm^E*Z9tf|5}oZ~H)0PFfz-R8Rkgzm+r{a$-*;S^^%4ZhbL8m|v-^t9>UaNzq$m!$3`(jqf z>Q1!3y}G_&Y!qAwe*K;L}OJy^)FLik*zW0fjP$&=LD*TM_OHm*JJ zZZS(@^2W%S=%ef&np{?v6R z6+)H$wIr1|B`d(MpgbB_^oO;QnyH1%B>0}IgqEXt_nrbQ_S<|OxQFm32Gg-&;nnmV zTK*N;UEa1NQ_trr=kmtt6VV?XA~RVk`SCK@+OItdCwQB&>rFO%T@L4CJ?)AO@AS0L zuL_ch(?Mm<;A#kS)+yn~;KH`*!@ri{qzo<$h`asBI0?(}Rx{p{o|QkwmU!B~K*d_Y zQ%;gPN_0y#xHReZK4n@DiHmhZ!O1s$67$n(Z4?4!TULY`LDPxAABw3 z7z+A6?*T#hq8{DQoZ!=-i{RJ7* zLjAhwXDHd9y~;Ftc%c~ z*EdHgsHba6tZ&lTZK~L)t#*ot~C_mJw@=Zpw8UkPR zuP}Yjgp|RZ+LkXD1rSqBHc_8KjgK3yA1~DpX0c*NU7xh z7I7+}8tTXVla03r7QaK~y*cAZTl-EkA50U%YDy*@y zIoo6>F?6l1@b|IzFfQb7`4nHQ7`mH`V!5;*s@=q0khtNY%a#xX2EAk1~te{^;c{rJ^ZdTfG*?LJbVRYZ?9jkZ_?)?p&3fa7Tve`j_`g%Z zISbh`;DKDfH_$g+33(Lfo$2fQofUm_ZDajTUiMObpA=3NHCD}mJnmcKclXt9R`X z>it7Z^4~d^;L3RhXW`JdpC*hACp#ln&=L!g*quwf2)Zacc_(-m`~lE=3=3FoqoKqv zzc{8B{^Wlvi>jwsfCSSw;yL$Mkg9XyL>_w@5iC|jGZ5+TSFwaw>9zI-T*copyb+A` zu;(=(m5*L-ci8~JR`Kr@eUBJ$B)(c9QARR$y@Z6Y=OwKRlg<=dMaVU=clGJ~s%yls zsYROvx=32sKKv>oFRNm1`!tV;k|b(>k*(ASga}>ut`I#DTOl#TA}@pbv^1D^ulWqD z3?Hts&0m=*4sHKnPFFTO!vV$|T_m0smB)|=0wSqCzo1NNJjG-lpddF;t;LMDDo%8U z9Tu`K&+%p}0o*2`Iy4;p%MddR+@BUOqdG~aS3l`S(p$7r3~UQI?95PY zmg4QY|FLE$1qmTr-w=r72YK+4bt}V;b%Uj_0R7tGQdbRSRGKIHL%eM16iAI~&hkxB z>hKUOlfl=>FYJ}G)!D^>E099j{Le?tc?a43v#J9&!s)XxMuVLsUvh}fCnR_X5z8O^ zUMurQr9eXPvJ&o@$Eh5nv6CkJwc(9#Wb3)w|hkYtylq}_d$Kb+sb zY$KMQu72JckVMc-NhTK&(8iwI!?{R8mzbt?7GV!7sCBKVJs%lN>H+5i+p1y67ImaK z0KKT=;eqP|B&RpzPN~v=-{>$b-0%U5m`_xlR5uMH^PT{=cev^++E_W;P?zuUhnCi> zPH{KOC>-BH0z}#6gp_#W~eBL(+F=8(2 z+6=#)z3Y0@0H4z7s^6(Q4*_2(i+5j}xoZ~oGL*ckIF)Q^cOS`;a9Gw1o5t4)3QiwE zz0^J8<=}A$%5E$~HEb$#0~$=0I#596)kSgrIjKR%D!X;5~UjeU_4qV_#^ zfOV`nzaDLjS{s2iyK`9?bhkFO4^kMu$3co1wBZUoD(Mu+CHLb((Grr_=P+aCtIJ3)+k`@ui(&#_Lv;3JIE| zoe6b<8puM+E7eSet+-HEqnf#wAco|^r8VvX5TM9_I0VujC!sXO!+4?cBCkM<=Esn& z>o7;?@ixtlT-+i1be}*Z`2>Q^pU{$;3I*gEfRM08{B% z;Owl71-VFejM>2|E~GXL(#wq3CKd<_e$k!0SJd6T{R+L_C(9~+3at_JQ)d-@KP-7@*O^G~}!4yqH0 zZk!Cq@l~GVQwIZZ(;YpmeskjR`&e}-XNL9I_X@{{YVhGT+=Mw%gQabPUt-)%gl^|1 zo|UamIe_5kO;xfQeT3AqiEH_$Wr@`N9aWiHcH0ZmJ&!ER%bROK+7&n)rq&cDu{tKRw8L zZ*8PmMgAd|?7W9=iC+bLzdL;Y4Zv(#00^+Rm8~@NGWNi$kljyX!L;@oERCw$feTr*On6R?GAHvH0|RMiY73n6>rYW z2q`@N7_-&3$AT!mmBb;HddlwkHAB>S<{0bFtwC~a=LpSSkY?CKfYnHKQ2wIZ2b${> zEi?t0g0mLB)V_F6rF_s+&N79*QSbp#1?-H-v`{Y@Od+C(^H6a#2L^eZ$AD@LoqAtd zqxFM=CN6x0l$=6^s-rt=y_i}=q?jw(mv#nYZF2AeI~`jN$x@DT&kj=nfzIyY@b}3c zy+^)L4g&Xjm-{P3uHO%EuI-mUNe5}LP#8Wv@#v(Pi?E(cQY$t1t5i6}>EVK-B#*(E z1OxTq{D1Kd#Iu1OO{-J?k3{d1C&`;v0N%jbu=#DDhNpd_uBP*U} zOs_L5Rv1_ej-vXqYM)VM3)qb`XBg7iLK|n(gqH5I(|9w_u~R9CbFK9-DQhYQX5jO8 znB*~FaGUoFZc~03W*+U;cW*z0!rtEPSpw5y*S5XMLXm4^ahv=8_Q@xY3wcjeZHe@aNZh2 zuw^IL(B#+G_DRf!0ZTyrjkxF*mY97Y5nqgup&#LT6wnD~5hDwGVs&58Cq+9^0obPw z|N3r-_V`w*q157y?@w{on%guh^fd<}uZfJF{5+fLsQ9g>XM4@Wus z1NRhq*F#`VEpDF_uC#6|Qe%B&3E1ba0;ujBF-3FrHk~s`p7zOi&0(tLLwo@vKs`^( z%~Qmidzxij_s}lwN;%nic5(4l{zJAEfIRSr_Hg-If z+n4Bj_Q+#t|6p74IesB+dev+r3_$vBsJ^v?rWPGJUIJDaQnum!ZMHwW;c83m)|xBP zQ0-OKHwP8-=G;dEq1)3db=Io)_CQ{EG4$H{nlN%JID0mfXppYG4%FZ|(w-vfw|l+7 zE2CYC_Xb%FETOp1u{fG3>`w6SyA^e*F8%jVM50HpJy5u^fiU|K_?va5G!WDAa{)RI zVGJlkJK|TPk-VdCqZY_B#Ce0h_>fmVDcY*`H8|I2Oh?I)HNDwLV;SOIE9G7W2n(Q!0dL zZQV}yzJg?RBtR8VAmAhe^o$bJM|sadrM}#*VRqTvfr6~q2;JkleGERJJ+F-h5-&CjhqRJrqT> zD+t*Ir6_T-MZt~vy#Y}mn00Ni3AN6>oe%-bHQWbo~!pVT9v2?xB|Bhj!GY8UJ**o!8LB}-~&pl2DuVgO~4?= z;6o2g)1PFNszQjUyv?HuUT+HyJOo_V;Q#$55Jt}f2DQq^@kdfd}QEl_Ha@%wGxn(1g z5zbKwSiSh0UVa;oo|kHeWGw=*f64ls;+>nNn>Q-BmTfA?<1|FtC;!ur=TZZ#LS@%< zmnmfpWrcuL{8T~0K2@z1e2rb=b3w*&_B5;l7hjhDlJ@?J!SQ%NxhSHL?hYNCex>2m zuGUr*eseOUgG5OP18ENY=0d8C0wg`~m(KsS_$Fnn-0>7r-TXh1;@)|ud9E*4Zy^Ap zgel0N^9Ln)77(7dmuAIf|D0<@R^Xx`-@!T>sml6K=06l&8}wCoONe+Mzb}^LOPfMTkdWWFHuoPpF$u6zOKHd8f3JODj3+!! zh$(!COID=^KQC$2t7!Hmx37UYV;=}2hKs*PW_ZC_tRgY<0$5KmY3zWY2|!LjYD5w^ z1d4`?NCX$-Oj`0l3$i}XCS@h_PNz3XC^*crm1)~>vgB_xjZ88A{jxXJDmu6UI- zs^VL3UV%VLCEMc7E`&d|I3TyfCm?m>WiUMR3~OQ1+0-OXfs{zuGt3}%t{z}0(6|}d z=2e`WytR^ysh~X%6HdTLi*kS#8xS@wi=#PUG(dSUvWWsLaB=oj#lo_lW-UVD`ByTP z$c9zLdL%AX6y#_us7bdX$w~JdqM0b6v34y=%kB0f&|AavJhDou)J-6@H01EWZ#Zgb z9?3_BSt0J;gaRZsapM8>5JP@D_Y3c(;KW3EmACa~IIB<#u%h^Zo!I~mTUn9-4H?#N zC>sjY{f=B~91HU4^1|;xNqyu$s_oA~11pQTDsC}Lqb@6EbD~rc7a_=}<#1{SX0z+WzV*bF`2S7&;e!#SddF__h(ObT%=;0mjT|TOzhunI@9;k%Ek!=iMYcZ*E;q~63 z?N*a9vR>}-VW3K6RRgmTYcF~=cNhz@XD+D1g-|Bm*6SH^EBM^Dfye1Lc`>{G5eZ@7 zGa_ddCZ}F%hXo`!_&V=|$w0*K(=Nms(1;ua_~6BMGVF5jh>akyK5Fq34*gIMiC?@w zHpOg&%}>MU)6NxHj+#}PW8ZK-eeV0tq1nOVnJ{8PKJ|p6j7V(KN;bel$q&okl&YkS zlZJqeQDwoU3#3-|lvNRbq^}As`WPeeT&`XENj|HPd|kg|;cRE6s-y8N7$v`Li|qob z)me8bvMEQnpLCoJxNXX>Iv?3I!0BGE7LpQ|hx1ojM)ZzS>gH(Am5|O|RWaSS>qI!yyP$*#gG<|oLLQiJ) zDTv216}T$qdCe5fwJ?ERq2NpIdpA+%->l({by_J~Ld51}=DRUCGfjUwGnsWJ!)O=v zI{b0|%577jFxAfwkPP8)?1*1Hj3?lup%#VM7OK$L*_F8Ut9E<~ks}=mR$$ZqD%|A* zbof)Pbd8N=VWu}EG-S&{3o5aWj~m zMPmIrtn}RD?J$`u(Yi^k5rX*0Tzo!^fFKGr%{lL?#y7+90PZi7H>sh!P8H$2JJN3R z6_xSA|HZ+m{i23EkIuA{W6#R^+Bv7c*mM@W$E6wk54(;SCd_phQ{+PbX|f}l9=sho zy+8{aOY{SVvDF$eW-z2`KmaH-Dy+-%Y{N2K4uZbktkgh*<#i~+SXPU!hUoGvtLKom zd08Y*`dP+^^MB`(h@|XL)!3y7l`S&f0BXu2X&b(e!m1K|%i;G*t1)U5wG@hNjQ*Vy z`#7fwo_GtlXJ=%Drex$bjXHh~#Dlor(oxbb{HJ*~&f78Bb}|LLpB!~wIpQ-=a|(R# zH}9wyNCCI|v!Tw3-p&Pl7Q!GD1({tiCuqQ&U)I7M7@Q)ULiX(1?9B5M`)=m&%z`n) z(kq;**;rjd8l~5I-(KYf_qq9Ma~~pkU#!BiS6Bt;)qpw2sExDUT`41^*C5spoIG{; zwHg?kwMQ^;b;g!Ev15tZ3=Gk+>>_%bV=uWxgoa*+5evZ|V3A44)O6ju3M`5`LOa=I z9&K=p+$}>wrgZ><(x#Eeo;mPy!&UvSIEej36{;ZFlu{&MZA!poQ+=#*+F8dyWWqV-zgR>M$H zUyz=EU-H+%Z^j-SYTv5v)E=k&G}0ET)yVb7hfTbB_uu{RcjT)d>Z}AeR$$}CN+_CJ z6J_302MQ{tKKW!E>S3Elz6kS0egQSN6qGE`%#=n*shBy?NaxS<7suog>Q=wYlHF`9 zT)@ba>u3}@PpmXHIf5F0oz$1=;IqsLPk&m-F#KK^2?Fix4O-0uCUT(w7h_q-#KS4+ ztrPMd9f~u#F;wNifff!4fTi!5XEJg%kY(}1r5jCZ_7ZsSVyxv$g5)Vvs;S$Fii!o4 zbQIwsv%oITu`40NhT`Gh>X(P@CpO$-+o`}-CWo=bQk8N`&7WaY6_OV)k{*WpY6*GS zVuePTBs-)ip1-)vVOi25dt%=PaUP5|y1{vrZ0S5{8tt@>4WGBcBy}@KuW~h~%Vx{j zS7(Z}cI+=G5l80?`A}-RoZOcxm^?w)LI~QgTp<$Tsiq0o*<221c|hB`xF6&WT*lcn z2+pXsMlW{)MnFNM0GEWm%<7q&0dy?d$f|kH=BY<~53vhU%w?c0NsB{TVk=s%mrL6> z_dwfv>U-ou)@a9lOrn2dv3fB<&B%XT;FZMqQ{-goC(S~hb)DrDh}kbDm4sTw+)}UW z{QtC4W;VtXP*0IuWSQml7WZ9Nb!bW1o6mitx$6YVnCJp>$(X!R#RRIngB<hvNenGkWn-OqaTI@uI z{{T8HYo4~UDk*NQ$Ey0OrIjUy)Tu)6&|WNQVnA@Fo&0e6rL$u}j)MQMyV}!M%;|Lp zCV~6F^VV{ckr|VoVDvGKAc$2>FO@m6walE7)8x$2PAwag0IqKpQ>$N?;^ zFQUx3Z^?pJp8x8A5ncW%^=pOs%f!$J&OYJ4pt$wc1h)i7kuZq$lH{D}sdSqY05%QV z%pmo#jY;UZ&oYGT*)xXv-^0d$341U2#X^0M{hT%C>Su{6W3}T8j9_Ig1zs>fCYqx; z?)o$TYsxU83j^8zXPjfetHlt|Gm2r+Zb+YC3I%A7=3Ys{(tQ7X(>z0fy~BMal@DMYQ*n%;{VB>L;{SU(mY zw&tB3+jAN26EDp%KpuxAe;*hN>x6w)R1zukw(H=FQ{>dkF3i&-|<_a3a0EVmU! zf};~U=F9dUs**5yVuN|+wB$~hNYr3amV4b3<8&*7h$2YjTOJ{)uN`s2 zI;yrSUu6X585V;ZQXchz-p0t6$jq>lhcmh>>J%h~A|7~7l)it~k2rhTW@urS#v3Z& z3YPh&Sxdv+zN=UKdjh|uvjbOf=kT*3FA#9dvQP}M30fu(U3Zw(x`4R-q>H-Hc;Q?U z8a_KJ^+dmHYFEwA3Qoh5d+_K8uf`dcbY=I~b&Zw8CPkBQebB|TOODKh9oAVEZ1I>_ z1Qi?exdq~11aR^5|KoY|{jC2C+-5D`-i0d%PFBwHQASS&5H2Y&?nFoP5Z7ThSs^o> zkl`qtJIR5}Q}>ixoq7|D?5LxcbN_r+Ogem-Z1tl@(gV5=@^DBgd|n4O-{5EGfG&rZ z9{`HH9()Xskyw?>_S@&}DD}QJ?GJZ8vgZA4trdAS_5R`D5{LZ}o%p3KxO zxTPIwf_uCq3_67Rp`3cPxB!TsI(!(%l(kio_Zv>b4uw=>sUjhlvKr`jd_Vf4#<~Go$FJc{|4Av7|T;<%no;DVTR{{X zHTxN8?v8vq$YB~!ay}28|HZnIaH`}K;1vyj+Kj4ag}7l(5w$=^QgO=v?0e9h6jl!e(%|WW*q9zS8|OKhHbiWvT*iX?iaYMMn73tp z6VUs=2bIzWggxV}y5ind(~7i`{v>grDk`5K?&6DF0c>(!auM^|@UAB@S-RkMp_nv; zcE157yaHp%BIXI7zdFo*ooQowt4aUT2wOQ1-b>Pu`!1eMH@{gjb`_>@;Kgeh_vV*D zgR-GRl3ESs3zgz2L%1$Xo%1ZO80IO6z&ZR)g8N+%MT~oc{@y#57VHRsM}40ENo0;# z;}SlIAKCRv@ZVeT-2^Vt?1mRXXW7Bu>Zx4Lwz5VZRL@$QJq;oAb zg>a_chQoDb%)V9NUGZ!=?WAySuwdHq%pwX2!Ydb@?FdFxTMk#jx(#$EFdI<-E(eX5 zyTggA{L0$Pu@!?Ub0!M>@SL!s+ef%^GuY35W)@|DZCbhK9@$3J`VM)B2ZzT+{>o&A z?im~Qa4TK5oF4FMCSEh9C8cDLxUyfcRl`M@t?Ww+9@4$(GC6(P3S`dVUC6$iXgv9f zkg2xxC}XoM^f@9n0N@XWTsaV&U2p&;Vts#>FB86q=-@r%4P0`uWM<2iM+$obUcFGa{jn1`xHBXO#OuT1 z^c`IxSpuS7KcE5dBgz=vzNN4ov?^SmBM#gysTNSedqGUv8KAwwyFTnwlNl9mq%%|k zow>GZfeY@f-1kr0K8|Ra@?iF6ZE(>4kv|cAy0NN=%Gq?sj=&MLtw!J?C63eNhFQyT zmkuRY6!R&n@7aNX;)yXTzE5})eJ_o*GCwM_ly@B6K(CmX7RN@?riu74<`VE}FPSDE zli$BV=I0rLCgr~GRy|}HA*wsQS6Bd_t-giiPQxHYaA1tCM!?_32D2x=#NB6sMnmho zD<|pDM@L12P=qF;T0ZA6JV+?v<(0zSc${|C88UJ#BS_{U@xf0Sv^PeFWmvwu^#0%$C2H%w6oS*IO*smtS zBJY#xAf|rxrZ@VGu%c{)(4nq3X~n$G*78bV)t^`MdwL0`hkNxR(u3=uP*U(J*rhEV zFQ+36)ei>eo1F&viwzgp>y<2U>-yodnsJoGV(7L2^@)}%6T~Q z5<-qUH268axAI9CzsHjof0w`(QAk`Ry(vy65gUWKYaS-Ha=SdkMR)R*1T_1nDt7)HPizz{LT+{{_ZLMd5^!_fQ9i-T3N(Vd%A>t1FFf z0O22vgmy2cJw;9Bs0FL&qBW_8?AOI9I!gGR9ZtljO)2&bK5*-{}}N45Ux81;Cn~ zHLS(DH29tWh{57>@$7f4Z9w)FH={IM9yOuil71{E6H!?QXFTV8I<1HMgFTqA`ERH% z*x8yO#+jpcQ#qu7_n=9i)$8o46FqcD8q6|kOn%U3@IdLHnB0_*@w`t;nBr$jV9t7T zKTXZQ=z0lK=#0187KK3e7~8B8l!S<#g~~Em_4Ele&S)0>$GxBS3%m|%ev2ipT}Qb^{z|LQ%JZ#itxqw3M@@2jXd3>B?NW%ur z&_+*JgE>Zj0Gk4Ul|3sfMt!6r@p$eH$oM;^OG!pEC_wrb@1?F@Sz+CiEj6fY)S7z3 zAt;IL zcBF`jCT@#^QR3K)g}GtPp!F})Pj%)+0#h|6$$(ZkzbjuXM%VC=KgA>uLmy{>^sj&g zQ#GKVw`gdpe1LzL+Md_Sa5f`{^Zxb*KlIaJ$^AK39C9T`p`~%w5QXx%b?jmxkR`m4 zY?@;!wB2gb`s4vi&fsG$y@;d-K3zs@`k=zn$&`UFJkVa{=juLSwe(Z(x(fuey$iwq zu3Y={C?L~dVtsNVO)N`zj`iHfPf`NF^vo{4)F9eZ8sL`=rgFO`)LB~4#L5Byg{`F% z8>UW1f*KehS82v`z-0CQjNCxkJFXfsx5fpc3Yp3dv9m1Z@H_nLiR4w3+fB83c}?$; zrf1tB!#`55K6JVEbCSqDm~3RWd-M++wb}9A_>gKXouHYMZ%Vq~*~;1=4pAo=LZ?TF zuluNTU9P3=qcGNVHf=r-A{#s5pZWpxzQ!>Vf07v>gAP*Y+WnNH#Re_Bd+d8D9{XNj z>R8vQe8f`BX5h^L+!7>wCz3hux1~kamA|+C07N|Ja`9S~wUZQ*`lmvjsTt-_g5~-C z2hKVjI~ai$|L^gv^8f1MP&>9 zJ&FKXV&?G-kp^tlW~5x^n1mD@~>Op7vaT)#~gN$9Sg+h9?* z=V$@O5fq`hBYwa)DamzJ;l_O+6Y_kw3Ytwb2nwp^i{uoqf=EHMgcIWjz{^uBQVbe? zbEljX+Pm66)w%T`vTR9JJ0JXeH{53ux@3zCLJ0)rTh)*O)Nb9pwwl zHl$u?1nEj(0?TAw{+S-Au&KwUx|u_}GAS`${$VkOusgxL4CLV&<7{x;V6Vf}G3&ME zU;Jn%=oGPD-eMSu;)HULE;~grH;4zKE&a_0u!tifsy}jv{>`wWo7RTrl9i~L*O4p>OL!h4;EVvRI<-;L(ygtCRV;7 zNcu5XN@6!+wnL0S;5WHtPafGzDf_SW&@7kZSO)APF%pFdi?@4fB*(tcmLmK&wK&ca z=ei%&Azk3)VTgA zKN6LI;{C4_X@$UNDG9lH3tL{!rfhQ4dyq73+4t3|<|Xn3K+6*0oFi|cP}(MI?xA(+ zKILL62*T>MV7G$pkAcO=eRHkp#aQt=KVNjL&Us?qNQc&~qNuf(iY(W2d{0;VO(zFu zG<8nCbnDZEZagB~yjBbH$AkAFjaeY|ie-2yS7hZc0%Fyt*Vy|JaB__pO@-C-!WDB> zB-SF1#)Z;xF-4Ln4{E*jZ-8euH_uMpj$a@KOUs!gJyQKH2JeT~A|(VAwj9siQ_4C; z`sdz2AM5Yxfd(Kx)1v&Thh-L-nWd_3J}if2cGVbHOdE}kaSlt%W6w$dCFhQZL=afk zEB%G>u8SIW6J?IWjgzhNKX#&c`0zjBD3F^Ib*0CnjGGMP(5#_6 zwIMZlb6I*i>zePkE&@~s!46p5(^Zm?hK^fL2U^!So6}?M{_`2USe>%ViPI>qnv@#t zag!4@DR_Ux!IQAU5YJMocIG%*Vel8YzA;;yK)AJbL}oYQSm?Jjdy76?k)ad4eGo9i zo0lx*Rwe0wD_=UZradTy~-DNRtrdt1lZyopk7-)J-I3^d}R%N z-MlPH+v{~qvJ`hm>^WeS()?&!cBpRG`MW<7m) z)s|;f2Z2aY3<+_xz1Xkfm^@&HLpegULj~7=Bvo0UmY)70(Gp zZ&afnk-s&3932P&F0MQmQ}}({OQEpZGHQ8bvJY77hi{el-NYGaumi5at^@|e45*On zXayk~UGVm9sCe1xOX?sc4AXyQu0_TnUf>V;CQvgPI0Ofz{S|%Ht{By-sG`NDb~Co| z&gZbU&b&&60!mAVQ!1Wt+Si+M)43B zuNVT}TAdOj4i-opj&r8ta<&+BLX70RKM#z)IU@E#ntjU}Qo0OJNg#@D3Ms{UYpD80 zv@@E#tz(6}735)aq`;EgFBM%bm7jBz{uXUxOmVjKiuUN_EfASL9DMWRTQxIbpu2dR zy#|MAmIjP4$4iXGP2K4m;c*x1-3Ox7spwDxuWEN#N8ydzOSw!1c`23%OwSEQR@dWe!Lg{9sv=Bt z5K383OmIJtvTCr7b34Hm@gGGqv~O%rVM;Lbty^SS1ZWwbjz3uX8~g0ZmGUduBtu-V1&#CVw{z*(F7KwK z2)iz)rPmpxX1X)CB3Al`SnBp^VGE}EtH2WMq(sfQPUfS-^iA4#%!<^PvY65#e^1$>62=c~XK9a1#_oP1*s>IB z6~@zXj}Z^f#lIDovZs3VWOl^To*&h+DXhQJ6dQ`YKESaOP{$1-m~y_Y+&-AHu*7Gw z!z^NB7LZ~i+-R{xT<}p8V&vnkO$}skyBl;4?Xcz{C)5WnqyT1q^(q@M{LBA;^IjVsX9Epw*GjTv%tc#mN} z_V9pEgpbr@Y2*v>F|RCXYyUVu(#UsQ;5n0D%?$I6p%%+cS5hOl8ttldXG@J|v6(?&R{^AsiQY*b0$lc$S7?!*r7&Cu)g- zL#&L9XUNIY^A!i$kh^-Q25H?uFhxsdAfx`~P{u@z&iTF}anS}p^vwiBlDe2lRi9bZ zC{-Q>RhB)t>G)+Z2~*qg6zb6iq&&xiiP@cJV1A+|5@Shj9*FW!OEx*l8k`D29!lib zlue+zkJ0Rh8}zN?#NpU7ZG1eV2uS0CKcm+zPM&c5FiOPT+e5AT^X4D*@@zzdo_xzfv>&xS+$DUJt02Mi8p1MvO#1ru4Yzhq}@c6w&*higX0s#s%XX3m35p2wDbB)jNO>;9?8m{ ztQQe|QM7k;ecp$fJ;+2^Ytz=+=vuy zTa?7CQBf^hcc_&Hyug#(o@gtU7m4+L5L~2g=x6Qa2HVj@GZAE6`|?gb64=gso&bJVnxrOT7^Mi$%vSK!IQ6)e!#4zM7+jlo~a zUahy4g-RwUFEOY^Ivp2nHf-muFM`x|XYApWX89J80Ff-c|25Xq@IV%%nk^zP%v&*i zTOrqF9>kHLlIMm~VC8qjJ1Bil9<~{jsW~KvEPw_)$QQdr$c9PS$ucgSO^}Z!yl8Jg zE}cU+J%M-ay{=N0>zlFvj9K~a5r{5b;@L+MP95AuOB|=aF&qoT8w1y=lG356DvpWk zpv6B=(!BNB-{z)+U)}_JXk{#8_uK)u%Ot`KZ3ci!Z)~9ghMTz3a~la&{vc9bBaD6u zM#ELwpVwKApdDoDa)JJ=VU}YIVV`r?fw(8zR|E~B_He`-q zb6Sp%xo>!DN*H#5ZTWi3kGGw9tA4$bu-eKZs4rtStpV0Q!augmG+JQ^JS@mGk|-gm zgF}N;;iXlXBmGb$objvVgCDGI+LI`AkBa`lEDSC@7;1v-4lHU4NI zB}|jJs}iI^JL4;-3!(%P4r+z-c4^uUfB9#^$Mj&+^F{k!#2l?S6G??ap##6sz!XcIiboD(#0+IJ@75z~ zg)NbmU}VG-FDI_kIgZgO=E~K)9F5;R)-8$v?-9mKU~Splj!d1>%q z^UCURaE-jLze{+B4YZ;&sI9)|Lc=FYk%wOFlc3*2VHBl*F197QY!x%O9e~8j33!~(GhY- z@g|TIHg_B!2Iuoqj?rOF;P8&~y;_p<#x}&(s&`8M-H&Uf)oM(YA(;;$DLiuTIP2K+ zBzwT!sak$avDz_w(D$EG{nD0e)I-cf@-o1s=GmJl*|Ls?*R=$tpIoRGC1_2ZF^$X z0;o9w+%xRXUjkvNaxQ%Q52wKr_|<-?%UA6Wnl#x3j++G5FO$B{eOxLk6BsLqFx~0U z1oAmN6HGyzC5HD&$DnlJW3Dd>+nz)1Tvh7zFKVPN&|gVV7zKC%7}QjW7H0;=GK$(m z8v}4E$(I(#{@3lSz@6Fu&~V}8z*9*7_2K=dO`ms0BX2|pmId#&*n~TxJ?8sDlDcK2 z;x;J@^Vx%|6cpsqypyh7XsHSuC<%{#2Rwvgw3mcXg!>*QsP@hHezJ5x2n0d)pz?s9 zcf)b@IH|f~lg!S3$@L?6w7-ky{99mJV2P!A_LIzTMEXJHw3<9iJu6>{Hdwru+I)Gw5p@Uztb(Qgl7jI>Vr+oltdCg{t3!rXZK81yeH z_$Dl*6G&O@`@Llz0it{xiazm_Qi=Py1v6#1*qj%_{X$&3y{SlYjI<|CkxXCSG5#rW zz`WJjRv<^K^1865^SuUy1O8-UJ_vf)WNJgimj1m6KQGd6Hj*Dd5JRj?&9?Mc+MzMr z+uLg}wltY#Dx^eJjN1s^&RX##+Q0EQv|QfqpwTb=;N((yALVWsx2CM`Mt)i~ta2Zh zTu`KYa1Y~%+iG0sUhnSrf|gXeb=@%nS0;@W>bp~D z8BA-(ST1k>-^%QFavOPoo;pz#6;%poImevr1)@ZoUu5kma2brLfN7QlEvk=BpJ(*W zS0auIFyQVdcH;3!@RQAG>RIVgc9%XbdSAYO50dnwiooQ%<`vFRsVzZ}$(|2Vs*JPJ zfTX$jm_$qF{MWgmp_mUTR<@%9E5>9cP@`2hgY;nnHj-N}Vnn-W_M)&QiWR2M_pZCw8(SZZixmK9L}hw@7YLr8Gc zrpQL2qeJ#b4DsyzLNB3o zN-VLuVoGJ8(Ki~-V)A{@<9VR?2@jzIl$)qF5lA$j4j~PVjf!cgf5CI|q7Wn{q@G%$ zbc=U1Y#=@e4v;uVIiGd{0kJL`gFZ5U(_+nceAzDH#rC0}BFP+iwYDi9Jawt1rL&fq4F67L;jQS5!|eWL35q)SZR#D z4Xnxm?iPo_0hd6Vw9D#b%Le_p-zhv9MSdHt4z|SG1BMatJn23Cg8|L2%yenwQm;ORW@a>rzSybGZ(Xx-Azq#|Pb5K^3A7m8Z8~3@d zO@5N+POeYb&YV`s9=Bg`B6oYJiGId7OwG7mw%>ya#Lp`qMu?Gm>=~^o=bIiFyi1c< ztZet#+;|FbD=`=)&r};VOS5O$M^U#Hk>(p~1)4ADW#=O^Bx3x?m|ac#IAoV6#PR zXzTXL@{W}i2pV9N(2f!woy80TTu}QNACIS3ufoWC8Ln*vZtJ)vUF9v5Jd40F@~jyz zAMVaZNB14oQ+3SQZD-ciHL7y0ShIMqT}=XYk@j@&4JssE!Prw^plb=NDv?Q+8J90F zX&C9S&M4Dw0)$Al^f>Mom4<%i;yO{nao}s_Q!+_ZU=ON|X;p|{Gn$+r6l#R&j^y?+ z?!uIJCrW1`8D~T`SmqLD$glbQw6Vv)6q-t~1Tu(#a)a470=Q?bEaV`=(X~nLOl!t- zNBW1&!$#R*_m(<;xyY>`g;(1n$o3K;$MK`{@}7O`3gDaF)7r0Pz_z~|-4VRqX+RgN z4DQdh_J1;ym(`2Pfp7O~l$)h5B)Nwb0|X*?Fh9Gyo@1M78H>_%7qD-)+)H8D7GyqY5xW6R*Dl4#cVO<9pw24Tv%$$%uC5vd$Du#ryR0A_fJ znpA(5d&`am6&HM^9;RQpy3a#oZ?NjyApJij-iUSB;q-kK@o&J)KD4{!?N#6CwvQYuKr-7rJh;B zGaoh#P^*Eip+;S=rL3x5K&dP@N&aMa_0go}v}?MH`PuCB-~=1)#lZebV91RhAw2JD zUuP<7A5zwdLV2^j$G_IQj<3H3_?R>`vA96@;mQ-VxHYQTkYNVdjQhL*{~Ua!GV@+y zdi_eaalQz*qNYP2Ynvs40P17Ky_P*!40T|N>af^T(*|}z*UYu;$fk&ZlFGUXiWhKx z;V=C3Emy4XX-jaHHxgFQzSkBI$BYy0~Zwh&AYGsv~LbBMX zCqNL}3!O-k^Phd$mdjj}SRB&*Jbg>-L>9_}_g1K)=JD^evd!*-;E zgYN5TQWDT*)ux4VdL?e#KuQ`9s^d?Qkv*quy32cS^G;7Vs1nf1{SwUA_o&@1cIasP z7s-}y$4HSz)J{=NRUnM82d-qIU}LAPjnerktXlglKn?CgQCB-^6rlbL)_k9m#trjhvPOz{oq-0CGt& zwi`G^R+*;hKQE_LvHBU+Tz@DY>mGhD*VU!#RN932^zIsEqN&9CE7~4j>Gb?u%|hnW zuYqI8=buU~u`qH<%K=3-ARll}H4{`mKC=x~3Ce8lrFJFWUh%v$O~pjK(xhR#1N?2C zgbXJyi}n{prBasY0#wMz`8Yvp2n!v#zX6IHtLOP+g8yi_F=DdcwfzK=;Lmb}{fNNo zs?XW&AI=n;DFx}WY5AwOE1GC0nVfYOm4*hgOMi20x)r6fk02+KKoQel*%9T-U(C!- z%(_StvGKdT4bpU@#U+6JFpZh)RKcoaRzbvMuB2hrQyv_>3)kY1O%)fbw8g61i`=bR24Ik@^Vka2P)QuYTL7)!o4*iTk$w5a zRG_a8hwC^d^8#$zlR%%utTJ0&q}w2sbl*~Z5eOb5cX|8(4xmRy!4gOe*CSw>T^Xbk zx{_0{2Vo{kDwwQqRJ*g^W#@@C)egjLq>QoP>xRA(`+v^1RHhHWai+0N?0PjswPe=U z6MR0+v%&yfPGyQUf;cAPZj=&GQ@Z#`dogRtnl!=9I@dSXC92T124QNu0Y>6UDiC#i zRu@V`*^U|iw3i*6#kWsh9ZDR#KQY}@AvM`U@F|G>g}o&jRT0EzO+xh4kjy5^yWN&A zBp=149G$K};n*ja&~Xu>iyt%2=Y<;kj9h2sl;WHJCIwA)*$tkI?S{Bsnp(v=Bsj4{ zG~>UYU8}p&3E51b{tZWo+Wc_oEx^P2J;cs7h#U}y< zKlGJ(%1wC!lgRQ{mySayaefzRb#PQYT2AG@AT7E1P`mNCRVl|+h{_4F2%2lEXTr&k zWKPNGagKR``3iuogFfDjYkSmY`c;XYU@$yx!ppK0L2czb9|CQ=>*mwBENH`O6|r$~ z8K+k=ob@iBTfem127GunHd;r@SMe6W=ywzBVkBxayMdq=&DsF z^L1VM&{c+((KsU}pc`&%VDRU+UZ%autys{y;5vEyQ5LfK&}~MQcp?er2X0P6?QCD5 zX0Cp%aHL zb|R{9tJk5{y@C>V8n_)&FonagUB%FP5HT-1*=;4UixnTv^=lC658!!YB66FR^m#yM za)5Z!+v7iRwqf0C!|b(4HTwFuW?=s++7(5sdX$y*r^cEeuZrv;!}Z@=S^YoM0|tg} zC6veaOtR2+;NwR9OB>vk8-tFfXFRO!n|J9qU4KOe+w2{ zb47n!hcbwspy8*)85SV3^7 zwFiUF9&F41`b@Q^#AU4~{-Q47BGi1nldXkikVHFNB#2e9F9mUOj@U+>L=Y%UnU~5F zklZNgajnroZ92cX9v#t7|7JDy zb!67~nGV?w@Ycm43cuPu)U2~Ej0B0Gh;Q|xl*$429t`wueN2YZ7{vXA5LLL%mNi<)9y1{33&C*?{3H4*EUFS z1~KTH?Kc0Yb2F)&}7R4+0qsp8b+DU+U;9m zY4@b54OCH2(s`62R1Mc5>BUmNg6%`2TyHp7k|I$Q|FsflK|9>{4g4~$5Hgt)EM!MS zey&P|$~!>qJ&ZRnC@l}6F@Rm=dQLgN)V!pb&JWkfYzttqZ`p({85suPh%EUfuRo5& zQkyL}PRKq*U{9lcI=-dBJM(i;n#VZq41mo+-u3QmAQI|phaSmm2Fau~-r+gUX_sZ` zcYLRe9CAM_4el2dJ)H2tazx0xbZuH#LfKM=+!5#cz!+(;Y=zn@4V1&^^3j>-P{amF zcM9Yc7oU;6$)?o2>W$Nb{q?$wxU#Z#ew!|M*?H!mR{PqQRyQF7_cy!D{Rg zB{W{zzsAn}T4F{JW`b^2c+s}Az=9;Jwf52qs#~_w$*Hv^YKLPZd=F6`eE@eB7El50 z_5Myhfy{axUzMN2!f{RrIeB^S?+&8B=2P^PuVCS#QupEVYK&ewJ<+@PynE>z)efP2 zrdK8SaBIc_#2Vuvxby~~qkd&sTwdgwzgCC5aU7RaV76i@aTdOSpTpCwhVi3|pFJ!_ zxV_EAeNU|x833tBzm!nWBSRjcX?2~o(I%PV3Bpq6Ec@lYwr)Kt7CjsEA3371M7u{` zNqMYEhK=Y4GcJ=|3{Hc(_OJOsapbeW`9;PZaiHLX%1CJd@FM+Bzbe1wigiPP>zCcV zShLJ(3blE40vkfS3L zs-u@nRj+i&x{LXKU*yrEr`2+lV#rvI1%5cl?F>Mj_JdeOW z$9(m)9~1uV+!PA`KX-vfd^z^Hoyk{F@^Et`lDq(y7eS%rv0%$ss8d#R zF{?d4@$msH*_fuG)T~1Qk4I>jzjy)ZLEk>LAveclssC7;u*+AOGe_}3+!421c}o!+ zrr=v_v0z`M&VS}b>RQ?SD7fjalJ^9RiD+Nj8cgLTo0mGbon9bF0*#;CLW(u6HSdl# z@Kl+NW1tj3xR5?|`LOGx*f<-zD75AS@%{PuU=CTnQaRj`yuY}9aqU!@NCH0x?Hcj( zg z4a(5_CYSU92*LYb<{u3NI$WasQsem}N%_W;`p=gB6iAHx2W0b=Swj73h}?26qJ>f1 zvISm=-P*V!a1{~rhjNy9-tg(g9FD#O^_`#-udBA9wj@>dp|S0;YjC@sgGB@v=xV_P zA*G1rUID!z3NxoA*Akr8u<*t$9FaS@QE5k z-mGiq?zEca4FIL)ElA|hMFAB7KdJy4Mq zp&bflgmFSn6s|F6wp~v$gCBOU3W!Z47KW4l8@DWz${nw0cwEEZBR(b679jhRk&17k zJxK|sia;Xl-M=3q1YkqhVQnr)w>D8AZ!{Wc@S85Rx!ZnYbZ)$8&=02p=8nP>rVU%yWrT2LIN(2tK)oKh2M5yf z|I~@w1}W%KsC!Poy-LJ(8C=17Impi2b@Bji_%SL1P7yBuu0K}v9BcFFK>s|o{pfXk z2o|OWDMK#=F|65A#ZA4Vwc(^T3OWd)g!lWM=f-Aa$}0UlLO5I7>j@+DkZSTPiPuH< zp^r@S7^|cJqnt4s!X(LWDOAf>#X`*g>LJ0LQe%YJnFSF`<@u~TYYl50sz6w}GI_2U z4L58ofg3Gl(X+2-SW(VpsT4?EEEINJEXD9`W}a0;X9!|8U!3wSAb}nVX)D;A5gc&z zu<>l50&6Jh!k6^<2M#UI#GeNwZDckf4s%+Y5rsDX zCNMUM*{RC`2xLPH_>|Ai_QfcTDPGZ8^rG}Tv_d$LXAO3Bjur!~MeQel$#f8W!RI%K zxDJpyjlp8rA5t;Za#fi|Oyqi=S!AT_RtM%X$(|SCSdsAzz7WQ<@x1a{ou)4)X}ReV4lF_0E0L0Y6(cY-apSXMNHDE}rd zckO_qY%wnq6T04f0|k0-Do}VmFj8lApiV~yAE4x@Es>3x>=g{Y(axZG+IC$IQ%w5^ zEg>7&!_PR`w7L;q8Xw&OV+bxeEXC%RY0Xx7qlE+iPOA}AnN;rUEZ0{8(8q=3K-!Evf&yvTqm1N9AC9{mB8Bj}N0Epf=Br*- zWj(oORw%}|Ueg=l-ISCjogT~c?z@6NFtxGX_*`@gPU6#MOM z?WK;MJWAGinqTuNghsN@_y*+85Tj%!Lgov)iABQGcq$)zyo;b+XTbISw@Vce+20+H zjcjyTPYO80M6*^T^=WAhDJ%luxAog>@rK*}kHM0PO*kU6h^4_FnZL&rZmEnxqi(EC z$Ni+xOW?9t>0YtQ+aTtLZDrVvxd=JUxdglW$nPb)5C9JHDpyur>mn;di=S*~06!Qa zw12j81sV@f&bY%L1mUlAx7>r2r?-&_)utnK`3Ny6I1n1jA})MrbnRlRKp-!iHWju<>veu+-KMb;a%+$$7E_KND!)P?M@|y;(UJxq-yaKUk8!AB?kJ>}A9F=A2gxk*= zh$Ao!PJ-L?O{7UExLU~L)v2XG7Y{h1qh)Ms(?sax2(Mw-O>2w;xZ5q!Imf97hf*vD z7|BO`1mAgr^#~WS)LAzytk_~G_#X8fw525GtpZ`^@efYr2o$V$l*Pusp4Tk+|MdN( zJKg2~N9_w45!k8j;j@=n7#a#fGs&VNs3F!GWZt?eZ0lO{dUa&va0;{?U}?`Can)}K zZ6#8BQhmP`y@aL5NnWX90S+2pmoSzsiKC?;Df*~mDV3f=qw|*GqO>^M;r<=ocPet) z%KHdy+;kl}lIksJrcwNHLbRv7Qaeb0LR-rrQYbU1^rR#bpF&JngDv4o{;Vf8}il#^PtRVJQRPS7owmBPEc0EKc4P{0r{1 zSr2)9!Jp2nNO^M7Gb}|Qv&W-KI)s2So_y!vykRBU|KcV~Oy)jFD3yu+!A0t~RRz-~ zsr8=gTqcnR7s_UfIZh~XQI9cFO%{;Em$PfX#F z4$QdtrSq6fL`h;hA;h#I&%KSKRhpCy?Xnvm!mV&Q$ojzJ{J1?yRvNp|w&?h;f7Pb& z@W8xQG*W?0a~(h%-o*L(wul+Pu%bvt4?Z#Bpkn7~RP*yR9Gs<51v~~CT0r#GAeN0o z*-f1jdyg-y92>UGNs3G7rG1hul}<8UBLX#qt=^V^d?XXpJwb9r%9~aF)O@=l%1{zL z0KF$2-wF23c1Vv_H2Q-37@^9^j;9gto~BbyLsALeN}94l zTei4SNgL1ZC;h&Y5?IO;#BaIak0tJ^;Z zIGwDcEm$m8yEG@o?q!Zbbi(VQ&(Y>ryF))cg%cSV{I!) z#iFz0nxyrQgm^So#>VLfDav+8=CP22_LaP>g4}Ur&0)`Ymh^_?+QdEt1ooo+y6J8* zba|1@O1Ct@Dk+6oqE|-s>&8COzm<6J1XCm#i7|cUXO!gD{-n!rS82aphjZ#+G!~eK z;Xf4wsCx}dse?TLkhArI;6upv@y3KhNciS#0ue$v^*re))LmVmW(y&h>M|0l+Ct%W z3%^DvC2F6->>zhL29csfoH z^p7vk)4WAU!9Rm{B{o9g-{XCcDh`x6Hot9|LNelBgsB_BA#i<8rcjsuM)@0rkDReo zWt{_Lt++JGX`kvD7kPA|*sfY4J$TfK=}jQhu>kYjML*?s5+p97C9Q`TSyA zcBogj^e`x3(+Nj$8kFPSMeb#9Q#g@*P1CWE zyeF*~h^4XJz?I~^B(Fo~tp;P4`?Vjf4u51MXe?_0#^8)bb+tYd$Awnv*Xc)rJhG~- z#1{y+y9bgZF82Qo#63gS6v}fzA;x6fxQsnKJPGWHw(>}(RzqP z_cvx-UPG7@S-_pfu14!WXm)`!bOC_euPk&ePKa4^VI*!U6*-DgTPtL)ab}0}3G1<= zOeXh?h16!mY-_?Ge+FiMQi6vp-5GY4;?hENF^uQ2ey=qu)pC6isQe&BEVt5S;iRts z7@$C->i@di-0~Mi{u!28*7W*GI)o+^`%kG`W*QiQ{qay`<5*3rtfDnN6n*$;M8 zyh1m1FEsARE9uGz;n=sO$Q#OmC|5d1OrADYlQ>rnsDKnv=!U8cs~sOWWR(|F-S_k` z{f&8S7Fdd@7cyJdQ1BaBjP`Vi4KQ_0g^-aOKgx*`{s1s~fwTZR<(!CSo>3A69=sT$-s~j~r zt6B*MMMT4z{;}~_&i<}<%-lez!L2PLgcpo@>x+D+Otnn47^@`e*#cu~_+)MdY6r3Y zXs1o^+8ITHHBpU^#zBat>WXn>x@@S?h?O6Xj7*s}C;qqi+?eC~=$k2Ayy&@W=@GY` zV|o{*#BPqoHmTG1>l&jh8z%+r6&i?l?L65Fv0^g5{2E()Wz~L{oNRD+CVPM5pZmF6 z^Nx>Dg}SH2+HOVeKln1zS1i$4H0=SO42f>Z6-*a-P_3253@m@y%hyqm%JoqCL-#Gy zaR!JeD0`F=0P5z9FN@Iy!IzzXA>F7m=vSH)B2=*l+o!Fz_^aI`|tgVF6KSwOaH ztG(knqP8w?^uI)(4LNYQKyrQ&C8MIoA^YQs8DwXw>u0{!g^j%u>K|Lao6t|hm9IRM zQalI+uH80IjNgs*?T`*c%X<*apZX2YI2TA;&+LP?}b1TRW4+;FLYJ2;#rbm8D)_YQEG$h_8K2eDOieELInM^ zhWg$pwA}tvztdMXSW}5I_knZ70)OS;;{ z-Xp}|=@%t4?&WL{K5@l|g;EW$V^CV)*jq>>6CH$$v-ZTG{W`UBO1t(bokT~*06n%o z5GZIuP_7RU(4s%1$}mO=*ThN`oM;Ya;if_l{BKHsM`Gs9#DxQE@LVgs6S92&3fblb z7o_S`uLuI2l>(M#w|Nz3&kxViU?-jcd6;6zmNQ}Y&BOP}I!WpzcVG_%nY0gwT*t{l6(S+V99582`O%%A z%ttdzy|AIt)bPvEOoZZSjW1S_DZ`s$TE=$xBK7+yN%KOln(EhhW}IV;*^_h+ixW9_ ze4Rg$Dv-tGDH7YgkTZ>w1?34dmkvxF>pY`K9b{LiDEmgtZD)1?PVi3G;0s?8A+cSa zUQ~K7p&8@Um1-xAYIaT58_*&rUYE*6NayhK7-itwW?oY*V6;#4e!`;Dyj**}?|{|6 zf3P?27QsjEMmk6LDo<>QQ0qEJw6A(lBlq}#Av))f!vX9iuQ3kT(6dq9V+69v@OeGY zGP8-@MY-Kr?vRN;dySN+1P9O(lu(>MR)yff%yxxV9Os^(SBU)swld5S<(RwXj=KxI zxg?Ol`A(%m0m;W0<+($3ko8UE;6tUQP-BpV)Js6<>rTeJuJPu9V}#GaLZ!W}{j>Xd=u$3UnV$w25!| zSU#RXV~EWN4=2i0{Yx_I{w;zd#`5{)x`s@51)u|+lz-MB@X!{z1-{OMwYpuq_y=>d zh;ip~TPDZ@hoVco7(6)xg>Gq znoiW;rPv-(9+D&aUzUKW!R|WlFWUe!wWA0Ca?Uq|ftuF-$?LtF7bh%`92vWhQW1vI z5|e_lYGuO5av<)tkE&qDL9B6-SbWBWxeq)YH(|I2nm%9j90@<|kTrL9lhDCDFWv^8 z$F4@&4i-1!e@%Ohu~?z~kPejCurMv3O~bNsh+^mR?`RD@uhD3^6C#-LtcNewWM1Vp zC_Ewk!|oQ*Ep+SP)uXVM4if`zGXk8DDCw;W(#Pmh;vRen;lne^$4A3L%${DL+{jXz zuoZn`DY_78?-U^pGrZSg>OHbg>SpGdjwU3IETtiZD{^$O&ILfi5x%&4L+Q9%jxg17 zU}vt`p`hW&k9~545Cp`{4El;iI7+j9OL+8mn`2UsICm4hgU0FoMr*CsuN1nM^bR&n6Mp(Ttgd95B#h9CzW-5e4oI;8-5syZU<>b`(X z9iTDJ*0E+yvI}U>+Te=2`+;g7p)9`YYd3RY^;gWhDwXvkjTW=#`$hdusfuKm%N2R# z+~eYlbMIZT?!FfF)bd;TfR5FDh%@QCqxw6JPDOSXu#9{$K1{uyy8dM?LL7kbpyS9V ze<&=2SeKG>Z9%}I8hM=&MQ(_O?AQblB0AQlxndN%6xP@duu)Xb^tMZ+B1b|{a z^R4sScGv~(wb$^3;B@?-+nh<~20#Uqk@OkiUPF4+AL?hwVOIK&p6Chd@9=)z=sh^> zxbbs-?5!8Q@B;8WCf9Pd|Hp=@wmbjWAJ4G<{MdEuC9DcXs7B&23$)`0*E>w<>#rS{3rETr7em4=DmWCRn6@$Nf|7 zl=tuwcgtrXhoT1u_!y9g9D>9qPz_qO2P@1ytE?3E^pf2HyLF$Oonwies)+A zf`f`yA*d6#&k16%4W}zM=Yq+I_b%~Mj}jI+Zitj_(7d3%Z|gP2Qe*6$a4Je*vBo@t z*`s=`K^w0PZ8-8R1AwWm0?2z+TCn$KcZm3&x38!L6h#!NF*(ppMvz28-fQ$t);EWY zlUVo>*D}9Dj#FdMEMzuht~zy%ev1-NEq9wsC~rOeEa?>`OuRZH4I=qL_d5wxyAJYE zIS$R*!pom*Q9YO40y;-=b!7Oge)=LV?zNu&HDmgO6V)1J|p_vo1lUth`e-S2NRSkb>am2j zIqPG4g#jvduQ3aSS)X*P@|{3RlhOcC@U*~%n7jUV&CR-P7zV6LZ=3nf=cj^5a)wnc zdDT=PU=HCnK&Z3Xnfenal`4!!D>7Y#l)wlt*$Q8VZ@@X-&p=5Sf+fQsfWh?VLHI>$ z&rPt7wj_oRYbzzcQ#26sbypq*TB8B4I_{<#!5^_9+`yQI=OiGoAMzwUb2f-Cqqlt! zJh!nZaedi-s5AFAGpd@W2u4QulI4w>xuLg7j;A-}tsBF2*b(iP0s&|5EpQQaSJnz& zAVbOzo8<|SJ>Hd?g}|*4=u=+wvAjN)i7YTU9K>$sO>i-KjW-$4E9pA$+F-we*S-VU zA+qA2=Qv&qStWZM%Bbzvwd$^eZw1BSN9z~XCKd3XLREy9_+ZJ^y<0*;akdU%IG>!7C{0R531Qv8Z|Ohd z;nf%*IzSPie9n)ccI6%V(*5vS zBMv@$+8DH%BGPM^t6REI2mx zk29$Z0tv2D^la6zbc-fe`Y)0)e||~c%z1uOF+d9c^lt8_n8YocCH}ri-gv1@0ZY(Q z+wsnatf6bi%-#1`pqM|w_sH6U^s!Y=h@Kn+clN`7Ai{ro<9hm`!BR|!utiu^PxQ)f z@-xJ?Ve|eZFRlmx`Z}!&Ua6OW1nVoK>0zjV2a<5X<>r z4(_2|y%-n1LG>f`-rIQ!!@V+F_bcMul35Npoa8@(jNiTo&(=@9S};gJyAssZy9&n5 z_uVkj?cxh^X}Q!si~GnXoWC-9^<_-ru8Ark>u>cm_+O))bltI9&BzvZ zLLm^OsLyCkQ2vB??)A>g96&zLaXQd_A;4>9{BeD%uge7>mFTt1fkWJT>XKv8ryEvD z*}{1pAyz{yp4er*%c;|zaKLq`1Co`D-U`Eefi+;0Y6|j)UGuJq<;1{uN0@v%u?GzF zt%5I+oP8a!Pj#cQ$$=YdCLAHErO=6)scW%dHx0`^l_5W7N;RUXyuWSeLt|G;M1;W2 zma;4uUb(mpXgULDw!_?((zz;i8A1By3$TNP48iT<=FXPIG`FXdBm@`vPGDGA&^Kf` zBsw{FWxQX$$^c8^;cEanB!mzDSw+E_s0Jqfcqy8+R*^aVICYERf;rhdF3tKivD`um z%|Vb0KAxGB+h;(eQZPt_`zS>;zb=FqtWX&o*zU@4Y$7;f+%A5*f&1>Z`eXDPKa4R- z_o&{?FPN)a=qQ&5ck?JDn!RdnxF+D|H;+E5u`Z~wi(Z5I=Vwfd0L|bM!7x1jSqqdXxcLR@`Yj9O}$@mlmOfLnu0)cq=r-^FfJQ&OW`_V`Dcc2ZYdCjQ5j1d5Wwr~)KzTr&u|lA!!$5|$gRl) zVQ+ZZR>+}77~DEEbnYW=1RawZ$Z!u2X1{qSa1*?cu#i;$#~I;VrwZz+qB+q!3D8JsivMzl+{#W#m=;rBc%O8&S6yrg7Y zk;`Al5DHY=B72Jk;gJlPR;_4alIW_oRnw$g30T?{e^YI^TJt#-=1@KC*|wd_-X&Njz0x?|&5qKO@pW zZ(}Z*f&o5of2hZ9vr4SOYI7kvYzH@uE(vKnLcIl7ks&J^9}0qx*XbHrA9`jc5Vct@ z9zaK)7ok!53peU(k}}=XejoM-<&qNeZaV)^(12jEW>N)?LN$C!*7St3J!=pC+BJV= z?U;H(G^yHSOQz$%=Lhi`ykJ|LE$yQ%dQ!2V={@SNKnQC32;qetRu_QZi8 z!p0Zr=b3FLmoiCog~bNKw1MkDS=MQ@7z9?a%sw0W_*r~WolK8LobHp|0)m=~Dz_Cw z6|WwQZH!>IBF!nKM<6aq$*mPKWCwWAC*lw`EZY`cDch9Yp5<(npMkfjiml{n=iU~% z(YQ20DzveFz~Len-Jw#R73>Nf=6_gebN3~S(iHmHQK0SS;Hc4N_cQY+Sv?ehzVt1f zV&S7Zh*6hK|HRrEX;AawqfS#^GZL=xzg{88qjTb1nAHwwDs;Cqq>p?O( z!DG!0!5|5_5z4SAeT1P(*(vf)qq(==iXoyb}Zxp^!?VkBf-HIk@9O zJ1>`v>wk_)gBcAo8;W70<0|Dtz?3$@$hzE@9K-rpmS+C$q4?WY2w3u+fs>RTdH@pY zJVK;+a6bm3E}um`n^~5GRiKLOSHZqwpiHK1ub-NuCTSrdr$_9hJ8^fW+AqK$y%1Zmkb%&q5p2=cz#Lj}ULmfLZ2YHkE-gQ4{9Y_JK=kw?5W z{j|}=ih3-TnBjb`aR?Uk)AL$_?!K1wX9sGt82U6J9YX6i0Th35a!12v6MkjCLI$MS zPU{@g;{T3I)FfhySUCYTl7qu_nH`jTU#SSm0oVD8gi+|Dd4G^?Hga;35|n9HmA|M! zNcv%O0S!mxNnyJy^mL^soSq?T*bUc|cmqXq1j=6&ralsHa7PLbmt7C9AlBHbiQggT z2gvS$=^FnJKP>=cqH!iW$1HSHZI24hGsw(3l`XmBSHdSrRV2B=J=!VX86^C9)eqh6 z6UBrU)oQ~NX2?6?da8iq<+KQ%Bkf;lf*@UpZv=eb3J$ei>!CKKuxe~#FsqD# zCPN7ds4&%&mOGsew9)5X{7>njsE;mA%oY>TourEb0}0NWdffM4G}3mW2YURT$~~rO{;7r;Vg>$Q*L_q5fj@NI+LbSd}3l`ry|*PXv209qh+UMogXnw?jM6l5Y3H% zugv)WA5ONW-Td4V37)K5uMj|hH2mAA$@Z7g$5F%If!r3oX4St*s97~m`wWpw~J+`u$cQ#b#a8B~TUPPPB1uWiE*xj+)v2})U zW!8#X@%PRP*GsLCov7;yuP1Jrpdvx&Pk35t%`~hNt1NM+irPq>jfD}VilCnGHRC7Q zmqSC6Jfj`je*h`cKv=am8r`vwIh7Xvfo3z3(Sf0T zDNa62udxU}ez!+K8%gLGjo1}3E59L7NA6@ri3RGa(k^?9DBT?t2pQk2lumm07=gN{ z;U2!}C@pS7g@FvkOc$DoWvPiUB$5GxwZLTgB<+9m0 zfM2lb-H7$PsDCl;gGG4z*qTz|i+C-}zN6Y65z*P~0y70TgA%MWTyjbLSpLze~ zfV39p`rhpwN_@V-KsYlU`TWp3CaLkGrx+9KQ90Yrc}T1Q}ci)U5ti3>Ss)dD%d$}qwa;jvHrVi@d9N_JP>o#UHg_H{0>>< zzDZ{Ky3#0X=~cv| zSn(awIbS8{Q-lfW\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\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\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:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\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 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\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 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 \"\";\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/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\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/308/f5b1bfb4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:50:02 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global 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 Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :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\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\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\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\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\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:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set 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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\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 MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n: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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\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:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=mod/AM-TG-Notifications owner=\ + mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "#!rsc by Vados\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\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 :local 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\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$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:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \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" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/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 password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +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 +/system scheduler +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260501/20260501000002-Diff-Config.rsc b/MikroNUC/history/20260501/20260501000002-Diff-Config.rsc new file mode 100644 index 0000000..1497148 --- /dev/null +++ b/MikroNUC/history/20260501/20260501000002-Diff-Config.rsc @@ -0,0 +1,3 @@ +3811,3812d3810 +< \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ +< \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ -- 2.52.0