From d9ae7c2605441baf1f99206681033b43a46b6056 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 05:20:40 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 05:20:40. --- .../20260608/20260608052001-Binary.backup | Bin 0 -> 256219 bytes .../20260608/20260608052001-Config.rsc | 3407 +++++++++++++++++ .../20260608/20260608052001-Diff-Config.rsc | 24 + 3 files changed, 3431 insertions(+) create mode 100644 MikroMaster/20260608/20260608052001-Binary.backup create mode 100644 MikroMaster/20260608/20260608052001-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608052001-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608052001-Binary.backup b/MikroMaster/20260608/20260608052001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..41e304054cf4380113bc04a6dfafa33d76775554 GIT binary patch literal 256219 zcmV+aKLEh*sF8Eq=mP*K6s+u3#H2Jf0jpC)X50S&000O80004Z`SAPzLyOePyqn<1 zRdxESQX%lLgbv)Am@!cw!EIpNOa!Yg_>?1gX_o%hP5Ba5;;{g!h%!q4_mjU4pcckU z&dFw;>~kYsQ7_##(@o~y-QJFx$?HT2nlLbUSQ-$??OBpo;VZ2F_w5#=d_8x|G{TDx%?_>b^)Te&b zLmu4PIs4priOz0;pkS)!K4l^UrQ+D~s!i9$$=9daH9Cqu(v?{g;9zN*E_K;7HSi^A zI&zM7kS_(p_{;B|4?E~uQ=0!kGtwzAqEy3va@gU=^S)@y-1R&Kpl>oAbRrxt) zdWNv!{7N`wkoo*`eD91@by>rEifCKq{~+!bJw>yz*xGtGI!8oh&#~)8C()muXI43Z zvmRY9zTXxYg}Gb^nz6pveqamc1rdf>R6IweV3vo?aaO2;d9I~afx4cLBnu?iceC6o z=9)!U=?$NUv9l5)6u`BkeU!WkF?W>4AQ>xH1gZblplt&$ zSToQD7*W0kUaVIEF&~=n5GBCI4{@1h;E-x7<#&}EGN0G-_5Hz)35I}54GRI9loqu8^U5Nb|0 zXhx0kZARI;>wy{G>3>PQ#6$Qy0-EFi<{F0uu*bd0LM#zR-ATd@|7!!ypV}^E!bDvw z6>7L?lZza@z+bL5k$^G$E%0ab`yQRv1~33RDD&M>;D8C^-Tx=c{qXKNkH|@l2W zxiERp@q6PQoZRv4C`r^LZk=2EHj-RdEkA4lA3`Q^r?r3z8)AMuP?>$^S4}l_`-fT% zn^?9_b0t3!4JCPU_5Of;b>XNgWt~=7fDXixH%W}!C|veHbG5=~H+sTCQggAQGY-wSUGXA}v*GC|c1nu)B;ceaou^|yKB(v!Y}#lK3$ z)_<3;yMbF(3FVRQ*t#N{i%ODAKJhqgz}xXCG84xygySV06G#+wM=(qROCUF%72{fn zhv0|%#03XV2y-vaw*p|#_}t9_nqN6)=~#@tLjxjR-KPW+4&XJZ@udzk4!zV){icM; zqK_x(5v7D6lC<5Ob2g8rg&0d*SIe+*RD8DY7ON;9LO;KprS`hv52l$=%;J1-$%HPW zw}}k?Kz$FMe#k{<%4;Gq1b=9(oxoux&_EQO9x0RnAc!aGDOm$0h2F1;A$8gZSAM*V zJ3oftR(BqxA4llfx%JmC(erK`j(4q#o<1?aW4_>!tW}}fc(h3N+F~xyG!O&%KDZ3(pQ%%Zd;Ri~N<%^XH2Rs{ulEm3rzc|4>bS z21Yk<`KtLM|a9(JTpQz0ubEi<78+tF60%$w0!(=H9SKd>U$naDfZ2CMwD902G^D>rxH%WrpG^2>tmvAL5XhRlGiiQ`nC zTNFVAxBrdbY5G7%HjaH=pWtk2iT&gO|GS1(>R9zxVC+Yy<{nh2)(k%~|LNZH3K;Ti z457?N)YT)g{sqFW!+;fY(^-N02I=&R$VQHSZmYX(*=?}^4;5?MR${0?t;yU$t}bn< zo3X{+rq&la#r~D~tKD2f2tD`fGBNYwGBzcndEe+c)Ls!brxTb^De68ef&{EzuDJ#A zLf^1k&$VSFO?^>1Kgh4+uRO_D$5G-rx(zqOK}q;B*U?^~OHihZ1V#kT7Ar3^u>*Bv zymO~#gFkyJCkI%!>I&}_**zCpVSRsh{Oq|!!{b_}y)miL2{OE~Ar5sIvW_NOO;*e8 z<`ckB?gq3^wW1@lTwbb*z^!2en!Ou2%=7^O&3W(j+YYDf!}5ABnn~;>F(R!u0-Eyy z?FOPzvj3MFJQFdAZ+^2h<5an9LyxIBR*i3lxG2*?t24dOF|Jj!>gmUfAYITwCtKR* z?)Yw3Dd(eRzc=ngsuH`>!&XH-wd-^b2CsNE*Zp$NB&ScD*622(&kkoSpaml_DVTnyYa($(<$ij$?nNXtwvYJK`Q|9s4%S<1vyum8YA-O zF28d3sEC+EC#Q`WDlfm)e6?g1AUTrFU z?W2z7;s0K+cb8aVvf$FTd*x&ujcRL}v$p575&4iOS@I7(82s|bdsgrIKX7v6V`uV0 z{*O!aoVs1^+g=H}Wk<3CoHvSm@=>)x=3#gecUU4HW5yjmX;^!GY?)m-pg2&tfy-RT za(9jJxk2|S>dz?hP3%3w2DW(3#mUNaEQ@XS#(VvGPbK|7;QKh7I&cme+p)Y3A zR)@pqD*)kUQwivW!Esc~c3jLuESFn}U(Bjdy-pH&c{x}!M10IQAfQzR^}|Z_lxIX1 zuSsw~3vub}>Z)FX1146!12!NC!6X?u3BV-2u<+0{=sK5H@jzA}M)CC9eKhK*ui&i< zFfa9j2@UhaL7cchJEmPethd3+I!dPQf$On4MY~>5TwDUU`RfzEAcx3ko83kt1=@>M zMk0hMz6GlPCZ+|(iQnp>(}Hsd$FA?Ftn!mAnR@D}{3?-mVTqTQfJ|g*$d~!ZvGEMy z=KRdqypgZ5uMsuk%oev#NmIFNird7;-=#w- z_5d$iC0?F1`hA|v8KM=Bg`An;u64$xoE2+nn`#?HP4BmQM%Y@;BOepu1~k>jxz?iD zbaBMj$tmLY!8stvz^lK}30IU?b&E&y!l}4AR0^{oe~}+DyMls*LU~HHZ4V?TBx&fD zI~3w>(k?QVt-!vmp-u>QZNm7-LgLQE6i*E6tUyXW0uVgz`X`xaD*h~B47BRXkFimM zabcO#^dN!=tGHnLJT(^{&ihp)Up~s^b`yI6aA67`=$H4AiI$JwSK|^VF>Z+jcn8@R z`24cyW%?FXB-F?j5M8_fay#wrf%CCP+kTF8QU(3Nqr17hudo~%?N0!_#T1*N07gbP zVjxstYLPA!L>;+^U?w;63Btu&ElJQ!w8#x8|7{BhXkbxvcrUq;+ZKY(aHi!aL+z7M z_h$R3;Nl~0;4JaE-DHPwnk!v?rZLq{$vpRyg66)3)kT0XzeV#7I6)usPRQZH@7_`_ zUnh6=>|-6P;x?1pY#Jk4Ly)9Nxmkw!#r2~k$X%_HNBuDoREQk{u`kJ|O=^)*Y#ZIE zzqiYzETt+y-psTqV$o@U{|5E_I-==7tOdq{?{2yuOinncU>!@wX%`fbuzn<)lw77&v7-XQk`kZYd zwZJ^FKCaEq?lo=tRG3{$;T1+bC5lhS$4hENUHGe(?8TMBSZ_Y$mZ^8s_1ABRZ4{soa5df(SHH++x5}o>O#_mRbLI`A<=qt? zn%YOCw>~$g221c9W&~EowiGNT;n8j{Fr=Js+}48EpYD^I8?mwdI0>iY4SD;L1Mz@G zLl%%C=6o_AV|o`3 z%3N#h^sm5Cpf4ylG}^J@3U`-$eDtqc{s455?%MBt{lQfg$~AJ~t{GTo;=ruV0j%#5 z3XkJx%2Npv;JTKs_}SaW`krEJrv@C&DmK0DtZF7IO&SqL=1t0q!S&64`EFi-^gi`1`J^f{nrKt zNFFu^%h&WLI>U*GUOXRLGIK`RVs%FgFhNE~?vtYc;Y>T1TBy~D8YX{dn+7a}#}%5K zM^;kcMHYz;#w27u_Te}HONo(ysImQ&*uNbG!|2gYGKx%~j=rO6r}X9klVo$r8*wI4O1DaTxQpAnklVC1{@-ENPu0mQ3EfyXRKd}<+hWmab-kl&G)yO!mla-iVzzZQVO@8cDGKd8c&L1s* zeKvHKS+n5_>!m5^{@Rj+=8%^8E>j{9O4<<&d!002Gc$V^`&U2=uVSvM)$* z75~65>Oh(?r(zWt$hQaz#EL{67$J9uNNRE`*tY%7jpKOD8*a`~|G(Ufz~K7Sk0D;BW!2;5SjX9GAS77h6c`}j+c2{yyi6w+{ z25Xa6sXYg{G79d|)MTO-dw_dtGtyXDoCoJc{k!D$pBH!Eq(Wjip*@0CLz)s3^Z4-? z`b7LcTChitoykz>Jp4`T>Zsxu$c?4no;9RnTZu_Q^m7-`FKo;=?U38BSy?(mG?MjI zcctFi*h=PW)BrqV0Wkgl=LLv;wi6jU2as-x&;Z_LjhplH5$ex3h9#Qd zwj8hl$;0FBIZ7;_spQkFb3DZ9AQiXIqJuIQ{c7sJ^grK&* zR=lUgVquNYbC*FquG>Wf7bJ{=1&GP6{Z1V-<8aQwNs)WYg)(ns9!2kUo4TOsl&+L_ z*DNQ8ez-bFDi%$*ai-ry&tyYe^|eBJ`#z@guRUfeYc#SJgseg^*MRSe2C7btB*^Dy z&vF@=Q#I;X^ywNae{G|Iq7%4LOlxRZI6;$IKGgU3H^c!cikgTDi2FjdR}Iw0x}aE( z!nk;%cZZ(m`+*^Qrr{5z~zfiSn+69fk zS1-@sO&kbtqMW-V#W*_eu_@Tq^vzU$mepg-gOp}Ywyf6-%t(Pf4`%?99`nX z3^=L$^nG^@mr{)x*HGqhAN`iBdEtRG z(dLgjirhMw6vPLn>~tJEY-*Us)9GZ+v90nSEDkm1t;!}{wSoz)dR-FD5NH6OFE+HA z>UR5H7ghMpZGosmJeo{I3n|(GN&=#L$TiR+=GJCyN1vdgt;8Kyv~oC#(r=!EL_Wu zG|`q*X4T^~{3neG<1YcZ`$AdzeYo@Uf^6{lwSU?nK>MLi81|~$-NWR( zGbj)kXBL^6sjaE)HIKsk9<|`bk^(PZb2)#ZQKb5}9IJ+yS8cN8D19>WAR9s{s*CDK zd{(H1(?XxEHQL#d;W0mES#fC!gz58C)C~t_d5Jg!zdn&6WRx{{$|OPPqOZ}T9s{i+&(M@ zi2b{~nM9Ljuw1r@7?0ZojvWX18)w4^d>Jk^xk53k<;B$MpGFZ_31K&NsI`A&jGndK zE=5tL&2X6#?OTNpbZ;OP@zWOhc9zaYDH4W4O9;3=Lm4+BlH(sKrVrsQTja|VVT2&;$A)T9 zjGtm!yV)gC*g+l$0#4Z%htR}lWd$$N_r9k<4zv$D*u+Hh-*1Xt9an!ImZGHJJCcNFF7a9bMVttnAwPclKaKA55i`T7T*n34fT?j*z@ zP3IG)VL!eG`r~|*1`q~=6iAh;ZBwMY9ZSr6foh0zV0vpJ0-)^OJ?A-Bx-0hTK(zt| zg*oC8m1LGMZYFlwK`)S-P5Y^ELaX-K(yKIVQM>V}Cb70udrtW6_M5n1sRY}2Zs4cn zv)`}od*exZ`N-!|i!LTky?S-)oIl`lL&m@imoh>|9e&AF&2fGP$;GT=vGyu1^>#jF zDa!+rn%H$>rZU@kI3g)3OF&u;3y;Rri(VLk2G#SZ*8|Hb1}wv0#B!1ISs8ER&H)_F z&zOi#_Cf-vvTiq9mSiPr!Qkk8B!g`3Qqj49RKmYeeWM%ud1uDGgsos9{tm+{OK5F% zw_fMwqbFBRZASs$xaTi^u_HpyNfOsXKo#he4sBq$7&Ou=+^>X>w=6r)ni_O=rt@*%M3!sQpsOQdPp3Q4zmFPqn3Qe$b<| z$k14zLjE*URU^@UA{`SETi#Pr-z`ZVyFhN@GR5ljLJ+*oq9e5Vq7qN!!xjr7(M@v; zX)>`;1v9dQ!D^viB4Cqgqc3arbzOG@0)1Ro1iV(;DeY~;U6|4LCKgUFAh|ES&kiX* z;Hir=VQ*ls@&6>#x8|tsc~PXxCVcmv<-`mhE~bd2M^c#h^68=D;X6eC zO{`u{w7&rpnh)u1uU9g5kK?1dXIf>?5sF=h+^bx{qO*vwqI{d-_39E#JK2E@^ z@UG6Oks77ef9FCsO_|60-O)0)e}hl}2m2(K@d$3t0HxctJ9KTfu9XE44rap5sXf3r z__zxwnG^ewX%>Cvo|hGoWzfJb7tzRPjfj<@EkZ- zs;fbL@upuo2I%!Wo@m7(-p^SNlu{H1ZDDHz+w_q^2O%Bmm>wWa0=&pkBm-*YJ~T-Q z{Y)VkA={Fl;U#&8AYt%5p#qEX%0Yl5d7mhr;VN01ESzPTr4eu*l5npF{GBwcMHqqF zy73eR44lwXWoxPdt*Qk7iOJbGcF;cYrs>toUMMw?D4MJ3-j~gwM=nKj0p=t?xME!l zxJ41~ck;2!BoJBaD)ve2JoYAtn2z8rn<0VN(eNzS#Nn|4E}vAl^J9pY>564wh0}q0Mt_v4{7pwq)zw8;v&XpB!QkO@q6buXVH|HKMf%A))V1|UDgS~ky+~}NXrW$ zfjC|bGbKUP=R=MP%uG?W9WNoGR#o36dy%LYocDF?chh1LWqgdmcl1&%_xdm-7gkg?nBI*X z!oq$pbNTE@<#KtoGgPgZ71BsLw4(f}DuVeaT+bfR14S~2ie}K6bH1a%Q~SZ1o}K}- zBlavTk(_@%XehhXw|D=0g1M%LM68oF1uB%(phhkR7gcvq$yfjp$NuK+eUG>iFP83@HMW)Wdk_(mPF_hD|k`= z1NL`URYYPo*pug{CA^-?d3;L^;(-=7I8a;4I0cw_f-PF(`np$|y5J+M0_x*?KJYT$ z2Ej+Lg*8qj6NUjo5+c8z785kv>S^B|?wpL8j=!E(mojK^1_^_+zc2fniPpX?UBa1_ADeqnM zE}K2%Mgsxk_lpwTu7VSOooxX0o&q5U3UTgE{Y||V3(ECVRSddba3q5Yk;Q*vT}KQ;X_~tgUa-Rp|zV*I1Nf45YS@2 zzg6Mp0EoaO19RS<&=By~)3dTjW}`M2`$fZQi5e&{6~1}b8BsL-SzToFxP-wU7|bOl zNnVGLX>ibwnp>H17kY|j&AC?#gK`Ar|i4W5m!i=}zV3*7|U#e(F7`fJYQLK{{ zrjP?0f)ubTw7|Aj0Da{T`tBZxr?vu0rP1@C2qP3&xXx)aPKquE*Bd2;S+g2B)S$qH zH69SoHz^v8%B)3S!St~*jWuLmw-c{$9ml}K)BA4c+T)@-jb0cBoi+;SeN5t@?9&2w zJ_6csfCNV7^Tn#-_P9=U z98N(1yF?ooo$0E|!R6?Jtheb9q`!eWI^a#ru+%&6?_~j&`PYnA?6kT?@PX5o^m;rQ zW$Je6O{PzXJGO%J^T1Gx$m<&$Z5hKq$cr8J|Xp#2KJCGL&L)Ep83H|>U&=@iJVsuvb6n7J`=#| z9<~nVZ>6UM3;j$6Jvd!?bZok@-xlIUA+4T$4PG!Ae@8rcvij;l;_CFNGDU7XCO&5!Jp%GO5EYy&G&a5ivs8?Re z+4J03S=^=`3<(GYZ6SfYNnv1JMF(C0-$g!O4?y{vV~v zxV)*(ePza7c85d2YRqU?<2^?{x-udZ{sv%oqSS0Q`>X!!*7Kz4tmUZ*94R!KNSG#5C7@&oySU3>w? zADZqs@`iN2JJb?t&hkIZKapF`o!Mh4lnYaI;KK)?kZG*>8Z6Ht{*tOIxjyVb0B_hY zIuiayKv8JPpqno9n~|z@fY?S$^E%oqB)YbxBot_onZ|{`{JQli)L(vvUI8BM=NDMg&SZm>bb@~XLL8ozXz}O@4;}E2E{Zj zGTX!o#MZFQ*+e7GmS=4j$RLV5IqeoaZ*oWPUM)=4+l!Fr`Hdf41;j2A4u}FG?rOnc zb{9B=ZE(xpy?LUdq ziW3fZK1Ja7BmqU1B7mMrMIo~R9|J+IK{n5whxHHJQ~3+W*#|0~sD+`EIB*)zq@$2K zqXu0FD;twYT0EE5c2xB_0UanHPUym(ijv&uSa)ep+^;Pz!bpF-v!FM72r`M_ z%_^LAJQt@@0BjCnjmv04`b?qwTYmPV4b^XpsTskU!6#K%jCzri^kP);V63wJc~GWJ zg^k1b@j)`+JWmObRc5x_7FS-dUsFuso#sA+ESYQS9u?7msT!x9wKWC-Bd`COq=h^wlE9U9V3X8I3_u!4Ra}}` zT1ef$pF>0oik>*WC%lauT?C0`eBs>4)F1Zuddz^1X5 zqRp)%N3UiH`7mvW8jRU#yYmnD?R&3ZLK{jz0@LCu(vr@Z5ejyDd?f&-297$F&C4gs z3~#hG(7hhz6~#n;CXBSh=LF^#24z{#M{kJ?48=Qnj&_TL1o^hkq&H=qZM5-#(RclJZ`KEdb(FV7~G#rXsBc_VmbBd`4j<Dp)=fUG*#Nm+mH$YKJ2VSTQXjYNUk4ARng$bvp5J?sST*yLqpV2%qJ;8A$8$vW- z!Lt1qT`(Z445kDxTFVsXOTZ9*guD7cUX8ru1{oyY;VA$@`MN!WunkdU!`ZF*)Pco7 z$B70I@VB8ES4_3WM`6_K{sWhKe;>w&8dZC{qRfNqVgZU{yCTLWHIzFCj^>4vs&q@> z$WBy`IC3aYc3~;v;g8X|u$^x{)!>H4?|=W`Qf^*S(!koEhr4R=_iZ%m^s@7 z`r1Ev7-5av5%*Tt^Xi}Ey5cc~WJ%_Pz?C#g90bH2elWE)Z?zAu;WvnQ2ch~opf-{f zex0E*dir{lDaFQ|4a{dLNl?`LuZW^c5~u&ly4G(PS8!dR&KolpAomp)HS1BB6NbAo zGWiO*kKC-Y3b@{dh+$NfCLKWM1H<<2IG89A3QwHSG8~WRe3L17kB{5MmLbX33+@#? zh6PdksBuh57aG!&TCT)9Cb;-!9L!#d;YePH2@M-KXCt;(o-5`^ zTrHGSY=MYZ9T;54d0e|438_Nxd)4K$jpui%vLyMAqELqw`j^~`7W~S6^r6hru~ZVL zXRJF>*x+4Dy~-@j&RrK9P+f3i_$8@2i`JsxNtYM18J3%$&KL227GO*tb_GtHLH{;* zHS0S^T{oANogvg@5El`K>}8fOiiQ8cgBtRGH<_?SF&V?bOGY7KuF<^J;IN?Fe~9sP z<8LP3dffq5#3ja^*Qn;?-0VfET$ zUi>HCQPT>T2E;*Y%=V!GHgU*7XfFQbYCMId?*Kzw>g+E__hDQO3{{F-S>+UY#_yF# zn?jtYF&18>21P0fG*HqS>Db5@GvCe~Nfu?1{E@6<)wGm()5cBRh2= zw?XEIjwGZ1bmT!y0ZSaZeD`nn-pehmfK@2jCo1>O1HJ+P)@`0t#yAw@CX%j?*_k3cc0M&s(44?UW8QO=k`ArP zX{nk)^<^TC#egkCrt><57`Z&=4dI=lr0Q$sPwxPdazUOgIQg?~D44)%XLep?6<8K~ z2D0nG9wE5n^~gtW*YSw3C-)wmn#0X_m#C(&O7K$iM!je2J|3XZb;ZYS=g#dioPMt*r<9u6Lds>A`IqqcT3cX%jZ z4{dZOC%#>I0`Yj;$a$sT{;{r{BJ!1+>wmL@a&qs(qD;>aJxX=VqidlKM1cwrQ>#E^ z9&_%tH;SJr4*ccuWCO(-<8OJ|{i@t`=1`g%G?_NoYVI^_O}R2*GPDbxk`qGwo-Q<- zl_E=?mzKa^P9wXv|IO3{*VhID03rby7d5tHOF6LFgks~qib;3cwtVJrL`<)MdtEQ@ zYl|O~fo?@ld-cU`H8=8lGFd?B*s>M-E6d%FRtyL|5oK}?D3vt&l$Zzwf>Y ztxhY?J^XME7tYeg_Vl0=V-moXxv4sIN$)kEYm5t0EXqw779$Mtvk}FZ)8`w8u+TA` zy9cZIp>C@EqGyXAmq|bAML2TxU-S}Y^;@8xuG!_M4JC5`ZrsxI2aY^ZsM`*c1_yvG z86MSXE=Cdha{;nV76b!rt;-QC%b_qz;8<86ZT4nG@4|6g83daHA(@><>80DO(X3E0 zNx2|{TZmq55bOaV`IaIgPlY=^tpDiVABCEXnp$Be*9u3Hb-F;*O0BQ{zCTaF;Q>ZS zk}+Wyc42+Papf8AuAjn?7EB2tT80HmOAV#TQz&a5s$LE|pV#R*Dtux^gl8LQ*d8*^ z;~zkMXZqxPHB>jKxO&wXvp4p#NV$d@H%!#r4qwO4lvuUg7;&E=YC zq*-ApH$~5RM92=?9vAoPbcovz%<|nTE55Y!>`a4J~kzQSv*o- zQo%>;!7MGd6%QLk-E0;~lD~1aRTw}8M=3anoL5cm(1%KqO9+pPdI(il5w5;8JNdAs z%7rQ}TA~vxh!t;r<}Ox6)K)I$iI%n-N+I;w0awAl*tAyZyurkvB5nOm+k>|`2-gIB zba!h9c~Vhi1?4oFek@tRB(co`cGfD{VVE4m*3IewnYdSq`GNY66w(yFf>8A*nw?>C zwkd1kPe;2)6$VP|mqkG%;;g)k^E)J7U?;_YH;WIl+)T#;)f^fX9efsDF{4D_*q-Xx zYGfFwW>e%QC08Nz5ICq`jeU(I)ti?MQQTa`QgS|nbfB8LFj1fwZ@?dJJz8K|fhJsi z08XdI_aJmmC+OgjLR6Ax|F~z0n2R!j+2-@_o(P6->qT2ab}#X5<-wfpWHWCO0uq?+ zsgbL19dIain~{k}>upoh*LeM#H{>4S zQM(PR9<%j+;67Qe5jhdGTHn-U-G#JQjkFhqEIkjB!4#X=YUpf%WTS3|9Tn*>nT{Sx zu~7hHH`G;9Z$Qnu5(XKCMY%Gzx%Vf(k+g5f9>V{FXroqWZ(D#{7X161CO|;733+>* z!?Sx+x;oOmZIykdSy_%se1=$7rFVqc|$^ zs)Sl}*zY%;Ui&e6$2WNDEIzN_aMO?dKGx8Bf!_??HamoGy1l8vSKBd3CH%f)?5~kz ztR3<=QlaQFmGX0wVjwcOg~M2xnpwL56g@OdD6i7KIVW}h%d6S-{thWYV~!IIa>?B+ z^o3&_xnw-c$KeHWTA`NlGh*uZ0jqv#=pSQ`{-P4YPl@#ST46n>+iulG-Eg1*A%qJMBGmZ7~+cb>fP)UE4B%sbAjYSlJGkG;2RA9;D$) zb73`p0*2OtX;C5m{Tj%aN%o)$E{^%X=?}BIw#d7D4R@IXo$$(D*}pMwqZTSC?2;~x zMqwnI0sB{q%vRm}|-Pv&rX6Z7@x#uXK?9R}7DeCH{i9LjR?`|y?eoO0ptNi9a zVFL%3jNK z`e~K?&~_m|N<@znSly=>n=>5k#TZX@RjJb5yr?=F(5TJxfH9n?beh?Ppzb!N$hv}EVKqEC<1NK~MQB#(XL`;0y<4%Uj91G&0b zjw7e!(zl!Q;Xh}<2smx_KL5yjAX-(vI7^?wnxUwdp8t2`Abe zHo$bmEtDYul=FA{A6BFa|25>q!j?pceTp96H5mJ5$rrU>+h#$4)S{E_V=fB!aLDd6 zH{z!9u38!ctVm--XNK_SEQwUU1gKqaxOId?VMLoppJAR`zr@v7KMknF-Mg$RCaPP4 zcNBVb2dqzuX9@Pm>WemsX|m(4piTy9lGv=EU1SEKYXsrF#`n750^rY7j5gS>$!qRoO2;NILAoC?1(Jb+ueg*lmecAdahSiw z9lXQIB^e;vFuNAIFQW*77>26UoBBn!1lLrFvn^F`4}aPw3^?mDT@qxhY6!BwG~L=z zKJ(P)X;ZkBztE9Jz^Jee#*6idAO_bv-jn9Q(Gp8X>vIjpRCY0|Rb?n?g$A0feY<^t zMRspjGqwc#TzI#M4g5_I(0T$uK|Q$tsjyGFNJ*oEHAbUi$bQwC6hY(`hu`(0R?VkY zldO_yCU}(Qp{mj>eZW?{QPVR7?R^T@%4=awrDdO|Cl02cr15L0^(0XOpb6Vt8B{`P z4~V`bdDR9domI`^xt5{JGkc9}-kL9!eL2CrYn2dx9R*Ej4Ds_i?YXLwlhiDMkUpC` zhNR;KYs1Cjz?<-k(d$i@TyM9Tc!Bfk)$2kmK-#O92Tzxrl{O@JWmeHqdxw-k&Yoe) z{|%3<_jBZb-PZKFflr|SG7~akZ#Z(%djG4T4+txw9jgs_npSy0Nc{=;QgCI8fiN$% zBx(9;c~vB5&X#*fVKTz(xc8%i74nRZ*_x=1ZOHgg{>RY`@LQ^b8xKwT;ag4OMod?R zvDgNAI`i5YOX!Iyvb%+3iKjS$)s<}Q-=2(^ZTUbbGNYUtEfB|~1%_D4pukV{styk? znXM0JhaY9fJe`!FQjw^pQ|%tI06ZAl^;cJMr-c#|1s5TkbkbdnAWatV;%35MdP z+1$-)#ko~{z)Yj^Ex^tFsJBy&o-tveP2x)KaP&k(d7NiZ1wWaVI~;cjSC+cFqfSOA8lf6fx-WK-3_=8)`{n4X zo@d_7{tc%qTH=;b=LALgsBuExE~N8tg-W-`l8D4Gt`yF z#Uox2M9Cq(a(&eheh|9+AePG?+Z0#WJ}olbyI}w>nR8^-Y=MO1#5cNHja5Mf5oM1$ zSyNB`fAgU*n}P?&hZgnQTQV~-R&2Q@i7$mvxxTr4j+PZI0D%$n>lacDW-MzSxsg{8R82miWM z!Cj{wP=y0K$fP!45=N@j^0?h`xgTPT-E;9ZdHvR&nqQy(5v04}p{O zXW^fEOyUK@xoi2^nB6z*^enz^Q|)bZsYCfJ3W5{nz>mWUqQn1B-CJ1%Kylv}hmZfv z3c%zOD0`8Uu{=Igq3j{1Vda+{jgC`70_08uCq;gLvm7Ku9}D&68^5|{w>bZYBAk^JC* z^V+a+_3R@VH|D*VPBG4T^r}-S%IGpH7bQbN;p}2RS(-{+sMkz30r$ECRvixIr?C|& z=(F*e*6yg2_&AxVBy-`fF zf!pSFkqS7Ig*ExnKj^d~6ugeLr4rm;(>W9A@+)n68k+9NwX73;d-X%lTT_@h*C?zy z2CIx^pp&Ik=GC}?b_$Zq7WB7T36k!Mg_N8^J9UI@L+ z?^?q9ak8p;jdy~lu|a{v>BGB67A8)U9?5reuFOq58R=Z2>N|<<)C{Dn&o;RAEQ*PI z*k4+BItz64X$so`eDNgd#Q-2kDMGEX?CVs@im@ntMz+K#*&KzoA@QXS0H3W|0elJX+T2lGk&sSSM%_qD4D?A$Gk7*Q=3 zsC&$PH^99vIdNf(C=%d_c7iwI69I+K#C>ET+w3DBx|PivX4K=1KG*fELpoIm14Z%W zc700ib@`ahRN`kct%jvxb|m%%bXXucDEV)!(K1Bi~8P{J@g8xDN! zrbNvBL-!a#GQ~Hv*=O5GCs4$xq|&A7daU6X4c@ZJu-jA}1nFnK6t!tKBCEk~D6ptV zzk$>;jE;>r`tNoQw1>$k7z$ch%ka)l*(*PcY`Ic*5N#v9q^oW9q((I^@|2GM`zBRv z%l1Q|Clu7l95S$51r|Hacg*lX>7k1Xf|z6?NFAT^hhjJS#8a`|_EgOZ;wZ=a3R(#5 z0!({ltC>QJTyI2bqW+YBh=l7jcbrXPleIvZK+0F;%8DHVHsDeHPY3t?X4rFViMot( zWj7+Ik=bGq;|pYfqqCZ?xi}_}Y%ebUzG*O;Lv(`X5t?u{xvNHBoH~;ljbMy2^~b zjmX11F&BF_7!zxvirAkm^;#SQ_l^|rh%cSBOZc|*LAp|Z=zF{c=wV|kr4@c^ei6pC zHruZwDmWWzRh0N|S!~(m)2i5Uqf|?b2i1r90Vc#r8U^sq%`=u2glUvGoDFDMiI(Ir z?f>O`tCew=i3aSCgzERu|7qm4<~%`->$TK5qfpW;@}zOpam*KwRlbQhYu+Z2^-|C* z68^9E#24RAjViGC`%jZi*yOb1F7B=hSY?QC_9v%nbZ&E`Q)wRm73qU4J6RY;LtS!1mb9`v&}<*k*`)-1m_JxX1bC?;ljhvd(=gK6D7TuSc} zG5G7e`$OKwKQVGvUJX*&TadA4>>O9fsl&<{O+Eh!XvqVDz*x|wyci*iC?yZ>7pxXS zTl{=G83HUuDzoDJ5bD0%ZUkNFldEX2Z4OEAsTo(7nRi0rwh8PPy|;hk^cQTos*gCT z9n)c#N)f>#R3aApoZ8!Q2sKcX(vr?}RNKStmQfIgA6;B$MVW5F$N#}+@5%(GdE(!CV$#?iByq_fka30W8 z48rG@@^zPL18F_^*%@J~aAs6vrr^5CNP{^dgS!C0s7fIwz^&%1^Eb=wJm%8VTSbo* z@FegOI7&~V5EsB%ql`u2zn!ZHh*|*~+0s&{=hctwEW^28V9Sun zr7o*v0atkYR$66xcA<^13RmnV)`O+e&%gWxGGA|p*>~8N5pEJI`-AQ?hOn>$2bZ5K zj@Df`A+yA1xmNIihX=GtUAy1Wa-xEeYZCd&mN#uf4w6Rx+oR$@=^UWyC>3I;J`=@M zrej4m%5Xy&svxU9KS1$`dxM9EZF9Rvm9StBP%HAZDfk|DKd%B~10^%WFNDY=+W24H?QY#9fr>e`w5ae?twQbfZLS^a)s>!s(P`4T=o#aDtgvaS_PnKsrxJGEFdip>GP#s~5aiskWF%^^ydDiE3PIR9(_kbk z&(&`zADpP#jl938w=TB;d)9kCr9%nKU04aPD^Bt6NFZg%-MI%@{+pf zF&!R@&D)-wLZOk@CTUdT63~AF%``hOT&QpafeeYMvu=GZx4V39q$%AB35@g z>|+u)5>ho+Gqb7KmgqVGo%edUu68n*y|%wnS|;op)Bk0Bd~NlwCQ7WvOhil`;#{WB zfk2d@k%wt`bj32O`X$AT0N|L@1G!jDNjQQy4YX85nX%OB`7c=aJyz_dluv**nb<3;TMq9;1LvnL^} z-SM-pQj=oo2tX9WoCL-wcZGN_Ek+VGu z0};v7JEt|oXBgFV>63$yuqvB*_CcECUX5BQq^ zkB^QEXHL`bhnUKCXKR^LRCls^;~eQFSq?15j&Tue8sy)n;eCT=GO}K+*W!VB9Pm2i z6K8PKGJ@ufvV;zyAS3~==re)@wYC5Z2a_qQnE7u(LvJ85|0ovPB+Eo*T|lsWT(hU& zZGowK^}RZ6`gF$p)Ns<@x1CQUqFM0SNwg@RCabzcUgS{N-&wQyMH1u?0BMIvQp|HC zprJ1`0$r-46g2<~RNK{C{3NcSK>jPovz~SJ@rJmrov%|Wo@5M$Mq$(1@w!bv?YsdR zrgw{IX2&)Ayb$oF&aZXOpbMMiqWH5aiyl7b`-thE`J1EEaLajm#Ky75;9!N~ zaMd?Iy>7Fg!-_uJ+{o4zC117&QhUTlz#xVk75d3|&6HZx488jrWH3P4F=@dZw{M>H zArpi7mc~P(grq@F*eigqavp<>n#rcATVIj0c;ULWwJz&2=|E0QfvWrkyn!{D;Tjq% z?$gq-z2a5bVM1c&6H_gG?Oyb4%6*`FTB@it4R&aBb%d{>9cYMDHPB4->I&#$Zk4tF z4~l)E)YCrToX%n63O$VGmr0Gf2$+t9kH|DD#Mio15>S6L?zKt$;Fu^|YL!_o;0fn~ z>kU2U5AcNu__Ets^T#II2_M}+vq+pK;|^4`+Q;YBcN>f07K_}&t`8kil7Y7zR@+t5cTGjo!v!;!6R#fwT9;+3mXm70@`H8kpCgjir0FARn?^N%5K z>ah$g%_C-r{FjsmQhgYwnQ-A%UF@1O_@SI@=oHIv@;1$)0}+<=IGhH0(rtfL?$!@F z3FqaPa`XqGLj#x(@2Hw-B*0Q7v{a4nk$go%y< zy#7{W(!xF9IT=w*V}IFolcW*DDhxDGSOr99Hd5Wp(xBM@l)E(!KGBYzhG#&T zUOIAYJSBVIkNu>b8C&j5P@61xLBu?odM&?+WHhvOf=m=X{}KT@?MrhaBMCzO3b(WT zD8FXFGYGL3D8H$qd2O@!eL~zu1H{()?8{Ba55~1B-gGjM11LkT3#(q=E5J7>U!@M8 zyAlOaUTJkGLRBDBfWxbh6lEyjVe&mmQ}6p|wHMyShu|+H2iI3LXO@Z$)UcW!m(+kO z&X&yd30AH<#LUUG7WvZ7F$LX#>prEucHlC2pz!TO!Yu2=m@=!QWLGCiAQ*jnw^Bkv z$bX2?35!bDs6?JG<~yU3!X_YiaI~{)(jH88XC;jOo@wP$Dm>3mZJtDu3vvi(2HO z%IzI=dksF4aWqJGd=92V4~=TB@qYHbJMt6Z)aYhsZMY>lTnBgekhI_r6q}d#xbECZ zX!EFs7c{`HAHD%>1_F@fn~MGlB2A4}25!CN2aZh7RRb};yZfH4`mn|!k+wIxJImmd zfWASBfg$MZCKbca*a@wGWpy}K?4hYY*q|a0J37xqM}pNo*U^sxVX`uE>zA(g3S)Y) zLv7Ev7nzk^hZAhNOROl>#SKdS)lEVwb-~+7DR7j_a(jo>erMWTNCWLKs}uL-csMsj z3G0~JCae%72#!2uk1j*pOWM{uMm!}51mT_t-F<@$ptYyjF{hap^3hR~44;x(4Z|nt zW}y)mW!+@)Fgl!i`28ivns31>HA?qOD)HFO-A>z1^TDu{SPaQmZu%?3bKJ~)du9J` zi_A_9(}$?0J=^-u5E_Z%xH`Z9T%9T>Y5OOW;B5dDjcTyiqqGM|mo;QiT7(N9On-AN zlEBZ|Ss<`eeRxD1UR{hFCa$NY(0M8%{Hi0Ac}d&V=ksE;%clMgn1G5nHJ*pJ2Dbz$ z(?fa=mrRg|m>?_Hi?rluq%VEf75p4425tjD1@^>Bw0Rk&8Lt`t#I=2LJ;U=-kmjO? zFK1jU`c)A<7OeVim$vTak%VP(Mk~L{(_KWIFds||z-l$U+5(co)eSxZvhhVX_F7C0 zz5pwKbr+wRHoH>quG3PddMZ8I4NTiNNv`pM>p!yI)QLVu2?X2~S)>x^*I?Px@o^wx zD3R^iPP(YYhSP+y18)v)01+)pr&M@KD0+yRU~V+d2-taJW`o?eH23@JWF~SeBd}1e zvVDK6%iW*s-=-MKI2aWp{B^>c5slA3^%(qtb%|OpazQdtB`dM~#eZmynA&3tXlB4P z0eciwe3m@jK-}!_@hg|dNm*mv0_plObKV2~n5m2i0MhYNEFlapJM^>JKZ@bot9kGh zsKld6P}at3E#5<40B7c^qq++W!o!c%UD1niq^SmPpUI;iV$!R0e{_{4SQovGk$rZT zkZlxBPB5(t%);OiiSc~7FL&W zzW%nc%T`iQa-1)fo_O(c)3=um6Li_1MpJAy8<@;IGj-fm6gAj?E8ANr4=VXg%fFe! zKC0m-O0`vz6&)f!oDN4y>Wy3B<#WAli`CrBhdzt8zC!hF0)d(@!tb=1OIh$Zvmj>N#H+%}QKcTw%t{uor7#6KLmzCsbcORA8VMsL7M+2D#Cu z%aX8bM@;-32{QERRc? zP`=n}nl%N8wY2E*AK+FO#b`)izi=Sbzs#@y9~3Cr22iyLN#C?xAntb(mb^T3xq6M? z2oT7sjJ(#qJqg_PK+0{dydc3%%9lMCQoDZp4_%AGcKF{KzJfpH&GsBEHK%jIx@0rE z$ki+!B(0X1B?(HBef_QMOUAWsg0!4UqXDkSU|Flu=qSV$)wMF}|%sMCBP0Tr0hi;VKVJ00-CD8GV*Qp^*p z2>I7f#!1@k=7*{ipblsv>BQ2(PDVt%iBnx^GhMK^1_^{8Zln;_{FakEI?-w?-EtD} zYP!XC#ZM0`kO$DLfr2Q5j z`bb}?5DHeoToQxw&8Ul<`4e&5Ym!79-75$}G@PFZ>3-VAe(Y~<^^rnG_w|R_S@;mq zO>VM3KL8mHLa>HLtB!`Jy<|V><&&xkd8Jg6q_@7>4v~OUbX}K)5X{OgKECLEI&GxHsE{ zOCwOXR93a%h zlaw+p`o^a){kf#=+-ShO691Eqfwm4Bn(7qcB62kSks+IIKyO4a)4`BL|GTSgRjbEn zgH0#HS8XtMVZChhIC-ga{eglwa1TF%j^w~T0q9G`mxjVr3igqc3ApX7-?PC6pmm0O zthZ)LNq9n+QeCh`WdtqQsog4eMp>_F?+|vJMHc3%EqC^I7A)Xh7#vs$dScg15b=8; z5w6o;ULgIttk^^2EMPKB{dk~f0Kz{60FRNmUx6Q%YnX~oVj2Q?O)>F5~q&iu$9f9_VkQpy{T)KkkU;nQA2g4m1v zYsFU%b#0Hu7FcIyE`y~p$we)GVLAr3+R*|S5n=-MQ@nNHfo#YZ2Fxn*4=aawz5B{q z#jCpfF2e5AaroaS4XzTU3ukAGvtZN_=+z=KZaqgs3YHZDnX;>ARuI>G8xZF%kHq^= zi)!x#4*6&_jIO7Htc*^rgwbI$Ok$qp8`ehsYBN&GU)SHzAv?@iy|>YEZ)lqc!PW8l zG_IPDS=$5=X!Po|)M*wqY>~YjfVWitX|=|mP>NIplP4srz_uKr!9ycw3T5mzFWC;d z_#6cijUrtDqIm)$`#;|6J80>{H1U|dUAM~TK9_%)g0DkVL0xvT+2gE(DlF?vo=b?8 zB1npA?g~;q<;A0Bvr)5rmrX#GKJH;*oswS3SkuqTUA>t(LQkFCC}G5T!nc$Guzf6g zGkUIsj>dP85G%?MP7BWe(A!ht$4#^8oJ|z{XROULsUP!ZW*Qz$00=nx&RzS3P!{wA z&#oa*x7$&rnV-~4i{Vc01{UE`pgkUOo9!q&C+v>+Sv5q-RYFS8EX^&)Om?9x&Q32; zuWz@Nn&HW#jML(!x~(Z?%kDHLz@;@5HeO2lU$$@bue*_LVto=dr=e^~Sc<7df zuYg_p`$;@bxP-ehK@b9yoy%P# zL0=CxCXSsy1p>Rc7>C_lA5y=~l33_%+lAb9v~Y?;G)9mBXzT}@{6r(mq4syK=h0$w z*27G+QuiS}cu)Ydw0G+FUXM}e59&^*z<~6@`VEp$-ny^^YEpK#v_H`z;|iUF4*?Ao;|e4&t>VyVxixRL(W22M@%ne{vED%|_-# z+a;RyW1&Q)n|>Jus58&w3bh{K=`p~yFvY-lrg7*ul0#JIk@Qcvm8K-_&sQ+p8+sbO zB3>Mv2WT)}HbP01Sa<*T74Ni8;j)i$i_|#sQb-B^DeWS(tLU+W;+=+DPeW5zH<`5E z@L1NV0&QoU*fT#*0nApkV$<}9oxbd(D2s+%c?@ph`?Z>IVjQ376X&zUO3;K21dDNU zXSQc9)%KV5Rgif~mR@5FXm_X#S^=qV%%)=%KSfqW^mJJ}`WDpb4-fb`qD`g82J+wl zo}FwfJ(<@+ik^=9>L$iU5WZ*w-%6OIxVbqPf8Y1&d~3rB=lJYo>(olgJ$_xS z10k^O9MCNrUl`X7&J>m($~d}u zCo=GIM&dFQI-{cwJ3V#FfY3u}WZPJ5)b<;9z-d6e2CK$4`EG9v-n%51B|heHNQrbR zci+XQb#!FLEe{C`K|lidKBWJA|V1NLX&BW5V{;0K=NG0a-?ooP@Irz5 zMePy$?p#WQblWMXDgjMJ29G_()2z`CZP^jFWK6gCVH(fR2ruo;hrx^-V?x(#Ne@JL z=8|XbL~i}!;5ikT@cL7A`=jLx4NQ6s3qXjRqXiF3W9ZkqwehLeBkpmqT zZ>3wSAt9h3S>YyloiS;i!+Ia-LV6TjUt z3F4JjDlowBL=ODSrUQj>2q<-wBbnZP-EtCKH&KW41Z9_4_$4>L7~w>J``jQ`>Tc8Y z=*bJsf0Rnl;5z55kN-^>dx8(ch+m4S>%VC20-*a6@qqFRLq0XUOCc;ACsd5igVj`) zi%3ux6qJN*9@K+D>Lc!GJ5hIAb$qFci*zp`@A0cbU3jTyj1AD#;wPE@=IE00mwWck#=&mX1ep-u zmt|<Mu9oTS1d0lyw{`|c2&7(LKsW*~|fJMkCR8CkCwO>U37EE6q{=}Pgd;uoN@1dRga8jpT2UdkHOY(5E~nC?{~esC%7saYYh zGgW=lwiC~%?AHw-qSu-WM?}Bgrfu8zWcI(6o6Qz3 z%G1H72yl}0%)Xh$Y$z}kTqGJDol|bKkv0_~ql*Fj+$)`Jy}1OT4!34MgYs-ie(s0o z>dHDM10zRbLcsLL4PQ0i^o#F^YhdF86%`d^Rt&Wwsjbm2a3m7DGO)%{1;9C8<}EEr z3ImfDDeug!zH(%!pkcLNP4n}$F~~|n6u0w-`ossa+Hfqqd+353cxUdBd_Ic%{Q##Z z&=gt~t;t$A*2Ri-zDoW#XO!u-8H>6wkJ7}Z%g^28Uky(0MdHTdQX{a~UEIW(zPM>v zn}Fa#%3emO>7EMI-pxda<+NYIz4~cyXt@1K45t8~hwKz^8{d#U0x$-b$i?m`6UtoG z#C6MRs(+cMM5t(#NW7i_zLOEIP+f%F{QP^MSuv29;ZB`xVMoo;7$TfLPM1LrxO+6B zab0_;j*jN)8XE#kMnUaCKx9%7`5ftE1t3w^-%bZ8$$qCjOR#ZAVIQ|m_#*B zxPhq&i4!Vuu@NG0ZVV0*y_|;<2)Mdvuz?B?)GQ4`{PXsn_|r|@X)lO|Px`(%j5FAM zeX0>DH)-=KW2r;qC0%gdXiF}+&)3bfZ8k!t#bxYW2E9&Sk?XboJ+qsaQbBmSiN&2# zC0Iw;%uPq`H3p^mcg7@qXb!ZPpWZ;n42Z!!j%N6SjD~igFpnbQgwZ=N`U!tqBT*4+ z@?a!x-M@f-lG;(;mrsO>5?FrWs0cgsygw#`3o}D!?j~!?`Mx917Lm2BlV#+iPLWA{ zJl+&AgyV;3OvWP@O1cVEY2W0Lci&da#fbzQ7xH1>NFZ=p`oGN&d^Yxv+ro790{tPm zkpZuWl#Z(cX?RLFYqfQTuq!zL1nBlSvap}ke?$UTQ{u-+;p6>l(g^lc$5WygBeGaf z56E`oBXs7=@L7pnGYnT)d^M=#07uh}u%t%acaYR7RUiGa>0F+WV|TYe=3lMh5$*ym z$l4LXU=M#b@z%p?PV4Wr=2vu=zM4?cYm5~j$UT@Ut&1W_eaLu@ecZM+Q1^qs6%@t9)9ld?b8|fhbLE-KI({@adYt@Th)VyJj zlT)lu6S1HL4WYYHu3ebD0K=$&!MRNwzS;e_nf%bf;92CA^IQts|^bU?Mz*bszg4VV26aO&T0kmKy={?5Lz2acflE9DTL&S3CF!4o-H z0#CwT%W|qI*5hpBe*k;_TRLD!O;W7iMfDRb9Q6oVW<8Xc*qYAnWXCAyHAKY36ovcs z@)2^`soL9iv5U_~3JqP%ADG6=QPjF~Aq`B&Az|{t^2la`OoQ@9f{+Vgyek&K+tNDO z3K{}=gU*BnyQ-Q14Z_8m=~n`omQ2LcIoMMvGD(uR(?i|Kmc`;ikV{km*#_P+uImwb ziA9@Uk(LRVCE6(WRz)8rVzJh!``P7FK>CUs|4AX*W&sR57E%^&sF5bQ9mwao%?+5! z2kRQXh}3Vn170SS4I>70Qzz-K*Vds?c9*vxJ(1kg|gz!%$^C z{`*|g&O#t+@)VTGFktX%D#8yb>BzU6&J8s}3vD4Xc1D#o(L^2(PElU}$tt1Kfi(H6pxNPu9X6Jm`GC#XS! zFvAR@q0Ur0^Pg=g2cSwE6R2V(UWki0>45!;kf_6qD@ZyfWiEW3F=Py{~V24>6}Ep`OIEM8fL>LkpCn zmahb!P=qUR8soo!Zb%FuW_X;CQ7ZyQYsWZioLOSb$Q`npMpPkaqA|v0`*3G4dt!s%wsTI3ByOz8Fx{2_Z{i9Cg!tYM+6z{> z?V&)}siG!)K)SP!q@a>l_1PTD|FY|urZbuZf_UI;Ld}+$o>HNDUqrNcrV48KTEln( zPmBkR#*)y5412I~qKJaf8~6{ntoUN*@WRW5REajL!m_s!kP=Wm(g3ic#u_ik7iDr6 z3)LwHys)zN`}?C}Wmhg6LY;YhgI+pDNDT;Q$xw06)clUEv_HH+{^*60%wU3Arzz zolg-$PC|;6iV8_k1)1xWPZU88Bq3|H?6S%cpOFZl)HM!#Hp?gkFaYzp)^SN7RHL{( z+CEIMkdft`dy_P84B?A#_z6J%I%EIED(Tq!6oQY#Di-qOL!fn(9J!+qmQmH7%Ml=m zmrfUu`V;3)oy`e0vp~X~0U`uUUI=NyGE)wIM=1Zz21tWg7)0s|9$3z(k>)>dNXA48 zJATma5!_{PipiVB{EeT3%)0+m$4XCs)yq@1S-o#hi@~&xb}HsG!YqB#-pkQW9$MuK z;4GbPu+F?a^~+W`6VJx@rT~M+k39mpmLOF@E?0|MOJyU)z(y|i7$KP#EWifH;-eru z84!hTKsP(13>midj&F5<^|N^cg`8W-Bi>JoJoP33_#;^f2R~0Jk}${YjxI8&l`E{z z;>fAYm)fI+clAvhfdWSClq2p!Uy~lkfD6EG`@$H}#|6}x;UNbQFCuro2F2le$yb@< z61{4fB>3}ywI|~R?Dh6V#89$EQ_9x6@r}z#&K9}19FWJZ+m9#{XnMRd5ER^dpQJe-Jph{)~H!+<6 zsYMMDqFP}9x&XEt3~KqaHh;k_H&ZHg*}&+;Av9}zqDA>t8pjyOP;5pu0e;}5CSU7- zv?d+8C?<$Js#=g<4;!l#?J{;(<~F|;_VT8!IuSJIJc;cLrrD~SBh(D)c~Yc&8!#~R zZE9L!ga;`K79~z5I0MA6eb>O4T#veRiQNA40Zg3%?Z-G(>NRl3)7aM>18-1A{G|K; z=}r4En!^y#iigKMUN(>P7!`s{*$yyHY+4FP3hti2?*Bs8tua#YT2-eCHbnQyIof22 zfonqC{j7}U$%@#rmnOpcBzhB;Hp?&*%_}0B&s;?bdG2Gs)-KMuBNqGa6+>cvp-E{Y z;%p!TK=o^<_9W>{*%xf4)x{eudyt;4EWFUvT_jFpbo; zmi3iuLQnhTkUi`c)B`ux!<^r_&FuqW{v;tICAj_Yeiz2(nLukArl62GMg!FDX(91@!I z1m`6Mo~##c?KI9U_HOY`ngu6CF=QUtWh~hqq{w@xTm9r}f?7PBkrdJw<&X}@_^p(`IC!b<0 zE{3WU|EJwf?f6gQw93pJvSbT|Yn#F{Af4HYjxy4Y8t3R2j=!GO7jr5bTdhMQK0RYY z>6b{~RLH+U^gb|Dd0TSD+qZm_%-T^vXvX;=T@lQ$>kP`$zh{LRP@G!+_*K;VFBxlC z6>bmRr()zOEO(SwXTPOv#$t^oW6i(BoFfI@m|Mp75ivt2Q)C|qap^eO`M$AS$fc>Q zATCK&ob#;9gbRKcJ$5R!f|x{LLKgO>1>qu)oI8VsJ+=RcnZp=?nN_6fKX8!aYNH?j z7#Zznte-Vi?bY0Bv$(13fNBKm!7;!yZp?=cNR)9A0~HO#|LRnyXWQ{s(Ad0C=exk; zWHSsV;I4G-AlOWa|J9IyMcE867w%}P@STgKDx)1VYLjH#(P z!D*4r=@nma*CY~!9u)`0-O3bN@2%uMh}g=>vorC>+(UfKn+7%=4(PMv4Q>bQccK~ixuRf9)Z^XD1){EOUv#%$N+m4 zlt8RM8NF#5xl>QQ0LccMpC0D_pTw&7#%f(oxJ)>=tH zqx3w@<_gBmyVx?$3iSF#s0ferz(6)5YY9-6@&BTtFl_h6D^Npmt(?mA4Q&g-hI%;6 zq&Q(8=D)%pRRpR21m!JTfwoBNeHR)3fx8u3jwe}7CK@PF*1!iSDa3b+5dIrQ-dYCH z>{)Zu6)B`1mY&fd5f2n3+}>aiaWY9&xUk3tPHQ!U+I1^#DE(u)v|$4MYsx)~%x17kJybv|r8 z(CH+}Qz*p`*DlPwRux(Ab5jACUR?HN&tm3*@^G$Sjjj(dhM6i+obs24eHgIY1%iM+ z@P9wVAKaT(4-k9aAhJV6*vzFb)37Jj`&`Smgb_N8K6dL5{R)O)DtKp!5 z%%At_6{m!{32$g5{5rJIfk}@JdURzHfR+VnO(MtzH*y4Xn3VIJ7Yr?ZEh!vs6_cwF z$FA_r%U}{46BQmW3T(*C=|vf=6{tHHGYCUHwB8$!#10i%F-oRO8z4VREEhFI|H!#s^T?sBB`ARG#X@xf}d3Uhd z1GZ!(Wo)=>Gm;}x;{OW@LTG$$H_k)#_1V<=9aCII|3|LeO$} zeBo|Euj+^)Q8=ihs-3|xNHX^My@~{uhQ(XS`fBN4aCIquih9G4)qmVx*PUU$4&XTS z0xeqoS)x!^_StC34ETs0tPI1bp_m4x+Y*l zFyopm66`2WjsnhVe-ZG2g&&xdH`z`7vsoR;975wk>X6&yfd1Fv11px`{7tt}Bae0+ zB7MT$SEfj9KTo)9VoHX&v2_dsAG#?tfvnM-Atr(67+z_r?w#p|-YPZ(z^qQk;LS58 z+RT!(xfkkdu^IA1hf_YSjKBtgJvgerLmS)>w-xv2)Du6v)d#ZGoaQ;Au@i+$t9*`YTG`gfmE!YWuQ^%hMA#ROr(eU|47 zRq{YEUKn&)tz$J5svPKMDL;nd(C3%(;_k(Eow@KSK<54zu?xH09tf|@79^kXa&#w1 zepw~xCvUtx@0f~qnwUdDD%_l~H9z*4V^k)rNBCu%hvH+{18G(rjNu=wrUk7;3j(p= zU9clT3McltoKb)aMnJCjD}2NO5YShB*39zC&Z0wUf``F={@@UON1{POcx5*n%$;Je zrrn9q90I<3LW({j8^_)1{WK`MXuYz_E^@c2;SibwU?L&E(Ladig5U8`x*^V${g?tRiY}YPjGuq3{Li%6_D51yj=1=sDRYy#8vx>9-wS#TqN!by-k;f0x0xn-<-z$M$aupBq#YOQau1^U<8dU zdFUrA$s}V7*&EAY2qI8Aj;6A@x5S1qy55uH`{Mk?{UN=;lE~c&Gs; zy3^3}WAp=S8o59lZ>}qCeZb>TB|)GTHopfsN)zSZ+kZ-3^19X!Q(O`_;(qMnWe&IH z;q2{&d5{MBNLh)NOusrfDkP1N4YX7I-h^QzoWW9t2bg|M$txIU_O9}GB}(ETKc^Xt zeP94N-_glig^GCu9=5^VqD{1jafK(z9&7(KO@1yK!uW*lc)#Y$a=TH|Ke<{V6F}^M zr>tj`L_fPKCEnn9m>zYs#VZXIROZm=~gPO#lgvZR(Nf2BY7)>b09` zAMIsSvn>p1on=jxOs*235&P-5?NTkGIIj!nU$dy z)=WVBORGf;i;1KtPg^rYx{CTh!dz@1IIoh=a>Vj<{fzfuyrBPb3d+hvDq7C;*TT$1 zRA|d|9xrb44Ae`h{&O^Ib&I&W^>@sb-gOtEmjYvD%-UF>@I7p@fS!Ko6TdQs_LLU! zVE?LH5Rliq3sj*t&)2$H-j=(SMaP5tk$01rUS<-}e~f+j#uN9$W;~n{AB#_QO#>F!I|753k@GdX zG;s)DGd8n@A*C3A#rZgNTiCSdxvl;_&p*u+**PTvWP0)1uR_tl^5ZB0MKVo(K=a0xv`079AKQc zV1joIa1}#u$!azw0eh$^I-Uo!YN0&V+Xc`{3f?Hjia)8=d-pL|PJVtKNPhT9y zDVdsy_XVEGz_<vzz-8J3KP^vl^l%gM^>$X z3;Zs~aNXmUB;z4%TlMq?TP}UgS|}%1-D#SCnf-LA}Q5FR~{nQr8;a1QYfN zhaMbF4wj1iYDUZAmSNgRyGm@@F&DKorGOvS_*h7px$l}#u+T6o;X{pHx^_AOQdI^n{eRq>tNk@q_EMJX& zIEa&k+RFKOI|QBJ%J|+;Vp^u@TZf6TM2E0J4|hIO`h>b zg^s7(Lm;6`OGiDj_k)P}SHHUuxW3n1#Zu93Hc&7TQ4de;q*?|&bqnGkJdEK_psy^jJc-|TF$#CeZesblHd}m$lvLB=xjFzYzgIX;QEaM8oSqz_h)VLOhSX7~t)$D`NgU^9$> zp(41L9ln`WsIRr^xmN7Y|;%g|RD&-I~AsAG4`F{DK51`%Te zaGVG!%F{K@ut+vVUT;S)ahSv%Xqry=j;YYco#p7 zpY*Hs2)NeiMBxdNC?NW-@uDs$rgG(tsji-Bm1a0}ade35GM{b(=a-l3ODxUU%+ITfK#ps~V-#_6eS2RQLjx`3RnhtVt=RpE?h zFiZ@ePRkez?{>KhI)U$c2?PAbrJe~(R@KX*ibmuqU|#n;10Uiwmq4m;S^=Yl0KfRr zMRm|D7ClDon52sN=~M~1RC>2WMsTK2SRdW0L#sU9j4fjIYBj$8sxP97cnI|!Zq8J% z^EpO+fkMxPjmx*OA`NsiH1}Wekk#MZ1PFipSa8ByR|g~ajQ5oo$eS33*QCQPv$fNV9arl0!}z8BIHs{%BTM>qekh4 znE)*`rh}$-g&4;A(Npo#@MKC_w+2qd$OhtTL1e>N>hNYo9A)xhK+dRz@cJ=-2~Nkh z)0`R-mtsaRgfeLvirs=&S9SsvLeE7iuaQ* z1};Wf>t}?TNSt0}dy~nka^2C_Smx6%CCXNS`ARc58>~KiVnv@#F2pAQH9L(Ju-e`( zXkD8CPH>JyqPV-7f{Bk}WI0~*LJ=k+L%c8zrDU_gx1Iz*$0dit0L5Hn5<%7EpI@Sd zP0ruCKJ_1oQ~a-xqHE@xoq%`*nz9v!;wdRsZ^xTb)(k68Gb;- zgw;*|TWMHrnx?W|5H|#-wWo^@k*pOXT5@cH{fw-t>wb51Gx^hDwe0 zK2Ckca#0Ux_gE;i?Rt-5`s%ZcXEUolzTB9|=Z7)NfL9>~N(PGqY|!3(LTU_r@ZT32 zb!0kwos%*7G=q?o!GoA-8@AF-Nz&@Eby`UhG4la61vVCqxEd5ft&Y2ZLLk1Rabeza z3s3TGxseNR`ZIN?#NSQBF0oLSk@KponF<;W7qE#YS zyT~H=!#Hlo)-ooiy5V<_B%8qg=}e3EvdT9$$R(gP!otJGjW$OkD)^9|9E4433E1Va ziDkm-SdY;1I9UKRTAWYVj`dNHTCN1fAqWYUm(a0Vcgg>?sD3K1TFldNJe4FB4UY7^ zj-j5tpbB^4ktRMD-FlRwGvA8B%Tib+x-#S}7`(gv8ug8?MdtWg^W&8);(6MiqHq`fgl7_@fB4Nh$D;Kd_=)bUUL!EDjkIDA4+ES;wA~ z#DLEx6l8i`V`s9}xoT>2(gXR*LOvOZfvflEii%X6C|wm&hHfvKKztmQKK501(<#l> zyCup|4Z1un>}!+1`hdB<-RP1Ka;mcWWTvYf=QAnh-m~%xUWh6FY#lIBvxO#=^CwEe z${AvO^xs98ALb9*3IItGjvVKk zjzC#^Sc1=Tj?SYwDMNvg)f!p1w4w&z*RrA1)s|c#1t>>wW4$*;ZqV8orfGo?z_c1u z@hqOq`f3Hy5P`ka8U6dut~N@?jDJC|bx>i${?Iz;yPe!#c8WBnQS?|0Jy`Gmok@oi zp)u^4-43%x5dj%r`QJog?`KI_L+@W{bu;_7Jp-e1fmQl4s-CfMjWZi94wgq@q z{vp(P`PX@{X(mPPf~DPM?8~CAt4~$I74Eit!NB}~M8x36$F`_PwkHOn3ynX zNzu@a)(qAFzcRMVXGL)1HTA{ZRpnKFieG4T&hD(QH5Go%0mQHn@<#eb`HcgRR+ZW4 zBL8L2T{`d}s{^2AU=pSxV%6aWT8V}H2GVxmg7C^h^IW^o3s&GK7kH0LfcG$jA|3bg zK3`W2!Jk`xyeBxa1xl@l=^gWHXwrK4gA>RQCvr@Bq(5e+qfg&M^^62GBA@5uj1sdRUO(i}%kE?-Mxk4IwS#fHtr4z!g`>n%jEi zUAQ6W9mZ^SBgXtEMOK#628^T>j4qxK`zml7XvpWSSG$P7GQb}#2Mx9F*G1WbJrOr; zM7vxcH1Xk{d5vQE0SCfX(&m2!6D5yNx3Tm)W!>&1P6g`yt!swC;MW%n0?UoKRqWaT+=% z#cmSug(k?_m`a$fwEGT@ZKmvIA+_7AxT-0Ck2Po7`HgMYF6Xozy&EL=t)Tliakq2Q zCYXtPVjy!qnvHTbQ2=(?H+HQu>0Caf4@>oc)>b!}ZoTB+(0N)TJ586QYc&eiMgtGT z_%8@e69U+=HVQefeh}jiv0Qxwgs3UxwyaKUoKkQ=3%!GnGKW-~NIj zJ;dasbn5}}D7z6n@Xu8gFR>=-ta8~`WAA}+6gY~a*wZbGVW%EpWM9|HTE97CF5c|0 zd&%UHux!V6Gx_*3a}XgDd(W(YFcUICGjq= zc3>c4?G-XLEUvH~C#}exEi#Ug$&ZUJ2@w_%gsQ#u4qiMNO$uW++a_|8T8SSwN99l%ASv=4bruIz0E^G!y; zrleI(Ml;D=;eI_O4~ly<$&_Ulin!I}t3GDwO{r*2l#z5sPh5c|^h2Wd>Fq)Z6$P(z zQTajFEA}J{-D8&_^m39lqdswQ8`3XK2-nkCG5O~Q954!UehzsZhE;q5KVZ)T_d+)0Bf&qyugae_{&rXk7{(cuy$z3({6D*D1)>$k4Sdu}*wd7!?-94Ozgr{H%V zbL271EQ@9hBdcI7C!i!p`hN1C%`Zm{DFG?JG+7V#uYemN1;DbuCax;`_HXmVaR1T! zw6)cBO`b#8_uq5+?YEXd$sp-=19k)}XV;Mrb#=!B4!ml?0oO4sEX15hL8U=@OtJZ- zVibvK#lVAB^z{4saDLt3}o=4ezBYUrZA{ zYHCUaX)Q8stlfR0sTl7=64P+w4^lbcK?N)Kaae%o(RzwqM zAmUpeiB0Eu*`x>SRqu&jxI3%5qh?Hqc$h{DiE5~XUguvjO+((5?P1p>B7!D&4un2V zl)?Bu$rWS*JKhl%7?_;?mWPwP8%dJRmI=Q?>j|nPF~2M%dKMHDQc1Bj?E0Y!UXuEm z_LVR2RP<%xM9SU`SSea_c4y33LMa%H%RBFVKzLS>>>0p)|CAM|0-{O`|{gPK(JxD_b?9W+VrS+#q za;7&Co9cZhn!;~ZYg>EvgNQ2Gz&!6em2?8597iuw*qsY_H#Sux;w(?vmbqSH{JdFf z#G?m5t#a_?eUwxRN)cEZrS)E!Vh5U5e@xAqMBH%}vD`Hc0se-lup=Bzli-#S1hJdK z)QRf}2|RbC|KhW3b{(D9)6TTfJ<06=@Z6#xCz+`|SV!R+cvV-tFcv9(H5U+nkLgC4 z>{e&l*;GlVr&G_Hm%Ec@PJLn9k_Jp6+HRaj_N4Z#o_6Zni3SQo4*Ty~^pt_W<*{`| zMctWd)x&@)#07xT$=~Zx1~19pAv&J4h^n$VIKt|hKnXX0GPnyB1CP(^?jOf2%$|L^ z`uTVl0p`iuV$N?h#m#aRY5^c9+~w=3F5q`usc&^$DXL(7<(e~pykoIqSFb~{tuB11 z$@{!;RHAkBi`OVrr>)bV9uE&gUDzn*H=fTrj)Flq)b=Ye_mI_FR69_U`zyVjRcRo-^{UC)Lb-{^-_rzNVZN)_+N9X^x)W{GMv$55%N% zkfhK&S@b!vuAC*INWPu#fm3Z$4B$oa&7q*G(6+f9JCK!^{eyK9Pd+L@H6_5Q!;#g9 zGk$M+z?$W+UBi^+QZW7T4TU00ZnNx^wM4t5a5Ld2_|7;V@|2EQqEAo$f3xUor{rc%nv`XQaE%B$<)4oIyX?*1AwcqLdbAi1a6~_=k zRrX6HHT)la0)I2p0o&wSLyBxWfEU!Vz2&6OB~UGcH29Wmnd90t{|gHN^r%Y2xr6^+ zQoW;tF`4R!ixY8I3PnVPmytQ=b|t&yr(-iWfJH%~V&`fu!w#br1caaO*jn=j5z}`Ej~5HTITgSj4)*- zcco2)8IMtwm{yAm3Vv&7hU+gn;bio06*Q4SrpAb|kVw!w3`rG%fA^X{H5TV?q953n z;%@8KPD=Mri`>7!i^p7HEXQK~3pZ3*ODkg0KTjB?8~zG~1>NJ(;OySjYkog=_wk0%JC9J{y&&%|6V)HNl2Sl))1 zl~KN4mT&U60Edu?^w7Ii!`P zPCh>FG17D{$9WtJFo!I|v-+C3udXiK!Wue*{@{pZQ9T01mHbLsUWZEDN8(gODgKP| zbBTZTQ;qu~te5;kMJ90H){o~xpBC!p+m38e_sAH%vBC0hwsXTysrGuk^e4ZPjj45U z3#j1ta)w=G_`y)_U6k^e8-kRg(kQf0){Ih{eR+9z><+CoMnk<2dqRdz`%@x;lA6b~ zV>^ICH+beG;%&%t!wd(kB}+VIhVCZ(-&s@}5D0Wljfrj-43bJ#(8>M!BUa147CDIW z!Pb?t0{@awy~}Ap|FDKTBr3`N=LGyMSWUEMQ&XR#u3AEkR9;ML!kGdYy1N*T7{mf5 zLZ*Xz#;ph5#dXKITMz@o3u#M~U!jbZZ)YLR{QdA?BEe(E?*Jt<`+ARs+6>+QOXOAR z#^cv)Em9lWGXc_s;dvaP0|X9|$8RR0nKw4EU89#vn~fFyTu!W)N~L>do#0C1Zb@HAQ+6fcp5K*L%#_9YTS z3!KrO_1onQ!Zu>M;u3@)fcEk7;P*+bGf~EAT=7z7KAQR2Rfk5hPbl`QI1pZ-`le+W z!Jv(e9SVy@3U%fAuOzT_f6U5bK*{tDQy*Yr`7=Qqqz^DyVGT{QFdNPyMd#cd*)mjP z2Ag4uAp^48_(e=c1c&$9-T=A=Qf-S8q#76D1D-W=n%2uBso?owIwfBxYfnNZ^J zsrh?C^dwsGSzJmivM&tg`%-7I8x493Q1*_u5r)Mzy>3!G@)!GLULYdw6@(qj)+&>Z z3_6ucX~~emi#rG3KJoHh5UUk5hGRiRr0OYY!nbnG1w%j+G)8t&M#cos-e3P-(atAQ zr$K~n2588XI8exYiB$Lpfgn>}OO*)oW(r<*H{PWpmoDa_%7u82i}gT-)9M0xLE ze2_yY;uq-$m?wvwv1fPw#P=smnc#%!tV0~4nVwu)?Usi&D4%1-o?afy4f2oGi-Zth zJm-GO?w1oGjJ7##O1I5$J>VuXf;T$^^)Q>nUw*MUWyiRf_)#9RWCac?h)%`LiSD{T zzZI0^D7YzdU8f~^{SE1QTFpVRS9$ILDPAWc=&x1M!jxx|5u+Dh{xkbVM{ysx?=jb@ z#EB|&p_FMCSrQq|TXdcRC$w=%%+&o!&-OAmBS4Nx4(&k&mzol9ZDGTic3sv*w`&vI!s$AlMw%B zlw2K`l&j%LmHb)me2p6D#GAp@>=jo*mUxR*&F*oQjN%Pi!s?*1DL>+j0`PRP0GH3F z26c}@(M}=FWv|Qk`p^Y)^HIwq)!7f!Zg4!id8 z=xhVODN+Zof+n`hpDk+QiQW!oRqb%($f4N_a0H%lHfRR(+b=025`X8QH1+ye%3QvY z<#X3m7@U^k2p5u|0x`5zyznNYBu@S+@TPE%KC`O#BF{|jSx|&rdJ4HO%U*I7!&e-Cp!EGw);cnVt zq2j*V)ei}8(A`C7C0I*OI#0wKt^=A_gRvBW-pZNRLOR)cw9Qy+MFlY=E?jaMcIs0a z*pBss-86&7{wDq|K_5g3T&$fiHOh0myUN-V5BvmQn`tXK7F_;ojcf?7VC|&-Y`C!m zs!A!I(yn2|Ak+%6n0Fpkz^!>(C0B43{&CNc{Gee#qfSU4Xws!7^3HM9sDvyh9H0np zN^u0ybcbuX4cuhTesS@-UK-4zq~>QQKw%ryx@7?&t=2cGX}!VvE0U6Ve1_1ol7b*w zDRVxSs*dt{X%LskaP>k1Kgqwvf5czN&IJyp^*a%1tGO^~h)q%r#9-AmS@41L4Yedj zxK1~Tv7PA$-#SN(K2*xg>tL4waHH%om^3keYmgw}q&1!K%(g@6&*p_O)mk>&%KG%O zfM=d&3Hi5?g(^qH3;5kp&_)gru$A=ZV@;IlVL{c4u^?;7b=Rlf>n37<7x0)1&Y&#r z)deerC8m60r;!Y#d+;zR=yB+kHJ2!dmps9jrBQJVh?GS+>+CFH;~r*YZro)lQJG zm&_QTFw8~#;9vDqqTbeY+#Gzh&-GY}9CZz;H@7=IIigcX&Djap#k z52_;TtKE_eaP)|9GDMi-+&L0ylF$ngvWch11$rr22SMYHH#Th#-v_2CdNCvsIlktv zVq^+|U*L7M!!S?^sl5E8j~7DyyMR7?NH6GiQ}lNv!%vTo zuzU)IXp7vcueor>y9?)dUgY4k#V+Cg{uA^?bK?6~I-E=-4q`fJlEtjbm;9g>J;;&t zZEe`j?9qAj>JwIl@u(ma-!W5B3Sws z%#0H~9!wuPQglrH@z{R;^e&tm2>_BIrThUN+g}UVj92VJ*95oP4D(p04wkHJTa*ud z55u;c+>HIgGW!gmFIqZDdD)yUsPF!Qt?RKgP;{pz@s=UZ;{Ts1SFb-#GWCOFUPG## z`5JoGNs-z;Ypj)2QEHv(DI>66;vgCOarwsa8+*$3aC9*Da_0NeS>79B0qYheSkOh} z_FnZs-|LM1^zO|g5#Dzu8Q&oqr<4qJ5hF~n!bS6jp6=T-MNvS~9 z;4L55pkW%`TjPRD64;rMRuWS9?>ks2gQQFvFF=8kT#sr+nm4B>%^M$3auRw9m;(jI zj@$M=i!ZBC$I)sO%e>;md(}hd)U^P7=T4AkrD6x%cN5vlsJATs<6u4<(m3r>ikv4w zcP@|)G3Y%n1c@4mm|w(ud$_W;YhMLHQ(&E!+7nfJM~OcT9+yP~T`x&;7g zC4CT-$5SLBJ|Mu{0v9C7qZ`)5SB@I&#U!?wYiNmS&(oi=*hGI^>o4=>tL`N!uG`HW zxRP2m64~Xb9Of3FFn&$^n5?;(f6Cp}z%I!z<92uU+)4Li-RB`Wd9Eq0h3B!*2740B zusAwM-UHU%li;-tDpcsa#8;g$6GNnDCD>i{5=}gd9WYTfRq4xSh#Cr%$8^^-h24R| z^Mv?jUQh-_47=VM02b?TgYEn>fOfLA!5IQdDe+y;q8$zF{COTFK*rr5>F;EwEoFE1G!gZ-zxh<&>K`QzX{|sV!AmjDA+tM_1OoF6NFrx{ zL+u6|6>ensufzTrY&dV?z-`3EdM)&NPnfUG_UzG`h8YkYI1BxSD?ka;MeLLkZm8TN z(Rx|OMmIXFbTR=~1-_m!FJHGg3Fpuh4CpUr@-!KSmof}q)Wjk`zKDFVI# zEnaprB8}Tk|eyaydNaL@&7*^sSy}QaUl__cFy<1*!M< zEIzs|%h4Y83z+4lvdv3P>|tMu%a@v;(9ehHGWrSZvX#E9rp<7alkAw^B0WUSWaPxA zn~69CXKwkR8KjIVp!A0A7RPBMGvZ!A*j9GG%6ZXyujxJk+o|kYgb}U~(A{GK<=2in zbA}XWg>K+}^~gD4`7b09^N|j*c!CCtM4d0U>ZbpWd9ssOM_;o|&{4i33T0bZ7UFbs zj9Y|2JExV1gvY6~k61E7u7%CIyc?@Xm4rrd=S<)vwLepIUdspYFKEq#891B?os6(PP^I~qEBByXBF0x(!d%{x zr^2SMlO(O39-$A;Rs?cm02@`ucrxD#sAu1t3?1p22V%o0D)8>ti)-^RHss$ImSVSR zS|JJWE$RujD;NX{^cyY-{+hmxJ9<$SEdjuC_$w~VlDOsXrK0?ICiaLaY%;)~7u=`_ zFye5&J>-yzyfDd^D~}3c(!2};IZrfL%F0{>Mb1RaJ|$*U7w3voR(k%|v{z-{W& z;9NjLpI-{@_x{rQYxf&7q3Fx|76*Gj-1{1Bwba`1^p4(P_K51K$`VO02{*@?+CI3x z!^#GO!cnHGFPF53O$4EPqdtjg?^-O>%~yDMm_7<#xKGCUE?^@e zZy~s7(=6@lA3up9+2%(Q<*w!`i3OrVL}^p~{Q zh2?H;ZIDqnkuwqR%RP;1B<>GxuV#doWv}UJ@9o6@W5Q2utyXim&1Zd4s{1+m^3c;v^i03rm4d(cYk zXjj51u2zy`gj%Fl9q1z)KZW6>uO-Vr=ZmYU?z$M_(i%XKY(FR@8fdYF7~X1CcKRMJ z@8j#a%gXX3Bydfd^@3w*>Ko*>V*V8G9Be=?G9YW~!NYR*RC}$3V7Kec4HTic=^#HyS(3I$%Kb zeIn7&p&rCf`>+CgX@t!*6_yre;W=5-&Hl+{23v^&KRhum3eTLhnOR znpIBsQ}-M3D-wfA6y)lWx5^%j+IM8YFl`sA^mc$qa95|*dJS(}q(YU$WBozkNWD^$ z+T6TsKiFb}M6CRoC?e#P2$y#@j9PcCFJQtU*<wZ?XgB{eVcT^z0j`6pt2zq$8Eys-d{#(McVx4PZwO@aWHsoTgTvcq%W2Vn z%R4KP{d2Kh%Zx7^*qV<)x1F8u8z+mFFIz0S{*_ZO6*e1(Mvo8pzP=1*xYF~)}7yK$10X*75!1Xt=m0(QtO=(}nfBZ;fz_%mUH|db!5;=7$1N z$DE{#QK$~Q@=~0^TI(L-h`^Y|p!$n^QpJ^aIr`UboaO@5%FfOl=2i@T!|)e#mRmuI zi{UyxbX8nh!$_oTel48t$yO6W6U#hDUmCd#E-+G;a-j1=+FHu2uH0`swqrsdN5V`* zzw4^aJ7}~Ue>E#jc`W2!i7QgwF9Naj zz)Pg>;TM=}aB{pAZr}NHT~@LT=i+>J%lJ3udS|5I9b!F%GZ?VT>T+Uw@UC38F6w)N zL~74lTWfp-mf?=HL|ZH0vIy<&2v=b1mNv&cTZM@zcwr{Z`EJx|?2@l4txpwug(0wcBrB~^4)bFFbQ$_nqXJi41$2d zIu;u=>Ei%N*3aPqj)LTimhPg9F?eUmL>iKFT8?jX&qThk{P6rK6ftu&*AKWJav71I zO4<+v0 z5lInBrkCg;->8HMOgb|*O7}Tg%!x);A}QI*zbYlJ>9WYH+H%vB!&`M^WvR5gkX@@7 z3R@d{V9k3fsKsu8x}SJE{e_fNWhRJi^4FSTGqOt$O)+{Bl(&8@F8mJ?{len{=8(5v z3acT4Kqw9WUM@vrC4U$1uydk?{ukxQ!TGX;F6AB&za%?Y*Guep@yRtaL2uM6{roy) zlVw+gJ>krQ2P8;fR_T7_OO#dsM%a2ECIt0m!zXEA7ZjSvkS(QZFCZR}V-OUlR70xQ zo=_mXsWj5DFPTntU#k4(lw2*;Kxy9YO40J8Qyzfx74xzTi)+|oATLhL|KA@Tk#l!f ztrBL-Y*;M9?b6{YB%**02wFX}@#lA}X9v`jF`nD=2Caa;hqk*8@A}U4+ulEZtQ;VY zql_;bXg_p0mA*6QGZ;=i3Y~5`S|c7ae8*L@jrAfQ`ppZ}F+Kpt1?+l3C2ls=VRbrC zcBR zU^+|DTW>i}Cb&x%3w~lpb(H8k?_Vm3>EjZWQ3#JmIZ!f=M(X%q&)#X=(ni+D!yBFn z4_EmRX#gm(i*gy(Z$Px3@2ZSM?P{4+J2M=lbmeva={$TO)mQe}9PL}uEOH7aR*in~ z4xd>%x+wQ{yQkCD-a0QOe_<6&qz~_Y?j}^dcs-5i&oFobY92t@3YWW}E(m;qRV_V| z;j8vdh&>%nTcAaGeqwcnDD{5v0hVsBvkhylgo!ZcYNXNEn<0SMa|2JIJoYOlJZO?{ z-Pt>_hukC<8WhHo@G3#gQrxGNBOIpM*+CVE9Vz&$r+}o7T9`#DBvyjR##b#@KQ;Tb z&gy_A0(WzNnl9OScF0S!FLJQlR{DGkPvYYF+F1e1{lX>A+Viywr@*=BA&|^m89vwi z5b*B{e1P!Pc^R>EJU1$x7QoAgRi6kLHMjtK7AVrQmIzv1e`olWItzx@gaP@3qz7gGT zt&M=d^HvMAs={>1dnBh3DP#UQqxl(ly7aD`WN{$765Ch^fe#M45zsnb`bh? zUPY)@{Ca>7^vID-;BV%l|`q$s-w#%QFD})_jcT zpg^=Nm~^asdrg&CllT3xO#ia~i}5ky+`+G~o6Tis(#!nr@GsxC9Q7}fz5JsxAZ=u zstH9xzBiZ%b_j zuSgthbTYK0og_ATog`Uc6>E=XN>LmsJC5QKKH)BqNBiN%I9Sr=CBZw=BmKmN$GXyj zd-O?9u@kezrq?31=ciqoXVu67#yw=a_(f@d@p_2y#hf=&{2qYN-fddnipzh$kNvIx zj(N)7j4n#gpKkZNB{S?CBSxG*0nVq0xyJK6xcr_H&kkFo_&;$!JkhVFSt!q($jVU6 zyo8?7fE-#^(;xWm*SF>i754DndWntn66N1|F5G2g!*fqrGo~u`QrADE0eK?}Jk>&w z18S^Bw;n*1Vl#foxgbA4Aj%OosJ#^GZ$VeV({ufc=Go{>KX4P?QmnKy4vvAdTZ_W7 zOz_~Y)8|3cX)&3DD@0~c^?evLqN&^DEhGyjpUVyzRquij8J~|gHz>)Oii-{_@w#55f47{4wtn# zopRY>?F<18E>og|nhQSV#-3GNk{+*D%j}=??XNg19-&}#Y>7=_XPx~lAObZbh9 z1l|~TP{z6a`#yXI1-bZhj)Kp5vyUHNh3$QX=h2S;xo70}{gg10JD0eTH{)AnuvH`M z&e|h9pWE4m9O3x6uct+_Jk1(0Yh1SWZkNiK0%4AZPAw@71xnC5M`TjZ0fg2%*b8%| z^&x+tPR}_{6>J;#!O}>gR@psI}Q2O9=X!lvr_V9;hNWt8szLn5@42iY7yRAZG4sbqf z7tyKE&wa8H%YaQqJ9vF=E^ZcWe-MxZeKX?@SRp9JPi2Byx@{U7B#cEJ6EiSkh7*Nd zxZngCiMTUNNWYUgPZm~ge<3t;$}?=IF%i) zWg224bos#RVOcPOo9Q>f=F`_hm3FN%E=JK&Lh*4~GU^jYOkyipyJ^@77S%)7+~I#z2^xeF&l(#$U>Fv(iyhHiNo$I3vxDJFoXR_~_^ zbUHUtR4+4ULwV*mSIrUbJu;N<%U3t6P)HwpZA7$iEZ~mIow!ujTdDTn!Ltf zJK^I}I5f&JkAk9>fN57n-WWz4^FrQNoS;N$f?!nHa{$7uRX=e%OFC#C$^*e=kfx1k z4geqI=;pKg>gvqNetV}FIC%P*x$1iK=Dc7BoQK&VSr-=Vo-IwVQ83ZjOiEBw0TIEhZyUF57*NTXB{A{ z8c&HmfKLpWgVE?U;#p%in0ik6-{<|*0W1-aSZ6Rp0F2^Gz?FV<-A$F|m(?1qzaZJT{vO_q{uz`zl2}1y43|Nh zFRotfbg^eSZf`OaSPpBmdG6^0D!;Y$vRAeo*LKoqiL7O>B!S-I5)H@6q7-COvId7px90lX5!e2f(dpE$$t8*kX1;T-L2GD@ju4oG z#KC0(WY~&li{kY%vO%qB%6ai}oaLpD*{x-6wHUJ{tP!GdCil1G-UJP z|7K+oSLsoMR+^#oh)qfdBKBXK^YhO`BY-;_NR`h|}fsgRB#OvUThJ zR$=J0vq1w?CEl+Vd)ByB$tY@;$fE#o$@|o)MMzknE$^5l1je#Q(2fCWWUYdKKPwpZ zAD>qY&wKYxCd6kK5cH(tV-B^kVaqa3<~1Zn2TsAsZyvp8&$%syoAx_jv@>^~9B#Sl ziC=dkUy;&myla_MmR!NyD^lw{e-B8Km(PeB;4iH&G9o^=2b0A*Q>Upq3p~|u4}r`= zZk$N6ab<$7)D!*H8UVA6q`|)5p)wiL)$QYeYHPD2s)k?Rjl%fd`?3H2wT`lJtg==o zjOQk{vQsULC%Jpa3qR{Qzmf4pi;gX0QX{44B;a$=8x-FWV32Id4h}n z;MCk&E$|6(N+uRBt~Hz2P@2UGek|B#GE169Pe=McY5m8S63PAr_Zp79OB^ugXeTL6W413qAZ& zwp>+d?!6-Gs_VNSoKi4Wm2Y*IZ&a@Zj%)&zqCY^<%St^wS&bQ_wsi;OKf(ftJg5N_Ws$iGJhw0KnO)_0!5Id5M*) z0FqUyE<9#*zbN}}ENQ!>t-kBi578Wh}CDHKDp20HkrL?)moiJxM!r%23d0JbDB=lmWhecd~cA=k`>-nj-_1tWIIp|HjCG_bR1RWu-z z$J(WOqmP}zLO^I219T@qC9MXEUz4qxURogjkyIl3?|(UzhJ(JQ?JF^8(~xYJf--hW zq?MTz4#4)XKHC5Ft>)zAmSvdYf;}j`!1pknNv7KJN&1CcMzLaD_pt|T^Tlj>xG&Q|0dhN z1Tzs;f`|p-ZFVmG^Wmik`}_DMV%AhA$wqYUJe@Hnv==>qN;h#lvI{1${_KU6v}5aN z4GI#UN;PQaPNWG|JiKdA30ztck{T-oXa%*$&K1*VMF0*6&5B~$m6NR5qMXT?2M zeoO4p#5czdSckevyXG?aS#NeSoES$b*Iwz<0#`)B@m$}X4RZ;F$LC)G9nIg)?|}Q+ zV8uA#cJZ7-xcMT!8OkMcR0yI#t2RJjNMX1{v&Do^8?}EFP}E>1OIK)j0_-l+*x+>* zc4X~-f1G}6JBqvkYIhonm&i*qmLG`ipsF>T;s<~iB3TKZ!qRam7ghNN_eL6vBav?{ z&T9h*A5l(%OHC)OpmB83!QLg;j3#`~H*tRqxfHH}Lo#4Gy#@PhpM22~m0vU3i%gij z9IAnJt~{BX(r0o3qJ3x77NLcESyHuHYk!oyPRsWG4DIxG%DNjTIS+7t^XAV-(yZ7O zsqa>94QtgGRHekH5CEo=cCZD-!GhWbu3e$cMAy5CxY{!yn}hi-2(dX-<->!A=#GyR zRcR2)!-j&6Ia~kA&B$`=p+0pe3wY{yQ!lF~$Nw{;E!-XK$5ofnd*^k;@mk^$SLx6d zF`1T5;g|n8Oy4qs`=+%0h@qsEuQ|MPLy_^&J9^FwH=~cy% zP{DP@CT9Zz4NGdlV3jh1-=R;$&2sxhIf>PFKcrKSGqPeZejMYUp@8XdpuV=DtQ8hb zZ)Wau!wD~JxkxORqqQ-eUQ4Id*XIEgtNGkB)KJXC-|<3g z(n-3+h=0@6VvBgc|139A2csTBnkNX>zb318xCBE$7T_aqzIAN^rB_(BK4lo&;g0=u z3N`whxoyd0YpmqyFg`!W9_O;pePO>{V=ArM#F)Vc1*qjLn!qIv&tW}R-L*=^@E<19 z`+9B8BVbIdF8-ln7Q(HMGpwpT`xjuz@?rL-qFG%ujvsf+z*uB*gkihphZYgYk%V|i z_bhn|XmxECSk7NUtHm7Vl~pB!$PY$!!aOt)6JA{gf80@ z7be}|hLrI`jqz>v$>-^&>ROTYKZ#FuF(pUY5f!fV z!5%?3X1zL9UpQcX@kGz}=mu*h%X)c~=VGV#71r7}D8}u!)lH`t1bSs(OPDg2)lVD} zn|2BnCbcovn=#N;=lPTw4sb{8{GW7_n`G{nOionX|H;1Ql=(k2ePG)vZjA`* zg8J#-Q~prX1TN}%pw@(FDW0>&8z0+hcu#oX?HBzlB?MO?Y$sF*xRUyw#JGM3vPdRw zm%nWH_g;0n6@Ohfr#PqEvq+p$TlD85bMno%N01pUkvN8iut&PgkI`;P+s22VRlFc( zaclALqdh^fZEEJy)wFc&!kjsf}7WDu_A%j#ITcNubHtw>Nj*Y zWygP^9H~fk-0u?dP5Tr7m*!{PDE`#R->%|&X79w=s*B~_%g{5szQ7O4(;btQ+tNhjU4)w-a zJFFgQuqva|M8H1BoqFtSO_=u-*JGT-eH2#y9JGVX>{uOM9l%jcI&BoDmiA%JQ}Q_F@{RNN?Ttp!2w{CEnEXbFFp$dFW}1lAK0CYjBablOWJDT_*5Km{I(y zrd(&5DL;Nvg>614N}LKvV5z z9W)yurhsh1mgi{styXEssAm$NI^$R^Dtm7;`S&_b zF)u}8{p@7N-SMMz0L51V-Ri1&Y+^$njr3R8ZmT>tU1&W&E23DnRgm3_Kw9bGj=(SQ z!k2wLjgYu~`lgXV4y@KxFdO7l?PEIIA8Z~fcUH|4x&)w)@*55tomOpg9*9Sf%HtHB zG22qw;Rxv{ks+vdK`^NpUZkvPG~{|_JOlc0z?J4FyNF7)R1jsc1gQL z4zJMgggQ^hv2K&Ml8fXMQPyRrRW)o1-OkydyhFFRnKoyayW;2N71xWQ{1q3}q zs4ol4s6NWob@fmbWACHqL{X0(K8(5xl2&|lnc{Si3tj15$B{=~IdA|cS+3P*!0+m_&4Uo>-cC(mJVr6>$cB1qr#mDQW3&>A+ zE&Bv9z07#GPiiy#qe%VwcB|xY->MlsVyD~9J=Y1f8HY9jH(}%oBxsTY+c@XncHuB8Our}D;jKGiDRw! zd|R)+Vb_JSrGVuwCVE}sqXzq60d5DSt4x?mRxk-4V1Y(0U0Bfp$QcI=Hf;{hD)~L{ zya%54ciRa3#9NiAZBm{u>FpOho_nQ&uMyNM)jMBkQ%Uh@h0%K{5*=_8_~-4eGO$7% z2cSzv>37709K=46|5+jlH01$WT_S&7%%P)!&~Jq{;5{{}!Fc)i(fz{AkEWhjR*L80 zG|WEbUQq%9tJ8Q03~>IbQ!vurWJ*th--kAxmiXwHXTXTRh$8BWn0dCLm6|^(%mkDv z#62V>_a0ZCAbQs^i%?A@jo|wJGwF3>7yB3Rrz!yE^uD4z^6tiZz4GI-tLF}8iwouc z>hqDZOr z%e9kGv%^~H0t`~|%#&%snTl4E0pYKqEzp=z&uz~&omZ%7X)K<=gH!|bDt#{NQweO~hYxAi#}A zc~rop&#e{1Lw~=5^2^fI^O2EXL8{CfnfNZC;FZiae%ct}d0;Z6Z8n=<75VJDluWo5 zbR;P(M{>$A0pnOwx6k;)S0(KbLmNl1Gx$Ja@u6&*+7jjBqU_Ml zT0%b~p^YvIL5Yid5MFDhGHB}h2xqH6my{1ZvIcz#ws$5a z??=1sjuJGfz{n>t1%Kp+|U+WQ!|z9hrI{f&xvTJs=g8E>hnQb&$l8$KN^A+ zK@C(rL2y@O$*mxqB+yKpJLRLm>_Y@I;fB;^EM|re4t81Kyu=xQHug=z2-L_K=5Anz zXiXgaAc3VqgOwVD;QWeGW*(0h+|H@rk88{ZsOEOvny1#GRWY1w?AM6h`0oo`07_fw z{r3G60($7eX1HsFGRjKgyDblCK*@C^MKoxT4YcE)WxQ0?Lfw*7MjHl<5}ie!oJL%>fc3jI5U=p2WF!&fN&c;m+S>J!>5Up+9v zXy^#C)J{5JI~gDdXUDOXxb~UU&{0EQ_cgq@ge|l!>wW^LaS=p*ir6|C7@ZX-ZU+Rv z#jT8Y)G6`ey~>T`YohIw&w_qoTWY5B07=P0mcTY6(s0moTwG)x$$kO4YF&bomK`&t zZq*ft4AK0_c%sOKx^G980P=6^O>Sk)3k+5`We6G9x}*)(ISM%t+pw>0A=~7D&LYil z^hp;C6uV3lTj@^*I_K)JB1cdemPa(guxtI@HV|#54b0G?3r-##LbY@{u~PsI66WFI z4~7q5_c3c^cTOq17eS%_H+RgE9fJQQOTlx>R&yX1(&CVJ=9W&{=he-(n!kQfOJr}n zm%+-zTTirRCBjh5Uwyxj*_^!O#)|j$n%X)QAcrx&A-#GJ5POB7>T-s4RRzDLX^bk3 z>(}q`>8@NGjdD@0tlftag>Q*gejgAgMyU_;c}fMW>Q!(Q8VA|sZFJgjLoK5hHeue9 zY~0kTUjYC3SOO!>uAuKE*aXYXsKc(i%3uegJVR;~n)=Y26Ex`f$wo6D>O08eH=68^GVBb@Veco=o#YhB%y>*Gu-86hj#Qe<*xY?og}G6Tjf()GOnzXH5zD z68)#3kr+O(&qAK#F9)P>ivAk0$^k_skehLQg0uPtYw3`^3*lF261N|*+OP*o_8&Wsge$;{#j8n7e7pS zdGUF-ok5Os=C@%Wmq0`PB_Ax0(erU?lOrvFRfi)?*h(b=QtZrtHOPvBW=JB97Dp8Yn(wsdu_N-7C5!~198HT*EmiCHg}q3wt|M}7AU*(!NYIXNBu-T5G1 znKUxP)ZP!yw%GKX*!UEjvIL#k>%64fm?B?`QX@Tm@~cg5zgPkBtg7R`L5m1Je?@cd zNZ`A0B(Bt?fJEKAt0HBADo5~T#+EF45T^zGf0bjk#dw@Afz~MX!6-B+6(&~<%uBSn{MCc@tSP^mdIr9u#ndN^?6H45H6#xyN;IgcC>|wEM1+8oz1+f=NqprvP~%VHv5cD_u@OotK)kqe z(l8SgW~T|hy>qzn)Df-3S`QsfR*Hgn;Yc$3g06$0Q7p7#)sj>{|I73fdFTkudX_=lkcjhAaxRp;xU%0^#d=eA)n`BhGS$IWqMN}?{wGx>kCqzfnwI4 z0*9zH=raysg&O)_=vfrsPFX<@u`A)OD%lb@9}fA1G=bJ{jzbidQyp5cUgn@r*HCT%BEM3=y|a z{tKsO|HGdVL$Fcx*0^I2-`oN+uYeNM+2Pk%sKloQ z@I0x_w#pNKQ8}^F{T{hS;Yu5jQ+7WQw1H#>V)o9?00{inL!L%0X4TGzS>BqX$eJo9 z>N!FlDB9PQ5XAuuzXkimSXck?-N1kM=O)mm4KPM8-if z&c;SVQhnmU)6)HgubHuXrHtQH&!#W#WO+&r(<{DtON)wLu<@dnkgt10`;?HAavqs z?nvtJ0}l+d@md+Ssu^6C&=*RG1GSL4qi8RXAc2>+W{k;1POpu;{M(0g+W>#)^rK0G zAf}rHe-^9R=i%kyprw0#9NWj_v<`z^?R^xn8j#kDD&&p9Y4R70U~f(-sRk&0tLHuT7GUzp?`ZTeVEMqkyoZ9jL^4F~s*BOjg>8 zuc4AK+5e<+z$#|s9#?q4GWkZz9rE1RP-3yk1s6^LcxFK*IdUi+Nm6@)J{q}lyO$`d z${>T3lpJ(nTlJevF%}E`vA}37$mB)dIGhDVNE2cQ8(F`X(8%s`^j5*jU@K3hB<>7I zPr#Zgl6To`4h*k$nlDqaz9`@tu*U(u>2g->&))i`3yR8zX8NCvDLI_zK!3H&_e6rw z!|CEbQ^@Z3{Pr5~FhO_p`KR2UttRjCs&6M?>d;a`>MkF2V+^*prji+O22T|jQ0bI< zjE|{ts&MPUMdfKNwS{tl7qVfY%B7V(9Q;}Lj4~lz1(F0b)HH4fy8q}XMZSx>p|?ph zp~cWh7eoSl=C`|G#I(m;2;*Usk!6FU9r{5=XSyfd3AI;cN9qJbV}l6E%! z?#n6fVb2mPXTD-+B+-Xu=*`-7wT-E9Y`lf`RgkG5P}-Wjyq$&{4=0f0Nl(FB@!V(n zi7DyzevdlCJ+?J9HFB`^pNf}u`G|7;r>2rbCJ|(10m$W3>E?yS2WL#?UT6jB4A>}L z*2Mw!>o|KM?2xk2!VebI(kl09GkVJ7$)D7g9}_%%om5;m?my+9XJfw<2&0^~uTqxo zbXPPjBbS^2Ra)I70-Ts{woMwS~PuP#jf3cCuphp|WD^Tqa}G^T|+ zRzv-LIg#K8Ru?Et#+b2F5x~NQC%?n4-1^#yr8BW6$Om!215$oo~)T<5Pc;ExIwA) zALO$hR7U^Fdeg%u?4=_LIpli_#s%w{#5Pg^YpgA*1AEj7`gBdj$X^vNclK=U&zqkW zDU8mjN54=W1&7nCnRV-2mnpqWRfIVcW;mMD6Vi+j zL6h!3f&h8#M*7E`@G|_12p(7#fx~YqCw7E!KCBUh+JZg-u8?6VAXr-RXIDy(9`}Z$ zp=`%nkmn$@xv7ttAy&I(U3XL6N|W7^H{x82AYol>YgT$P!Q%lT825FAUY)RQHoGCo z2!ZU?8MyRO4rf!Xe_$;_&!CG%$m4RWMVIy7?c0mJO|z`((eDf#H}EE_O9>_oc{Qd} z>X`|M6yC0)clKnPgrE_y+Rgx&?UG+GmFDj@s24>|HuP-*+bJbKK8b{{uPZtQJSK1$ zjkRkTLVeBZL*XAFH;u0C&H3}HjtsY!0+z1|t02O9S@w=uH>+qH^P54PZ4#jW<$8d2*A(? z%y;yAe1C1#^F0=mhxzlR-{6KiPVJ`lOHf~zI9DGPdnN1Zx`4zjk$bmJa4t>1U~-;J zI*>nxX~g0AmH$zRhT z;B`oU&rr=#@fZ{^s;@LXC-c1ys-S(`>0(V(9X0Ap&qlheIB<*YH8{4Ou1CO4BNBAS zuOg(xuP5pO7AD6Skn&;hXtd;k(WpOjm|-ySs8PajZDcj%sRx4Y(_dp5SZ_oA|u5sY}6s7_rml9(EUxmMmKg;S~pcNODyI+BkwE zIvh5vT1{swK^;oCqM{nVFAMg%H^y1$$3pTvO8B*>^X4uqQ8p)p9(`Os1nF6GeHyKg zB+&me8%J;URuPp(L4GU0k^*-5TgIV2ucWhK*Z6sv4vBk-_qd=KOE4}t{XA1->~WzW z8$^pjrt7sFHKHGTvT;m@#X_R?1`vM@>9u?L4W8iqccgv>nqj6uqa# zWzl@RL0qw6X=H+YcQ>qp#t(SVZ6jm@_VXCWr*f(=*`AAM%^whOacFtwTA|osxv^Zq zrbY4V(n4deq)`yt(B$(@TOdS(4fMQdz(i}BY7{Itcyi^0HW{U3w{~)1G>~i9>#2JK zmF&IVBtDa5u<5Dwjg$opbJ`2lsn0gJP;4TYss*+MIL{(hV3)|yTWV;&uQ6QjQIlbA zFT)I{W#;eA_je5%)eh2xvt~orK-8CRrK;7Q%N3y;`ZGzmW&ibV233%Fh+R@r@K()P z#*&b5&R>}msfwT>06LPg@H;-I>^(Pmq?{p*JXs@K@J#PEqLiq!`&5}4(Oqo*=R_(Q zi+EtP1Pof(pUW+d#)GUC!Y{X~WB_LK8+U8hPrKUOW0+vg;T?}}8@jwBp;!yH49>~F zWG6a3`P`l$;>+?SZqST8J!Y{sm#2B-c|S9*bJH)ZaAGh9buF0n?kuaaT+s!864$QI z3G|wHvegIf%^oU~$MHO_0WdWh&ki^iL)SIi!K{k$(D7mPyz#hysEhP9p8Mn%r(ZC7 z9TCNDxnYau_o)j0G4>!cRU0%S$M*UgnbNHQH#)6uYjmxg+aJ}J*6l4we;cR!Z|#90 zBau5`y5QF@xUQVPj!lA#+_Q-E;oR&rB8kP5e4rV9S3Oa57h$WCgQwi!tM&kPo;OdM ztiF~Qk54YBy*%;igX&-d`kv-VXU1eFe$Vb_*fWBwN#LmJX@NLMg+D;*1!jwQk136O z%QS0V8)kb9bwC{mY#b5-AVDQ8=Id=q^r!|6DDN9DQ=lRDOZz?IW9v9CfXEaqi671x zAbO{Cg_!tRQ*44CzI+nyjC?aSga{A|w8B&%gjN2cXONx&<3(V}-5Tw`Vs}@!hjPYy zu15g1_;83TQ`S#`P~V#3tT%rnvez$E*zUgu+WjeNw8hg}(nbGJ9%v~b861aZBlub? zAJiyx!CP|gR|YSx(O|%Cp~RJP1K;pmi`Xa`=8nTrlM^;}Z{nVSh|LR9l|6IGTXfKI z4y_svgct6v2|caHcs8mt+Vf@&2nF3@i3SdC;AQ$cUF5jg`zA<9%J;WqFKcra`>DsW zHe!jx`>&XR*q(-$Pi1Q)d@1d)j0~i>;*Bt_U-9S#&CJA&&m|U4N0EF%d0gqxL}d0+ zE%LHTj27k|`#60g$w_+(@+@cP&QaJBp6;;8aJ)+fKQ*A4x~%~ZBpV?ZJ$$mNpO)|F zo$vZogCXaeXIV-dT#J(p%b|N*N6vTB8MT9~;DL1YY*;ICyNYyah>)~`W)t?@FL2Po zCJEeLb1jnos~wkUzR!7{rCYiax^h}5+`KwXquK&qcCD)P8 zCSkyNkX@rdFqmo*;>@ELZl|g??i%x$@fm$z2XA!2kji#m>R90AfDCntLOiS0v)QW` zoMs1Lxkogm(FlpzEQi`D=A1^s4vWhVAX{fr=(yQjtEEFIfCO)u3C2=X31{ycl4|#= z6*d~lAE~8^1Xzqy4yGMO3SRrB2chcja9*a=zTo~NwDN6hSVDzGEG}6Cz5h&@o(YvS zlcrt7bRtAZ&~rQBO*UVav#OwIGaE#r7)|2b0Sri22?8P!h6T>ZCapv| z20+BpxiwNJRk~~vuZj3=<)+PBx^Q%Oa&;AMJl^|y&E_3@9;I&oQ-_-c3K4N=M?Nt= z>T)|1MTI|$vKf&{L-lsJ6^sp~bM!eI zfw)`+CqmD}(Kuc}ruAY24~IW*u~{{D#QJKz%%R!rs49RBHT__iJ9G{p_1bzIBX&*VzZ|}zAMr!#_GpTpMmAM%6(t`+RG&Xm`;k% zmV~Lbu`*4mH>;BA=nbVvn`blYPUC=*=xYqC;rLpe&{Ho0HFgfmO(N_uvuu`?-Sbmw zh%|Wm%2?ju^;+!8ZLu1#Vzr9LF622BHy1zOsL*ihQB^c>^%~bi3k}oj^)VATwnocz zUFnB)4|?{e01<)qul95AoRGhWFIr1Pjp;@!#}LU#n|D1wnyhD~-yy@&y5U&p5M@Ha z>qHL6^?s5$PrzUvm!Qe%7!S%DbxJ&9q``W#s-op<#C5o8&<%7ZnvY>xd6U+1yForCn`ANsD$Q=q+8Wq)})$voIg(C~I}s=DI_j(xs%)Q#I1 zRUyQM$n|0fAc`p(&<>%GE~2zUzA;aI(d6tOIBI= zP#%$&b3$j-X~jE~iHizf98wx!EKhi~*mXY_Oj%|Gddh`v?eZdC^HXxPr@|aP0nFDv z_css2ie(nyVDr(EQ>QP95#(jaw8G)%b##U{)1GCD6ZONfoNNBypto`pv{_R(prSigLv2r~HwhUbN}#QlA@1jG|P9OB$w` zg;k}wM8Od}g|{pC&0Z=5J$Gcxy%b$miw^vI-wcMC+|j&6oFT+I0BW9_^4nFyNsLz- zIvypLaRxsjJ`%0fVn?QDNrUtnY{P0DcjX}EZ|Xlpr_DS7P(&eKF6^8_JSHjwx|v7l z5PUc=W-GUwr0cY6dmDlZbw-Fw4k$cr;iD$uM$qn<#jwwA(I@# z92L=BkAqd^dQ~QFaf9PLC3;HvWX7RcQ^_IqR+wE**qR?eg$-;}QpkLNf<--)hCefS(zS&(X|@;a}%l($*8zC1_+v+c^=2kY#`QaX}1p@sgh3q?A1 zQ}2b+zuUuoX3>sp&wzvy8lh?H^!;2HkRTq7x~YF{2zbcstJ|FNR7{}T8yp@U8{>*4 zX=DBp#90Gkyin80E+jA@5)A(1YQ=2|w(aRvi&r-~xm7kh*% zIxZAAKz0IHOj3uP-5+32roIUdbP;q=g^e9RlU{1$3P86de&Ti@M1lfe-78Pp$?Z6* zLq#6~5hbuPKf2C35((U3LRo#|KWzi2r*N!ihamBGiE4~ve+Vw$SOJ?-b3v~u_!dgVwGAYHh$3%6H(Y z8MeV@EvCX@{W(~hNIY5Gla{x2sn`wJBjKs`u%8K2nl=w_QoDHY#U|bb@fh zgW_G7WtOz0Zz=Rhh-D_x^k1fC+B9J}XsD&Rgfy+-rxp0Nx_E}pd_N|$_{;Sc(nSU6 zh#_rrL;u2}uh6UqAvR;^IK)XY<6C)uRx6Xo#9E>$gIqnF)F~?ihoO4qDs5Wbp^c?&-U zSAK(qRDaO{bu-W9oBCk6gar6!3hh+r7@}ey9-Lf+Fyouv9i%wy#rf#|7};ES7{x9c z!!Bt<&luTZFYz7!EKlp`33zJU^hugDC%bX%$xfZ3RiS~s-q3fon;2mnJ1ciFX`-Nk zVK#pVl?qeL3T}{!*GE~Ie1wV{{bz$j&8qTr=%Xhs{TmX(3M(4LyMV9O18+m9TSuOeQwDua3d5dd*PJz zfnaT$11jVb54x5K=oPj8~d6nc}%eH_yq>9(qMVY|uNI|@qvNRufww?&s z(pGX3E0q2Uw*p3ZB)@XnpcfJvZ41XI!KaN+efKOoKnyRn*pK?OlJYo1c`K#Zz&aEY zCKG{`)q-@xvtKh?>Ee>IlyWg2YLR{r-rKu=7Xfc@2&?REvv|n_wN#zlr^GmyHpa}X z-+E;?^(A!xl|N*7J@Hv9%jJjeMT^{5XB7{DLE1(mZCo?*V%+2D<%H!`$0Y6Qy{`EB7gNSFCGukm1eJ(^HXX& zLJ%RrcAw4x3VYaQ!tOl2s?yY$(n=P}KfDF5FHQ8G>IE?a;hfU`#Zsgj878_%S2uVq z#BmasTCnT6`)b1kHTMgXFbDGq%@^@lad{Jlr9_#hpqx@Nog z2z5|xEJI_zitE@sZQ?hz^*{x;z95suvW2+f(xv4(V*ibKT2 zy|LsP9joAV?8Dv-Q?B0fVdGU_a3tq;oy;xFE%avuzv#~hF7TK8Hal^nv6IFwG7#T; z@{es>_f_bW2Kf6k&s}#qE9C^L1xzN)}*S6;L2EyLRTsDj5>Tfo7 zWgx|cAE`fd-~aopjE`dJ%HprL#gdqvbFtq{caOErn*j?~!o0z?Yb@!jwMe~Mo!34P z&nWge3-{6V%QH4fYv0wkMt1mso!ML~LG@JebGJXT^(9Eka%8c(A1$lpOy}Q5nf;3s zZrT@zt?=|)URD~*{>3wQMfiT*7!xihtlFS}QD&ebG6v2Vg~`8U=h$kD#r)XnWWZ!AANMdF`7U*pSg49t5I2 z3i8>_tmTf#L@hvaH=)%CuZA;UEjk_Wm$t@eXx&2bV^v=Le($PiEw@k`stSmJmOeAJ05Xx-hg1917lerLkQ(=Lo3NZ>f4e*lOOO{&kSB}JX z3Y=H-(k27BV1v}p=! z6flW==32o=W(RPb$Lad<-i-;i8`?&tp1Oa&-w2$3nm#4PApc!Dz1F3|2{VZ%kBv_F}z`iKR4uD=DH_dKEq9 zx#uH6yywdk8y;4i*AGzb__|NPCt~~22b8;Wv_c4h+BFJKN1T;oZs}Nx1|G&0va2xj zQNQV&;k8;|PR9(+w|s4iz)+nustjSuy9eLkifV0pYobmu*eZkYds~gtk9t>cRZep7H5r}FWfxh@FSskJ zCAY!SVal|l1RBEsA;(ExU6tBykfC(ka>8H*h< zm&}@eSPeD{>6;mEQP7F9?~K}Le@uG?Udd+4r3la>_+C{bRTf`g^hmnNgIDF1TMkNP zv&^N!H`;g(Tb8WRgR|zB?1Sf$YsX1Q0!Q2NGK`%&`AFw;^)knF&E#-LkR;4F@WB3D zL6rzaHR=EI9ZsZjsSN)qyMpVZwOFFPWw|(~yt@`Ua_1jr31HP>HH-FFs9U)-t%pd4 zWPxSd!gHVAu?>KzwEnlV9>2~8|C%ijtPfvQjETgha0;burL$=(yZwT1aj|3hN@lFe zHtqm{((X6AHg?zHg~;O65zyU<$3=$|NibTH^i%J&*A(~-YDxFeNXY*pBB#C!%k&Kh zsQR6WMJh_%M^8bEIb`r-AxIgKC7qGf$kqUAXnq8|9JK)dKLEfcbZV)Bbv_r-b(NY5 zR-uG4UEOnxZw|sbRn{#E@~$vrDC(7iyXrCywYi9iD&1B8iuY8CRMolH>s3S(K_GkLp!9*^tMY+O@!F`MBV#v= z(;Ly7Fut4z+~9y=Fz265X)xYxAg{dW4D+5o5Qt=SNp3ew$JSotEkmu98@uSN2Tbx% z3RkEgFhhYwW@kqtO6)`=NW8FKW6W{8E1+i0W_PYhiyis#*pB1#11fr(72TWze~Ey# z;FB@^sJGmHJ_XwM+EeYDW2dM7oR3J`WUXkuA)u>mkz`#p3e#o;;P4|T7n|NCptpNu!e%9*c} zRMuE97ua&b;PVTkT|SjtP2_)s9u5Nz^fU)-9VTekDW$gc zN7Pb`YwyeY(%8&8j%{q4wzOX)l&zVGE9bu*<1UA~=TVLRXs5)FtN?_6?S$h@|}hMRAPK=Ooc%8mDq;! z%zEs4>%AY(w`mOE?$yw-F*E0nEPlJnlv|kNfPt)+lQ~90r6t*6jOuyP3+T-dzFOJn z#bpci0N{uc?6biHv>W@e2Sod@e~bOHyCG}Lg`@_;T2oYOMqUuuF5AzEC(Ivgk*VGH zt;C`Jh%z`q?e65ic;8piwan%S;X1uytmm4N~g4WA=r07t%KK zQv*dPGk4+7(dc5?e!CiXt~gY(P-|a<16W?(ar+4(1G#fA@pi<0=TvqYL1L8*@6)Ki z{*xKq;`kW|=awWgEep3UIr%aU&l46)HH2ArcEeNae$So1>G50qelB&fzZ;qOBhlF` z_5Hx7sUN=(hmgI|aD@v21rBjto@hA-pb(+FnUhbAm^yJ!@aDfDOt&P?W1jWL#$S;rs9kG6Q)`KmZ{sb<^$^EQsHzgM+u7DB3D94PVI(x# z%|13s0v85KVYtqG57h!lU?pikgLbJsM&a%L|39IWEw8$Y83y&`hWky4{$r- zMx~V{c_PVAtrHzMJr44L-#)zqif)mY_mmC$D8!n^YRjHu9GG|VnBrw<4}HUbfMzX9 zr^nlQKj8|Ld7n);_!A4+VyX`=)#;|L9*SfR~H?Ti^ok zNT}puUFM$U%}d~ZPgIVRhf4j}?R? zPYdWyo?cyR|C4`fN-Y{x`g&p+)%8Gnjg7MLd1 zi_8;MgLI5ix9@aijPIK@gw$_71OZzGSF4;*$8n&E4g~$ik{FtTPNnAlcO#uNI;w`^ z%s<;V1?I~>VqY_YX37V3^V~rwTzaWGJac$p4--bbHK?iCspp-4>dHP=^i-%}n@7*o7rfc8B_Iw(sGx^Yt z+xSQqtn6Xb#%X51r|GasCjt(?u`Gb-NDR<6KOW{CAUx+gp!%B4BLwo6ppC>t?+Xe8 z=!(b@ZoMgOMunCm_`T}Z{aK~1Dm(`V5Ho+P%JRugwf6M-8QajwRc>CYh-JNck0GAD#Gtm=6ArX^2QFyllV*4iQY}(Wqy3wcsa$st zbHrq`vYi5qgX!=x2GD4(`WJ2CzBPpZ8k$zaU)my*W|10TdBjWc)|P z_`Ws3T}jBgpd|MiZ5Kvj^;v1-S@rPi{XEx!bt;p-uP((n0JR`e^yM|U+vQ;U&NA|G zvGRgN$I{A_RrOV_g;z{GZsCHSoyVR+KRcI;z*_~?}{)- zqp?P|2FKRHmVm%BfRVyU^MrjN!l~&pAB_jJX;elnIDQ^96mO=;G|x56RMTqab^Eoy z1Qo*svnK4gq1}g@wt%M=A%` zGck}c#uyiqOT9Y*fyf4nl>KkD_!@yS+p=Bi4`xxO;T6(SAnCq7mE9eYkoNxa&cg|(_-@Wq1Vhy273L{m@@&Q zJ1-$^3{TFT3JFiJU0ZA+O88R_igwjCK~YOA_iRgHh4cI2jGXxX=Ud_u;dRTX={Ek- zj;#GG@D1_@fPx?ALs{TWFDlYJ9gzpUYS|LMLxx(#HQr90u}(?MQa^r6)=h~ z|MU1$x^6z2pAoaRg}Fix`EFmc3NWtxu_QEO`_~K^pag&!o&S%#z!g$F+yY}r?kjU-jbUa^euVn3AZCR(dsCLZCr>j zR3bcsM8hQPeQ}KN&AKfzBhFiJpblbVO#h^ba1{;us!9(1l$pRI=@c&Wd$O%5$EVo% z$P!BTw5L<%zgc`vB(s48ij_MhHTk{AK``=?=UbOj`j?D-T3szB7`Z1CTU4f ztmg+EZn6PBL#mC8*+Pr%=^*L-q#&b@)<@4ZJK;|YwenECXd?6Z#fk81%NH~H^ZkJ} z*md(lLBM$?48tQ-aP1tC6lpt=zF_=tjm6x-wKlHizR3}6j_!QsrDC98c&i)pKVJ70 zLc4bp1>e&vhLHoO`9qR>!e`GwY-G5|Iuo8xY6pLci%Dy^ns|4e+b@iJrV7 z(e6JnuLoheP{GHOSoiQ!5w1fiOh*mm7a9ZidV{o=jX^@DUNaF~yP07bxVN|SyXHA) zuR|ouF)~c3-r-GhyD!F|H*YyCF)h}1AV^~i$cD5;mWu}BeA(Mh5=9D6?!3Wbg=8CC zZ0jERb0{8_&ce8c(1Kb8DFE*fQHIwr!I1*~n^a@>V;tvvFJ&rB34b#G0h9W|7R^nk zi<}i_x|!St<@L=92w;luGV53+fNRjP8nbbk^Eq(>?YuIP-5}Z?>TJzL;F`IpeNl!- zmwo#2+RtWS{&>D?cA=0pEMUvV{)3RyM(fG6() z@$u;Hs3STND8(QcvyqbRt!+7~C|G--h<5eVnM>D!v|w0szfdSnqu_{9W2N`1WMl{w z>r>c9bTtP3b_RzR9x=?>dq@pEHmEN{kOa7y4E3Fh$fC00%e|}alL`TaB{AyO6zgxP z+?>$urhmY^$s4Z5q{5-+d2dXYR{ixVIx&FOrHd{PQ)#Brx94W$xl)8%Flb;Hs({2& zpN}yRLqKyOB@fyaGnw1qSo7@#D5lP5Uy#t^0!AMI*#B67bO3u18EMw+tSE|v^(Ze& z7KnZ4$Q0EmpIcmiI8qsL-5;zrrEa=^Ai^cGkY| zF&4v_4SpiQp)t03@Vr}ud}2Nyw?p_{i}~c05-lL_w~qx-@&IaPXp=E(lZE3omb(cb zdskloh|HH^DJ=XN5X(x%fnvjw&Z3Hl#YFNHo@~+8&DgQOJnm(M>~%X$WK>SnH-l)r z)rO(?)B8nBe-^&UTVejDjAnt;e5~%DDS+{E#c)}{4bUW3EvGR-Sh8nnGHlZ9Q{bf1 zW}W`V20B8Itvl`&W=mJ8fUw#H?~2Dn5Mx00OxHTz`V{S&uf59a!NS5?yScoGRh4j!1Y5ymp@a&^sU%RrZIW=;3D^cRcIT7fPgg!9?FG% z!d-w;#!xhktM?$#umBGblEf9juEr?|*+s;0Y_)Qe;DKQN2h84lrNW`EY?p8r{ffm< zn*PcZ0r5?c)C_{Li$}Jlm86`^_2L5X?K^B;2ES+bCoOQ43WG)`R8V5{(g$7eKg@(t zsb61W(vUM=jFVHPhl&@R%Uh2~eFl=rvdVgl8FC!NS9#}5lJKHPYRXr*qlRm00fDT( zVDR$0U9jAYw_ z&>LdAHxJ?B97;7<5uV01dT>CG*a))-%RJ~-9(1k~QFHxGR}99>jH0Ul9QxukaEbGb zmpC7tGi?zOx-zKce@g_Ft7C=GhhX-F%3#x8-@1Rud+;+yKBM9}1aahnsKBr0;?#*z zX$mQqb7hlm-S*b`qJO#AbbfnK}0}A%`rhdqGfF#fG=1EN7hA`s2 z5)8S7$rc*70tr0y+>$3d6fWvCnBQ2he?|8RY&Zcc;fbGCD2(3zWw3T#l3og(C5pR zI)zI@w0I+;mLjaqO7_oh&-}YpvpfCuEB)eyZaZXTHhMv?t?3kbz^FsP`fARm>*}G@z05Fuyt!D_va%&JgrAkBzHz$wvWM$|eY|q0{ts}1FsNd*fHiV5xJ84i!7)X?L zFw(yS89P3H39EKyZYo78U;jMUmAg+)Z^m>&uQOWC8aW!Scfh3o5Nk?RxILIygF!AUaj`fFLDProlIn(1y~~gpnGb}#Ftqi9f##s zBytuSSft>hfZy`}vcqs*1^$0+VI;Br;;Cjm z=dHs5aL=kAd$+O=2J@aZqe8?cj`ut-AKO1shkH6qybqv8Rr@NEd6f0=*4x<{uESYZ z88b?WXrGxBetNkzatFbu*lCs^(O&cs@93!{gC#N_93kwXdHp`BN+5=n)Uzrr`uUzt zDG+@i{O}@7Q@ZS%2z6Ff)*l5>CaZWteelg+$4(%F?3NiW=Vl8p-xX}x{uB#$6*8?p zgLm#)lD=;yuFKq9ELdhr|JiG#_F;9lC&e`%jHA|0Mpoq>qPEElHM@ukS;2*XJ};Ld zNS}A8SfS;qQ|4w`V*)iz<5uxEbYL5%LV?isap{;q38wj8Ti2a{Odd*8=FF{vAEyI_ z(Xbzo>OL9N#*~oWJMY6jXfd*iSf!ZR_g92BOlrs>t63P!#%XzvqDe^AW7;`j7R8nc zU_fW*7Wt&AGA#l?r3-Q_;ldb=_&_)x=9tvJ^u@(lOFS|?cXxJ>e)*o3uIgo<#u5Ql1H-lh>VyCPOSoQTsVJvP`F}M?w?`AfFoiHDbfCfTjq1})QXlpuCIhdM zGXNxS0{wFLH-Ndtzrd77R%r6}>Q3lgu!u$hzi1tPc|8|y&(hhPqxDTjz@bcH^Q^-Z zS3uPB>V`5AXGE=OW1QLR9YFF`afWbi=-0GX3n}03I(r-ozc|gRSDx)p~lM_i4zl~y~7NO`-Xh_ zK5#D^D=d$j&tfB$D%ecJ{b5!+cSq*9^j1I;$5g+>gmXZrA}D=H|6^O>hC7ojY$Yd5 z%4H^mNp-`}Z=GIg^+jQ$oT~kNnJpG5o?Y#m$P)ZZoL=4`SJ+J#YpteQlEQD>1c}Bq z^A#0(@=phKB!oouWk|!#U>MB@4)hES)6Orxfb}HatP$g1SUB0VX+UoAEIkX;B?vNB+XeIIbTu z_zD`5wbeDi1R||e&Adl{IvJlAfwFt-h=qL7J8f>{(~bc9qYsYPzE3of^-q^5Q=Ift zFe^QH(69oTwMEC`6nWe$Q_(*^z4}<4GZW%fN6N%GfD2W+%Pd3G2U+cDj@mAC zS(RLW+)6bpcg<6Kh77=is8*j-CY9YHv9)Dyi=IWJtWa*sbO|`8l`c)tF&ULYfW4zx zMxM*+wiiQ~5BA<8kZ(7C;}S9`8e=U=&;4b%*qYy1Nb3ghzta9hAR5cua-@D zr)E6ZJ^#Vf&6pOAbSQa{h^$T5dpHU*RMcfG=L%=3j8giM(r_(_;DCZOFWc0cZ7q*z zuVXI&@BZTO_gy7t8Z5m5aiz!?7@+s^E)-R#9ULQvD^DSPAz?=L%hEc%LVc0n_oeF; zBthD%{*THbD1NbTKNwe5qMQnC$`v2L$@QOz2upp3-Jdmel$1~5*Wq!Z>*y?M&^G6~ z+ZoMbPjxe~I{3CsOaguOnb7qAt#Z9~fzq+z^#frQx4qQ+I6y$BPs{T?!8~$iQF6@a4v+Ki7eV7UHzr)$p8FW{n>(vN z*1QRXbfZMQu**#ROl0V?`uxSQGWYWsua6%_hBBy^FlRp&>1kd?jMSU+-Tr38DMDKk z`Q@SQ7`RMr&VwM23wl?oxW_It3VP1<8MVy|Y$(k=vdO*d%9C?YZi%7ImDdSihV4u!KhJ>uWv6M@8G-HS+-9m2r zCAjC!$Eji6C!47m6jSzoz7E@0_%Svg<=9Y|?Ly&I*vJuo9~#~ek`r%P0w>^ZX$xBV z+K`fP{0}k+c$)hc3@JZC69h{B57g$D!Fg8bA)~{Y#n(?tBBzg1`O1UzqND~b4fywx z^{Z!`$?qU(_2hc7Gwdb4$Kv#Gx6f?DaT|fdT8og=z!sfxRn0S8?sAX_F;HJ$BLDthA1pP;8o9m?(T9t5G z+SQw5>TONc7&8|;?xnwELrSDTz}Lhj z@(6!lCp-$>iy0FUd=!p>`tY)kb&yaD;~$WuS>j)SeV`1eer3r!eDahjm@zPvsK-9)>@$&B4Olm;hmV}F+|Mr z_vlCIQ>{PP)q(kivSaIxG@(X0tNYMo(*uMZ`6MELRCj)vux8GD6$rZgWoWad>~hZuqx`OgsnEWT^LNx zDgzDH?Fn$|CDm}^DLG#^WWugC9VW0uOOLV*d-Rq)pM6n>erRXM_l8RA3`iF z^?@z}vz!s*=U#@A%%hYWV)BJKOsauC_Z0HGH!D9zb0Y`;_ZA+9nx2QlYli8j<`h;J zC=W5`P;c^GV6RpAh^@3GuYZ6bYP=nP+l<|K+_lqWpXij+oND#pK}g;8fA+2snOJ|u z${#A{nSg|DzrgVq@W0SP9|Vh68zVY(W91VEl1{KZ_^iP#@=bc^J9!Lyq|gZy4)$B9 z-i7#j4P#4E%iT8vEdp9w!1}o71MrTSi?P#L&kx`hf+zT?sJuwhof6M!NqxcvWKOh} zUZH7K-pk|+A>>c6=rz%_pQLT4M5Q#pK|#y<}El?&9o4F^uyJTgb*ppFNzxVCzR`oGP~)Z%@X*)#v&vtcR|z zPNqefn9pjk8!IO|Ue5C|#IzFyH?XKQILRcVw4~_-QurV3k6Xn$s7vYkqNIX1mnnVw;Ja`y&;7CvEVUp81)s4~_{ z;qGdsK0EW4_RFBatvf9R!eZ?d;;t0aNJkdtDsT#@E?Bb)zcbwaXm$pEQ>w5$8R?xL zE;au-8>)kDp}aaIfAjDsv_t1H>tF|B#u%joTjcRseQhYBWYIKmRXLWVFpR;P!`frN zPWTa!S-Vk{*R2Rgt(z49ZJ%zRpR$RezQr&i(wNW|1@*7H@jeU-q;`&i^lm~uNDw%T zW6&N@Ewo0qEB}atZeOtN9a$;*6}74JhIQCOvx4qYk+(xZfF^(hoa=~Om_9Q%1~LD# z+NRcYD*r>Us$e+w9w44C+**~rXO+DKIgYs!IJ1h-&}1rPCA0bT+J#fPWvur5huw4e zYS@qN2Ho7cHm}oLtu*!SyPX%-YRaJRK-+ouinWqH?Db%)98H`~G}y>LITnR)tKbl( zOF3}srLffY;$S4MCoGZHq#Wz+WC^B>9|Py(-k5_1iEWmkDF(#Q?iBmN+Yk)E(m`zv zrU!>rFF>dGJCOY@T~!2_^~qc02i8j&xB*D!U>26M8)3#$8KdaiC0gIr28W>P`3n{P z-q1*6N&(c4>o`>S(SIJIP{^gbbpX-X*oOMl){ouESw6?^Qz8wT!Ej*QBV?hnxq?Em zFn_2%EAdatI51H+PD%%88a-?I7ho`p**zF$F29)?u5MQ77I2oLO8f-V;lpxPA*hCb zY7y6aVMAhYck=8WJP)|WaiukPvttbXBlF!idOQxDAykHM4mjKT8aupMId_2{?qF_} z^uV85*#gyJ)S?jtH{z=DOM@DdciSBq_`lI@)~%TM>wE_bV%zuR=NmDb6XZM3=`7*V zGXZ>Xz*(s!;Tm;-*8?qzR1U#dM)SQ0!DFrjX~n5WMAqPxzaU9GaCAeiy$W)9obkqI z-T@RIYVx_`zvFzJjHJw?7(Q6%7_IKS?|gxEO!+y$Xa|PsdZXK~=u^x0W+$mO#9^Kj z;UvI6z#b3iRVo#+E4vcWIDzJdxX!;469VTcWAA{ynICD)W#<-orcf1<G}U~1Hha3-4|(Ti*!7oZ$BlLVsWgdP z>MXVTX0pUPd&%4;{G?3yDJN7BWO^~A3rG|#tcZlPfU*%!# zc8Tcz;bK{KK*Ga)A@tt2L~g1VpmstgiNXJNh$HeeL3M{4j(*vbo_$_&CrN5-e*7NzAU{{I!^><;15#DoKL@7*Xog#P>&SqtCl=U z6oG5Ei#Y#hq~~OuR9c0zGFWE<*tQpVWiW%@qLm`8g(U`Uxjkg&_>>nAT7=o10}-Y< z;P-P04qAArKv(e-O2OWNm%(~q7IP}1kCvq5+RHC_g&mBcVp7S#`^YX0GxT$ieB?Q- z2w7XGO_CRC+Jtbt2w0G7%#c6%LxzK|=PSe;B9D!P`8GL*I8X^`3DH6Q#*aEw&-nz+ z?c?JQOJ4UB`7Q{ropI&KE|zhw+ws*-^NJlSE~Pg(-jPjIQw>qJN* zk=^IWipXLbOSyhN(hPXSl*qqKWQN%Znidy$6E@$c=dLADq$3df>-dv>wznGQwukq` zOJN~gJ&m$`;nPzr%^!T1Mtzofz-32}6%}Ihk5OYEF9P zuYCS9_g5z!Y_c6U;-lAPJc7b)`p;d?gNVD$tv;Wypo+$cGL?duO57ey*uJVt^1t3T z*8@W0*J|k9&uD@@Nj^5Tx-GgVxsCP zoH(DS01z^5j=l1QJrh^YW^f;vTxBe`JbK{{zI^o;m}5ADvb%}0MinG7F*uwJmw@Q? zaB>LC=D_;&15<3Q5R}!qrIxjMJ~Yd-)LeKxNbZFJOMjBxVjle5i0M3l<2~T;#%NnlB7t7%zK>b>6BZ&tf%9Cuc zD4W%T=7RFObq~3hRFyhtK7GH1*p#uslKYh}cRJJ{3 zfN*C1Njw1M8w0_HD*0T%Evh}n_P6;FB2kuPow5nt)p7r;QkoT_Yk>?qb98{eShJtg zL%r})q)1DCCF~4!RiCTjaV%!kSrMHP4T8drcRwo3lhDdhB)Xb^R=<8?%uJP00G?v$ zp_dFuWB{zIbqvzV9<2f!vqyG`F=EFrTJV)#yod&qm`CXzmH;w>n?Sr4`ZQkJf`MyZ z0ZEElnxP#~-Cz9OGh!X8mg$?bej(`hC;a1yZ7&q^_pAPxk7)u8WO*koxBcq z@zyO9TuQkd)~x#=*EnMm07TqDs&RfPA2C_{=$4GH0lni)0(A|~{e%xCEoXoaV_0z1 z{cHmJXUP?f60ik~FW?GMJ6oQ9IB+Ep+jhfOtNEd#3~!GC&FbVPx-1C>Rer9Lix=}> zhj@M`LBGfJ|7PaC#~C6%BQ9Ql2heS(SH_63YQ-m}O z*4&t18RoDVLuyjqH$EhN*!z9J4AsG^g4qMbBo+MwweJ$@2^y@Nvy}<4p_vW>v98*{ z^Zl}_d7`vu5XlX;W-v`<+)FtOf0mcXRQ3~pB#aoqrM}GGskvX-SX7;Yk7^SNRCCC+ zms*f00?)yDllznAB}DPdhb}Cu!OYwaO2dek)l1Z_Y4#NlFTkRk)}|EzEybfNNM43H z0bm@4zy`*@`l2E2RE9MO>*NJIa!t41Up~^r+iKTQr3HnWen3Yvq2r zV_Ul$2meJjYTom@)(-sdW9ZdmW!Zg};~-VxTBV;g2b?gCd*z^*#Z}VyPT-CPy3XPT z>560!6ub{bZjzLE=px3W+|{&;S@d(dEd_osR^DB<4I%QV-Y_7wno&S4eFcAT7LlEe(zC7ZbwO8#^ps3Ki!Z@46fo4nC?g+Ubz=%`_I&L zEcs~zI)lZtS0`D(M<;*s*64z05Y62@@VWckUsanxbd7w9fC@~E(#>Gb%q@MivyS4b z#)PPv2TNUG0M!GSv7QXA_J-&un%AMHL1Z^nDZcn{`hal!WGy@z*VFZPtdw1={v)ok z0eGQMH)>xoFD<{C5FMzM3WK0=38|HW>lC`{W=T>qGhFwSVdL*ln~Ewd#SenEN)aS| z$(X7y@`28z2xkDZHMw2=2iQrDxdr*Cy4@cXs#lT%^Q01Xc4)YjK+AhdgAeu4I~Oq1 zEmUbdoh^cjn(i+eP(k<%uk_;fWPhXEqJWHRn95<7=f3GVMmM1bPpG`WP$91uo&()a zxJ1?D2QumaP8|##P5S3YrsIV^_k83&ai3{2_x}`&b(|lNV;XvskXi7U%DA+YvKQS@Jz$y)YFPjCerJ%uvR)P642Hhx*Nh46>MkaFbz?QA&~6>3t@61G3+gbr#Tt zmr5%PEe$XBa4pYup5#=$g8AQ7V=Ft}RqEiRf1?G|+v8vPQG_|J7Veq!1@Zh&P3;RC zS~@Ubu}7VUclIpUIhosol>_--*ctbK?z)yCrO!@(>-|*uz;bY>r+7}2DMrC9s+8Uz zA7een+_CA@hf(USq&^nJa`zn((+2sN&wQ27wHx^(3X{l}x2M4V(6Sx)3hRBEkRD)`ezoFREBRY(seNY-4if_y z7`yhoQso&lqyG}`d9oTqw9nJ787EtqF8c@N!=U%aY~>~Gs;iw2e3N)Gp)}mD@A7UO zQ72I@cH^DXM8AcN!#;75%YZHu@k4=Ca-gtSfJeFe#VfR{@=Y0#P<#C4OEQ52dSkho zE))ixTOg#1$V|cLPF;BsDV`~zH2$;f8>I@jFjJ5>kq7*YK`{%2@+xS^`hqwjY!fJ- zT;r9Usg7(Cw1!1J$Y%Tw1;p$d?9e-#3Zr6{kt%|~8!=nbs&94)ckZLH2S-`~gx}Q? zd}*pRNmU@r414L>aW3F#Dd_YbGIh9~?fgQp^vgw5$i2doYn93UH_T7a$XCSwq*Y;- zDy3C7dQKz<9f~iHOm9c7b^LpAjA9zY;fw7f+(E(pRHiQy!l}7+ zv6;doWES>*su)kTz**z;{zK}Q?C^-01+EFlHge58r1;*%bT)!m|LQNUNqH)Vu7hn9 z6TMy_SKFZs*G6V_6dgVj4Riag1tVHnTYkzla}SmH+9XTp=3Z{2LN_B;l=66TdK>k* zs(d=CdBhGgi47ukk*|qGLDdF7^CXqLto;x7Ho$!&n@V(x`!-LU+vI}Fj~=OR&n?Re zNdRat%rRSnBME3tx^}h8%%qpuB${AHT(!@)%)y?=E5GKlF$4d*Q*?^7S|sO?1Qx3O z-R&%(Y$x=|!->%FWdd#vzTJ4Zv#lO3Dob-^#|1$ah|BB$?o7mttB+e@s6m!Q5dVAJ z0Cmm}b`&_sxmE>!*F|m7lsHNNGtv|GgB+F#3h1Tp9SjlqE$wG8zXJjFRbBucqb5LL zUp8AIKG-UJF<8b3`cZ&KJ{cquwH!9;83tBEkY3)nu@%Oo-_XQ~>QAAHPE0X^$3;g9 zBR4DxL((F=l~wLyFPYhrpfIhcl}vfUSA8oeV1!Av^E+|-lClJlG>r_(Wm9#*Tt;59 zg=!flI?4-d6d2X#o#G9?<&0WAPF8(yY`nI%05yeJnz-=Q00d6tr%Qj%B;6UtuR*>C z7x-F~n(X9!bYMzmIMiI~Rn~iB4(JSpzUU!|xS{e0Gp9yd#6Wnk_M$=ha%-Clj{;%j(*Qe#91%EhBAl3M2 zZ|;(#|9UQ5!QbM+fhrb8{HwimgB|ERoodL?gur-rB$IOG*>3=eq=hpbuPCivcIQGO0L0NY)`Ih5kaz*cR(@Wbgv__a`;mcTdj8 zgas1jkB{Ra4F8D-Iu}|Dt=|TmZiMpWX{ed|5Ga(6Af&>Peg0`FeiV*TyyQs5PznZFRoJ{$! z#fh-2@G&YnDXsqGhoIIlM*>>(c9BDH?vgP;KBbnqMZLrC-WF|SbSEc3VF;IV3$pi zM!f`$@*4i>ls%*R4McW7kBqLSHcclU+jLi8b#8^L)CR**g`iaKyA(t zAfFkDWF3{gbehpHbbfF~HWJ94w$Xi#^`!CKP<7&!CYw_Xkut|ZF5p;t-{J$#2znGTcwZGA~JGSXJMSy`gSl-aIMz4baWHIX=GwfX^yJ;50$4S6X~+ zwpbT#`S^=cb}%=f(661}1S+)w>zFR>FUlCT${Unw=av(pIF6pd|e&&O8FOsFs6 zrhaP;`_kykh2T*Ol>*6xrB^FM?{wLj1ifX)e~6p*XomE};B?TYNASMVjilR%%uIyChx{+}@P2@1K>R{wMZYAf*ese+C2`Jb01gb` zp1XbEvCv{Uh9Z_#6ofkn{i%z>{MammAfcjBM1v#&(n1b!mTJFG644|NTedHy_-g&W zv}W6}yk`y5@m6VB*l>f*X{{-!1N3bbcK9He7Eg+z ztK~P;QN}ic&4xlGWU>8S$dmWZ#$2B;h#tY$Nra*p=~8Bc@qu}*O8_d-qR4|VGwna| znjP|c2v4egsSWTq`B&!*mat>`lFOfCDb=LQ!AD({Cj74_w>gj89VOoR)kVEl%&^}7 z)`735)xH3T_4Q^i@7pP#^%22MfeEc=s=}bFTm{3>;)aqu^7QIEC zZmiWap6N)JSep`_bGqi;0a9B@brnb1<%$`9NeoAWK>;Z0^GXj112Jh=AFYGB{Hmk7 zBat~7GMr+^o2I@hH!A2`i6CrJzg-aS0r1csk0_*E<%nCZCcOA+xDu~cWfLOuEbgf2 zhj0T1fp39A8!FuJY2mMJhVD15B8Ih)$eo?_30<;Z^earxoej+bDN2a+TJGGxUf#Np zM^z&|sj?gBi2aXo$(09r5+>6_e(KKckFT+8ikh&{x4b4=7&WNHS0cntk`qQe&UW*w zjBq`rskZosy?~N~@HOc)A2DZSIt5M$KSHxVv9IEtBrNZ))S=qq>$O0r?awGyX=Woh zAY#16#HA83n7KOLrsY&r8cgoaU4;d4&NH7wKksRznV|nzod~SUqP*Xo-2)~l%8V$U zz=FXeqc*!5o%$@)WU#&twT6noS$I<0??{OT+H~~i74@gJ=EV?<_lDMmgY~*YCTwtY%F^tAEcZL!Rv4Era zM}BUbl}#6D%YtLVwLk#4`G%3PFM3dEFjfWz7@SzW*g=m**a<9q!om=HTIwc^?3H{8 z$!G;Keix#RC*TP~)7Wkd7P!r#vO+*5RgOkp#YFf)`Oe&~Oiosfay7(qv4&@Id^V;d zt)26z2OITHP{H&u89NJFs8c^PikF4ZfdD(p>xfE)T*0mst7PmCzeyQE!SoTRaAx_D zK5Eh<&BXQ3nG2w)$+XmcxN0Qs;?!oGuGQ=a6Z6}D-@D>bdFbFrUEV7_@XJ2?<9v6P z%}{C7U-jR-N3nnbd4e#`NdEq%b*DOOK617{X+c-_GBSjss!iK6e2%QYgmjg%#6lPt z(}_>5CTB@8L~P>a<(1Rb%|Zp=o6*lb-^M-xw1_9Jptw|Ew#Xa^Q5N8Dl7u5WHaNW-kEnx_XX%AD~XlF7$bSJ1GzS0XiUjGMkX!8V) zB?^prhRx6J|C&VFnaJ`?^PKTLtgB8`C~*c3zsMP9vM_B5qKCqYkvQpaWfnr6Vg~ z#jUr|L|q~VlcSKDk7OvXE=zBt)a5Ai=lv5>mS&oS*p-Z3TG}`Y35>nKCcs-%EtzM3 z6QabLl1l5Y@P_qpYlYd=%#C0!_qLP1vavE4H5Yu~RLg`6p9MuYx}%Uy6zJNN^ng7@ zuD5m~Q>&-${9?RZUK4fhU`j$g_-iWlQpuv)@C>Wh6Lj(cdgVro!_J94*otf3wmpcl z&ajPwXr;KRnbK(Ajl+0}ZvyXEjP{AR;y+onH&+Uu4mX)Tl{#F@(}TX63BKlhdnh*N z9ji|Nk~TG(89&-K3=F>3XjV=5J56shzY6)A8aV@erDulJ^aaK!3b#&wai}ksCHy@W zoQ~j&NS;$Jt=SS>^yzI~uk5~yB=!(&B>-~~vG%9liz5uF?hEl=E5@b!)WhhK%Sk(?hIAuvX$3GA;au(#*|cwL8^7 zXz*0Pb@SB63V%zHO53g@{?XBq{3+twcY zokj{3NmE)RJ9`wV19ZJhx9s0@B;N!2~=^%67u_!tQC{T%7N|DQ7;RH&n(H3~t;JUWi3kwc{gOmUQK>fevh$Vbt zH2pZAC$1cLl-Y94T6PKuq zUo?R}YybgwT~*$`;!Dhu{(r}QOwwkFaBdWK;0xyHOvwHW66VW(%vSO-8@|%NZ(qt| z?Q4CuX+G|RGLP259BQZ$Zu^*$;F7!HqP zQhL(cKXlvPZwu+oV`FaQ*MtIFI6QPLTwrM-z3H8JY}Rn}PRC>@AcsVfGnvUbAm_}o z`Oj5;xc#@Me(!>iQ#{0M*&mBfhQU;$;&enM*M&GN)Bduhq_Im@ne}%Ki z+-7ovZZ#p2_u4Sq~tnPpz8*MM3^f7V!gxQ~v|zslqofwdNra-2qL9fJ{& zCXO8x6!E0ybG~Ozy#rtv0`!b~pL7m!BNpSiF(jzNSDa!YflKOzYl8!;x<4qAgjf%& zJ?^%LMGJdgMlV^&PD$_$`}0`NieBW6MT6m!QsiuTJMArag>U(qOlqfzsKPfwf5B{! zqYQgqZ0C|{m+-++$G00m+k}4m(aY8txRLdBq}3l66fb>jmZf(r3+)1f$6aAeswKq~ zvwdEoC#>gw;jzpO|NxJJ%|PBbzAD0_nWJhEO#VNU)T z_Vco+ewj;Z8(1efl_X6(Lod+u-1v>>qtaJqY>lh30}vp78&%w0h84ezgWFU{h<+&8 z=v*n@7kPHiApjN1bnygPk<_CLR659x%*yS2?2ENb$P0J<``;R5wUTx1VL9=gR9Y_rTXO{1_GaO})ig}8U#d`nJv6l7A;yBT1eIJo-QI@5t=VKRP%9#?0zR28=zAzbwW(TK zQ!LXYLN5)L{oE|QRuKx5a6TpcofP#o{PoxDEi31!o_ZA7Am@vo3_ zo6VsDSGoE|vdiQHd*DN^H_&lI-CeuTH3u2M>{xvOQ*f)Qa$d%DWimFrPq$Ty_sC0{ z1Acaa;WzGE#=>Lz^y&stAY(qyw`&LXiD4YwQ?3}Ss)P{5r>Uwh1vuuAo}cvA7y5*5 zY2YUWz8B0B274Mq4WI?^qt`l9&oO)x4oa@7yo)^E>$`7l?lu_kN8m20=%Tf?F z9^Jo%oCzhgzh$%nTwaGx|1gmv%)YKE9bu~2zAx37C zaJsGtXpTpZB<%KHb$pE!_sgzfaW~O}fp~uokJ*-)sNMKobo5kf$9tN&<1y(YYKWzA zW$^ozQUL|jb=E#>#x3OVKV+x5KI}^zv`6`st=*oOwlL{kp|&(Q7}@eud+1nODZS%Cx$|$>JnSVU%8TO99TZ!59Dv z6wA6n^CJ6}fY1?45tzaztf0S>$%*Tean1gsQmXBVx&tw7D)qX@G+V*+x@^=x%0%Uz>* zFdf}AlymvziNzYkx~Wf5lfRB&Q0FenlJ8 z7TCtAZ;(fQpx^1jDb8u6F3E%`u1K4>aqZ1cG*KdGM0kwKUAZI1|0hJ zJy56HAd$q8vf@pt+(B?TBc`97#BC+1tzg*)ENSVo^IcK2k(y1_c8vxnKT1 z+6tS7_gEHbb>Z{ZhDpqI^%^t5+_h}CKk{qKyW{+^V9m4ebHMmSn}(|5HTXr7^M5)? zbrxl1MIX-`%xx>zHm0UOkf+Ba#fN}xR?#E2C1xV8n3I_j6S4-DLW*!a=)!xtt))+1 z>~8vL{pYsu?Zmmxq!k>L(&3Weg9Cva@MU?kdPz~7OE{o~p_;40fpA@)JhF9E@>X?D zQ8qjoTdY&~T~qD8{%0bAvJ$7u)_t)qe3;v3vILL(`EOQ05d;Ma_sTHkT23Y7A zy||3<90uP20p9W4tvU*W8&X`W>sB{9kQ<6r8(b_l1Ojvr1lEd>t%;zRLhRKDDh51R z)LO144vZ{17=ak`cGcisxY8EmU3~(L!2lo__B9&}79u|ZA*h0)T^u@&Td8gZKAjd@ zu8YRE`=4%XtgoVxR+q_FAFog`52~pN9(O>1-dneG^aX5BN$UE!JKue5(j9hbH34MM z9FFvc)J@%I0f{65uHUZwICjam{p<9;vy1a9tpl)^!uj6sf|W?7cl|?fGQ!l3$~g4C z^pp{^wssusMTYXD;p*9!#u{hPo{{(i(gEw2(?RnE1eJ(ptBrD2zAoeNaN$_3QphSW zg5E6&=G|=q>(pb4u6JAKHpK*kph9gmP2-gx14BVTwW$ZUAuGb_~fu@I;(G(s!`pHi}`-!;MpAO~=iB)wpegbrt_zN}_r zEYPZpDZ5i$yL~AN3N*_Jm}BSa{%#{RA9I{9gMaxs+sf&$L`zf(?=-zaw2J0>=bax# z>Ae-as0WGAj(%XBhN&qAQ#ORf?2GPGSf*?0sv7Q=BB7(zup9ViAva?N5VJ}PeY5l$ zQ7rpPMM+Nf4&w%!*SiRlcCA;-j5ykv6Kn=>5uD|rFm=NPok|~W;K+if8EHAD*|q3> zOzjSfoe^IDSqoiH;H%Y?ZZ}cZTzFV2jCPsO&_1A01oUc!r8K){cE`N&V80W4Ouz=} zCN?+~j!ATzJqrnGI3Q=rUXprbl5AgpAOHT6x-{^>#c-0NyrTbuf}7GjL-1Su5Dm!Z z`HK@Ujl09gsO;Ikt|aEwS|!DflGB`7ttB%=5X`=ho88nSA2r=m$(Wrw_Pv!ue3m_w z*1AB}b)ob;G?PuW!c^PAG3dFiwP_&)k&q2gzDwl3s%eS9{%Am6HD;RNia|NR;<-5V zq!WGW+*tCF2N$SPr%3+@Gx4~6JFzxDEGj%pdaD^{4JS`;y`tt~nhvYXfcPvc5sseD zBN-fbGG)t;yNzE(iuG2Cq^eyT8KO4=d>+x>F;uHxP(@$ig>`$T0=Z19bTBg+a@MtF zZ$fJtsXvhiNsmu;$W)ighdPZBHmk2JH0~yOSS|pxl@O}Y_V_+L$Ra(l)~s#q3J(< zH_HbBmoBb{Q{K7oLg73H3_8HbN=ZQTvltNSw4r4GTP|tzl8dPBib^sD^OxDMlP%1u z9eNDb5a$J~IlPW14Wn`8<>i%UcU=J*KAgefh{$IpMn-JkuHi`_xGka`QRzs$ zw+gAj^iE?LtbG*QtBL$k%?VhwFwk!hDi`1rVzZtlCpTpL&f<#Vvj57?6AB5!B4Ly` zKj|@SZ}K>sxJYT15k-k`l<{(wrUNt*>&aSe|6b}|JaO_mexRM4riG7#+Om;oxCey%&W^LU8A2Fv@98L>|%m@!0|P4O886RCWEsLM6OFPX^`7R{;zr~W=2?T zf2E}P8#}(272?Ck(_=#D9ObXukg1)Gv;D*0^ij2Jr%cUj{O1PU=#j? z)ovAojG{%?xl%jJt*DN5PBcDuPSztWC4xQxO+rIkxa68O%u+DIq1@aUkWPW-3k?mJ zJb|pLZ2phb-fo{lXBxPz=9&b$^}|v1>|il#(!S*6Yq~m2-zK|pe=cxiKcEp8mxUyc ziWrkIpH;oB<21L>n<(HU=NE0tEqD(oiRMdD9@zm)SGk`cH1-9~LB(%#h!q@gYfJyn z%S5|mZF5|@*dxz+%VErj9DL8gZQktc$a%j{`bU|DCOy$MokoZru?Tp4C{;APFMU?u z3NaKozVJlMbR>O!YvlYaQ_`6(wK$BqNWD^+=`Q3J13dpbh{{kqdwKlH zdC1%(TMw15fO&$}b>{24(*NlETq^!dD4avqgzdj|pSS`|NNbcw%yPexEK47F?Qu@D z%r20&ASj8YTMmd9;JWlk;kM7nZ9{Eb1VpZ4ATv^9lII}lw9R@Mp#p#^7%nzs^hXyc zRMe5cUl#O`UdAsqvB+VnjBTd|nbHGC%r33o?>Jo$<_gqNvTkN3JWG2$Epv8;?u)Gv zaOYgNSi$z;^WsBs-I%C;yIWt6jkc@>nxJjYu(B8*Ax2#lb}U13r^d9hZ&HDHWG$j8 z0^Z8Nf8=RGw{t@*p?}Tuw)wdD2uWr?f#h*$@NE?t@Qs9|o$9lGpgqNq3?xobcU2Sg zVU1NAJJ0Am_C_RZ*r{BDA$B}Rx<7!cgb?<~10xg1l@3$!IA9%F*@u}ga2l0zgN*vs z+O$q|Z(S9Ia($sIX}gM+A<3%NqU130H~Y$STSp=J%%;25R4Ln>;uWt!(%q4R0^S{; z<{Z5PFWiI#;NKm`{LS4BrD=6du-xX#mqRK!rM4?S8(^?-HBOn0C3qAyc5x4ulUP|E zkzWKsUhlcIWUG9+iBKwIm1R_uaY4%LNli$&lJ?3cf&ilyw(k7(2n;$2aaDu}BXt2X zcAL?0|E|;oJJ7muv4^^t{bvfd1qt6t7E@>@^ziWjeYI(d*|g10_@rahXIfQ?kdoHt z_Ax^1P#L5)b7k;YMI`=zuL-^gr2e>@;)wr}pxw8umL^ zSZD@M8exrQu4av?ldzD$FgxIKwc~D*#S&{rX}j_5aiI1u(kNDRpdGz36-R448sbtY z@xT&Pkb&rM5zA}OyC`$p7m>+xS1E8NBi1c^x*BL;RZ$mjX-y1|CyWdv1jwTv{U4o9 zjnQ4`j_-Zu+q7}tOtdc5!?T=iU^q?cd9&`x^!LseQnC5o!6N&Yno zY02^tY2C!#4EProtVM%Ko?o(Pr@h{%_{x!uT^CdhfU;4f@mB`Uf4!C@26r&I@$~e^~yiz`7xu6{+iO8M?*dkq*Gwn!U zbszKUE|1`tiG?tN$w=Kt=g5XLitYVm3<|xN-DgvWOmS#YJxlyT8^>>qHcpGCY>|v6 zEQPi0h=&lB6`C4aV%`35Z%1W`V3^o%Umm4MWQ$7LpafLVufpR3f=6%Np}X6KUJ*iI z=~dwa)Oh)+e74>+rg5%n1Ot|jssyLuExZsWLvg~t^hdRnI97XNmXPG3cumeSpx6)q zHSyY(NR`%a1-xYWI-5?jh37(y5D}N4ltw@2zKm9<`Kg6m}bvLjzh;Jf~9wwW8$L{R&cm{UODXY zjUVgG|BdzWyQGw0@o9Bm9O+Ct(Fee;Kt^9K1JV{GxJNc~Sk?Q8e?m5gC&aC7EVEMB z266ZQ>9k~34w@IK%ve*bCnoeK2fdb1np`%rY$)HrY=AmG&|Z>8gZk!EnyiLb0jq-% zd?L8?!BS=qJB=4ul$D>il-c+TNQog5gz5EM|9&KN!|sGzuZIJUOkjW(u4(OA#C)%T z<5o+QL3bL9{qAN+HSK5sx}D)0oap>H%TG0M`RWd^iUGZ&y5K62ZT_ws|6ZD1tY>EJ z=Q(ccLG$q-{H^6eAE)^!bJt2=sB1;_k6+Pd$#F`)cE$wk}_29?ia%E(1ohf#V91H@v{| zcVQtwl4<&x4{c0b=fqhFu(xYg@3%!o&z^vE+Rf%pxUXy4;OFweRm-)NWf}})os5A#%91! zu_B_(K7n4=&fewBvbrKAn+LhfUvWht*wcJTPyar zZDil-M$_8tT#>m}RBUkQwe^iPF(cQi;(1+M1_INC_e|yZwFGh!w|DQ}8E6QXs|k0_ z)qboU`M`D5S)e&C>eYV1#h4^Ii$@?@gS;PdIOBqU{VDCFR#@%vf{$4X9HoJ29!fHz zWh+zRlZWcwyq={r8pYBv*?%_OO&at>{<%EI@N^eT1adu_+%l8JTa1;;zFxz0cJn$l z>`*=T(!!J=8`o=vNvdK z2CSuedTT~BuYBGAvRPUUbIhg7!b}+h=ldYv%ZlA6g0`=)WcLUvI5F*G#ebDJZ<7~s zmRk=pDDzWA0Ly2{_Wcp#DPLfe*SYS!yob5t^8dwO{$8dn1rTxEUo1YO>fOD9+@#~S zcPF5PvU&q&q_a>mXh60b=JQ(id|7tCcl#2&hJV$_8U{pK0Im#o_4@$Pdh_)eE3=BB zi~XxjGrN$W21$za~p>)k(#B2vpFO#9Ff? za4>IKAOhnfR*3fffj)9g%;RW2Fw( z6I$Q0o^sJu8zox`qg_z%4m9Z|6yj;Y|D)5Rz=msMSac+cjvi{|ELy{@TFe>-7aL)e zJ{OKhcp;r)_%K}Dbuto=l0LrG9-zt;t%6oN{eTeoaH;fy&LM_6w5@^?pIJVckVY1) z)ZrgD#UhZX>6guXbBMDfW{oU+3d!NjTSuRItPu#*E#tBM%}TCMWRl5M9sCw;nMBRd zb4E@AscD{5ODczYZ8pn8RbQ41MO1u(>e6>JeQwyEEdxQ!KI6#swSe^%*E^Z@U-yLz zc9v_ck*79Z(+HN%=JJ#NRUJ)t(fFJCWVB9f`oSd?Xl>s-y%r)Ju@Qi*UO4s&rAPEF zg`yTRw@6HSvV$X_$LJs~yYN{bQ!|qawaufX{`20=9?+LI$qHmu=9hBMSbLhhznvRC z`_@WRr};~lMoY9YP$g$=$&Zns^!Hh%2P~|o>DlS>f2p+-_f`e}{-YvnN1Gd74=`m9aSzgjH8+-JWYhjV}6L`2=w$;`p zd||p^lgXC_Xorx(6=YsKr!yJHD4@q{+h?kJazEEnHb%+75$F9Q7;0JlBz*-xWX3Iu zk4^zewo;VBG2msS?}=1^28lbBP@7%7|*1$z6n6>DH>rG z8i-yN=yu*VClDw?1t6=6@Wslr7fabluA%KyM~yZ`#4q!>+hg#9ipAN%NBX)Y5lgZ> zI#-DN=MI!U2wyu?KH%3E&eLLscprEf4G*GWmf5B=xZP&-F;&L1IiV$Zm z`n#iV zr`J&cz$j#sc#^vMunnS&IP7R+nL4c9fXhCfMGo#}0^P=~r(;E+-xw+NI}b*rjkA3A zUV8N&CAwcXU&fyh+!XmA5DZISNm|?tJJyr%K*^u#6TF9$4?U_hsovv-n7%uZY^MrA zV4VmM^(cs{H*aW%cH}-@WlRak#VC3r2tJWy5>ufwRhX4|M;Ra00r23G91K*vEa#GM zREE3a$K**J`#hj28gJSKck9!d=$IsU`Fv<(tZ*Ih8%-B(EO`omrAPctpXL*E&f)!N zuHREi81k9Jw?C68OE_;5H|~0MKYeL6y{hS9Lr$#cmlR2@l@s`gE1xXOQu2s9Og^ z$DH7I&WJ=7xONs>EYb#7{;x(Jqo0k#x5zfhPfmO|aosyn)GfwePoP69Yr_LJOAB@M zOm-O){kTH?Hc9mv3XaZ>8vLpvE1Hq0uy1WnQ5W)FVe<0CkuMEl06i3I=xbHI_{dKx z3OI02QFgrWu5(prup$8x$RA2O86P(!vHhsc=e%8!2s5VQ* zg#XY1wu407TH8KU8=<4NVMl$C>7o0gNf4zTTx> z07wT2Z}DC93sneyDt4y!Dmf;K9rQ|isB!7mY3m;O=^c`vb`@;f%86of=Gny;K)C}E zu^ZlyZ91MkDGu;UN5%GtJDaM2(e@gVp$XUs-N-8L&qO@!Ri6 zQ4tg+PA_1X?U+dcp|`<75;^k;MGuf%l(ms=s<8@R;+DHti?NX!S6G1dNZ4iF5_5Ed zC9pDRj>kZk^IIdQd}8LGL4qVaupU?rS+W@XV5h0o^wnO z7+b}(v&Bj-*O*>_`8U ze`87YMi(ObvnpU*MFsGimVh{e7CnhhDD%@m?lJJlCI>nw{2%Csgprod+h<7zg-~y7 zM~}=^AO|mR24=JWbMn*zJBO9bg?BDbAJlgOKrR-V0=-lq1K>;;(k*wM=O%(foa@dM zk?LI<_0PTWDv0P@Pl?|pPbdH;7%ryg4s@bxzmG72Vft37ht4-<_nbfZm;s|1eljjsb|7}I%hO@M+J8McDO!_R z*?9kw<-mFY&={qS?3t)C6xax}bu>RjQL=+UH`Nfq<$M^232Z9nKr08o+RwdEgsa&S zAd|5C<6u@biKD|1{NuqCSpl+XSUsLd(QQ^Gk#~T3dM9=788_j7A zkJIl_EX)h*F99m>&^s?#jcBteUKu85wasMW(jHMpF4Xj!#zT0A*rP%^AbY66b$vlqrk!~KhQt;l-C9AIQ%4UPwhv}bp4$+P3ZLy7JTGMlgnh>4>d}I#2 zB*`xNS;FkJ32Ib>ro;s}7TUr9DRlfsi!a@B=^{*+IcEO}0!(XQ(6cguAf<;j4a>0W zB25fWpi0NpiCeW7VmtR5G63wlr68eozMbyK;}?p^(#Rl->8n?A)l1-h`MZ5RT=XLF zU9sjpJk&$8h~1W2^vMS?4t3}#8;|P)g*;yZ8b5VKV}P5B*!;X6kEA&gSC-nVZPhQg z$Dt6k@ii04X97eE`IMICbrj{i7#HH58w-Oy-V+lxw6U4R<_bzt^f8oW;Wsc6`>GfU8cciO98Cfe zjUY6z$tf)imtAvBWy~Ks#2bhe#VPVQ;M!%tBGUc}IyC4q1y!{#XuX%>KUJfMNMnxD zH;>h(ImXQzd{q0!s}JOpO71IjRC&f{QuRzA0PwYH+`mc-lN?WnLrD*^7HpPx18>B} z<%29;_1%la7et$;!-l>IiQmdoT9Ut>yG2t55PruY7Y$uyzk@^zwlYWZh>?rfeMX|2 zRm#rCsL|!8LCpxl^$IXq#q{lacKoQDZg>B*K&%Ju8p7rdkq%L^nxq-QmCy(+dI%Gy zPwJh~Q;RdXwlY2poiRVfr>Y!?ip_blSTo{+l8QtyJBusP<_&!T?I@u};qY{<36Z$K z=>P;rIyxLy^*a2Bs=*y8W5Jn`j?R)jsG}zrXIzAL)xV)P*(A%&V;m^|kQsCOYL?Jj z1JPdm)a2wJFI;3Ol1)6R#_|UaY4X(bW}^<_qpU{8-ESN;z|&?5`2zf3q1KO$I~|Rb z6!8B|$=+*`YbK)%F*GbH zr@*P#PIIs09Q8<6%BaYb$^a{$v;1+WtDQx!L)(5KnzHV5Z@sxwjUCX8uv*Y3H!Zrs zw&E>gqcik8=S~?VLHa1j_nb%<`0Ykn^@q9;1wfN_+)BLi114%}8Fo2AZ$KZ6A*gHq zUAC|6g9st)2{rux6{{$uk|*l;a%#dVU4AeugI4GcJ%Jf7YeBM4-*I`+o_2C2R;Wcg zKW7~bu-J-PAGQz_vpPxegRFWymdTODKgzB<-P;RZ(RlY8KTOjYT&}OlCcz(r7#XcB zgJe*|M-k=uV+NSs;j!8KgT+DGlZm-j6~h*XvQebm=!A=J5Ve|6!uA_72yGsqGtEwR z)6zyXO_t-C!A*9pQHi+ZaGzW(Q{DI+v=PMexCe~}={byvD8`PrQjoxVik=O|mMQEnG`2#R;7hpJ|~tfA3UWQOaHI}tf!${6Y;Ne`ko77^8HL!@@IhpBsg@0 zO%k%nohGZ5ZTX5&pzS%Hl5oJRjb}qbW0bH!$y9eJDF4*ut1yM40ZlWVu0czh_BJ@K z0jK~~V$iLG3VY0X=1NDu<4+PP!>u20DhbP^CIH>D1&eY?={fVIB?oicw=m|r=Nsl0 zCIZu$)qwTo-~glE!E1Jq90HHq4<2va?zduioPyWz`ly;xk26tE+%u`ezLno&v(8~h z^Sf*6YZ?hv{%mE4R@^yaPY{3w#o-6G9_uqJ*7Zz&Fe*`S)PfrCDh1boamLf48>gxB zV5T3XS{8x0^{gGEAZLKxxaRT4Pa4A>)M=tHh^b6HaAjq)Gm z8MygisHk^~oJ;TW98z4$B*i(^^g_rQjM z9SoYT|Mj-eEW;N2j>Fjmxk8e>=&C z=4hyarxvLTemUDiBld_e_#Qh8x{iuRYXPx3AGt*n-(h;h3?)E%ok{CJdI1pDU1hCT zAX8Q0ON*8;d`w7l{aC+p13o4-ZtqSTJ`c^JArJ!^)yB)i7v>4)us`F z{A~ixa2!FakW(JPtSY^-wCXU>N@I2N<+7GP_%OZm&AU?O%w`<|tHWsF7@-DQl z6Og^%xs9$#|2wC}#sQHaQohyI6{xqE$AwgvhJBnLL)KC&mmzpjZppxFQrn^zsF(*n z2{Au}^4+I=o1b#EDiRyupn&208$uSSwQxdHOQqPZNuc9U zew`^rz7p__s?mdc9(6*JBrJc+y};1vzvVh%L79k@o~K+TcakVYc_Kwx{Cb-G*s@&+ zOZ!jDiSKAfSae^aNI$6cGj=r@qEMYQCuVe<+3M28P=WO-Y^1RhKBj7H3vg|RzT zFq?FHTrugp#+8V+)@W?kN$EhQu>CUvcI{pK$XcT1iS{^-v{-uV*-NGL3S90tJu`!K z2B3jW2ok(K$8w)O>DM5AjnkuHth)aNTg~j^s?}twv3OI_Ywj_GWpbvN#r z>-AvO3ITII`L!;V3xA^K2?*dWn|sy6#p2`Wy>1yOHpVt61M_hwIRMcSVUvK1)JW~j z0he9h*g4{w`GJ9fC@_Np7i5WFyFS(5Y%g(7F0Xw{3v#S|Et zMQFt+aEekPVbF=wb2;QlmSdjB0;rDb1PdW>8)nLp5udMLR}c3!r#j4$r7bE?t&@@D zOR9PwV}w^E!jimjwG`|7F1M?WVapB<7>|6-C3jxf7I$eMVVy&x+YrPyu(?sbii$E~dy zBSO#NNWvcGA@G(FrTj0IM-KD~$r!tEBzTaFB9xP(J7wxvcmC87sWbV3zkftp$eVR* zzdXtiglXu?8f5^o<6&!v4FHvnl6H%jECf;DqBX!Sd4;D5Gl0gp8WqubpL_kp^J2I)$JlfaPwzr9EKEm)3Qu{hR0e{K9=|v&~mGpqT16Gb*R6S@B!NS{pe};csl>eUF zfQ3mVmyGNP_?Cl&zjgR*!S0@;4s0c1>sW2NFtdl{hLWaah?h{O<3+T)4<#-bp3KiG zsnFMKB&#QM*$v)9Y2*#xg)GXtlRI(Y0}==a(9!=EeM`q56tm4S4>dCfFoOh~LViJj zU{!&{^=?M7ea1oofyrvTfNnFiGj9YgaMF3WkSV8@{&`Gs7IF-WN;=n`Qu^6z(nE;D zkPrhpNLoN;k#{>9@RA6A0R`QKo_zC@S}@BxZmiB>qd!W15-r6alQ>#ccWlk#P}+r0 zG)Z8ZrXwL4-jXk;I6krIyC>W6Rs4MjXbDI6nV!5@jGY^e`5c%QaJT+1?bUd{D_3+X z0HEK<(IQ>9r6LZOIarghi}n=T-P2xO#ajp)e2kR-8HIXCjUTd&=zm)hbc^nw18IFL zh5yO4Bo(}*0=l+f+`)y-`M2WFdl7#uKh6a0fa#>bl+y^;)%_V9^3b+EQbj4nO914- zQniBv#R4b*|CCwRpwmk4fbQ{Gt`oN|rN+U=+JTue__XVZRR~flsL5qQ+j^3#G_uo~ zY9n^PO4D>%D>+p!4H~>{$F(K6m7BEE^KHW|qu4HV@Ot2Khe8t4bY~x`h%F%$C3AMT zd7m7RVjU2mcMz&ZpYohu!>Z<`P4`q#`y3cRfgXDT($Iu57qdJHO|JLM{6gOs1~IDT zPn|*v;wx{tYixyWVgkt~3CN}mMlaii4k=^t--{wKItE*O>PWzr%1Q)+5^od2cAILR z5(p^XTf8kep?_^9+Hg9MOqawyOF~~-OmX&DHw_|QHU&hW$)Gqc z3=cgoLPtX0>f!|d(`$hNfIH4QbWqH}7x&uH9aAr*ZvVjQzI}NN^UcTY#WRD^<3m^t zA3x`=nn}y@j8q7B$XvQMw3e-DILp3-5+|KNj&#zsBdg8SP`$qgs-{8rD;BuQWNKkL zknJqGTl>F_shdnhHR}Ys$&C{UwyW-c$#B!@DUpqL`(oPa9%w9SXlBpcBJU0$Wx}3_ z8L=8^fMMoBqS{Pd5qZh8Kva>be*WVGNyWowGM%QS6i#j`0u#}HWaaY8=bvO zpnqpFNQNciwu+`{rF}9HbV(}|yOYN;dPbU!!0XP{nNF-HBRl{4GWp<4h#Y;B&%?s@ zrP&r4WEAgrsWE6u%fa2U3mz!_97JIFt#FNck*|a=fy2>GMlNHYRh#YxZa0W48O=tx z3FPxq6G2nM-{z{odV(xfYq^XiIYNT#{DJ98+c=Lt zRk&HzrObz_!PwnCZ&Q`^_>()9fPSvj zKfeNu2*@fBpa)tj@5i>in>{=^_moE`f_ZlN)}WAt-Hm?N0T-wA=+6ImGLeVs$$s&= zV)5LJ2Q1vqKmGfKdTJso3@bcBYQTLDNOONS`-DXo1~8|!tJ1f~$Ydk@2%O-&xIIr# zvxAbRg3~3Gnh|rju5_^o0%8cFy?uq<7(Uu=jJq=}X8Xgk>%OORcSqyj8tzxTBQi{` z`71w<<>WKd9y%?FNC@{K5Cy z14{UMNeDF7rJjc~McboQ01G1~&j8}A(-9{hS8ks4IL-eGgnfm$WP)CpqhI@;- zI#1e?<2SyIbdtKth9U>p5#La+PM;P)rB(-Ar=X zSSi@#|I7c(y=(8R3%{_P4cESIh9($*J>OtU;~G+?w$kUMNKJKX1`tb_lgn(Q zwkvS=zkJ@w3cKI&wUE?TIS!mR)B~W2Lh@YG_hFkT%$bu*bXb^%0Wo-!)NERNLv(Hk zNZH@S(}H8`I$o4XzXyn$TaxuSS(-`-&+{5TyuM&a%+OG|Lae5a@ zuFvjx(~7zz#0+o^d{QF=AubUCoB&ADTpNx3?y}RYk7L%AcEjKCfS3SB6ylksU-PKe zCAsXK&GV;`#*HIAhcNp*Cg_Yx(5G?i2cSv2mfgpb8#V8uKq2YzUbjtImO;c-#4Q;m zMai95uG?So z@c{on0Ki4ad<1eRJO;^pX!lwLAo32Jh8T?%pN$xjeR&)yl{9?0F$qVRLgJae1+XzL#F+?0xF)qr6oUgt5zd`z*~o=VdLjE?N0_kk8d>F6zobqJ zbik#ob_i-@{xqn`zUj0qjXbtPVof@-QFMKym^_0`{d;c}@*)LLMnJhSAD2Y5u8+ws zhfu0NFcxGX@#wm}1T%o<2Uh)$fdA(xZIJ|5km8pZ+2*8(R|?NvdIz`g$H z$0yZs&f@Vql8rQ=;Q)!x*Tl_{{5Ys`CgGH~STR`?$E(DUdp}^pK%* zlF*j@kSRVLqGHa`0IZQ(1BAVU#R%iH^W1&*%9(d-d%96!5}-sbZa^t*}Dr+^2*c}JH5nxd0@$@ zcUpMW3pf4^=c-OX0q7DzK(2tAt6>e8){>=j)tQ>MNHnMmVRIi(=k;P!?}$t#T9C6bkiEefsxC!AmT_}F`r{WaT20wnc?RM4=#ok z{9OOXt?ljzX>Em_ciIOCBmoy}m$cx}h9FvHdY&~&;VnoPAsuBK9n3qs0ai7mng?@s zu`N)&q)2}vNF4QaeSy^&PvH+uqpUAbJzWm2TzQUx*XDnZzk_v_?cIDC^_3ZgW0N*9 zLv`J`jMz|yJc5zIENFZ35irxBvt{m4^u#jIF+RrdagZw5$re3z9`|@+ai>3Cu{)RB znau_cI^J7**J*CqlKa46d3OrTshBQ=0Sb|PDfLqOr-924#?dfQn(})KMT?~@tgSmo zszO>JLC~tqSW3OqrRRlT9@D@IY}L~K?P7~PQR&4TKnjOrmj|sK%WHgyo}ufyJi#JF z4(`b`#AGtdShV*)TXTggT=PUkv>Gs_1;jYTIV{P~rbxBGO|^ytB_ow-DBB}x6c*NC zTq2+J7h!g&1;H}}fd!Gaa!902xQ>^tw~iJa+Z?MGPE9w zz(rl}aEnYOWRn3mi#aJ+?+&O^P)|(H!P-kb3gDG#BDvSto#dwx63HE+8X&%S$}skL zDC!n*{eBl@52w~)c zDv-~=WcTJ{vHv@CX!0X)Pmc-*tI{pGvmz6fxWI(oDUmO=+9b8-gJ|ljH|&xIwR^B4!~<@zg$${F0v}t>L^B@?c(5 znUY`0%W%`~Vh>x@ueY`=LK-jwWU7Ne{9mf=HgG=w5N&}j>n&iLU>S{H82 zujM$c#YS<(@E0M}j>WiiYNvkQGkNqjc6$>HmsDAp=3}J_a4N`GH zF~iOc_f*cF^JDGXb^Pg~wn9(0`51ChZrROqa8lx10VCuIBaPxGf&GnJVjlB@^G9*N zP>Yo529N%HrAbS<8wXiT8EPJ_eu}121JBEw-i#|Xm-I&@CfuvYY->solki}=y z*4h4JaoVGM)n^PS!r(>g+zb@ij!mFQz(!)%ey9u@hnkOoc(t7_gGMZa01~RDq|L7% z9xp|TWcJnf)T&Ap-06WwE)`!lV&H4RNhK}z{Q3-?Dh-epvQgfor8On*JeQ_yF%!V8 z&WJZHyYmw7Oy+Q>vRv&s4lQ|;1tbQ97wPGt#a-cgy23?_go}>XmOnC7s+42T|nXE4eg+@5AyTP^E9VgSaF^v0$qp0O(kkcw~7wiJk*P z2swYIW+2V(`D##C;OAKkLCO&};4$mFq4C2t^X zRLP?K(3|%g3|yegS8fI6-;tS(SOcK%o}UNES0CMFg!w&JSsU{}CVy%&koNUo@lH#N z`#Ec|@iI>ke$f{H)bT(V;S>G{334l1(XO2ycv$9Uqcv*sW2v z23^P5l81?~aLeE6FWA-=KK(>6Qg7GkW3TSm8n|Gzga6a^o6iWmko{HP)*U^=jF8Vl z*gs)KuO^MccU{QvMEZMejVEDi5i7p}lgS2+ee07XCv4;vbEqPkol~#Rcu&kXo%1f` zK&044NZlQGE9SO2HTb2FwAPAuTbGVgs)63@%$K2Zfoi+uIYIV#iwwo2-7F`4-?m(? zn?ETMeOLbn-i@b7NMtuxgy)iwXV&FcnKSgAnZAt_tf4m3#n=vKn_Iei1XeR%7!-rs zW$`vjz>YPz&Jx!1z33xQI=T}Az+e!CRTXNk;UxaLA2Ce09XaQ}noJdK%ZP7jITk6x zD%y#a7d(m%ylv!#QZl1_HZpC;IK-ptmn+U3V(7Jlv$#PwPLs0%$QW;*#{fD=uE&*$ zxCCTZ_eYg4oD$6>T2{aa0x5bjdKlu8#S3sD3)csdyHi&X*11+uq^B7Z^z1mp=C>e@ zOz{)dNnh5niy~|httt^I7W5!c)8%yQS;}{2^{S<@9=GpS9b@&;N^IbWrcZ9){d@H= zQRlM=vz4VkmU5{drx~|JxG!~bbh-F%GZ`{&ClG0lCPT2G5r)LB^Hp?kVitcGVx{~} z3)hfQeYXJ%1`4$^X@^a|3xpGS!dTs;#>PedMdWDPW0FKDD&`40iW!Co@`T*Ni5G=( z;S%@q*d}uHOWce_Gu{Ac!RON4q9!@=ekiVNwtnQ z35N>lj2#DZAG9orM9yZ3>N@J(>Nm5yW)XdzuBF10_VWNt?F!jJ#+V6D4#(M>GbrM=e-$=yjF>kt(Y%!A>%tvGihH{KaElvZ3wdaKlO*m&aj8Wpx`OIf zS+UBge7M3(txmnlp6d;aD>9`A`NSY=;L#p?+6Ww`r@Ep`%XCaVoTc=#f;rF+d}S80 zYx4$Gf;K92Fzk5j_nU9hdKgF-2d})RS@M$`1K8Fg7UiuZbZ(_XF#kZDtCaFHjoY<5 z2>>s3*LOWsG+_MvqiN`+6Y|yBAgpF8u+`c|CZ=S5iDs{vc|;lSGHwfH!uXHJ8$1ZTIHOBZMQK#a z0GfUzFzRx*@`1m&L*E*7jdf|M&s_Wg0A3ES-;&Em zpY7aNC*~uE-^BM1!YQm=gS0joB1l!`J!j`#A_a_rS{Fxja$0;rL$PbCPaQ}YM7((r z@YG?GD>EiN3U>j7g7cKON|A z0`qxf+a(-&ebs5#%Fp^DP0#V;o%!3#qy*I_cYBQ0UwMSttwz-cJXm_%f8q|HPx2Wi zX3RgU0)#24{Ud;WCH-hebhx{nU&88%iJg^hM|y#rmifAyU*=w%(pe2Vo-n9z2$M^K z1%{V*BX8;<1Y;=bi z2u>~6^EZF44cB?8UTu`Bv?Fcp8IvM3UJ+Jp_iz0vVf%M$AmdNw;M%0Fiw2nAD%A!_ zZ%WRil-jjv$#4T^i@j+pF=F@_U@#HTAvBz6G72eS$ILnFP~oFzYFnIvy0iJe*TvJ? z{YBJhoJ5Kr{TEv|mp3K(UjkXnxH7AO1Q&xtaLqRZbwE;HYYr*$X+3@$)4&aj<}yDa z|1Dwb5XL=P7%A;YpOtBcS-e9gGhr~uw!dYtR9xe7d+(r%D5b24dr!w%UYPfm{34C| z?BJnbO(PQeUd76i29wIlNDBjNX}Yph*c$_Loh>RFK1pU<%U>oVt_7Rl=6*We{WV2) zyj_heekT(KCtH$ETT6{sI}yQ9((<(?`~OcCaS?JzC@F1junhwNkt)Y5Fvti3OVJIS zusj;7Yx52$NNCC^l=b$QhT!l)a(LUFpT~I4uVza5Xa^~edS`LLK-mNB2ljTY08fe4 zpSG`wuv@y?I0PtUl@=XIC0pfZNPoFhVpv{a;q92#^N z2R!fU%|Qb@f)!Qq&tFJ(9rl^0(5))ht$s%Mo%mNGcH^CuUYZW2XMOuT#%_BVtey8|TdOL! zZmxBoGH*$8PNJosoVFFDRfdR9c9&baoV#lDR0~Nt4AcvBw0ZUd#b(st>=eH=(>SaHM}v~D0JS^2a@$(*rcb)WU#9KAnr3O zR6~^eI1GdzKq7qtI<6*+jm|`3B!9`?F!=4|`6iJbxeG?mbL07+IuADc9btY)zGb@I z5VC#B;@$|uJ@2T&Rw{;TVYo+2W2gvDGBu~txYUJh*x_0^aU@r2rz^S54CX8;!JBG< z745Y6lAdV&Q{F0k_x9#U-d{Ba3fmI;Ufa}+SDgT$v&>hG9_PU0Nx^gT0} zV)JpvlShim{Zlr+W%Y}bkQM^hw7%7hy5uk^&jxBtcLFuba6d!Xuox`V^x$SKxVQ~KWKE542jb}c@K#9S%U$$IBd4(CO96t+_oe2Te~UGjkHM zPLp&v_!SB~HVi%BQ3~yhF#wk0c9)O52?d`K^=_5GW;U<+dDfX&&gNRa*+bhRB*bp1 zIX%#L<{5v}F5bY{dqEXw;t%Y=+1BL7;553xOJJ1ZttZ+u$fgnqoCDJ!c#vIxwz6IF z>OZLUyh_PdRO&Z?p}P*D9q#HOid0xk0~wb)8gyH<`37Ppw;;-ceu{~nA7Tv^eQ{MG zUei8gGgY@7)A?(rogNaE=xAM345Fqh_bCgH#oI(kfownc>w3bHs^Jim+^u#bk}u@o z@IY(Att z!wzf$znR1ux?>ZAMXa}a0k0QOXT}%j&Eta8v66>5q*4gT<3x{$nr9-6>w@qd!yP^f zU6L#eNbT9HNwJpJ*5?96up5h!z)%3dY^Og2X8{=`OcT_~8RCN^c_QZ+KCo?rr^p$p z8J)Y7*HGhtOz_0bIZ3{t-pRXKSSGPe=H-QexwcC)!^-u_Xj?rJow7M>25VM-^_FS& zO+`6r=fTAdy4N(sGQ(5a-YnN|DJnH*yD$hV-t1i~a5-hz8P!aJ{~NCHl&rw|S8TX) z&0FeY#BD%fKN=tMg`kN3JucD1eVpg4keJ8>`%~ytole1E-h07PuvTiTkw8+Q7Nn}) zyRH(LSwp`r_V4I5X$7-6U%;pvx@=6hJX(qI*nL^~l-)E1 zNlZG?5@oi?PWUO(w06^YwB&#TJ{x?BArRz)uc#XDR=!z3w>(Ws?4>;Jd~ZXB{OMF> ztYW30%UO^kxeo*$D{ke@>Y^r}()@Ta`7(+hkcFR2Y`M8@Bt}Pldm<&tr4EK37jO;N zwfV^ZbwNo$kP19{#1dte!r3_hOiVpabKquDxt1@<($)}Y)rW(7>d>nxQg{`?l#7Z6 zhmuQL0k}ISyicjfcEqk^`jtuE7ouu7e$Hh&V|KMbXz&U{X@gEkdVL6CMDZhd;j3`_ zb|dq&-x?JW^fku45lQve7>qTOc|sUhGS{pasSJWUx+#8#OX1fkQ9Q zI|DFJuFEncg&RE>Z|3mPdBFOgCAhYMXb&A`90!G?LKnk@VLMTQ_;N@VbQ5!WbDme1xYbQ+^ zh8sy`oBhRCXcf>Dx|WD|gu(O6ong^;nn#GymzaDiKGYo<1UGLvjllM7!&9@7WN??T zHO`ghQ%iT``~#>e--TN4c7j_mc4i&I4t6~x#PRsJZR#zDok}%X(LVNFIz!M3(8q2w zDie3Uvb6RWU3|etLhiQn?zV)JL=fpR^q3{wo&)aa1B3d>7>i$gv714pxlTE-Mu{e; zcDA)!`%Z?eFOT%`McV}10)b_fMe(aKvUnvX0Jac@)r&k%kq!%IWuxt-ArdGsP1^S_fz3Y0U@0h01xnCh#(iBmo3pzZAwl(T;J;>q7MN)L8tvkz!{>nCXj~TZ{?i?GAfQ5by zfPMEUyYkQ+#Cs4A??oC+htOAyA<$44PlmGbXp%;4e`WY31|NtWQMu7`5gXqeNpwJ47Nv~6^f~7+41yk6m|IGqgo!TRQg*$GYx2wRk=gY7Tzep_?3j_FPJMM~x8dZDaQfs5!XQe)q(zHerI5s(e=t>4TddlN2$?vLiDagg&EerVmQXNN!uL zGA$x7m*it!xymPZ9qfrpUiQ3rZjtgkKcvxI?@ z^V}9#MKhA9=rcSl>+9i{Trgn0_g1R<*u?zznPSCL0a81O{o#`NV32*>pK@$v(;LqJ z1tS&Vb`w&r^ujx4s?zJ%Whuwfcf}oKS!KPs;W#>xu0`yFqS_E8ROjv;h$qqhV1TVh zr>3zM2?;->y?vv~6OFXn0QKoXvB*I}ld~2)?sZ>UhR_Fsx<62IyP(}dm@mwPz&(=_ z>(4llr(o`ANko|aU)Zm{?qv6*O&ILDEw17`(=AmurA4_~*Rc1-3+v=^kBFya^gvVC z#1Yz_?C{-&q`HCEvE&OZ4LGkVSBR$L2e68%1`d(gV=x}`4is@OPa!d@W~3}bdq`&*BG3<9uMZp^2yrjgCXJOni-X5; zU$Bv;!e;Pdq5G~hh{kW3u$6<;2RJzCpI8|*gIoEB#U`YiG)mTSgS<_Si!tAeVEcd| z42>L5c#EUT8pm0iDo8mqV1r2sRbB+7_oT01a7y2v7n5$$E8)Bgnaz+{O4DMB~~2`!uXZF_&?`M|=0;W|96+wd3G` zB&z7m#~8-trAyOO=&@Dfbb_yjy5A?GIQEBya{oxq&x`^e4eRxN0L?FbGdGky3H2hP zk-@fYUc(8P>_`ByKtPt$!23!#q>}Rz$9?M1NV0 z=l((n(G!mcBKW5j0av{W^Nth}s1PY(ZJfeY203Cj12(34BRT4OUoOdf77DKO>dBm7 z7n`40PU|+!_UA-&CTW7O4_muE1mmhQHK@BgUcbdozX^t|%sG1b|8h#IWL+e&A;1qb zla~uvKdwv+5)YHkog@5tpLTUr4hNl-pr%|#CRyx3cUiQ~K}<-};G+)M1trKs$?KY5j>;nMjzqKEkQVRr&&bt8aU&%~=<9J!Wwb3WnI- zw&4jO-@cWI=i{Qe%9t}D3>eca`uo_7SbfC20F+Ni1audqP_`zxnyKcpBlI>)IDTY^ z1yYt2%-^~4ZmsE`ct_;;c|s*%NbGgGqW0vv748&nCV~Q1D6*&Vf68d52U)KNzpKTH z>d5f;v!qLlFFOaLzV?VfjS~@tTQ%d*C?L!is*jk44}MS zopvYIw`F!{b(86wUBnG4qxcp~WDo)a65L29N|>xrJj=M#H$EX}t^Epc$T#Z}5?-jh zq0$F>a35+um4^>4sQy*zc%|wkWt2<}ZLj7AkCeTMTsL~c|LP3M#N5w7cpMij7xLao zX{<~$xI=+xJ?!w5v$ad(oSiH%@kXfRf$6vBWFncZ2mB8-6I4P@ z536{18y4~=6U5PNVmfgmHc#uKIcY+`JyWy>v=8=+0;xHDfbW0O_DjXJEaY(P3UL? zZc|bksadJ8lY$1(=km^Eu z!c?m73v@E_1MKl_JJ#~AbNDaHU}>o;2#W~~ov5t?1MDS(>^5p!tmKJCYz!x+_+vn}10bvcWq;8^hF)5&YT=99m;;%)wq(|pkjV0=O zb+S$RTc_4|!e+sX(L=@Ef;F?BSoi?L!^2Pot6d*Nuk6+jdrj zSp*Pgc{$=%^Sv{)tL-9Vtlx}W1n*f|G);{)NfEs@N%p!Pgg7x>wu z95M-9C+*DFh=Vu%*(JZ8Tv(oARwy0eq4EH$entO0tiQ2=%$ovx{t=xbmfWtr(1BLo z^rm|i2$Q00@CWRQr+O6 z3-PiL^2VZ?k-PC1en%pkW_0Y>O7+nXQ1~P5Qxtkw!Xc^~w4dOT2@h*{ha&F3_#!GG zsE#lHAn!!z zlAGhX)IjPhu`_7MKM+K=1Dbt-iy;?)uOct3xOjkgFl@k z43PR!E4%vQnqL=Ry(1xpre1+aNomp2Kn1m$4#NP}mi^B>!Xr;9Z#AHxNh5E%ubUxQ zSJrhT+gjWFeOVrtm1%0{}v;=7HRT&-a+Df>X zt62Q_3kt*qg`L6YN2mlyC>KRz@J*SS=6VrJ9TP>FHMfEUwF?$n0ktF8hU&ywUF`kBVlqOHZMR~`taNd5?l!ZC67kw-ed1hi?-gK2_fs)?`M5I#1sP51N;q|tYZ z2Rl4GDUFL}wLt33Vb?vPJv7nj{*W&*3VY4z*_;-=-?%k!%*e4QCqj~mApnOJ?(TaV zq6*Vtz1^OYDNZhFWon_CJoK@`eVXq5lKqUFWOBy*)lyE1R;AWOlUZc@MKXX08v<~i zfLcg&Y&byO#az|f@)PG+70T#i@rzkxUc)p&Z_*fss^$|vJ5T8CE zhBUwFB^y6ULC|w7OAh3Pr#mOYU$(*A^F5~3lbtcOPCI&&Sz}sPe$a=$j7RX+ws%Vl zEIkC$QCJp-n<;q_PFGs=OAn3@O++-bpvN2{OzB^6<<4E1S2bVI29{k3cR6`;Hvd3O zVYwlXn>rm8XFPpew(&dsbu+|~ox3;T>FpsVZUfXp{F7QHW=Y{wv-~X8`;kOKrXdrQ znd~daDAl*J96kwwy(9tDX-JVnFLBC+BP*G8HVRQ}GGv%IRrj3daLK)pe7Q}3LUR4G zN6*?S?tv4|TQTQvhNc)WespKu>I}c<87N>YmYo|5C-klyk+pVN3YFi*ncSbx-<`_W z`(+^hzP`*pbu&?9w+qmyZB;h_5U9N#&8!@0I?G_hH09OnK1gE7$eCTa8zG%|#>tDj zp&p!!FQMC_VCre!RvxBZt=GwKjnE6Vn1_{K7ZJ;a!42qm2h7}Qamezs%FFV_=?@-R z&)uqZ5cgRIv@Vm&Kl3-E-96N}-r#<1tGuX#{f}Qc;doEBt~~^+ItFNM2SPuMfMABj z^JG;vjPuj&g)x(*{1P13TY0FJPJZJ1953$oelX_${~t|UZ`QX zX8*QINYmfJ&dT|)J}p%^L&xxN1gZoIeg&=No|qVszGRjZ{!Fai*xYF5xChUjcVTU^ zcOQR$UN-SaBUkRoGlfD%Pk~W?cIE9<&Iiv2wS4{~FNj7+F(f!N*of7!^Ux&7Pr-w= z@Z>kyP|tC4DBVZ&!uF3U3b#LbZZAqGTC zBzS_virl#X$v%MYe|l*i7COr$O>pXm-{>ozL`e~c=()4i!|G~9tiKsQ7EN2wJ|C1o ztj&_l8wL==Z}$XO7oh=O_-0|Cb#+lUypsUWFoM*2v4_g2n&*)(f}t#Bp{@Pux{G@# zU_Gf__b{dsnfcmx~<06*P=TxDfo52P|2eDS4hF3 zhgH??dLsM!InJZX1eG+d7Z->ZNj0T$bF&4%Q3`)YH-#?Oj%srgh$tL~qpL4WrgUN> zAq4-0lRT8vr;Z|SfBza;^duVRuVqz8bjo%9}p`VNQ6ko8G8jkxVg-2-SHpH zru!yKd?#EZpQzwBBapAS^wUecCRNgxnAXqvVRJwD3)OOe^-Sd23}AjZrt@(EsY}cJ z+;W%eO^+ZwW4*U_3JR!>w`ScZro!9FCziw}8%b57G^JIpXp@)=Cxh57s}M!CI1zLv zSiRwZv}iM(YRdh~9`al+%zjh2y)z^L+>-~4u zbPd^LEt(68<;=+2(>P0$7m6%aZruDZm*bqQ1P0lLNTq{?I=NhrXp%~+2X9hN+- zKZ0SVWz)&3uxOK}|N9_5ePu5|4Jrxc0KUAyLwMwt;vpm14zJHF3Xo4X6ehUs2%c8;cn7qhZJfbfYtxS4Blz+1a`0t#)&EN__35@G^ z86)D$;u)Oe9EDy8kWJpGXL)i>o4F^rNw_KJ-bU7AXlD80dOa%E^`mMkt>RYoo0K*0 z>4Em5=pLesEirQQUTCuysJ7a<8mKZgyzG*j-07q+~xrGyVMjn9x!eVOp z44Jz4m$}&z?b;6fHr)^WjZ879_c~dz`Ko`CLU)4=Yy|#JzmZoW*9b~SXk7!SWih>9 zU%<)JLQXp{l!V%34pyfc`6t-lQIol&O1@rF+8E1XwiaqWwRCs=dO`PxPQG`_{MueI z^}O;(+H9(I`-ACQKtMZ5>9`ThiWo(iMxEhHbN9K^z zCl0J#h#B%7v^5^BUn=;io&0}HO_Wv+B}=;o$SUku%6ocwb>*rzniP_b1v*9=1>dYW zVQu;!SPppuq(<#!7E}G&Evs-~dA2@skTT%@rq}EORU2Np&niY5V5EH-vGP01@t(Hn z#rbn#zDGhgAd<{~N8<05OK!GNu3k2=#l{$I@9JZ}muib0INz10=CCh)^&%tuilc{n= zE_RSK`0m48)?E{kAwoO}&cZVM^;%(^_|}}6vWs?lBPExtV z-Gmy=*LI8&EMjV^#zNgeXAODQ-ZZd zKjNIbT?PU7wvx6>|086j*{qxX5uh@(*{gA7@b;bs|c=5yt#(b~u61zt7J4PCCU$u(%IcTG+B$1{a`-$PF_#8|c+YqE^ z#PI^dZ~WwRIkm53bb)elcDXL@0YklsdZojq$3Z z*8lapNdIzu*^pndiaM~UhYFqzrE1c$fPw=bO>X(dpqt6XADENhz5tu&CUS~T9Ae?) z3lvdMX#pcam|Im~T+bHNgrRx1ezJ*~@PO&W$nAaS6%7z|1!=KS_RuDV^l`jGgE6tE zdsZE|W?Cjh#M(pys1R%4LU$ELEuWJ>hxdS)9KyScG$}lcX;28g;2OR_`2y8@ZXL^^ zP|b(=ri1iQQO#b;GG2GAJ`1&YzdczM8D3}`%cxM^Bp4_!;jzy`8#^F7Is1(#I^J=L zB@n3tkw+W@moX@XjFFr}HqNz-07E87ihKD{OQ&*oB*N=-`;r+@v$e7}akZCRtDg>+Qw29w#}TsjUY)y#?zVkRPyW zP*SYTC~Sj!SXvY(+?8VXlxKU8ZB0U4pf8F_|I6zzf)H#!sOyU)3H1{oi>67FICIF( zkz-dSseVfeFU`s_ij?hr?X#`r5>toRhAVP@jjPhjjW$Bci#XBaP73u(KqTe=)1<%OmeY2ClQNA|Uae)s znoG_>?wA5B%^2C<)XzEZ%ITD>^wpKKuh{FO=~9Rx2Wlnx>uUp2`kB|-@)i#trG zv5G9mzFjrA7r$w5Fsu+7?y<3B`fMOyADqy*e>oGiA|dG<@IG?VGfJl#>?+|*Swo8q z&%mYf(*}k;OMT5o&kg#B+9?2H6slfGx_j7^VH|V<{N|&7R7l#I|6%4)#x^dyxJ@%v zf}TY6nX=LG=_Qs)C$-AW`t~rs#>sT{&=i)t-dI}rL-_qI%jbeNxAkmH40qN2y^q|F zzsn|Z3d%(r0~c?rA>0tsPT;g--59gpM7T)D5TxU)=4dqq(Lg_xyq-zW2qeh)ABcfq z@xlexY%_k5l5K*d)E+Poj7zHHE+WIT4(kONfowd;f`uaS{qWKHKbzz@&sG)fsa^M7 z?jq^W>;yZ;?IPVgZe}rGS_76K1P{J$%THl857b!PMUfPs znhKSlVB)ZqBu!<~gD>dbC`Jrp>~iB(x;|d2xf@HopBnQLn)|PyC3gmzAG^|JSK_$f zq~&88R+%eB4FvjClabz$*T)mG4cRHe1xDt>PI-)a+Hpm>Y=V?+dk?ctgF;#~_U;9M zJX)<}mIqSk&KObNeFn+;x&~mYG2M%bilG@$J>jbaZ2US4O_gC$`)!XGjlxvSmic4& zvp%>Qk%FFqw$t|4hpnF0xUkWG(1`^%ATFY04&LiSJG*x8T5dpKi~UTbL>%~ZxUVJO z(`@#X5=}3DNk$b!*(_|VN2wKTHOJ*H5xiKbDyL}ZN3P5Qr&E{%3z~+IF08~H$Hu0> zq=}oUFPYVRY3uKi%U^2utq=FEq*as8VB!i`S@4_#qN3?qkCnh!=O=)pL@tfnf|Q<$Wo`meOSHzsdm1eonz z1~+CY5SMv$@+=~i;F@7*&g!cYnep9EL7oc-oW*=f>ivm38+E7X|AmD5K-Ly zb5fCuR&)t*26&k)Erm8mSd)^#}K_mNG z0lO$q9In)=!KKkws)dCjS5sHNZIrKYkbBwDKLC?RYklD9&T!W&U02g|Zaz$3kP?=xyz@8P zY;9nPH^m9Luul%ujU=^Ct3AnF4nc`MhHhKh2LyWQoqTd=vwUb^Sw}}rWd}7fek?ON zusQ8uRQ2g=YL5-E{@xi(?(#*BhgKJ24EsWgsHiA+Ngf2@rPs5x8e#Xuj*l$-qUPS5 z4IOflpMPVSXZ)>HL5IBEruP|K_;0>|tP0qBQ!FlKONvh{_sbcYX~Y%2==IWnjhFj7 zOx0R%sEe$Nw7uev_Z#PY>CBll1Soym=1fkEtlTHSS?Q zg20<`Ol!fj$D)5g#(e@tdAb?;_?sY(9S;n*0s;Uc56*gi^1t zc0t1{e#8F{KqV<&VYyn(?_+Y{-Akq5;Eu%O;mA%f2Sksd}H6doCPFeQWL_j&q zn@n&0H4h^t1T2!w$kJ#ukUaI@_D_g5YWLvUkRBPVRz1p*hv$9~ZL{W6}47 z1QcJJ-FTnG!Z^Wbd22G50aJ<>3dQ>%C^cdNmE>u`|2D~j{O#m^ys%-pq~G7}-p4?V zQZ9-011|C$`}wFz{a~_T*6sNS)`k z=7O-<09F^`^ZWdub64-&NluMG_t9nv(cs+I&#k#k>E4*`l7v*YyeI^v9|!Zw{TLYU zRo%BgNYvW)*RY5V!Tyt0_(F|bokvP;s#OKT23j9kr{)hdMD)vaQWW z&Nw~t;SFz|85T#fW8A;^yYJQQ(62fgaK+SLh}gjQ5W@tx?}M$NSa~NcLM16csIfs& z8U+mZ@%8P4k--+eCK(JOMC~epN;0T<`~|L5A$n)iB?b8eS5qmLlr<+@w!RbqjfZ;8 zmOlck;(jB`7cXTR$$F3wb_$$4;frCuQQws-`?yvnUPkfq=l7B)e%WupvpMYz2t-`3 zd45Hqj%}}P_!5F-l*QTuIXvmA+SY9WM~lsY)Qa_k{0!WoWZG{-~z zeF)+X_4sCypa4W!1c3(hyH*B#)b zMZ4Obm$%I@E)2}FRY>zyewz) z5MbZCiC6UID0M%7^6IK=BK|sC?Lv>1)pva!#5~^=J<0{MYa6cq4antVt~5P=H9BL+ zT%-gwu*Zd!&GBO`UNK~A44^dFw>_49QO-I#4{5%K!MDMZ4w!<%3?wHHA69RNO*uT0 zc;8bjY!NZx)YgF?Hx^oI*p|t1qg?8#>LV10XC?T*6Gonfo?^N+pC}}?-t6Tf)y``{ zcn91Ok0nYLQL2DOl7BCcqYz3k?4q7n_z)Nm0KX~{!!C3AyE%~IXCQ?`?{3`*PG(m7 zU=1>YA&pQY9!gh4feo4Gye4_=*2}?x>rEIW`t2ojvV9!N@Z!dpqzJ|osk+22Tayqz zPR!*R;hxKeJ^=qe0Kj5v0u#0+Pa_)!-(tj5F^-=#4}T6BBQ%hd;-ptC znZn)8+amfc*dR&Jo$On{5t=P<2p)`TFduTvAVelLkru(X`qJbGCmBb12}e~ z2$cTotPmn5c)e=NXFDCg4GCGsir>xlmADgculY7Pdo&}}Q3l#ol?HPVF4-Bpw_u^R_x=YqeuPW07|7}@{D|1lzM1#xaB#fuv_1b`hYP(QRTW71^264avpv($WS8y$QUgI z4{U}*{jKYh?nRw3Bon&6;3VA7(!4?!9`Cyfv?CR>IH>KA79-N=c>W(9rc*|YX14=aH`!b;2|c; z<93MJU&P~T=p6$WSBx zc+hA4ST)+7{+HN^O2_#ZsY(_Ml2zT6qf~cPRZy8&);rK)Y7_$@NIjIT4ntA62B>?p zK1gY!>N1R>?;ICzs&FhQ$rF(jdTVgDf^@&i<^%5J9o?D_N`@;`8;_jOCNQv^UW%kE zeVotOWa@L1kN!1Uw-`yz!hoFKxQtDRe7m%~6cbPmSy_WoE5!2s;is17aw{Xg|NGP` z*+^(H!zoaEF{ZnAdy{@a(9oXD3U=v6`zjMZnkV{XrQ2Q$@Tm3h1sl_K);EV=R7vzm ziwD+qR?Zobfj^M8-k&R7(8jIs3`T@=BlhhUo4*QP*Msa?CnZc~drbnU^ioKxAI{4G zk!`(OU{^*8XIE7*+`&quQlr)hcF^SHuipjw&gILRift!~Ub0_PvD#i;k#J6N4rqO< zC`-30A7B94h)%@3dif*YF+GH0_@aI$6}I6Dlmw>lvwcX5wg`eI!EM{j^Lm%DieaSu zjf4TspAfpl1f1wATE|j;zX#>{kmolJw-sIK{Av%o5-{uVr~h#+0*&NxKKS|yJraIP z*uLXfB}RU*P(P8;m}OfC3-k_lNQ#0p$A#ji$*L%lv}zso{JpNRtAxKWeCg#(Jew66 zaUfJ3xC=!B?($`nf~e`v_Dbf5RJ zZw3CyrX}z&V7C`yifg+iy1j}cXigrWCnqio?yJcBvc8u(G&~pKQ5KVZlq%SofHEjt z3BRg;WD*}??GW0B&JrXNIM?G_gtGi+KiNq?(@JEzt^tgaVM676gtZCzgY5+NroK-KMbitVfm;f`(j99Qo{TBUXd6l0fryowT_~zr;Kp}wplU$nX6u- zp%Wq$JmpDR-8^u8MZ%lZ1%TH>oR%05FFg~_lq+l^$8WHHKd%3tgD)fpsVSn*fZbl~^Ns zRkNrFbV5-^%)E@NAMc9ao;j~aE=UWDCmA7S{a7#kzZ7HHo8)YW>)uph@2-Loto?Ki zfDm5WCH0dEGWzW`3JYdf_n)GS51S~7nk*pD0z+E+0D1H}?a;?BIz<%v_~Hy7_wFfW zS(BQiWYy_N=1bAxyH^>4F~I=kLjhEfW9uH?CxL)k69pbY?OCSdW2oB#ipTi0eFAL? zJl253(g%vZ+=h@LjTpD=)UWGb+1VC_y!!k^fMZafpY}>FHSG&(SY?kneEAh_Q*dQw zlK_OpDmq3G>AT&WRRk`QXN;);cEFbVj(G$D1wh3b{%O2fRCiVv!Qq1nnu*KPE)F;& zTAxKqM>__=A%1(~7%MGnH6+6nge#Z7ty+T@uann$ue3&PCa6@9=r}TX~NvZq` zA9IKY1VLJ*`y$wz|Ko?faH8VnK(aa5Po%;CyjZk7ojlPESzE7NHRZchvz?S4;fL|@ zjoe2CrD_p)SgpH787Og4+NaR`lR^fMDXivMU<5vvaQSoZDCq)1Ot7k%Anx+ZR@JG{ z%GI>BC%?L?zL{*|z`NC_eqnd{BLF+^_-O6-?M**8{mX`AHlRMCpMhfg8-rGTVi6OT zGUQRoHM|VNsD*PD*hu#tg0n&ubXDRSzgPfUS?TR?Q&IO!Obnjn_#Do7)PlhNX$#gK z&0+oSB(J({-`nm3E{MgxfI|vI7JU}mL9x$zn1eVm*hBMMNCT6?!3K`PQzN^ZOciRs znlzc+frqF4Ply$fKBgfVKeMlYwR??cDoNnT;~%9PP^k%gc%{-6SS? zgV8G$<^q%5-yb#K+YC2&c}YeitFPZw0kjMz(3NbaWwch!$czgmaH$ffq>(D`UMFFG z^yR;=Veo`eg(2%LFi8Fwg5V<{wM_>Pe-P)oSm$@DTwfE8-+a843<$ZyWuYw02TsgR zFc@VF#xeytnYTRgY35$x;D4w!9s7r#(D~TDR}=eGjzY>?YK|4`?1Lnm!seL9`Al{I z(%|n5rMaRVs&UECC$sEyUVQ9Ua)wvNUp1{4pkyCInV;oO0e3J>u78QAl><}@7kK>h z!Od@}bUP3`!?$&!j3@)uMBYCbV*;d3-;oM^qRN}^+@TJtjZj!?2jBr}^+Qun%#!jE zN+UN{qvM|w;c&PBh?r{RhQSsA!pr<|3XM z#6>)NqjPT@aC!#?+59o(xv#V@mI7^t^w^Y0m65U<*JmqT>@7(fog$yv7({}^Hk!qY z3E8&|=whhEx#GZLxrFsw$w)q~RPA$$KJ+miaR0PRSxu7$cL6jYQ;IR+gbfp1Q|f4D zcC6~nq2Zmf@_^t`T1g?$+71y9xDIM0{&nTV*=u<*Y+aa?Br(#5kV7m+!96r-bHeel zhDGMs6Cf9GogeW+8@osGs7WE$^d%%C6-NOtVQ9Z{?v2OhsbKbd8ut90aj9U} zheBlFfT~;nAa(VL*u|E5<{3`^;b3)gTx@O}ahuq(do7!K6B5%1cRM%sEk+uOayooQ zvRkAf!ACx!mEv2O!8gmY7u(>Kq+DRbhO_U68ih~lDCfoYiYZ)J!cMPv!uO6=#$Ohn ztE}E5`LMcjo@lb)giHCBk&89igB`h4k+Pjh%I+zZ_v*ShVIVO}9#} zHK5%|un523(c-h;l;BxlLXlQO4b3SfESkCg$czX$p_Skfoxh?5y(CIWPN-6mg2i}* zW~{UINa!;mZyDfnn|_?UEYA4w31)hAU$*xj4T}9`Y1hsyu6pKsI>#?4E>p}X3}&+j zZa|3|y7zY+%yu-xA5fAFw@U3H8P3$z)^zrAeEx*bjyD);lNxh2G68yD`#W3 z!uqMIhVr!B8G(&F55Rpk<{%T@`2$xs0Q~y0Ga*t>P8nV>MYiF%ge^1DH2BuY-Hm;b zI2M!|8azNIkP1W~!|bgh0$dS19rH1UUuspcTe!<97~%|8Q6}tAPrTs85>n;vw@O<* zo{}4lC);Y^xB+Mg58FDRo}Y73H?A**-AG6+hoEt459uc*C7WLNkX;#!W15*Hq?c_p zflU#zvvm-9UOF}(=vd=cm;t-~v8yOyHHUs-e^_F#K)PmPjn{kvS0&OAi$Ipuvj~&9 zqxQKkF!*VUs|kMd-Kkffan~hqbX7Y!#axn^j z&%CDwP6k3y#DwEt#3q@^9A4kpzxlt#fq%M8%2_Le_Q7!|X%{Y7b~;QCc( zZHkc3Q)6+pOoo8kA`bXzA@mkX@vgep-;8nMuP(YWPd(3T|G?u6H<;nL)d~dAdl{1} z#?0DRR~ySj^SI<(CCalfpCNP(7Bu89T|65h1773{Mu5u+8ba~F@mZEGnbaW#BqoAa-eFe(*kfUl%AfP{{k{O8Gusaqc#LomELf=4^fcJ_~3h3o}ge?pVN; zl?etlSjh-_an-^!k|#!I3%-keXZk{`w{>+EgC<{nVvcp?kR^zGIPm8lDanlP;cx=A zq08~A)CU)p4aNEUU^Qsj!_?F-$R5m^rG72US3aAylA%yLBbrFFLP_{z zy>K!bhy{KDhH_nZ7{5SMLzJ)3_X863j-m46K58EwG|iH3$PvFx4KXF|L~?gRlG#jj z@RX6&-b8Qi7?&wPp99Puuhb$+q4}HGh)nkn=M*`s7*F@N|Ki|AcgAOwI(Z*!r9Ky3 zaSMdrP5tTJsUj)!1wa(6*#R&%+75L%NoTA-_I@D#!hzob2`#&q{=DReXH2@rJP)*I zhGL_c$>z)jFQ7CvEI{)jcR}%#WrW#tV7uw$*Br$=5Pe&uVZd}`i&a6RG$=gs4=vgD z)R2v0I{#(B`r%A94C`wOI4wj)Yr-M%X`>71sK=jShIgUB$|qN3kD9ZeMnUULMI^n& zfiNv4&>F%xX_=s8&=J8vpZ#+Pyw`E+01!s2UiK*<<^mT3x;k-t`rUAW$j27>BrTNl z%>;&xkON0;V-4=!p7Su!A~5W_Ju8k{L9^zQ!Rs>KyG9dn&R1HtSZAdBK5=q}bP*!#2lcL@wQ$-)^(vvmM#e*j?>+iSO7r zQHW|*9va8|{2&G;0T9sB$^a>{nu$XN0#5&Bxcy?E#R+>wLM@+!J0?=UIt=X8*6Cw#NVtEakKA^x7hym2ax+2SkO<`dutxdhf&y zZ1KHK4%M8cgJ4(_z5FWDh6}bDXK$1~i^jn=0^7TT(02M04!EitGfUM|%$A$Ft zRvK#hjvh5 zJ9SJX?r6LjS|lQ~SMv2=zR0)h%gcG*ff|lr2UKTk_DJvL%(+2e>3BUKWBw?vKrUO1 zk@LRFww&1(PUr3)4&FkZl~J8&aT28&ETC^=uL_~>oq6Xr-iw@bhEPZ1VoE0^lJBBI zfR*^}JZ0HNo5@1Js}p#bl(lj3AeL#lqGo;J4=69{fjUMNDvw+=KsCG|MQOEd*>2mo z>~k0h$mcK{F2_b6`xR)tH_8YTo_1;`T@b$CKLe&m8i-ku(kgdGoZIi&* zQ*K{7AHu%rNFcVP@-Ltdf=PBw&uQ;0pXf-`mYKMw_scj5d=aB1`RP{6U%b5Dte?Q< zm>O$pe?gJyDMhNxU>z zEG9Y`Sx|v%ezBt5s9sFJaF=+u{ZiCs;D$c-CFa6|G%(iLTE5#Z#+lm31wM)96V zWh56DVeUsT$@YD+Xx8@5Y&9^zs6o;c5)3@Jv2E=?{?WDUi%T9-Ke>Wc4!Y!z?Flzu z^a5UZhxN7zUD1thrL4P-mUw`Nn?b692>j~A!ZV*y@OyV*MZwd&BBeds&Lx_5y*3>` z1b3Xr(vO*mvGCXtJoi!qLRCc0&pibaG}kGbeQL36X)&KOX&bMbBAVwUF!NV3YeKt zsCGpbd=1iWP_@6jsC2r>TN(iV!V+{>QPKE66veaiBtt3oAjbCZ`nLq- zH{HIr5gC*XI)4`8vvWi0qO}F6vC1q-Yp?_>!|1LY(?QeMJmwzmD*5`26_+B&&93ON zBnC@uPav6#D4+z}M%*}q@M|}vG}pp6#tSMLl?ec@I_=Uoc-hmn&a{KBUlg;|!mra0 zqGKfp1J2-RFRF*1kta>)kIlG1F@UEplpAPU~7Cl?zvXbc2Ni``RmU$L`1DnsV$vFf=hfqx!B%LSmxZEPhp6K;e~_Aq zPsg2Y;J^D>v$Bm8Eo}Wo@r8GEWi7a8yb(R^A(i^pVcBoDU(o?YycvYFZPP{cmT+K!NtYyq8;5-d3*e{O`dgHozTJ_N9a^d zC@y+Dhyu!ku6zqNdIB}SP=RNg;aNUfE_Dw@h8mwRd8sQg#g()Ys2LAV;aV9`gK8BA zV;-p3TqOQ)h>Vvb5^=<=`0&E?4|{pC5SO4J*^7<$s0ATPUngkDqqe9Meoy+8$)o+w z@^|(2?U>Iv?VP@`n{2};jJKGB&#a6JC~1m@f(kI~ZkMhT!IJa5LYsu`F)O3Fw#Vjo z@Em6}7fu**bc7TBS7>A0uw5tVits!m3G~#Z_~y4%>`>bj#nLNfQ~>V zAMP@VZBImgM8IVD6JZ^LCo{8BIX3wxg0>rz^-n4%8*9<@-e=fnCD&Du8CZehxYF80 zfDtY9T9JDMRCg{d#2y(O2lw$s^v*`A$KnqHRu%HXTgxizG^w)oZkZL>bTdfEhMnm# zGGZvS|7rO>ik|a=F3@pV7gwnneQbaFacydG)}a{@EW!Jx`;O?jOP7beRLSpwOd&HT*Lz3e_TCe_+?j` zT&)(<-}G*LEtg(A3q}f8AKO(l*W>$j8^-A(RB3%8t=7RTAm1s*I@KaUH5<&MKwtD* zYUM`IVcO3rp>av2B+;I^HB-J?%m5|=HGiRlT!|+hPfxwj!pZ@dKF5G&B(nC`6qnw z@$Hk$vKHZTy6Jd55xrQ}>gc*p&-akEw*(at%wndYi>%VZV#=y>lM5aVOQ-+%KX@FS$bU|;Mc|w& zQLz>*jnptC^3t#SwW;rt@xldEqyq+66HU=}03?@Ck|#HeC4?nF4+3JR)%g)a1xxfh=zL4+sk-z z$Z(nJr>ZFs_8ff3ZP)JZ+XKJ901;Y>nVdnSPi2uPA_i4x3D>#Zq=4S^!ld|f&0w~j z3!O7QU9f3%8v|V2ZLJAjc&5k}MjGhB6cQ0HQfv#UEiSQ~5pw znH}qZEIH&BIzr6APVxo0_lbXCPrj%(sj31(oa$pPXSF5sM>;;_OL6`vURot3{b=iS z3EftPzGs=HgGkl8dDO&eW9aE*>eyMNKuov?dqxn0zDD6=mho-3l1nTaGgc~$LS*wY9n%*i zJN;;Ivb`h>{fp$Xx!kI>JvrA+a3}-s%JJaR_6JpV!)w*u*0Ht3J%Oj>pjlGIG0$I! zE+~IFy4&bvOyCb|54WD$=(_B*QK%Kty+a-rfd7Uj$gJe0ZHTilCs%6|E;&j`VFF{3 zTPv7I&WLbFx9e?G;xr#hUsN~RSzw&nR$3u1DqOh9I@mn|{&iQt=kivhTso?4<$jYV zB*W2k%JL2wU}Dwt4|DIal?a~)+6y?-bWB3?=H7T{{7*f3R8&KD>l-zNHDFH$)ad7+DJ;Po-^xPuUQ3!gZ_F^mLS`EnE)8^gH|w-Oc=FQENL{M~*gb6mk>!-=4NM2!qTMiKObTMsk-%UJmMex)OVt z`|xy)#o#|c6n&U&tDUX5SK1~*U=DQ!Y@(-x)7xROa@6m-Dl0~^EXO=xV$gYNdjQj^ zmm0s;WofWqj{{G4+iQJ+P-G}@%nAcX5L|XOanh=Tg>W#w-AINeoUdgdx7mPWVXpVP z{H&ysSdVUiiG+SrAFWv&+1TT8pG6wX-vDLNDk(g5^C#6=4S>6aDNA@pqw}|+iUfsq zcQrKqe?Uag|05f*fXRb}z&$XNM(}My85F0==o%y4ABA(8B%6 z_C*yaHKl@^%IErHeIu8tPsdN+z3(_FCH0NGYmOx++Q9V?K=(5p8=SSshx;dM9&HvJ z#6}8m8L1daRRS-m01gZ=uFSi850${x2vpO;ga+o?(De3QC9{f7R-UiPKCvX&to=f% z1KLyQOgKw1P~TbjTJWsoGk6hvs$1S}Yq$4eA12~GglU*W!#rCfo<{rb2gpKA`_4J2 zV{xLM-m^2vr6CLOoKf@(&N+nos5?=%|Cy1-fltX(0}Dloq)~4=VlEC>%0M=M63nzU zJvjM?_)51&(kQ%xfaUe-eG|iGeU4cW*WT2Ds%+OA?kAx1d-{nv_j?cCPr1ywWMt1* z0I!bV2SPXVKg{NO4tCaD4pZy8|5-qAu$X?nllthQi$%0g^UFmhZ_vsQKhmI}ycK+N zBi7nlKiun3onu!^LU8$FM4F0%=GCbGKGX6YEBr9{QhmHd>KiNEFlDA{g|RuKs}vg* z`7(b+fMfqw*c!@F%*%OzaF5sqSFwcE#ohcy1fm_@6Ba4V+)|s_hEiMQbE)9y*6D+;2>+*T>bDI=K0oe#Aumv6Eu8-eQ zCpZb|*AhY4CK07>kn$B(4{=|Sgt(bBISqN<6;}tu z?8vlXwSSA3vQO9$02Fl0GjW62Y^s3T4dwKyJ8l|6E#D;Af9giqITv)^8g-uKyRv#4H*RTcc*X^i`Fwm$ zsOajpmU%1*;-h)M1h!M7VMwTmNZCsiI}lco_1yQPydCvBOPBU7~;HYeW(2V0&GUxnzz&WRlEo>`0qx5 z(W(0GGFB7}oZ`iTm@E}@0vMxE+lU1toFI?}#Gz71IekW$mbj!p>eVEa?s9tGb^Pt0}<;VwHkedebmu_At8f@$(^Im}T3r)d$Nn zWU1ukYjwjAzAx%98#rz&&6`TQNiPLw+e()Mbhm=XuPK`6jzK`i%Ch9}bi7;`M47Qc zww%mS&)fo>4L_mVhreF_i86LvjQEBN#$vrOA@3)*BHVA%;7>+APmDx*Obc9cO15RF zG05HxH^P%hIe_Jo&`fDsL<#6F{$-H$dEaIx6UXXD;kQlvQYPe?%xuiX?Q|sJN*N>` z*XDLUe8DQJHm>rDnS;khOxj=kCs@C}-PQTrs5VMlPQ+pUW7<-wJtsOOM44rg6P}Vt zPOWeCfvX~^D|Gev(`ww7GIC;2rscS>o8(~K zWvAK=T#rrQ5N@>S?0Tc3@aGi9Z&~XZ1ALb>5k_qx`4&-$M5}liVCM*__g`*}tYC1% zDS1Yr%qjdD?|*c`c5*r@m+szHD3v7;DN=ULNJ4HG%+y}C_!|0RAIDsG8b|KN^Rci= zViyk!XgT*;xl~it*G>!ypT$`u%9i?wxhF+LMd8c`19jJBRYaa61uCf<}^DBwrP;bL*7UMsVaE7#+($t1W#6HyhWMPiffg)OxwT$E2#YZsFJts;oLFRPmrMqQ|van68@#jvZ!??jnJ ztd|Qa@o9XfP5kUBy3<^=5Fu)dy!1YI0~}t%F0Bg9%&1j^h5yw1TN#7GaoQf^oI%j- z86x`N!?s^0Q((SuqLJ9DoPtc6RwE1K^X5jTR$}pjlsg+lHuA~TycJjSY^6UDaMt2tx`|%@I+S%hytV+De%*>kx2Cuj4+V#V*>MhfC2BqXyStzMU{B`wA~X~n{lthkYPyLJ!khE)biYZ zToDqP;+H;9&9QG|EpHgtmpx_czGwmJP?(yqz8eubz_nSg#K5|iLBz8<)J-l!gO)KG z^Wh3uh}xL?4z9#yVDo$QiR|t|al;Sk$AI-s_#TzO{=S~5)%7?hNa<{w2JWn2o~`eV zxkdm3xG(=Wk99XZE7{ZRO($4|0*7G73ZHMk<`u8FQH|lG z_b#9BZWAAlPy1l)rf$g|1?3eggU@Z2v3Rt1Jjt>}O*a zwgmqI^`bebl%}9gp^w>LeP$LY3dc|Ycid+qkde#()s#`K4I7^M-q7d8v8>t_d^|*j z`e3l5JZ}dh;`U5T;(x0QRoZhW9Ux}KvdhDuISNLc#fzv$1?v(Q{5&}0Dl2E3`?)tjpk z2&P7Qu%wN4AC$sLjz&M^*DbB$ayZO*u@IGBC5wUadaj~gzREG)Qc|8=_;`T2?&;dj zh|3AwlUrJ3+X3qX08U^wUSg{x97oSd<0z&_w6B ztH?|KSW*qaX%i$$E8^O0zXl!o$p5z2B?K6|vlUDq#kEka;4h14%Z5m(t^f^CW7`I& zl|K-toi#C8mf_JdZ$LqWNF z08z!TTlSnbMcwVAtRY!4r?(z6uI4}ioi7!BOW5Q^lxnO=gD`UJ0J)>lj#@NkiYni> z{-LQ04Jz>A8>{PkIg@sS%qok~Fx5s8(~H3#6M@-K9P}c(l-fc87oe_9xildhOI_vj z?wMKo+mp$9C&!kvom+Sc)aK+d;|r}1R8OKON6eLmoQPjAqe2Wjy;lJ-an$~yWYpepx@OFQZQVr0&4lSc&0=;qd;n8xl5 z@+$%=at#`$MIaM3Y0%xenM)D7UWc7S{@DOx+QPwivM3tFkdX4Y8Y|oQl)FG1#$GkN z^R9&QK8S(}f8~K*I%T^Kp0x<0&!_yLPyTkqh|g^oyvlwQ@~)xhZtK8~Xu3&Z3uk9| z6!n86kd3CqsGyq?vB}X~j5=Cea2__s2GM``b&k)`Y4hj-%{*&hQa_HWB8^a?sRE`S zSAr8}>tqsQXC8^0I8riN>_2-+@eC{u;z;q)=Frw>ZSF(mgZ4t1<(6v3C^7~TXx8Qs zvT9_86#xoBD5k$I>=q?R>CODQg_|30#R5;9%D|WOF3Y%fab_(>&(un?T0w|%&CLF= z{+8P;mIaCw#>aZk`Wv(1mHk};CRjo%Iz#+-t)gM57}kC*(+Ywf99iLtHkX7~WJ^)h ze055V)%ybVzg!{<3cBeH+vi1~ZBE&5I1?d65)f`u5o30X8iUyi*}VcP^K5+Qo8?%H zmC-4BC!$|o;$$&#NrhLuLT7h& zx&%H8Uk&K;$vn5b;U2x;;e02$jUb)xMVcm!V}q`V+*A)2l9#3we)rMMdGpLzm>1*X z8*EZbi^W2dppLw6(tU?V(^xXoCjDfn|4Jr{j4V?O-Lo}gR}~lq8jYh3rwn$WCGJfuvv%JK3gVuY&lRRHwJ$|+S3@OZ)ZkrMJj{7~Q zBbl!;6KQPS3a;$E4zBx#)x{KY3k(B24k9$>^f8TnY0+jSPp8lc?OcvEf}5I;9Ja1D zz8Al`y&aHx4s2S%ANpYRM_G79>*fsa01=|H?7N5Kbn|IOlZ5oIcV*C_IUt>Fry)Pj zG6E1g*LZ_B_d)B4X&+)TIqr_az+7|)f+p5nPIS4Kx59wV;P!}c=h1+ev7T(?gbvNI zXB{^Y_4;|C68SZo%v!(#vA3m*Z80Zmt_-MP!4Q+o+5d>b9)3?&aQP_swzhQHK89R`086|jkg^5J=SFZl7NCZcieR@{ zka$gzdhg->hTgQho6V41e#sW|mSPOI!G9sb2?%4MMuOWy;lhqQzvG6UdSnWaFkurR z*5W}?xIsr@l4==304pwQx zw4C(xvG4&^b(UkkpG7BblK?}^3j@Hy@)v$~4-)=F?_maa&E)G^6@g5tA-p&`f3^g<^uJz0WpVR|DYg-83&a@roTrM$w4F=!1aby-jD8mtqKEzOtxK2tI9d-E zgaUY`*w_~_JcC7mu?C9wP}rt^l07Rz=k5o-ee=cJ^~jJ7J?cd1!D!zUPbk~GK)i#@ z1VND6(};-$8zz^$L%TgFG_X~O#CQ!An3bt*cc%(jk@YFn=SYR!%Ro(s#m?V_g=>q- zjCbguAmvF|z~4YOGM>SPLp~q|y`DTZZouQ6h~f-s5clETIV_=ZAMiI=H&Jy+pP6&@3nYZ7yOR#6;-z(D6Tfbko zk)U7!y=sOUXDeU%3#Qm>I__I@5>7@js<01v*h`lkL^>m(2q=gt%jP+=Yw-C4#NYLLiL!o3`#0bf=F}HrVOXX#F*LE+w2vQTDK5_+(|s5hSb$=Ir4RoY$yG zybGu42d^dMRo-(pIEgn;QT3uCY9eHfWH}H9yfo5WA$dWp4HB?}?F9?nJJ_}oazQlR zcI~eDpZss}1tTBu`@Nj7c006OxY^Y4c|NvK|CC={hJInXlaf8Xx%a|t%}U293wGFKpa9#}wxgr7wDW+l$B`zx3R zR5+j=x&TuS+Q~L!*v7uzvot2>yMA5!2|%%s54aJm`~MZy{`?>JWu0U&Ajk+>-eCaD zR`Zpr~ESq2kSL|fEwQqua3nP z%?Ijng|dRGGiRMKB_hU+@mJnx)yQ-ouYS+2%(7{PC{&TA4ykI~rS|?e!vT|g^VVIr zQcY*m7VmMlE^ZNT=wnZHp$%S}-t!z*CwAi;(T+IM#urTA+LmJJ^yQIN)2WUG0M&*~ zW?18%&Dh>K&L|=#b%AOGN(piSf)U1#)V^4&s1@}I9F=p~{xs+e#yWfKsAV`1Uh-M>#E5C*8RkEscl2jjZ-H;c?-_b@u}b5(J~JLg*H72LQny64LC z!W08{)ta+K;qf4M49A;joDI1J^WC8T`<*7B-!c0u&|sb8JxH#`V+IYi z)d8=#SX89L{qlatxgbr~6;VDb7OLO7-R7eqab^y7B%s5Ugi_6}TJnQA8EX92xh*Za z_SI%LD6_6M_}*Om8lC{X86)7FfBYo|wYw7Md>tTl5Xl3kV1R}K78lc`b)6hS6^jS* zV?zha#?;h0^`?F3=RkH44Cm~X!?kfH7}8)Tmqpgpnf8HedrD@Ubg7rk zg^i%=WL~ z!um~H_LKG}7S{m2Bl-T+-kdN#Tq0eD)F$o$qvHZKUh~x;#=B$nhh_~IC=~$F)#SR6 zOckz`ZL7MKfBbtw9=ry~S-Vn8{1omNCd+5UG@YD%<}&e`H#iJOQ~z}h*?40%d@F{s z`0=PVo$Y(vMCD|?;RsqUAuzVrV0_yEaNZdYYCl?NC}OzX_sNVtWrHfA9LZ}M1Im*T zISkqf2Kdm}=91%yL5LvHxS;G?fw7bzHd*zhr4lVE7yzG{=0raNuDU!Cva54$g2q-Q zl@~F#I(Hxn6|(TC0>2dnfzd<;k|TM%vfuoGZId5tg(Tho7x%8xjCR1qw3B@7YlU!a z7yZ^STS-T{>X=c5r&1mXJrx#FUk#hO0|_4lyO@f$GSNy_TS)O%0%6mD1+tAoAggP5 zplFY1TPv7S=*MY2xj7#{MeN&SXsJl>!)4D3TF~PR^G+2v+G}OTg!gIsN2Ol~Fw?J} zf3bkoHuJ9PpU7dp7f(KvlpR3Bc}(�@+fBq+F}+01aX)q)mR8u;xK|HH_Td9BOm% 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 NDal%)Lp8oAWu!?CY_joF zpD^+groyFhcC93)0VE0B-?19+23d;8`lJ7s(|pPHkWj_1+13k-x0B8f2GD}HEdw-U zY!w2IS5-NyG74s@vy?XPFkiYjc8Lhbf$q)Fn}yT%d1a^#1j&Aqwy^QrudOOnShTB8 zyk8Z+*)OH8^XqFV7)YWk0iAn|m8$}+=GP-VRJL0x?b0HOv!55*+omvc<(tI0F3FrOJ7xS}AFevCGSW33 zz7LQb;9I*+1w&qjO(V!Tn`{5N!0Zce!4zIG9Cbfutwifkn0*cvZZjm>4}SY5ZuE9FJL37_*Df5on)AJtrueG9X_D z1Du#e*PK7nG%H#-*N7hrS)s-C?7HVfZL0h5BZHzm;_|UZV<2l?vlrU^r|seG)*1T9 z&Zx;IW0P>y%oo^bH z=zM>AR)1nyLl@@Y@S}z&$>1oORf;6*$lcmC^E;VEN07$hTX)PkyQXtC6g{BLhHYS^ z$25`Gc2@e>&qn#GT9tWuI$RNHj_g4OFq1|>UcIVs;O0D+v+gHV0K4t`wHleyET5%& z7ny`W`g%3F=M5~7BWS1DJa9B9HfWiY`_Eh>Fx6m+Ugkh46P>y96lKjbylthQp&&TW zjMekYT|$gap*V>cds6-*3BA&-w)wCq}$c_37 zGn@swS+WPED5W5nUrm%q@ltZ`$4Ns*wWi|ejp`T>>G2I>`C&qwHrp=b&@;`tph+z2 z^EO`tsBrg6rAO8jlQeWOT-9lzW)nrT6ZL8@{huwQJpsxjHZ`w#W2{)ivc`s^g3J5% z#K6>f-1TxSgAH*Z;ecxx+X4|$Wn`5m1(lnqT*+IA6y_$_pM3P16i;^x>m2#fMh549 zC4ADIj#rMOeYh3g1_0iuh)5!pY&+f(o{fM3;V2&0cj4!&@I1&S0t54ak2e|sKahU9 z4<+Wp^{ntUpwN9W(#T$px?A9wyzM4#M{xC~i@40L3!5-iGkAG88;cDnMWE1mtQdhCo`FEwQyvISlbu93*l4`bSJoaQ)M+=9p7j!ohuzn~{RC@Xi&U4z~LoCJ+L^4WHu<1r7frMcX~*+sb;Yk zcHP9_c0Et~(l@wE)!pkar7jNAtHv(|NqHYJIKbq60-KIaZFb53({znd`~Gs#Xok++GF_{93rZ`p}d6t@aWffrQtsGY;_o z+#J5sGTi<%*%{H9apv5yM`Wq}E6{Y9BRuqdgA37t^=k|dl1{X_Y4Kyu$~dMYCYu5w z!_WG)qT7S6?Ha?i56;0Akv2IvSQA>nP%#-hPFY;=uBVS-HOF~F(={!*ifyR#cEmD8 zexhY+$O`8}8K)$3r;DTPU;U50)iu&w(s50s;&i4a*cJZRy}SB>L)kl1Dv)M5+A@}1 zJKDB=t_YGF=VA!G7koX1+pEmyV*!)=b7N!{WDta{EWO|PQur8P>1bHay@h65*+-wO zIHABmGD)S!OgN+;->}9h@z)_$Sj-NPW%50XZ7956Z^RnY4;>?@uG29>KftEK|b1=<(5 z$WyHL(brHXkvm{;x27`!#id8qL40IbHgBZ6to@opt;p}&UMQ|Va*`O3a~h@ z^m8?O_EL1rX*L9q(H8*Y0Xb1B(#48_YYg4@nS8|i*HJ&&rRtKmJg>sNaL!;P_B&y@ zPR0Z;ZaQxaS*%t*8!y|v7Ps%#lTAB=vb1&G?`owgNFWmKn-}uC23OOX zayF_^Pv z22#CuE_YY3-&ffr9=bcl0F596afn2m6=Hxx8RFwUC-Iy^O3DIICWg|Ma2LJ^5W(_x z-e|YX0JOmE4~k@|o^z7BYsQn=U(Tga}={7_n@Gcp6CCE^fM@wtZTM0*$RKBFL5ut(o z0;%eP=b{!(hD(T!W0})?dj>4AEy`szIN`X2%U;jW;b&53-Q?iw-@Tt}@dxX_F$(|h zHP6_;@q#5}ex%J?*&Z54Hx?N&qP|7-bx2vFG)dLmid{1jn8({G=KRIiEw4b6E=-ks*8sg?X8kj_dj@(n)P-rq#N55co#fREm8v z2&$&OT+rzp)Y|OYaNeO1%BV7RrOulWTUi*u0T5Fx)YdBOIdvV3;8Bb#W4v#?)>z4; z)`s%P8E7C~DsvoVAWye13W12J<=3;|RiSpaBZXwHjG6k+l#&X*@sY$tB9%{F{rN5A zY4O_1yTC(J7kh9wceN;)O-DI_^qg(g5@sfllubtN2ETe-HkZ0sL{*qRpu}<;PWehg zGftt@O`fjPZ+ClqR&@Mfe-pysR3FCvVWzM#P%_W#?Wqkp%K6P95ak_)ma}1y0%B~e%|9I;4WW)T zuqEE|a?Wv!Nw#q99{Y3MvkR7A;s#$);G;q*cj^{O+L52bN+I9w2rW!RC+RTCBhG*e zw<)^x7w0aox9ZI}JBfD9;_75?G)d@p;_kepd=|onRb}W@EA=DPCL%&qRF;~|^&85_ z293|~&le>}>Fj&PRb)fhjxc zuRl1|MBZe8l3$TavN`O31#)*R72hA>!{0mNxnSQ=TZuYg5D4di`*hrrb&{3w-bvb4-b1$Bo3x=|E}*e zVTz|E&ktkBtCj99uK9bU2g`qJ!Ud%%hgPJuO06h*pwj%BW!Y5&TvHFKFKYPBOTb<1 z!HLId(AdFH2W;@rXf^m}`&5 z6EF8TV^P23nVaaP<6T9&yn!y|@j?n)s}))(-;s%x=QI3of#Hdf`y3|aG;L_@Bucnl zcBG>4NRdr|Wz#)dqK8XkUMk)iQAzA|z+v|G2)Rj?lIRKC@;U97`;34E-*Z1e$p&L_ zsg5hzE1WerrrW6a(KjpU%0oHf8qhP`v?%xeh(ct%Kf_XcHboIsO&$`y&+yXkzdzKB z_=c*g`ciu{`LM+&254oNySl2-tSoag+B3-=*pxZsS-3j4@m&c5lrnt8!LPX1Ab#4< zV&U?4(LL#J0fA0P>o(6HH#`2&!Ua5IcrZD_F%;zXR>)4mi*4RomOtZg{^B2A%0yrU zXu#NIby_3y>f`&Qu&ii&M7L%-G_T-<4MRgOVXr24j$RXfn`6P^f_kU~n>I{Pw zJ)L1A&ulXCi1vnd|3p^4jU+XG01n)@-r$Y;*aQVe;Gyi5&;mopuUw3a_o*zFNa)YO0ZD4#4u!eV_`i8>OgVn!pB?Vo8mEiX zaY}j6>xXA2az7wK+{?#ecOnBw{SzYEOsAKw2X9V)u*$AE zOxX8#oTsoL_n`{(^?rk-jo%oO#mS~1MUyhr6Ip^V`=HN#73Qwp!e4*uSQh@r$Muqo zUEi=amXIqTa6Y~3oE6AT9$T++=)AmQImSv#vEk6ZaMikKZFThx+TtNa^~OUSDWwz# z#)qhTKS0v5&L5kZ2=7>lIO7EAI%xvDDbR_dz)szTn-^agFDNH5Q(QciH4b_?Oa&pG zL>~d5{TP;61@gAzk9^3ieDQmrKsf6}qzWwa_ZOpdMW{zdY(JO7JbKQ6n`Gq|Y^by4 zn6x#GGaI|rWIpc@p@k)$z7@wWpf`X9cI=7VIp3M44Q z(-f5_gO70YSNVY&3XDT{oSbNtdrW~Jt~0t)LYg*CcM^mwXc>=t^%3yQsgw7OqzH4a zHND=)zwZQLaa9`%XSWabOK0uCZXfNi-~@apvezt{Z7*=B%!P07QfH=YIX)5E@0>Vh z*rOz~E+Fa}zGlgyHqBgpFQP$C^UNNElS__F_uMLgYfx#Bp`A(y1uEvntqO&#iZHJq zL8!rR>Ojjj6_VJv09?s}V|0A`7ekW^;N^bXA-C4QjjbhF6IP?g$_ysT9Mr;nLUqt& z7XX}B*d1Oti6&ZZL?OzORMYhQh^SmLN&l zRlC-CBUDPgr*n_vI%=*9!;GfkO=ofvjP(vDw@45Jq-C{f$CtmNiHbzZc_OskUH@q+ zfYW#nuowhy=*(EpCBG|$;sC_H`19meC(E~_+7AhbplNIGD!~98GQzRpPf%!6&m=puhI(7N&xQm}bdvK#!UX5B~W=os3!4Y?leO4n#c~4)`szCwkE&vDo z1(Aqfi-WWIzz*>8`REiBrhGR%JpXo_w@8yZQ=qMi5~Umqgvi3^lj!q>xh4ZQk+7rk z$>npCHO0sTWT*XF2x3V8jBHu!IhJdwQIrmL-zZSLL-!@r5wk%zF#%~2iFJqq?Vw$`XuH6=TA0!#& zXb&r-Q|~}X|K|HyD_N=66Biv_|h`o+C;kyBVR}r z<#Dff;kj1Cbh^#3)!tP7`}9@p+M0dHi1+kBrYl+|XH~Bhx*(5)grbG)x%p%I!1CLV z#LUA9V>a)D_|yThZr!{kk&-m%1*=eVh_2E00j?iO$T+rboh@f`5mN<#%CS?nA>O>K zr2tEz&Sca?=jWl+1d0`0dlK{bGYkKvu>~4=wG}(bYH7a-5R&4;OclZIq=yePbO?iT z=-@BJs|HczsC^p3&@#y^`?s^iHiILN{AE(J zjrali;$n?rAn^o{i-GhbxNy``v;Z#}R=oJxPogmuK8KqZ9HW2B+?SLX>=Vk=*oap) zA>{(mL*J%)Yfk04wkH;KTM3|f>B(`wdcZZ!U)_h)I}o7~m82;Vzp3ef4wVxL6LRwb zAnX-Q`ct8igwQvRuD-=?3pwc7h4qy>Dj%>iBsMU1v*JW_}kzCQHQ`|&zF}7O(2HjOERLpL2Va=YLX%|QvGK2yD{Ot~J3vX% zSA%MWaKwmI`>hUwlQ;ECuPqHV4E(}JD&LHs{}v|MvC-?x9C^Y9>j6$=_G#O_Lz7g7 zFH1di8L65~4+tkK;dQ>JAyUzGq!2^bTKu*N4RGP7xwXvB1K&GR%j5(uQaN3zm@UL3 zIyGew1OE$&1JrLz40EGLnBOe&Nnip4D+vPl49-f3D#_|ut_tntT#t`3yz-PkJT~b# zC0K-4mtbM8O_Z6tMR!y7QN_%Yw!X`#e!#^8`NT#AOuRd7TU!P9p-RpP%>vyxTUH_x zFTj!j!25N{~shssaR|9Lf#48GiS`@4a9Ca46@MW1*RE9%-6G@ zc+fO6%3jo@h9mhJ4`$;K(aM6Yi}s41#WJ@^}L z&0{0A^U`P5p2BV3H79ey8?~>HRMl`Y_7I>^T0lAv_Ope@`MnYJOPZWZ4xdLLSrEE^lkgtwj*|HWh+1Aw;NPisz)EYalAQ$?pyn41$TKhJ67F&XWh zN-klXK6e^+eiK8w5t$B(QfLy~i(h!fqq>n*_w+F4WV2$_tWTq$WNX@oi%52c4wR_M4 zbC~0q)Mu`h{A?(QBPsMdRSQEOMMyHj1 z+Dn(ZcGfT_V@XYBQaT<-qyc@4<-4zsAXB^c-zK7bdLDkpIrY^M>o>)-rbC5tA{Ns8 zkS;NYUUFHpARM^O_4OE>DR|MBsqpBO`aIu+bB%1j7ijZ zVIOa^9QgzWx16LgXVjE|C}y&q-NRw*qu&;_nqSC)w5RoY$_Fd7yrr<k3 z$~4V+%piHzXz|#y{1<;L%WVLqxH`WC8=naw8aX{$(cCS+l~iCn;$b|NFX48_pddlU zv@{q~sQ!~(W%H(1$Uq#jTY?-W_4NS5VkrrN@dz$9mvf?{5KNhvNvJDrzaP6SrLP58=vB3ZbN0_;u81`s zy5>Dd>tyBgW2@zEZqj=6N?nE1yN=xc^hD0BeZ>$8M6v+hOD_&gR_{5-M3_{~s}5(y zBLTF!<*(Nhfpd*mK^#HK%cZ`C5fVIYZ}K`PZJ~WMkSPK?zm=~QialU$-Y=p;-MDw^ zXJRV$w91zjdaF##%FRn0oXw#{GEg7mdO1N$#&a$9MN*Ho4(yK1fJje)z zjB_<4CxXt(+*%Lr&1?No{(dwqn(T>*KlNng^EP)acJhhM*)9+Uxc!%pL!C_#>R*RW zrjqD#9@%43f_&&eHP(=bY@!JHK%Qw641fLcEmPXHW;Wy%F52CRSu)bl?XwE1Sh4E4lz=Bj4RCDdtdWIp~>m%S4BsvO!#=+mjRi~V}jFEo>C_U zgWUT>?F~7jHTotfPSymFfrPagSYV{bFuorwknf)Cvazil0||&@ShM)zQ}R1769y2; z9_ML}TXw#3+KK%f8*=3(Q*#OyKb(TF#>wt{^Bh9wCu(3OQka&4n{s63(3E&U{p}M^ zY-nu4=QmAys$3F#B*!QEM2O_ZJt$qkA_;=-LGyezWkE8d+ehLr=e}4?Ko3}}y-Qys zkcSP36cWTZ88=r=)7%nP$C_+Z)=`x=pAHTQx#k%W%~e&7S_C6taYiY|MC^|kSIney zQm3LCvp~CV#|e;JoeFgw0|G>DCmBBQl0Cp6B|x1n%-#wmCjdPlhH*P zyx3+;o<|gPQajFj?h;GO-AhTc30!mE=OJwKbo|M!2%|HIDnQpO>ge&RE{N2}%%^uA zSo84$nL0BlV|q=qMQc!(gUAt3iOqM{vQ^z5!EhRT?QnGa)+z?|s{1>`!ZP#Kn*Qw& zhd66FeHJ@Kq$|E~JZcB7S$cpRqkm8H(8m5`+#*)Kn1#cZdUWoAa8eoT6stHv)p~@D zhVqf6lsR_7hd5p{`SCKKN^OFNKccRVsv~5UM6EJX_J&qgx7=aSN<&fcoexsKi8DSn zq-`aA?2h9w&2Wa}pMq4$GE~M~jySu0q%l7cD*AwB7NTg7N=r*x0kd}*B$Dqj@NKs; zmbEus6c?}J64Ev1(^T^*5R>@J6<7Z^ylz-eWT5!Pbw3su zkRKnlVMb%=KY~sODz8=dhY^hTRRr)p#Z*4ao8wMlYXVtp9J&#F)7Fy(K|$_+#Edg_ z1x3Y=yqSac9ot4<#Geh^GRP25meEnK4u*QvWadaOTI89LE~iygH0NufjP$kp))uV1 zPQ$Yqq46vuD|6g(@P4SB;KLyIX9PifOBDPxlHGQ0f*UiV9GZrh(6;%R2MnrV zDEh9^bLD2SKwtfrU>*GD0HWZ8!?JjZk-HwK>P#8o<{NA_0I zA$ci1j)EQ1@Hfaf;SgC6PLmIichoj|ftg`^BZY9BtXl71xWfC&v0=$nPxlXZr=9rT zgm+G)M^JaZ+t{ANvYfVCWjy=1z8&cUa8l@pVeDzG`==TeA*MBuHG}?6?M$*gnPYIh zTddg8M2K#6)uJ_a5~nn*;um&&s;I(NbAU9oqiuJ58W}*ZAAK>!aV@vxx>WKRyJ;-e zT+M%ZS7(_j``B}MJpCKwbkq9Ldh><9)M{pFbQ=ZHf~znV1_015ukZs1^9;bnSoJVR z_{Hc+7X|=$jY5_!P-R&zx z^DFokJFxo;e*85dIwwkQPA=$o8QVGt`+RT(PWv7Q0Uk6o#xK?hXw8G|->X=3KT6;9 zpd77Xi(ug-miNA6jv#X5aMB7UY1EKcxx)__CA%CG4BxZ2b@r5EIjv;Ph)=>)t*fG{ z)XL|p!6cLX5}^jEI|^L#UHEY}cqiSFqaOEr+Bs$(?9-QtYC-=ynarKWaP=BNL^rw( z>hS)>L#{A=guEh13I+O0GEdQ4YQYLz^uck`lpTH`{PQyAcqh0A3fAYWYM%q53%fUN z>L}jK#2J~%;nmD9^#~EDFMNXtpg+j+n<>qxZ*0`_Y>HeezRQxif|8{97?p#zq~`Lm zdCXSe6&u?dQYe5=@|Y(7NO8HO&SotVQ+8Yn98rm?r>*A)R-iF$l=4vSLdbS))u!OiO*y8`>-cv;|RyS@*L1zN8R0K z!&utlvDmUIb0S9g{9P|+mKA_F*d}i1KG5arDWX=-A;#4}LHHEgY4;=vHR5XaWmbabu>_)9!}!I$sn=Qfh|!;C0pCZ^Z3*u>%7N`WlUM9w=lz z&F7KPH-LL;SfK7)h3nj7yO;y3TxPF%*2}7XMZKY6x+jd-(r!C!? zvg~nus=-aVrB@yR)E~zxr^TX#Wy^{dLsMDVaAUp8e;#g-<&4 zk_q>|rwWYLeBk)g6EMVmFRtc=lRn{@h9 z{M~pfod}>K^`*s)_n2pkK{bGmEW`FEFWRk*t9AM4G@(95Mw->|VDgJMS#6Z0!5fxj zB?_$HH`bx=!2u<)epGP}Qs2V9^$gd0CO+^NqwPyYI>Di^w6MqZHg(LJJ7fnm%`su~ z{JAu^v?5@-STnQTR(Pln8`DoK7OmZ%pjvnBxOr9*xVd(OS3l7*!M%?i)a-H~xo{zF zZr=~l3hNB0bz$H8mVc%cJBpL~1i{Jzd$oPcOkx_`PFu4vhH@Z{NZLa=@%U->s~@ac zzMcbl%039pPq)z$xLT>xtfp!p0jqZ>fF_)qzOMjx(tC&tp(Z}(K?{*50&*w)lcD#| zl|h_^e!~lEr|Sy+!sFi@_%^6o7xAo=b_!V5`7LJPh80x?BvIqf^h~Xu3|%%9+1nt? zG%?;Pxc9;lG>C(zqvBlvCmu(a1n<_G6XbsKbMwzQ2>fmDbmhm_6JRjp^TBiX6B?34 z+xf7qy*ZQoTEvlJAVhnnWb&Z^K6LQ_FDyEV>2gTB;ZV*u@P@JI?g!$F%pdIfMh=~F zuB)jN&ANF#2v$((pi$Lw19xggp}CuD>5cWi z=am1TQU8zbGfSEdtpc%&47DV2{Z2y%IaCKNT1lf^IR!l@uX&XOWcdvO@^Swu=}z5x z37OhajqOv33Nj1{2NO{8&Kmm5Z;(uOPAsC#UB{kr)KZNZMpNYco8XL5Ldh0Ff4cM@ zkOv0d1Q;N$FM=6!EL`}FKA*h+DoY30JzA%-{m}KJw>Df5!N#^2tUO}Fe{BFc>7U{P zkPnYrh!Re5O(4L5y?YpOq$p?qwuTp#(vM;#awgkVF9JhEXBKSsby|CfJ>lqdlSBnC zUe7Y*b9pcMLs0Au(;Y10`YOWU@|s%F9NAwSx+4tLn$NVMqN*h)00% z3d^)Z9VIeQGg#OvQi&|j>oiZ^r79U=N!7 z0a~)-+u)5m{j15xZl+D?2b*D7wNg1A>1X(d=(dFjDGTD3lGq2*#@I>z`NB$+gBU+D z@}eG-8D_lPGjqhi;Y2a^G5GKc_0pf%zr8%FB6U+-v`@cgB+0dqUvS4G!Wv=0N2>UZ zE+n_5<2^x4%f(y5u+s{_kJzjhb;adda)K@*VW?{0qVARQi!&XxcrRTqM`LTi&j1sa zO9??;Sw=@Cb)ZgcJ)P^lr+4#q-68~xR|&GX3m%x%sS=wruKtBp-Uh@E-xuR@t?M?2 zTdaR<8Wv>|K_1QO6>)B*&GVT*&2V<-j$ts9h*Xw4Si+N>R?Lql#cRG z69!E3F5A#Z?S9nnW^TR){PfV=074-8_t!XXW#TbtU?>CI%C69pwp8Lur#6`%4;h00 zs|4\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ + disable-link-local-address=yes forward=no max-neighbor-entries=8192 \ + multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add check-gateway=arp default-route-tables=main interface="ether1 - Unet" \ + name=client1 use-broadcast=never use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 +/ip dns adlist +add url=https://ros.vados.ru/dns/vados.ru.local +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=127.0.0.1 comment="Local DNS server for vados.ru" regexp=\ + *.vados.ru type=A +add address=10.30.30.81 comment=NS.vados.ru.local disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ + vados.ru ns=ns.vados.ru.local type=NS +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +/ip firewall filter +add action=accept chain=input comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address=!10.30.30.0/24 \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ + 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ + 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260608/20260608052001-Diff-Config.rsc b/MikroMaster/history/20260608/20260608052001-Diff-Config.rsc new file mode 100644 index 0000000..cea1ca8 --- /dev/null +++ b/MikroMaster/history/20260608/20260608052001-Diff-Config.rsc @@ -0,0 +1,24 @@ +2512,2513d2511 +< add address=127.0.0.1 comment="Local DNS server for vados.ru" regexp=\ +< *.vados.ru type=A +3083,3085d3080 +< add action=accept chain=input comment="udp Accept input DNS queries" \ +< dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ +< 10.30.30.0/24 +3122a3118,3119 +> add action=accept chain=input dst-address=10.30.30.81 dst-port=53 \ +> in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 +3177,3179c3174,3177 +< add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ +< 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ +< to-ports=53 +--- +> add action=redirect chain=dstnat comment=\ +> "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ +> in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 to-ports=\ +> 53 +3181,3182c3179 +< 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ +< to-ports=53 +--- +> 53 protocol=udp src-address=10.30.30.0/24 to-ports=53 -- 2.52.0