From 6511a89fdcdc7b359f1c7cb9512094dcb6231250 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 05:40:40 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 05:40:40. --- .../20260525/20260525054001-Binary.backup | Bin 0 -> 256122 bytes .../20260525/20260525054001-Config.rsc | 3455 +++++++++++++++++ .../20260525/20260525054001-Diff-Config.rsc | 9 + 3 files changed, 3464 insertions(+) create mode 100644 MikroMaster/20260525/20260525054001-Binary.backup create mode 100644 MikroMaster/20260525/20260525054001-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525054001-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525054001-Binary.backup b/MikroMaster/20260525/20260525054001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..81d75b75fc7e79a38c5b8516b23166cff402c616 GIT binary patch literal 256122 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

8*$~!HdnF zJx^Urrn~H22kIlVxaiWaWzoqYwG)%N1U0b_+-*j9!;F8Z##-6TB4fhUxl2R>D7@D8 zU{-IG-DDVD6esfD{SuY={5;nLI{pT6k={^|#Zrv!bfVKe!Q^$TtA!DB=CBLtp8Wz! zN|Up(DuJ=xBgVhuu@xbR&2kdnIdWMFEL?eB-VM5 zxu=Y}=eNS$aV;4eX;hqjp8b&=6JK=#pNqoet@GZQS-RuhJU>;UW??M%5A$(Ekuvr} zaK%P{He>g15Wy?rJc(~OD(fS~LY=c1Mkmn`kE-A5ZZo(1i)D?Pz!*10DoRkn^fra8Ab5rLe=W_WGClE>^wos*19b z467=Awu~vgx&X&D$Cm`z1J}mt`M?rhfhqe*8y3ns^^rlP62Ys zJUtNhmS_(fiDJ+!4gN$mw~S@b0nVf8g*E7l8b2Bhm&iF6J>ICv34u^H8S;&jH*2Sg zL`#WjENL(fJ;Q4z(u;N%ijO`ZM}zQWxpQiOm{2kH)bN#n4IWw+IKBw-DebR*%zG8H zTS2)F3@u-e1X4?HO;N>tR$Qsu(3YcX?Azz>lM{Dm28AoLt zFy8~9Gz&QShbW`B8dB$z4TC)V1bnDb?yc;7!q#hBDI3>xz?x!-c&Y{*0#1b%_CN(} zPT!h9t$%KK421WQY-l!CI!2%#fA*fM2^GjguJ}5|J+#|@lI!-C*qF#X;(^8v>Y=}} zO+!uE`JkKEr|S-!?MigE^tR_)v*+p~EEHPm9su>qM9;?hm#}&mLum-5UKYK9=WGaq?=D1~ z#`HxPLS&zC3SjQ-uS_fudks_V3=}?RYwTYZ+2WzwUJl9-;$#12YJ=T4FfzpnJS5OL zIZy*j(zo3Hftn&9IL;4YSI*^8!+{tHxpD^scS`pA6*YvfI2uJ)14~?m;CzL{k*D5J z2p*#darjCF=n%;m#7f=f{9RPgdSDJmriPKXSgX;+k``4-RjKA! z5-X^C#jee^=tN3Xr*(>(a2z@`LuYgHXX|C5mg;*ew!A%!@-<_o#DgQN4|wc%fQH0| zfD*Zd{%iUEgH6c-+H*$5n&^_QdO#dY81+CcZyLCO>euYPFod|@t`f;3^_SRb9a7Zh zoR?q2AH!dC1|k;dAX5+drb+En0MTen<3#CZLK7Zg8TEGP>ho2!N_|!6|1%tK~WZ^wJ>!5v8BAaB- z?vcm&!Dlq{Z!nQpQl**cew9`2UR0&k9_a}0Sqi|GG4>z7*a%Nh1otwRM(7*R zD{ph)W6S5xG0{u%I>m{c`bY*eL2SDV{6Al^ZBK}&P+IsOVQz5!uayu|; zfAULw`8>`3rP;!r93cRlD5w$}J~5)d>u%YBL!o`vTyYEZnm^(FyyFvAsVmeL=mS&N z7oRqccWL5LsIK&W6aNd8`NLxLc~y2hnnVTrdR|v zcGqu*8ug2-QTT?DKPBU(uOeSkUlEG44Zis)dnA!i}UO2 zX3hrKEXD-oL4V01D?3-AYPwRsl4tO$+2ER5?^21D7(`N8pX1|DapM~k$tb%xPkuCZ zt$9f#O4hN^P7e=ixrb&7m4ZaQfEl{tn*6NLXhKa=z1#vhIp3&ab9n-OKzt;;i+*wj zm(N%$l@e$whkp{eh+>)ZQlhouLvO`{yQWHc-6q|p8fM*T&FK7>H)m*GPLTmhS5MHsf|@&<7%FVWyN zWc$+WcAmx_)}U#hXRrdNZJ*U^rx-Jyj_XLr6#)B&UD;}}X@W$+5tg#i`J@Cslw!KY z((75&RF~{%YKXNkif~!bWyJhjkcFGyJuxOtk3p%Xd zrJo2w-7SigVK8y)E_+a|v*bPG)T^Q=@)tX}l%>@H&$@4oawOyO&4utOS?DWiXrUkX zX$B&$NSSSWWT^=uAwePpaogEE79tEVP0lP<+f%Rntb60p(RRW8hG>r+w0$o;0@En%yxvxI3Xo zEhP2@zrB5bV$}HDP~z{LQ#~}Msz^tiJf&O+XERfRE17K3uLN~)gW*z`2DY5FhZ;si zkOOjr+=#9l#?;P4l8bezU~X}wm4IMNwSRaTbw9hzEUhc&eM{$w*rg5o0yX?|{^rXz zfn+B47*>dOUTC#lxfd?<*BqZ&-d$O6d6I|+A|nx#QtA2;5q6FHk>7=QT+_o?RS)Ztt&?a5QG84W^6xd|xmHzW z68_5Gpn|XtcU{sc4KpfbiS5vcJI2XU7aZ-{$TT6bSb_`ytF>TM-^KcFe7Nz?c;JyI zJbAUnP;#xCDxCzXXXcX0F+LYD!K^}~?pz$f>6FGo@A$v{u?qlwU7ArG=V>2DD3Bnc z)gZWmxt>IuaMu!kv9cUD7%M?EIhdBs3Bj*bld!;=Y+Mwl>rO1hEM`YBjg(j0B3zQH z=rdFzIn&frWfx5N9ZMVONeZ#j_%@YQaMZ3KrJyh*88FE4k<;mw)VZIrU}JnBFuyB( zrOK=%fyS*f9h?gPU$HVQOtge_cYT>*0&(57;w72eyga^(_Ed(uhuRR1GT9sMrldX* z4#-u#A)|=td$jE%lVWF-PB@1@fz)6#lX|Xaaf{Jvt|$R{$3ribnLwT2B}(v#S0jhD zB)qd!#grzSCfw}SD|-@?&(6p{9#u;TTb;+&D3|Df9t9(X8qLUlTM~Hz&9DC*X7d5M z4!;H-PSHWnvXtjg^-k?2ik>6ezlke zQ1^P)8q{jobGDN>pKn{{sL$|znU^yoROjG0NDC=(dGt%gc~e8lEI4+64iU1D>aXO9;X69vc+u|J{MZM0KZ+t zxLg>a$b+ywlyP=;tTg&ck~qBS=Tc34)a6L6N#4m#cCexcgN+z8cnD9G0c*WvC9rX98h++SJIGX+% z_r=V9E&-i*0AX7ry%6i;CJO}a$_dC?CG72Ch7b=oo}=uLn=fDSjQo?s2izDXBnKym(3YOn@ zot8?2V*gdyT<(0f8|D&LXyudfQ*vL0{?#Ttec@iI&zrI|w5FvPn*m=(jbCcP z;5?s+_kT#`zc!5j(0nNe%|dP+`F_KG+C!ZHchh-dUXRIwktv#QQP_Ip`~Mvf=0BCA zF|AuK5TrU)7nTcbTviAb!#lh3T|~gQS=KRE7t{Q;A~gjCLpHAe!(*(h-!f>W&(fw? z&kt7q>g0)@Hm3RqLQN`}tCt?#o}wCbT8lhSc4gf7!;xp=!HDTT$!#;k{FpQuzb&@7 zHQC^4S>)k%U&4HTeTxFPUZAD@$Fq-u_1LEGy@yKGn7V#As$|$c$9t)84l=1dD-?0DC?G1l@BZsZP>|yjL zN|O2v53)i2>IuVY#LuX}ni16{Rq=ZEZ*&+0UVnbzP$f& zMbh{Bi{DFwM@^6qZCx{_v&>MsZt%9E0ejr^;oQdF_MDUH2KnFA+~fl1hQGKj!4;Sq zGXKEPC?~|J$V;7<3$JpwPEzpn3ZOwtS{t#APanq z3iuqHx#J#xR)82{w4fi-Sq}_S)Ps$+TuX;9AUe)i+YLuIQQo6|V-I9N;VQ~lH}nZP zR*msf%gpDv4PixZ94z;AJ~4@QQ6Qo`dEFLuWBvw zLtf*_gLoMOTtPrGF#}c9hoM)PIt3hp7xQ8)?ZJm_kupyfzh>>6kFaV6*q$Q2F^1Vt z&!_>TT35cGG(4x9)SM(9u)6~q^KHH|`;|@)0U)HFis=}(*Bhn7++wib>C1W#S=DjL zep11RvJ6v$#^Y<#g*GGLNmrj#vrzXYYKYtGekI|`9p-Zg=8UjinTbIPejo?VuT|F2j=p|r z`#am~nmET*S+T`*g)$8I+kijuS6MKhXc;MR43`2V6Jl%tw*lL}Zp8?5-x?Dd+xp>| z2g4ei1HBofn_viiz_!X!+XX>`tE-(Ijo@uG#S=7vDl|X&rRXOq!(r zf}hub1caoo{uB{s=2g&q`^RXJ{ETh5!qg$8e%r|#-Wcx(=8%G+8x4#@Rx}7cdw=sy zq%y?z*eT2zgkL0#H#U6U{@P@GZe<7JZ<8pWyrSLu=IDofQ@g}-#FLZhO5%EJRE+Z* zdN+1>gpu>^6Y*D*UHd7ACTp}$V0NjBBFP^P1`mzxp2HbZdQRkaRFS!U3) zHcg#Guy&9xtbE^NSSnY?Z1?aWs3v#*9Q}M)Vm+9DKKEYv42|abxYZY1tVU5w6NeF%NB%idu^V#=$T@Tp}KxVsx zFLL?qqS|JSHLNtI`A~y;>(TD0s*e?biKM!F_*bdpUB{95Dcz+EU4 zt+PT%t4B&Ag={jYlfeoC_G?fSX|w}UbSc16A=}4duon=(UQkLziJ8Zx+UuMyTz}>3 zDPwoG;BO)?;!{#dAf?-C%!uXJZDmt-!zR?URTU%6-8sS@TkF5XigdHe@D=aOV*2N^ zVZs0L1pXfu1m;QXacJN^Y}=ufM7=ZV(fm}!xpRcPZ?0Vwemz>4VzrIIYWOYBDO!_C zruD;=qt0srPMZ#CCUo7sM&#F(l8R6Tjf2XhoMl4Td_b0YOb!%|ItRjZ@U6j{np-HJ z1bq|W9ti(+crif7skrK*EB<`Yq+Jh@$#tds`@*3FxPOR*Z7xV#NN_dhzs|vm=*9N6 z8C);UhiLpmh>kSQ%{H1%WcHcFYe@>e6hzNq*#rh*z%RBL-O}JjfKH)R0zTvGtHo~M+Lt|5(gJ1RkvYv{GE_NRr+!& z#P=j^(Nf-1{E%Wk{x;j#x{?X#r`+C8@J2pnl5Y!(Yrx->A>vKTmPlU9YB}xa{>VWg zWbm#(eK0_Six!=u<58P|#^ax}4XsoAS3Vm}tXpelT6V3xjd){Tv=gK-%ptJTY<@+s z7P3@j9vFcaT(Z{ZCU4(jrLGLor|UugH}GFbf>ib>UmPm|WsrgtYJ4ag%fftn#Om{U%8f8w*KWsT{=qYtic}E5^lElX@=6;OO(Ne0KZ-P;c|w z*>R7B7Qpo^(%|+YNCETFUvjKB>&b<+gmm5G`_4ub*~ zNq9*tF32p^gcx}DlHlR7A%zTa!63^dF&wC&LH~*nQ;L@?wN-2uk06JPl1KO&M^Els zYbufUIKt2Y+Wr`OGiqR3)~9MuU7(e{Yt>;_&G%-EB0tQ z?7?~N+s20E=ikBkQb|E-zAa3+(7n^IT2z#N&U&GV88gy*gmTIMX#oh(c1QenVzPxw zb9cT#tb29=xwO{7b&UbfHELTeROL;&dt$DXrlZaX=I+iibxx~rcH|GawK&%+!yl(> zkmT)7YF;FJDk1@%9+CA-Odc}1p}JSuJMmW0?vg#K=-Q|f7PmdSWg~R7tFg( zUHI6jPV&t19j-U?BQwuH{9H_zXx>W@oK>b@>H z&p>lcR5Du-TubWaVjr`ra?l?yWNbv@v)p^M@_T99m}D1x2>D=@_2{Gi48>WHYneEX z?$SN|&S{|G;~ej~EiK{1=-;^Kc*3t3I_k#E*bW&&Zpp(U3AUDr*QU0w+G}c6;{%OT zTC@-yo5RvJGo$aEA&k3Uz$o@FUk6|-F{P5kmrqd!0_?a!Qs~yl<4o0tRuh!?H{%8^ z&Ww)?{|g(eZHn3Yv7{}m6PZmd5IR_d$j`ODbgia|i;iDDoQ-U^hLa#TE=lqN;6!+r zgUAM-eQcvt3;GS-Qb9P~-ULd*18Ep$ zg=|X@9F5`(XNDMu)p%-q@S1EBNq;SopWBvp9jF;|I5qbuJPqz)olS9oB+4twHYZL- zR)vfuw_ARc`L21B(+?>`Bm_QOf z1Tvxk1=d|WRCaBHQ`(}kit;#wYOSD`rj0wM6qt?A*!C8fEMnsAww&^Hr*UD@ue z0tDh5bdR_hRUaGVsrdA=V3R#|nvMY9{&N&&_G)O~=BnN*CV%_=QEI@`B@7{n%$Ia0l%f-HZ~=jJ2oVEY@Yy|G(_#5)`fEH}Idc*P(7TgJg)~kWP+8)zh4sll@Qy2E^x7wd|Obv#wk+ zjQ7sF4?1wGy3KZ_xIx(MTZm8BouPH%zWNRow zv>8~s##`<`q{RU++&bd8(Cota{3&Pa)PWkf?NR4GGS7~3*>h8u9lVJ8%?B3iEBH)B zWhT$lAv9*z=GSv+icKx($k;S>!E&5Y1K7mWq%Yv6m8@B(9zhKxYwMqzP4^=ov3~DL z!Mlc-iMc-QN_;<>uM`KBLSiP+#9^f@JfC4hrM*6rlb(`tHZ}^YE0`w{Bx>Bdw>HX) znLwv*TJc7sbwl4pxz*MPK_Gs#EWYQt*y$W3uygU?p9&w71u=j{%f7vSrd zdOtuAs+PT@^+PXjnPhN5Pzh|5PcY#q*%cS{j=mCn>CSshTgDS!EbA{F4X=ojJcXfs zl2wANYwx!g*VH={ko*U7{3MG%Hr;J^8*awW6G`cs=HKt#_Ojog64vZNu-ylyT^63p z|JQX#T}=P7hPHn~OH8j{*ySa3>4b>a;=}CZwL`2EyhsSYb#dWYCvX=sx|B4ez@2&f z$R`nudgJ)>3dv(H560rsX>h)tvxd(`{Q5{TAM_r|{j2T({fF#jH0Ue+M4AO=@$SWB z@AS0ha4(Kx-;3)6ngB=L%jv{AEH@_I8HF=3K^;(EIWe-r3S@-T^n6Le(W8!zlW&7zifBUu2nTmtw?7s6*I2i}NP?f#o{!+q_fyJo=#!Ix`f!FN}(NWv~Gh@J9y0 zp{+ROlL{^auBkuk-ucFCe*%hQwy%1!g7+4ozf`S@{%|tg3KA|K(86q3>Y^Gg3eOXw zMEviKoGr4;_%yb7|1+D@FZmHIHuTvfTaZoCH(i(|C2%`AVanI_-@hAbZ3Ic^RW9>l zSl&)*{>hVX(V)HK6rWUn?65-rkTP5Z6?_4BY|ZfY%ti1LeoeZ({;=rrqw`RxhI`%1KxM}`n7Ws{a@|`pH?Vo|1(H9>cGlR zIfO4=XW^)?>r7uPhOm-g6p@72X-VjGuE>5^M6AG{^bv8^h{$7?y3{s22@2C0Vb70l zcRW@Qt(u?}p+D|+KDZE?l=r!;&e({oddN;SWsByf=iMIrBWY64QpDYCJ1{iJP5(sK zT82YawHTs=AX6F5yQs!!Eat9qxjqI&ubO;VQstob2RU zGhd^XQ!27&*7lwkI~p$GsQks+>!trcn<`9kH{q6zI*#ws(>RH4JN&)fvXV6dng?$L zrYe{{ZoC8uZPK`VQYS|!EQ zqIyv1Q~Z$X*a_xMlmeI!7Af2DW-v)bvxT5I$`H@G+}$+6+$@=bhlP!_4=owh>XUtc z7YUy!6DVl3y~#2@9@e3S(*&Y6x0@%%72>H8KTEFnCqMFSu= z5#m-Tf{fgC@-NlYx*quwBSi~Z)Z!oEJN+idN$vVf?uh*b!skDL)2&vEMqU)0O4 z<-a9;`(4Q6c5_CGV9uxmD;Wu4vXYpf;udjgnMlxsoyvp{98UpE>7wr}UMGUgC)2@5 z3fBEFJKkR>!dC$ljn4!#r!u*_9B(ux>!-_g7M4VmcFE>t$wjpVqej#}$JCO=W+G6e zPYe$Qkm^lue*TLvTfQkRU?epRtTmp8`iSglEtju6%Oe-m#MyYHi7iF(AUNGDmUFuI zgg#c$iuY{;&7};3-6Sbh2Q<%&aBF8gnmJehD>!3Sr~l>uEQ+fpz_4CpS?{=6?%?dILIJ3pBj zO>I{D8^NO`iQ4{Ypg=Rgd4CoUmoJEVmk{^ko5RAO|J^BF@p>fWMFB{U6`;ijCEyLj z%|HvYRxAV&MF^Jx+C59I7U2PQBiJcgn-Ft_hLb7Wn9pa;Dpg(~+KfbZtiVCajZ*^? zG>O?VDF^gRsu98*%8Gu_45D9O;_IRU`3Ld~AldEXJvO*LBc?O^`~f-x!1fhcjX-yT z_evkzYuuwmD}=u}lu1Mz(*@Lwh*kY&pa9$Lc8UI4#{>s3N^h|C{W3+<11|RdV|Rsa9{1;2Yf9qyqYhyd1;4j%839_Q#=szR;>ajP0HCoc#MLC|O&QQ9u_6b+s$hNe@ z?)poopkxvDUm<*+%uKV6i>S;_LWa3&4kZQ3av(SA7hIVzk4y-bxd`+;}<>iTv81h$1!w{)0;Mc!F<@2IS$W^X=! zS>RS4No5ZqTJhH$;M{IXRU1J33?vdDEXct`VlM8d*&`AN9i3$br?+3nGZaaB<~Y{8 zPFp;1*4z{0xx1Q|5l0K<-?9N`9m3*92DToFU<#<`Os9zBYH8jrLU5OVsuPY#Nf>2n z%pGcKrMD@Rl`#lPZe|SWzis%Jb^m9!CEzz$d+3wbfLT{KG@AJgf~dUAfks+$DD>j< zd}5?8?2{pfBAc2f1*lb3k$)Fl~>SgdC-&``yQ<@7Fg%#z|1cR~~S1)pHp^zrou3c;dv5gG)|%XA;H(3|_?+-pogd!vT8B zAFqoyiej5x25f7nL?}b#r@@r2Prdti~A%vo)dyrMRhJ&B!E;9$fD zThBI+i(g9b!5^2okmlE`3nv~L?*NoLP*b7&PrdxB)-8O>{8MZo$`zhVxRjR4bE?5GEp~6M0{kJZu8P`QkD07LQJX5x$3U{sEhhbuc6;>kz5&j8 z#K{jA7Wym0%(>VGy74z3WV=~KuJ=a+)RX-uc~FsQfVRQ@!Ai(UNw|J0Bfwz3d#Y^e z<4+>UWLtibBJ|Up05pTof)Ar^LZc2+EKyE_YY6~$!AacQ*}>|7!Yt?D*3?`i;wJTU zw=H@!$i|vs8qKRs0Qdx6lJXPpZ3VbC=cmtmI&ReWHZ4;=>>9z4;|IW;DFoxX6$5?A zq5P9OXsnYnL1ws|m+FpAHPm!jpM?}u1b@}olPIbIbs*{lsF@C$Zd!y8K>I1yW>Oze z8I3m5$`40Go z+#fcdaxVps;KC?lz`wue;QS6e#cAKKt_GoAW)waVLl%o{ssAFSRy;^l6Q2svrzy3v zFNPEY0ighObn)+IgZbcfMUT=_*HWqVbp3c{xcxQKlv?{=X&`fO0+aH$gI-hQ@)gHs zzvS@IHw|0rYTO9uG#&zsFE=g#W0;6WJO@||?KJ(GJ+^TmZH(Quq7m41iXI~O+X{Aj z9*i|r;L|`!r+pg{iAqZ_ixqAPlpws4bs&=phv{dGbB5$2BQA9>`y5!1-ifKp)p+_W z1^@_8leO{C$}C)tc=|f%{WgD`Q5xjxy8Hnco8qpo?WbYKtoB1|%htyt9l&bvD)W!2 zzh6`TYKTZehB|9Fb6d9vwKT)AoXH(nvAyX}b;k?R>=l)z$Ka1dpDG}eShPMI}QddP`S zJD5^o+LSo%>U+^~1bTi|H6^8vHHqfM1nvP4%te?%ru^mmX?)Ov`fq9~p>hEo5f?vE z*k7I_s0PBE1T5?+{;#)B(L1S*K3^x0uu;=0zkbSrt~8l{`s8Xt2fAdk9}fv`8X}l9 z^?eMDOglQQ(R>r}D7rQU;uIJ);z{ESS-L9YiGs6K4oS>bwphZvJy+nlNCkRl^0ZMV zkfXeUqE}3GM8zBT$OcRokrOhEN%wuF8=Fx7ZfHJiw8aXJoyeJ)6rQ(y)V|{NFW2JxSetN@KhmJ3jMPRq6jaR zT_q~)I^w4=ZF($x9SiME%XRPTkV^Cm^tj3QnZ567z|oxS(S1>!xVc@1;^-R(9>1da zpMoe#ppn>g%Jaj;R!)-*2S`jR7(CjFdDFoVK4SR~6CC{_iN9 z*j!_OBcZF9NiU1Is>FAw+cz~0+BY8Nzevl7%3YYj!8UT(pZ>0=V88|gT9TlFEKaz8cdNkj4>6-Gy zD6(FKF)wa^RIEgu^jwdT(VUTP^c2+y6yyyu($}|C@LOhdpS!!HPuXTEvg1SnS=?;K zbqb=iy{`E;JbY_o^Wb_a0I<8SUMb#E#?$MocCCRe^$GbaM$}8KpnGzfCNyuzjUxRxhlWYdk1F)KUn05CsyA?TE$(_V4;bF*~n3N)E=Dj z({Su$65Co3UUGYC-Bx&4bP$r7(E+rJ0asQNk;2AHM$aoSsgAVLgWX!rzuyuLhHb8S zp$7>^Z7Az#I&qRs=-m#jQ;BP#td$+5!*fxnQf7q5%v3IFWfe9+2i?)-d?H-Pxi6QI zna?O#e$aWo%MqQ?CEwft|G};uD1Sxo&vTp>52*|43(&w9$Q*G{2p^F$I$T@W^NCiDaw$?^Z6kSiU+_!^N+zQR7ASAhk^`-z;E7UCakL2>2`nz- zxKjrL)KOnVnBtmGng=xUnjFF4XW8jBxBH%UnMYGFtD(Xw<@3`aqvCceM@3Yj5L=hGhqM5rk|vh;s( zWBxx(oW_5yg^&=;3S?eXGi*sVjsX3%%NOG z(B3bs@{Bx9m+`IIwl^^$E0)8d%<&MH_~S(TX{?dgkcj>Hi?`{?VS05&*2{Xtwa7E< zUaTr^#{JMhp13;jAr-V|N~Q)4rXr%{ygILTzeC7vPAnk!D`tHG8rUeIwQTNgk6Z+~`% z8$v4*@jTn3N$7Yd7b{Hh-`Nlt=a?I3SP`9Ld7}auL*j(GyxIr*&r1?>IP_}zFpqib9 zt-bjJ!B8$fTkd{vo2ebE4Vb^1F-%(q{X!z}Ocq-6ieCPz6c1LvxB*$L(Ix1x;5oAN zD@FJu@Q(7j2C|#{YX$8Vowi0E?-=h$a$J{5E(!1z zkeXcNeAz&*GQb1V**H5f%L&7~%Wqwllw^#9Vm=fk)j@5m_#WG9z}-Em`XNx#KeTGb z!FL3jl2g%qJE{p_3xB@*K65{Y8o3}MXRrTfmm}e$HG`nQ3X@iHMSoTBs8k`N_e*S~ zP=o(x+aqsj>YRHxr7n^}zb5R$q4-BkedQwahoWR>(t)xv*g;d%zm;pA;;vErda zeeSMOL6)Bya@L+pa!*s&s}}sSSB&xdsp)w#bEYG~zQn?hFH&Nt0^3q?^Xbst6%f=p z5^R!{6qLzxOxMnxFYK}~dJY@H|GXmB?n1}EaQ%EVZsi=)CU}p>N<}#sP`@<717w4$ z7;D@9%|2m|8NQ_UC({@|pZodG>&-v&1IH8qtpiU-J;$zQ!ygUY?_>|vz0QkL2{JQ# z^u_3;7f)e(zT$r}vpBGMGR0~b81nj3r-le9D?_cPsd;_-eWk?wGoi$K-42`hL*@x9 zFl>B{ODx?D`?Q|Blv`8KU64j!Q`fAfYqjVSmWac|>Q7#YxOnrcLHO4I_Cut_Us6Gb zb7~bw>-AwJh4o+Qm6-)ZP__;CC33+qa}KgY)L-Kg^K&Pa4pWSxXgxS*Q;9frl` z!H(Dc&8$_+eY(o-#gHNWf7b5fK6;H9$}OAy{~OsGss=MVfPiI6l;s~548iZ*@R+@U zptPTv%?Rv$Zdl{BSJQ(n$fDXkgIo^9d09hXleCZbrLXemK4gF_Mx)-`{_P4dCprw^ ztQC7D#Ki?<^Y)H{7y!>G`{_rXDiN~)^T9*xc5=7$W%N+zSj@cP${9n3hTm5AL_ zjPdAnGBVAnablwhth;qP5&U2pItiFoPSKy|1#bY3@= zlaOQj#((kZUzU&BJ;ykW9ilN71Y6I~x)g$?hL;(bhtOfTP&g?h3$+ikb1&KtZ+Vsy zGhkC*dVI{{J`}A65R&FUdn}ktXFS-D`>{2@`TQ4od<}Z$_ASD9kr@u_vkuYuUDE)YSQs+J;IWmHkhPq^fxSSShe^2oWfUrEk zL~DF|)^d2|$A5_4dL$vI-7Qg@Dll%ek8`}otyIjf>o+@#O)u(W?GR&4VvS=WVP?P4 zs`i1q-A8wo9Z0P-ny1^n_xG$COFWvbR=}f+DyaD@pPm zxn44|1ePIUqP3=jra>zP!+8;?4m92-W5)6o0U|g_F)M<^uM{J6F$M1X4)nAv;NcgH zG=$b;uKl$Z5dw#w;|aV7%c>qi3@;LotE~5hhkk=!E|tVnZiyzoF}u_4dNG{Zc3C(t zQWA28UoIcjwl$0HEdY64+YlIEy^UT@ldo3nV7cA$ky2D*L;b7uRKT4OkQGzPw64&o zBt$Oridfc7K>HRKRW43N1pMF^pD9F|kb4Lkfr4^)$p$)LCYVw?2Z^&|xJ($`!-_j5 zOR4^I)F&(qd1t7W*H7f|#6O54@g&Vk5mXtWdPMJLeUST7F(&g$$*rPCGCtdylWJ7b zs=!J}8VGJlA}$w)dw&v|dfn*X8zn0-gh7-eF)eGhGmgo2EbX2;PAMij9hAXOa9AJBB{I*_$i|Z39f6@qaoTlod1sb&r8@X!*&}I5F^1SSo=v=q}#g+JE zC~S!i6SLb&ajNnsJ@o4aL@`@eTFRnZ?&_+cvIEb4k0?2bLhjtXX-iqhYrBiSt3nS< z+C?jpgGyO&*UvXu9cqLrm}*Dl>2bbOZ%Ejl**-#j53mDQHwG75x6`geR!p{7D!KqE zuIK1}+}5R5cSUqjK0Me@jE&3! z+5(Q5d-8|J##8bG0Pa?E!)9{m;Jg6NAJ1Lmu*v2r;otlw+6cWw`9 zSrpGF&vdn|)+JpK<^HmZse+}&4_V#cPKo2ea)AHR%JO#rl~%1u9`)1!|33i0$-VWF z@3;xnC#Iywly7Hru&hejTXN^%^MmDKC=E0eeycv;W7In3G*&D@7scu_L3Gs@Cf;i+ zt086D&n2{jD*OW?I8S9@f3+GKf><$Q7+!WzQul0?SPM2EgoM>FgLkl!j{F%+oPsk0 z2-?jN0MRWl?1DM*V!;x~0VFz>H6*j{ZTxgx8c_i?R;$q0EkK9dGoRy^b8{3S;cY$7 z_5G6=^tdFQK!hqZ+)aNM2}q@KbeYv<S0jMSy2(^V~o zM#~Y$waDjS$#!NQCViL3|D&jw+SsEsI_AbL-hjByi%*fvD=hQO#~>T!da{s|CRwGFJ-S`{prpMO z**GH&8!91TjNdvpGH^UYg46RHAi>U>aZ(K+Hk_1wb>FK*74JD7%5;!jjhtZmX+ab( zhiZOLLUu$%B2s8foF1Y^4+`2z)1my25Wq?> z{_KVQv}OW@Q>SFWWPY36OaT>7?{#H(;j0q(HhlcUkNau){{tq!M%I#tH!?={bEHbGa%1+wDC zg~q88uG7UINTRlBd4Be{5=?<9ldKd*KZn=T$_f=H-(LqMkcudZ3O-_oFMW*dh1}D3 zRu060x<6UA$>X1U2Po>=R7ckw5$3s@O78&O3I2u&mg`g;{)k156;fC5Z$LP6;8jxT z;mIwUv?k;5bKhTny@4QMue0Z%OE#vJ8Z z{;GiCEvAAEV%49KG_OG+n*3S%@7qk=`3MF~&Z7I>mlx^Y>K&xrFpc1#GJr3(dUBEj z=8}W07|Jhpoa(ecW*8@4t;}ioUpOa=;Z}Y~HEbC>dB})cjEsnk>+{NYlmuCwm4S}y z0gN4wkmwa6*egOeHB8P>pwW#pSheUY+0;+!rchPMHf&~h*XJ;JYU{iaO-ksgC~nxvZEqrn6q7c!U!D{45444( zF`NJn*bo>rc{dre1BecxY`3ly<(%Y<{cX$bTt`m?SXhm=oq)7o=o7$IrR}Dr%qu%W zW8NUvKZoPN1Kg6+U|%aocxpxC&)F6a67Qmm$tYPG!i|F@xwWq&p0yK?7yVd35j&~@ z=3gAvcGJ#}+l3sO@W$5b2WVTu)zM5-74jtN>0%J7XUYZ>>J(RdwZ5L=5C4XrW{p2e z2mp5h6@Uy~mTP3(`%4i~0ekg`RSTK`(&l-8c{B@Z@J3oUUfR_&{0RmOH!$-OGrka9 z^$jU$ROK4p+i1FIah-j~v35Y9 z@bwAelc?jtm-QJOWmPDKWo~xz(?P)ftQeO-WfGEcz@zWXZ4;v~phLI>pX2 z!FXOo4j(0dWF+zQwRz^eR~FdEh6vFIo)U0;2vR|JJb=8z5P+tZX^qja+QnST4>?tA z^^%vT;$fnagr4aW78+bj4H~u`n6>hOv}GNdSuP^DoUMPu+ZFIwcFlPy^b8`5EyS7tnL3ABC+q;Jg;$ z?wNz%$}NrnD0=0Z1J^+(^C<)A6rj<_>ReB~)>j#!d-0Z+>UWHYh(bE^f zI=_D2{9nf2W*gr#I&*<55U8;MpFY5AMgKDnuCiWF6Gu0y0}n55U@=8_Z4VRUTA@(* z#Cve-8x9NBu2e~xac(A{QYRB^kO!RkF34;B&A)!@7NvY2;E@T4ec&A6ytw6Zzbyog zfo+U1Gs1(TDZ?HTxiWhROiERUW(j?Wch9-mwlp+UEo(sAg}>mL%<|Oo+$~3KrpJs$ zZhuCW*)5`J1WnxZb%-qn)t_G9!$Uk=0$;=nq_Goms`jdw>hK*RLJemk*=?Hd=X06fE%lmaS{I zwD^V7=PHCU>)Cpho4Lqem8}=gz0C$B1_bx~-STUQmt_IbO-Gyi)~Ec!IH$m2HxfppXGfo%OI;+ zcW%|{po~F5wHaITZ5D^&Aj7qYxa1JPadCFfscB$5v_bc~#`^yy&}8}h`_9f}5IiBP zh9ETkm$8v?=eWM2Lir3dwB&TRwasHmbAQV(6ny^DQ4&2IZ^_yHFdP}8J&IG2LiIkp zG19lV2SyLWpdFx?)Xc7lVrh9WaD0BOjkc>rpc~G+y3|39|Ik=GLst-sRWA1Ss0$ur zn-lEg@eAriD;WK-aMZg)_#DyylN42C z7gBJzf4Q#-NtPYdgCZ=E0LV=%fVccQg1W1p3!9_>WZyVZVI5M z@BvT4KR5DRhhkK7{dGXu)D0J7b^*WafZ$vjBsCY=Oy4`E$tzC@ktYyM!73tyurII` zcW!zY1f-mxlV}0ZEfwfEZ!ftkFp_9RJOf{i`AKIUi3Ay>f=a@TMX8CC07(?|ei#dA z#BTrKR}L-?DC6RLV7bNnQBll`7h<&DsMgU8@$F8?Mqc;mm|P{W93 zLtQFYWINrq7A8BzJ>26@)$MW!tU2}^skf_|Bo*R zy)Df);ZuYsw6ii%M#B?S*!hKS0=82O2PiYS)pgNMy49`n{xZD3jU&YypT^gLNd8(2 zSQJ$=&k4VA`*)4Psy0L@j&Z z2SOZ1Sqv$I>l+d;-Bkuso5z;G!T?tw2?A+@L3A0XxDMCz-R=xEquHk!EWXBq$1|Gd z%1gu#tc>nMK65d9z?R7190cAlmM4YqgR~Pm=wc>-wfC8}f;aOAR3&vNpP}ZSCU)Uus*r87&ZhpW^)(09?fT#}vS z)Q~rSG=rwYkl|`XNIB|Gc0`4PSC#ZM-1gaOnb`-&j|I+pc=(Ta%$^jYb2Vr@Y*NER zQBlVe@Z0X5wmEtxo$sH(V}7j*e3e2`AFNk+G4dSoutN$-ylfjpihhI~L>U>+ zV1*^3nbP8`iu9M9O;%j!G7uM-O>j5L74x1+nD#|bdKz3nT=$h|>)bIf(RgL|r1+=W zUp*Wi>R-Jxw^R7Cu@iyJp=Vlj`Qp6Kxdwmt53?t+O%1+{Os^o#ge&C)C8`foF##$A zK8=X}F{4GY!@&*7rAL>IT3XcaD`y2wy&xsG^jdlgntn(IjaK#mL+9I9!$gOc2=qIV z025V&r9geFbA-CRf!nlRrnS>xM%>qZ$yWh&7eo%auvbTe-*L{#=)VX@!%>TsMX~hCCm@dGJa44Oh%<^a3Zj!qssr? zZ;-fIy8%D56=;lMkPj^S%()Ce<6J9g_$6$l{{Kmm78;8wG7^@7)W=3Y@NVRuayKhc zj3BoJ38G;1_we>#BtI_?Li6)!VCGlHhJuVk8wW+Og0L5@>Lc8XaR*U`qh^(l3 zN2_S;sRLXPiq)@wA2UTZN;tQ9)C^+SB+miNkgcGt_z6}k^AYFOs`ViX9@Q~}3C#G) zC>k2~oGza|r)+Iqslmc@-D>_cy3DX~W-HUlcmQs123r6)o2J6sCZ*0ssJ_)X{bz&F z|G7gQuL~@1g~DVjyQsu%=Sp<)VQyit%>uI(m~V?6hGjYB%)otlI@sucsj?Q z^TF|Wwum`ZGuQxs>4{&d9J4qC7pp3bobqg8x^x>VL4V@kO(l886M4DkD{Ufk^+NAW&vk;bg3>T2fH&HVYii|QaO=@*gm8cV;Ud(C7xXvzZaNkAKW@NkmoFe1nBl^l(VgsOW_NvKc3#91;6X{)eTFcno_C2o z31$IVmmU^T!}}o)f8huf@f*rBF_{Wu*?_w-u$eo@eMG@ZACCt9>3rvvc}ReV=im^` zI3!s&^sM4I%{9C`3!L1V$NgmYyMVBYW56Xg^O`Pq493Ti$Li2(lp?W!1^W5VgM#iipl>UD2z zW^B7xGNcB23r0;iz?tdxhuRjf$}0_u#C)!fq+2DnnU4$PUbf;_DEKEg2Rcq#aJl7W zW7;Y8&52De)vzF&R=E0pDwq~rQ`Em(;W@aRFl)KD=jtwKn1#~SYyjRE+%fu96;P43 z0`s$TH64W5g%K8cfv*Q&1%iD+)bA#JpUicz_V8c1kZP&$bts%G0JIiOun6^Y{)JN$aGi+y7_|mN;rlB8^C`4{&1t2RH3?9IV@t_CRd2Yf|+d5dVZO3{kZ-wElH)5xHdm!6PzKEY5TQHel z)cZvwFnMlWumF^j824wT9E#J3F!A+~0Q9@TVV?~@M+F&CS8jp2R)~gYTN0Fg^~1cAIX8frnGO{uG114$7(3&bnqHxWgCoi?HC`;f;V6xUkRhYI?cC75&d4;vv^Is2HJ8lItv(&S%vk zuwxIWyL{LulUd3tc`B*4uA9l6rxRk#C8`?aVWEeH1aiw)z@|*u=}AHDqU#gt0-ly$BEaz_YPjxhhT8+nG%L8h#bfkg4L2y&1(V^LCuBq zgKrG}56JUj4~4FCrO}~X%VyRPi?IyQxc%&qB&N{OBld%7w1xR>cMg~`2+w8B>bgI7 z?39anYs%XOXns31GK()IDYM-ZcrLVX@gZ~L=gM4V(aKV=e9pu>YLEDmMUbWEQ5wVZ zz(1OtFjpIR0~Yf=+^FYVcdzL5sArz2Y)Ag&ndO5v>PC|Vr)s_f*H??xv(q|s@%q%J z<`g(UCfjy@KRZUzIA;vKTAf;Q6sMgIN!{!q-FzoDwC@>6_mQeqQLaEu6ta=5WYo2# z<%!|Fcwtgs5gg`n3dnfAgZm%I(c1SQ+yKk`&;D~-VzTJ4m4)K$+MkRfE&_Ap{gmdZ z0E2pXA>u4xVkY`NF4$1^xE6csniLz+D&Q+%n?{ZwOa8ORJ6x>-rcCMXTu_V}_quy8 znUl?)q#zmlm66d zXC0u7BOT6hz%{+pRkJWd1I4~<=dWWMTd-~|gi_C|IreCO>7th@c;}rbf}+z8h~-xR z0oH*+N9ugx9+?;HNzKV}aUlz&1`OqeWUI~Atwus?{3ZcbT~e*qHxut=ho9RHZbTi+ z@=%V>C65hJB>|t$1pvVNtsS6PRx;gd$4zSThhge++EOcco?_j~cVW3|UAc$gck+Ww zjh60Yc%H<$A;%1@jVJWW)L`D_x{aeO>Zl4mB~WC!?dgs8(@m`>U%)MD$`hzUNRcqZ zn?cV_EczFESDPbz(?TL~9rfUQ{4mVLs4`f~$x8T*mUPNoqXNwyh?18Dzu%pQ9zMa_ zb?8+_sHv^K4@B*ZG@aWd%ANKupdUU)K6W1Mlf|)cI@v2nP4RhP7)-g#n+tw+kWvvaetCBV&q1K8{u>u7+E zzG4V#a!48iDuYk}`NBfF06o}qljeusO7)dNgqB{JOkX<(&Um;QeWzj6E7O?NB;~9F ztJ2f&PU;q^l*^Jq4=M(u{skKAv95c_mo+y7<+W8X@re`5%h~S5=gI@T02Y>iH{$l1 z^G*kSaXlcqBY<0Tvpzp040_U2jiW<9T;_|&B7AKMLnR-0``o^NPPRWQ+-Ge z(1+QLQi%niLxmfk=7jXAmvj~w+0O5;)dLvv@h$F0r6WWz3Vn|v;<}k?hIS5+a7{qUB%oFcu{Bsq$!8$Hv9LyT4DL_k z31O)MSL%`g9pg%WeHkr<0cY6U&g%w;KmiCkdJD&XwQr8hcla~8c?ofrX*wdV@~PSV zr7yuP`VCPmQe!9}2}DZNg6egbdO5PKMlo)V-6hF1C&4|v)#_umKrr>eb-#Mcup!0` zRqf$KEt&MJ2~QFVsFN#SV5lIB)#wCYsn*^tDV~y%h&l7V<58sbTMI?scZG?B3EFIR z#OQTQi}rS3Bm#~lVnoA%mb|p>@BJ0dzbxhzlnUSqU&w*m?KIQzUB(Ap$u`RgCB_cw z>XtFCj`}=?aELt*Zi5&uZ+qZCE`=~`Nw8s|qoo~ci`We1h+gR*IWXQ~$V!?GPCuOR zB={;EOvHX~%nRYmPoiYM)gdN)TQ4tEqC0c~{Vi%yvkKGo5tFufdqu^iJ;?s#gl5-r z;Mm9qQ35Dxx5qXJ;%hbGoId@pcrdD+6GX(f-PV1o>O*O%(sE&|U#}-`Jq0fF~l2hwAlL7Vq6=}da&`_k1zo~zb)l2t9Vi1=@-Prnt&@TLpN7R-2@b^rM@hRFcD;MG(+$ZNK&$jo@%O+Hc6&C3@Oz#p1 z6Z~6>)RLq-5L~`&J$IUv0%_iYWsi4kDg3f%s8w-y@Wc0V%?M){@ciJc93hN376y04 z!Mz!b=~y_5U|JagEIVgIty#2gv!#)u3Qd5qqcB#C-^CJ;)#6z2iFuJnWA> zJDo1w|^=<-Fml)vBhb1~JvTJk&ox;}ed8R}FSOZigS?(qUw~r*Lqn0!)(726g;HM?vjSt8!@R z*sGe1b-aemr#|R8=6y@p^-;xs$eR_;^==zNMHl+jL+Dts|7~Dt%?T^j3^_PJoU{dwUpQS%h;?T z#BI}?2|BPT576h=6jS2yrETS-&yg?!>0hoDyiw1dH0VoG&w`E^4k_np=^gnK_Z#o! zffZf@QxR@G5ciMQvvM;z>r`4yF~4*#mmcNg1v}jd zGT}lPT8|7Z72Y==LoB%@6GvmLRMak`7uYty%PbCNoK(QPYB0R8Iq`WEgfXUZD-ep=Lyr4o))CsntXf;@e1BX3^_M9R<}4ablY5GcetZh!1WO$VDboI_MZ~<%y zu^mptHw{W&hZ6|)d37Qp8$&EvcItm#Km9`Pm&EWJbz)@RyWUUWx=^AxE|Itfev(6oOEHT)a5#OXo8_n@bgqptLT zB+8(2?l?YC-je4#K#sAnWM|3*DBGfynOcqxszN8M5s79;#db*|(=()ugNTu|qZg#I zi!BL0N*&)rNxLcir_M176zt=$W9$YhM$q2YBnoCXhZP|)aZae`zefCRJexPC10REj7)NEy9jnZwH*e?GOpH;NDMQi#C}--D`9wFC zsf(XDcQ5-~_+6&!cP}3OY;6OQ3cgMAfJ34Ug^a2NYZUow%Me7akQ(wk7P~1s-J6dm zTns8@h{{H^*FFr%5Tu5uT`w;=uG~4{wja&_@c97-iH2%%#fkW zfhXoAnABoI5GXry)pev_6mp*Kz|h&zm<$A&+nw>Vkv}+ku6s2D(v8Zh?>fPSb@KZE zY_kUqfSBU+Tq(x1Qw7CO$_q-<$1h;*wfd^bl+^`BOY~G=s4&}f6}F%Tg#a6z)s9Ab z#8s%(kE~l6*G5xvy7O1(1&nKL1jstK%~h8<=C&Fmp@2F-D|1me6vS+zJ^s z=0Ylgc(zHi%RS+JRDmVEOrP8Q_GhZL+VzM)B|BKjO^Sj(k78+QJd^u-(dJ=BQ&lNH z2Z0Z6b6`6vvy?HHX-=0~c^xJF0rCnBoi||QWV{k0T~4K&reeHaMIFOg&ont*p82gm zhth7d01p@p$-1_ss@Wpo&LO5T2FW=TBLz`}lEd4%)=s0|Nq>LbprcAy)Gz#+YuA4y z3cAGGiF^!Y8&MBHD~Kl%s=)}mo-MK0&q>AWB(Tn?u^M!LM&h;*e^PbBM5HK%QaT?} z=_B%`I!g&0oxfXRPR!5f^JtPXVsjid%T;UmlA_fv^cP-;F35F&rgVrCNpe8-g->8- zr=ILN0{}TT`Ip|ENNbq7{FVDy2;C}M{*$9_b`;8Zeu5as)cy23Q4+Df+^V{h*;UJ? z#7J|uxGd#jK2Qq|aiDgkxi?&ludGQ54u{{O#UGWrc z0W}kD@LBJ~Zc?#$3D$!uMlD?1Jx#<3R(aU@$X*=h*afM3tPx_>uphgM{fc{U`-6tX zQyR0J6}7am^t$E5uV2tJ1q~wDR!r*RSI%k`dQyL!@_s}-_i|Njt;rMD~C-0x5bmM#DWGYE_hw~svIC?#bP~1XcW8OM=wDT zQk$Dn!6bKWvmk(b5lIu_)oPc4pFNt~5=SE_2b=KIiTdU(Jta)PRF_CpPKA9#B{Y!Q zynlxl=t%iEtEPKW?)HZ&4*zaF(7vgD?Abnhq5LdInGZ4q9jSALG8g8wxf%$ddop0b3$U@etTn%|{xJjdg{#d~1N4E)+^7JQezNlkaxZh|PXkF8P5bv6J^Ytq% zglZRLFRFzYk{M>3|7 z*-nha5R2vC&U-?j;>dd>lrd!n(P7MbHW^d=Fga(#J_07ELq>vy}~&5Z1UMMJW~p4M2$&4XCp`r@@J4M-6zML z%eMTEu?Q69F17$6@5;1_ zSAp*zZiw9sZCKmbE3~l4Ij5V<1?>~uM)h^tXN5C~f#?-K0Iq=Q)yjNIo^kmP!f*ImmZ8dRmOgGAg&0*kJ9Y ztPgmU1Kp+E)O%@kYT#Ck zKH92&Wt*2F1`n?aR+%tK0J`0yA-hTaK8$*U}7 zA{}Lyf*B0tKo*RgT$#&Q@%Uhgme3fCVofJPFVW>uiHZN>HoA#L5I!FOn8iKjna)iQ z{1LF2i^~_L95%S1=pB%nxbT#MRRd0IyH5sBqjZa$4wBopP?L^EWi$3Jf^dL1y(w(g zDdu}>DcdjrBqUSi1!jbOrVKB=ZV*b4=PX2+9yjQ;NK|mNfofO7mZ$MIgl8~;KVaB z?X_U`nG6XBq&8}ab+BEnYz?UCP95%YajhGVu)Z2RtRnJHO; zQzT%@o+-{uchxcXt72+ZRDe0U!2dB(83zcj2Dc)pfSZx*89G6i^b<{@XKn=eFqg0z zM?1TG3I(PNfA5hc8cpLpNIT6chz_exvo!V8`p#^&rahee=-5FCLK^q4tjMOPDHuW|w!H9_Lgs7?;`0 z`5QOd8QQrnl#keVUDKtXiJMF?f^qg-aE+O0f%o8anea6cMgls^F9F~xhT=D&S z=c^@`+zdCZeT|pk6pL%Sv|exIq3nraO>%J@wIH7Wl2}+S?jh-m-#24*Bwv^Fm;Kw+ zgAKyDW@f~?k*e@V05*aDMgk8kwg~&>$VT%r(fY|h;sNh^n}Pp!9DiPmDAe|z8ZLCxUNvrLECe>Sq+HM}YQ-c$0k?c&U@zf3_1OxVvK zM|2fPfTFx1X7VF`;!`EE+$ksO=la8A!-%D_9-H?mfMzsII@ERO+oM7ybl1k|ia{X8 zh!qw7bwF!*TC=xSv-DHr^*}B=zqe3Yuft2IuniKzdE&&GUN3=3^~!QnP~<_at8hYB zb6BJ1cf??7QwTJ39WNSTWgI&6QoK<_LwhYk4(e$jE}keZ2(`j$cw}eSf+wl47ohaw zk4fT{!j_zs=ghP*@L}wvqL@g{z2@JD1SApZuPh3SXZ>v|XeR48ee=vjp+HJ1B(5&% z47Kx7A{R35TB=k*d)E&Vc%N1e*48-5@6hTut;7w9x?Ro;*ge=S7A)mHd`ZW7c7|-L zb|(;Vc-w^$It6@%$XaaXf=?&p^B=bOx`Vg`h(b5M?h1eF@XYI!b^sP?&>%H_tgAT+ z2FdSi{{3EBNLDvRJW3lnnznQK^Rdngt9W}z}kn(jtV^9$a;fZ=mzSEq3A#tWIygM(>jS><&d33X=v zb0PTxvVD{Ibr_yaey0zI4WOa+77gofB7ySR-$Y|mgt5E}LYFw$EdZcgFP zNbtZ`N?n6@?qT3qt*mPIiCrdGaU4zDHHQ6(2MsY?Zi#sK1AhCMvK(z_R`Tcc3r?gd z)*8;*(R#DS&_mA%Wxr*P^e_D^OB9rKm6jIv)dK2n3EI#gttnkM8t9(|PKYXGBml3G zJ>PwjYK;BhgBOIjw@phKeRd3+LrvYZi7F;h-&s> z7R!2&QZ7a>xZjbIxkLCZ7|b>VZ&^IZ*{l>Y4zg|I2aywG)GGj!dn7m7+09uAdd-J_ z#Pc%Bl7FO*cD|9>);Dw&4)n=MZ7@Iytjr3NM9Hg%p+@Y%hrtzuU z8t|dAL$77zMm{eGoTG$?LiTXso?vqcnuRCExbuUZ@geGArC-$I>MIvUu)Ba<0q}gr z&bVJ5${EK}5!|+TiNA1g=^q~v3|Mj4T~hs#Oz|Bul-)JTkg@JOGLRIsrA(0;HlzOW z@r0Z3oKW}5lvX%=4yZv4i|mp2LuTT=X8-|N3{L)>iXLUiHTggr+1aiYE6nb-%)|05 z9cKCv?>xgz;|RU^A}L%HgaalN*-KMWh~*>6@56Opz}Z;L?n;1RWbJ*IV_!OYa7R|9 zq>Rl7zRLLJ^Y%k(_1yGa_%z&C4R6|8oyPuK9a+7K4HAuz1bf@$e!A%7?DUdfAtf#=?qTe6f|j586Z&NB$`R6@TZ1Md{1j zp*gQnuOqOH-Jyez`wi5Yz!9PsGiy&BW3PQ9F(WlnA-0L)7Y>lR}>7&w(XI zJ8@ZYnW0k61F_DWvT+zYMUmx`uS6j-pj(=eb*dsTN~EeB=F$6vhAWMmv>6IDta{Q= z%#h1Mp$=I{JJ+9!+T1{IR=hRQLls_ zyuP@rYBm)&ECYDiU>`@398&RQE0MAMQ*O!HLsfp1c+-MF?V1UqLy-K9uL&FzWIFy1 zaxJjaXq>LEI5-v?(}G8sj?NZW7xspmWgjC`nm#(v+`yJhWC|7KrPW@=-^_A0;`Tw*o~>Q zZa$k34or}?s+b~J>Sjl_r*`d|ETC%6l>pVv-3$iOB_#5IX%^&8S2RibB(`e*826~D z78pM$WLKJRz-O<^*$OBE*#-v^Cpv`A#TR=r#>RMRoc}E>ulZ^4jN}mREBTy{7yRgkSEnf@qpY?Cq!4O4;~Nu1$FMIPY_`E7lt<$8#h#v#qX~BfNPA9bVnQd zIa@x;cZ0(={Y@#dbP5cMJ#ohEz%Zb((DJcN+%C52#YQSr&Bz@jmK|x|qoMHX)Pg=T zZ>?M>LV#v^x)>$<&uxp1#QF)6J?H{aQJlGnM?iCch*`Wk3@z(0bZHaEYywe{ar}@j z)59)?;&iD+j&1({4i48_Dm7%x=Td8j$lfF!8DFP~vD&_S2Uy@L!!~fDWKe`TIso%w zG~KWfKt|7SuZP}MF{uMWB(qR;FTfRLB zt{?E92vOL#qLuPeE;bbSP7u9b_BTUz&wOug6%6GTstIsvwEBOF%m1qKhc!SF4wvIC zdI6nRx`VxyNc|hCN~tT{#usqBWA5OxU)z;wNu|3sUn%@gmxK4ts>*L07?HLx8(MTq z*_uNT{S!Rzvl3*D;TfJPKbKGEFE;5+ef-80-#YLtVLJb1Y95yYPm07!ziS6u|Y|KZ^{G!7qyWDHGeQoG7E39KL`KP zJHm`9frc*q?I2Nj@=#S^Ev^;*keaAYgb{2mtk-qL0_%yabDh#MKHL*RP7|nwBxBx# zRj_(*=3s)_-;-S5{gU}sSN^Bca>_;3JThX^C-J>+wf_6NnRkPL{7KEHtn(Z1RLK%w z-M#rrm^2XK^w4t(O;~xsUU`Y|IhOa)?#@lrZZ9nTQ*5C>k**z*m02ZnNjd?X?xum{ zK9?vA{5QH;&xY&Q(Bkr!EIOzmf;1YwzO3My%^%@=*Bd;$1u3%KHjXiz?i*L(a$T1~ z8eEB`_@RKu3~>fMqV7y9ZfkSLTlV6OUCa@^#q3ZJOyKrfqn0^iU43AJ*B-7v4;?0& zu|uIL2}FP-pL~|ylzr4>{J7GMWVnRYAC)Panr~I$T8HZz69lw}y#@$@$Xn8gVvZ3P z$U~}#cPaAEfrov8PQ$*XrM-!k+P+fw8*C9_T0NKIEsYvnIyO=fRfL&vK`H*NFB`u` z^*flNMDU6r!bn)Gk&;ZPkDH-;9DBMM$o_$QyYZB-w6ipiu^BQd@;PaZfua^K&oWYv zB|i3TG5nL8hR3RE5IK0Fuqv0J0{&uO4&e;@XD-g_9%QhyDz*%8)qQ$R5K?`l;M5Nd z_WRj$ranPcFcqjH^QT-@Z&*}mGjKEhq<cz7S5_$(Ahcw+k_3ZROo#?vad;QP~o z-nbE)-FTr?JZfmN7_hBdpU<|J&;=2^-CDf%%h!_=BOBCI4f3VOnZmDTAcbCCwDzj&|T#z z!IS6@hR3vHWbt@$PW-kZSyaQCy$Wv{Vili8Swpy3e$t#V>=_Afd)}Cg7}t5fpErs9 z{>ifSO`Z>fxLf#4>BCZal0Or|)6Uu#q&?nia*DAlU*FEy+ul_oDMBte(cvn)NoGEK z3@Y`3Irzs(J}ESL+72sz!X+@`$)37~ZZ}vl(V7gj5W=voO)Hk$kz2+TwuolwoEJYO z%)bu%7PFlnCm1I%!Y2Ir#!9KqG0jNst6;y(uAEDQixuRYr3rjYA#BGm`A6*#^_#kY zxap?}um`;eY{Ang^SDc?qrtym_&p;M+<9yvK9X=8G7(LyRu%bRv0tMa9@C-hmHYPy zH%z_V3j<3Ba@5<+>&UX!Nnp5I(B7^;Qo{ok)MYGE;tDFRmB94kh)NbDrDWaw#85~ z74tcYwxm@sR9DEaQdIgCTlVOsA_CcYD<%Xdo20E0 z4)%!;%N#%L4l|d;O6fT~>B;aJr>}`F3)%FNcItN0vT?L??^`!aXE?WVO`>B9vSG7K z;9`MNyp9pp6!! zz?+8z+uG)86c>0#_`Xw3BS zDnu`yod_9!Ie85xPG?f|)v?B+GS7P)DzT5#lN`R49r}Tx>Bbr_vJnbQBw2iRP~kA! z!+QfHO&4CPy#k=pid?P~glb^W0`g512!g$B_(7Dh`*m2;A)WRE$r850=S;G@T@^Fp zCU^5>5xK%0xNXVnpYAyVKO!p&%X5Yp!?z z|33i01yEYV#CGl &hb1YPDeX>&g^%9@ylOpf0K=y%Gp4vW^gY2cL>dJblBSqj%M zkn`z6UDqzW$wR+yXq~;Dvhi0m?uaOiDCbylB7+cU4!ez2P$4%-5}|;@T*;NL!)-cw zE7fQq>X})!hVsHL{TPPobaS4v@{4;9rU-TJJ53EXJKnNoS$o`cG_D-|EhqM24xLvAn!&elOxg(9H+5XcNI>sKBVbwYU49T;1XQ-wJ-;+@M zfxBGCmZD#`8n8iapTx`E8=6IPq$XKSu64CVx2Th;Sne<}s6UG*b6AU1V$MXcNxo_# zFpSR8w*&%7cdevG|8YP8Ng>*jBTfs~&Lpt=_KDZA3Qn81e0J-g-GljVhieX@eSXZu zUZ+u+X>~dEcX-l)&qTyob#xb-k|rHBK2Y=i^SJwdYv#hfY{<;hO(~)izfao*H>LDU z(5k$sRxfMaU&B?sE<4Fr@kjGcUjCsNH=a*0rSN9 zQ?rNgr=;<={XDs$sdNlS@p?YaG+ksH@)AfH(6a&D2J>4o&%Wr7-o!T!b?3E5c7styB3DThlc1@S9IX-f+#n2|8Sq*GtQO4ksJQLG*w zORDjeN>}X$4`UV7Q&ZGy_^LM*W*UZ0njSXP;@6-Ud}~YnG@FmK!qv=%>*#+s?#f3# z(+LgJnHdhhV?wf&Fv*LtC(&Z=S*A&jgp#slP2g*L%NKNa^|E3|J6@9wLmx~mN?f&& zp9#Nl4smZU8vS4K--Iph`5%T2@dYPAzi;@5)7%bOh}WTUl4R)q$*MK*Shf=cvoM3` zZ2MOM&R0v}$Ac-~ANN=Lh} zBi98C(_DE93~QWb4RjF|$w4LdZk+4W zDflK289#KLVRJQ&p$a*}T?mhj9_nQmgjk5!@pHMC)JejSYXUB?c)Y$o-IoqFQZ`q% zSm6L4)d;TtBXQe%8SB`0I52I2ALr`OZM1j)np=6!6JC?8x_g8ltB>dd?}Wp*H2op@ z5(MTFf?Jlx7lo?MYTGsO35jW%>l^?flwF(;A&Sy=ib9h$D5j||mzkPdo&p64sAy0t zCnWX+*)?{m3F*>8f_;MEfwdUo6wsd;>GiT0yQa1|zV9%%$zEA*N=ACx;%XhvM3 z8SjzuV77Z;dsrnwx5O??3GFooTaKqX87p3wP|Rg~)YV60FS>)BK4W2NqryZXj>Uyr zfrFA!M?QS+Kvy%NvnWJuhsER`a%RScY!}v;ph^S-Bdv~J9wY<;wW1{>5=RMqH~83f zi$;I?bn$1hyv?8|w-Dt468(~H{SW-%_=H9);JbO1#c6bEF*!Nw+VF1lxuF>j9DbHD zy@YR}^kr0ADiPtcvnO0mfXnVUG5cU54TU~Q!-3(_S(}sp3=qA^wY`sflJuau^Jb{p zCS(F(GtK|)gULCC;+MI0Mf-PnR=1e*F(-?@w9>%y_hitq{@0aO=>|_l*^%EdjZ3o- z=2PS}5wwZ+7<(?Eg&gXvhp^=(Jdr77{L9fM{@%>LTMp=ii*MeJ5&y?*+zyiY6=0cQ zZSfIbamzEuOf~PI1*@P>VgRMo4g0Lw{L@L|F^s|c?>nAKgTY)fK!YeU3p-fZ{|T!^ z{HbBsRHFO6C34?X+m&(A%5-d5AH0jS5H{`rzpuR#4;35Y)k7|}V)2l5S#LdmvT#xc z%Ge(ZdQFu2aV@B3yzLWZY&?3kBP%9 zdkb7B$xhED5ednrC1Ma}zgo%;IdNM~Z|waq3b*X?pCVQy@pI53LEGsY$7=z9py?yo z)I#YujoJhD)H1|nx-wCxctGK#AW*fCMQH2pqW+wE!*nW~Ai?G{%hE%{xueqz!FyVb zXLqV$diSf@0a3r6=S>Wb^&Es^t@JIx-=?GU-;C3nn7m4_6xuW&+;eVm0o zeS78wT7yBhNhZ{cTSTeU%#$rAl^> z$lB*cGGjW<7w{2hGB$gmQpoX4hwduFGf&Bo4K{UgMXr{;X|(TzotdU&N&A)g6YA)q zai?%epdk#90D-t(@kFiCzshyWD17bojU`b8wq?iO!p^aKn=2a+0&mkXjj?6*818FpOKuY5<^PR|ZRA z{_93f85g-kj7#UJKai)283A6Fz(0|jTDgk%&^UPp-P<8>vFpDLwvv6oV2g39c65%g zf<}=TN|oR<>{DwJaM%-kERMe|9cvaB`1oOvZ)O-UG{Br$MOxHSEXhK#9-~|ksAbN@ zv!5IJ^GoXtC%w0pNS)Wz)Aen0jNLNIHai-cNuHi@zux$ECh;j_b;|NIMA{Q8gL$0* zaob&45DV1lgbkF_UPBOdOMw#7nkN;^!c3v~fXQYswR31@zh2Aa4_u6Tmhl6SA{Ho9 z>9We$s4NmEJcW+Q-tX*wwCd&GPJxPw#7DXOUG)5k2P4rqr-{)jJqMGE)-9i1S}$&` z4oVdP4zKR)tW;DH7K2Ylb`@7hos=R|j;+RHx0bMBVu*9JI-j)<2<5Z9 z_&W{>6DDVn!790#scf$8T}oMi&$19G=Wka0g$^u%mF+eMQlJ8mlCZ3)kqmlc!(ozs zWYTD0S4osO2&IzsnS`@ATmokI!=RtDjcfZoWA=eIrrF7nj1`5G$Jo((H5_+UXU!SI z5?JAyW+-2m&sQWXYy&QS_C+NT9qyxiFc*lOVwk_^$i|g)-L@9I4E1TdE%ApR4;voN zp3TWh$xg|@TRmVEc#98fm_$D#TGM1IpAcERY$&RAZA2A1T1t_FEA03&@&V>A%Lhr> z3uDt>Daw;=KuwB)Wr;%kwl})mzqw_w_d&fxRj9iKH*z^`KlgRfW9`t(-9fGAIWt?= zO{sPLBV6{sfWh z51U!T*;<|9uq$b`Cn@!)RbvR=c#A23l z^IjK+v7(F6X&-nHx?jU*pK%cIrq9C;TVM>okG~-6=K6QgGKT>kBC=($skW;d?#oqV=b}f zNnV*#DLI1SebRcmiln!K_yG5i)h^$NCNtfQUW!DO2C}M~S?)d73bz_nWJzpi(UVXy z_jQ(=HKujS$x1Jt6z*RT|0=tDqrv1hA zUZ?270N^jX*MaMJ79`tfkIx2e(?dgBu^UBTbG8&VT|(D{DFbHzi#kGb7QrY zP%bizT}@9I#~$hCAgv8q5}V9jim(;_F)@;Q)3SJ-(Dw_rYU*t`F6ULibQ*LIQT`G& zFxRDx7Fdkxo5F4+;OW!U9K7opp6rD2j~`7@6!%4@_Vvu^FOUTNME0p0>~d)%trp8i z*4`96!nSixOTONHbOOCa-5SQ={1{mIsn5Zv7_TH!+~A%bOfVb64xU}VHeINqhfKq= zKe#z{@S+Kv*us?W_CHOoTDNz@`;Z#Jq%28A7^~yd2?+!I2R<9xr|u&M@8(##=d6*c zmyh~Ylsh_fo^Gk8X@$D#*3HNHeJWD76jU0+DNf8yUK~R2)PMs+aI!FG@c?NyFp7Y~ zpm-`_=EJ5Z_-bhu#`>FJbh9tJ(#iik-{I=39>T&QQr%z0lj0Ar9w4C|mk0%Kc=G^AzjE!OJKC?AYyM4L!s*uT1 zjEJLaY71Y?)FD;>a`2!wwo-Kh&7X*(O);9?a~mQl7lY6bp2O-!C5~o&b8BqIG$m+HYFH1venSofdl!;N z@393gf^fzX0yqZ{8*w}j9s5%97BMtqQ)1isrY_uZbmDqS!2=y=y>0Q9?YlSpxb++rvkB#aT7vS;2SEjgOevu@Z~Hvwh~CP?-=;+*|~z z2*l418J{h)gAfO=*k<+*eUmYdasA3ms|w^Jq%dsH5y>axycR9Nu3zBZyHhSo93|Cu zZ|?9SYB;STKx^;wjPHqSbE7AH&NIS$+b zbftvrpG);Ttlo0y(Wd^+aCn9Q(!Sd1<`@No?u3IAS*VTy`x4GcemIKj7Dgiq;G~pF>Tlr9N zMEj{PFCMiU2b$SNcV?lzYT#~YZ2?O%zA^9#T~f#Qkb1}(s`Th%{^rC6W8e9u3CuGm z15l+;Vh~{BJyu>RQKuXras5vE(y;jK^X(clt_UA;&Y<4bJ>nq~_gAR{R4d6yrb2cO z1dRf`Oe}g1ejlE)JH$Z(%fHcM?g3*ZlTSC7d~qeyNCWk&tIsq~oeeZkj9J<&wM1dK zlL)MB;>eKqFPyla5zg+lQHX3-Ibkt$%M0BT;GBy=AuyP6aFNGy zrh|COyPWBb0rcrgio~#w`O7^uKF#PeO*aE@l8FaTz!15$fvod2UI&W?dCW=jL|rRE zkV7+p%!u-PY1R1Sx}bL?Jm2(aQN}}NsVBO0svrmP)VAlR z{7cmUQ|P!~O+-yP670TrVjYz)6x;d9T-g%(rL?qta=u7V?&sB%20&yh$Bpnl42)-& z-SVIMuc(geIq0K?(_Pnw8Z($Q>eDmxZ!087f8h0du)$&aw(us%#6(7Dau5zmJH8i; z66LzfM&8qG1xvCS2aE(KL&j+CU{}zz!-u+m{Irp_5f`6;JlPYKlX4vW90!R*cVFhi zN`?DK3o!w&UHx>wsY!0*ST(5GBkn`;DSmUc8th;1C*9N*(yI-Zhs)&6IZ3*-2qDn- z!TFEO-~QQTIep6d@ntK)47E~Cu`QTM=iKm`2{L?-H=7WssgTmNqz!dTA0%W#J5bTM z%CNQ*h9@doacOtG2?e(+?3_2~8u=GHoyc@Wbsr}%1PRVT^lvx=8LB0);1uUon}V-) znI_fOTEVgQG)XQtj3W}|$A*z7G4aMPV!vJNt2f_tWrF3m`@As(VE*v58NBH8CHik)}wfhUo zcM}A+4b1;mR-4?Lv+>U9#2-$7<_ke$kuqwApLIB)-D5DE3d`Lc?Sc?c5Z8*UuFT^F zS?P2DyD4ucfPVnWuFrdzh-P%}eI=s*2P>p!NA3u;ZoZ~cI0jQ>_Z&pAtza$o$gF&V zq9)rp94%*b$oRA z3Y*34U!W~YUk(##VVfHkVL;Cq6R~xQJE-?MTggDUQhZx`^hH-U(3Is1R{pQj1g~oc z7eHlRIBUas!suZLA9=LQPGU+=c=ZPJLB>OpoAGmf>@tF)>K?}B|Jr<-w@oVKeOv}I zNrraLoBSYJcKA799!{khxd|q+@tikfGDe%)ue0hhl@KL}CelZb`ImgZrYllSDD^#X zK*!A<+<{{h#F5iE12gA6Tn}7Yl4me~D?jwzvc<;1>vvsdJu7Lz1*nn`-7e+}?oQ+d{nJ!Y zR2V6mxTF>Gm{@-zH{Zo=I)Sc6=Fn-XuAKq$M}asRGeD}BVqXlG`sF5v4=j05uzjO< zqpDW*_6_mq(dTL>-^ko=ME8e)$Fwm=1G=RN?do!;GL!6goaUYr0SP#1eNCT+=sB;$ zuW;`i;+Ey*mL%J<;1gPFh|t8&^p>W-B$RkU&-`p|lo3(5=$0awIDI>=qIyrNON z)Qd|7U-k4%dXadD!{tIN_ZJ(n) zaiaT{9PpuCLL7HQw0CXE#bRCC_r>34!xeJ=^kxfXoyF>zc>IlS#AO(eWo%dQMe`-c zq-!`qyC(EOuxRc)30I$Z992k4(F{>Yvc~VJVV(^PCXc#XVTovu$^Ttad$pnnUhp4I zS>d_2F-5P)QnV_uL+(%m2rD4zDLn2wP)EJ#rerYYJwj__IOF2-ul1R=>dxXiQ<)In zMxN8{Ymt1@E-lEXmrypD?)-6VlT!=84NP7A>s}2a`n=@`gR8mY9r>%;=KFJK)}!n| z`k`%md;BRq?}EbBbghVP+z53M5HNHj`{By=iKPEkw&}bWGcp6g*AH0UhpJ3S5Rf z=0=SEW{i<@ZR&y9h%F1SQ7gqoGdnEkEGZyVS=Ql-k(QuK)y+Q&!Na9)EHYp@`PACN z#=rTO_r!n1G(-)mjGv4v2mpQ5H3|u4ocH)7(4ldsl3JiHe+lMK(a_lM@Fgc+Tk4q@ zrkRMG_01ltoy0&}QdoUL0`M~~a3&lVw9fU1?1HB$D<9T&J>9CR#bej`&k#Ls3agD( z)*u``xoFWS&_1U0<2Z($R*mC7>zrF1@ek)$o;Tt8N7W&)L zg7cRG?CJ!ejCiRxOry7M7yzRS$=L(%6%g-Qj!1B6Ch(fgQ$PWxst^Us`TPwv`OJ#W zm6CU~7YavZ9yYWFbCfr%1TtJH2ILzdFngci?tL-yoU+dE0^u>$io*Q7i8~2&@=GvP zGTr2LJ%4m$7(0>G(Z7a+KmI_$ZJi##*teSGSHGyt>0_Fm&50e(`n88t)x4kLDeVBt z0bjj0)7Rb0Z!ssL_p)XuH<-Z#AEJ2PsOc^cYr}7vadf)rNel2351%I5Z+euWfHjkh zD=Q1@E}z?`m~t|x(XD$gV~BxzfIn=HXJ>m1yFsh0jZn`NtcK#6D~brCp)p(wBA0;h z6*ucZY&nE7hFPoGS!kv@^wPKYzxJyqu5$~+#)>QM-wEz2f+Mc>Jj4{C=GWDE+OCm; zdrz=hT5Pq;h#MM>%z|6qvx^3}cn?G2+)W;|&{QsH<1&RK@PwT6w$csXg|}M*w{y_E z{g-HmEy^!36m`wPPZ-S%dh_1una%6?N^fw~ zJ;*M)Pk6Q34oTnP_7lu2pV317kJ^uts0Y1*wvXO?d}dmllY9BO?NW*-i)i4wNOqP} zQKv^rP63GrLs}{H{_O4#!Gx()_6-1@ojqKysA{%7xdd4xp;)B^HvVcaWYK}l_ojR| zL;B<^zV&j`OX;A0ec1OgM%Yo0!Lh-k{Rlr*ery~&(7QLC`Mk4wtdz0JO59m-CQ^-! z&~gyYs*8qzfYKI;O6nq_)Iwi7tGt{qxU{YGUamo98W332UH_V(QwbqNpn^pZbZ0S=3rGg0K!3J6*8C2hyoC!hqZXH|X?Z zyJ^oAqS&ktBF$%SnpsG7Wm%G8dwxa66uq6H+A~iQ&{`4F1NFxU?G*2VV&q%SBn7D ztk&bd6~jL|>`RaN0{JdzW2#w-qW3QU*gT~NM;fjJ%stW7cFmz2;~wkwPokOc~b5XXTA=bz9}A-Po(~( zjtH=@Ae{ZgOmu_Y%vfgQ6mDb{&kinxUiGhwBGdv@eU8xt8AC_*hx&H1HAGkJ?_HPE z^qY)=<0BZRd=Qec4YAxJ$PBTxezv`FI3j`J;l(v9@PPHW^Cylb@SVd3tkt*2!zlSy zJNrfidez+DT5?stTMoi>qL;k_mvbJgDS6`KRaY!{iJRR@l zm`r@%a&8>qViDkchG^PUXYz#!i8?Ots_PkDU38e(X{5NFM@a$(now^7JjE8Tfeuw$ z1b(DH46*9(ckIo3TJww8e-mA{&MA0R&OGJ(_?C{^vay&Y4T9!bS;`0vUTzf*jX+t^ z5LU}&v9QH0?Gj3lvnzU22|Y>o1m!e!P}eB^ z;dH36fy!xK8~Qp*LE9VcP`YvypC$a1GJD(5YBBJoN}Z)g<4gnYJ(8jd#^iBfD)bh) z&ic>+0xrvIL1RVUfe=b`6>Gt#LHD4vixYP+{|PW->kEEaY4s*9-K~cRJVO4l?KhM+ zr_7!3o5N{G`u9x4OGaYw?_PYkG?u+{1zyw2I>HEo^jI8@HrFzMoj;foB1fXsIF97L z;n8PsLcZ?FkgPP1QrvPL|ET97Jb3oMX>fjUzcfG2i0C*Mi%U2mxp-Ck0)~_aCC!j< zGBa8=GU;P%jn~J*a*47J|JZjWa?>mzZ&Ocy_&2D-WF-@nj|CJsxE=VXnGU0E(eTGIs0(4;=d<70_hfGJla>TKE+eIcmc^X6S8%zj|hS zIKx-)wQgFjnMW`X6$B)x%&z=H^a)H|r*(e>;rfWNWUGxeo%^dh;fQSolnV=6uzb8J zdW9c6gT?QBpAK(C+y#+ZDqMHSilez>mhS+fNdQC^l0=L(Wt7M>+a1|4fPz_a?5nv# zBtj)>^}q7e#Fn2z!uwdDnavGIIB)A>6NLP8#T-|u@otpSu{tC|c2wpGezyEr&BaC_8NklOUk(`K z$mXS>zua+7BXQR69?TQBRfO}`k;Cj{Tq%mM*x)OTRS)@0=~3yQflfj7Y}IZ4fk162 z+(niQ0Bg+5`1&$HFaSmQk*T(4U;A334%YL$R838EPDRZf;`WlR)h|iE1{ikKs9HE;y=nt0}r=ON3p8R zu$E@vJe`OKH?2F;*?T1~jpZRfNW23_r%=dlP*SHKW~Py8>a?Y{GnGehs17h3@n`vG z*K^dvPR6fwa4qXY(|wNBGOfJg+1V-ZOmx8F3dikGq6?}+4`qYdxm|s}nYskp%XKdp zP;I~`H!!iS8jc*BycKN)7RkyIMsj6t6GeQ?NfauLb)N7`j18dT-9H+N9A=GHcal49 zjYbJ9_`jnL=eLvwyqVI?q?C>>eMRlk=FU1Q%4NfBiA@XX>^T?zuZ4nrv&Le0amz=D zWVnkGiUSx1NS86sgAdOO8g4#yA+kZ`EpKM7SjTBSKi4bZ~J^N z#H+3#Z4$1i5J7gey&2+cbVXO?kN1 zwEw|9h7my4w>$IV%W%SFqZXmX!$*_897Ud+#}m0NTHA_retBjI4IGn@uOj{rMv*Mv zRB7$($mFkqn>zgVXeo=32sZ^gE|J}S@CQ~aIAZY{=(kITN1fl3DWnL{|0hlWYityQ1%+EaKEE;X+|#wi8dBGy!~F^=l28`WjF zVtb+%T_!w)7vuIC9Fp`F$Lpg4G@(8`|KE*p0kBGvkV8=5nJ#wl>J`_-C$2r^!EWL| zqaDj(C5})5``9eKpuNKJzr|iCBwxSOHU4J8 zMF*AgBS^5JW6yOh;}5xq|H4$68AL*$3k`2i=)uLT?R>0p>(rlEh|Wigfwo#a_b#^# zr~i>X;>skg)Z@lMH~$O!E63wSaCkB;)T6?XO-Y2EWGA6a-5}kHQ66q)j2!eojb}tR zo=hJU3Dle=ODG^QeOCqir&9EtDXpaABY!4Z-xW`ucQg+ax=ir4CV zq*GU}^lylZbE@d)e<8yd4+$McnQM###anY&KG|wXQo9dDW)vwv{#7Zk=i|n4ie4;I z+mw3Wab5Vne}{$elR(ciR$;Og9D3G^*fsT@^IPds?drqkAnrz1cJN(QN-dXt27QYs zH>LlUXD&T)*Fp2b*|CbWG7mSz`M_-MR6=@MI(KD*>U8_=_ESe^p!NNlH!ui=TsR7d z1ftYlAlMlHu!EomsdidF0=~+edOL%ad(antj3ppM+G>IvmxO;$B37Qnaxw{8AB|7< zU0~sG7h_$jFH#D0n$vw6B*!Z8%uaI{#qE<82CJi;T=2oTY=pWF69RQ_CD%O&wJLYP zcseg=z3h5=eJ?iTPeUwTNw5K?_XST)9)#z%lrL%~ge-b6v*nePVORa_J8>mh<+c`V zr#OB?G&@immQ@m4xLu1%b2Np>HaaUW|6VRMSJRo3EYB&`2iJvE-&? z2da8O+!i>>dcJLs;_-LTfs5u6_yCrp%f=;h8n-E*b7WQK zDP@^x_>+aEjiB9?Wew(~{!kOiq5CrQrOPug^fb*W!gf9Te2qMoKnu?QD$Wz_OfAIN ztOgMBGo3)Fl!gk03=^PCESvKUAdFRJ|DDtEX6j&vsTevs7>^y?mEj49+n%0}%ni@{ z*OB@C30~1?b3Hm5S1Oca04vxCBK8S?A}@v$k4%QYf&cc|Tg;L?oi!Um)p}*&4%*I~ zEMo1R?OKTl?M-mKZ*^6ZznOa)%_%9hg-%^wiUZ<=jI8dXF-j%fj$G0Dw|r5ELHEZW zrH)TX{H3}Qptazv-~CPm1-{(%@ZT@mRwaN)6`Y?qOLaqiuPPH2X!Sd}LxfR5W>(kD z;#jV=4YhASJv|S`k}H~+!k1}~vm`>zfahpXC_rt!pm2VhA42K8;PY$|Xk=RCbw-toM2aUX7DCp1$n831@TE9PHl%l) zxS}C$=Aj{(r4*4DGV8q}J)|sp*-1+V?#R_ptzP#8C04x)2S^S)#8ehT{}C6mEzLV- z6dODMM}IAyxyF8bfze?Qx{uXev^PFoWzU+u5Q3{^i$x#gNxr`o`wxj z8>U0T&ELU2+Aa^~F>p!AaQ=Lh5}zs8PmQ*1)}B{MwN7-XH!1K>O&);lc=%kN;^A4n zhvhht6LRRnSojIT=_o3Jk~A$JXSu!fxJ_E3)dM!K$X@uUJ)f#MTz)L_-S!~WAR6Ox zFtf~*V^gWts#nPS1db86lgwY1>56mr37?y!{d<6&?f=x_Ma;BGOW_W)XCv=5-@w_m zIG$2Q^VW^4cN4D@GT{80AdB~mI9qUUQVB2MEBLoEc_}g?t&)VCSG*zX4=KYNdHdo{ zCfh8M3B)jKj_3d`! zAxV54%i6eG^ZRG*eXEpxG(|IZkK)<&aGx#HD|y}|pxu;@&V4#qI}#z+&qS1s-nf2p zl-=gagtQQW?QRxefoUI`Q$YWb6j%I;V@GZiuZnq_V^Z;M({qg!ov5Q=R5r~dSbd`1 zHKjMNV|W2h^1f5Uw48=XFd~@E)e&xvgvU&g7L4Ea=^if82wzqgjI-eYj#0YbIIMRWu4mml@`ZPg%=A@>D$G3 z;{>{2&KBk`bwY$*310^veN4yJEnCiQF0CNEE@=95Ub+@DeBY_a0Lbo`)PuX6L8;#0 z8&q~ zYfnyCcSzt+MSK@XjhA&NgUD6)avUCZaCVLureBH??g@3;VrSIA7%e5(0wV<{e*syc z<}nV{!ZDD+VjhE~31Jg;$9&Xt6L;=Uro3_d;+SWzvZL( zC1;{%oaqwvdsGy~RkDx1J@ga1`S^_$ zp`oo|N)fBN?Kp2(6`WsJWc!k$khoC|*?{d7? zj}2^o!aa-HHcbbo7w**`fZfCyx{|kpphP%XMuFemJ6JHYPqN$tmmx(O~TzclKG>>1f_%O?EC_>vo^xGZ5L#9z8kKBh00#kmE_m z>e;{P8L7CPhmM|1TXGMSj@&ta&S>>;YMzbwl(V0QqSS3r)IxcvsA6+SRB zd0Q)guE;KcF>6?fvABHVxnnFHXR81*ayLqD1J8(>Pc{Vgntxu%|04OG=|^mxcZvyT zXCgDE!P-g}l^2;Pq;k&F(0Pn7Y$7rY|A8B4>`G-yISsMHW4tc!HA2_6yv*#Jy9Fq_ zj{v3jT7#NRCMo?S(#hAUuGF>QEQ5>4?P^rqmc+&%qqW>&+ zrb8!L^W|}2LpsR~lX3r&*BR~e;)MQ3CIE;MI+u@*a}dmT3z}U@iRT z@F`E%0mm;Pvd6a!Lgbp|*IS36D;b7CyoftOFYO>RHG3ay7Bx$y2y!o=_ysRktsF`I z?tEizugKiQrq~J7ZGY5YyALK^MMopu#RLHkVbyZ+o?$ovJ+rs4r5ZTHc|aNHwWJ1~{})SQAyX zt%I|bghrn~`6BxJnwj3>7{$e-$&>Cazj`t-ULq;ay?%9=kg0QBP&$|f8byw3J^=a=#&e%PVxvWJI^Q7$46q|vvM38?a z^!5P$=k`?v&D_L4Lz4kf`_^Cf?1x^2CWmUR623XOx$C7NrHuseX(Hce)sy0Fs$j9X zAIdhk2urF{>KIg}w1i94%9|qznV_9I@mVFS7V#NTDI*)3kAof0Gf|zVi?i3{+T2Qf z1;o%L;a2$o654R?@Qv^Ek$>ZE0m7%{6A;2+fYcWH@dMHWbNb21}XgxzN%NbWZnI( zT)7$|_&U`1ck;lDRJ;eQ8fz!9bVxWxpB_qGqy?&5H6_y)%~KVS9Eh7Sx!HJZ2r?A2 zX$e8<{b;Z=XwDYydJ~GQ1ZtmAbX}{yAnP*btly=>0{%1d1SPj_lB zmYGA7n(k?1?5rxcw$AjYQCja7Hd_jRs^+P2`Q~1XVeSP&j4ta+`QO6e49jcP=Y_Bo0u_eRGGA-kwZ`zN)5`|6iq*vPuJY?R z;PAy=WT}pK*aMQNSaFIHgwTO28qe8V-;wGDR4<2;@{>j27sKWwhI6K^o7C@ z!%TDcS+81NyR78bQNH?ewUG`bc3oc~X&%J76u&vDjUJjtevyw>#`{u~vasAP8n@PO z2e;s7bxE4KpWsqR5lD_d)kW16aTj)!+G639oowntWq@lJGS;0*Oc%08W5#lEkmF;w z_&@tc3XLl#Pk>88a~pt1>M*m#d1WW7uZB5vtiKsr3X6%mw!h~17ka0i7-5HHY5lCY zBdx4l&`AsMKmZxF5QNta&FGqLSAbt8WniE-7SpGZ0T8vW28T%w_?_tGrPZHtXFN6v zSw5P#D1}OIOr(NCvhvLtD+ReQekb^LFE=IGBrF8eDNIPIOo12e0@2&*7vf#QD;Yoz z;8|l<3n~M~t zsc}N3K<<@`E>NH%BD>+g!kOXv-Vf zJ&%J-(LbDF-||P5O?R#OLnU5JSiBYGV*EnE?6*0}x~G3ts3{ z6~m?aj-hqSB16C0!Jho5kuhf=PkMXfz?E(_<6?$3X7?bR=>qjL#yWOmXW_E=c#QGA z=VLT@oeX+!UlP=9oUcC*5`-0-WlY_;K5CN83ehxMK(k*<4~km@1`oC1n$eP4waXl1 zW0f*F*B>>WW;x14r%tn%?&oVJxoSP@N>JtZj&-*r8R&=a|BuROB?;En)aTe-=w3sH zFItY%I+5x+sBq88oTyzCO4L6lRF z_TO?Pzu5=HdyY=)PMMJJlJ8?53Zxuw0|k@DNJIQR6=QuW6Q)_=#?vJUpDl}(9rf%T zPBfPa=>)w0w8SQ?V|UfkLRhG8_Kiy7A^)am5Lq=rWx*{f4&p^Xn;>7ym(v{9lWP=v z-$l{`IgT^hucfV>AeMbeVuy(|F<)OhR%f=tvc4-NwSo{Sq3$Nsdv)Tn-Y-{e>Ko67~s5Jsh(l7R>-d4$RT^iK7M=0;Z>z78cn$wtNvYa-( zgfsXCb%juBhf$|K{5hH?MIx?Fh>KY;A>Tv!_5rHFF$7r> z1t_wbK|M%xpZpM|?Y9r$BpT>`^7=&k*X&{xsHysGk5?A+cDX*(9vK+Yx0>ORvO&5I zpW&bQ-6Cx(s=2S>6+XsDTY2BalW))HYWdfd%%+toh2DU z&C@$Ho;Md~KzUesO`9fIY!(ym{Six*CcB@U&?n#n5U{VVo;9W1A&FN4qnOhCEZ73{ zHA%X+2S_)Rpz;2fPPHr(Lj%5~Y(@7^^ZFhyCC_Wa9#SuV3PH2X{5;}g@q&5Zx@A~m z491`H{X{H0nhk9!aY&*;@7W>b5qZ#KJDy|ICbrVE{>s%nM z>mafxbb_~5nq{U+a588c==s9n$vLhulex6cs-Nq6Q4|;hQ^OD5lj+N6bN$F^FH*L< z{~N-CZa+$n1R=zF3CEm+8==|oKhAsD z)-6|yy^(nx`)IJ=rLmexF`-=$q;!qQ7miV9u(B8OPhF*5Kc$e?L59kXWQ=9In^a)# z7FIJG1`UhB#tCMu?GFFtuf@wwU?KORVtb8bTD+s?M9CEKJ1X8n!9_~rOzC!sKEEdU zqLoZT_fck+sLF|NqPUC0W?CkXL{0cpa-Eku+T|kxyqMS(Q}IXD(vT&Gs;F+sc$IEX!+F{T@{@@cT zmLBjy_ayx>)J&Elm|9oS^*h~vLmYN?VKPE+Ea->&R}gE;Kqfwr(tXFR=;F7)MbF-b zF)XaWpwat@VVX~yy$JtOwm!11vczyGVJ`gS*1{sj`dL}^ME$IvYjLA5MP7qRgA0^!cBT9NoULq#v~|G2x?8?X za;p-VC!0DJh`JjrugeTFB}dQVT!qxS1?5SU}7b!brH=qcXCOsD@YZ31NVj{idLd4 zu{?HoI-WgX{w?cWUU#nMP_$0b_rghw6ch@v#$znZYR=dJ!61W$6P zYPubNMH`A~TiLme;i2xN7#_1=J~9)-U?zYJa`}Wk_^9jOf$y9Y*=#v>0k7v?>0j30 z5&`kuBJi7ltfp9+9wpW>m~|6m9&-6umYGOT7FfR-l}r9WP)J^0l}?7f{FPllbaK?C z**k?WxQ(Z$5#+ubT7{?GBK`+$jU}t{l4=D+hmCuO1s``kwV!Z`fjEnLQU0rL6ghGI z+7F=nx+{APsCx6IcLs;i4>nsBOs{(vUB<*J_@yxU%m{rt()6%GkzT#eAV)m!tFGU0 zSwE0$FTEGGceY7%(7rCK#U6MRLm=uOJ|#nQh8EC>L_bb`(G1LH*@t9`rGF411(}4P zH|RqiU=F_$0Z16`eiZ2dk{I$WEgqak{`H3G=elts-g^wjG(kA;PXym z>>WT#cx+B%0`xa{@yo}$kzQ=*J5f|)?K)2jPuL2mXA(nBIn!nwPOW!y22xwc3Hv++2l!<2RR^?C$sAoZS z&gjY@Kyo>VE{(?sXpLo3vV=}xRDr)BG(b=MCiq-j8GAty&7{aG7*n9m0nC(kTYf!F z^`k^&2mX91!9D30sw|>>&gh6ws-iu~Sx}?v=E%yOdJK8y@R8eywz=idQTSMPW$(w- zrGJYSIfFH&11-uA1L)oLndD@w%V46EH|&e1!wv_`PKI$<8_>JTiu@V8!4%{;PuHkn zC!wT$z>>Xm^}gtY0wc)cf`W73o8r2uAb@aCmI|?zuk2>)2DULu@Jl^gT^83X;7+J>8SFjn4NFY; zBERJ7CMEAC0#xq7HQeqVdfQT~;m3mq3amKaX}8t_n59DX&bOU0z`BK?5~F3xX=H@S!9#6Eiky z+cfxd8$_3%pZ<{fs(OnSdGZTt0~;romchMRCnFmSrr!p*4s<19 zR!YuEhBG^WN|=laZwloAJGBZF%sxLOMrt@D^w)1I3J`O_Yv#?d2!U82MGr1xif`M&u!>)Ifnx6Y)V0!9c{=;Btu^Z<+55Qq3AR$D>Gu(vo@ z+BymIf*$m(7!4%gL#^rv_6`0MKmSLw!Xrmbd6RI^o#r$Rb&nzoaiai*vi#l@bSMxK zb_{PX{L{{TP17&SfIIBzXE+VYM%fVSm5(2R2T;N>_K#f*{r4G8>ZD6fHxs-Y z23x8>DL|`i&*e#RCUItp-RP~JO??m|BZaMW@OKSXKTt_Z>ov5Iw>y5|5mC5_fWYz{ zBbK~&hM|0Mr(dYX!N;WJe*=|Q6LKF^YFxrt|M4t zeYS08Y^{3Cd~t+z4G(|B!y(nhq@{b#+)3wmtl4=U;8vV)`TQ417<2d2P1{b(+bztm@5vxC3q>2-Cbz@Pg=Nh5_l8m#OYZL^U zxW(r)EMAU4cyEo<@CI?@dLm)ywww%?;P^|ZOLy@VOfQKU!yF35)#~BTwf>*cZR>Fx zV(2I0mK2ZnOJ!RIup8c=stWDZ(}qDP4ipTv#8tuQmF{W%?Ca{GYqky|3+aj# z%FrMwGFiVRIu4iOUJJVJJOLdyde-nEe#Q(+^ZekB zElX&eM=ito&ciOBBD%SQ1rNlyuha(sL@G-oh)dQ5<2u-4){)k!?CyT!T-{r1ch@`N z@nN+dG_GnOLAS#rb3soC8z33G=dS9wf>eDmXe{Tby;P7k{80ZCI=WHzHz8^;DnY2N ziAa2&y;UY#$LZ>MjYl9B_H`5X2ukuMfrHbH+p{RR52c&39A^;1I-*X;)X?)qUdt12 z3Iwq3x3uFpv5Ml^2!g=IOHAO<`}$<5Ff{*zIHx+y1xqYbKqI@>l@0p@c}ho z41*{5`@Lop1pEw&D)Vx7tbR&tl>&jVqf5Z>Br%V0U)GHs>5%=Y<8K+rVRYHMy`$CO z_S2JhCng|puqk1%SS`+3TeK>uWz>-+$B_g6Yo6D~W{3v{6g|5I4+FD)*n{p3wbH^MC2DU_`341}+8DDR7v1p%-R6pKHIU9M0px!P^KBT0<| zga0%G`)!*EV=w(angw=eCq{v0aayNWykw93KWxYetZ? zd#p>%Teb5c$>c(M3^4S+X7oS6{K=Ka91fYMZ_45d`V4`t5on)SsYsXWY_mb`CGISa z7gDf?I2vX&#?d0Us#ulQS3CGV4I^UDO1j8!G^8UBV$VTJP^%5AjQFSh$JFeO1K2W1 zCr{Ijlctb)|8jI)g>$g^^j{=G-)NwN_Y@ero|=5Ln-EK#{{H25U@9_>mT?4jRWY65 zL&b>%ehdg}}#_8VSk#M5RQXLn^8>hnsML>SNAy$5!3#` z=ix=&zT%+jFW2hSl@F8NZxw7>~nKqS7Mwt&zUis21k;-zxNORK+lJP|LKtccdmxa?*VJ)KN8`SfLw!60f3y^-E8h>ZVXAFZH@kA z*n;L7NA}~HDrze8b)v1HH(82(fQuMGR9ZJ@=&W2ODjwt(sRe$r8eJdzb$<}G%8kK`LzI50brRxr0AAZYw`zgEi(nTMv7q91> z>cU~qcLhkQ7)6S4F;gH3_0LsA1R-=tsfww+6b1Rw)qMFc7ti5x-<{U(37jhKWCTib~7#RxZ+q&Xn(tHQwHr*vhG9rqONcGC>8 zV)udW`p0M)tUQeh@347!VGO10)HWy1*k@wEa@%0StNgY@qWH@$)?TXb)Dn#Pb=8y{ ziKicX^n<-Xkg`6t^`D3AfOlQH+UMZH}jjI^$Yjk-N|eX%N}Opa_fLPftVPvMnnki`70MH8AS95^&6YHK z6-z9R8QC7k!-@o1;7cwxrO5yajZCEh1b)8~y}C}!iNcF!kvWxB z9O6a(|#7N`pU4G#Pdq8Wj#ii!n;^XrwHQ)Hhc2H znivDfbwB}!m!(8iWx&RO-O}TrL7Zg6JtrbM5twb*>fIfv66z&& zIB<~>bYi<;-y}1I30)(zo$|pZQnvM>T4>CyT))X+GYy8k78s(P2#On;=`lD>ILSHd zya~f@5i;8>I`@vEXyo7F`c9j&cPBKKC$`tEb;-uXuPN`;cR8Dls&ws(N7%r>w94S4 z*`BtC7`V@kBEb%rxo?h)UUPwB&w`4ayU_0<^A@BpV$hp4aj@6h+9`t?dTE&Qj6}d? zMw3{nQ@b$X_A&D(PBc4J(^txE+nMDezP}n4?QJnVm0)YmSlP-frc<>jQ=D*rqAn)S z0ONpf5iC?2s zm*I!vtlh ze!xRzfl_Oc-DorYa2oHBPNZU_n|O+Z*yx1z;494X255Sv%dc}OjADBqxhk5pYjxCJ zXP6~kk`E{w()HZzI470*%6Mli+NtUcGNrkKJO!-O07Tu$0g%cCwz`WFdxZPMcfmR4 zfGw+&7f>#DF|y5I?YU&`*i6<)*9moL(C^chy5-HK0fBWtjVaj+H3ToP3MQwlf6%7V zRR@o9#-YB~ilo!ISz)OdlA|UZ|FjD;-i7~!1nd+-Jd^tzgxBekvE)$24wg!hj%D<# zP3?!iNtSWJ5Rk5u0T~KkDzW57sbc`Up34fHprQ8?bqA$O$KfTI-w3w1e1doDDm+jN zp}a5U%}7r|5#q36NAl@k+P~>ka0@UowkD00*0sorm#6no%msR!7iJ|b-~GQOpRak}L42jv_Dby(P4D>#xQZ=- zeb;}wb_*Ir-_~lJqMWGfgQ*G-#^Zu$kC9P-T9PJ%7LdYOeC((6huO6Tdd#W4W)@0t z7iMD#|6X#dvAZ0L*n1usRAI&U7Zgd20En%0@^@+fb#V>e$9An(M0<_Ps>8e*Hqo0o zqaKa6dQDQ$;-+3}epVk30KGEsrKVg8BOf$HcR)jNadUh`7Oqc%po`5Rl@?%xYFNfxlh z@v3O9PmbT7_-m&Bzqd^H!KflGGM5>QPcyjQSR0W6bo|t`x|MJIUY-k36GqlXYgrC0 z4WJYa!HFIVbS6!mLLUza#U>zkEr;3irx2mn!3^T-*lANoz9d>n#UYh z2b8+*-;ik!2asl!xg%ZirwnD-7TFn0kK;o^Gs&%cV3nj;%g(DDQN#OUqyZ;bFh4-p zhm`n{-+@)Op8Kw%06AH85ZR`}r6fH?>o41yc5&ju=_%7w_Ex*17EyvhkvVHRYXp*|;Dh;^-EJ~X66g-*$Pb7h zE}o@FSZ$sD6%4rZsEN95UScU{zXWw>CndE#qOm|QMQMS?EPMnpis-B1E~)nqV|CDnq(JRXlPLsc zQNV6`wJgE7YRvIdUfWV>^g0;?y16A_!?eR(r{t7|*Qt=M%8Z4oLy%o*?->>sBjgz^R(Y zzt@tNMpf3dY0Zhp)1|-!@S7(hDG(nmcE&7<19v^|`alL#yxT2Nv`RyFnvN`VcEXkNPW0eF`egI0+BJV(TBY)9Vx}LJ8Dnvtop}#rq z)1aiyZqQsyYy`ScA6=!H67(&?X^|wk3?qvTV3y(LUG}i-LrmIyhXZ7wk?-v973rV& zYz+z7tw8+`GSQMWB59$(f1J7{6^<-rhVVSU?SBYWE2t`))9`Tk!C;jDg!lSm{}_nc zsSC^8Q5d$6;0yEhNv8;9@8tBLPZOS|BJR+?#Ux?c?+pntg4emXN!4b??<<%kOcyay z0|Y<$(n+O5avuT;g*0CmZSwXS?Q(AEcBXnjQ`fINfvEyV9LZoICcDgX!CRXvM?+pH z$l}`riy+LBjVeCBL^{39bONkLO%I{sFPH-{VcpMb^5iUKy|2|e^+4DjdS9skiLYWE z@PQ79w#ps+U`7PbSVb8=Ga6Ql;==yeePi`XXyEIwQw^m?_R*yzd6xL9278ES)bx#Y z7&HHn9452$88(?TZ?r4u;e>x@d)Qs3YCx@|8U&|MB!?J4UY0Mra@&TVXf#(k`i8}{ z+ecKMM-MhZhZHQ2uHzSP)YVkMe|@_mZ z%hFC-1j^OPNLK!+BGwh!+a|0OS%=gQgO|`5w&-U+EP&S~eKN~UEzj`g zw8!$8i8;cSP$Z7NC}!sAk^p>j zDPW1DK6ypik|9c+k6$C2h0rf5h3mLL{xAL%Akk-u?Nlq(s7m7I;irL|BBkRT+0NCH zq$RXzTDoW&CkLYnrD1sC99rE*5aa4qJQ79@eaqiJ|MsH?f^XPO*}tGr0S0cDpzn(l zw)re_N5H}fgerARCr-VmhL%QW09Qm!fTd7PR(|_8*h?vi zT@`m2b)VAI4UBXqn|^U`T%al+RX@Kp1xgM#=nHxN^=A4P<&bqctBoLb(usH z(doo@aJ})@Uh|9Nkvp;2wFyPP0Slqe0+9$>n|s?rNY&%`h$?N;!2aD&h%8TIyCqgs zleEZtbCEzWlu0%vjenf8ZK zfol9rA(=SMGB|Rf#8(Vvp5((kKwnTa!qe#*ev1vUyDs|N%ZAuGa4?>2^!Dxr2c)Ss zsVO-7V%IgsswuZU$~4Hl5mcHUR-j^zT3$5n5VWk2i|PZ+HUjghai!7!IZ26UHGqGa zkGvDS+3F(kBnhbT>uF5O$*JN=m%>eXN`M?Rrll^|jDrJ(MLJrr2)*Fve5;KSd zE6nlJ%hWYmrqC(9%$|#7*O$b0TW3Nj2UF4LZklHU0SB-d`gr@FQAq z&q@G(6ya(oyo?;W!qeLwfp*aD_PHxY0Za$&&;5dImBtem5^Gk$6}v>hSkKc2bQkTn z&fag$v4GM^*oKwab4X3ZyX_p~j;)dZBE{--f zu*8oDS&OGBmFhH0iY8D@-!cZ|maF;=!bgHJt0w8W$v^ke(b@U~9tf9iUV%;Gn7juP z11&7-XJYjvth58XeyQq*k)H6elD88!u~{aCs{Df{R{8=-2gdcEfl{d5(<@0oJa^*K zc2Rk{j6LOan2#030tkBwz*lTnP2f>eQd-B`WG>d?{abr>U*AB$yfu(P5r{Yk!xwE6 zf*3xHgc+WdIQ(kf=TxQkAe3p4vjxRpfO4Oiko09ils;emNMSo{9+Vc}i)4SXuCO}5N@RbJTZVF!$v>=uyrtbsABzT(#e$VW4UGfRN=9o`WKU1eaX5|- z2!q$}>RUW~VcQAClwA_OgGp-KLM2+Xq7nZU*P4qji=6YFO>l8y0I41 z!0Nn~n-uwEetP)?hMsN$w~HlACIx=PopP>mAW6Q(W zG;pMUBlY)f+1I52CRspCrq@XcTrVZL#3FlBM`2w1#_l}wO9P;-NNo#(TH?>N`Xy_p zQ~w6J%!YAybVfqbSzgOVudyrlL)RwiGfC=e+yma_LSdDPl?R$I3 zzCD%8n7tj`0)xT~H!%@IUgZ&p`b9bfStDkgS=U3&S7$~&es{T{dzj~2NhNAKZkN+% zKIf_x&cngfQbzRzv2cHBdyZ-Z%ywlRKk;i{W09!&#D$B7d`-~WGuyF=J9aoA?+79z zyRoktv1?)F>P+%Zpmf55VzoBo|IsH?Px|Rtm=Mg+_xX%$JEdT|H_ixG|JTdsf~V>K zIN1V^+E1PH?|>3RwwK?yk}gs0^7LZ&U`%)PqzV-c>=RbrU{k#A zUUkl?Q&beW#MGOy62k4TAv)}e0bJdOk@7B%98^Ofzx{pxIR?wt989{}rD5oN z*8VWA5470a*dHSJ_{gVIiEep#NkY$J#^E6LMEurf3VovOLO27q*vL!%z2Xc0J0|c& zjUXUi^r+)QDSEQEku!Oaw1AWH8^U54$uW>M#a{e9`TGnl3cBQgrW(JIFo_}H^d>x? zUdO6w&#ezn9Ee&(2Hr4iNy-Y$drw^W*_gQZO{WWb^zd0}l^m?rETLN_xb=Fo&wH1z`*l%VC~MRus&WMjudfZDr^5I*(RE{~{HNF| z`t64}gv4Qp9^H?IT<2vt{9Jj2nq79PP!OUh)%8UZufqccjsVg?BOoTM-WTMw>;EKa zdX`cwC-K&=xC09{Aqomv)@jf!8-e$+?WBc|_Tn<-FxEEpJ8Cdoxqp-nrJC#spdcc{ z6+{;E<}wZuo{&{Y!|V%i*gzuKHwMAn57}x9vQM%L7o7X#Qz{ zufhsDpdohPprQxCeseDQw{%@NpGN~=Uz2)Nc0GcJAJO<5(I)!&7^iW97rC4i=>Q(n zA$d|igZN(tDhZGTQy!y$orEtvG`h%5Ab(XP}wR#^~}_wBU&LJZQ%#T_K7$q?T{>hT|IlypJWIJmUhxaFN@#;am)egFKRit-dxp_2##^m* z7>6W=4_D830B+iQxV0}ZsWf?JbP|drl3Pwp#F%OeH~zIH=vt3mJ2UqhVJI<&8HACO z7AR8&Bt4wNm03*QUw2%fLrQChld+2hUH55`Ur2MvR>0I4CJpS9k_YZM=-;Bk^3@iV1oZZ73pK@wl%XfCw1%*509s%}ks0h%Rg}O(k5@YpY)4Q%0x@8s zq?_Xc$!G?t#KEOVs+XYbKXTVzkPM9Cz}OpJmjf65ZAm4IXdD5aZ8n*aNRWc6Yo8pu zBi|k+3tX7>s79;M82h$xb#I*|j^ayF&}-d&;z|&84iqr^)FAi(OmsztSfE7VXJi`+Wo@1=*M@TSSz;CEKY`d3irY@?`FpG5hDq+Pr(D^vGj~zGbtYdMoO~#*x_SqY1`+-}Ajeqt)(8 zEaYW(skl#`7o8iHrf9e5KfIOFFn^FbD!Aai61cSq10Phs+46OXIF5q=SK~~I=hjI| zJ?C<_v;-LaZswMrJGf0E_g8SEMST)8^6GWsgQ6GA#ZKUTz_)?w`4*QR_{D z)pNVEhX=-)cXGJHfs<$!v~u^6b(sF21OaFASsQ}9^$=COr>^u`j~Cvx!hvlHpeK6F zb*JC|zrspIvPlv5g=KV$X^mqCD;*5SUWG$znZeYbArw7Re>;ziC*Vs%{J||>0|La} zM{#;UUA#Kk!F1ZgqPFB3V~(E_IDgZ6e%m{aVS>&K#Y^6PJ_Mjn0vf}sCiDc3`OhrN z6t0<{eM|??#?LMW$WdSmK1`?wjkIxjn6Rp#+Ix*}auJDpvD(ITx%Jm|Mo^?`A+kEu z^a0!wo8Zep16G{89JdR4ux}|p5n~aLa8v{8voWC+f(b_J)i54P;@9^0%Jg6y*s^Kk`Pw{6Wvkd7B=D~ zs>CVMn`@Fa%WQ%56iY;_z-C176O|}hZqCv@+~~Gj9zE)~h;pbQHnBM*H6pOH22DCz zU;rUg!#__=Y`lIgouity*V9s*_?M^uU}WS|YGioW^Jc7u zI%JxKYkMg`*&QDk_E-8VETxPh(9F+o(c63|+DsLLJ>wu6YR<+w?%(-6Jo!Is%71M~ zDSKkV0$IzwglY_avVGc^eUxkSoAL8-IZuNA;<)>UEQgYf3b*RNzMnm_o5sEx{;RDwKsnt+8%%O{)41Es=R1Av)XS{?+9q9qmq4*lI9qzcwlfnR$#$g|t6dR&l0L*>c{yB!X(y6?h|EB%g#60t3 zvh_Tez6>z_`|;$mIi}n>A{!|tW4&~^J^cctU8gyTU8{I#CFUkQw{EQ&2**{ z6?h+hJY1*0WGf#F*(;7!>G8%ItHE~pN+`vzt;2LFS~UW3^)9_<_px+=+CvYY)EsMj z(5myM{+3EUnkmcilHoPiklt6<&pw?P0Z%M z0r$9iJ4*hrK1|ut8Yzp{2U@{PR4(}gF5KA?KcV&#>VB;!LbkpWRuCf;zksz{GH$D= z8WZT05hhroIW@vhYJo5W5GRouOnCP5IZ;&y5<=A$TCxquq7)=jFbH<{jd z`(+)aU7|*V?X}WD7H+9Ha1sIGX|S#*RWb0Sf5&ceW37=e>a99!-?0N zMXk!SDS9tYsK})cdxV6)cm+ch$7a4CJ`3E8ZzLf?Y8GXQH|Z-yfC(I+yklJ{i|%b+ zkalj;V1KcsuAt6T{$@C@A|*!iP)i1d>M8@2-;y<8DW}p&XG-gYBf9m+a(5K$dn~iQ z!Sy+>vBfD(3=UX;8UH}%jgMpD;%Uob>!*@sr&_4jGc$bj?jPg!D@FN^i6i0Q2zr{4 zc^X%&2>^YD1mgJhsVt#@<+o10FrBAT&xb7$v|x0hC}*7WvA5z}zu?Reos?I#Bg5b| zu=b%7a`7A1KD|}lT%|Ik?gM1hh4B+3YH?`C@g{im)r<1j@cQrxO(@&d;p^zM8a)4} zyMp|guVPsJh~L49vO3F9T`raBY0rdLyE`HL;8odoMPC(mg+5qe(Wn!d0uZ2u8pkRKINytZTlfT7MPy)4;$mQGOW%D{>fKrG4Z!}H=@&91P zhDXYoikmYE7<#G{(P<=Kb_`s^3{ZhPUf7(YW(v1f_p!jYZ$TUE>2N64aZqHx(^KZX z5?Y}od)4AndUAp^`zZOG#Kw2FLnl~42_Jvl zOiJy#rj1-E`YWwM4a3hA0^rY55GQ!GT2;h%{&5{n>Z)(ix$e14+P@BJ2e4J_QRblD z8WX3mol5`_#$EH=Rld6q8qp5z99<{h$pl`r0i$$APk4(8VOXe2Eb^m#5{mJXZ#XQA zQf`4v*)yh1QPD--qO+MNY3O4KC8bEwZY$ZR^@GCvX z-kj=1doAKOK_}5@>CpePR+i(}o3|)D7+0(IhQEh_Fx#zNX>2?VO#61tGIG6t_9H9ZA6K?d>+ECO+1p!>Prn!{AlX_i-)uif|6z zu8eCrn?*3s1IYcd_%94=Q?jP!_-?Z8${Q#)bM$8IYgJ<+%WY1u1YX zZG0bDFoR570*&loW%?$Buq1 zU34amq0?F5V5Ni})Al*r1djc+&$8+?T3<=x>o;RfI7%pv>+0WA*Stnm4bL z{$TKswU)u7>sVIH-J?lC2VzNq15;k;*r8v`aJl0zWn#Yot}+!LfQvGH5oSwh`P-=b z#{CS{IA!}j8w*wsW^;UhLSJ2t%U?a${)Wm#0)&P{tPfGh8LL~M#zK~t2ULjUSu-FE zTB4rT=sp*t+Jx@mwTzWF(_3fR0D!}VQmxBn2f*!FfyEBWD~aE%5`BD^vKG~%cxk({ z7(a3{CinBKRV+XWnT~_%|97Zoub{|NAVW)WoPID`BqR(bYB+>uA5# zy?HBXg)s_1~|z@FSsT?sOUmltc`C$lWf=tOBy z__>7h=LrQOruIqC{unDErZytE6}-kz(^+c~1tYdlNnxqB!1incz1N^kwPNv4w1AS( za4yR&J;E-v2&n_BCujCE9>6GIQ9eGB0RdG1H;dKoND6aV)N!nWzF)6&3N9rn%wFk~ zaI*&JrF0R;?{uK%51(WE(7O54%JFIOS|HT7aWR!zPY?l)FD8C`O#%n%s{HUekts;u zaS^gHFdm{)oKa;(_vE9oz=YpJev{NZR15}@R=X7p&f=^T5C1yAe$*;@=BRk#WsZKClQVGjeD=Rua)Rmc$3y# z30?#`Svw5Md$v#wPbyy#ahF&P~gbjk;Rc7*K748o5RFj^=&|P0G0zzZ4@iUc> zKF>kj{YM?3&>4_jyL5j>ahMUqnwM0F4KGtf<(d}r9U^aLA@&D-<)(okoeNg6ijz!J z7*WCsK%X>UfVL2cOLF)QXDV@_v3jcsF~BK3zmBAYmnQVpvfk|Pw)7mD%)Gl$z5NMt z$47k67`Ydh&F-tx#n75K8U;rs3YEj zMQ*RpkU86;E}%@{B)KF!=T-k_=SBHPk=KUzgiTuCh|ah&X0F(0PRPN4+}(o4+W+mwYAV*pDzF&k?S3U3F9OF(qZ}XEF3QdYZ4C1q!p76>eowB62Vyoz zVwmK9zJKSwb>Lf7 z0-|~kg2-JVeBPXd_1oBRa!X565e7-ulsg*WFIj)hh9KpShXvfc#D*h%=ipgLOZ|Mq z&xhC9O1wJdd;ulVxpl(o4Vi)dzDdXIJ>|!2Fk#^azKhoyM|aW1YD%QLu8%z7cJslzE!h!@qE?sLlCTtFGwV9tCTzUGZT+J|!L%HTZPb29hKw^lxW3`}Z6!48qn zO-=b2e`#XKH%=I!-+XFy8qY+|++|yoS3Lzi1-SC4WJ9$ca&fg6Z)h+mRhh7KWfiw{%&PxEmx;z!hAe}+?U`}D z1y@(v{}uhzke*+5qs4EyP}J*vr}_Gk-&RmD#8&LO4!NjsQ6CNcZINhI!XmN-e26@f ztcoFbb!Ao@FDWiGG||V0fzoQrTZ`$C0IX2aGQCjbw5c#|X`!N1&agxqrO0-HDj~Xs zuIa*1S!)LNW|Wo9KeBxCAzpHPrE#qMXa6`_L{=|k0MQfH<3B1vBq*=4MdjI6EnzoP zbOgmdT2*`0mF*+EsdnqS97L`zXw7*@bywvvXe0mO-jcD~+CvrOv%4#{s=I@{^&Rf) z+_vE4tUGg!FSi3kEpqg0DDA`1ib-ho5&QdA0*S^aMsSSRtjQ-wzb`MX1fvgmb3W-a zv}@v*%o=e?LQ$X(q_X)d8F~h*qDhv@!J)t9CIqw^ERNBjS?B9T2LnZy*K@(VI7Y$= zXhc*9XH4>WRfxN`{S*P`qx+h-k3|C&r)^gXJ#OJZTBS`4@c_YZV7qr7o`R-u&lH=4 zVC;$;1m52Q^mf&@$TK1`An>0i{pe-@Z>fZYV~?#J9Hw!`|a>#h2m zx-n|Q!`x<|*MW_j8t_qIG=OYtm_)IIW{P+0NClkR)W!Yh2&SzBN~@Fiz+{`aE&5?d zBH`;tDYl2om`Evs*`RVjsDIusQkZF0-my=^K{BrK2Yq;&U`{QxYWC|W)HG#+E!-1v zD5<)#3Otuesms$&VDQkpifO@JTow8>JOOAB9X{}Y#4CgqW2ss&-iKy5FXALxSXQU8 zQ9va=9FE*MZ5svv-0}6wKSAIT*dxXQ?+K7l2R6Dj39e_C3i>3F5HoyhO(~3nFc{p~nc~6A!^eHa8 zRulU_L6y~m=;@Pw6@=#bIh_qAtr`!SDLn*FaZ4nynhx;?;}K3Sdky%fcD@#$|K`2; zPp*5~4#1S;1O>u z$c5^&DZcWH+@fOWGUG1Q_ zkwdFe@_Fn(9B5$2t=}I!M{S>b;Ugm;=K8cC@{5~niSM#K`!+u#hZJfdtqdFj2_utKK26Y?++_o1UBH?Vtj&l(G%K6v}XByS7TO?-|%EiRl9u zEAh|NYl*rn;fw#|iRD&;B_o!+(J3g#06wEC&q-EEx{|=N`K%pK?X>pL@^6=JoafVH ze1K&G(_40P1%*{+I9?zflk;=0>Q)Brw;W8~AiDr_8Z#wo1SXQPEC_y(_-}9C5dHIS zW8v3}PVcET`ly5xaLBp(D*I?w-6`|9#E}r%+u7)u<0^5eFyNx>EUjwIYjnKQDo@7I za7{Zm&I)*#!I{UTG@Zw=!-@`p2T0z<-lJ?OU)kY}uAXzJYfojl00DP91C(_}kqx3J ztoj!u%pBEk;mg8CzBK?h1Zz6AWf*34IX2s>VWZXXwfK#wa7FM}zeDbX9DL zCCQ0PBz1qZE9SQ`poJYm-r~GBGQLEx`=zqN5$!iNkU{_(S=3s9BW1nlN4jMRatk~@ z(UkvSTUHVI{KW6Vk)j5)Rxpzcf=vw~vXmk|RYerq6{a&{^DtCmc?qhOjWu!$o>Dp9 z`28E&bTm?`R0j9+ei>y`XM(+ZMM^%NjL8otpmr-FTdw?^u#pn36&98qWBVakIP@69 zat7|s0U^WiS2_7R^P*jJ1!851dOdIKeT+;UZd*Qo#U|%>+XpSuo64L{lU#i&PYI(> z7FQ&=krbF-%5oGWH1k@?7~RKyk~td(kNP@n{Ks$JPWXPwPv8xlEhtkyA;Uv%_gzV+ zb?W0ZMp1&3YPp-05_q@$o^(B;b>z1#DdndYc%p6VLeFGnKaQu_MIV24&n%wnLu6b>%*2BRp+BWCu|M8oE;C0 z%;m}SDYkwcR(coO%%2DH-bt(HV~WDd*a=D_aKhDWEE^?{?RRgf;BNzKEV>6h(}o0R zOGJ5k*~V3Rs?_{KEz!w(VqT6D{udkp4${W^Pw9iD3H)rLjf}Gq+cV9!xEK#)C52!^ zJ)%j3TKe81kg5Bf!hfOiB84I*@&2!LAh<0L&Vn*Ic+j|F^MG>yy&_ znfkC!$exG63Lk|;c$g#Lv$eu$L*8hz^d(GI#_is&7X zE%s-1KcKJ+vbf)lXyRxvv(|#4fV}*LCTiJ`!VSnh<_9wPd{cPOkjLEpOY;sBukDuDL*APBYlL>%79=*)wGl=$dZ*FZfSw=G)#k zI#6P&3Q$-dD%_@oN9mj}jF-x|WyZmsu$4s17bH3YzH$h>L?7y)4Ss^tdbI8S^`s zW6(APhIkh3WMoa#OORjACpvP^NY_(^F1gPygU4blFvBJvl8!%GoUsRs%0A^zkIb?h z=-~tqs0EwLFiNo${nsU_(ft0ql08X`3tMX>`=LRjIw7)wA28E4e4~|5|w}+xC_ZX7e}4ryThppgRe>&`{`I6(Kog{L^$y>w`Bs*<#O!ZK7y+G`WZd_RG>}$Rn z*-2K1oPr%qsY73=Y*CWtz#jANRfu z&a)dsurJOIQj!tFw(-1gMQosKYZ8+gEj8T>!ZSB`&w6dsk|N8E@0)-h+1Z`=GdAZO zlJ^kGh|3nkt#D|`d)X*SRSATc8V%rdC#>6Wd-{c=JJEQzG_lwDG&$;>WH#hrJxS@& zD73UoOr#Urb=8b&oTbOd%mkJ-9^m@N(LZZBa1XS#UBOPiQCy3H z0tkmavu2cJUl10{Ln1ij1(2|$FV zU4+PVu3)k?IA_oUl`RDcM~G%yB)&U# zdjl!ZfI?_9d!83Bm8KtFaxh^!8Ifr~^VAt_Pcc-Hj&t2zp8Vob44UIH&X?qB~9^4Iq4}as7 z3L!;l@VFSL;MAGW1zH#!)1;h9t;F^NXD`Br`Ip$a_DAXc9*VTEjpmSUK0uHY5)e;>gC zD*mjV$S$nNQB3lZs^wd=Y zpVKo(e&QSiHp|8P~%x4vXpbx~eu@7tt5h2EXof1#w9oVN8UJow79WZjd0u z1y*)}yo1rGeX^Prh1dHX8)I;WohSo8&LevEKX^$sLGvsExV{**j>WYzu9|+sFc*`5 zcnlUp{=UbOLHvs~RVl^tjEzZ*7VN9y2yYR z<%b`(2KypA1Fw~lBUr+DxKOjf=+_95ghSo4SU$m+AJ3$M?mRoezY`4#Go)ZN>1DNt zb5$wKNIhdRRDNZh&yD2j_W$e=ib?d`_q?4um_#1t(SwkNtuVaSJl67+fqYl*)e*l! zdP#Zqp!`R(T3KTle9!=Ll-9KKqtIK==q*zc*F11|*tk$1Op{v(m)-iNrVk2{ctA@! z{KRRYHh@oxbS+h=>rJR$r=_$QL!U>PM5xv1@kN$Wnf9jOpK+ZATW@SnpP;AooAGz9hE44NZhXe_(|>-O_45YB%WlSr zzq!}tTo3%sXELPPKr|^cC&)L}qpRFPeWk5ETI?hND$we*>*Ym)h~ir&s4~qi>AX$a zS680O3*$Xyj?%^(Azj2Iof$a7WZhIud|)B+fibMqwY$6j+TXh}*wX-PzRO@=LiEl} zqjsReUQ7&-9hjbXD((^oM9(JzZRs(v)R;f3XB}0hc?|s06dJpQzAtxUFU*FeD?>GWA;*vz) zG-aeweU{xZ)uR6E>}=`FF%Nm^|9Ns=0U`C;;_gfPJWCHfOu;a1L3~dr+TVa>Yjk1P zv>-1M*|;{i(UDayRa>Ff#-_SrluogtlbhKvS&7q3 zJ9R1v7XJv$#_Z^vh=-Cv`gjpI<3W>XBE*a(fI>`jV-Oie2fb&eGP| zwzPj%TUHp@OIT->4ly9Wc>@r9(lM)w&G4=dpU5W!?g%t1ev__44poTO@C$rGbJb^! zizs_4h@m|0lp!Z@r(9JP%6KOA>Lq5af{3&*q$CcNluydb(mFJ*%Q~>Fz@sda-_AV) zXFw^>(|s0EhX~XPI`rw9M^E`tY9ZSaP$9Iq#d2X7cBG|uOY@Tiv?8I^Ztpda9sS{R z+W zWcbhK5=20U$&m1g8gS!mHkcS&(Htbjy180aKfY=zrrfuU(W%E{=j!iq3fVBC8!`y- z1*Su0rqcl&rWnT+eO30pz?e`LDdtOB;th#c1r&r*6RMw^FB-erx0%Q`EX)NS<^1PU zl=9DS(_B1i{DLK~rPt~wz4B4H7#vUP|9f|2mU2SbOQiC}9za2yM|yGa<|%^Lb8kJA z=U)A&nBo}Si=_?u4DH;_52?a!o+w}qc}G$H7=mUYg?�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

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