From 94fc9cccc850f8568e02647c2291065505f1893d Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 16 Apr 2026 10:00:07 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Apr 16 10:00:07. --- .../20260416/20260416100001-Binary.backup | Bin 0 -> 315604 bytes .../20260416/20260416100001-Config.rsc | 4535 +++++++++++++++++ .../20260416/20260416100001-Diff-Config.rsc | 7 + 3 files changed, 4542 insertions(+) create mode 100644 MikroMaster/20260416/20260416100001-Binary.backup create mode 100644 MikroMaster/20260416/20260416100001-Config.rsc create mode 100644 MikroMaster/history/20260416/20260416100001-Diff-Config.rsc diff --git a/MikroMaster/20260416/20260416100001-Binary.backup b/MikroMaster/20260416/20260416100001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..fdc6768414a0a0b16bab8aecbbf9286db50c34e0 GIT binary patch literal 315604 zcmV+aKLEh*sF8Ej&;$U;B}`q5%QiE_%IY^xteA8F0000C{QrIskp%!);^}t#QBO%Z z#=2BewC~^!><90OmFS1+ROd5r8M4TO&UZMT_3IChn{P`TQV5lz zC1QA{FcTa5&{8>8+Szu6>47(3n4|^<{$5%2UiovUT-@jnL+-9n59f|j+FaAe4`|Ml zGiv^iBw(iwT$pK(&9x9h0D`QeubHxPV#GWDlS>VmarA6SD#v28n2h;0y{-h6c20CkpAb$)s7^>r z3UZd~sQ1%bPPO^&Oa1EVQ>5am!2Mos>iXBV)E96I9u)qq-aiDi6+{t7vzL`l=d zanf#3iL5jW+O~B148-3prIWUZO(H07^GKKaIU@LJ{=G8d{wG-%) zg*r?N_V6q9OGP9TDKAGH>O-iI-81pbazw+GatUV7DA^O|fiWTl%{!^Y$QES}<@DVp z(kM%0Ll-eu8FFLt#P??Zds(o9JvrVy8;PDZ|E{qZnE6oy%KAg5`6sqjQ0RJ9z&*^PRa)q~v8`AChwdgh zXs;5*Xj_ciuVG;di;W1J0hcu!%j#l1+N(Xq37xCBVMfu3^2ju5}d>e-X# zt!!C0XAm~_V`g_hTEaWUr%a&o}8357#o^}MkYW;@vnfdXYf{ATcAwi@U% z)QtJXjkIa3!TM56JfV0LL5~He;yLhlKBpumxjL`&ee(A?K2(!n{0GO{o4rRNnE4>z zvM=5|AVdB|y8=R`uT*{KoXl~5au zg-deQ6!BRkNoCGICc@l`()B;__h3|hYb%N`?RbSaU}dBhTS@cIr*g^Z3Id(up@5R< z^~F5ymjdgnI$KZBxUa3jRxL;_d@Iy#j8aJX)##UuJy;FJ;f~rS-RonXto)FCG~uDb zTaEKC0>h#eowZ{uhdb=-y@CeOxk~DSMdDLY}`7~Mj zumpE|^+;gfnRSs|b{7<^pqdiNFg1>8EiiB7UYsY58}vTlfkT8zlB5n4Y_H|591exH z{0q&bcOkr4unZpeokhMA$0BtR%6r?zU${Q%JuZ&&axeU{KPDLYCOQpyk0dl6S4sa| zwM^wdZp}|-^ul?LnlS53y1a^!@Gjb~9(xcKe`gU3_Qenz{T^E%$2w6N=ZdwKgvf#} z+bNjFAADUCWu=1zs$Y+quqxkF`wFJ@eCD|IS9%(}z>1&=LJs^y+YnT<8XKTV?RmYZ zG1WeWl99k)W-O3BFGwLSvu@o&L~keBi12rz0pfJ%0x9uoVVi^yhKrM?_`=C*xslA_ zK0FB!u(-ZUr@J7`ZPt%MVtnB&bwpAOos*&m36T54Lg3`vF(F3{k2t9!Dho|40PRMc z(PTt-Q~p>Q0Rh)WYsiw|pe$SG{JPu4sZpGxyu23n93R$$Dr6<`Kmg8kaP=lJfsYZ5 z?KL!|iF-ceD|dRprHuj_5Py^a(;Ow<>f<{Pqt;pCtr3vPL5zjVyvB>h=Z(aCO3lVb zc;Q_&IdivG2L#?AYG8e8C0YA1S8+DEf?Xe*u`Nw-bOXEE4Ft@@s`$vbM8y)GHIm5! zxaiL)nQdqk>0J-6LxfF= zM`jdbKiBt|`25qLbxlt0g_7A|9U)sGHc-;Hdd6rtZ?#UWO_ufhiMFu_J}bhCFBgcL zaC)VP0J4DOw_tMnM~|)lVO!sryN9qh2{OL|D6d5F%=Dg2v@u&WeVU@RyG;lScnVp} zBGD}&v;Q`dPnGat8AZ zh>X`TW7#6MX{XommU!+F*){RVSrXHb|9|E3Ge&-YC5|ujE&4rzv!b--_}k9Xrb2bd zk+)2n;06U#MeG1D7yaR{q{L#yt<10GZ=7_vRlf?QO~9$O$QZHlbK$csJf3|f&hyV1 z@($1sD|M@cR&xJu8gA`_(q}kDJ270P8H78}2^zI-!$21*7Pp zO2&(=o&MZS1>?Ny1$YZDKp|d?tt7hhJIy^;t$*{Ee?9#bcUFuHDQE^>x9pM0HxHbo z(Txg1NKVaZ`S?mBbPtOtK?H3km$y5}v}wWsks$+ZMA6IdJQ5p@%fwMCxuiFK%P>#% z+RDCH{D`-$yo3>BR;M-#0*^0gMmj?$X&eMGLx8L14WdmABE+yyy*FBP=D3&lTT>(- zScr$Nxrsbi<$Lv@k90u6vV9?IY*8vKf6SBz`sR)DiJy)gzELOMf0`8=^#;@UyBIw0 zYbMZs334-RI}*Tp==-(%1O0ky;FtF2`Z_HI-Yoq-&)O)Wug(JDMg*cUHZs)>WWt1I zSy~{VwslLK&-%(n#K4;Fh%7t%I(mj2p)Hw-3Nb^us6q%-xC|8u0P!?r98?{e`uH_J zZVPUD9vS!uHvp1ex1&t+8NU{-Ha5;hL{m%~L%sN8wj-mxP#03RZ&Qe%={0tAvLF?P zr`(Zhj-x2#x2`B74CT$zR!kK|@>D4nZbr}#U;w0t*0dy7*!brog*A>1VI`LAd!sga z2rasRLxt8{*3@#5Q$BTjnwdSIAz{Fb+n_I~rvt6Q9lmXwSfcOrBQ2}kPac_Wh@>c# zYsgsVBQP7Lq_P<=8F68jBtoOf+>J1Q0D~Nx?^F5ZkRKBHq{R)##8*gdSL@)ok;kbu zzd0Q6n`TUi+m7hvtl;Dw|3?Rt3=(mpH=)$r!IKrCdFe_uT|+6A{mbfXgc8fMNlWf* zo+ENYGtX6iH&!D}5at;-ge~~Pq-8`S^VkB6pX3mwHES? zMq1_eh@%@375;AH+8GW6$}a*4bTH>@)|qa$cP#b)Ma#K?wgvj_prp zn6CO1u(W1+dm;_ag-OMPt8fc12Y7epGfkb;ghEq-2wp=J>7buW zOC&ystqRe$Q3zpLqd$?f+cVc`2G$uKR%%q?vuU^|t`$ptp>syXL<*x0(X1rkNhqVS z5r7PA>DfWJ(Ij@UkJc8Kf5g8ZFTM!sW!Q&Pe9U6cLkewc0Ji=qcP|h(wGg=`TZHNh zzxdyY$sX;S(0Fe$)HTwPs3Wy6uDyoi`2=Z`byZK62PhiYJh0CEB$|;n0vbSio{T_b zWciX<=Wy&H{{&)W3?Ch>%^1H@@a3on7JLnO%SBlnm~~d6kQ*FI(j<^Xq4()KQbA~7 zN`SU^3!u0OINpDrcb;NUt;O9Y%+=0I#UjkBs5Nqn&J#JC@a@Pf&Q3pL4CzYjN$6P{ z`xxtPQ<>A5DX6#fdxKhv!iS&ky-oVOc8w8fFEjaE*1CY_`%2Z2uM?M}N?DTr>j-Ej z?Av^uRut9U-!K2iQ<3_vG09>#XT;X{jQCZd5{P4AztbAyJg*TVMM;Q3mAZ|sHOyCm z9~k8W;K!Rez-!;7kC#WxgyJ?zH1|(@=CCe#Y;A=Fz4>e*=6!0g6JuP@7o}$1!DNy2 z);=_`i7-xoDC#1)A_HyPRRTCqQaZLf3KqcY-?weKjSwsR+`k)LmCg&a6dtz_AmmxH zV12iG(X5~|7CejupjPAoVvf`71IUYKTOwUovWHn5 zR!8zwMRLH7KIHB`zT1suYMp?KgoSqRS6X_7h$q6??sEK1BKQb-)!&G+#xIzkX?Mm< zr0<(H+u3Z;T6+aBOv?cojIz8oM@Ih|-Ea?i&vlJTpVGORrh;>OkCemqn##q1@OUXs5cxGYx?I-uZp+fn zy1sO}8umm>-qk3;Hv%i`6EHkp*0HkXx5N`AX{%GU_4iQ`Ac!?g{_T2#rxMfvN2B3^F_H){ zB;9-_FmshFgU89{V1ty6l%$~JbiMddWNM8ixtc|gA|p)e_AVp-z@lO59%>JYxDK}6 z8sIlL&oG&(SUvZjKI*x+03NqJPFtI96gY^mM=PN;h>9mG$hWMcjr}IG7fNjY`;%LC z{=BP&&J;5f1y}t%`IUjQ;Lg}G#x=7NAyR={w`HJe2{P+76zuUO9K1ReikH+1pPjs} z2FKygb27(BOTNJsdqyP0-FFZ5;EJxTC3dy^M~}pWrZh;<9>yE#4o@p-^_&l>c)85E z3l-abm!yP>4#TJjbbEhiLSoE6FTJGUL$O{Dx_(jI+)I*2+sy=a0^ybKFwNepCIFB=v@&>}doeMjI`~)=!}jQ;bnYiWYWnO_Z4o4!j3T{CO@9=XY`0iKoEyd!WaxlLpOz2m0y-JlE#-dc z-Ed_4e-=Hpa{K@s#L%99&hjDX$c=%rV^(4TeSj8x=KeWrnz96-FS-Lg|0a3d%3|y-W=L0Ui929G?p;s@k|lcSq|O{a zc;PTK3K0;htC?2Plf#S@frYu^a~eZOW=DJNd=r}Z;%!y0k)U6DcQ=>PgMNydrLB{G zZ#pKu94W#B^Nv`Dx~X`Y%&htp7&8z`N~kkYTDhyWRQ)a2zNjN}d&tB4*wTHfPcmxJ z)G$-0;ORc6UOAFdsG2t&9u_;H)&d8D;j(RaY`oeZNBDpQ0W;o*sTSHQ_JrW^!ad9x z|4V+?T3lWkA$DFu3AGs5APtACzi(w*_(!9=D&9BGZe>)ys~3qEO^38v3uawgHahIQ zIV6$Z!%c?r53nz}@Q52z@uS8>(ok>PV%V3;?h*_0S~Pg(!4(Od((4|%jeVr5nQYlTH<*esUwD;#vL zf;SUrC>@Q>!|aS?-mZYN6h69%aM>z(jkllhT}ys%7+h{2Q;|zd7Wb^Vm_i}jAEg=Z zVK^9D7M`oTSzlItnMN!5_iVQWz7dYIAPS4$mA^I+klnv#tMU3_WjtZ|j!P@^N z>3mAndB~bDe$bx)vold-_=wVtM%5cs+pqt3YAQjOifGUDlCrVqnVHTt;E;vWNu`(9 zP;rZIjf^A6@E@ZhgDo~Ipn!`VK|kF-xj;Hm8Uh2mGywP(6w&gQ7tnT|cS>w#+kUYY z)h&-PjEDsl0xD=g`Xj+d!~`9=c&eG^fx)cYF9O(69!;1wAo_fnv$n%@smewAAQ+;z zqq5WU6~xITyct02CkfcrhZqzd`;*EniBP^u!-%l^vh()NI1_3N>qmGhURoy^(XW}C zIZI*Hc}JR}h|6;7BfVmA;kf9=gK=gRKqsO`%O53qh*oi@hUf zRKhY{vp|osFBzAjR_H?O|7M#EX-P&)Hm&lxCJe*b^$9WpF%%#`BRzrV1Ce|G8XAk? z8P@sftXT1XqZ(D6-)UV;G^~Z6ZNVSr-Eo0Ig^=9G3EwyYuxzksb>s3g5koEHG#_({ zqiCO%3|%eeOjQnj|ZxETARBWkLfaIuuviB zp_#4aPbJD#=ErF{Zha4s6znC$a3%ycVzXXXJQr__2At$&>uU*L6}NVB5#`byLvdU6 zjSK{R?HKY4;B{t~s32!2t|ZC)^&atS4saIjKI76Hvs$qC6eCAf+3<8Q2t{BR}Q3)yggPm!p@Z1gC!(y=fiSdMcV0c`=~60dX!uTe_C7-`5hv!U zjRptQ7nT*g7W^^!zg;+3obf)n4rjwgRM?u&EgC|d@8(Bjjb3zEmdgGMN<=k>n~yiC zOp`N)L&ELrbss!;q1Z`W%vcD|ZZ!<^r+vP_K1=!OB9<=mH*RT6Gj`Y?Lpkv;213nP zlziic5)prJAu&~U@Qw#?C`ETqBT1e=br%V1|aA!JA3SuX}n>E?=@8_E$@J;8*IFZSTCSx(?y+0Q9g^)U@c zHojlT$Be5Hofi0QnIa>0IY%7bOlR7UBKwlYLRPb2K&KP#!+A9_|>6$|vf?fqe5orf04axRFaEbz<;nq!2+}E5Z>kx> zIZxM=$kk)>0m!GWF`Od=K6)1)3vSE2hqJB*+=kp9F8YV#1AGCrvUEvIf>~1{*Z2B? zl5MZ3s!~Jzqjtl^ey+)=wkpdRP;us};&S11Wc+{E#RE%kXXTS0K$RQQDh-9G{DHDo z5jt)8QR`=d*^ro&%j?dz?;(!~ba=N@AZ*H3Xr!5_EZU{gMB-WzuBcr+{F3Gu+gay= zXQ_TL-S z>xtlPpZjgJTObpG>Pmx=`qVhpZ8;--+yv$ly6s6wdYCr=wlLa55oj|c!XbTu!x|t} z)$FI>HA)?@f;cCzJfu z1=v5Kej|>q?)GVsKAj(>P_8k{pq~75mc*R9D;yC%oVMQ&nHqS0SFAr}hOY823eCpU zPc=X47s6L9+!nMRlwY>1lR+{33#CL2AK$D+%uF0p1GI<(21|88Jq36dJmEhk8kyb$ zu~0)h^7F)_&!S2^_f{LSvq{|Y)h|<_nuFo{-~&z;Ulb? zzFp`%^dKmWSY=1{qM$n~1j_-7qPLMVR4yYrG3sZG)GxfbJy#jLl_ z4IY~WqimWPP12kaC&5N7{=W8Nt+l@G`7ipcwR7bRi937pdqT_V!UBi9|gc z^t{!|=f}lfa7?)1{;@fnvW(}6?XPK`0N41H;K0Bs(SUK3p)I)vjAAWi5r=~?uVY(y zsVPyxy*x9UpHoIw{VQ%A65D?=bP+DZ0FzB*5vh5Q-UYu+8V#zl&^DI?!>UMBF(yUG zL*E*s)r8u~V&*0+ZIRGPzf6?c4ga+^)3Wst6@5bZMhy9pTcO%oOlFMhpJzq)!$}Cq zk1CLCxMzns=Y*3H_nTwqAON;etUgzsVF{E3ABD} zzDv)T69!@0<16Qb$yJI!!ysx_gt9Kfm$L{{#B8*bf}Qvr1M*@|R2Z{6V~%+CIV8bt zmRtziOCS@S^=Z_8oZW6GS7Jg3gFGp^)|kI%QuUDdN6aF{hd9w5bC0<&$<-4+(;tMI ztkdki&98;!LHWpC)-u*LrD|4Sg3sFP5tvImscQPBWq21ow%>wc#Yx0bXwMeeCHTb$ zM8)I=NXDDB(TR83rQCOqzt@uB89xIuQ=J5fE;(e&(|UlqdN((B5+MJUM4k}OuhTr#=IG!MP+KC%PqQE1s+7EMDZTtrgdpp7U~DYg?_ZbH_4#oM z9Zv*YzfWebja1DmYXXR1Xcn%G;MKGyS<~(|=)iWGKv`PzN!t_cZSUex;H3wS24C*h z21l9nWh9WoZ{_#Sn(WIXbg(00V5}c^&d+%?NE+8SFgWz4*v=DLA6osNpBt<&w7AUD z4pg?kvysuQQQN`a$&AhY89@8eW^FC{N{5R;7^e+d>mRp?8x{Zh+la3Q9+nmj$7#C( zZ{O%cBx5cPLx^Q=wH4~h7kGQ!+4LjdL3afkctq*?;tC*Af zB(D9c{VL;hM+M*j4zDn+k8MBKY3}fYK}#aogUBroC z-!deAFU=lD&loYh3wS5Cj3au#*r4xK%4YhCw`XgJx~*mYq8z-WM56@b_*j;ap7Q@Z zO^TH3)tRYq7KP-rJf-j@8$D0keqidgRA|=WzsWm&45f(vB{dJ2&51?VLcZFN&EZBl zNE)4|;}OtTa&Rl1q!wlCM<{`8Ix4j`BM_!s64OJPR2fUBsHVf5;~ds2dyp)88?Me_ zT|h%b`X)p>MLe6T#<6(c-RN1yOF*@(k=|W_-mp*}H?$zGgyZ%o0u9Jjg>u5!;H4rn zoa-7X=g8hM=cWwJCHU@-$Q!A;5YPxf7pVDNCZ#A__V;`bD| zZD2{~*+`DIBdEMdwSSf&hWLY!buj(US43GNfJdg*m~~ol7u;x7&$kkM;kk+k>ITf| z3o{mfZcfcNswG*nFY{pmJN^~L+MH!J#@WIw>m3V3#3c39~b!y47ls{jFLZ*t9CJQ%Qxo@@U= zpK=V`!y5eZR(6PP)5Mt{y$l-kXOGTJYs}7fVs+rT>|l%Q_1bRO_yqiMKid6pYyO0A znmMZf2If7DYxwW3fLi|Gc@Po+>b1mbjO|MHq3vW}ifx6?0G%8U7K@vr@dE257$DWr z=vkRsQ!b0I&~?N*!psy~F#dF(q`!^`daygpWTyPctnh!0n()^W+gKy=!z4xpm=5w@24Q> zHy{2=_y@tw>gyp!E?1Hz`S;;>ZPc?F&=bPp-y)Ixz+^^1y=Kj^n+8~x5HaBc4Rv?_ zZrvgCPWAMzYQkedz0iHPqJYm`qd5bF4lzgN*!ZBhjUiM%lZqxaSFdrF{B$H*+MAaZ z6(7|G@-a>IYs;cOCnv@HlQt=)hksLD0rI6-(gJ>u@-vAm3Fn^tKMRCQY+^Q`txiFk zxBfIzHX=fNQ_*({Y`Jy{0}leX*x?}}Q=(7;<&&uoWtV8r4@ihCZ`^_1W*rS{G-QUZ zRrr7Kn2J|2Qe#A-KjBv^b6%xEWnS37Gw%SEWFt56*cpY#w_A(LONV)P;)8eyB$$_} z{F~uxhq-;8qz6$ZNRTmEI7bGDEM0EtR`~OO=DZJ4gE6;-cSW(+z7jaB9irgZpF(6T zJKI2=6t&fuF!-Vr0r)ap;8UDNIS7c7bf+l>UB@dLn|ytB_asZrntMYXzy{{81bu|rHeNdYyF61JYQszr5P=*z{BwnJyIp#k|=^qYXez)v61co!+5MnMYz0h{R za@gkj`j>Z}W}>#NtCp*W?mTc^|5#b;3;sy%?vT(k3~AR6jimC0{fZ^LDih_@KsJ-~ zitP^NIDf2(Q#`kEc4(&wT;)us7H2~D;N_eJ+UOvP@Kk12xK9nD9GnfmQtqb+or&K$AVP*Px@PL0*g`yq z_vS6`5F^{NJUr0l`FH#luQsu%1BgVq1Vm1Nas5b;q$V-Oc3bOXVaG&)U0s50>T zjRguStV?ov!ZgWRqL#STzIl~XvyawVoeNlcZ3a$)gfegi&jwlZ?dNYUGIZeZ)(BAY zv-P>#^8c6Qza5=VOt(--K|<(x9okrU*fwQ_>ka{g{9PDfw;Q0G3WK&@B@R8Q4Z@+d z8!Buc5#>1ux?de?m1#dL30~`t+i56~O`+d`LjDg)Yxqm*rr|C1L>BhC=lO|cHJ3epuI<3xP3mJW7StAFN%wLJ1Pph1s zVtp~K&vrYY^0@Q%Fx__^QfNHJmbimaKhHE7j~2V)&78b|U1$l@a~y!Y*nIB4a3!d0 zcFV>j{qp=rMXV8yCyKW&_@MbUA;y?Ux}-Rk4c7Oxqm2CeZ`f7fzE3j&Jq$qCYyh`$-c(h|3LX8@OGa~sf?;3Mv6&HUbI;gg+!0$G7)fx0_vBn zRXF~8>o9%;i1o>4O?JUbnsmZf+NwTWz#Kcjh3ph#6}ucC)vX;eug^%$gk3`<*2;s@ zZy6&xa~Ym%T#VxBZ?E*23OT?*#{qWrGg1?Yjw+aLu7VHKf7^Qvai52AeX--*G8Jc{ zFdKItz8akQzA}81JE=6~HEK9APl+#D9FgTT0m%h{jKDqnQj=<`eO`W|U^GJ2;k5px zkf39*ekwg6crbgwkkPJ)QSXEz2V@21dB+uluG$pUjGvx$LnTwzio z>t3z){@62Dhy8dSns5!I%pZxpiofcUQ}hS@c7$N(r?Se*6U@!X7AXWiwFYS}7qMle zZ#9^!f<0(Py*eXO5N}wfe54Guc-clBjPa7qs(HkO67U3W`Ksw1S;hcLdwkqC@bCv}G13r+3AK zEDZ)|ab?uS?^@+IiU#HsV~~9$_s|gfw`;~7c@cpkPo!U=9%ZUPK|5-wg`LQJv8y@m zFH}o0bAM8iYg+|>gmyr|@ULs+;&?W9T>;r=Iq9;YO&CP#mOo8DPB*0S{@CMV?)QuU z&6tSn?AcuvobVT{Ro0brud6hHAJMm3;#D4ksCY4D2|5eGFPAW=?p9#~lHb9~;R~M| zNE@<_jO@#Q*DoJ?(Rg|Udn~PyYjobOaL7{n3vY|3pZ=sBi2vGRk6Qf?*BKbr?6$&zOSEhm?TVYwW|Yh6Z9ym9O9Sh?3bGuR5Ty5UhG@lbtPTr} zqckzmd8Pd7-S{nX6(#xWF5~%fsD!Ed-(n%!u*fLmc4IHj9h@N6K?d4S!=49I(BYbP zYO!ShpZ~nRh26VDBA-ea#gg`!KhqvO9miL9(0fsSKRoh7|^B#MY!9aL$fE0R2_+N zv7#NZWKz@p-@X3{MwxE#ll=ZNP6@UFyp2JSw2HN3v7+_nBRr`{0h`rM;{hR*6M3lF zhH*mfCFS-XkN_iof!zt#^%l$RCb!c<5rir;Hw*u3L(TUB>p!2oFZ(;`gjsCM3P{eN z1C`NWL;bo#+j@RsJe?~Foa#p3zMB_GAN!y2{;WM@j9RhB##tmsVp#*ODOj_q_WI7?rGVVwUVC@`up+twowAZuJM-QSYTGDQdM;q;e zL&hG980ue&E76-M`kWHuU{V$L&&8zf=$sGw{HufrHKit2P8T4X;F(l_Z$YorQiJcAK--ya7YlJ+s%9z+!h~AR(A9uVM4>J`7MsnS5ywGO8%U8=&G| z@;%US5kr)|~ReaKwI9}lZL*%*JY;>$;OKzeX4IMjqFTEc5?_@z+@<+OTDbQzy#@I)*YrgsaZv~ z2F)g>9}JyEvlsXr>~bh=uRS;C#HJ0-x>X~ z@&_Z7D>xT#YZn3FgtWHn^jN+_;kHzg&g>hxvlOE}86o+u=5Ed<7P- zPgSPpgNx>UR{O$X@^{rOSwPlB7;<}7GsUx(XOl|MMD!sUxwW|Q;kCDbK_zRJ!7%WkKHAvQq? zSZum7pnS$MfRsZOLZ)aUbHR012sMce2i_e9a5Na*bD3Ht2*RD=v(YGq$bh@4)CyVP zp(t$VIiv@qCGwv?_rCbUsIPO8dVfi-n1a6FW(Nxq`+=r1pabVhy>ne!G%{PmwG)38 zLq&tR;?SHJLye4{=Hn7F)!OxeL$f{hMO%*lt(4*4 z?M)?J=?uef$k#;R0s<@p4Rx~jsKjugjG zw1@&kB^8M!)i%W&CJui08P#&vZjj_A!%)XQUSFgx!j&#GsB~x9n$mOQp`u@FjW}jm zx}MRQaXRwsbUOg*x+pdEps*Gc=71JwL{~~tIZT%&GlMdAGql29vPGfhoBwU@ODM1tyly<)KdIDCpC3za!#!%#A(uZd1WG7IMnsUsc_uZ zB{K3PwKh{=N5X9r@Ky_!hJZy!&mnZ|w195B(4zC4RQs+w0-y$=guc+(tJ2DD3pyOD zgqyFmmmNEnBp5DlK#dI!I8N$#0(rR$Cd$7k>NajuzRs`p9G-W7d>Tq<*zUyDzs>!P z3@ATdbLYYeP;|F;98A*|)3yokgG`J6@%DnQd!mLIW?KD*v7VJUo}&%#kUo%lyLwb= zAG^4W{3IPVH5pOzRMu4Dmog3k{LnAez(|ZU$uoPEcYtv;gkeTS8J~6_s57S-3jZg> zzM*e>odRiE?lFP96DS7`6-p~7CLEWel|*tOGX5|E9teE~GwJc%q>p^g95a&ijB z6NeF$?DoX_!ztS!T48yQgx&(=sS$_K)96Q9GuxOsO+yju&~W+5xs=$^DcmWsEhj2~ z|42(4*hJ5$olqThhr^Uu5Sp~#tKCKIA~p8kw(K0%Qs|w)C0{Y$$Kewn_{to1uPoXR z6T_OUh!u%%hPLU;8-whBPujq~w*l&N!Iyv$S&)9lI+PB|pB?m)lhBYzR|C8P)Dfh` z$deo-)WHy<{G5GIf^d@yYNz`1XYH*&<6Q65SEBop66y%@58|HQ*qvr(Y#Ni!X8>$9 zBsp2i?3Cp4<+m?FeIY8&ZmPPyEjRD*{92035L!tjo5ZT?lAIoBO>ns_N#%$HQUQv@ z+dSCJg_gGR+eBoicmdj@b}EK~mv{Y52R?w4;&hh~Dfboy>2mHUDW2)M`20F5;xhyk zpA{0f!>oKkzq1N1)n&-p*AXZ9X>aGCTeE_a->i@vvA!>IhXgHnrHvzem>f7sRh{phI`?_b)%5~*AOs<{Rqb4P=Mr`O^PynEA@ z7m6(kqpgYV)C*j%OdLSRfDA=_fr$x~HNa*Oe_YAH5S6^Gv}BNL3gF@@#zGY^K?~Y4 z5_;hi1uR>$isNzxV8`heyjj3{e0n|;zZxGK2TLF#!gm+`Lm9Hw1W#*tTHF6zxC{{? z0fpV=-O01<;36LZ)AP8njJ!TK69s;ph9Ug=x-?_P70cKRGw-*n=3Qvt1SpTjknvS% zT%S45rxh~()gB^q*?{YL%nrDIl12D^Q_ zf9#5*@U#VsLP3T}8W4=Q2N|TI9T5x%e+;q9Y2?O$8oNDnS-{+Rt5IhxJiv{LPM37l zozL3;Ru3aP%Mi_wL)~X9Om+35PTvBHSAT>_0%FTq{3q`75|{8Q)`F0PSrd(*7lXC1 zQSFU$|H@P-)-@U9(B$#>?Y5Pd`z2eOo}K>$aPcaqfvyb+3#smIbrmD*r)n>xjbpHs zSMGn3aWh}Mn1>lXMG?xZnlHmnRautoEzL~n7FDeB6~0Q&F1uPCOh=GGU%R>m7YJ*1Ko^ukxchh+QwH6zvSsX*7&?aV;UTCwPo{_F~aGur0#88G{k5wU$= z%#VBBk8dn|(&T}jj%oG*Pfrjn!Qg3Ez~URsqqJ-dV~_lzeX5 zf_5>YiA4HfM44%YiSCuKq-%bD+f#5^`O9ZFGMzfw|3`>ZJM!1YCvh3|YuL_vFN_>y z_aToV2q_6KOd{Dq@5FgShrc~3oMK-ek4`-X!X#b0n-ckARzAE7A}RpPk;m^_E2@ zsVd2+JqBQ-HWE2WnK{Z4&Vw~%?n=@Av65GNDoesD@x^7DYrDPz%T};<{2hp-sz%%v z^{o0dk_M?9twvE8z?jMv0>;fM=C@$vR*uzL_8w1d84nY$CzXovz?r>{;n!~vFlfV$ zHlBd9oz?H;a6tyySvT41Q@FXDW97LitRC5wTZhf^{ue7FPkIy3 zT#HBJA1Im3^Dot?7IA0Emsrkd@W-;GU_0k<(Q|I1cuoYdvKC&04~M1yDg>Uq5H#~L z1bmX`o;NVd*hK0#v=6>to4M4ZN@~qCpdzsF%n9F4q|J_wg}C!Ka5^gHMW+^r31c`3 z@>0u&-FL$t4O6d$#^0*j*9DQqVCMV3DQ_R~r3UF_KPF`ccqQueB4*<)+kAKDzAkBpNLvPZn;d|-y((AA zs1IFcC>TK;^P&XkWg&URDX|LI-(58?`U3(NnMPIBSc3~30x!L6JuEH37TeQnwAL4; zLb)J@yN{4z67ulIO6N9?p(HR%>Wzyq=*UdY!l6`9UD(tHAYR*VTEPj#tH(n$VLu)d z>f5dN0?(T4 zM4mB2kB|t}Z3!eff-TjAiVt-)@&6iivn!NP6wL^tf;|BXE99lOJ5>}41ERWBT;s74 zZpYiHpJmBj>7sYY@*yshYy$$gz$X^IWb8R#kDUsXlSJ(ESA7Ujl4ETVLo((mC~Gjv zl&sEJQmtZGBOa|u3Mqaq2dPS3PuEiTTCZ-$+G;ilLKA(A`+V_FQMQP+6;PVGe`Peq z!oquU64>k2Gx#`LPSwb{*0#+bp*oV#`^A%A900!*M|Q#TtC~(>G*zcQQoS1004m6E ziQo^0!>G=e4CY0l)1p~#*s<}=ax14{{~2ZjkU-i+HC)}+Wbl42j53hw|G+y@f$wKH zg*MUsq_s}BqV6K#dmI%H$XNw{cpgR}C|2mKFoe|gA{D%5!fle%Ze3a*4}{MLR+rK< zb3rd0Kfp9Lp@l?Cqn@$TRhL~9@(Bxn&^0Aj8XlIZ`0-go7b#trx0}(f3al1PFpc^w za;9w&26vUBk#xk3Ul|XV5r>!SHv3sEy%%{erdn+kLu^1|arMDm)BQ5h)QS6!Z#m8jS4Y4c~-bq-8`wX7BEiULy9GrJKi_>VY^-MGA`Eh3yv9w!A4-1tb~8 zSxJB4lXT5WhZNE-0$|i69v;lB^^+VbHcMKq?*rtPu`IrKTc7IkJXKyInmCHYCf55EO&=j<& zqU$dMt^3+gugPM1==PWhOlV4GbPR50q@{{gP+)9D!mHo&BB7( zouC1MTo%$1=*V=-k{;rdeL;NkarnwebM(Kq)a&~eoHP_Wto`MF!q5cGwy^fQ zaNCtHaSc5WBRPca$LL8hT^P)HBd<&pv1b?*XWW}+oTtb{PI{%V;NR!7Y_z3Rxy4PDHjsj5|fwm_b+PBcImwGspIC<=lcrq1zEJ63^c9y-% zeT=7qzE<6mCr@?gp%$DgL7^>D%b0hUx`ht_s?#&FSs2c>V`B9#Vb{{T|4=b@abnT- zlUDZ>vhd&R>tTx272LtiA-R)S5Bb=;VmG2_SN5(ekg2Qw`JGlZBbUTc=LOfWLCak_ z^<^6~MpIkQD`PJ|J$=mImIr97_e_pj#Y;Py)!l$x;OsI$f3}K-*pgK~` zhl-#+MM;vIxYah{Lx!Sp$5&1m#okEG2kyYBeFtXS^xvimBfD7)x_lZ+Oro>;Qpe@T z1H}S5Jjcy?KiB~OKLEf~<_>u2VUetd7|6i;TPSh53h|{>BXku4?`Ue7Ry`Lfa_LX~ zR0YZLEah2jVAA_ZA~ml{zwY^OQzRIze=fHnxTivZ_L9A?Z%`G*C7uL9@Q$!mUEBuI zP!d=lZ?i?jS))jbL0jY+P$hOXw8|+_WDtYLws;m;yYHK1Qa$dGwMfWyLtz44(5gx( zmu{6h1~x%H9gxDGsEDNZSP{;Q=S!jN*6pJ07*Zpjrkhi*%DQ>y7aqO`v%G;Z!cT6y}QYX>6RsVH-UY(Vt3-NHSU|rZ2&U`uK-l95_klW-4P-~%$^{=OO1;&5) z0R+5g`MZ>JyCb2aF~?4S`^W=1Zi9(uj4Jj-Zci734v(0v{$b#SK}rj3{nBc1jGpq_ z>F#EY(RH|hIxIDoqVl!o?$~slxwF-LqO?>?k4WjmW30-}#Q>&I2X5F|fyD|rH($Ry zcr}jPWfJAt4%3xQX-O3XwM@}k{mP3{d23MqNQH9_t=dat)h|sB=8N+}9#OZZpfm+k zM+<(Dm3AWyggs{XJn^|&S)6IHSBA~MllOuV8ogrqsy zjQGb?t7p@z%+-)rwG;Qfv$3@27KT>@JWE|r_2^~y4}Erg$b!Q!#h09b4eDUkdHvEc z;2_V%>SAb9P=A96B@O$79;y}ztYH)94xXWD|FIBvdfdd*k%+(sDooZGpCssN)W z=IwhSlEQPT&5`*HcqaWq!!f6OA2cCi1Y1H7D*eTMb*_Bw&Y_NZHG2E_u z%R)^WkmJl9O`m-GVua>C4}jdru8?0rklGA)1$PEQk_m42#A6%i^R9jm)-OUh2J4>4 zKMt>6w7Sa1A=vFf)>y`lJ-YO(08~gnNd~?ihqT zx;*lj9X#jkb&F?G5%k945&=RG#;ub~27WMGyLH2JDtvh#>i(s7JYj&h^0-mzWRt|eShmxPg3!7Ip%e0~f zh1ymbl5ndh%Bn9PS``H^_boZ3Puu|bxfjnM)bf$*52<25^Lr3~xe|MOR?`u@ISYsK z{g(sPtV{tBFmQG+vtux701HQB0@m|ncg17;<;?heG0VXhokVTfwB6n=;A9gNbLl#6 z1sf0ic^xl{MS+oj3^d=6dVp!6?8=sLeQ*SNRXFSav#AYChuM#%R>{2JL? z%2A|JPQln21$O`dN3G!-@|Ht3MFU(U{86y1vj{j84f?)z;HaM}$|J~{>fZnPWn6K7 zrK^Ue_1j(P%#6wqubQcZ}JFdGq2%Jl#Gq%OVGZM$28<%j@zHGOYORb`U5qEb_j>j1W&LoJF zH~9qIWyM)`4}N$*v3s5zizhDZE{<1x8A1`{^kyo-IQF<#cbsp}R@?`5`4A%lm81YW zj(Zs6UJ`Yl3X0kvQv~gQuvT zPKI`K7re^NUk2Ji+_ywsZ<0epL{Pi{K6G#A-hSdZyhJcDer#`Uz4+=OQJJdCyu>^= z>xN*88{r3B_FIxA_ILTgm;)Py?~nEr5^tV?Eq`}eTqwcBCb*`+0 zTrPUl+lC(wG6vb-+rY$c6oxk&!m02bv0AG5Bv5s7V&RZ*dJefU>Z695r$zia$k!3` zU5m;sa}azc&m=l@Nn6cIb*I?aNIh!vHkGn#!5W+SeFvVdn%@IY4aL!0`N|~sP;S>n zP%S^IS_j(VfNGl>gwdF%0+gVTNp=coi+7Z-Q}U82>wCF<$+TlJD@UOTRdg)OA+tR& z&V#kcMh8bvlNl8~O}5>8Q&08-3uvodHMI3T?~+}_mY(%5L5U`O+`IEDOYAA4y`df? zbBx(==L~b&H_Z5w4uwr-5--G|Wg=BbHHwPx@P4DOi^dkXqh9Z;23;uOE{<&x7y(0! zhl>C$RE%L|H%obXT?|&6kkbC2SpaQ(6nV%{_mNZ z_`5??%BRkktcfzMZ=A9O+s_3nf3^;(C~9E+lB+Zg8LnE_&T%oSLdTz^i)hTsZY#sT z7(MXN26H}XjmR2OP#bhgmY3FjR$P(>gYUf9b=e~WF|aR(1btj~4eh5VUk8wuvF;AW zMJTgB4jcvG~yo;c3R9()4Zii|ceqf0+u; zrN2AppXFy50@p&|OcAB`^&U6v2Uc-{HU{PSp92HDChu5ACaA1|a103w#j-PX9+e~` z2Q(;I4u5Z>V)Ve;G3g zfyS4Ll>|0*CtmO)h_wL}#QtoTeD<_*x!IpID5^N~>NYn16dFh-MavQ==Tj?Qd#{>7 z$ljYEv7*f!dWh}prP33|bvY?I97b@+=2vpiJ_L(X~ z5Ysv@J*mbL{`Ba6ZLyRT--2WF?HA|;{k=qW z15UL^vrjbjJ<5fru1rfT6YxqfUQzgFvp!JQx?EmCSk6Oq^d%Hvnk4?XN?IvKYoPH_ zeFI5^#zK8srZ$Ps`@iNqihM<7oV?$YWzAJ)}z zQmNtE&LripZ8D$MdBTG>pc=iUm>K34m2n%!8=|M1yfpQ_jyMo-ID@i;cpMoN@HgoU z*?MuRZbF%fUeaOK8hTA_>8|hT{}R%_uQNpl@_lJd7k-%I@zRJ1GgYaTvV4G({bYiV zUucx2dmyb!F9%N(@svU7=V{p;A;}^vovpC>SN5ABIxV7(H>Y6 za=N1Q#wgXlXIww`fTBHfUYm-i&vxqmguasb%w-B~t;hN7yUlP`(9#fU1kaf_zy|RN zmUJ{gWXy#v9&|q3LH1<6tX0z>w!!s^K6Qk9Dn^DXgdEfy*;XtCIo>+N>_*;V1_z*B zH&N~+K%WG~@uIh!QPjGA>|B@z^)x&C3EY8!Rk(1wqilw6qPZVfiun|thPZ8XA2wQh z(0J-oRcE^{nc<3jym3+Epm&U7uLDPeo@Gt+ugM?yq$k{vC=s%ITbk-N!i9?ps0^-! zc8>q3PNYS#0`G8|lK~twm*&K!UMOT6vZ>nTSI}*5N`AB^nnBM-Zak9=)E%*_!|V={ ze-W}$a?Zg;CUW=Xo!Y0xFH^(6^BNeqdl?7*liK(R^eBh_=c4Oy(*VB)SnF!~i)Xk5 zf|o!2xafn{jTL!yS;zI@huGwyvRM=+N zw+>Ht#saB4=4x^|0{e}gejJgfu}5BL+-xVgTtJgDZ3jjA)~o@#ST>>WC)is(;x}SW zisnl*Ud);NlggaBZQz>c^_q&?I;L(syM4;!69UI$u78MK zD7((*&5gMN={+@<8++L*l7t$ZpUQN=!Pxv4N?~a>aB{|pZmFbt45DRA^_j10yNHqS^2az3PHnYCRb#7~`Qd%fsMO`NzcH7kwcv z+5T&B2TfZ11)2@SNhW*j&t{&$rcjhSj3fni=!N;VyqJ#?`UP;vk|hzS5}GlpZHcCUtU-U#2MuiUH0-1ccvaF+)sI2Ew;yiWa~(P6uS2wxA2 z01)E6GaH$mHeWDF!{Uj^vw}p_078H@luHE!|vLG(UWRIo8Sj&ZiO zl8|_7v*HXp95k&{uKG;h>9jR~IaFTGh=q8~1Q7|c{D32>=Pf>%cKXj|XEzDeCv04` zl0_y-2wS0fKpljp#mmDe^}Iu+=T}v>e3JM`o=$N093+IW!v4=EAV#?_EAbe!*&RIs z2jZIJBEZgvUsx0EuQX91lN>UA_czbo;v*>RC+J~%NGT($WuSw4D_bVHFJj5*nKDp_ zgs5xZdGti7(G01EfvClda~ghR@5hU8n$;*&v$)>2dk;omh8d^L$6Za`&nQ8Ty6Iq7 z$a~lqI`xaV)_rz%v?r86pCkG?PE0)P2y!n-U&3>-7BEe^6k6)q%Tvv_0@`zF z=q!8Bv+&L&3D7T~h*B;*))^THC}3Pz0&{WLSsgMx*5_I$6U!bKbtb%LA|!UFe)d7z z$!5g9u59J!aZ@X`o)&YL#!)CdI0jhh3ybc)9>+hI(_DDQt^_3HypSlYi@S4ZZuUMOcw693&HFr$|jqbbkEL3sNPnMOMO zsgkJ%BUe#;I9qP7oqayU*PkB#ei-%ET{cZE&#ffTOvMh(C&F;S3?C7uD!P)L^LcZm zdj8Qgn?8(wx~q|8wx9{U#&p6uh2UwWBG%+QJHnn$aIGr}4V<*QI37|evP}|qh3yOQ z!pr;@q7k@n$*bh)=}XATP+aIdXQ3M2U#5j``R8emcF_J)#Y8&Ts1)LEfrH?b#}i<^ z9$`;d>GB8Rs(B*Wm>BY{Yc*_}zq87iL%O}Kt>Ol~jnthTKWVQYX# zT@SoU7e(|&>i9nEV}Q^~FF3)#$C>z>&qU~T{vo8~E#vKWtp<`oT+;#%ie~1q_98d} z7DyP)+r2}@gE*jJ3*M_Y+ghUOi_sRAx8V2aY>4*TpOthAB7A>Q{MYduhE7~dnQO-C z{zwaK6vIekXbbinGOyoG52C)@!NXS+jjf?C6`<83d-8mX>9{quPgiDol|qXMl)e+0 z?2{=(K4Y19z(dn)&rjJHUo|OWQ29%iOL&Do3)gnzvt48wJ*>tPZ(>z&XaRvoE6CWa zOqw*Pu!3_t*Ju*~&cQVkW}6WR9e~q}rWxb=b`3)uIVpqlJFf7Rt+Oqxn8hz|7ZU7vk#zKC;rq+u4yy@1=>M zLxi7Mc1Uex74}|v8^;mzH%F`LZL%rHJ@b+&BcM*xbMoS_@CI(g(>E>t_9bVtJZp^O zYAk34t#3Y))u{#mWj4{XTi{f=+QuzzIY9el_UnnF5TKU4i{?@_b&~GscCX@*t>SYQ zl^d@AcRC=z(mgfu3#44%*Lno&WFPiYq8V61-6D?Za|o=H7~^PwJ}Bk7yB)3b?&%WX z|7qPR(iW`VqejDi`KIxn+M0%yX-7C&15bRY95j;5EuTi`IW6R(NbgzBD(2&@gP+Z> zS&0OzXSd9-;PUG~|F+xE3A^3XmO$Q!5+-;&%Ki@c`+T-}=X#(Xh?0_+T$@K1so6e9 zLt_0;9~70@WRRL$st&q7CQc_*%)rPI04G+~gXh)*%~^zL*$bh??8q7w^vUOJ;V86l zGoCbP>Y+EcCwF-ChHT~>e`QIr&*J8t;5mu!VT3QCq9XS%3g@U&lP##U1vvKv4{5nx zB@WIt8YdSH>8wy|poRpWRP<9I z?e;N;h=pXuj-*jrcbRatZm3xPq?LI`*ZPwp3W{33Z*3INjIn$8M@K{%`O7BYdCYV@ z<@~ghG2M&;XgN7%`uYtn0f)AIeC6l}Vm2(JEXA3boNS)>@_@W8RYd4P42T3#Y8af@ z8&Xpjr=3&UtE_YpA2IdC&r8!C>XuxwFg9rwvF2PX#g&*`KnCZv-nC0pBkZyOuR?3%shs23MhWS3OySEPnLQuoD*a1q-GAKfc9aKzKoB=2C(H$aZI# zkqGfplH6DgiVl-zSh5E%kHNX-t=AuG|05@Gzl)@}B+k~&^wHm;1@8K@i&zKxtBTXckSSZ zEC|8vF}n2uZ)Q4-sKPC$jB8INdRfeM+Rq9Wo@(IyGB3RJ+Y6+h%L$0<`{A=+V$wD5 zl#?IACNK<7_*ABf%|5tL*Vl(5K44;R4f{8$xl0XJ!PBo??U#_(nFi@gm9xF3HHk+Z z{J9P_|Hqms-Rftv!EDMw335tV)LflmQaC>4T+XB8$Gx&x!-AY+_2)Ihek1!Sb13?Z z$qbv1U_P8_kJy87*^Ba5X6e7bYSgbS!N)aGvUDWYgBczRqB^&>JHf%x zL`to`>%@{uu6K#=%YDS(6A1BcRuDHdUbm{Pei#PLcj~3-;?ybb+Cz+-t_)f!8!s5Z zj#1WWBN9-I%k}N=6WIJ*vIQxwKZWhglazT~f-Z@N6n6{y&{RJ@B3zBPmK@_2Ss{E^ z!MgFJGGyaaOHSdJ_tZ3uA^93Y3sB*k83RY7~$++6kgpc@8?B)aLsBY0)qs0ItS zreJ^fn~qp41GO9HPQWtbxlJlQv4bC_!!p%yBX`W|B8b;2?rKNnjvs?Bk+@NvO(Nw@kHzOq%b0aVX+mzRN=Cv%#L{3y zuq1BTk5o!=S1o~{^Rlk^hAUHGZv?R5FfbO}w5-^~n!r-)R&Jd}TFXhCou)OWvLUK7 zjJLBM-K#bC)lt%C2~(5QLdmWO@T7UTX5(@NhDFM@xy)`(s8L_5digNFNAR1nY4Rj4 zOsxD>^gF?qMi~{K!<#{~beGVZ?tg`efDH=Aie8t1_mPIHE6d4coH)}3wbYM-k6C)h zEn6_JeB{CxhGNYjQ32A2yw^&kCFF)njdYXqW_%9w^JCq4943CjhG!#}%@bgVzS!vt z0uH1t2)o2-ZlE z85AG%`-C(~O-`bFSK?v@;@FO5cGnm~FztI~5^LRf$B5N=s_$>Nb3IZJ?wf(re@&-UUio|)(WH6>NmIdo z*_v}>%!%|Y^`2=kPHN-b%PCfurt<7Yl~zo53(Qa1m15$fJAO}^AP)`rTKs3Q06FYu zJ0odrucAx&VV-e93()5TysODyV5IGin-mx9arufb1ilVFn8blE`tW1;f65ackTTX> z@;OeBp~EV;b?e3j#<6evo0E6x@P6q_x+1gqm>j#Nu)Er=(> zU$TZpC|YXh?Mh_L+%|WVN#U$FYMsQWu~HW#Dk&ZNg<1%85#9?}haQQ(8d#q=x+=_- z)5Z}BB}k=J2>qFL@zSr^I`-X)p5%!%5M3;O>tY* ztv?_~@dHhismX>-;25_l4BM<&08n85_;TWEgXM!Cw?ev0_cvk)!2;v$;l#7>E91L0*tL7vtz-yxMP!d2M80l%f@j76cOm zdW&04Fwmh7rI1eF`pCJ*Oj)3;dc*j+dSkp}HR>S4zVNcksuFU>em?1KkG3)29R3i+ zbQp<|wp$)L?@X(D*Z`YEC9P6Up9b}PFxV9LE@tJ!ePEpTwGG}vJ{qSs zo*6>()_fYvj*uo1YS6pc=%4a?AyR5Aunw<~bOB+yHtrk*-V8RkMH4mTehXINFpCt{ zS`2(nlZPY4u1Ty!WYu;oBTQ(%yGY`PEqW9(*UTXI!$#P5G^e1Ez!T}X<_}sdyD=Nl zwERahW9s4BP;xD=hpC*QpiMqZl^5wEMt4I#YC|V1La3ZEvenMqsF#yU`!4N>x1}r0 zCcvF*nRiHo3h}ZMzrT0pIZYr@lgPuhgd%>P@D?>|D+d|2dy?!BIG0%Q-`q;e=Nzs@@%8 zUviRuZCyu5q@x4A3D{P`wO0ty$#f2$TjPQ{thJkjBgfNtqW`I(Go~xiwg?9lFW#Zx|V~r1`t8Go#MgOpg!Ovcgl2;=B;+Sx~j>nSo0tTF!oiPyp6zr_((!(V0MqLe+GV6F^e1dZW- z0hiddkN?kB#*9sy!Mb43S2Y@lQl8dzQc1$Xd>y>;%~BVzY1dHA|H>~-LID%w94Wmd zOvOj|SGR>$Zd%fI6&}0HXp?~312}Bwe%qN#qRl9s%%^sBC(+31O(Zet_&xN`WWZDS zjl`2x3sAY$^C8@ZI)bM%^L3BEfHUcANtkitdpOpZwG($>`(gs>?p~y z7&c7Et!Awx-8mZW)`OapjABIiS`1YW+4a7hd^D|w%ZG4vfP&9HuVbmT;A|OprpD<{ z{!c%iz!cqm{2BOgM#wgzeKnuF2IVve8Dl2FJ9{BN5Dzryx|EM5$?bT1Q&LnqmNV+= zRxE6{8BtGsh^KbTy$>Qr`CwCT9|b801vXjmim65a6Pr%a8AmvF>1e}hl@PwZUlHb! zlIG6Fl$A~74HdhGA}Wg$MYYXpokOd-Lgnx0ty6><6BZWzYe#9gkwEbJYvUC^9G$g^ z1Vb2g;@X342GL8xmdfm6DD9KX=`%0wz~G~|_ZXbm_+JIIB}3}N1T3wCu$&x$9u?Qk z#Tw{({8=K=^zOf<%mk-@>^MkUxN(#Z4g;RD-XCMw;?3pRyMCPunvAZ*0{R{j}0g~38D*b`fZNvjxzx7m`m zjgedcie!)iUuipP-8O)`?$_-3Y1HhSagvUn3FrC}_mj>634l)9F_a`$?c2!6*M2N9 zh+GD1ui+34RwIOe&q2X#i5&!wFZbU`*(FO?P*XP;Syeh>pxVG@%i_?hpG+8>98UsK zhsC$$j>Y@1KartmD9gAv#QZ$7%muNAVYg$v`&^FfnTRjQxIwDH7;#-_DOYt$mmL@D zhs8s(hwKw(As=b{x7X-5F=bBM?xrqFtIR#)*9Em>)8ly$(K48JNThF(R9`76yM)rO zy_;PP@pyN)2N>1zut5a2t_iLawz%xT#I~f_u4TJTuBD^fzcQ7aSj+IZr8*Sb~@RTM54PZI|t3gQeefy@1=Tkv|Oto5J zUN=f$d?-B|GrvZVYQ_Hj=Tx7ew@fp3NjvbtgRjU`K(K^`#9=?vl=jYNk0$7MX(MTF zjrdG{u2{^du8tc+YuMT8J2q-~+<@UNBtHD>K|OGW^1kX~!)qQyp3IKNZpj*cG+dM_ zUmaK>e_osw zZBQAQO8LrDvjF^{MR6gg$z$@MSch44Gf5IA7E;lQf>U)nVhLQ!jMcw$XaT+tct77P zd+s8-JX@p4H~};31L)Esg$d~Rc*05-OO(>g zS{q#}Bea&)pBcCj@zmBX{rs9*1bYw61#;Gokq^k#^}nIGzAmYrZpPpcRj$g1cK3a~ zK@SV&84?zd3LQKV){2cHvV8(M(PNICTl68mT@wMOr{4c*`sEt7L+#iS^MJx_gD;IE zzLiV!)@DsWg^9POPA&`*qX4F|72aSRuISNBdOrIlc4B!dAsLqY86ze#ONl#PJkrKt1@ zWSi;GCa)M?zcfrh@Z^uKTL^%Q$617JuXxXCrWKG;Ec*2n8_zCQ05eR;;v@SkS>C(5 z^ZNhe=AuaqAUY^I6l6fYqzq;G2D;AW6?>>HBwM6^^yT?+Fmz>D+-qFt|BlIp6g#&{ ztvM9p|KAZm$9|N}M=B;OBhx@{`s(@((IDSisP%g^jJ~i}2r;acfP!BZO;wxCv)7IH z(6Y%6sz+T;hx^djaW_h5R*kS_08&z|AaO8FaPs?B=6zQUC3HcXD!~34l^sMIRk!GF z{Vo($Y-}aL;s!F1z(U5Q>n7Ypb0(UUjGI{i%9`ubcjXkmaQO$b>M z&BZO=Ya!anY$)KtVihyMsliRG9^*1NRxEco3WnQj6Pqk>sIzT2Dm6g=kh1(&Md0lc@q<(IcBc!38NLo| zB#8Oxpr105SMr-+Om%5J%+_@>2kh(=b1Qfe_yp7BB_-a=O0OXH@UyL{nU`)Lixinr zEHx*-Ld?*8Rp1N0!Jd*PZFbDk zE-+%#c6xz~NvKRby=pL+CnJ3A;*e^xSX3P51>}QIB061#F{BDE{;s`kc!sv&U`kqV zN^x=D|0DU9=ajNYa-j>XEP#6<9q*_QZ#9N^;`&J?pP{ksv>1=7QiG9-ds-6wvEl%_ zF|~PuXXjwhQn>MWo3D@=5M|6AA&U4dl{IIZ89Uk;3lJt;8z?2c`d`Lt!9?uE;}e?O zDqQ6Q8f)8{2Gg1y(=oc?{-W~1n>8=|0V5uwBHX^}ouuZqWMC$cHoNP2ZniRL3D-*t zDOwpYo9Yz~x4oZ{dn!w8;uLTF#)H;+&|Kuw%|pL2poP^M5pbbi!r}?O+kDtGrN!J}aqXOcW^uwZj&g;!~`PA=(-X^hTb8&F57g|f*^Xd2hDbs$LS41W&*;W_I z(30911Qs2WcEuk}66naH=X}{1<0t_XgARUQ2-~%1B70dM=6gc(VlTx#$IioFBX+))e=Hr%i-kL_;Uv?KbC`(X^3HbvxL@ayoP+bNREQ z`GhpgD_VoLRP@2_!(q3@nN&&!^NoT~2&*`hoGXFc<0wo*P<4yhn*N33 z$;Bfi9z!(>K?kwZo5kRlzTZ0A?(%WkAQ^a{{oyBworI9pbojoz{eeYsNw=g}2+5%M zpQ#O`wUICTuvW z@-Jau*2$viZ||%W#;&KpP2@g|NxWr7apQ7T(8q`Moy`T^tmb%rn>@Fme^dP#V#1)t?#pcO~Qcwy9cX%2q>q+C?^-P zq}YNjH6&+Y?|g60NWxV188zco$pW#(e_`KH-;EroPy4F447*e>a*(h}y_u6hLTZ~A z9spsm^9-yO#_boyiQK-LY;@<~0qI%V-b@FjvZ~bI|V^_zykgNTxu)g8W4v8H;d2Ky4Cq!*BBzO3@Rfahb_} z3jNGgO9b#~9#5y09__9Ox6DhI%sYt{h;eL?jA=g9RktP)LV(|j6;!w)HcU1@WOK&y z0vQWG23%{Xa@2q^eKCTFymg~0gN-jq5yOS=3j54E>RDVO3xPUeg;=&P6GIt{a4Mw` zwQ1HChU5iu>&!W)7Y6d%B0GHxKj3qQ#`(noaEi; z4%8F=rLmhT8gzW2a$@U5A8{7YXVb^4I>Wzn!%sUOT_}UH3lQ{A*wRjbnVthn{4hY? z@OwfJ>rnnM^m!7B+d03uVDHq6EMJOuv1cEUp9_G?YcV$25CE3gcVG86d_M*ZjW{G% z$4-HgB6S7e;9@fhU-cxFIJ`gb?%C!56lHPeuA~(J=L)})`~~Rm5*izk`0nnFkm-$g zM&o;d)N6U%!8buJuR7-Q&S%O75Jgx+oLqnTFJermSPt1AJw}x+raot&g$k0$04Zg% z?p^{}zAU{qE_kb^doFwqw}+qkKPQ`H z1Ny%jaynQMmn9~_SvT4nC57aL@rfo!1fcn&Lm1(uEba5viY`uLPk%>V?(O90cf7k3 zGNILEK&EH`wp}ZE%`qoKDa)}SL*Q_<-@?Y@rjZNdp<8ieU{_ z;T%!y1f(2f+SpxVZ<()t;vCxjI+r6hfy_8sQwXJ{*p!W*?|MbGPe+leSK;bF6Z&LoOjH#!32Od{px;}mE z3|Y!@Np_;E8*S|MGzB%>wvv`)#dt(k1w|vryYPI)-rhEEgJZ7aRgK$0Vg;k0Djjp>uRomnvqyZluJd0Dhy)j@!gZ@zWBXp)D`L$-rm&(`D}qP8cf6Y$KGc zM?TuK-N~0?6!}AtCO%4;CwpuyjN-(jhzY?DM9quVgmNeC%FtV7+U2IW$8RR0)#sXP1ZdkV6C5ck)(Z>?dpoAYLarqRQ<-C{IrY_> zMi2TTZ^LV2R#6pi0?U-TWb`Bbr`G9{qyTX3V~Rbp*d^xA6Y;3E-T;q^KL?;1zZ!|a zVRr!gzPk3@{~S|`mKmi*ze%h|lpdm2Syy+FBEuUPmN$T?=v|UpOAG)_`MvQhO-z=C zPH3R@$$Tpg39UpjX!z-LJLeSY8wK#CWUihDd6LqX2(U4RYJ&TECLiQrct*4ql^Sri z2*w27UZKN%hzvXX+!rZxT`m4OcvOR{Kr`co$n3T^koy2Nl#3)7aUK-K=0ETv)bnC{ zN6I5{G%1+;2VfW`6%s65mkXV&^XQaKd0_&AKA!UJ>|q?8u_)h~{{V}rDFqTJk1cca z&nqDWS}65Dbt=gpj)uH`$67j~GXUX(ai)~V^4aJ{#vgEIJO4;1*D(fT%G?KHvp;ZZ zHR5R7x=ZMj#c&^cK4a_faILlt3UDZ&a zqmAnl^uQ4*UI!t#nSXUIEB$C{%rZ%Cs|8Oy>=P;QbH!O&Tmpf8_zCrU72YW=_PRi6 zk?hxcRRqBwqz3ipORy5Rd>Ft`$}i+n0-+V={m8ptii;uIXm8HN-N>*xODx8Dsq+$x zsu>zMicC_ki@(|O0DJ~5&xOh%{OdUT+oMv_C4ED++`kv$To{Z6 zbqQbHj$Ra?ByyE?0C9wG+8)|43fe9yn^!b%QKV*JeY5;eeuK!3iY zTiU$ThDCIJUktelvN`6Zq@i4hyeeo&#U1YN(lJbJ3+}}{aq1~#$Q@x?aPZUST(?<= ze@bLpVn?V(H8%WYo}qvDu_;PZQ4RA4FjQtAN^ZIGXUEPPKmocd_l5!wix|0EY}t$la&#Br*@d4w(!ZWSKEarFSMhLiOZ`>t<&kf48D!#_He9P`y8 z(>kAWxGGfz?wj$>%)~OGTJNi5rew`hrU>=p{u-4-uN?o!o?h0}NtQeB^syK#oe+$4 zhZPG#-!9G&Aznw@_6F6wdt4Guwa(RmG12i4CvT{r=sIA`6vPy=e=Z2v#Qc%<|M7V@ z;jOydPK9+|j^yiA7uFP9Jb3ec2SC&hr%I&4kuuo{1Dsk#I$G|A+$@N4>I~HHYw4}FaFM&uR*Pb|Mal_g)bKp9@iotk2nC?Eilk=S++U?rrd zoc@>ImFg#;P7C6F`Kv9`AN_nOI_P%n-XW%jZqdHX^@o)#1M#r(?G9u#E*7L642_hs z`#QT1uMfc5<{``l%FJ)^POLT3vX@g0f7V4q{~Q(kv6b4(amq(lz34KkOM7BBx-G!z zyRY~6Cq)!f;R5{CC!hsiWp_}Dr_Kfc!>y{3N@&{mQS1>QnpoO1{QC7T*|SpvM*dm+`w;kc5(n*0I@PUpfQXesnP@vtIh} z!-cXnVQxdA4UBK3G?3#4`d}&bB*AjG-O#2NCV{}QJ~$&-KMKhbiv&{jBn4uaxwxQb z_5#|f_9ph+!a@R>P_kQB#AF;IDd`^WUZHWuQp_BK4djrn2%me^p|bFU(FY&Cr!giA zOO)v9qqT}bZgb}<_}A|QRRX>hou5Q()WmyAOASF}c{WYdOWnn--0q(aok<%&9DR!y zAw$A(5i;3xraf9P=1K!0F51me=AkzztJVMu!DEVMuEsXUxv+&E;|sVL!XJ4A0n=GQ zm=Ki*M5~hpI$QknL?$Dx=MwEK^1EsYq-bI{sCRgF`a3)TkHZD!P~6ev3C^W_gnLD9 zLnioKwPS}jxkvYAs4LG^qiF3@mZi=}=eb)ui!9 z4e_i@43b7MB@YZETal6_o;4GK6GMT-u}NB(%@G^@aWxrv11n1NVw*(I9fCXZ%JXP9 z2YdiKh;%C$D>k64vW0*K6%y7$XbF#*SolX5zvyXiNRI`PlC zRr+}Woz$9bSk~G=`5gma;}6jsOx34TmHC$3zkS4Zr$}xiy0uhNcwD|e=iMP2MjJ!2 zY5&sT+Yw;pY9KWM0ya#YR!{){KLEgC17P?GBP=yG#yI(J+I&X1QD7Na3cLa_^QAjT zs!27L96X1j_v0L2l56WIJl7>R5kenI( z%ivnJiNAq6oVh-M{*ktur3ug97Jtt>N1!!P_3PpTs)4icRR+jEvy4hv>(j&(l?3zm zYBXV&HyFrB<)G-AC`oTZed&Rd3@`6n5I%3J%42_l<=fFHxpS6&?fr}Z4KR6sZdiD# ztNTl3Bdasy;Z@`moldX!zWN=#AW4N_V_?)kpPq$M8(MJ?c>q5Tk^xuk{KO)N6d~ec z+W(|Jux^6~IHCaU1csF!xC3zPO{J-cn|JH%s3G!!t356ji-Y=cWS_jVh9*h7c zNwO;$S*Ub5Su#>=Zb9a_Ft0WmrsCf#v6m$hQG>{Df`!7J9DwXW8bNHHqCDiRK&pC7 zG?I%sY=!2a@KBS|{SRlDI-0r66{O4(gg%D`i^NH=o`5`GKNTQc7cz)Ynhy8EdHZuW zr4DH%f)3RcEoRZS6XZm5Myrv;RlRBy7i_KHdSU{lDbfZWOW#+R|H}~)q&=eD7YfTU zP4=8_#pO|33jLJ4p01$-!!b`qC`Hck7cGHUuYb#=@?%W0$~5OTi--m}kV{XX{7InDxYgeiDN} zd-+bG05xDtoXN-<*n@8|1AJ}r6wkLR*k1%H7uHLTP2HwCQ8-Fg3{BG10qg$D{!v;^ zM;HrFAq)>;xHz#c<6X-uvEb#-^EfV*XkX~iCCN&R&X98D!nU>vMky~bwL6ds#y?k`3CM&f6)8ew?gl$aUD!Qg91?npa9F7;chew#R6Q&S zM$1+-Ml7oV@8+PbNSVY!dD!1dBD0_I)@;eWR6NRbUQ`dz!b<~bfDP&{N2FEOa|@=( zea-q$R;Jm*A8uT|KOgCx1|o+zyYxRCHcJ*qd-E3|fSU%4ALKp$iQ?hF06N(AqE!a# z!_=DtKQR;!2axWpu?nswcSeFLb8=xwRZV~?8gx(ru85_7XNR8X6Ie}??w6L(6Wthr zuYd{>3nQVVkaNDE$JgE8osaRVALLb@XK$~_bE;ia zyXe17=>M0;y?N?F4!EjV>iZsPLJn0i@?q&((A02n`NRa$J=-V8WOGU^WQL3W%C>_D z^yNckHB1wj z2Lg?BN~$mgFJlP_DLtOtPF6$(MXXjiuZzNjr16jA?k8@pe`;U8kzHr>3MtDAm1>@8 z`24yl`(W7zZgT>qEH?c8jz#uU*H;`uoR@(TD7)ZpW^N|!IxTdhj$8@(X^FvN^&F7x z)Eca@d{h4cuGsD)guL3oNdqQoEG`s5D@OndaDcQLe|Sp791qTWSWKl9vSrV+U4tWw zAvwvwgT4m&YyO^jkU~JHD#K0jsyruGi_PvDBi<#>2RelTK)h=eFoiP0hPEprsDFJG zLmGL)&wU%{zpVht|GQV6kg*t`XeLjgPqV#Fv58e!j+D`MRfL)J+6GYS?&~dRR*KQQ zv2VxZxum}%XSqqOhzdZfXf`?lkHn5r;cxr3L(c2^K^-~R%1oYiO!V)!bu@qdQ!B}q zNm`wLp`34S7u zXcbit*O|cc6_5*fQi4*R!Z@{1cC3eP&!PESSEHxi!Y8CZV0KJRi`o=W{Bg5zb?6!@ zzg#=LaK_$?gT}2jTkc?cA7Q!&OyTleCI>{m^^IMS60G7mS%jd>%J((?ymTUIfE+-DD)JpqkH2Xa#^5&u6Pc z!s0uuOkwO{QOd7j^d}uF+1?6jkR9?BDW}Q#QPL;;Z2Lq`UkXscn!cx{g^VA0rR@ z5wl2S=`D_Zjf^QdkxE5zA>>0HT5A-^xPZM3%-XU=x0u1pRokzqx&fygYVeNLPprtr z-|dENgT7ckgDV=&(ib)S&7zzm})uZ)Qf)N9=ntX(Sy$v{RmkuTAW($h66C zPP?I&sl6|ZF}2R7A@h^yC&{-iUJ7LEQ6qdZq&oo7ohc2O$3@c1sdD$b!Sa6#RQBLK z!u5lgI~${t(wyQ#J9&q-$&$2JVPM(uH4*HJKx3{UGMod}=Stq;XAK(6yzU4)pJyx9 zArsoBp_k`xRrRHL1qz9u-?aU!*BKq!RZ&B>r2CXH;hmXaD1rBbZ_Ax12lYLHHOU9V zDHYF)9%HWJ325mjrw8`8as6S}feZuZCJ)i4TScSbb~3Uq9~A-fg$1m_b9GXJnh&gZ zp6!VOTKGHk@CT^;slQbe&Z=lY-G^I-sqg$BY@-y_$U6HuZjKMBK1oxx*Wqen1YLG$ zsxj04S9&qjO~4KWOlW!x&)4uUy$=*{nPH+ddEpKe&H@Ppus1A!`po=SNda6;e%Jb5 zd3D`*ywQ}$;U)wJFN>&r!`6)wWq2<9m9s2KmDWl>S7IF({Jcskn#e%rgH{_hoSfN? zwx)#B-*4^%=eC43oZ_SV+XSRiAMMJKDmk0dVE!5a@8$q5b?Zexx+73{qr&%K)b$MB047RL?mGF zTm@-VGego`hhU8pD$H;RXF!-P=<|$MAr=hmtB2+6u@;^|{ot`2b=VjreG4!14@AIDzlnkX1e=(rx zNo*(vi)_CILQHy_Mz#79;@6nEVb-VqcOUOz!<52dT0-R5p9}4w;uG4ew%D-H39AoU zic)2a*fp*{yhpY4*Uv%g7CjI14z`c&Y!Sl~j`Y!U*86 z@X@-I!f?+Bzh67zWHY_&4{;G8Q7e5h0sVrW{nGlcP;)yb9*`9DYiNIk_56Sgi{Yq$ zDw4HlEwOzvh)qWtk@+;-s31J9oA5)D8K~#S z<5$p}7wj9C>qUCC4T(;H&YeGf0vtM^Gr(peaX*k80w&jE{=r#3qkyD%8lrL>=$GC% zgJ?`5Jh{e{>~tl>1|zs!Vd_3v=ZO?niqt=LW>W_TTk;1;vEac$ZzHJHAHdv2Nv3!q zC#!ZFENX)sN>}oB0r&7EXs;1U-jKy+zzOwV2b-i4BwVC%T3gd>P@C}IA~Q5yYWnQ$ zk`csXRMr&Is_M^qwj>=!z@y+TpItk+qReKpszTwN?LmgOP5VG|4`;Q^%t=6GtV21Y z2Kxf4AgD6wa`%0rcbxY~o+xkx9eXW9Q)OEA*?z#O+#ID;XA}wHU5iMnXTBgwdaj&Y z>lT+~%R8_M$&1?4m1y}5oFR2lOwib=e4$BUU}T#^Ymn5#*+k+(Zl&9`KfH13LnS}9 z>QrVT`7~_N4-Q`$_J(M!?6NI=vg`pBguC5hTI=R4@?czs=w1QN7J`IXzj)O1!{~IY zespTeDj^2gX7%;_8j$vz>$dVH1V0%&%D{)nZcGH2iC0_#8)u2x(RHKRnHsfa+fpY< z$1D6gS%a(Dc_0uMk6F#_aL?@|3-&T*9q_eA(@j4shKW(28-no3(~cJfnuZ7dBGxAx42%FFD1pNWsSi}D^0lV; z(Txr7H9awP5Vhm5y&2kf>}g4?O^&HH>^2V#e_;f4D#@SEv40(!N`u{;V=?UJYSc^i zY1!kV(4&PK{glCHgZ+=F#Ar7;u1okG4S)B1LS@9YKy5uH5IoY#!S*v8JBzsf?mrW$ zVC8y|?69o?dZM^*?A^`?cFDPQTMAFc7xdci>TVqGtn3K-UGGq5O|%|-LxG&TzErGP zN?d1LzGZrcXV3&oF+-O+|L$bhbEp8f*s;Ivh+rO$y_Y<^drn&9~>MA@_qFDGvbVd85E0efxJ?_<^k`WTDIQ)*?NMF+7nmQZE@9rvLCuJN#|NJ@VSJ+&h7>^&BP(W9? zuf>4*W6SPb9`rIs?8mS-MwT4LCqKdkO3*|mKvvdAkiY{o{fq>~`)jiiQ(e~@cgloN z4LNz21CrW&Z|bZcUeNXgeeG@|XgVB4rv5sd&x4E$lI8^m+~U>S-)Rw-ck^+B)eM6Z zXGi`oB?ihGl_rs%tD6g`6kG_N##5Y~6^>BUtz{9n9;ODg{9e;VVemoJrjOvG#_4$= z3hrc4lxL=X2zkXTjF0qWN~g{Sabb|sTf9`WQmigC3vB-7KV@?UVUcr%$HK;rN%e}{ z1FJ}@s>M976oARb;W6i5=;V@uyl2<%_!ywmK=(Ukd2R?VgC-?Vdut)elNIToR7hf^ zMw^@#!Lo18Uo9Ca`$KW#zBx(}SnyOG8|3uXTEQ^E5_kg7BVkCE_TB-rvV-^zjusQ| zs?6(G=?SrjVr zW0R7o^GirRod`%VHx6EOJBqvDrn+_=MnlK9>G$67hS@II3Z~MC+X?U~)O=m_vI48T zjO{QZUs25*&_~zM4}ZJrPBu*ShLrp_Q>LfXYpC3>W$H>j@$(5yH2Db))z_$WT| z8we&nsz%1L3|J@u^yb5l~zJFV4Lp|w8aI6 zg+@(t&2FSRB1tScFbNdJ{_Cy4Nk9W5OmeW5`wib3DqE0YQVAqB7-41$N;sAQ;%n$& zs5VOhvJ_pip&}`47_31lYL=r7c*uNlL|``ok|G~UXHAi+6nBS(sPFvW>|FXtCP8p} zl{+qQ0$A#n?7lyeukpXX!6XHN!F+SkVK>fG_@<1CRc_ic6RU_%0^_=>q-4}Dm(HaS zQy2S!qupMph9r!coA%yw^hA`v&75J z^$&##oBq~D7e>+aPA&703AHG1dYHbEpVO?_*bNPkz-U-M$4atzXi|}WfJR=E82}*X zq#1OIJv57wf7;-(&F3^>?l_}A3GFf7W5GU+*O>4SBOv`)NHvoLoAgGSz{iDNh^EeK zdv&Dg2fywJZ-b1Y@Drjhyo7ZG7F(Uy*>ah*HVKG0*h}Yfz-29ipI=a}hywZw6zv+bB=u$$HZ>$0kY}2&+B8#6e|BqEvk056 zL3iOvQ+R+W)ewj!TQ{g@+eQazvDyn+yn*Z4>SCaBC~j}uADKclUH$S%In2Ltkw#Dk z9dXRNvaB~GRXpBoLJ*r+`ju3L;6Ig$IrhFYj)x?1*O!&)vczQYkoq;!O=@rT?NGkb zFP3}z&17G+LHhe{Ck!W7X4vlJoaIPTQ%+R4JyKu6MQ`Oss~r6Fr`PVa2!VHn_Ued5 zUI_H=J}N6P31Xw-*WLE0MZdsJ^e+0~yF-+54Q_PqTNRkhzFd6WF-XvLptaKXy^S)C zEgtM3u6wQA%}X)1oQE0Cl~&cMl<)e*cj?xbH!)__tSf*bV2@!91GKg~Sr#7XhTo~r zcKo~ebOTq>yOInvXZO9hnZ3P6$I%>secUynVb1A4SDl|vx&`hMAOK0?%ZZ#i1c0Gs z61wZrk18mrDPZIy+^tE(sCcHR)fqqYMgBw_MuclKRKtdpK5Rctwje^F(yoCVAgu=H z{P|Vs3zqp-$ZSvl#7QwEH0*?o6dX^_72lO5M$>ab?-f+_k!1cLU7N<=>NYz_3xOtTukIqP{+Src9nD14BVC`(haXspFCvKKkes26G+Je2#?(%q^+wbpaO!&xB;}sUusOAN5_-y+{i>m~d0O<~_bBKlZGRTIF~NTuyik7(R$bTj z9|+^D5ovNAU%p7N5_1(j*z(upLdR#qw(5VJKTY+^Fg(Q=kxu1O=(Gr<-~LcSfKSTK zAG(`WL7#?1+0p!KEKxfjPzOFGKPkfma0*F`^vG5-KeHwO-k&9kiiQTuF%?81=%x6Q zjl|iTO2HQJrbRb;vrQzphZKuj@Bk61v4-XbApCj4ZU0XLbmkz(BRh=#VEng_1Dg+k z%GMjY4iGRQKX zXymC;S|ly@P>-@)<)?kAm}6??+Rbb>)&ToQDtmLQ*eP1a)OsV*5`rTIsb&x~f(~WY zY>qA^(~xEgJ#yEShem$#uBmz?Da7C4bqs1bSQA#a9XqJUo=YNx`9l9`OR;!*2qdu{0TgG}Jm5bXWO*VW<<|-0YNpNrpyW=! zICb`nI~ds**Y-*=sb`hAAd)pyvn#PwL1ozA|U`3>bayL!=jpi>`rme0|O zfx{B3GSUlp$Ju|#f9+S9>;SA_4HGH8C7q=O8~}g4Ot2HE&5cr^_7kIN0gMqWIuWLn z>_`pI0~+dYj&Qw?TJsafP3YVHE>9N}awX!hFDe!J{%gI0lJ1wy3XBektPq%qaDLOM z2qaQ->!>Sqq^=Jd6VwSsCxs?U^DdTJP9oPU^2MR{W>;k?Pg-c2daS$TG4P|vo+ts&Tn}S zl{i)zixLfjf_pVV;#qa zl8RcH>8E8ZM#b4Y@(&2U3gCAy5`iJ}$gS&jz@(+AFO;4UL-ByQqBhmc*`$>#oQ(Sn zs#N4+{Pm4=XtfcyW%t=lAoMtR4KSB1C5OAfTX^A(;hDc9eD)d!V}ot^&NO+*3Rv#sR-)_CI z8@16tOlFv;Pc7nU0b+fS<{CP4PJA`=Q(NGS{|WfY-5{g%hjKWli9&mB8t?+`!+9Qf zEj_~V>u>xPox`YrkHKu==(&mC@xUME%XARoaL5gLC`frNN1vGB5kaXn{XuoE1JMgapfAq=PX&Q z&lnT9JxYzur6Zy=CNWG=U{2ZZwrUK6qW0`{9Uc-M5oFNa+AmWNWd*G=W>aLJgtS6; zXG&ZG6xfjBC!~@Z^P4w920cJzBOW5il^_UrX2(iza2jRubgeVaD_OC>InZQ+&11{r z~n5h;;PVaM@KMx@lKc$IHdwFcos6H#Oft zat*5pLX+7dpYNlm3x7isRFXDl6hh^2meFiSsv)-3!K15h<+p zM`=7AQPY_H&ojzgD z^9QJrCIBQ*AZEhB1YIc>T3w-VvUw;;vIwft%44V=A3+c=ogeuHWkKRYwr7^qvIVGp=kU zKY#~}rPj|69-i4ZlO^N>>#L0(^DKWX7Es_5EpCo0sXfw-D1_Bp`Wen{m@XaXY{e_n z;x95L`iXNxz7#f^r@yf9?AoYR4Inq7s~7DIC@HxH^yLkvWl%?izvv@;nxbfbeV4G| zmDPqrv0;@KA}6ZTs)~~`(g!M)dI+&ys<0Hu$31IJs;a0HF3Jt7l2pWK7? zmX2Ki@M-TnL^|J3Mzlku(a8mzi4mLn1?-EnN0@`AI2PYZTf(YIh%EZ;^%jIU0t&c+ zbW<($mX#th`o7J7%fF#P*LFo+H$IK`<;c)3t(*Wg zb32@kH~FRtBlpn?S8+cwEfr22Z$o^Z?w&Rb%l0B}c)X>X!p2y#-V+w96y!Wj_1+1V z&fM*4tYCOqi_J4Uu;(47u?xJaCXxN!%hSn2`|zg(vOdZ9W=n^6LMr-cVwmzrmfnSB z1ek^9ZyY^mo9MhFv`Cas4a)ae7|dq0A7t^$Yh)zb24EiCH-s_H%|zzmzyofBM1y48e#9 zs;?H3(hF#NNc~p`E74BiQ9x9c6OAF0e5iiKQ_OGu7o1DBi)-&48>C)d*3?~5pN~+o z&br{0&5^}QV6hk?iY`Le7)(M z1sSl{JQ^5-)@8qN+g#M3!qxw$f9X%q7J}Ku~j@SJ9U692k8x-I;&iJ&Cw^vWV z6=&vlnhk<#!{Wh~NaDR`D^sTavV5o`-L^~I;kY;0?5Z66`4~}jUTq+9!c7bh9g1?G z_r0`SL~{gcBXU#nitDd@Me^mv2Zef%GPDsiqn|m)*0n9l2=2j6Q8dg6P4x(y;F39P zh-_vvdW#^lPdT>+ts}%HH?{GtzL}=AI*G}r3|dm4DtaQTLi#B9LBjCa6|N7ZY1VA$VBhg2wC4_ z_z7LIhObFvRkVRTU2_eTbI=YRJE#YPDQGu;2Fq{p@ubU1i|wz3B9y-`lRM9tZo7Zk z#g`S&hyj%di%QoNkM2c&4yZ#t?ZaZTH{J-9(YPmH?A7Z=QAu25k5}4$5%=dssS@;0 zr6VQ$^((8Flxg|f=mS7XpaDe6%J=mpnr`XfGc%zwL(V2y)frIfI5)v7%9iKI`SC#C zYXM}FgExRk!PiKTth+)Vu=Y6MwB!t)G~`m&dMTtF34qfbRJi?|ZKe7mg)tgHp-(_$ zkQ;rRtj&yvNYuZLyRk?Cob$fYx{g!U|Hq?rQ!ZWL4_t{UEBrsTSn0SPH+yzGY$lK= z{-oJ>pKvak0$2HNK+=ghJr}yO69(a6JnNUh4O0*%-gKWJ$2VX7gV6^< zw%8L_(e0fl743&c05)D!3?$~GZa_6)yTsCdl;12X#w*7Ez(&8TqpcQ?K_R&x!q9g@ z7F_=grQ+*FsV=Jr`u_FGFtPodVlN~`Lhl{QvqIN8Y!W0Z63BjQF^N;fC7Xu!0Tm}j z!&9Ten)~I>?lqfTp&7wgFl1zPZYAcSsP4xYGEU#URHCr-r`cvrwv;O~B%{9VT_AESZJEb^%8!g2@x%{{OUX$- z_&H>c%e({5D0s$V=jJl~v79M`NRLSgoTcGT$+pY@IeN5Et=aYNBk80$&N%d(C!>9v zBiuFy+9l--!OA-x@)Z(zh{BFO!&slDb0FF4>_52I*JN3olj5NWrovk+$sGq~`Q-U|Tf966>j{-8WCT%rX{_yr8R%Pvgs zRbq58i!KVd^q{GBL#xNZ+M8h-tjTL>ut70FkuG%$9$4T%giP6LLU`G&OoOdU@9!O^ z9O6o%nLT<~e{4FpI`+7HeCKDC9~(>S3S}0qxOTo7jUBBKF#BR5qhE6K48#oF))aX6 zK=KB0ICX(5A4N~ydGAlpQR&oB5Kbm#yU%HX+J+AIn4>uAds2WI1l31M!V0QPnw%r0 zFUPbKW%CX7(W4$2B=LLE4GH}bFoFCC2;~Wg3mMa;UONeaJ-QZIGK8!XrVEqV_URtMz7Hj@Gci z0E)ss!Yb}BJ>*%3-Bc5I!}<1#5(lZx`5r%X3O^?x9dh`YG98_ju0U@`2e5{T^h=^W z^5JiK!v&zCF`U^(n)HGP_)v5+%u3~lO*9E>nD$&BHBfGBRx&O^=`-8Sc4%90i;~G5 z&$Mi{PS$o#iOHkRR{ek1Ojpa`^)Ub~lNBp6V{E2XhIOeL-_Ai?0ghWn3bZUN_~~eRid}Y7reP%k%bb2NULI; zhel%eEoIC~Ag`2d@X`8{%}L_h=!_XUpW)$Yz_P#X%qFtwfdlJ1@6$NIJJfDNL?AfJ z#4kx*;{TIqoeD^JJ-N4$Tnn@nU4ST&w$wdad*}d*F{HByv#{WM`c1)l32{nIa(a`X zml@J}?L&lyw+^3j8*^)GZ+=3}X#p;46Vul8S3r8>15(o8YbC)|o^f6+UH3Felx;Gb z3xG19T}n<2O#^0}huZx`p>b>(>)QC|oLjW-TWHuB&!y70hC9=8E=6!IN-9IY)#_S0 zo4sDuO0I6sJ|w?vQ~W0hTRjwvm}^ao#iUEb>(x!VLL_p$C66 zVaX?GA|k{E2GNNw%#kbpzJhejj^(-_gn=CXWYr`Ce{s@sUy!QEJ#?ut7;fGFDhqEm z$c~n~c>1MEl{0&yr~KMgvzYDl{?{1DyO8J1m3p1J zCp<*%sDdWwmpHS> zpzOc6FD^r96(}j`M>7vpjqcHyvEl1hjjCcdC@agV5+*odMQ8+-wKqF)g2yAtBm8~> z`~ikafPPyg35VmU!oFk&x<*G{q1-UPgPAv`_gbn9Ah(57 zEI!s>Rm-TtXs5Q(f3jQ1%NxcCzXyd3N`|DlB?jWdK@${{mn~Z+0JLC*hv%@9C0wL} zE?(i=8eEXGs+xkO6|p|2$#o%sUqXgyk^0!q5)Qu$VU$ST5s!+C%1S! zS%x-AJT|B`X?bw#!Rj!k7a$Edp zFFapPPRTBWi0)WX;RH7kF|B_o$#P%HZrX*6bm|ag{3J+yCs4*s_&Ep3DS5cjJj$Q- z%1bm(Op(|azqay&qhE>GhcfG8LIJo7d{2t{0CMO66hdl+AkaD8LB_c&>nj%Ex)tsh zpAjd!7mpNxIsPS*Z`?F@Dl}~RD0|EJ6X){Rxpcihu$G4VX}J|rI)BewN9P;*;{+p^ zo(?M8++2n`95QWteW>;CidtRvPls|s*#@h;py(h5=VMhp>IX@@BJA<3zX`zTi6=l3 zzuQRZmZ_j)*?NA8e>yk0KJYp)XNz#*A26uWybi4CG&jRRLCi;0QTYxg?W8HD3Fgtf zdHJ?Z2eq(Kw5s#lm7VR|)vq>!=A=D-5`QLoP(1`iI~rBj-8SrbrU+)$rWuJ>DP~SR z-UmnOhn}b&7_3z_{!k;DMJbqJ*?K? z-zlP2Kgpqsmv?qsVcpGdw3*i3A)pZdRE$YR} zPax=tt2Mw*?b|#BI{T~SRrCp=r8xB-;rQ4R0B$0O!f#%ns14;H4wY8S4UwUIU0KlC z1I(;OF_cS%8#B9A6EQdv*W##dlYr~HI_A08-YGHu!C6CJ)?@F|s;J&`a(#|r=$;#t zjUQU)xo{NilYt&&k_ZI&!9)Jb6C&m)9sovqgbCWojE-Wj{r-GQ{c5uY`A#QC5-f1N z%8XP%PHFfDIu?jJS_6ezAJ}~upG3<}PN!w8gIeZ*^R<)hOJ_`4it7!RB(EpIq}7P% zL^tdxdgz6bEF-^W6y0<8K9|LuM(Y%X{gc4f2spU5CkrX-LX?+l&S1R6aGouSOEbt; zX>70raMB^v#S$t|GO7Oa#~(}bz)%IL$@TV3h_u!%!)dbmt&Tt;VLkKi9S_g)3s9f+0PHWfes!Jfz1_koQ;q+$io>zibybUx*q zI%v*4{GUWhHd*u8^eOC>m5-XHptW3OU~tkHaKQOzCEU80>?Dn7`$y^vx^+;9;<{WX z2Wqh|JZZc&XMHK=|Va- zkW)(r?;DtDeb*D774YoXqA2k*Xscs%3yd1K$(1W1N28!o(Ja#4gLZ7Zk#)|u_^n8f zOJHhM4c8<>+F6gF*!q)*eJ5=h2`3iWbr=Orw$1YkCpd5Xo@NU0%uOfDl;jQ!E!q)J zk=HMas)IQV2)#puFo;~s(;#fLBX}@!X4_nt{oX_IneK?TA45~bMk~}>y9A|FU)>;S z0(NTEzn(M0DR7!y_hp>g(|tBl!_tNf6qj_9Gh5{x4P2b5B6tEocLy6U_aT`6%-Z5( ze6^BZG3hA?`;i?gZgZpd=7E`H9X`oyA~=2g>hv&%p4T|@luxsOfEL=Ls2_1!U?}9U z(WrTS-NcEBhHG%zHSm%z@Es0u1`vc=3$i-@y&`_@bNr;;L=N8vQ8R_c^z!ghhn^hn6`sNjbIMX&QRUN1|&>)dB#bTUKxyHZgO7L_r^`Z99A;ZukyzvJ{fT0P+T|**1$0qqQiAij7Z2#Tn@n&{nCO+L)8Ajvi<^I1O72yZ`hFiu(<(pe4Vt(waEu1e^y<(uWvaV`Dp+{XdUp~_uOYnY znwLa5vwV#+4ld^BO-Um@H&JZFv;}U-)3885Z9l%K5_R3=R#geMOeV}Xc2`6JwKHcE zZrxfQg&SyrK(j*gZcEMgs&ND(tp{Z)O#2QK}4+_2am>A zUiPa@c8k_kU8Ais+x)&?5|#sM$e2ip69BToR5Jaet2O}V)d zht3u`RW!3ZIR_H$jEU$6)1owDFoC&z2mlOCi8UQjtzY! zz&&G4yu#oo!a~;V-u9OF3=O0PPOwmH!kdX#)4oWsNVBbkU}P=w8>~dTTjKaGDeJP+ zVWy7Aj|F2MeySC2!e3amyh~U<7VP5P#NN_lKaw1zy5z~v zS@)$e*J)C!aMtF46g-{&YFKku{u-$o16$hv_}dP zBbQ$>c&J+|j_zo1`ecDj;y))ij!yEO0PAsG->3%NP=d0;axdL~I5JNM{Yz4>r;Bg{ z#XoJOFY8Hy2M>X^c2tLY-qT*ANrql(?Gcbf*^T+dyRQi>x(T%q=^RW$qkUzb ziE_?>buM)0bB_gTT*&(bX-}Z$;nfBts0f1Z>EP#zCos6{?V0YmokhNA0QVHvKw*)e z#o_}SDkl}e2~7i}7ie7*H@C)R%|1D)#|sg1@?S4)_!>ozeTbi+nIL$1(7Kx~Sz zr&u?*M^iOr6OnAXPd1^+AS&F62qEEijMaOR!+@@CPn<+R-2^+=7F!hd9*J^!=K$BU z7gillEcCIgO9mKWy0~NtF+!)*VF@kPw*HjJ+TRe{ENvG^(Ty(jgB_nr5K8XImsP+* z8;M}n-IzRlySF@66zc)U{oLvI@m!(6^FRAm!8=K+Wbph_h>TI2MgavUa0dRG7jr z(3&Sw93Usr&sV_kb^!s!Km2!}E>B^{>OKOtI-Iu2@Az=WX;H$SE?FHV_3d^9PX8G` z1zBZAZ8#fK`ECuCa==aMpp<@dpQb=<3V(A_xM)P9(lC^CX7ebtp>P95Yj^yqR%TV->}kk3Pg+{=C-9xctraSi9C~K z?Hswmr#}P81m<=x$bZf;A4o6?T!{Ydz&{(o&$UdkvO9dw&8IEd(*1-z#nGfDO7~6# zGQzUrh1?0lobL6=fcjOP%DA`ca>g*x2fQ6Ku>|1`MTAB0Qqt{!*<$pweXAQHl;+Cy@!Bw?dJ*a=~htZ(@Vdb`Qc9 zw;1V;c0Ra>*n4c$$`oZHYpUQGvv8}s3WarBrQ^4>(F;=otm|#uoKRA55wU;s93vZR z?833IPtPM1q#`yEO)tu^YU^tE+#$kYLgg>I_9dX?!%j^gLO=>=(?r<6`AUsQQ;)b7 zL1So>yv;%PX?bWq6{uu-yPr9j()itBN;#avofPp2`I=zKRx_wwWl^OgJl{2IJ=RAr zkLU3l6cB@JZ4eg8LJ~veLUUYhc2nC44)dVarfNLzH zkiYa4Y%%quo>SrtGUEgflW}(4PT;f`+2ao^Sr8RQ6Ao8hO^|JCM}&Qx(&INbLg$1M zU=iq0$nMPN8t60IZE@prbNjflx@R^we9+n{@5)~!Y@X#r_VdhjE1dJoXe>v?bh_=+ zhw;ns=+v8VRu_R72?#h-QASni^}XAgZoPxu7VCDPz`h1r*HMp7=n*Uk=5}WP6dsWf z<-P)$9f%9BLre)JYJDVfwcK-TIaDA*tb&-+-wU) zWkR7GjmPf|V4X#}z+m~qw8N7+3q1V3lLrZ8X;DUf#5J!O@67x|tfjj*Q-55RWhA1- z%*S1R8GvMb2cBC}h2=10uitEVwtp7<+d}Yv-1)ptL)lsft5!$MWe^6;p=}C>glkCk ztY*KyUr1)(xA60dQS*JCvTwy8GOc9t%8-Qwnm9fw&zuYxxi~VR&GbzJX)BCRSx7{C z(63(DK0DYTQW^cd%r(0j|B|?q50+ujpmBqu;){DDgWTa*$hh;3oJu{w2Qov8<<}JR zSRuZ6po=0HO=Kf+1=*>wFh_?L5NRT4iySRE=+4m*Gvw9 zEIcUKS2%HPPOCyZd6gu90>o(x`)4^wWh|mVAJpxVBXHwvz{!~r5IMIk3ZD#L9g-B` zIrO|m>=XilJSM~!t`*L4WUJ!Pz_6B%NBfJZ?7e|9$eLj=%MU(X`V#8AVVCPdPX&4qT8(q|_R$P?AyeFj)=5N3B z)Z(^{v2YwUn0{!B99-mdRdeIq60}3JXRYLb$pl-sMFbK*rxL86l?(@&j<&SUfc~yb z`8%9oi$(K_UI>4K{B%m{la3BnlSD?KyfqlSvCVZtyDGR-1B{he*Eh>CTA^w_+XdNa z)No9_rBwb8O`JHm4#pz1Y=yOnp~FG;%Eb!S?NZKs`K>lC0rj&d{# zhXtG;=6l4$@~$tK85~&-NgS?p((Ix?Ua~&0@tk4b1$`1Pu!uTnB&# zFkcddj!qKd!E#k5AZ1I$RljK8&GD}Yzu3Hv`iG$|yp~9x;-cRu#^xntIjZx!54w9> z6^)mFKe(l6I{Cd?=+|hN4u^?6g{c(*+-XCR)m1Ny`E&zTg^mWdh}Dz0PP5;q+5o0U zA^DENuiW%t@aThxn|i*5HbokMu%I`%+LAH>L}iXUS`Ux zIJn)WN7XEcoQgLu(E^`uc8<9yag(_+t5F|>(kEE+kuFJd+pLq6a5&Q7G3RiFO!fkY zrLg~3p%5HP> z-mKaW`tXc#ebeJy5M8gSz{F?rKaH598+3RIMVMIQJh_S_Mi0$$M2#D~KQzz^zb8dq zGZK2!og$jj?5@#WQ3pT4D>5_idcux{)0_w^4t%fD&;lzQi3c1kwC7IOVWawtfW@Yz z$js;`9I)#w?&^)zr>K}KxTrf#R!A=TrH0umCXYKLViqZtZve;eDs7q{DYVA#7N4s} zgk7KT%F8B=1#UcJDgg#4P8j7Wp^#Ya=)h&Ikj`~;se34P4BW&49G8Qttd(T61bnRR z6(eS=^Wy5Q7z1$7iF?NN9QS45IGT-<11AOZ2vpIF0`A`l&#|*_f2-EYNelaR$F>S4 z1ocoCRG%r_V04{oemghK;L|q;!eIHKLl+TA?wAN2fDoyp>PVN!)vb;Z%UND?^ckEAn0^)yL@8oG#%vmog+$flPe9ceGVg(euJT7hgex4MG|yb7lX}T ze)T`z!L3}2Cp-(N|E2G(-ven#Ze4sl`!81<%E^nsUjjgOfy|e~ug|cCN@Gv0J5z4` zBB1eqT2_6(jR4+ahMUy<3|m)HbC8#nrecAZXZe?Zh*OE(k^({;fd(OjN#18zXL8Ip z%BchuVD94!-qIt|0x)m~MUNQQfrZB(8TH>X&&RKf!z|>hw$2gPbk(j)`V6=qT+p+= zm~bRn55va%^_K;_1-1Ai7c(o;5ASUg&cLCn7q<>B4Y+K&Lo)qfZh=%83co&1@E9oV zRS~3dkvy5bSyvELd|qP2NAx~VrO8aps2_EJwe44?`8u5=8nnQ8nv)9quV zII8)Y2Pr<23hps9h|h^ij$>ADfnpkpL8;rqvo5vbyQr?#@ibr!F^=66_Iz?9TYwM9 zhEI)xQMk@=K&TTQcIj?`gNzjsuct38>@FX%Xo{oUD$|v|s8KPg!coSsvH$4GpXCd+ z@;hnhe%jJ{E9Au4r{VXQzDC;82YuRnn+O6YXNolw2_X4;p@Aw4yfyaaMapyJZ zXv*oMo-!X?j@Bovp(6)B?jvD|k`)~c>_4G~Iuz33;PD8QiZ<6$fj^)!AH41L2q8XQ z)SZ^JCTp#gfjI18kO0$eL6%ti_q#9|z_xrqr|=&uenrA+a5R{;y6qyQ{ZJF_4ocf; zm7an_3K){oMuE=aq||Rw5%Y1p?vsz)HbXKV|Bf=cEsUX1asO6AV-BxC6KvF(cA;5B|Q+*l>8Q+}0x_I|A+o*)KH7!#c-YG`Y?=G2CL@K_L zsbCb$o*rM#meJJoed9ynwU~QI7JzBbjc!*X$A@O>=M8~j_R0s?`sWI@79zW-{ono~RCKlJ4WV3Ul+J=}MjG~Mx7B3kt~)bM7z(?Uu?xdbS0thfmn z|1Q8JaWHly73@8&S76$q3gw;el&fGA1#Vo(7En*kN4O}TwN{(wZo!bxS!a} ztg4&EXj;^b+0I+{SPRo#Q1Y~pt}La9vPFc*`~S2*Gy1cwGnJ6;BCVa7pA=ySu-adP|WTLLr!g1V z$1#Xry zzPDA>5QA7YO=LD-##k!HR!#Aso*6Q;d}tPk+V_bbUfK(um$T8m%!{~fpNnZ#jZdCc z8M}R-p==5=Z*h}+Agynp3^ODcpf!O>>RvlyQ;j`gSqy^Tn&kmI^O-kv?lluMSw(_a zjs1~sWAHmFd-i8485Zm15}G+9=?B8;!M}Z;;%lmP8rEss!Gb=D>&cJ4sp3`AcG(Co zxSU~+=!h<z%LxP#8)Oy895@7{D9jbPhX6xClTs)+u)ZJhBgCf6ZSq z#Dy;qnfFiwne8jMFP&|o2Hh}UrN42;cWW_JR zP+%QFQw_v|ephve<9rT=X=@$yJ>ffSauo_4KKSS?M{>hQ&i`25M+aD`0qXqHzRwyi zo)kR(cLeV6i`@bSr8(IMRFkdlB{ge<{RhitXpx=0b9W;wjp5(#UHfxpYKthnMOZsL z^wdg#B-YDOJesjV)XAG_$+ysY=?_31b27Za@1h;?v;(#pefP2}wV=0oVG|Qv(J|nb z>cGj(n@W$4C&{wqc<+cqAMq~HX;W-c(9#Q08iSl&ly?JQ2?{qkq>^L zH0vuKSkfG1vXau~v?;4wEo?|J9bFq-gaEp@;qr39qe|4xxy6xDDcOB*j9(8P=wJ?@ zHfGxXt!z)+_glFxM?n6owwpB&cJ4;U%_ovQ%c2HPBaLHy!XAF(%+m)tjak)to?{*# zioOsq!86y^l2<%D*WfT2(OUklMlw$^vXu0lYDO6oaHlwbm|9CU3THXyZO~_dXi&)_ zTyBHcVwhGlbVsl+L2L0-0C?ylv)p>MF48y79bO)-HfI|)YK(|i3o)0CyrSJ0_N{56 z49LlVeS{27< z9)4`YcV7$7B6OmlN*rNoU!NGj;j10zs;;!#7Zg(m_Q{%XOGHDAmedUjm5c>!MVIb1 zHq^6o*v0RYEsRz$NoPkXh;KJ60xSw=P^dC6dr-~S6QhdG-<2C7QT^AmA4xHSZ;NkL zP?=drwJh}|&7F5Th|~1Uwg~%~uE585pnK6!mxWcgvpCrbKd4BB!VpjHLMb%{BkLV* z(_fSqY#c2w+EB5xz_TGb`O66lmewyqJUHp{altbSrpP&7&efQz@mli;_jXq>sw8#S zgBDgJ?}x@;8KArCMmn&98M&%lr6uu*RfKJ~FrEaotPqCJ;3zsGX(Fo8h)P;7bJ{N% zG#ey-=$?fgW5IWH@=)fCw<9V0EdC(q8g9VuOnR}6iI zzQp>agk>DMUrrnM(D!+B3`*h9zy?$6Ak@lrKuEdSnO}l(UL-Mj4&+7s<^m(zq(`Z%MUOxh)nVjQG{D~zCRw_Oswqw#kbw_ z<_z}ffA|4@C@^l4wtuS_#Sr){S@(oGU?&K`hX5|a{$)rCMcDF1LEMGOM`mZx zhdR&0`Q$QyuHebsb<54t)Qa67PHrPz4GjB4cdnO6lie8X9<|xi! z?u7N@+l1hq`!g|pP?~JA@V*6|>rl(A}fwuoO(u8F*ehoetYe?sS ztBL+GK@>EW|3JIuY4h}Ev0tSSEh7!)dB}NqY|O4n5rEB|6eI(zr!mv9*`zWkS*!#( z+FH48R@_DZ)2w_F)htot+z|NbkU^!}HB+M1G8!NAU_ zv!m~jxZq;Zvux#!02NpwoHS&EGp=Z&!_*Gj0xFVwuVoE)nQpmQ$orXj0kg^_s)M<4 zgrX?krKs9JK~3vuz2)o?eR7#_v?=wS{e+T^o|>$wUB9j<@rW+|2pN>jxpeT$4gSO5 zXWSzDN2bue>R{@j27Z7>HzubLWW-EU>C?o2G`0qpsviAk1dS0>DB<8<9BC>={7Hx_ zgk$q{qYTt=q2TN3dQHiy^$_4*D5tllK_Mhk`pM9T%xLX;Xl@>sR+_NQ(S3`1q(KkX zxq!KFR$}}J@SxYa%OEEvV>CZ0{I2X&k2d?bG#apH`n|MMZoa>TIjGp&XD)3TeiS4Q zE{6<947>ar+grc$8j*=r0rkG@zjC6gI_6ExAU4qzHjyJWYLc;utG=KFHryt5%1%a7 zHBR`7N#VPPEX2r(*P-Xu6`A%^XwV^nm@Q#tNbWGcVw0hzk36%u(E{qaEo5UnF%!?F?GNj&HIVmtIVY;ltjT=Gfs zsucCP&R#05@lzvvj0!n_r;n>ew}*DK z%C)Sl0pkDRH(kDbh{{o-Sahld>ygd#mRQo7q5Su*eSwS1O#i*FU#PAh;B-Hnr_*M7 z2jS+>*-2r@`2}D99Ct4topWSQU0^ckI2Kl6VXn2&3WNaPCY{CtSq892*ckrL47|2r zADEF*iI#*yKbJPmsger!L^w4+M_y#t53+190J|ia{T=vcEnMyBlgEQQdncp%e`1^r zs&D{`okirq8hcYH(cu@)WU%pZxCc{AsHB+fWej8VcX#LgYdLw@ba2M)VAUSb(RI7` zZAMNj!k)tYE?mt44BbE8v<&DCCl^vMyYFQ)w@Ty4EhRqZ=gX+ut+r6=S}>4Ea;A!1 z+u|&}Sg8PtPmSeaC5nVzfeaokmtpxabf~?65hXXO42WA;N+1wzGi%sKw(U`clF&e} zsqgrr)Fn%olU<~gDKqv>|NZ8v`?_J)EZ3so%omiY8H-v`F@|qF}L!znv{eF9MGLIt+;Ld89G}j#TOO>r(LkY;0!E0u+&FM63TtD_rPC&SnxxJ z&qdlkJc6scS=(S-8Nvh=I;Va7BuK)W*7FMeKILa>j_H~$FKMs18VB_vuPa(_S=bI@ zWKbP%I#VFlMChbafD5%VWZt$-Fm{+`3lfiv>8k4~X8nAj zd_GBAf5|oB$0<&I=(#Qc1z_QBiq|TnW`f(4%rzU<)uMyO;)f{L-yg1U zf?sx515)499BUA6uIF|aLTs2?;S@`MeowPdjA?ZtW-t$7@>}TvzoCM4uuN@7EtYvK zSjO8~T%*cXpw#!-$zsE~ZTO3}S45;^Gxf(>AEC-#7rF*nnb)i}Uuh2Qb`fXyYMu%& zQxRH}YJ%|i$-855kh;D1-M~wG)^SzLhr>N7TM~*mEcX$uTBgm3W7nVQH~1p2n1}zN zMO#+)L{O#>GO^Hl0KlkZU@gga{~R6i!MhCaPL-1M%eFms*t+*6C`X2?4EV;#pf_}0 z`WE%tarD4DzjPZTvcb5S8V=Tha3mg*?cS1%l9pK)*92u&ni<*Y6qF{IoTKW9Ec`g1 zTy4_WOpZmHt)8d9{_0&A3M1 zlduPPcP7SD11kS?#h-mFR^HbqnDp!2KGNz(slZ@YNC>{!w)oU6?&-&h4%ursfXuTq*nkqAk{#my~)#_&G*bpK9t0vtsI(>Ua%m=s!vRn6OthJ;~ ztYA4i_)GJ!A>$=BgG_9FHUr6xcPGteuPjwuDHdL)9NgV(Tdw3hpo+Yg!l{>RsJ0U9 zfO&ogm>Z62Q~9LO8)}eXukWEZ;Tn-r{g5nei?DN=nPe`gx!JHj@*m-h`Q5^n9LMkqCOwk>Jc`r+C8f7 zWpePP-!VIJ4LYP6K0jpMG6;`?rX-8WlU*I3llf*%ykUCi0{6^|cYPf7Kc_{_%sm_J z!e7Aoto?KI%e7WAe_Jp*(5vtvglTYZwPv2FC`Wo47%Uz&uHZ9hmPv|ON}(0Og?}h0 zn{a6EWknw)EzLwfAcJBb0=g^2`gZSpW4hSabz}|$i>N?BDTLEdo4k+4{R=W&QC z;}q7`EeA>3L~9$KH~?J$eV_qP3j<)h7nc&w%$dtu^1`;0nc0Q5eznbpS|?UytEtp#McwtGQ74=XrDl;#5!m+`P4-UMv3L|0QF`~y@>*nzkpg8Z&>Eq zBy?SyFlLx%CH};aW4>Z*$AQIL+5T}vM^jzA*G>~WMJ-uMFj@RZfu43!^ceh~`C-NX zq|(GFoiCU^M`2As(-F2S_bz?siX5Pq1LrR_FFd7zW9nm@^Nv$9+TKs&>P0m9-OPcK zX53HBZjScU5I}Achzauk=ow4p5_%o6VGR*WK3L6Gxb-+jjB&GKe?NV35Zjq9bxBxkRsLV2|G@S zZyQ6TEtXiCC6vc4AiX(z4B_J3{ho{RVh7Ud!QL&f5Ml7ErmZm#_cJzUAHi(Pxq(Dr z?{#StGDkTFkm?seF#DHrDP`+icH3Vo1V;FFt+3A72z9(x)IMNOA(OmBzmI1`PIDEG za1E+LE(@~>68mjsFN(P$VhI3TyJAlHRDFJ_hP8Uain(B;jUTjWW--DFO7}9d7HsfV ztndM$W!A%w%pZu|FCxN^!8$>ku&ah#H@}ih>-{$4DSajGKVtw|@ZMHcB$Wo?Atu&f48@#FYe7kNP?1R&ti5`|~lhYW9iE&(3Zhf)Jwe5RApdV=Ze>)=j&l`KxDKs#3D z=n@`pfmcm_3%iiSTMRhE8zK${8yODfD3B+0wp&AtRqQyL%U7I1uvyQoWhkvZv47c=svSr>Oo0B+=R_VNRv5XLPnk1wE?fQWP9z4sYMEA(i!r452O zPBe$QaP|gkS@f-1*2<}at`oiR*|yaLy)U3;-=grR|JTRv<|cNE4ba)*{ag38zPY92 zW+TGVtYHJcM824phFhnQOT5F7-psVPBpxTF1M- zFpp1{YtAc+@W-|yO-m87L1qX>Z>7JF-C%fqcBF39?~+}-P;cbp(Xb908dINJeUOn6 z3WHDOc|Id%dk2|t%kM|-?c7Jnpb>7A4r%z6{OtPMQnG(6u=8|Wee zrXAx=v&3LB7*`~exK({zt?E!WQ@W{GQFVRJG4SP8RPt{f*|u1-&UPMyVZ}v~AaS|z z&X>q9UYAigD4%|=TrqN{^;wpVFI%fWG9jjFlYVdIG$3feaQ=UsY{}u2JR-dZyT%bk zP9x_6z$Sa)g+%Uk0B(r4{1pE$Bu@dp+-Kh@k;w`ri&@`&HT=46y9~46Y|M5a-mUTN zgd@vHB1d8C%JCv8QWvB0{CxECi%pKBDWsfYrHr^b1yJ(HqFU|4c7jwEuee_D&>_|D zlnx`9Hnw|zK-yEk%G;urc;5Rk@x+1z4a3|}h@J+X!uNjn@a3>pFiNM#s(M{Xh*>JQ zBb5>#nu|OnonTER`_MkbK4OEg3Bbel{q$2`i8SYuD?d{gR}CzCC1Todo3gF)GBz?} z(k-(=BLh)3Uc?vogoTJIB1_z3tR*-B%*PUP)#gx8ctCKJ`FDbf>!XUVH{RYK%+YVx;N+Z+tnJu{#^bO4$o|2) zJOikY^tl@W3%skqTqEoj?9lE;u4z31gT2{Kgp!G~cdek}1K`{eoHJg5Ee8&SX%@G- zQ`2q1Q}lF9HQxWHZ^K(U6&V2|Po$zg^C$xsW(su^49$ltAUaP6O2>KG0g*Zxr0g$R-1VB6og*rI0Pc5i?B>MP#e>vE< zQBOan8_jNq@gdu7A4KFPJq3+qu-` zaUCZg3b%2;A&1(LYqMr$*CEgx#}{vq!b}yN!h1&Du&tKFTDn`IP-5Kl4%)N+w{biYYJ2ra?4T zE?fEhU^oN!^_E#o)nz|>ar#)tZS!M{<4JMYPiR% zcT5b`68|+uy`*_>wft(fBe}F(1{H5UZF4QH2y9^0FPPHRlh_#akax9PrF>c=V+A>c z@E{;5{??+fY%n^EVJlR&Kj$-lk*MLR+(ZhrLnduW7t)RK53e0t5hkB`&NaX`@_!^A}(u^*wGxeFP%}Wlj)gkHS*ba$Xbb*s_yD+;B6qVb$6oBZ>jp8veXQb~C#U*DL z^0qh+f7am%oX=ln4c_XSoKc7H_Zoos73OSE{!()GrdKzurw6g~;jVCI|FKinm9k4P zHi$F-zj(z7>UY;n(KY>TFJ#hHFcU(i8B4A;>V)v5LHTY@_v27ldb*o|ZRWj-+Ne@h z%%z448utuW0Ro7*Bb*P{her?Ds*2Q{6Uj^>$`Byx7Eix?tAML%muNX5aCiz_V6L(f zR4MhVCMT+~D2(jd_RaVB{z+~1QRd=9&&cn*#4tLE@u>J^VVO#9c;2DKbYlnrf!piC z<7?a8&%_vFhRlN2eHJQujL*zq=h@4k)Dp13ves;9*m`}i0OZp3y1lbTty5l<=l}V@5K1_oObt7U`vIOV_Vo@CM2lm+`(DQZ z?fcQpSyMVxZtF-bdy)1QcnvJY`439>j!;mjTl)eds+O%U)wv zr_QT3`W(A>J|z}wy(+mUBa>?q`0wK1UxrsPsCv!D8(3e?q}57_6OwPdE~dwg_2*$a zRDQ|4i4z~IIM;CqYG ztvw&>yoN}Neu05{kV^ftxi-c$e?66nb>U3tW8n+)+VJFMHO~Dpj(%`KITs#H{6#Vubz)O4( zJ{>+lPON)Hag}d5YVw-4);}jNLB{ug%rp0kWyF+CPb^lO*xdeuHjv-#AOb|)B|IoC zxIeKEVt>LL?UA7J!&_dbv&^n@EU6WE&QuM3aus;z2BzIl(gY|HS+$!d^rdtmsynpz6xU(>1vmSb2%QEoKOpeHjp@QdCDQ9O z?GHWVd;O><*o@c^4>XO#GY4-cjQ$@>Z@5fZvGn1$heD?Mi#G%U3;Y_JTRa zOyYa2PZHC;I|QC1(}m~xPZl7cGUWBSssw(Bz57%AtP?_sN5}1+mrV{`TzDnbr_OL@ zTG70LaJEg|4tR-hjeFfV;ckbijj+dBv3QV%ST2atyilxKW~X(HIdKlmz}$n_jJXtV zHN#?4Ogqzo^T+U`Av6+xRT|!MVyFuG7il)!crC@CdX)gaYEFe(YE_U0_$Yqk%Op$Q zKe&OQywVR^ey?VUsZyqD{#aC}ib_Wds=OtEbolRiS3}cu<)uS4e?-uIGOukfN>R1DXgzkoJ%isZ&1i6tE_-9)_@GYI)yU^;02l zkN6IffSOS(YRvOd$QX0{g?n-SdOoRUndWq5pv=WRg^ZQmVXNIhRCLu^X#|oO4^}W$ z6Fv)7Y-j|itXk&_ox53SU9LoG6AgZuSg#E5K{hdlZ*y!EYmWNduaR*>H4{m;?;kxw z)-}t{C+WIr1CJmFGeIr*Tv;XFCuhEXvfoJKT48`C`9rrFCEL{!;2L?AkRb+$4DkVt zc+%T9hMI8;9w8AA8CR*)1s^P3)rJG+VlP{OP#kEuhhAJ*@~NZp|A_FJ_Qt}FZKceK zo}n)d=HbswQ=_)yJoT+|e-gXUm#SpLr84_6=>pIB-#kqh)C3-EWfQp!j-VMP#`3We z)NfEFw_@?eT%+aUg6ir`e^+YN%>8L}t`C6>HATk)fEW3(aR!!|#qDQUBqP zG{4+LIDM(+XbF@CVi2@r2;6BzAD*B3YgKU5?g{FBogj za#2v+-gm&bzIpd;6&hAehD?bY|7bI2duN96padB*C$*-RTu4Dp#B<=NQ{*m7%NhrN zA0K?eVQ2AQ_P^uGg7WNRAHc9;UPGIgcT*x4cmOs*F}mvq2ad3ik^@;D_j8&tH!dTs z?fqV}EnPwBWcum$*PZ?s?##B4Zl8o3U|`G!e^ zs>aY@@hBn*S)Va|QA5ADH=P$dD5!3@v%evJ>3dQ0oZZZd$nd<3ccT}WjcG4$uK!kr zoTdwo^6`y!Mf3a~yTuwy;>zjwEGWt_gN}O+^u2VpzY1|`CRwSDh(jFr*|Uqe^}psJ zRFy!5Usks@P7f}WTj$c{bFuMHPtWbbm9hrhux+C1`6FR z5};&nP4p7;-1KwRmiZyj-uZWL;6X6c@UXYE_QPA>SlNDL+k=|^oDqRB;op@^U$Nl& zr%Ph&dp&`ZfMBRYLM~IINqr%wVr#=x1e5X;0#r0H>ypsj!naNuU=hVAr*ZiNk3b4X zgtf)JX@tCiRLh@&sCUG~K(aIJ#a-7(?SHGlEs(@@6Hk`ou6ySI{8DQb)#}fRyk{vz zuiY}MkoN@u&$;SIca$}_dA|=TKkRc*=-JVtUf>X7vwKf=f@!0*3{Gp8tdf6efzlnw zShBorOZN^g&jIhe$2KS*r74uq5!@xOwm)dBWio&meAf4)(OdiNGW(>ZygdI})CkU! zPSSDhO_L>TjNXizOXa{I{k;pOQrGI$=)dOsWR(vK1S}vMB~%c zqDAI`(bH0MJ@e6o(zxIRA(}=^kCiDO$N%``c4o=LQd} z$3JC-V)Vs;FznU0tWnHjZ^{2#fN0_?V@a>5OQmhq`{qea3nDaIx)KR_$fp-Q8iItE zND`8#ZY7hHhLr*zPSnwX&eC!_1|k|tsrTV|xUQT%i}-B-G#<+#sXFm}qD2FK4b%QAws{+7a2h>T zqBOG8{>IXb-|Lr1OgEhY`W{!f?e2S>sOD4X@bs(Zd!@(fW$nq#>jO`Ymgz<`3#Hiq zw}*}K!aT>v!)~Q+Y=-5#taRY=F?BnQmx$QZQyV{`IWy*$+y?_gU|xyLj8%%!VcBaoOOto) zoNekbvo7P;U7A#z$rZMD(t+2uZIq=yglZ?9G#?|g-O`?a*RD3ShQ#@R3A%pcP0=!b zU|4yA*MSu@Ys!w<{VOy{FGTMjp9nvY`-(Y2tg2*JTMjMa^u`yivia5_p2mz=sWb;k zBv2Qb3xqOkD4Z7{T+$88><(Ng-bbIx=YeA2os$#6FzC;%;}+2yD%$BAB&n! z0G(6>hFI%<6{6S<7UU^BbQ#D|sQNlnkJ)1ns8h?B1KH6++)6+zd#Biimpcg~)-5QB zN_6`}lhkQVdXI`ZASmtQ3PorveOHv=0A)9^*kyM}))q$~D8&^7VOQ!I80(yr1b&N| ze7UJ?ekl4F0fS2Htk#B{H`(0tEow)YcLXrte-xRMqjgEsK7C1fmQM)X;|KDp3NGcB z^yEuOnOrLm#5^N}Sm$T+<8!P~OFn_UHr!ZbQwz0FFHy<#M8{53hhbztMySM@0D$v1 zbuB{Y`uwpGjejkx+8`xkh>oq}IxTHX-()B?)&L9aCb7GV(rYf4+2vewHkNIZo#&HU zgQy}~Rv}o7j6-Y?>;@gZPp{=*^a!&ny9de{M2<@nBdUgU_VZ2qlgQu+4NQ_fzsaj9 zai+P7zQ|7r^_P+XYl@Q0I^n052Zf`W6uylh@P*gb2>ib~|6C1SP!$3i%XF7C_p&Cv zU?G>ryVFP%L=WX)m>eiqp5-2oC*~>!*PmoXQ{RxbmCf2MlYQmFJr&r%ZFt= z#g@04dW!Hmk~Im}+i~Qlq$V8yX(qsqe8D_TCJF}ERF>(NL7|N>d*&MiC9_0d8XSX(AzxzMiQtdA|RnkSs3f+fmIKi%*U zq2LZrUH(c3NAVK3bS*Hrs|ASnQVf5#5^8ditXcPiPZesF!p2Y)8~5~5xMTN*XMiNq zNd4MamrVW?LiSTh zVH(B^W;3uDK`PePBaN=Ysk)$i96hp7Cx76m#sQ8x#v<7^$PP7*t8l} z?JBB+Ang3=@KC%2odVy~aeF9O7BbSe!Zbuf?A>~e8x$QdW(Y^BI=oPnc%LWvv~LB zczwcHNZx!`Ryj6CU@rvCNBL~7@&uEoGQm3CNaU_5>=F#6Savz0~JR+VA7i7(ym&g3G5opp4yv)O- zxw+s)AzIe-?HTWs3oYSXKM-{F?;NDha5BbOh)THgh3SkP&7^`VS4Y(uug@Q0H*H}M zI{M$yPqOrzL}VTLU?-W8;Z`shI!v_ejpMpe#Oy2SCiF1Z^i%U8a%S6<25$E#C!1}+ zG~}0|m>IVnW_&(6Wj$1FL#dWUKv{K}M9`GmUBXL3!S(RUb7rnG%kdxV@X%X0;S{A? zMIC|jVim_6P!Qr67Xsxq8lTx4nfa-pA9VNzap_nX)1iXzQ_Zb7;*D-88o9BEX8097 zxRrf1?;W}Mr)U}2hQ=y(i%(U~7xK1a5g!+JQ~pBt42zwktq#!nvF+ z0vQ0!jTQSs{2BJ6*#8HGgf~pNga>d+k*4Rs2v4m&oMkC1Q=R(V@o7=PlqzG>RPnW= ztI1@{))hJ1wDoe;+e(qt!qLL#N?^fYfBvP2~{wuNVzGu3{)!y)>Cw zyE1FYSVPFzb7f~4XB%O)Z<8v8YXFjz>e!0}xJBki)WXckAD{o?a$XW{ijB@p?5%DH z3^0xUZp%l7*UZrvJPyi0#*?5cA0>Ti+N-5t>72UzP4@C`!~pdILJ2Dz-Q8LQ{_*s( zgNL4`Q!&>?$Sr?#wJC3kt?LLQdD~PLu3~(i&nz4_gP_a!t9yESu|*UxCIH~rR~z`cbf~a5HTljPf}rD7fZkQKIP|{V#=$#UEK%RI(&>#{ z$syGTn5wfxh_A*-MB$7e{a2BjlDAA=W5nG(skGLVuBH5aENdFn!XWL5<}7J-$G3g) z)t6VsE-5Q94jr<0+%dN5t2R^zyfi|&T4>R5hKTx-v+bK2l9x^NBfSZcER|YQ%}~t> z%qShOVOT6!`@hbkR3kR}ZODUnC}#zk)!|ULwkG-u+0HnHxDv$hD>K6`p7X#rvrM8+ zWD`_$vG8;5a_YOo0s+duqpIIT|4JIQ4i{BE$|^a#8B>`G9;pwqc>ty+V0m9Q-kni` z-!Y!(9IjJ6Rnf&#=b$=d&tBwRDH)<=fh2Uz{y~VuI0ML6ijdJ%$@mfsgj_ru$xv0xIDbn z?rTuz8K0D_OA=oC6&OUt9qHKLEhEAqs9iP97FLCdb#a zUQX!##qdg-gyYm`VetIR?t3Zgx9UFWAt;h2p~F-+M8-R&O?EAdNPj`^P7<7}Ac^Hw z{Tpm84NyE`4X~_fWaszNCc;byV4zlf@1h!iyGR;=feLI6nz1GU+;(VLkm9=d)sK zt1lk94k71ov?(BqT9hfvM9ot!&~(~inLzO%i&@|}^=MCbq#=`3`rKWzA&60)fif5l zBu)m9rn^_HB2>tj?w(9a&P`WYf)0k@vGK@ni6LBas!U|DCN;Q)YOkW704XDbiO8RS zmQv-&3DoF54Yn&>$1bq-1(ZT%5DTRIjfHCTTG4p}Z`DWGn7yqmAm!!pcX(t}xs`qG zW$7-nwpFNZOCX$WSm@PpYlKAE_^1x)>on!eGE8<9oKp}4YcT3L?=fpn`~ba~_*8}9 zr^mIuuqELZJcdcA%ku<%T!QUGZtM;%-d3M_x^c4P$rRKF9AkRekPArvUTq3nRU8vv zibOa$?lrcoSuW_{hu&E+Ru_6uW1GcW7+^=(Xv}G~1-KTR_39S_RA)yRqO5$h6+Uhn3ls4QR1f0hI#hIw8vf$3U5AHcm^#2_MR@ zT9=1agztGDY^PHBX`u`qH(424<|1!qtbUF zyzHnv?Zt+*N~>@(Aeo>rP$*U@^{pYHO$=bku%DpDEv|dNb-4Oq^RCHSpwq#s4JA}O z;!uFS*^e$bTQck^++`k^j5T?6J3ra*ujM}BHxj*|)M4SW&{u=nn9Bg3ZTkjBs0dxS zRZp<@d|iZ7hZ;oI97vwh^9;{49gaK zzIO{roFN&eV}A)Qjv~)(oQ~<&^Y}qz#HJFZ4eKo0PLR}vhkjdTU8%h5;;lnN6f*<( zdlD6&d&5#o*Kw_aBL1vYM_$~e^k&zl#S88T2|^dl4l;{Y^PD60w66n`J1X;mZGPj} z_*gJD7_QN(Y)QwIj?&_o5+@|ZQyd~(L6zNdUlv*);NKZ=i!R*|Y$w|Del?PKgj!gsq7MXWf@_mU@Zd}J>%|XO8yN$z+OW2Sk=9h z5Q5P0y^c7<6(u7T3P+|%4q)gIkUA1m8!M62qflosA>!Y#l<|fMdoteX&TdeFJWpb< zd>0Kc#S$^db!eDcdIiD23Oypb-@B?ey`PHj$1Vb?xq-1}hdc!5 z&mH+x%gy1fH-A(qG_=H-(1&e#MWJmVk3i+ZC0R!wIHh>vy)*3HXKS>_cc4;!DM%I0 zc~v1|z&j^d9aGMdkWv!ssm}{ILq0hQ?hLMdxGuqj*uv2!BtQy1uuL8!PBNqH8EeZ1 z2mA1 zO#x}V5*7jnWr@p-NR&i;(OGEm@rp!REB7yl3{Cm>ME9svZ}w7^^Rol&>d%w8(-P4S z&VR)}l@;?-?}4UHQ<)Rz`>Z;Ts7Mb7!gR@qc^tho9y?~$yQCdUcmfSqf>05d{z%EJ z7Nj(J=&*mVFDNl#YJL051V$(MT@ukC{}{&!rd_RnQWM(y5nUe-23zY&{PJdC5O3G; zXGj`kfK*_$e=lVOyMTrR?n-VfL#tgxC3F7Tp)|wHtMltpJk;graAvDK*L!3F^MLd} zF!J!+)Fn|u4d^^c>9|06_=GTi?O;!SD#}skleZO7YK~~P4Y^l+yM>=f2KC*v&{5{o zUZI~#U(e}={<&K%4SwU>-Gx(+F+gau8)qOL@S7GS2)g#ODByR>m|p}%W;8jFR?{#w zoAnhupys6M*@F@hN?eMmuhL`C)^Tn#obcqq{T+YbM^k^4YGXukj`cF?B7tf_%E07z z*(op`jlXch(VRWc{UF!m2F7@OBDk?6bkFm~fZ&)-A+f5zWY`GC)B;6B4YND2xQpL2 zPGI}^-5QwU)ZJaA@PQz$o*=&xzP&s&a~)0fFS0R39f>nP3F9(d{pX%C_kERhyhmj2 zDs!KCV{xwihpoS)7N;zNceg+y*?p_vO(*K)OYatfk4D!OKNTf3D{E;V+uWm-5|7&s zd1uY8HOw-%DyzNwwgX7Y&=0ERG74~{8U6U|1p-0^SP>?Ddr0o`8h7`1= zzeqRPJcVQIyYBf0jG9k9EkRxuIa~RvniDUe`Z6XMAbBrsHPG^@W-F)8Orr++$7OOk z^{#tQC-{H3t+ckIgTSQ<&=t5$o--b{nN9p^Sl3t~WQtvRPFoD`xfsSSrmz&od`idC zIr{+cJV?hQvENjH;#4%LlkzjYxTIjN=1u#Ruc{NWnFlCu@3Ioh5qhEKAL+QMC4c+PiaZK%wL7=7noI?+YaPf!1+^Tb}t%ihcWM(le{9Bws~Sg zdrF@>Caa~D8f?97?FoHt=ECcIhI*BSg_op)!KZ@HOp@(&aM?6bdx6^39hY@rjY*>3cb!tJ& zH#7YzCX{|7Amt)eUZ7@84D(@5AKPSMyaZO7r1961;AJ9^;8b?7Yn-wadD|2kd{XJH z1?&7ECaGXFUsJ=qWc;ZKlRUZfE&8-#@8!@Cw*sZACj>-jPKW92ClFz)4jhnmUh9y^ z=J#swvq@R@OZnqsBa#^o%tYA{5LBE=)*FhQG}_rI?xj;W1Qdwk!-#=P2^y6B<CoKo&y;ENHoF0&HzkKyqD0?D}edTT?aX{AM$%5`?@lcXL`p z{i%aG0YP{pjU4dfjee56v1w%M|LG7`47EbYq#x=Adfnk2y>b+O^3cWywh?UW81R2H z(^=Z*ATe__vE4RNYV22bt14@c3r=rFNtX~GF#`N|$)LV#fyx^dc|m(q9h52wyX7s2 zPQQKBQcMO3>6}DR)=M~p5oKg|%=rkxAoF~)GWHTR^LAz)B`vo^l*)u|Wa3hp)qX(& z3BZv4GvK~6tK>}j?7#XByir4PJHIr-5+czcJ_?OuOg3wuD{9E*b*?x>eR+l4fY~-FiarBEkiYA$}5CpiuuQ?4a! zlf$smg-lesl7F9m@AhMDu0WTLLsGx<8A`mHJk?4HR3pTCW!%0UmdjBd#mKZ$%$~u9 zI*C}oAxbnRE`c#AOZTw{i(L1Z<+JYHru|e~${+Y<3@v4WT7|iR0ZPRRbj2v+LV=^$ zGcj?d+V(PyM^QU>pPx1SN<(w!#s>?yP3id<*X$#t`|dEO1}J>UBJ5B3n@@?V_@YDu zh+YrQ_}mT+5tG#WR@3#!{u5E7jq-I7L%54Wjz9ZoWe|0H%QtpR;NtX%C=z$Rz4O>M zBKbwn|1JxnGQ(ZEn-!u$Y2HU8ZmUV12Z#ijWw4Q+YgV+!pbsC!uF~_U_EXFT2lE&~ zlt-x9nLOXcO7W!N9~Zg03~(H&cyH+CN10%^0CDgc!c3-pnKG*G`VSn89&=m}a=zya z$@nRVAnQ_fx#v(_rm&_awno?A&hH&o_WUeSbHM;7oGJp@+#kNn|Xod*MEJY49dli}zJM3qoC%Y4 zGt>yK4bZ)C-l(35Bvyuans`?u(w&cWS#E!~2KxAp`Aim8$NZ_bDy`tvSwL^jw)}Kw zcWqw|q#Srvj5BAmp*BRM-sa?Mr%{*baSc*{`Z#E@kjV)sfTHRWuP3X^kj)y9oiO9z3XWyP-P^K?9(n-qHfF$Ame>Oi z*GpV9^Bnw_FgdN7IM+dcC#IylNFqF;yilk8kx^31YD%u5BNFMoArbjdqU+?NHUbeK z7B?t=Tf|KR)9PF!f1u{AjCdU=Ai-Htj8QZ;`xSlIe>=jS?to_&B{VVy$-Ca#xy2C# z7Rj&acHc?dZ`kEO!b!JC)IR-F8vEilq_bVw$ed~`k;TLjS<=9GtDf(2ls|vWq)enW zN^trudDN4+!Rw~KUfz6Oj>KJOF)ZV4GpwwKX+QsyY7=GIEorz2Z8m$i`Pqxo{@4Ws zcL9+`zW4sE8?S;=;gAd2B*KfKZ0veuTNX3*+KdXK{-$_slXCsKYJ$OcMg@X)PlS!Y zBSOtqLp)dL;$z}NAGPRvrN76j9da^tZ5(%{I+<);g0`us{|wR{2`dxwc*(c@1S~Zt zUu0V^p&5Sy4=m0DTlu7H0S^e~Re9qOYIt$CUpvlps}{qK(!^^Pr*b@`6T zldKvAC@uIZ|0i7NEhZG^4+?AL@U>}4emp1=P?z7BA$Zy(@|Z$$SU)f@|8fY&3}x;Y zJYa7GAX+X1Nxcj^12PeH90Y=DC4eWBKF(>^I#yv~RV2_(;vvEwP{BO*J!Hvuae& zGyDZPH{h1axv8YsB_;Dw(1}5QEr%Lnq3%wHb_9N7W>kfB zv?_M?)PkAkXY@KIG$k^+vzDCQ|7P3)x@nuj`_a5dy>5weZ3K6Bt$|&wx;bee`whR} z)g7Z;Vl8a#zX8^ODX<6w7>MMd6_sowPA|@6(`y(sq=1+t+QTK?q!{J=fOl=Lc!&m- zAD4{F2Q0o%F1Q7+R=AC@Ef&PjatReuAHA@MEJ1e6_Tv^Groqy-pu2RM((#?s*GZ>~ z^r3Iw@hy3aO%3ft^^64Kzj>uI6|OfPSiKFpYf)%F)JoJYxpoJfvv%fV-W>us1ifBicq-1YDOXPy*ehHk5u+&h6ZEx3QT^&iuv zNh|rTR+ZNW?y2B7HTHU$p0g?Z;BFr!KPk0I=ZnQ5&fOt3%=XY(ll}%(yM`eOkrs5Y z6%Mn)Uk3I5Pi%5KIGzCQp$y57N!f8QZRr=UuqscYi|I;}T(4M{_f_mK=tBszITCvR zD-~!ZlO*jfNm5Z@h7&_b&^rldm%8ii&cNNKW8zA2$Adww*h2^07cq(IHpSmz&D7v@ z_gX&LJsc-Bd%_5=cHruI4@_-lLl*UZ4`570QJ`x$6?Q(^rJMs9?5@Czn?%*`@Oo%{ zelCI}(+MCHmV4Y(C$uIO^0|+h%kxn;LJ}Kq8IH*`-I#2_{DIX^@3OqhyfA9ITQL+~ zyNYn~3Q62SS;TRkFfVT}9L${#W)?WI#l;oN#B6-wr>|BNouv4+sC zxeVIuu>*TVKgvV`#_3y31~)K*tN8;@UIl1L2~E8FZZE#eL_yRZq|`c(+J;W07GRs` zLh(&IvJgxmp8E$<4nnj-yH^&wBxtY=m-i1pH9l5I%1IHu_qeI}xp((GN_=9wXUwAkzq;cl(0Nwp1A zJF)M^V(^IBbOPbKMU+JLGm0Trp435`8fJmyu?s>Muqc>#OIP`2399%kfsA`1F z@}s72tFAV6}_7Z+GdEu4~VrULLu$r80vi9v~61fDQ)<4H#1G7X==n{b-Pf;e`f zLPkb!!maFJos&i%hMa7qP4A&P?_AI;7p`IeDA6QB*&1k|-}h12te%x?VSH=5LkfCo zHoqANJ@m?akdI=ni02vMzf`3o%YA zw;NImq4Q7#e3<>th1ebf1ME;-HhkU&mbY71*C%ljT+$E&(S@&tmIG+piU(W~YR zS|aPOVujw*38K@2NtJ<)zgn2~|ELGi!t)=%_Hq}JD1QTHU<`i>*xLrrx2af|){FRB z_YXT9_OKuvwlLYVN~Qud-oVLMA+#yhG#gm>AgcWFsW@lPA)7f{B&nWTxzcjF(5lQ# zR=QSnNhNy8Mtj|>GCV0VjSx-Z9we}rKk#z2r6Fj-F7AMvceS0yBW|{SS&?hT_Q&OS zG(Gco2LFZovyufiB#a>UZL`*&#fvd6SBm9UcJ|T2R@(*OuWKh@EyupJx@-J&QBb3I zPd_8INf-aQi$LcRDuF`|b)k!g(}|E&6_~LEw4Ma>f=lhM7udui)G5YYvdxi;mPqWo z)P72F$V|rnT&p%K_968?cRSB}DoF2$0Nu3x8wi0Pww_hyY18Vd?V^j}1K(H-#oj$( z@-R`TFcyso9jH1mmRu_Ct#q0Z*u;K@l8O&Jzt|b>pVmb^(~uc>M_WG(_Wvr_Vmt_? z*06+yH%#VRNDvg6RGU?G%3HkxAB0af4(O!<`O(op*#_oj6nF5B@;kH|HN*B{Ou~$? zEg%7zp+B9a-wT>@KKSTvFKDt@PWA!25bbZEW*x^nZG|QZwIVu`I6ky1~QrpuaZinDZBwy$sTf?muK)(-j0OR~;Np@-0@l9U%rOLR6L zGm<-3;N-bd{W|XJ1X?{ccxU3)-|0xGtN;dII04IA3_!qp{(wv6qq5L z%A1(5A`WA29HeXao77ikiw5jol_Idvm5(NIPAs~k4M|mJv4LAui8YtL;fx1t#|HAn$5kpm?(XLM?=G%ESE#vrzgv{ zATn<=HG9R&5K2@(5GF(Lfg`L2Pe*hzR~RqY=qzuA$H7g7sb`SKyz2h~1q^fBN0r4^ z<%6L)t%fxbyvyT6q=_~Er2;roy81T~Sq~2_ygNE>P%}+{d#zA=@*ZuID~?AeLgds7jRzU>~H@% zno0IG^Y%B#WVRV>oVgTf#|aKX6Jiux0OY=A;bgcaTbj3ye>GO$ENzG}1IBDlf8hmJet3B|(BQdz+w3dO`*n0KCC{bx(3)!D z5t#1L0k0FjP}Pd;1;iGJ>O0;AtBQ)Y>p&IE$j6BsvPZ3jSs)K~j6}~)OWx(>X=YsR z^UZ6qlolc-v)xGv$YG%>Bg6=F*oVPIF@hD{T#8hXbA(@ex;=$uFA0%_FEg(7A$`{* zzA`xw*^X{>wUhsaz=KR7!@+#~15oY*s~$Iqm)h>so#89uPG#xj$*l62qUvIGj&Ttk zu=S>)VMaY=Heesjcl47W{l3IIiffOBxJl)E4qRs0ftGqJ;3hnu+~FTf18sYLp(r|k zK$M|_9%YO&a~i%-69YQA)PU5BqiTy^QN;*!%Dtv}Sc4*Jmn-R3%1US+J>R)$mLs8I ziz6TFN|o)r1d!}n;opHwDtn5;%bXLrqCzCu<;`Ks3i5QLBY746WuDKq!^IvB#xo@v z-|w&@^8lC`p|(4hP~+~r46jT>21jF7=4+m&hhm+p+$zKOx{wKLw7$0ez*ESu@zz6L?Qnu?;I}$th4ja44 zLU-5E9cnP6Q7tZnnuqz-_ud8_sRfZ5WEE((jl5p5u`s1;jTtUNDaHX*JhpiJ^N;>n zItpn>w5zMWIs~V}tXj39umstAAZ ze$m;DT0Jm1T1L)-c?_{O5PbQ>2+44X!!{K6s|c9=Lj1i+0rMHs9Pry6BKW#gnkH0z ziO6Wt$K4EugySRVP6U@XZ_Mu+wi4+#WEaB_#e4QW@@vR!S@_WqALafde!hl^7Pz9R2bRNjZ+W^Mu5$`% ztVQ&RG^&&KE*g0GOM-lZO0KWaJ-U9wfjEQP3~r5lRTbc6h7vNaUrlW^?MfIXM9z=c zM&QflG1fLd(+VDUu7Cvc_?>)MFTBP03hIF9G8W~Bt)(-+!hAaQH2s`&^S-x6I4}_w zJ?TkNIa;B{G5(LEB;f%%uFC*z5z`MU`0O^%W&e$VS3TWb0<%yV6cB;TOO=< z#+cx*f&0cnitE2Dx#yn^UBk?j*>M6YGgH(IVPSS|>IWG)kD6{jO)5krB@6UN)x+-t zMJG|?1(SyDZ_=Bo?2_Jd6ES}vZL7Hv4pmVxb$GYs@q~L$LbEK)6iRS2pdZ2gxTY>D;Mp<@ zQtE|Mjb#ML=ji#P_?l`YPS@OFY8EWqhA)}zD7!kA07P@6>xQBMsVuXls+7oo>{kZ? ztC8^EVlkb#^6kZNNT`(i#H-bI1zOT>w(OaeS#=@liS5?PdFpFe`?1n7@MsxGDJ=w7 zj{OP>Z|uL^Bi)v>A3Yx|&C-W==%7kLLl+++Uj+H&6AfM_4qzv5JeMjQSJcu&sNEpO zF;^7X?Vk|EE~pW7pqF3>1|VApqccVd@X=3;hu2Lf@3A3NX3c>`99K99uHh; zMaXa#o1!sReCY6Uvs}v`zquo+@#HfRn({%xC0^Zf(Ri#B!Mnqt8c;dH;OP3cwZAup zjRq47E`I^x#hQ}UM732V-y)2_U=ePqhbd=rZTbRMhIZ3)dpwJ9O>Iwe>tl?mae3g$ zxMnpQEj7^6(pGw&&0 zch3)5WuhB-(L##v+>h}yffb+<1D^K7ilkIC*QO2|<7kAuTczo{hQ+&XrRknx>CRl5 zpfDJTpYm@*5QYFCLd`r(>-GRczk}ehcHpo(T4LR zp|6)oFv;s==7w++7Dj?Q8%Kb(`o`Y%lZ0@W%LMMua0Q&=ixiGA`SJAObt>+<_Pr6o zShBp#mjT0euEb*`8ENRk2YJ+kN#OJjZ%;TK^4?I%44VFep za=#>nW_}6=dA0nu1%s(JTrtSAb=D^&k3P^Tt-*6&%yT0>lcI=w&IWOD4Zj0p%33aqE;{g2D6zKZJ zz>Q%FdfIkz!PQz=u^aUMzIo%gz-6JJilc7=jJX>U>2aVy#E{eO6|`*ynFMHLFK+8J zDg!4Gj8bsew;*S-H^tg(TDII6Z0W8#&7@)Fs2Buzs%6Xw>l&iLzgxAZEoj8&zjv)^ z&ml%Q?1s)^obfZcQoSG~I_zqQ`6<_FSr+3|QeLWydg)pj@=W@1f7$aD$~2Z=m8S!V zf3ww%hl3do96U(VTiJyFxtVv41R2X<*ZmSMe{I$oa_1D>fdpFhPK_m55+4C-YXH-h z5O!2%sCTpYhUM}SgT=QbG5yDb#P>D1_LKjcwin4*+RH4^Z%&N{M%u9VwjZt5)_hm< zD18?|-h7Hz5!BrR?U+RTF9~K`l_(8LM!CXP<0;k(DNaDu9b3hcd%?D5qHbAPzfRx_}yA1|<7nD}`~ynV2PUTmzr z6H2q6nrn(?c0unIGZFhF{1nB;up1&acwj#|?ampu&ief3X6V6VREcwkc@k)bw}7Qd zy10XetOxkmcNw-B;vhSyGgs)^E6?!kLC0!nL8*^Xp{||vwf0dC@#~3wW~F6ihO}fd z+4%n1h!6c@7MD^avF->3j`%zj-PA^v?^V2X5Q;ArjFqs91_X-DWb2(zjl}Yew)@U` zR4bIVGIL<5ftsGlm5jaWs)23Q?e6YJRrng{5>gP{W^C)0A(FEEhNb(Ar<1SYf%VQ< zn@id?9RN5x@B)Sy=fOCDXPJ(?nTO!-g()zny(rqptQzzx#5j^-T|OJms(G8#T%}wz z?e&eNlXTKJAu6%G!Vd@{{JL_Ucw``GTDGrN@`e3>LL{+TqKrx162w)$$vZ?{Gdl69 z@2MeEE3LJf;8WFESw#}~Xan;h;35r5LsFHVB(&S`1xM^`g(x+6Q;41e&t5SfYd#X=oXs{OoH_~Q;d&!Azmw0=F)Yc3GAC-x9< zqm=&*hxfc-&NV)?JeT`0r?&ulQenJ!IZ@;xx3saf$U=oTaFPR`X&v5nZ}9~a+#DF# z0qW;%?pM3%U04qf##rK42krb9dq_X!johGlEY_U}>63HTuZ~5dzHXO`#O=@>Qt-!D zZ5K@(wRT`m>wCrf*o1KLJ_DGwNA%Zxh;GkkKdud#5|ecOWVx_cQfg3~zz0Nh%{`%~ z1G#A7S+}%9`kEAaagL{tkeM{X45E)myAGb1%pT{P{e-}Eud=!cJsAAKyohn|G1h;A z6+OaU3FAxm(5|{EO`aOmTe#y&MHFQS{u69{8E<{)Zw+M za>nf$F5PEEg3HY<8}%!3U**f6q9Qh;u)pSK2H@Ey0)e=+UrS(y8zj_|MBO>868_T+ z3y_Vc2V9?Kj+PrB3-4Fsn^R0+Vn2XhpyT?|EeNs+lU{7VUd98aJ-;F9*TOiB(J-}P zG!*;klcI%{DP%vw&y(W(u(JTP+}uvat^N@lPN}7<8b1 zdQ;Y4rSaJ)Y~%sY(2^0H2*r~7stVdvUbZGfVZA4;x|l;@I~vNe#5xxcpL(5sWjP-< z3#_aX;a&8J`R?Z0j6ZX4@)?JCxM$#6XA3EtwUq-x_U6-j`6}I7RbS}e3@^8R={)TB z@I(@j+JoBI<{hcStbl$)6`>Wk}wz7as5BvAk$2PtZUn1aX2{Z=HzN1 zcYoExUx4%d=$FdT|0dhM$a@Rml62p4-BRbqf&M*a?JZ@ei3t2cHYIZKoR~t98$8^I z(LnjMeA)_t6Rtv#TU zgJO{=Tt77GrpSdCggisr3i6WQ#u^gNY&Swj>8{5n+Cl}3j{pj^IjrBdMGIfZoWoJi zgX)#S2H0iFgqLXQWOF=RyWTYGy8+QP-cyYIY^lceELMgrA){)QwZ|4b67P49c^|Zx z%sD^j&GlPhOg?o%{CY12(A+XAXv`0Fd*aTECR`TaW48(Rxj5q*zCY?_z}yvzD1ifB zdfsz9fxUQFsy&OYoBZzz;c}mN@F&d3^BPg$5_PefE|;c#Ncp;2LX@fm22sFblcN6A zn6EVZjH2$t>2oVwvm zV!|p$5;|ApEL+~`xc$7j=Y)>=)A+Z)@gZcUDu6q zqjU?7iYMlu3LwsUhn2p`9Z8JjNNvHxe$L9rhRGY1CNXv?Ab_N+{gUKa?q_fyoB0>iM@ZL-ZwkA}E zazldSuMYa~4j!=7^H^cU1gq&7!dhO(0w5Z7*Wz0%4?8XG^fyr2AlT%Hh%Pa1v!~GH}QL3i#zYlLPA&0x#_^uptXjo>{72`vGRk0+7vr zcw^hLD??1EGft%NkWM{7ZhAA)$U;n6g)&42=+hRtMwkBQuNr#ZR#J{kUMT3B0@cXn z=*-3r&uPgY_hIA?Gx*Epwe!GBHD+9%5r3?GF9Xk6T|>Y*p&5J;#;^TUJ0R=bnKZW# zc@6cZ4`(U=wOwEKB?W^&qOQa@}qaH{Nz3N6{NjJT^1Z)`^Adg z?^hg7Hk}!tHyR{Yz^(`7Zq^PC&wE?SOcv7gdyjhRL(F+BX#{QRunsm=nV5q03rIDf zS*4Kb*GSC?I76^1I!S<_U9-^xH5v4Rg@&T_1|i2Uo)c?^nJ#}>`>MMb__=G8LUO&M z_H}(;a#gx+HK{ibx;`VEE-K32ThVsHlsO)?xv$Py%Y#Z^JSiewspSMI!0}-DUrhmJD)RI(?(04zNi067TkPau z0OY)M#Znu^pLeG2!3sdLj14ZQLFOL(sb3N^+#+)9j^TZX-pxgZpP{cq5#8oA!dDzo z!E2S0u_^Q`)xeq|B}$7h>2g&|6{h$NN0w!w~L2&Dfy zBi)d!iC=osob2or6##J+;PB+w^M_is4(aeBMn+_7tu4Xn)eWM~AZr21C~+YhTJU54 zlBPs5Q3?sCyos4WjZ(HaFI@D0?8(*-|N0%bH#HSAYto-nEaMB}s<366T1MXoR7nn- zmxex5z`G~RPq(OC2qIcmQg0+~^=5ZCz|^aA1mz-~d*0fhW>CT6Gbag#nb9-7-}S~} zPS@{8TTuOg<;Ceg!7>8-JbJ+pH&Rj|7div?=)2Ks%50wu#)MB$FK(nSW{Fi#d2&6z zyx!Sq!(}WTdO^kOlxTm~XQkoK<26@sMMXK^{h|0aE}K6zEBtu6{V!3%{Y8Cl9ns^B zkzHqEL)|hBL8Zh}FqRVs7wCh+@vWu975n3_%;v78qlUvwmCXI6KkJAQJy`82>|fHF z$20?5N1MafZPMZQvn)9w$K%oS z#}Wg~Ow9-FH;e5EAezUl{TXqLY$+k4g131RSFT_YBP^j2mH*fAEB^5#NA1^PU+|O_ zTDV^rY!YN~iHm2dXmp(Eh9ZiL>gR=7RvYd{RtaRSHtt1%14w_3no1$gM`|6E=2Pu| zW}Bp@e2Iyu=Uk89QXGM)|93+%`xd7ujP$4TPFT-lU$(nv z9YaOE3f?gyOnO_HY&Igs2*|Gr(Rnz0=Xt2h)?^iRWOGMR>*B}zT7v+oKsg)<|CI~m zNkV(`u@~oM?JL!@K0v0`TD zY%7p9qBA?Gr1wzd0p|CRS`-qMj(J>_mGGoG^D{M=Z3p9Yt<~HB*z>a;=XGhg7UhYG zeb&Fa*t`etjCgZfN52zP?%Zi&QV}B=709buhJwL!1+`Y4#3PKg`SlqHAg__^f2h(` z|7HLI_F7Ot;-X{35f7qNtXPAVis{+5O!w8uWDjsfH+Jfd!<15(ETNWfVBEcse`~nV zTCB(6Uwsb7?=-L23}obny;xNbSAD50B@kZp0@AWQz}A}oB!&mZ5UK}^peBj)R7?_q z8BCxcw}8BhfbP1ZFH5xIgU76;eL%4Nrj2t5l>f`XEAB_9reZRg@L`)pd~|c)gSR5+ z?pgK{(3UDGs|o2dBGvBC?O2|g5_a*7nNK(xb$_G0$;q|oQ5BV&Y zxaGzi+OlkUOv-zExK;o8*eXnuPDszdfBzlhbbuQRBT5)Yp`Ep$kv%0@8*4x>EGHF)MnU>gPJxRWG|+J}m|PM*A)Fg9_&Y$d>^70ffPW_y!g3ZW~2khZxT>x^tWClj6Xy`u=6xbV`s6k$*IsRRt~a{j@~>08YNpV!-NChoF;g-Y37TV_X6>(9|6rlj z7=P?1Nc&!b2BD4aUyXtCg%Q}BnGkv*J$X`E`hH8$a|{XK-CAlBR9 zl4mLCJa9*Sng`)8)mDT27w}%p7n1wvK)AZV)x_LLM@C5PVX4zJDUZ8D$YP|pVcK=_ z`lweg-SnVR&Qz}I!guD(k<820e{Tj-yo>1>mB66x@8dAhH39>7{)fjlU zk${|7yNGll*n!fw6ZLtd)lPwHzBkPmirJ}F395Xm8HG6jMQ#I#UwS)aKPew43TYuI z+{dGND$FEWp(xr78rW}ZIIA!gBjn6S1AP=2bXZ!Xuiy#{HjHF?viZWw8p}Bx=2riP zJqtHU30-vgL6OjsR7QDyP5Ap;$bd$5%jJbf+$HYyJ52&<31eL8_Zo!!+=*yqs89 z5Nj66_%@c7g#x?ommpG2qspvo;SPX?h6E+%gMBEtL#{~zk~6iauI8>Lfh{W|%=q}0 zBq@=oLBgRzWs*5Bc7WDQO$bmeO(OZT@Ehr`a zg29&tufSFQr_ZPayVFOu5w?a12`$k3oMwO|=e%jOEM7OXtWL<%`gp)kBV$zL!f^wiH15m`4TNn{E< zv)3QQ!FRPKYIL`0w*A?FB2!d2YKy1zDQ+m-MwR|$DZ*3!)W#%aO6a^{V4RHYTw_Y= z2FTrx--Wdhx#Q=`H|$3S9y|w0UcmtSVmxv8Q1zO*9hsyS3ATkldcX76a`k2vwLPIz zw=g)k!g?M76jsD>zP+_A_tb&~wy@JDHyo$8Up zH6k>_-&MF}yT`#HvPS@O)o;wiGjQ063O0-$@=`=K*M*@5y|FxpU0Xam(?>b1bWh*I zlV^#FIY#Adx~%rq_x~m}%z5i&+<9>&z~Y`X*q7}(5#OP3ryGf#7m%6gK~?1nbu(Tz zI_@02*bn$7+m^E@xC3-7I4*Zvi_tWazpld_SfbPAg@qrmX<$-|vE9Om$fd9pm`U>m zz!gp%rvII1=S6Eh#McM=baasX=yg+5D*R5M#MG766T5V+!{jiwo9cIx1&1ELyFMPJ zTu{51E}teCAvG+nZl$}9f*sF$-8EINSn?^9BWa-#duaTrHzaJ;crmT+xS^{y^3JFK~v{qDu1CsIbZvHu^fzZ-0IW5BjU*D zH|kUy^A*zK%=xGMl+rr$s0Nmj%6IWdM|p8^6GzbMm7vb{TP7Jf2h)v;5;W-%S>?~= zg1oLZbnF3e(qOYt#@x1bQ{qGU9y#0{@1&b%TV5+*4HE`H1yzqqq*(y}KLEfZo&>%l z9oN%@OZ4=X(6Az9-=ACKHoWiD8xm~*3o5aDO`H5V`Wjb$jf~8^smi2cDOJNuz9Obm?5KyC4rloGjWftj;5Yr}cn{p3JK1xDPO~G5QO)1FZzF>Requ0- zksgJh{U0j36)3+T45Tq_W%6FqOXtvhQLyu7n7C_D>6kiXdDM<7Q9+4_AEE6ghPFJ1 zb5fDYY_JDiM=6Ml!2LnpQm|+dba%L9l9HNP@8~Q816Ss8O##kI3W8ARBOXY zXPAn^)Ycp@adwQ%Um=aHW*z5k_+UUfSt{*nIfySfCx0_Lgq7Qs;B93Bx019B!T&iE zsunrCG5sk3@^RV2qbtRO)SGndj2?2l5p!tFwFZZ?QTYI@%JHx##lgiI;fOD`5g-`x?J{$ zka*!ntr3{E0;E$ibSAWP;{i{nNuWh6uz~2npWdl0(d}P<@4 zJZsADD|Yt&T+aJv#*mc#*tiPcJydDTF-!5|T|x1@FI^IN0s;+uI1Q#|EF}1?V8`H& z6`_h=j{>3^pQY;O`C>HXbn@>V%(}f(BQ)gihrHGr(@QP5=J(-3$o?YL6P))^Xp?YO z)Ery}g70-+WMe0clB()0KxsJAA1f$ciw~AI(8AJ_eGPXWD9I#(q_?hQ_Tw1y4)d*( znBZIYoW38;#gS8Cl=$B_Uo3GMPUDvE(o!*39^s4|DyQ$iX^LfJr_fpkmc#+$6?`;T zSohL9X%^9Jl%MU<$aRpiFbpS+YR_R74rGEGlPohi$m~@1eKj+|6wfFAseYLx-0e1| zs6p21-_=>+*St^yf%AMQY196UBo7KFc!b=(Rz6O)oyp-Q4|UCF!uF&;^sJ@?8`7&N z&T-vg;%z{?LjBob?=4_N!(i+QA)AMz+ttDZ5k1NmPuw;avDSm@_!syq`^Izo=@zHW zy%{4oaqIi0Rgbh9EQ2J(r~X}iIl`cY#(es)=|>6?(MA=rAOm0XuiogfVCzD35s+J^ zRhz7fAV~uBFW2%>D5B(-p3N^0HJ+-;$?+rUa@j9NQ%pzMXu~Vef@dotV~E+GQwwOe zrHnCgY{G`g`zvIhZSjjtyqN(4+m^A@Otz8A?xU_3#;*OMP5QOmCS;3T56HL{s>gJJ zZNMSYz$p-3l>v%Q2xnFq)=!qJ>jd9i5S!G*@&T)=H3^nU?VG&&A~YbSf{52X51*8K zEw7w4@1nL89fHnlc(Px@@9-SuoEY%>X5o-HKB{Pi+3GuW-q476A59(N(2?c#1EjK- z7%6Y-Fat_w^lK1ZmU1Qgslor8sHR5YWqJ+>u5t4U{D7XM^N&D{GuV_o`?G zKGiFpm<94es!>+zKg44A8bz(8AOD^%WW%qPmh{dK^(Qpkx9nW$g;b~g^o{+RNrlUk zzU3t;l{8=f2$&WDZYpB-=jIQcq}^2}2O*T`WHdEycj1ByUEPG)Nd4cJRe1q^@ccJ| zf9n}#?QbCOMN7pmPacIyKCNS3{7x~GPg&#kw(ZUTL__@J*mAg`aw z%QPkZDR=9-P`*$^1Wf8g)^AcDiUL;M%w+pkcN-~S()%vXF9z9!N&OLvbfzFH0V21|kCp zfAt)E81Xv;8CDgzKVN&l%v1{!Sp3m+gIYI0{S9n8@gPdYyL7 z!TA@d`v!v(@l<{!xwZ;$lHx z7V)X@$DN6m(bHSzm9o}5gsf%5D=2MTiVs!jy{r>!c7~>Dum&KQujC++i)(UBxv9`n z$*Dp7HAsB)qX6lwXteuP72S==jjL#1jz=)d_lw+EaQYS)BdL}tT@9>zKDCJ*;I5Ucj zO||>(U<90SlGjc3=&sKkufm16K{IU{7Pbr#_FAC+?L z87$-NBqQ2K)*WnYm@+1-<;9KQgg#?pc3n{2qStgJxv!S{F^d#?b9TzOJQ=M&o*FDb zsQP_*1UOLz1e3zz+JX2Vj4y;ebUiJWo_J8NU`mWsBm<7DI)+bvkBCRM!uC z93rVUfdY?xZ@*yCFDeYt_c8E_LKLGUschmQVP8$KDbpF zQ>E!8n=1SAAn?%kms;Lm#QwZeRu!ZkfJZ`h0Kv{cDuf4m36J&WYVkP|R~nX5rNePp z8fD!4>b2>Om)y?WVcTg6Go#jRw%>I>isIGEzEcG2)J%Jhy}Bpv21*o#$37$*Hii z0h1h=ma8lJttdTm2Yy|6gbC*X8rgxn;Z?lD3g#;|ZCga>|mc1`IH z9mj|7nTQ!_BQ%O8zSep|NleBY!j7IqiPNlR4>Phiz+}GI4MRiNII#LVE7=A2m-+?v zB-oN64>P)H%e=u3o4yl16Zs$j?Qi6Ve$fT01lI7d6!9=a2icEGG9uaZ;$L32qx!yL zJfvsx<$cd;n3uqg$H{UyS^oq5E~Vv!*UN1alREm_J0-CB!@amj!f7kCvJDl%%TPmS z#HAJQ&U92~n-|_Z^;-XALFV)_Q18R{EBqWRx@Ii-s_%9w3o>m(BQfQ59cb=QPTQu% zD1_FkOgxYbR*~JAgu^BEbf%_#ER4C1Hwb_~Vt1hYzady8)$<|BPhnze8Gl+ZVMYHa zzc&^HW!FEHsd9po6Oe{+m(`7&M;_*}r-=lCf4?`r@_wM;roYl)uMg68mWm6Nlm>dP znqtvt9_}7n$auh9IT4+X;_-U#%~-U@P{$oKz%KiQ!`Cr?Ay&CTQ1qC+<>4W;spnF* z^&mD%u2yMcq#PjU7Hl#BbA*OUR$4@K)#@D&Hb%x`h-Dx*xO4bY*YwCQr`1MXVt5bw z!aHs1(xJfw89`c7to+xCV_2?NicRcS&{y8#u}1@ewzl

n?AO+aVoVJLO+y^HHr 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 z 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%0D*naC`BfdF93F=Qfk$4ge-; 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�gTiMW4VI9nc^`r%$CtdQOG8p188X9vt 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%0AvV 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 tiH!fWna2)rpnsuJ zwtZM$oMqu@Y)8Z+SfQNI_E5HFx+J*%l9cTU!{>D3tcbPHS12!^s{sFuQm(5DE*&C8 zW_}W{Wc*WiaA?KU#Yqo+gQ?{)^dA9%x#vOOJw}@WF=dv7VSAO$zMw7It4PO$>iq9S zX*xMZHuK!Z9Ij&N5H#0MJ((F#K{BV=rz=6U5MXSuY=3PLQ5GdY31t$qPJu`Lur6Oh z$_Q(>ZW9riheG~oCJzn!t*V;U7 zPbMTx^jUW0=_%?3kBVM|DWA9X6Ujf0?Y`lb2 zd8q>}=UV4Lm<>=y*UCYy0J+XoS#X@qeHW+XQmenut@ZHyeOz!j}=UR`uw@&LeA(o&7RG32;y4vsnLXt z3qn=fK&r#kEZep@_Y{pd)hQT0S@w=IYnguJEro!?^_hKT7OPrT98YXns zts9z=-?2u3h9bYU8<j5m^{sw&*lYR2HXbXnJU^a zk_IlXj|K>oV&~hO(`ub-Mfn+sa^ZW_TA{!8j@^u$k4qq>HW1R4^V(*`uN>^H=Oe>O zgxdMx9jf7D?$cWWBT`N|Wj*)gK-4LU8c}fKuyYYK=Wn_ErM3uA`B76I9ldF=-FU0i zfhP{w-J?!-cJQiDMo&`X=jGv3OYeT*OJ5FtL}eq)|E+05cIsbG8oPPBIw7^&%H>q_ z4yScrmDs-#X=l>V1?%{6sWJo9jKr-7n`DWN3C}RzHL~*63sF1=1HvA_LWMj_wMe`i z&I(2t(u=*q9TFw30jTuf*FlFhKs9$-q41zN%EkWb-0C6r!d#YQ_Af#2Y{rv4&g%Ln z8cZ!qG{Up+lWA?1thwOPLU`VaJ0Cre~KRt0bhCg(+he3 z`G(9sYy<_>zPOjfz>AFZ^STytUw6~Dk0ep@w-82@BCnuekg?kMR|+CXk~q9l5=lpv z1d4Q2!Td#55DUt58?0g*LHZ z_+oW#E++Kx!V|wps5*8x4^bKC)F@zQ@1Vm>?=c>Dcep{LDzq;K9gzFB zAO618D_a)$O?T|2mq366%wHLkU9Beq-K@!!IA`FXffk{(-C(rJx8#+4NUXqJ#_R2X z1jwL(T2F@r27#{~*G`c@DTyKWFQPMgI^0=6M~|v^ z#z*aieL1p)*Mj~vLnRy4J{yYPUYhdcetvHG>h>yYt)Oxi@J05r@GH$|;`lC7St#9$ z0IeM)DZd3EohzC9-YTYI#dAg3ttmZ(j)M98b^vsMy7Dw^GCZ6`a0C&Y!ObKx=T@W; zGcM-Q@sgJO> zZZ5%;aoZ*!F(2xWGoU0xXG*)C>1agKZI1&FwwL5>XO-)rbTPAvR_N1+yABvi*1QN3 z5wqrSkEY$?|AzIREg+&gYFO9<+wD?C4{IQ~4ysgBC=1@p!#bV=!FF|Qg#BySsp!7@ z{wxe6pKUhT%|>BvXZ6m(yl!*&p!-TjG*{bke#~jfY*vy*A%7*M0-y-o-=HQDdPqBz z!=2J?FFOr@zIu2m^O@Oiw>m8JGnUV9-Aj}Qou`(rDAuI|Qr(kR!>S}-q;j70qMD2T z&PLB4p(TMS7ic_#a(t`LEbQ$EakeZ?q{wYlF$KZ`nq0U>=naRf6C_E_x;+KPnS1 zmaWGjxHt0?0hs!)2~QRe#+BdAb9PodInkuTqZFxB2ezO$gxE)d_T|3u_`bpn7#^{DOl&6kf!@8EO9c%8F?Ao<7$DA z7bA2>Y)TDOFJg%yaQ8qG|Ju_t<(vp@6k>DG0SS-4KAU#fdm|B+GaHKsnRnzk0s~zx z@n`}@N^j{00jG#Y;NjomkfDa4lPk>2asjVu5ovgCjFmXv6;2t|EQqJ(b1y%XL(d8X zCkQ0QX7icrNAh9#e2@?KpTsZ}zxtcjybRR54P5~ZS!M1Eji!4TfSpikh_!jF$3B)F-(GsWtrO}QdKgFFC&p*?zK0J zN21=ND9s`xkn@=wUYs7b^YFScow`v68COIwuPyc!O^wxfdP-=SuJB2b94WXv1WcvJ zc}&?e?tLg3DRNVf@OL9@^cgEDRO&Hs!R429?>;5Zx5FqkG!?ULo9zUDwfRiMWOGT+ zCr}=KtN0K`OWwLF`5Uced@q-$JV3r`0#=8k;>hYUDq$7&><-s6Ff(x}eB1ijdYW zvL=WShFGG}&lmF8|yJLpOJ z4mj0`)9v3F#{GoJ$H9F8fI+Ds!{kFxJfDBAeN=VsbcFoYim7RuI7GJXQZ(yID{5*vY}n9RqDW6}yV+uduF#nbN&YgRlH*`2 z=!*9mzx{lj)rrM%P{99XQ#Z7{C^g zJk0tp+S;eMf$bdKl97y4{c!(L_RsxS3Si5Qn&h@90a0aBoEBw?G^oMqRDJzs6h85v}QLvC24)O<2=&j#tX zVD`t_82vv}X|;J*HWGH0y9@2&D^J3|F4%kEBJ(A%bANg7B3mOq)wy{!YpVFH?VvK_ zP5frD*Z4*vf{j3xchC=lV|jbW0%M_Nu^7f$YDWe^45v=*3OK%p(q3K`N#%%&7`jRt zZ$#TUQ!;cjymwFL;4vex2E`$(CUA&?bwI2M^B1Rss(4R_?a_>M;bMVA7_*KEbiEz9 zYBh0*NF+aDdNc&Wn?9GQC;bev#Z3Fbw@J_u?Uuu5yVCF? zla#Txwl(!2uAMz8L^eCw7A2Lp%n^3XW$m zX!ZC4{WT>F33Lz+yEoFb%{@Aiw)8KH^hpRVWE>Zpy%XFyd0Fv5-`3xAyT*J?+CoAD zscQV{j4bn@?=kTq@_lId+tTP;|2`=_%5QBI*P7`fL|a@`FVHn*kW#Q9Q(u)f=cJ8)AFqc;fe#t_dGLkKK{R)T!&~P1E5K2RyE6LP|K-BNsvR?L$KS3B$kO4 zFn;gT&mJ7Q3!_&PRY#dsAkn~op-Co>4WvRJ+-8eE#q4~$<2|#kE~z?T8LRjPY2L;sLspcFtw)1^FKo3^6~%01lgmS}~*W^~6hr zvcy^etiRkuQ8czk*#Mujv2P_$$l~tEmU}%Rb-)rguL@N3@Z?WY7#{NE!2BSh%ZxSK zPeu=!C619*Q#M4?6=)mOyP1QgYzzc?1W+$%?>BO|Y~UV(A}D+-WIUCwCUcwvQ!5lj z)g6#NRGvADsp6PVTMlD6rl{KSy!P3%N3E0 z?R7k04oKXUFo_(IjfE;Ka|#hzKaNsuaGyOdKqcr(`k5};_S-VZ;kJovWS6N{?TMSZ z;cS1Of#T}&vIIBEmL2BM2HOvj0V3U@^E97qvM~D!`Iwa7kDe{8m8I+QL%f1AGmsB$ zeOi-u?O69*Q9+Fli>WHesG%~|Tki{^HUTgC>@Fm2oomok&TX1Omak zljF{*)6&fcxBvvFZ@pTB+IboR{}l&{p8yOu7h zvt*PQm>fIO)&+{9xfzM0dm$&I*eRp(;Fy-9 zZx{UUbdT)GeSO!Ckx(IbIZQxg6H037-XO8`^_mWb=4pWmPF+;|9R%Q&D5$|BAc~nB z58$`SEB}GQT@_#lCgKNHc46PI&@u9va2F?pM=Y!dOq7lQ(_MedY)tKnNL%#x{Av3Z z+?a&@b>PO4f-)&!5pH8tW+mYIGRcgU~ss8kWc(C5_}|}DyVEjr@DL?fn*u$Q;z)LvKNQ{gr76xf(63}F|ZN4$wYcu zK~JtkO-JgeiF)S-Jre3X@svv0-RJ;Zm}LO5_YzUfH>fC5DULOpEK32xJEtWIX@po+d2kkA&ZXBIj- zm#^4xSA;nN^GkB7@ntBX%I*jg!kM_%owg`?%kC>@GLe7@;lwzInLv!S_E+~gQnC^2 z)$>%gILU3PV~XYrP;z67ZFVd-EG5H{mEMRf!3#XXWYu^I|0txk>$sXE0Y1QI?Bv*rC zs#Hmpc_NM1_Wyc|qnO$_I;;U|l@v%VpJW1z!h7cFN6KZy7ZbAr3 z$axwN_}XO&BQv9NYb&6cdeukOu1@Dc!-zRL2OPOwP+`AFAc>XuT0F@z8(d@|n2*Yj zv&3NlA4Q=ZiJNbtlnc3Q6h^Gq`JNpb&SG#wqs2*Fs_4xm;%;-f6zok3ELhn?GI>US zdE;}b+@}EB*KrfdDKp%L)+VVGRFxBqjix~|P4tT;?#nh5m)RKZ#>VySM<+59y0v1PKRB{$ zHY4V;dKg9SWF6_{R6{KS7vR6!kD{?E5R<PF@m*u~si%4g?Sr2J@2wSN_odVs(Wyy%C$j7X{)J5@<7v+>aPvA}2Ci>h#vywd zBD?Bg&FAL8Efm>o^Ss%+2wn^$Hp)dm7+ZKMkn(jIfF7Kcl;5Jv9YGg75n@^H9>qBT z|33i07E7D*;vG!$3>2VN+RT_{7IJqfXGDG9*}L-l7D$HFlvGm*Li(t{t%c)rB8$;5 zS>CSe4wK|$z{2Q+G(dq%|_i3C_nq>CvH|gS$v6z(I+6Jt(R3=z>B_UUR z6?TYM@MaE#9TYPJFj{S8h?9zwxDNz_TzEjSsZ_8}C3ooey;ST-Bi0 zNV{X1iUxfWQIt3L=7+=t1*TKk9~WO>mW&;vyqKtt>)cw%r-H&VqpnL7u#B!*)KJ2zRpo>GcVbb*?Iz; zTkt4;CITsJ2$!%qEfLrT<}cp_-zSli9UgT3eedY}=CFUDgz7<_KVTZUAa#a)3v z2Wv@zl(~K3|A-BvJo3c><`^V}a|)P_8y_?dIBR50!g^Z|^E5zkOi9=YrrSP~yP^v}E$pe#a9Q43-1#kbaf z!ieK^f5T4z7UK{rN-`Nxp-~2Lp%_LF$$Y*Fq;dzowA~>Mahvbq(SB&eor516+sFh2 z{f)3ZI#QViA9yUJ$%1&SNx-RKYqp3(jd^XnGtBpwdo0J08QqlSaowr)V-ZPwmquuA z3ROvyi<8`iZe3RAp)@YMKedC6_VegV@OKC-P&I^>)5#ckAqvO?%tmThduD>G7mq1_ z*iokVOV2q^ae)8A8tqve2w?vQ);norca8e|>JYD{s&=099JiDp4ip=LC^rcEU~m3~ zdBoOj2}0J#TU2;AqGg59E+Ad^pLm*dq%sKlYJpmS(T$obRyCBcaWMxzwjDQRV|3dO z69lmwf$_<>lNEpLq>AEkAD;b4^9l2<> z(J|MK6$jqH8nhi9XJv!x7bna{dzB-BT4nX9#C#g|C9$JjY#Z~-5;V~QTSE4rNnvlqj@G zx-5JshRq7o;bk(hyJni{{5x6s_Ts3Y1)9jxEwtP1(y9y?N42T|NYVDwSohMu<8Nx+ zUC9|Xpg2iBXr1DhC5v-)6B7XZoZYH#E9ok7w&qhiS~{0YAbZG8Oi0IjZ_ zLehG_SxzXejc2W_0G%O zakbhq7ZzDB5oIi6|4_E3Jerp9pavwgUZ~`PjDtJI_AM+jXk`fNEf@YQ<|5!+`u^R#0Snj6y;(ILKppbI zF#Hrue`nwIx5NMwOKC!Yx?FnzGpc`AoaPBys&%GhN~#_c&v)>%B!u+@YP)!ExCuao zF(?|G8%VeQ-r26>#+oGtacn4d-uKTKJQ;PQ5Q_tIp%6DjK&BSBJ}UF3yem`JuVE!8 zqfJ$SRQ70k_-0DQI3i}Op;%7c3Wb{adAJsSHK!o<&xv>i{>(@DpRtR|-R(u9@8rgk zLT`CxTa8p+s99G#-Dk4Tvv82etKc;+k(P4;@WJe#BU&T><*=Cm*o;#Ba$yS3R0)|(&`K?%y;Ffh&S=~gZ zJlr>;BwHQmSQjbTJ&|@w&vd*%%OqakhfS}{Xhnbjczsfe3GS$f=qJopmQmrI79rjJ&>*ALB(V zzFzG~JwvF)YSdtH8IagR`K^TD`Zzf`!STG!a_M~BY^N%`5>cA;~_6ng#$S1I7<$SQ8J zIgYoBw{g9R{8|26&w`QDTZU!q=ykq4UWK*(XOn%VhS@N;YT{sP>ps}LbFv4Fu|{5zcug11~(9`QGL9jT)EIwbR)6sg<{wPU4{ zBdTZlz-Okc2Ma=hGWx3heWVP|F&+N>ra&w{qnP-*u5PEf?YRV{;ZJ(!H99hDbUo}i z-&9SZGLs`j;SR4=E$+aL(ZO=rHL4s)FMtb5E9l|(m1b3l1ZBS7y-nFwlqb(YqYx5q zMnv^t7>PhU?VpLXaG)oj+yBB7hOcBdPbU(-q^O}8kc>*d8)$?=POZrNO__oxYss*8 zuic+3$lqyF-v8$M`$(Dmui z`nvTZU-X%6aVgO0+>8G{pu`vTNjos$W#MRfOS{O91U(EI9g`sg@%E?CS4YF;d`H|UcC;DH2D~qu{4sN;as)Jc?Bqr*Cj7#)N{j66b z^vU@w1$^T0Qqm`WUeHB5^ro(3!HDuHlXwvSo}~h!P4X1)NN=(qgv1d1SCd{=4+(pL zUv|Pl&eN!UF#=}aXE18`cdwD#2#dNk;%{1yMMgjiyW!(48D~MPA)lPd?{=;T^uy!r zeAS0d$5ClM-5+j8MGD_IEWW34ZOnRe5Ja5qX~W`Ou}&QvI?jojAURDqMy3$RhNS+z z{$^bmcH~m;3fnd??#e8G(>g(bef^V!40xt79`_Sl26X-uV415o?(f+ZGhg?%ue^GLyH4|ncR9nLpgXk63flKA0f~-GO#NN zplL$H2_gKbbFd&6Qm?GNtwn%eK*81tFvVVcc<((`$!ww>ciIwB?Z%$mfaKPu_U{B@ z8Wc2uxpkAY-c*VTut=n(_PZFk8GlP3o<&hEZvZSD0T3yd_RY(!O;q_WJ>4{X#GiU& z6frsBOfhOcSm2$8K>DpU>tx9xkl4OkOGg*+CQ__f#|y;$N-Z~60B7f{e9^TM5tK+T5FHzj8OWM1qPe zmd?pp@#C}k4>BPQ)56*B8XEoiD7NNWu$^|}D6tixuXEx6>O%|xeyUjd?8w#d!5>#0 zH2aGMf00etph!cgYSt>vPaqrUi}S8!`l(Sn z*3U%z~JJYAfTh zJIJ-?L}pvfFkfn>y)V%{?+w*`hSDI-hhqpK&E}A_{?S?$3=}vK6^_JHNgRUb$EBeE zvX?TL69BP?fSb&{o>)Ph8}hh`PNh$@SnBz&P3lzoJEas~mrv8>`?5^+&YL7#7Sb&8*7%Xl}Wxz^X-j0%L#rn$fqupN+A(0xaR3qBg!#c)s!e598!jkDr zl)y*FiP%|;u??V^B^nXT*0y+k9?I}Oa=xTa*S$^V*bz#ub^KHpKEDmCCi%4b`PBH` zMM}K$(2coQE0JZnG~Y3C2Fd5(Z4J^YqW`6V6PxWDGixHXIG|xpTBeN>08C2k^7Z6CGw@7$a;Px6pLmNYT?u*cD+Jr!yZ-?CodTXj8Ar4blO4~wnP(MP5}fQX zrg9?Mr1ojj{NcwS&QD03ANBKjU}nmTbPi}O|u+&V5CbpvFRvCC!DIc<~w_hKb)8B^0tZ@=x12r~xA#od|4vF=#kqB-lVSHs!}A z-XM~#*8R6W_l|ndblz`6a`%`JD-nY1s2&dXxA8WhSVg%)U`z~-x`&H1An3WXWgD^o z3)5hBoMhS^o1g;_ccIDeYTRgKWm=@*f8I`9#Fmk zXm`(C&hhOml;1Db!)P$4lCIa$PbQO!YZrD?%MEySseB}Fb3|w$c}*YEr>;G zcy-it`wu2~X%?j!Rf`kDTnrUL8T;Yj)HW!nGMigb_>Etl%41y?%1X?)seC%Z-jCLg z#@Y>`?(adZ9#)_ERm0l>ai^%UxgKPSffe_v35fvlt~xx_gCfZen`Z4g9X9^SAEi29 z%1R#3d@F3@nSTPCF;H1Nb{Y%3OlJ7d?2|i}=9IA-m+r{5B?Mckr8mh0AJ~#4BsY1k z(z1QaZ?E%+ZGa1=MWdu$3-QxFR-dg!qSQ+Glf4!`l{nsfQ3MN+t}_%e@*}Ri86k4e z4Afw+WdWW3v#e$_fU!t`(At#>%-Rrx--!l*{;W%?VXC)4ZYkoi<`3FCW| z++D`!COJvNQ1mb^ugJ@yMC8I7i(;gABmdkyZ+sP-;1u(}BM4*@AB~{ICE{4mWJXD-S}R@c#D&Ua*WUxHH1Pd&3Z_J%@8|gS zT}#e^YuJ>g%XdQZOzNIb&)33!zPiSa<<~Cz8fL8#BAh`&ljb1W9rWMI1yIdHwZR?Z z4=W47F1IxJkyl>I09T0bSglzA?q8`6W15Dm6Wj>~^e#N(0Jo;Sw(eoH_p zw}LEKn*@u&fLBOD+IA- zR6F=*#Qex+@xSH;NLqhueCZ~)g|S^&MqHJQu7aSyLKgQHLi2tg1#;Ksf*vss=vSO3 z{YFh3bvBnT>gss#STmpYS$im>G}~iGl$h>rSaqGIp$SZDa_e9*wz|+}MNmmm99hCcb%<5;@VIayV zU+A9Nj8gA)8kt{c=AwWqYqUC=_cq?KbVuB;(Jax5SBS?fOF);QMcLTC#^AqRlP=uS zDs|0oP8wKR-+do3UsGVk2e@NZ2zDhAY;75bVZA522&i_klgHzeHAypqH+@?!a9Qf2 z70;tIY+RY}F4Yy=5$1rSv*&c$8hR(^;SN&9QBZi^o39R-`nB24F$+9HZ4Ez52bp4xBDZdgR#iYVZ;d!DK8U8#{zq@y zVKLo`msc2}+OP1Jt zVt$U;HFamN;7_X`Y%0O9SD+Gx{AFlNDN$xB>Z9eGIT=`+0pVP{|CeT)>6sw9B~>*5 z_N`fp9pPeJ(>pn@kjzxpD9$N&ZmcWtT3@eBSR^^Uw*qv-b;uUrraH)%*E1t#P)NO8 z2YJ|B1`EtX_+t!fbXmVTwa$0kP>O;e`W*UqZU0P3c!&WN?$LN^dkPBrqO#|}u8Uyg zvMiB4bF*-?<~&CvfY9O4Y!18C^0A?o7IpbZdT+D>VXtbGrv-P2$I4U$fw`pdGrAzg zO^Q2FBx#tf@_Yi^&Xx`a2S$JZ;G=Iw*<`4*V^_P-Ee*JNE$I-j2wKcIaCB|IXNVnM z{xLykrsj@n1UukJO5)cM@fZKs%U)R zw*dhK#s#0Ngcaz#r*oQ;x+TGq*G4FVsl(W*`IK0r3RIwEkS^?k4Kg-seSe&on7%{* zGBf+?0f@QrQ4eT^#jk4U98FG`4^W@C|uE)CPe1EE-(a{+J+LpDVADM+D-s8R^%|B4^vbV(Oz>r z>pRI>k1CLTMfU=OhKa+Gpfpt#nFlopxY5Bgr$GUBbExkv2s+?8hLa8WQLA1QZIXQ* z3cF`_B=-?j+~2#yw{Dr-OgC^)wo7@LL+%kfCq z^GIaRT)tJ^nvuLM;_X->=JC~vayQ#C?4DE0GV-S7XpOE@|F<3ELfB>XNJGi6L?_aZ zL@5~+lQjS~vs@u#Ew-*hS53;I<0+_LkNZ;V>aDo%aS);JfZ8r@VDrmA zXveM~Zy)qaX>WE=Wn7(sO2r{_IzLeTqj%@qC8~7+H++(%09NfsZ)_z0mYB4@%aVi8 z-&%^o3F&fj#@wZPm2ozn2<-#7reL%2~{NKC|SNGb0#)VoGkf{ zb$-hD@+rdwVl6}V>+%D8Z=C2n1nU#xDCr!>mEUk<5<@DS32U2h`3_HYUnH|a{wP!g z{+fAmK2MI*x)$q)IQam!0y|=t&UYCUZZG+rQp$5g2iWQoImesvl(`ZF;|qk1d!bH!7{pF;bI zeOs4dP-O0r)ZF4|>*qUm5ulj1GRCRWlQQH}@4Z^SXVFcY&8816|AFBS9qbH6c&Kz+ zBexqR;snJHlX)B)hsi!sAS45RJz>|(j8oriynv2lNliD;gYf9VJ67hnmL__U255<- z;P7C{ihjr$zmj%y%ti%BTP9a*vu>CuQ!#0El-UmY)?}k-e;F|OtG>ly!auzn!ggT>2l)@2UKKGw~T5iu`x*OKEHL^d3o zhC}Qja&!rZS$)p8FFN%Rptj7KkG3**t`wv-1El=I!QJJMsD~$JUYTmwd>aH=UX=8U z%234C*ww6%g-s_Hx>QX5%cHRT)rh>lyo;=pO4Wjytx03ar5@B5a=?PPVxAoM3-P7y zBpZyGfm3UZyGtvh)5-yhh+QMca55jkBRNgDrm`Bvdqhg+JQoT9^eD$0*+>F0>-n#p zoE6NU1jKET^ZP+Kegyc%8}HVKvW)SaXPHA&eN;CxP#7DHeexM-|9u0;XGHZortA28 zbIV3JVX8fRN||JLK1Iy7+vQ*p#Y2sfs`5>T468Hn3kQ*YAs6GIIo$|r0 zb8X;-wO;)fvw=n*&}f)^RYz*t#7sLV@zxgXE%X*k7$Ktn%(quIT0`Lds62cFmlCyP zc-#z3!>GNq0JR6A=QK|+*De)bO$PMr@mS;PGivOVn<_k*Hc7yFetheq=%K!gW6@-h ztrBs?l);2I(^S7g6GJPl{cCgkx)~wGBdEhU9qTi9r6!f@)LqEyO9E%0>dHDVT=kcN zTC3%Sew7ofKlHfqVh=LrlC5O~>_|mgaTP2su=oZU?M?gggUbRIJ5Y)J59XZoVoHin z4%wwAq=Rk7LP@t;mIINK-U@Xizln!2tHJl}>_4L7s+C`9L>s4fY<8e*M`xrcBdYod ze5{tdL2>*q23K5-Yh4IiJUvcH2*4Ttmo}_EMC`&5zJ3hP3yx>;&7_q^ng9ch-UXeI z)0maplwz&TQ%ii5F3xt40D2VTARc+8-zzhhvE~rSKKF&&j4LZfqDvC<;RZ;q-wWHA zo)XFGxX)ryj+U5^OoL@u_EQ@nG0rJsHXOp|m?PZlD~rviX&vL5xbH|>sIaLeurHGW z96K+u)6+oK+d@Zbz$T(E1_|4BwifDSIa0ztaiFp!!1k?zzKc!t`yp%}>j+7Z3sDQ$e}9_>JNmslfcN!bdUkVV9r%d{Ab?*`Qj`Id>6WIF z{N(9KK#`UPGGI=Cx52afb%;}5n<~r%;nUZbPZc)If(hDR*xX#sqkzy9M>P~4Aa4AU zftWj$|K5Wq$0G4Ctj9cNqdSF}|HR}Es}OI_`QN1$F#KJ1Bcp^AW@~={i-x#+SiYKE zHkdu2Hvsta0Vs*qjj%rc37B@Hmds0xdB~S36xJU(u(-%ZKE{l~;WHfHE-9UrO_SpE zi01@xfl|aiMAym~G#Kw;qJJdy1FZSMvTZA-X=Cxc38X!szR!=am3F9cC?(JQ%55T~ z7}CIGug~GECuOT^(G?9d9N?d@i9kAurQ&@8Y^ioQF^)6;MqCyBA9l_#%ls&gU=`Gn zOTN&^4pGJ2UGaZ}%r(DF!kHtcV5U5DMZl3b53l_Hcz+%x0{tJ|G4mT}^q!(GRfiVFxO7jt{J+Rj15M$FW#M z1tHmjQbJQvkBX#Ut~0;H%#Cv$Dh5al>cCoYhpZY!HK7`NUpN^Jl2?Wz zl|))y8&iQd6PD`pgzn!qta_yLGSoEuAxklbb!>ymdsATMsg)Opc%RxPmNAXYg}2&s znvX90^Cl?CJz|e^`(WTU_!vK7SZkc$UgO=~e?y+|I;yi88d2ld}=RqD+C6 zHjBNl?;8i-Fg1flP6H6F(9jefX35rqP$9wS9^i|DR$DU|n>&JV>*i>6VaIsWJXpQg z^Zy<5+FOS&Aff}CaX=xLUJKs3DCn1X!yNii)i&G6*7zYY4N8?qF&2uw1hgWXnv1#g z8Bhth$vP5-`o@Jnvpn`|LOBp!5B-bx@V(5M=tt0yyEA9ULmrvbF>U5G0p{JL)XO%Y z(RY2BS$>IaL=3L^!QwjQ_K%RWb($b|L8WrSaPK_VToF{kKbGJEO_)wn`%vIK?4Aj0ll@(8-m7XpQBo7F!*h1Zxt76>gbohdP=2P{(ZEv9Op07m0tl}? zw*G|PGw=~9g`rB!9n@Q;MZM=1miKm4n2(GKEI382iEpF9$A|lh4=}2=YwQHZF-+LU zm%kDZo7^>*^gipoKy~CCQ&E*!*o31xPY=)%&+Wvtj#GDW(9dqS0m|kJ;6_&H2&BRUnte^8D5Ssi)OMK3lJ=gMOc9;>A;$CHOnK{X2eX=yF z6RLG8w0HyV6i}M2D`!ar%vUtF&B=&(1K1fUk5rH5Ht9F@8-JJ!($#u=eTM8gk~D;%af(B=n+&%>k*oIRcE@_$ zIWN!XAu$5(k)WU1AI@x&%hx)E&WSg4(WNlj>Y@F4GFg2;E_0k!Iy05EyXkZ78yE~N zZF{F(+PnN*MSQlRA-uDK@Pz080&$orZ_g=&xI-le!>3$WZG)_LL%@_>$3&({WKwYy zGLU+CcRQkTk)3>eJm+bk217uxNotpi&#(B_MlV&ypX3t>Z#5*DGk%;pz!$3%EVf8R zVNxCckzy{Kv`(-Gj7k3=Bjc1?-2V4d5`%lo2@C2TXu+h*U<7TSU1hp(d2b(7-N2v~ z*HKz3n6|E>ATRlVmly+oA|Ra@Me#PC;iG9<34BnCTfCcG2oGu}i|)7Cjk93$VKY4R z;}toy-!6`0%!|#AYD==6eg?}361zO4Qr-_og z^kt!6xsINuWa0&%lGTia1Vx)F*Qt;;J5%n&gcu}QOQhhAnshCiwc>p>&WNE2wi>hV z9Cv#Iophu0m0nyj#m*_%kuB?=2GQ-EK#IU>-m&^ zu)b?rHDPeb8h97g+fm4NQ!X=rJ)Gkn4Ck257;E0K=9sMAp-|>1=@6{^e|H`CV70aP zR=m8tW}dTI_8~NP7cHJoI}MYZCNni7Q}R1CZ?oW27S4QDgzR|Zaqc(DoGNr5l*X?6 z?|D`VpnqNf(~YCp+hzh0iH#GiD=A!iK?DbPQ+=x_^uU*7QaNYaRa!KkiS4D8vbzG; zblrNAk+ewoI1b+4^1-_7Dm~pyM-a8PCg#*q(A#2wu}4-SsK^P61y{RroxLnD>M>O{-CX1vZPa#-6Sm%)(pQSg;cH?7 z6wO0;{R4>SDC48`Z)YjI*3rPnF_0Cq@vvPue|#hqllM^}|6*w>X#2 z1q7Fa-LK{QhAdpZLBDkHUaJgYr!tm&~_ z49r58+$IdgFH~?jAQxrD(dofMsmog{DjPJmA%h%LVvhk2l~MR{nLD zcHNY%wgkt!gI!H(FQ74QA&eAZIo!B(f8i;N@XupAYF7n`TgL&ai1x!?95&uw+c0Lr zIqqC2!TUvzETOA+**6G*1c!J7mC6$L~ zfp2SJ?&oi(UxpnK;3h1b8FCF89!SaJ%2IHij-g>Iu!Jf3hP2m}4Ljiohht#wans6v zq-(({1KetRwTC{2&~eg1+KU8B44DUJdlHdZ99&cT>w5n9gVlltaRpMoy$hT$KUhG6a5Jrz=Yn3gY7IU8ncf##V6k0U`I!S0M2u`K~VR-9a>wOWr9YXk=q19D34r$1Mq{lnIzsln- zs+_{Q&k3-09vUL8E{p;`EXak*P{ZsSRajErQjAbj4OcHm>R31JU2Zl(+!i^6?c^H4 zJjy~w*YT~BLa4=RaA&uL2BZr5b>y=)^z#m_Zk!V3Bws;}yM?%@eb}*%4(k=EKlB1< z?#|&SS7hq4VIhF&BP9A(6YXJ`SCiSlDq%dBIXJ7{J1L$!rLO({}H5mir3xyii;32%iDT z8XkMcSqMtiYbd@g6Bwf|hhcW=kSgB)tdjil)Y#Ic~<2 zba^gO_NhTC7zz|yj9^-Yh6(k;u?H|P8n>ExDm7k48|dJ5;{$xm*d=P6=j*F8u(hpN zbt-1X2kE^Q8F}NIuPVcn(Rnd{PF~mtEskXMv~HwtzQv7Fo&ukOBA6Px^@N@8q%_`b zC&@Wve0>Y5^FQ`51$E^nfZOY>aNAb)%WKHt9?`!I*aRks$0fGTD2wu%51U4s^wr zfq%g32ra(qBYgV&jytG4%I(H<<8?%=jbuQ}UkP-TY5lbjJdw_tTjW)Wl;M+DQ+0AZs?qUU_>ickS?jv_xCfX4eA8a7x=Irp+Z?AmO>XWgn&x733=Z@5)*1|v5kKA z?h)SVcbH^bj6FI_#5+P3e@qMMJ-rQ@cA@A?6?_AEacb8GR{Ip?JQ+v0v~g>Hp>s#0 zL61gewe%vY4?e&JPdY14X#sSD3*+Kb5nq7N!1$QsXm&LiTRP_VG0;L!ZE?x8(Hp>8r zthijM70PP(gP6%AvwP~UVPMwp@td4PU_trc@6^Pdy%?433@o!o*iIAxeLf(>o8+|x z9y93U0vu<>i`dm}oUxo?__g3`dER9R51`rqCt(o5GJ}g>IkQXwO{@Oo7D`RpVn!UE zCOP;uQ1mPLczU>q$TN31G~>tYeJfpg|FJ<~eQ@R+={188Ik|ocV5beQ=S1r#%yMxl zGX54m4zNw3F_^*Asj6vXfpA04s}MJq=4shQAKq?pua%zODU;k4oROop@#u;>8%}FG z%3tI+7w<7;jAhQW>6nei)dVK{dzuyr z;*ue@DFF!0YMs?+bcU|I{cdUfnoDUzw-g8B_;)S_zN0xSZ)cAz+cAMqcpyjT7k1Ya zNe8r9{yqycKY9EMVtclnT`w*G#-v!I^-i+^0}PGI5oiWAXylfMeNU_J6G(cWpwBuu z;+7srB=5e(mzJJb+^5HyAOG~-lmB(n()c#_SiNGCMilYP1OA_+lqdrce+thRe~Lha z7F0^<%7dTmXwK)=K?GC$eTPAH6zx0Zi!?S4X1pa&=W1tuBcJO|D@Ij*ynFZdUQ#V5 z&$hZw>6MmXulb38tgAS!H?a{#BvwI?)04t|MQS;Zg+XZcQr0ve{S;j&DOcO1rQAy7 zH7u7_I#r;5iyuFK=24vv5okZ)W2LT5$mU_abX(~R!ONz>ADcRzmEUe?&}mMw1-k(i zLseQU-m14SG0f`{Y0h<__0HMZn{FvI*~(39?lL?6dCRUBx4T4%KiYSq_*Iepm8x?3&xdzvFD$LKl(+q9(5~{usiNF3kSWfZ zUSW;UMkby1^O@7L6BU>_WDAmF-;&mSn?)?2P5`A~JMTINJjn?azo7C1nnQTrAo9j= zS&|Cb@F*u*sma)<@|WTE!~V#Hequ+Nd>zAmM7weUdaTA>+_YeXL;K|OSwE9D5%H>R z`e1=_LsrmyVfMV;ubld@f*R=#FWMxS;(G(ISQTeonqVa!VU`>QWI1$OVN=|je$OeGk9-Iv5*Xc@bgeCbWigL71hHaIwg_lBEc~s?^q^p&F1e1(vvfXftjgz8OnP}583q&x5>zbs6+QMAK6{yr(F9QIB%7H=f(G&hUIVECBc_U?7olqxy zzM3mVS}_cgcsSFG=pM)3{Npm%p*?72biiHyV5GGbiIrNS>j0&>nVWM`M? zyVl&#Ha`~8JbzgohOeG5TQ+fUC{vrT!$*_Vswa@purD`R16@?Fz)=2^u1cQ^_ zG3xvU;ST@*`KGWRvwqEv)rsGyPe8V1y&!dFqm=o~8trk0kWwLyEVcXvJ{BGR)jd2F9sN2|zA6u?0m3b^quPn4A&uc~1Mr{Ija{1&p}Gqzr-4jr3Dim4 zF15MaR$~to_TW|6d77HG0yhv+>DP7z?mUr}*d+<%tM`LDZ!k)Af&eHQkuo!!*VudB zXfn&n1pl|*_~b;2fsz+1i~v3u2HB#*QXw{>Wm-HnMB>!~Nq{+z%hDLL-d9_*VEtlO z<1#&Tol+LSA?*SCBd_CJ3tOXFe=Ug*=GbsFt*Zb`h;2|J%(%G9ys}k#W|r{w6#jFT z>4gP&tfw|a)$UNb%~*ED<#i#{ zSyK6-64COMVo#J|j}}+TVSs;I0sa*TsPCR2Kf;GX+^@M{H{t3&ws+c_l8RVC!gt!?sAYb%A)xc=LK}%4VdAw3Vf>a8=sO%1T7N;I5`r2@)?KF z(W{^y?Mhxf*e94a4l)o;kR!4J0y2!seAakQB8QT^kT$@%F;}(!#&%5U-9I!}dtE2O zPg_Z+qg2*ja2C&!Ur$<}sRl<&&S;*O>Eicz6e6=4WSZWX#x>SCn7+zg5bMCf?JzG+ zB7tKI`M`LNd-?)Ao|L4h1|^T5fTWI_xP5*Nf+)5-FV+_()AjSUb%-#YuMmxa%~Ei) zJf6m+$+K(x3uOKCD>5d}%qZWSfU;m-fi3&y`vA_fbcmmgr!F7NcE zN<`O#n6=rLc_uEsm=|7J^3?3_Qy*Zi+t?)1)Oa8U&k=-gW6Z-qYs^nnKS8m$vB3G3 z7OjbSB{qNx9p8HzfPMXb-L4+R7pKUet6xx&W+-iXBsKBXyVx8q*;NzmNI(S{p>-i& z$&Q7G$OKCGP1frMwp|ezIU2_)&&J79G$oLhQLBiLZ}fS}Xe``XI2zcAAUj>pUTnlv zyI_{uPB#_); zZH2Uzwb38H4g&3&`JYGeN1;qw$dd|u9eg_XPr@-SWwmH`zy-Z;y*9gD_j`(oSlVLK zj(^&~o%)~wK<4cr3Nl{p_c%d7EHC#YBuWnO@^3b*=_aG6aopR zzHeq56PBTdFPk!vg2U(G^{@`A==!AWTC6EQ2F{{Fh|-P+j?Ai+H9o7~s8TTv9>|bM zcs7pgKo6d7EncOqzMUvhnNEr2kf0~y2$E}~WC9^-11Lp*MJzoy1`J+GDZyGVY;Jq+ zB6z$-ZN&+BS3hX46a76klxIpf1XW^PMd$%(DGq1uuG&kT*iwv<{JOYw`Wcrte%453?vI5v|HY@g&=7mAW_fln(0`MovSgvt3a>@oEM;WG zJK=3{{~gLCW-#g1>okuG)2H}QP+)~tTgurL2qH+U=io-5f16KvYZGXkZ4W`I_#UwX z=ES>;Fo#VZXKLkbBXic`<@^DrN0r@~*tYv3LQ@sb%CNfCcpVK~Wy9!^VUfyD$6~l) z>z2dnvR>cZ%40%%4t`mod+MrL^17TF%!scdV{rl&HiJ6xd3WdhG3m1+lbHBf3r^y) zF4WCqX0%+F=#If1{7F=`Sl23~?dSi}@++g#FPq))E4{j%1P?+H+T>+J6HRS>O*P+k zx33S(UrAK+v&9)iQeQ$JBtAj(`}$e9jO^r(nygVuT3K2b{q{>E}tjrpQN_YCwq*S zQ~4D}Kak6Zpr=QWvUvH&4pWC!9_`?6Csh%kPHl(YzzQ<80LO<~dtuope+#Y?4u-yJ z#JiQZ?RXLRaU^pdsyG1yruQY|74b~oY83kqkSgL=sDOfE7jAY0Vpof9BsaLvSkrHO z?y-#rJM!s6Ft14823ZvLAMvRORmcZ}3_3Te(`iJVAcrI12dt#o6!7j0o^DOou`72U zMegFDnWTIGOyotPP9Mc@jz6K0b`f94k0s{%^8tm?WS2!MK&Cc(uu43&6Gej{HQ%b??~$Q%>T*rE^pg93)*hH2n>F z1x~&(sJeoJ>#vF)?xQyG4F2TJloaHbtiYm^qcU~ zW?7x=&xO;|dC49+Wd+EceoRgut6Eb&vXd`!icK#pb4QK7a)jyWhx(Snk_0tTD?P@S zF;fZ~|3uN5Me;oo<*hgw0^`?gAEt#K4ODQ5(PgrIp$Vh^(&Y+DW}E-q*&gq3jJ0C zWA!Spdj7|kUp0gYQbc3IoO(WkGT1ZjFa`KtIUJ-@8!O4te6HX&2tqkTLkM8Sthkp^ z#hCKLI@&}lEJs9l;c#FNLtR4~W~9V4&dIYWUMaghC%c;%18cv}XV`G!VL?6rJC#m- zZzw7&qfFOzc-GpV-{6X$0l5z^o23c-;7@hO-%R>FCxZPOxwJ1`P2~LsM9N4=MS3C+ zM(K#*oC1_s?=ilo9qX;Z9}q2^0k;Lk-I-6#D+JD6+;F$dLiojF0TM~>{U<)_YxI_% zgqS%9l@oKxl7LL%@?L?FoiocbBe8-~Q0^dx4YB$)9EqNRG7B05Q;`$uL|W*F)WOeWe5L$iTpE|BU8IEDs84 zfBAhX5SAN4bL(#Px0%Z34Tl$709{311f7%`Q&$o=5b)6Eovr50Z)un9(o$t6xD8IO zVwFF_z)7E#yi0iPS-WL)N}oo2j&x`LJ0|c62%&cn^9Yz$LFRYYj-q}pYvARH%L%fk ziJ}aTqv~-1-Vh=0N!;W#+ZeHLEN{5YWg$~hPv#_oeoL=51+{mYd;Mv^%_!!f)_#*hM~_#QgMpzpU3Dl%4Ju+f8KJB+*Y_3yzIF-Em~~g$Xn64nqrMSYFq z9w*x|>>@TxH}~aIep-ohfUtjRF5M+nY))@<;T4fKuXVj&;oSxyAfWp9o}9#9gHkp^ zH6qGtk~G4>p7?{{*G);fsCcB(h62rH2^CaOIrlpMezd(liR-NZFgk}b#nsI14=iW9 zSwpI++--1MFiP+=pEl0)2P)@4Xj5o+zcBq2r?rI^c*(sQA z1NG`Fc`ISBVPDhX77o;v2h@*zYiXS&pf{S1e#6G6IJYU5IPsEX1mYAVG+l<%Knr(o zC7W!?e+hachM;6Dl_mX?Plxv^Apt&%+wXsWg69bGI8acE;6z+I>)$1_PqbOuwsvmp zjDXM~z8%F3qb{PYRUk%iK&Sef@n5bm^!s>!MRR7X|49^I@SK55&xMLGEq7sjyC{5Y z1#Y?LpKH{K?|)zS3L*FzKxW?_w$S>xfb^-F0i3}~2fId-IVeN+0kSYu=RGJ9MliYJ zKD&sbWYO4{yRb~e12#vQP&vHQf*wg^~}R$|c{+wI+=1&N=V58CjfK8??vKUpHFiu;VMX!7Z(n(1s9O z^PM6`hTD@I(8S+o{|o%CXE_mw1$ZFc%to`V zYkOTkQVoM@YZH^w8}}ZHvYKG!C%@L!)g|~g@zz5-{2YPP3Kx`0p4rHhpA4HSP>*lG z6O9Efy*0JUBJt!@OU457^W{6#`^mrVQqnWU2H8O ztl6I+TABGKNOkn~XYw^d%=fQ;h-^dY69a6vmGQ&Q!8*-2#JoqL$jwc#agUs7*C_caDEviAsWWZw=Km{9Pgc{@DCQ7bpeY}@qF|Gul81l}l zSAkn2=M_y{S_VV~I8Tb@f#vH$JlDssET6~|%9JrlGaEyH@iqS>rfV%&CP&0*J?{%?E(vH$2H=8F;<}T^ zT1dzNEYA&BJF{rek{|wt~o*8$<+b&kX04yuRbazp%ZoC%$G={SOCn$QA;Q6ZZk|W&S zw;dJKmY_G^&thgn+`umE7v8IWn^loo3kgUX*N(9tBB6@jh)BqD`MWX&aDMuCB|LLq zPD9H6j#1L4G7a2+Q}3$H|8;>64zVSz(}#~q`tIk3?k2qki|j<=Vrd>i1OcWIG`2=m zxC$2%)TSpC;15ae+OOdCr^vlK77{!48b2}_sY%sZrL6iGE-O3E@T2mzh-`#yT|x4G zSk{SJ6{41cv%yQzkx}%^2C(>PzGNAzDAL$0CfC6w9*Hx^jD zFWzj&e-7rbRq29{s9}&phce_A;<$X>)UsDbo6s7fX1KCQo@g#Yl{q-;N)Ri_T6?eu zz~Jpgb5CO(b9?|$h+PKz^5m0y1U5`Ud==Z^9ycqneA_O9c_V5o+ZLy= z2YiGJ6OJz3~VE{7|QjA$>WJPC3bD$^QNeYsdQC5S%!8hH^EfsMqVb|mDPW~E^NL7 zI&ReIUKp0=>(53x5*J6ZFT?S$)_0fwQ_GhY?6GJC!7;q$)X@Gg2URTu>_T^(h|N3h z<+hm9{VF(G&nHPK;Z4QE(94 zUVb~~L_CTi-u=o${f_8A@;Ze`z{ue<_lASuk8?*Cta1u?7gw+;@qRr$8B7~!a)JhQ z1QYlqUEeBpOa7RFXVm&i^`mSpPV1}R?_rzV#Eqc!8>-DXxvx2O#St~al4@u2zqzQe zAQec`@lN&kg`^UXk2+3s|M4Rn(u0 zA}xy}U(`k*7M4EPv#Zi2I|I_4mSn;q(*k=iem46t9RXJ~G>u7WdG4(zX&>X09#C2UGY&&1Ouo+h z8DyWwhuNz&u6$KJ2Iqiq^>eDff@BEs<`w|jHcd{YVf~t#CM1epj}(R}y%72V(2aov z;?w4s)AHg0I=f;kCB2kNEe#$8D~hov227mwUw&3XNs`=y`wR*2=-kULQ7*zudl+nI zE|VEQ+i>7cvA6shJ;d!~x6;dOwHD!FGu=)UVaJ9gLjABx>$xYT)S}=M-KrV(B_bNb zheZJswJ6NmXbfE!MCWHnFE{q2o*({B8bds|v3JkUK-YJ+1n}V!`I`-X(W& zKu1|I?tkwxdd|@sDpY7&m*rsaXijfUT5u_0uVOR3S(JO{n{qM?7if+jPwA$D zJEtI_ggxzXDk2Y^o{hgu0581@US4sB16Vm1Dbx0UyQAs_r{nQUKx4XCVm`Ul*oV*w zoUThVIJRZ(gP6dSHk1Iyga-x3zoyBJa)-H1EX6)9B9tpRfd6%mv56tQ7)2mYus zYLRp4e$9{F#rL0))!V!Q)t6++V<<8)O9tPYfbVI7X`-a&vtLT#P!@hG+jJ%&$ASiAKd* zJy|9L*#XH4{(sQc1w}Le`V};X;jI2i=BnkGYV=tHg9z8+7NaoQp5i$>TQsc1-+7_> zW>5Rd2|@`7K0cR_YubwrY99??2$YBvlmm+rRv|8h%7;ynSt24k6idAi%#9RR*&KL} z^BZ}IuzJ*=OzAeZxIKAn6@>~j@O?k;0{&&OY!x^>tRQg3fph<@T+&R9zG&@)w1RF)`U%?MDhM=BYw6Exq z9;W9Q=-B(#zy*94vBJP&s&aeO;4poc0$q-U zt9*LE!z!5=^`1Q7SnlNmbr!@1lnl*eQW+P`D|$DmlGI>09^H~CLIKv5UE+{x`uM@c z%z4u=#p8viLxA%E#k6ri0XvU+3v;%Jt`(t3KN#%FYaiMrXQ}Qd6NH5(!URoe0ucha zz}^0qT|%FCQLapvcSaZ9mg~Eiw8DRjMmUGpSv= 50) do={\r\ + \n # after 50 * 0.1s delays, it's been 5 seconds, which should \ + be long enough\r\ + \n :set errorMsg \"New folder could not be created at \$newFold\ + er\";\r\ + \n :log error \"mkdir: \$errorMsg\"\r\ + \n :error \$errorMsg\r\ + \n }\r\ + \n :delay 0.1s;\r\ + \n :set count (\$count + 1);\r\ + \n }\r\ + \n\r\ + \n :return \$newFolder;\r\ + \n}\r\ + \n\r\ + \n:log info \"Created function \\\$mkdir\"\r\ + \n" +add comment="Certificates CloudFlare, Quad9 " dont-require-permissions=no \ + name=CustomUpdate-Certificates owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_CloudFlare\r\ + \n/tool/fetch mode=https url=https://developers.cloudflare.com/ssl/static/\ + origin_ca_ecc_root.pem;\r\ + \n/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalRo\ + otCA.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase=\"\ + \";\r\ + \n/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalG\ + 2TLSRSASHA2562020CA1-1.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n# Quad9\r\ + \n/tool/fetch mode=https url=\"https://cacerts.digicert.com/DigiCertGlobal\ + G3TLSECCSHA3842020CA1-1.crt.pem\"\r\ + \n/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n\r\ + \n#:global AmScriptsUrl;\r\ + \n#google\r\ + \n#:local CertName \"GTS-Root-R1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-R4.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-RX.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#internet\r\ + \n#:set CertName \"ISRG-Root-X1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"ISRG-Root-X2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"Starfield-Root-Certificate-Authority-G2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n\r\ + \n#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 do\ + h-max-server-connections=20 use-doh-server=https://security.cloudflare-dns\ + .com/dns-query verify-doh-cert=yes;\r\ + \n#/ip/dns/static remove [find where address=1.1.1.1];\r\ + \n#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 1\";\r\ + \n#/ip/dns/static remove [find where address=1.0.0.1];\r\ + \n#/ip/dns/static add address=1.0.0.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 2\"\r\ + \n#/ip dns static add address=2606:4700:4700::1111 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip/dns set servers=\"1.0.0.1, 8.8.4.4\";\r\ + \n#/ip/dns set servers=\"\";" +add dont-require-permissions=no name=script1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + tool/netwatch/add comment=\"doh-fallback, doh-url=https://security.cloudfl\ + are-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Clou\ + dFlare-doh IPv4 1\" host=1.1.1.1;\r\ + \n/tool/netwatch/add comment=\"doh, doh-url=https://security.cloudflare-dn\ + s.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=CloudFlare\ + -doh IPv4 2\" host=1.0.0.1;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 1\" host=8.8.8.8;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 2\" host=8.8.4.4;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 1\" host=9.9.9.9;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 2\" host=149.112.112.112;\r\ + \n\r\ + \n/tool/netwatch/add comment=\"dns, notify, name=ns1.unet.ws\" host=91.192\ + .189.2;" +add dont-require-permissions=no name=script2 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n\r\ + \n:global InspectVar;\r\ + \n#:global RouterBoard;\r\ + \n#:do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on-erro\ + r={}\r\ + \n#:global Resources;\r\ + \n#:do {:set Resources [[ :parse \"/system/resource/get\" ]]} on-error={}\ + \r\ + \n\r\ + \n#:global Updates;\r\ + \n#:do {:set Updates [[ :parse \"/system/package/update/get\" ]]} on-error\ + ={}\r\ + \n\r\ + \n#:global PkgUpdStatus \"undefined\";\r\ + \n#:local Update [/system/package/update/get];\r\ + \n#:retry command={:set PkgUpdStatus (\$Update->\"status\")} delay=200ms m\ + ax=5 on-error={};\r\ + \n\r\ + \n#:log warning [\$InspectVar \$RouterBoard];\r\ + \n#:put [\$InspectVar \$RouterBoard];\r\ + \n\r\ + \n#:retry command={/system/package/update check-for-updates without-paging\ + \_as-value} delay=300ms max=5 on-error={};\r\ + \n\r\ + \n#:global arrDeviceInfo ({});\r\ + \n#:local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};});\ + \r\ + \n#:set (\$arrDeviceInfo->\"RouterBoard\") [[ :parse \"/system/routerboard\ + /get\" ]];\r\ + \n#:retry command={:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system\ + /package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"Error\ + \")};\r\ + \n# [:toarray {\"section\"={\"key\"=\"\"; \"value\"=\"\";} }];\r\ + \n# [:toarray \"\"];\r\ + \n:local arrDeviceInfo ({});\r\ + \n\r\ + \n:set (\$arrDeviceInfo->\"devUpdates\") {\"channel\"; \"stable\";};\r\ + \n#:do {:set (arrDeviceInfo->\"Updates\") [[ :parse \"/system/package/upda\ + te/get\" ]]} on-error={:log error (\$error)}\r\ + \n\$InspectVar \$arrDeviceInfo;\r\ + \n" +add dont-require-permissions=no name=AM-setup owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_RouterOS Setup Script: AM-setup\r\ + \n# \r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n\r\ + \n## Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:if ([ :len [ /system/script/find where name=\$ScriptName ]] = 0 ) do={\ + \r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# :global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n# /system/script/add name=\$ScriptName owner=\$ScriptName source=([ /too\ + l/fetch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptNa\ + me . \".rsc\") output=user as-value ]->\"data\");\r\ + \n#}\r\ + \n# For run from terminal:\r\ + \n# /system/script/add name=AM-setup owner=AM-Setup source=([ /tool/fetch \ + check-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" ou\ + tput=user as-value ]->\"data\");\r\ + \n#\r\ + \n# /system/script/set source=[ :tocrlf [ get \$ScriptName source ] ] \$Sc\ + riptName;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local RemoveThisScript false;\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n{\r\ + \n :local ScriptName;\r\ + \n :local RemoveThisScript;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local AllDone;\r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n:log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :put \"Add Schedulers...\";\r\ + \n :delay 1;\r\ + \n :put \"Add Global scheduler...\";\r\ + \n :local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFu\ + nc; }\";\r\ + \n :local Comment \"Setup Global Environment for scripts\";\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] \ + ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-\ + event=\$OnEvent start-time=startup;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Commen\ + t) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEve\ + nt) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Add Update Script scheduler\";\r\ + \n :set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\"\ + ;\r\ + \n :set Comment \"Every Day Check For Update Scripts\";\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpda\ + te\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Commen\ + t start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n }\r\ + \n\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n /system/script { run AM-GlobalConfig; run AM-GlobalFunc; };\r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :set AllDone true;\r\ + \n } on-error={\r\ + \n :set AllDone false;\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$ScriptName . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n\r\ + \n :delay 5s;\r\ + \n :if (\$AllDone = true && \$RemoveThisScript = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :set OnEvent \":delay 30s; /system/script/remove [ find where name=\$S\ + criptName ]; :delay5s; /system/scheduler/remove [ find where name=\\\"_Rem\ + oveSetup\\\" ];\";\r\ + \n :set Comment \"_RemoveSetup tmp scheduler for remove setup script.\";\ + \r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-ti\ + me=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$ScriptName . \"\\nI've done everything, and now I'm ti\ + red... I'm leaving. ))\\nThere will be an error below, this is normal.\");\ + \r\ + \n }\r\ + \n};\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub\r\ + \n:local FetchFile AM-DOHCert.rsc\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \"[usb1]/scripts/\" . \$FetchFile);\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/233/efe032c8\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 22:05:02 15.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 \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if (\$CurrentChannel != \$updateChannel) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel (\$Update->\"channel\");\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([:len \$arrDeviceInfo] = 0) do={\r\ + \n :global arrDeviceInfo ({});\r\ + \n :local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};}\ + );\r\ + \n }\r\ + \n # else={:local arrDeviceInfo ({})}\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [[ :parse \"/\ + system/package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"\ + Error\")};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannel\"; \$Cu\ + rrentChannel;};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentVersion\"; (\$U\ + pdate->\"installed-version\");};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannelVersion\ + \"; [/system/resource/get version];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateChannel\"; [\$up\ + dateChannel];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateVersion\"; (\$Up\ + date->\"latest-version\");};\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n\r\ + \n :global arrDeviceInfo [:toarray {\"section\"={\"key\"=\"\"; \"value\"\ + =\"\";} }];\r\ + \n #:do {:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system/package\ + /update/get\" ]]} on-error={}\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devRbCurrentFw;\r\ + \n :global devRbUpgradeFw;\r\ + \n\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global ROsVerCurrent;\r\ + \n :global ROsChannelCurrent;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :global ParseCustom;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global devBuildTime;\r\ + \n :global GetPubIp;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :set devBuildTime (\$Resource->\"build-time\");\r\ + \n :set runningChannelVersion (\$Resource->\"version\");\r\ + \n :set runningChannel [\$ParseCustom \$runningChannelVersion \"(\" \")\ + \" 1];\r\ + \n :set runningVersion [\$ParseCustom \$runningChannelVersion \" \"];\r\ + \n\r\ + \n :do {\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :local RouterBoard;\r\ + \n :do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on\ + -error={}\r\ + \n :set devModel (\$RouterBoard->\"model\");\r\ + \n :set devRbRevision (\$RouterBoard->\"revision\");\r\ + \n :set devRbSerialNumber (\$RouterBoard->\"serial-number\");\r\ + \n #:set devRbCurrentFw (\$RouterBoard->\"current-firmware\");\r\ + \n #:set devRbUpgradeFw (\$RouterBoard->\"upgrade-firmware\");\r\ + \n :if (\$devCurArch = \"mipsbe\" || \$devCurArch = \"arm\") do={\r\ + \n :global devRunning [ /system/device-mode/get mode ];\r\ + \n } else={\r\ + \n :global devRunning [/system/device-mode/get running];}\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n\r\ + \n :set devRbRevision false;\r\ + \n :set devRbSerialNumber false;\r\ + \n# :set devRbCurrentFw false;\r\ + \n# :set devRbUpgradeFw false;\r\ + \n #:set devCurrentFw \$runningVersion;#:set devUpgradeFw \$ROsVerAvail\ + ;\r\ + \n :set devRunning [/system/device-mode/get running];\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Error in Function getDevice!\");\r\ + \n :return false;\r\ + \n }\r\ + \n:return true;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global WaitArrDeviceInfo;\r\ + \n # \$WaitDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devCurArch;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global PiblicIpAddress;\r\ + \n\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :local Return;\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n\r\ + \n :set Return ([ \$FormatLine \"Hostname:\" \$Identity ] . \"\\n\" . \\\ + \r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location:\" (\$Snmp->\"location\") ] . \"\\n\") \ + ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact:\" (\$Snmp->\"contact\") ] . \"\\n\") ] \ + . \\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board:\" . \$devBoardName ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Arch:\" . \$devCurArch ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Model:\" \$devModel ] . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbRevision ] > 0) \\\r\ + \n (\" \" . \$devRbRevision) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbSerialNumber ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial:\" . \$devRbSerialNumber ] . \"\\n\"\ + ) ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"nleve\ + l\")) ] . \"\\n\") ] . \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Running Channel\" \$runningChannel ] . \"\\n\" . \\\ + \r\ + \n [ \$FormatLine \" Installed:\" (\$Update->\"installed-version\") \ + ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :typeof (\$Update->\"latest-version\") ] != \"noth\ + ing\" && \\\r\ + \n \$Update->\"installed-version\" != \$Update->\"latest-version\")\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Update->\"latest-version\") ]\ + \_. \"\\n\") ] . \\\r\ + \n [ \$IfThenElse (\$RouterBoard->\"routerboard\" = true && \\\r\ + \n \$RouterBoard->\"current-firmware\" != \$RouterBoard->\"upgrade-\ + firmware\") \\\r\ + \n ([ \$FormatLine \" Firmware\" (\$RouterBoard->\"current-firmwar\ + e\") ] . \"\\n\") ] . \\ \r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set 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 :global LogPrint;\r\ + \n \r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n\r\ + \n# :retry command={abc} delay=1 max=2 on-error={:put \"got error\"} \r\ + \n :do {\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using default s\ + ervice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={\$LogPrint error [ :jobname ] (\"Fail\ + ed to detect public IP using default service: \" . \$Url . \".\")}\r\ + \n #:error \"Failed to detect public IP using default service: \$Url\ + .\"};\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Failed to detect public IP using default s\ + ervice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using fallback \ + service: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={\$LogPrint error [ :jobname ] (\"Fai\ + led to detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={\r\ + \n :set PubIpAddr \"not-detected\";\r\ + \n } else={\r\ + \n :set PubIpAddr [ :pick \$PubIpAddr 0 15];\r\ + \n }\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n \$LogPrint error \$Name ([ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\ + \$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n: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 comment="Import ssh keys for public key authentication" \ + dont-require-permissions=no name=AM-SshKeysImport owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-SshKeysImport\r\ + \n# Script comment: Import ssh keys for public key authentication\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global configs or functions not ready.\"); }; } del\ + ay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global SSHKeysImport;\r\ + \n:global SSHKeysImportFile;\r\ + \n\r\ + \n# import single key passed as string\r\ + \n:set SSHKeysImport do={ :onerror Err {\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :if ([ :len \$Key ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass key and u\ + ser!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ :len [ /user/find where name=\$User ] ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"User '\" . \$User . \"' does not exist.\")\ + ;\r\ + \n :return false;\r\ + \n }\r\ + \n :local KeyVal ([ :deserialize \$Key delimiter=\" \" from=dsv options=d\ + sv.plain ]->0);\r\ + \n :if (!(\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\")) do\ + ={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' is\ + \_not supported.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FingerPrintMD5 [ :convert from=base64 transform=md5 to=hex (\$K\ + eyVal->1) ];\r\ + \n :local RegEx (\"\\\\bmd5=\" . \$FingerPrintMD5 . \"\\\\b\");\r\ + \n :if ([ :len [ /user/ssh-keys/find where user=\$User \\\r\ + \n (key-owner~\$RegEx or info~\$RegEx) ] ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The ssh public key (MD5:\" . \$FingerPrint\ + MD5 . \\\r\ + \n \") is already available for user '\" . \$User . \"'.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$MkDir \"tmpfs/ssh-keys-import\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Creating directory 'tmpfs/ssh-keys-import'\ + \_failed!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\"tmpfs/ssh-keys-import/key-\" . [ \$GetRandom20CharA\ + lNum 6 ] . \".pub\");\r\ + \n /file/add name=\$FileName contents=(\$Key . \", md5=\" . \$FingerPrint\ + MD5);\r\ + \n \$WaitForFile \$FileName;\r\ + \n :onerror Err {\r\ + \n /user/ssh-keys/import public-key-file=\$FileName user=\$User;\r\ + \n \$LogPrint info \$0 (\"Imported ssh public key (\" . \$KeyVal->2 . \ + \", \" . \$KeyVal->0 . \", \" . \\\r\ + \n \"MD5:\" . \$FingerPrintMD5 . \") for user '\" . \$User . \"'.\");\ + \r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key: \" . \$Err);\r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n :return false;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# import keys from a file\r\ + \n:set SSHKeysImportFile do={ :onerror Err {\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global FileExists;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global SSHKeysImport;\r\ + \n :if ([ :len \$FileName ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass file name\ + \_and user!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$FileExists \$FileName ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"File '\" . \$FileName . \"' does not exist\ + .\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Keys [ :tolf [ /file/get \$FileName contents ] ];\r\ + \n :foreach KeyVal in=[ :deserialize \$Keys delimiter=\" \" from=dsv opti\ + ons=dsv.plain ] do={\r\ + \n :local Continue false;\r\ + \n :if (\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\") do=\ + {\r\ + \n :if ([ \$SSHKeysImport (\$KeyVal->0 . \" \" . \$KeyVal->1 . \" \" \ + . \$KeyVal->2) \$User ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key for user '\" . \$\ + User . \"'.\");\r\ + \n }\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && \$KeyVal->0 = \"#\") do={\r\ + \n :set User [ \$EitherOr ([ \$ParseKeyValueStore (\$KeyVal->1) ]->\"\ + user\") \$User ];\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && [ :len (\$KeyVal->0) ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' \ + is not supported.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=vados 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="Check for certificates validity" dont-require-permissions=no \ + name=AM-CheckCerts owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-CheckCerts\r\ + \n# Script comment: Check for certificates validity\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 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 CertRenewTime;\r\ + \n :global CertRenewUrl;\r\ + \n :global CertWarnTime;\r\ + \n :global Identity;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EscapeForRegEx;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global ScriptLock;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n# :global WaitFullyConnected;\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"System Scheduler for script: \" . \$ScriptName . \" is N\ + OT SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Renew Certificates\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n\r\ + \n :local CheckCertificatesDownloadImport do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local CertName [ :tostr \$2 ];\r\ + \n :local FetchName [ :tostr \$3 ];\r\ + \n\r\ + \n :global CertRenewUrl;\r\ + \n :global CertRenewPass;\r\ + \n\r\ + \n :global CertificateNameByCN;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global UrlEncode;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :foreach Type in={ \"p12\"; \"pem\" } do={\r\ + \n :local CertFileName ([ \$UrlEncode \$FetchName ] . \".\" . \$Type)\ + ;\r\ + \n \$LogPrint debug \$ScriptName (\"Trying type '\" . \$Type . \"' fo\ + r '\" . \$CertName . \\\r\ + \n \"' (file '\" . \$CertFileName . \"')...\");\r\ + \n\r\ + \n :do {\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] \ + }) \\\r\ + \n (\$CertRenewUrl . \$CertFileName) dst-path=\$CertFileName \ + as-value;\r\ + \n } do={\r\ + \n :if (!(\$Err ~ \"[Ss]tatus 404\")) do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching certificate: \" . \ + \$Err);\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n \$WaitForFile \$CertFileName; \r\ + \n\r\ + \n :local DecryptionFailed true;\r\ + \n :foreach I,PassPhrase in=\$CertRenewPass do={\r\ + \n :do {\r\ + \n \$LogPrint debug \$ScriptName (\"Trying \" . \$I . \". passp\ + hrase... \");\r\ + \n :local Result [ /certificate/import file-name=\$CertFileName\ + \_passphrase=\$PassPhrase as-value ];\r\ + \n :if (\$Result->\"decryption-failures\" = 0) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Success!\");\r\ + \n :set DecryptionFailed false;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \$RmFile \$CertFileName;\r\ + \n\r\ + \n :if (\$DecryptionFailed = true) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Decryption failed for certi\ + ficate file '\" . \$CertFileName . \"'.\");\r\ + \n }\r\ + \n\r\ + \n :foreach CertInChain in=[ /certificate/find where common-name!=\ + \$CertName !private-key \\\r\ + \n name~(\"^\" . [ \$EscapeForRegEx \$CertFileName ] . \"_[0-9]\ + +\\\$\") \\\r\ + \n !(subject-alt-name~(\"(^|\\\\W)(DNS|IP):\" . [ \$EscapeForRe\ + gEx \$CertName ] . \"(\\\\W|\\\$)\")) \\\r\ + \n !(common-name=[]) ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$CertInChain common-\ + name ];\r\ + \n }\r\ + \n\r\ + \n :return true;\r\ + \n } on-error={\r\ + \n \$LogPrint debug \$ScriptName (\"Could not download certificate \ + file '\" . \$CertFileName . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FormatInfo do={\r\ + \n :local Cert \$1;\r\ + \n\r\ + \n :global FormatLine;\r\ + \n :global FormatMultiLines;\r\ + \n :global IfThenElse;\r\ + \n\r\ + \n :local FormatExpire do={\r\ + \n :global CharacterReplace;\r\ + \n :return [ \$CharacterReplace [ \$CharacterReplace [ :tostr \$1 ] \ + \"w\" \"w \" ] \"d\" \"d \" ];\r\ + \n }\r\ + \n\r\ + \n :local FormatCertChain do={\r\ + \n :local Cert \$1;\r\ + \n\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :if ([ :typeof (\$CertVal->\"issuer\") ] = \"nothing\") do={\r\ + \n :return \"self-signed\";\r\ + \n }\r\ + \n\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=5 do={\r\ + \n :set Return (\$Return . [ \$ParseKeyValueStore (\$CertVal->\"iss\ + uer\") ]->\"CN\");\r\ + \n :if ([ :len [ /certificate/builtin/find where skid=(\$CertVal->\ + \"akid\") ] ] > 0) do={\r\ + \n :return \$Return;\r\ + \n }\r\ + \n :do {\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\ + \"akid\") ] ];\r\ + \n } on-error={\r\ + \n :return (\$Return . \" (possibly incomplete!)\");\r\ + \n }\r\ + \n :if ((\$CertVal->\"akid\") = \"\" || (\$CertVal->\"akid\") = (\$\ + CertVal->\"skid\")) do={\r\ + \n :return \$Return;\r\ + \n }\r\ + \n :set Return (\$Return . \" -> \");\r\ + \n }\r\ + \n :return (\$Return . \"...\");\r\ + \n }\r\ + \n\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Name\" (\$CertVal->\"name\") ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"common-name\") ] > 0) ([ \$Fo\ + rmatLine \"CommonName\" (\$CertVal->\"common-name\") ] . \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"subject-alt-name\") ] > 0) ([\ + \_\$FormatMultiLines \"SubjectAltNames\" (\$CertVal->\"subject-alt-name\")\ + \_] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Private key\" [ \$IfThenElse ((\$CertVal->\"priva\ + te-key\") = true) \"available\" \"missing\" ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \"Fingerprint\" (\$CertVal->\"fingerprint\") ] . \"\ + \\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"ca\") ] > 0) [ \$FormatLine \ + \"Issuer\" (\$CertVal->\"ca\") ] [ \$FormatLine \"Issuer chain\" [ \$Forma\ + tCertChain \$Cert ] ] ] . \"\\n\" . \\\r\ + \n \"Validity:\\n\" . \\\r\ + \n [ \$FormatLine \" days\" (\$CertVal->\"days-valid\") ] . \"\\n\ + \" . \\\r\ + \n [ \$FormatLine \" from\" (\$CertVal->\"invalid-before\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" to\" (\$CertVal->\"invalid-after\") ] . \"\\n\ + \" . \\\r\ + \n [ \$FormatLine \" time left\" [ \$IfThenElse ((\$CertVal->\"exp\ + ired\") = true) \"expired\" [ \$FormatExpire (\$CertVal->\"expires-after\"\ + ) ] ] ]);\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n# \$WaitFullyConnected;\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where !revoked !ca !scep-url expi\ + res-after<\$CertRenewTime ] do={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n :local LastName;\r\ + \n :local FetchName;\r\ + \n\r\ + \n :do {\r\ + \n :if ([ :len \$CertRenewUrl ] = 0) do={\r\ + \n \$LogPrint info \$ScriptName (\"No CertRenewUrl given.\");\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Attempting to renew certificate '\ + \" . (\$CertVal->\"name\") . \"'.\");\r\ + \n\r\ + \n :local ImportSuccess false;\r\ + \n :if ([ :len (\$CertVal->\"common-name\") ] > 0) do={\r\ + \n :set LastName (\$CertVal->\"common-name\");\r\ + \n :set FetchName \$LastName;\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$ScriptN\ + ame \$LastName \$FetchName ];\r\ + \n }\r\ + \n :foreach SAN in=(\$CertVal->\"subject-alt-name\") do={\r\ + \n :if (\$ImportSuccess = false) do={\r\ + \n :set LastName [ :pick \$SAN ([ :find \$SAN \":\" ] + 1) [ :len\ + \_\$SAN ] ];\r\ + \n :set FetchName \$LastName;\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$Scrip\ + tName \$LastName \$FetchName ];\r\ + \n :if (\$ImportSuccess = false && [ :pick \$LastName 0 2 ] = \"*\ + .\") do={\r\ + \n :set FetchName (\"star.\" . [ :pick \$LastName 2 [ :len \$La\ + stName ] ]);\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$Scr\ + iptName \$LastName \$FetchName ];\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$ImportSuccess = false) do={ :error false; }\r\ + \n\r\ + \n :if ([ :len (\$CertVal->\"fingerprint\") ] > 0 && \$CertVal->\"fin\ + gerprint\" != [ /certificate/get \$Cert fingerprint ]) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . \$CertVal->\"\ + name\" . \"' was updated in place.\");\r\ + \n :set CertVal [ /certificate/get \$Cert ];\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . \$CertVal->\"\ + name\" . \"' was not updated, but replaced.\");\r\ + \n\r\ + \n :local CertNew [ /certificate/find where name~(\"^\" . [ \$Escap\ + eForRegEx [ \$UrlEncode \$FetchName ] ] . \"\\\\.(p12|pem)_[0-9]+\\\$\") \ + \\\r\ + \n (common-name=(\$CertVal->\"common-name\") or subject-alt-name~\ + (\"(^|\\\\W)(DNS|IP):\" . [ \$EscapeForRegEx \$LastName ] . \"(\\\\W|\\\$)\ + \")) \\\r\ + \n fingerprint!=[ :tostr (\$CertVal->\"fingerprint\") ] ];\r\ + \n :local CertNewVal [ /certificate/get \$CertNew ];\r\ + \n\r\ + \n :if ((\$CertVal->\"expires-after\") > (\$CertNewVal->\"expires-a\ + fter\")) do={\r\ + \n /certificate/remove \$CertNew;\r\ + \n \$LogPrint warning \$ScriptName (\"Old certificate is newer th\ + an the new one. Aborting renew.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ((\$CertVal->\"private-key\") = true && (\$CertVal->\"privat\ + e-key\") != (\$CertNewVal->\"private-key\")) do={\r\ + \n /certificate/remove \$CertNew;\r\ + \n \$LogPrint warning \$ScriptName (\"Old certificate '\" . (\$Ce\ + rtVal->\"name\") . \"' has a private key, new certificate does not. Aborti\ + ng renew.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable ([ \$ParseKeyValueStore (\$CertNew\ + Val->\"issuer\") ]->\"CN\") \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"The certificate chain is no\ + t available!\");\r\ + \n }\r\ + \n\r\ + \n /ip/service/set certificate=(\$CertNewVal->\"name\") [ find wher\ + e certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /ip/ipsec/identity/set certificate=(\$CertNewVal->\"name\") [ fi\ + nd where certificate=(\$CertVal->\"name\") ];\r\ + \n /ip/ipsec/identity/set remote-certificate=(\$CertNewVal->\"name\ + \") [ find where remote-certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /ip/hotspot/profile/set ssl-certificate=(\$CertNewVal->\"name\")\ + \_[ find where ssl-certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /certificate/remove \$Cert;\r\ + \n /certificate/set \$CertNew name=(\$CertVal->\"name\");\r\ + \n :set Cert \$CertNew;\r\ + \n :set CertVal [ /certificate/get \$CertNew ];\r\ + \n }\r\ + \n\r\ + \n \$SendNotification2 ({ origin=\$ScriptName; silent=true; \\\r\ + \n subject=([ \$SymbolForNotification \"lock-with-ink-pen\" ] . \"C\ + ertificate renewed: \" . (\$CertVal->\"name\")); \\\r\ + \n message=(\"A certificate on \" . \$Identity . \" has been renewe\ + d.\\n\\n\" . [ \$FormatInfo \$Cert ]) });\r\ + \n \$LogPrint info \$ScriptName (\"The certificate '\" . (\$CertVal->\ + \"name\") . \"' has been renewed.\");\r\ + \n } on-error={\r\ + \n \$LogPrint debug \$ScriptName (\"Could not renew certificate '\" .\ + \_(\$CertVal->\"name\") . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where !revoked !scep-url !(expire\ + s-after=[]) \\\r\ + \n expires-after<\$CertWarnTime !(fingerprint=[]) ] do\ + ={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/scep-server/find where ca-cert=(\$CertVal\ + ->\"ca\") ] ] > 0) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . (\$CertVal->\"n\ + ame\") . \"' is handled by SCEP, skipping.\");\r\ + \n } else={\r\ + \n :local State [ \$IfThenElse ((\$CertVal->\"expired\") = true) \"ex\ + pired\" \"is about to expire\" ];\r\ + \n\r\ + \n \$SendNotification2 ({ origin=\$ScriptName; \\\r\ + \n subject=([ \$SymbolForNotification \"lock-with-ink-pen,warning-s\ + ign\" ] . \"Certificate warning: \" . (\$CertVal->\"name\")); \\\r\ + \n message=(\"A certificate on \" . \$Identity . \" \" . \$State . \ + \".\\n\\n\" . [ \$FormatInfo \$Cert ]) });\r\ + \n \$LogPrint info \$ScriptName (\"The certificate '\" . (\$CertVal->\ + \"name\") . \"' \" . \$State . \\\r\ + \n \", it is invalid after \" . (\$CertVal->\"invalid-after\") . \ + \".\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\ + \n# RouterOS script: AM-GlobalConfig\ + \n# Script comment: Global Config Script\ + \n# Copyright (c) 2007-2026 Vados \ + \n#\ + \n#\ + \n# Warning: Dont touch this line!\ + \n:global GlobalConfReady false;\ + \n#\ + \n#\ + \n# Global Url For Amster scripts to fetch\ + \n# most be defined in AM-Init-Script or AM-setup scripts\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\ + \n:global ScriptsUrlSuffix \"\";\ + \n:global CheckSumsVerify true;\ + \n\ + \n:global ScriptUpdatesCRLF true;\ + \n:global CommentsInScripts true;\ + \n\ + \n# Debug output:\ + \n:global PrintDebug true; #false;\ + \n\ + \n# Debug output for specific script:\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\ + \n\ + \n# Debug logs\ + \n# Other actions (disk, email, remote or support) can be used as well.\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\ + \n#/system/logging/add topics=script,debug action=memory;\ + \n\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\ + \n:global Domain \"WORKGROUP\";\ + \n\ + \n:global EmailGeneralTo \"vados@vados.ru\";\ + \n#:global EmailGeneralCc \"\";\ + \n\ + \n# \$ScriptInstallUpdate mod/notification-telegram\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\ + \n# Use this to send notifications to a specific topic in group.\ + \n#:global TelegramThreadId \"30\";\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\ + \n# or user names. Groups allow to chat with devices simultaneously.\ + \n:global TelegramChatIdsTrusted {\ + \n \"454403445\"\ + \n \"-1003631309063\"\ + \n \"-5124482807\"\ + \n \"1087968824\";\ + \n};\ + \n# \"-5294757340\";\ + \n\ + \n:global TelegramChatGroups \"(all)\";\ + \n#:global TelegramChatGroups \"(all|home|office)\";\ + \n\ + \n:global NotificationFunctions {\ + \n \"email\"\ + \n \"telegram\";\ + \n};\ + \n# Toggle this to disable symbols in notifications.\ + \n:global NotificationsWithSymbols true;\ + \n:global TerminalColorOutput true;\ + \n\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\ + \n\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\ + \n:global updateChannel \"stable\";\ + \n\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\ + \n:global CertRenewTime 2w;\ + \n:global CertRenewPass {\ + \n \"\";\ + \n# \"v3ry-s3cr3t\";\ + \n# \"4n0th3r-s3cr3t\";\ + \n};\ + \n:global CertWarnTime 1w;\ + \n:global CertIssuedExportPass {\ + \n \"\";\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\ + \n};\ + \n\ + \n# Script BackupAndUpdate mode, possible values: backup,\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\ + \n# osnotify - Set `forceBackup` to always create backups on every run\ + \n:global DevInfoIncludeIP true;\ + \n:global BackupAndUpdateMode \"osnotify\"\ + \n\ + \n:global forceBackup true;\ + \n:global BackupPassword \"Peskar55\";\ + \n\ + \n# SFTP Backup Variables\ + \n:global BackupRandomDelay 0;\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\ + \n:global BackupUploadUser \$Identity;\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\ + \n\ + \n:global BackupSendBinary true;\ + \n:global BackupSendExport true;\ + \n:global BackupSendGlobalConfig true;\ + \n:global BackupSendScripts true;\ + \n\ + \n# Remove local file after uploading if no errors\ + \n:global BackupRmLocal true;\ + \n\ + \n# Local Backups Root Directory \ + \n:global BackupLocalRoot \"tmpfs\";\ + \n\ + \n# Encrypt Backup\ + \n:global BackupEncrypt true;\ + \n\ + \n# Sensitive information in Backups\ + \n:global BackupSens true;\ + \n\ + \n# User Export\ + \n:global BackupUser true;\ + \n\ + \n# License Export (not for CHR, will silently skip)\ + \n:global BackupLicense false;\ + \n\ + \n# SSH Keys\ + \n:global BackupSshKeys true;\ + \n\ + \n# Certificate Export\ + \n:global BackupCerts true;\ + \n\ + \n# Certificate Password\ + \n:global BackupCertsPasswd \"\";\ + \n\ + \n# User-Manager Export\ + \n:global BackupUserMan false;\ + \n\ + \n# The Dude Export\ + \n:global BackupDude false;\ + \n\ + \n# User Files to export, comma-separated string or array of strings\ + \n# User Files are not removed on backup\ + \n# Any directory paths will be removed (/ -> _) on remote file\ + \n# Nonpresent files are silently skipped\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\ + \n\ + \n# load functions and any custom scripts\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\ + \n#\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \n# :onerror Err {\ + \n# /system/script/run \$Script;\ + \n# } do={\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\ + \n# }\ + \n#}\ + \n#:log info \"\\ndevMode = \$devMode\";\ + \n#:log info \"\\ndevRunning = \$devRunning\";\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\ + \n :onerror Err {\ + \n /system/script/run \$Script;\ + \n } do={\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\ + \n }\ + \n}\ + \n\ + \n# signal we are ready\ + \n:set GlobalConfReady true;\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\ + \n" +add comment="Renew locally issued certificates" dont-require-permissions=no \ + name=AM-CertsRenew owner=AM-CertsRenew policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-CertsRenew\r\ + \n# Script comment: Renew locally issued certificates\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global CertIssuedExportPass;\r\ + \n\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global ScriptLock;\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"System Scheduler for script: \" . \$ScriptName . \" is N\ + OT SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Update Local Issued Certificates.\"\ + ;\r\ + \n#/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=st\ + artup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where issued expires-after<3w ] d\ + o={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n /certificate/issued-revoke \$Cert;\r\ + \n /certificate/set name=(\$CertVal->\"name\" . \"-revoked-\" . [ /syst\ + em/clock/get date ]) \$Cert;\r\ + \n /certificate/add name=(\$CertVal->\"name\") common-name=(\$CertVal->\ + \"common-name\") \\\r\ + \n key-usage=(\$CertVal->\"key-usage\") subject-alt-name=(\$CertVal\ + ->\"subject-alt-name\");\r\ + \n /certificate/sign (\$CertVal->\"name\") ca=(\$CertVal->\"ca\");\r\ + \n :if ([ :typeof (\$CertIssuedExportPass->(\$CertVal->\"common-name\")\ + ) ] = \"str\") do={\r\ + \n :if ([ \$MkDir \"cert-issued\" ] = true) do={\r\ + \n /certificate/export-certificate (\$CertVal->\"name\") type=pkcs1\ + 2 \\\r\ + \n file-name=(\"cert-issued/\" . \$CertVal->\"common-name\") \\\ + \r\ + \n export-passphrase=(\$CertIssuedExportPass->(\$CertVal->\"com\ + mon-name\"));\r\ + \n \$LogPrint info \$ScriptName (\"Issued a new certificate for '\"\ + \_. \$CertVal->\"common-name\" . \\\r\ + \n \"', exported to 'cert-issued/\" . \$CertVal->\"common-name\" \ + . \".p12'.\");\r\ + \n } else={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed creating directory, no\ + t exporting certificate.\");\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"Issued a new certificate for '\" .\ + \_\$CertVal->\"common-name\" . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\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" +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=gn master-configuration=\ + cfg-2ghz name-format=prefix-identity name-prefix=2ghz +add action=create-dynamic-enabled hw-supported-modes=ac master-configuration=\ + cfg-5ghz-ac name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled hw-supported-modes=an master-configuration=\ + cfg-5ghz-an name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch +/disk settings +set auto-media-interface=lo default-mount-point-template=usb1 +/ip smb +set comment=MikroVados domain=WORKGROUP enabled=yes interfaces=Bridge-LAN +/interface bridge port +add bridge=Bridge-LAN ingress-filtering=no interface=ether2 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=LEN ingress-filtering=no interface=ether3 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=NUC ingress-filtering=no interface=ether4 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN ingress-filtering=no interface=ether5 \ + internal-path-cost=10 path-cost=10 +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set disable-ipv6=yes max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add comment=WAN interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface ovpn-server server +add auth=sha1,md5 mac-address=FE:82:A5:78:8E:84 name=ovpn-server1 +/interface wifi cap +set caps-man-addresses=10.30.30.10 certificate=request discovery-interfaces=\ + wlan1,wlan2 lock-to-caps-man=no slaves-static=no +/interface wifi capsman +set package-path="" require-peer-certificate=no upgrade-policy=none +/interface wifi provisioning +add action=create-dynamic-enabled disabled=no master-configuration=2G-N \ + name-format=2G-%I slave-configurations=2G-G supported-bands=\ + 2ghz-n,2ghz-g,2ghz-g +add action=create-dynamic-enabled disabled=no master-configuration=5G-AC \ + name-format=5G-%I supported-bands=5ghz-ac,5ghz-ac +/interface wireguard peers +add allowed-address=10.8.0.2/32,0.0.0.0/0 client-allowed-address=0.0.0.0/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-18FD746E5814 discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/interface wireless sniffer +set file-name=24g +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main interface="ether1 - Unet" name="ether1 - Unet" \ + use-peer-dns=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=1:20:72:a9:d3:34:36 dhcp-option=HostName \ + dhcp-option-set=MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP \ + use-src-mac=yes +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +add address=10.30.30.86 dhcp-option=HostName dhcp-option-set=MikroYellow \ + mac-address=48:8F:5A:8E:1A:C2 server=masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=git.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=ros.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws type=\ + A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +add address=2606:4700:4700::1111 disabled=yes name=\ + security.cloudflare-dns.com type=AAAA +add address=2606:4700:4700::1001 disabled=yes name=\ + security.cloudflare-dns.com type=AAAA +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=10.30.30.100-255 list=KIDS +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test +add address=157.240.247.174 list=Instagram +add address=46.53.178.107 list=Instagram +add address=179.60.195.174 list=Instagram +add address=157.240.205.174 list=Instagram +add address=31.13.24.0/21 list=Instagram +add address=31.13.64.0/18 list=Instagram +add address=45.64.40.0/22 list=Instagram +add address=66.220.144.0/20 list=Instagram +add address=69.63.176.0/20 list=Instagram +add address=69.171.224.0/19 list=Instagram +add address=74.119.76.0/22 list=Instagram +add address=103.4.96.0/22 list=Instagram +add address=129.134.0.0/16 list=Instagram +add address=157.240.0.0/16 list=Instagram +add address=173.252.64.0/18 list=Instagram +add address=179.60.192.0/22 list=Instagram +add address=185.60.216.0/22 list=Instagram +add address=204.15.20.0/22 list=Instagram +add address=157.240.200.63 list=Instagram +add address=185.60.219.63 list=Instagram +add address=129.134.31.12 list=Instagram +add address=66.81.203.132 list=Instagram +add address=185.89.218.12 list=Instagram +add address=31.13.66.63 list=Instagram +add address=84.15.65.162 list=Instagram +add address=68.66.224.28 list=Instagram +add address=157.240.253.63 list=Instagram +add address=83.174.11.224 list=Instagram +add address=157.240.9.52 list=Instagram +add address=157.240.252.174 list=Instagram +add address=157.240.195.63 list=Instagram +add address=31.13.71.52 list=Instagram +add address=57.144.110.192 list=Instagram +add address=157.240.252.17 list=Instagram +add address=84.15.66.97 list=Instagram +add address=217.168.6.33 list=Instagram +add address=31.13.83.52 list=Instagram +add address=157.240.241.63 list=Instagram +add address=129.134.30.12 list=Instagram +add address=185.89.219.12 list=Instagram +add address=157.240.252.10 list=Instagram +add address=157.240.201.63 list=Instagram +add address=66.81.203.197 list=Instagram +add address=179.60.195.52 list=Instagram +add address=66.81.203.7 list=Instagram +add address=216.40.34.41 list=Instagram +add address=157.240.202.63 list=Instagram +add address=157.240.229.63 list=Instagram +add address=157.240.252.63 list=Instagram +add address=31.13.72.53 list=Instagram +add address=124.108.16.224 list=Instagram +add address=157.240.205.63 list=Instagram +add address=92.46.37.96 list=Instagram +add address=157.240.247.63 list=Instagram +add address=157.240.234.63 list=Instagram +add address=157.240.235.63 list=Instagram +add address=87.245.208.97 list=Instagram +add address=216.58.192.0/19 list=Instagram +add address=209.85.128.0/17 list=Instagram +add address=198.105.240.0/20 list=Instagram +add address=173.194.0.0/16 list=Instagram +add address=172.217.0.0/16 list=Instagram +add address=142.250.0.0/15 list=Instagram +add address=108.177.0.0/17 list=Instagram +add address=87.245.197.140 list=Instagram +add address=74.125.0.0/16 list=Instagram +add address=64.233.160.0/19 list=Instagram +add address=157.240.0.1 list=Instagram +add address=157.240.238.63 list=Instagram +add address=157.240.238.174 list=Instagram +add address=157.240.0.63 list=Instagram +add address=157.240.224.63 list=Instagram +add address=157.240.224.174 list=Instagram +add address=157.240.251.36 list=Instagram +add address=157.240.253.12 list=Instagram +add address=157.240.253.35 list=Instagram +add address=157.240.238.13 list=Instagram +add address=157.240.238.56 list=Instagram +add address=157.240.238.175 list=Instagram +add address=57.144.112.141 list=Instagram +add address=157.240.251.60 list=Instagram +add address=157.240.251.128 list=Instagram +add address=157.240.238.5 list=Instagram +add address=157.240.253.13 list=Instagram +add address=157.240.253.5 list=Instagram +add address=157.240.238.2 list=Instagram +add address=157.240.238.37 list=Instagram +add address=157.240.251.5 list=Instagram +add address=157.240.251.34 list=Instagram +add address=57.144.112.1 list=Instagram +add address=157.240.238.54 list=Instagram +add address=129.134.26.123 list=Instagram +add address=157.240.252.3 list=Instagram +add address=31.13.84.4 list=Instagram +add address=157.240.224.12 list=Instagram +add address=157.240.238.4 list=Instagram +add address=157.240.0.13 list=Instagram +add address=3.33.139.32 list=Instagram +add address=157.240.0.35 list=Instagram +add address=157.240.238.14 list=Instagram +add address=157.240.238.60 list=Instagram +add address=57.144.112.145 list=Instagram +add address=157.240.251.35 list=Instagram +add address=151.101.84.159 list=Twitter +add address=pbs.twimg.com list=Twitter +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test +add address=geoip.co list=NoVdsina +add address=x.com list=Twitter +add address=facebook.com list=facebook +add address=fbcd.net list=facebook +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=82.202.162.184 comment=comp-lenta.ru list=NoWG +add address=smtp.mail.me.com.akadns.net. comment=smtp.mail.me.com list=NoWG +add address=17.57.155.37 comment=smtp.mail.me.com.akadns.net list=NoWG +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster-nuc disabled=yes list=NoWG +add address=10.30.30.11 comment=MikroNUC list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! list=NoWG +add address=89.110.101.17 list=VPN-Server +add address=80.85.244.9 list=TRUSTED +add address=8.8.8.8 list=TRUSTED +add address=8.8.4.4 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.95 comment=NUC list=NoWG +add address=glb.tas02.cws-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.cws.update.microsoft.com list=windowsupdateslist +add address=glb.cwsapp.prod.dcat.dsp.trafficmanager.net. comment=\ + glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas01.cwsapp.update.microsoft.com list=windowsupdateslist +add address=disc601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface="ether1 - Unet" protocol=tcp src-address-list=\ + !TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 in-interface=\ + Bridge-LAN in-interface-list=LAN protocol=udp +add action=accept chain=input comment="accept WireGuard" dst-port=13231 \ + in-interface="ether1 - Unet" protocol=udp src-address-list=VPN-Server +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=fasttrack-connection chain=forward comment=\ + "FastTrack main traffic" connection-state=established,related disabled=\ + yes +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + log-prefix=Mark-VPN-FT new-connection-mark=VPN_No_FastTrack +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=Instagram dst-address=\ + !10.30.30.0/24 dst-address-list=Instagram new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=Twitter dst-address=\ + !10.30.30.0/24 dst-address-list=Twitter new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=YouTube dst-address=\ + !10.30.30.0/24 dst-address-list=YouTube new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=facebook dst-address=\ + !10.30.30.0/24 dst-address-list=facebook new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina log-prefix=VPN-all \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp tcp-flags=syn tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 dst-address-list=!NoVdsina log=yes log-prefix=VPN-Net \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" routing-mark=!To-VPN +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + in-interface=Bridge-LAN log-prefix=WG-nat out-interface=WG routing-mark=\ + To-VPN +add action=dst-nat chain=dstnat comment=npm disabled=yes dst-port=81 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat disabled=yes dst-port=80 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat dst-address=146.120.64.211 dst-port=32000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.95 \ + to-ports=32000 +add action=dst-nat chain=dstnat dst-address=146.120.64.211 dst-port=32000 \ + in-interface="ether1 - Unet" protocol=udp to-addresses=10.30.30.95 \ + to-ports=32000 +add action=dst-nat chain=dstnat dst-port=32000 protocol=tcp routing-mark=\ + To-VPN to-addresses=10.30.30.95 to-ports=32000 +add action=dst-nat chain=dstnat dst-port=32000 protocol=udp routing-mark=\ + To-VPN to-addresses=10.30.30.95 to-ports=32000 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=vk.com \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=ok.ru content=\ + ok.ru +add action=add-dst-to-address-list address-list=Instagram \ + address-list-timeout=none-dynamic chain=prerouting comment=Instagram \ + content=instagram.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting comment=Twitter content=twimg.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=x.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=twitter.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting comment=YouTube content=youtube.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleapis.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ggpht.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=youtu.be +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ytimg.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googlevideo.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=gstatic.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleusercontent.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=me.com \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=icloud.com \ + content=icloud.com +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting comment=facebook \ + content=fbcd.net +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting content=facebook.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=comp-lenta.ru \ + content=comp-lenta.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + smtp.mail.me.com content=smtp.mail.me.com log=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gov.ru \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + r78.fssp.gov.ru content=r78.fssp.gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=api.db-ip.com \ + content=api.db-ip.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + api.telegram.org content=api.telegram.org +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip hotspot walled-garden +add server=*1 +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=yes distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 +set www-ssl port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +/ipv6 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +add action=add-src-to-address-list address-list=bad_ipv6 \ + address-list-timeout=none-dynamic chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked in-interface=WG in-interface-list=WAN \ + src-address-list="" +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +add action=accept chain=forward comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/ipv6 nd +set [ find default=yes ] advertise-dns=yes +/ppp secret +add local-address=192.168.60.1 name=vados remote-address=192.168.60.2 \ + service=l2tp +/routing bfd configuration +add disabled=no +/snmp +set contact=@AmsterNL enabled=yes engine-id-suffix=MikroMaster location=NL \ + src-address=10.30.30.81 trap-interfaces=Bridge-LAN,WG trap-target=\ + 10.30.30.10 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Windows Update script" interval=2d5m name=WU-script-run-schedule \ + on-event=WU-add-to-list policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2014-02-11 start-time=00:00:00 +add comment="Backup Every Week" disabled=yes interval=1w name=BackupEveryWeek \ + on-event=BackupAndUpdate policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-07-07 start-time=03:41:27 +add comment="DoH Cache Flush" interval=1d name="DNS Cache Flush" on-event=\ + DNS_Flush_Cache policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2019-12-06 start-time=05:30:00 +add comment="Create mkdir function on startup" name=\ + create_mkdir_function_on_startup on-event=\ + "/system script run create_mkdir_function;" policy=read,write,policy,test \ + start-time=startup +add comment="Scheduler for Update Certificates CloudFlare Quad9" interval=1w \ + name="Update Certificates CloudFlare Quad9" on-event=\ + "/system/script { run Update-Certificates; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-11-28 start-time=05:45:40 +add comment="Scheduler for Amster-Backup-UpdateEmail" disabled=yes interval=\ + 1w name=Amster-Backup-UpdateEmail on-event=\ + "/system/script { run Amster-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-02-13 start-time=03:41:27 +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +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="Every Day Check For Renew Certificates" interval=1d name=\ + AM-CheckCerts on-event="/system/script/run AM-CheckCerts;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Auto-update Cloudflare Root CA for DoH" interval=2w name=\ + AM-DOHCert on-event="/import AM-DOHCert.rsc" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-15 start-time=03:00:00 +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/tool sniffer +set filter-interface=Bridge-LAN filter-src-ip-address=10.30.30.50/32 +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260416/20260416100001-Diff-Config.rsc b/MikroMaster/history/20260416/20260416100001-Diff-Config.rsc new file mode 100644 index 0000000..5ba4120 --- /dev/null +++ b/MikroMaster/history/20260416/20260416100001-Diff-Config.rsc @@ -0,0 +1,7 @@ +4195,4196c4195,4197 +< dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina log-prefix=VPN-all \ +< new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +--- +> disabled=yes dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina \ +> log-prefix=VPN-all new-routing-mark=To-VPN src-address=10.30.30.0/24 \ +> src-address-list=!NoWG -- 2.52.0