From c70ad90a3566f791b5bbd8f04271ae6ef9730528 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 21 May 2026 17:20:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 21 17:20:42. --- .../20260521/20260521172002-Binary.backup | Bin 0 -> 251960 bytes .../20260521/20260521172002-Config.rsc | 3445 +++++++++++++++++ .../20260521/20260521172002-Diff-Config.rsc | 4 + 3 files changed, 3449 insertions(+) create mode 100644 MikroMaster/20260521/20260521172002-Binary.backup create mode 100644 MikroMaster/20260521/20260521172002-Config.rsc create mode 100644 MikroMaster/history/20260521/20260521172002-Diff-Config.rsc diff --git a/MikroMaster/20260521/20260521172002-Binary.backup b/MikroMaster/20260521/20260521172002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..90c6d7bc4214dd5388e309718ea810df59fdfbeb GIT binary patch literal 251960 zcmV+aKLEh*sF8Cx*aH9xW*o47;f2L%4W>K@m@A?H000O80004Z`SAPzLlIbDjRob| z!abGmaPZ^PRWuAri*RcVfJhhE}QPZPuT*X^8sPBU81c+Uo>!WU5GX=UP~z-!+;?~VoixPP|* zBJ-XJ!t7B05=8IlomNl7_(9-Yxd9`H7*n7=YOCf+LU<1_lTTl>g~RgyA}N}5G3Z~o z?e!9N|8{?hmmspLpLFWt({j}=%ikCuwTu@K=qzFr_$%GhUQwXIA-ikR^*;=l9<@n&yS(@R+a48bWm1>$7qGhiIba z+LJ3nvIx>^VeL#antJ{b)`nAi!mBH`FSp2Ug2 z(r9WcaHNj>&TS*qf#vCnQc_c;L-yFyO5DWn@2(+X2tDC0VKQKmh{9p039vZ-rCRda z_J%9CG+u8^jcc}HD|o3B@u;)dK*L?glKW3?y4C*ML!RcpNQ9#7P4u9N4*Fw-*k#0f zX+VIZJUk%N8yJsqA=zBfLHu*Nx<0YHwd5RFX8xbhcv_y)cQx(Uz%ur{BAH)% z*&|PIJ{ZMbydc_BWzp9x$H+Leet-PGQ5ta$9%>MC1#6-}FY5tK*&4B<;xT2b$E=ep zB1Z|GidAEX|DY^CI+~SvgebAn5OA}Zm>_Rmk0e14gj{<-NJn&I5|rI8T>98v316uH zd!ml3SK%Rp_861M36ooGLIS2ZRTYiokgYU@yAiVCo0Qui232nsTGrVyFd4jAQFag% zHmn#t;C82-Fm^`Re;211sZepcY=eawn)T3NT2$(Uv?)hR0As3xjW+Aj9JfG(LUT4? z0H-Cz-LT*o-@NwDhs>ouQlXZ+uC&4N2{``Lg5$!;Q3Bs~@@LFw!cpX+EOB3~%bQR*~ z1N(1d&<8I|8O#2jN?ebnm#tLf)4YJ-jI;j(l?f`}sm@Y50O*j~2!dg=YFj5Jfn`9l zxh)vqGtKB{=bi95p^AufGyO?OP)WC)QfB=nf7c0L1?E5fPk-58kktf{fu}-Fr91na z$F{{Ry(+203fD|usgO>2M}CiX6Q8PzO0wXF7`(8J(gVQh^4#YIU!A+~(A-91Q?V1i zYp;Lcve=<3FTCtdn6(VvF89nf#ULyE_G>td2egJJZ}qV9gz`KSIbJsSMcQx(d$IgI z4#@e>?65djr)Q~C+abQ!gwbq$0$|r3v*Z(Kkg%`D6x=90(}If#DB70l*q)#Q5D%-k zUzTxOB4;cPMbLThKIUY^>y9aU;=Wn@NQ7a$W!#{IR`&sG07V3xuQGw*Q7%eLJ1*ux z(1~|nP`=gfvaL${CFPIlo4d0j3n02nLlSeAlzy)yi6Y^JwGuzYgrP#u%s2-H#Utw) zvm)Y)h_u3f4LS*BI|yvx#ndA>GSO1~T_0$e0NM>@ef;8nSms*sin50e?hTkBi22d7 zMT^RVeFkjYmG8(w?0*3zRf2C|@}VNHLAFc~?Qhf-bd?LWUr?(ux%B(_Iym@Y%ay=l z3N5eESR&84EM=~it-Ct4QA2Hz2j&&;4?E0unST$p{!~8Ld7@zddrnJnnIU|-UGCsl zl0H}oGoXd?q4bI!N;*%xe<0IU&X`mb%K(8=&Bbo;FH|T=Kb6l?`@aXE+8#+4&J^EQ)~*sKMaptG!lqmd)wPH>!F7zvx?uO z$&Mk#5B9LhilqURscDm=pWHkQT#u;^7M5FBj9CTwiQNYe&uSuj$IrPe=d{efG95=% zGzy7bVvBT4wd*xmhXUK485dYh9`vgU4%`-!Z#7$%V@wJpcmY=&TbuFxO9pdAT%>6)? zE;d$W7Gk@T7IKY@>Nu_u-_@6yC@M=!_^2PPLkl@2d~;+Vuyjm1<7nX_w!|8k)Bj#ndW5R~MqtSKdc+$!H@PBYs(p zVH^oTy-?=#IJB0XInPUtv`hUBV(gR#|9hSYOg}4|9IsWN6B0((H2fuE{TdbCCu4f0 zqhL~v8X%fd%jdCEVTvCAFj3-l4f2QxfFuz4%*bjiTAF9`mZ}hFR!jBF|941PEZhH} z#v4nSq5l66jAG||9d(ch^ZF)P7CI3yB7O0i4L?3shH@{?OE$ws=d88%x0dE3`iiaG zcoj%6A(9}A&w=oHP50LW(huIUVO?`yq1?J$OHm5cS?0s+r#cjQ`b8_%+};q})GFR> zO|FS*XU>h80Pdx`nk}Z9c%)^WvyM4uzi8g^giwwrAPLi%++OT&^KY~7XAQ{jve_Z& ze0c$3!*mYH;S4>F3;Qg@`%&yS@I(V#gQs8EpzYCcv^9^t*4@TSp-EU6o$~b=T3u0X zEa01`dq)@6Itn=K&9mF`k|}24|-y!<^z!DD%;a zV3j6(vvF?^c@-tc_=>vAGS7b32Q`&_=^1axNjdX}lMw>5RXr@LAbzH%HIb&NfVE&{ z2`CV!{!28ilRtbrsg*(^hhQGqjl~ot=maL1TxzatF{LS+9~iMWTbar;wp2;j6Vwiz z*(*H@dWBbxybqhE5r>cnrE%mMP(kh!5#nCXpsWjQgHCDLH=NJG2;tDl@#;26j>ofa)qkmVF>UBVt*$TejgG2AsXp-`k9#(dKOC} zw`$@2aW_{b_|`U1^#99$lDo}6C-W>iZn9ng9(^6XE$Qzcr(8r&k>U&reXDQ(768rL z*JGjL(42?DfqW3z*cBt4JJ}U}ToQ|jKr8HLZcM&OWV&v(qO)?>4qJ5r$8S;}x@dq* zfC#ogenjFN?r(0zQbXycv=L))f_YFtoTQw?5bj7+V@sODZ z%Bwmj47bBkOq(@9UzvU;2QF}VY{d?+1scp>7lmi(f1>Yt)cejEHDZ+;hsh%h^<#d) zg1o5;X3}M(*mt*gE^vi&%P-J)2 z#Xj7y&WbzvYo)~d?xGsCrR#nby6;BZdDkm4*|{GUSK*^R_75QF?CuXy>Q>?M3kW5Y zc}CX^#5ma!FQ2=crNF>;WD;DI(p75M<@;0)Z#fWH98Qs~0*}cK&v&1nnZ$tk2JV2D z!5rZEJB`a2wR?V6Dr9V0xJsY<58L4CO5m;Bj-S8HuhdoDhH~vD4vl2o*Pe62XU5A^ zEY4Up_3=~YyojM`+3GC`m@HVnImpR0#aNgdC4$&zYt~-3#{skm*V+vJ|D)n4WGBf5O{-l5fwa;nl;wgYMg;GjRme|%*8!@fIsx9D zv-M0ilOkn^EyHFD95b$Fl+mP+`o(_DB_GKJ=s%@~?Qi>lYWul((ASFb6UZLw1wSZ{ z4&CC$DzHB!mYHK$fZ$?S;8bx$2?pEW3MWTHZBog(j>^Kzpb$X2J z0xt3gf9q+U*2~h=X3aG|N}b(AH@Z3!YQtlJGhZ zn0~n9_{)$bLUO3Y@wK^$NBiW&(*^syIWv@UR~J7}Gn*Il9p=yq=?1vCEWe%;!H-ccWn)_`8QXA?DKc~a)Yp9$o2|hcm5foT)9{E6M#5P;Uv?E2VE3EBg{wqusLrxdb zK(mEtl6{+Rnhrx}wJ#7Zfj6_V_--ct88goEi5m;^80lwMTvhMMPuARNa+khI_`g*I z?PE??1XqX+K>(*1=yHV<8b!rA6<+lPiPx%wh^@}@F95*4fS8tMB0W-bA@)IHbojbL z&1?4W3MrbZIJ*p#K}B1@nNJrkd!qhfRViY=nVyzQ6%?V@`A2n{*qR1X?R#LY=fVLS zx=z1JDh0C*QPIY;9%9Y3&~NSpkm*(N7>A zgK--sl@+15y|+Ui@rsDxh6SVNM4r?P)xxiUKjiGASuW_v)9Mrl$$SRHj zlu|%kO%A%3ASjoiTBsYEId>;jOd{P;mE84>QnaP--NTE(V3VxTdZB07vVHn&bFQ!$ zP3vN!E~f^wfQtqYplLc6xc3bS4#1;L9D51|l*<#Ot5R@(7;YL79c|%qla;P92#<5c z>k0fkF+B-?bn>qUt{LKwk?pk-!0&_7qSo<~7pSWTC3RbI9)$X$n>#4vQ3S{OC2mlUT2is545LUb3R@<1lL`gb8&8PpjEakBXh3=z9?JRa^ zOvlDM$0r>TL7WF)M|4t*90v18?A{6#87K8DWgVFI3*$r#Tc`~x9AJtad($UV_M?X} zeJ+b`U7_3ogE?fuoW)F+%}CeEo4Wauv}P?-Hx6I8qFiz^DsI z*^yrFr5fUn!#vMh#e{@hrhrl&`Hw%~K7YMr9H_wVOYyeC`6y;F<=zmbw16)phjraC zr)rwZb{SX!eHAz!-@YFt4^a2r6r15}`uK&s1}TA|5HesZNWR61!Fr$q%onx#kQgGV zkS!QT*IYOFoXS7FekClF&>Oc+8G1VU46?K`9LsQ5;=bn-TJ$Do&qG>3-UL6Dl)g9j zFkm9G4DhIc+_kX-4kZ1aHw2_-1oPg{(aq3*SkrT51Au|CCJ>Nolxkf@D1%ip&Jq1D z9E%T6Mkussy5QW~tg%OHnb-m|^cyHzpelz5=y~G=+5*mzO19PE(E})qo8lzdNQ*19t`qD_1-cJsp$upRPwS9TSZbZ zqJ_f@rxhStLIxMxN}1dERY`cOm$bR~9sU!KJPn;@NjKDG z%i}J0wSj)xA@w?G`R3N$By!Gl)n|mqbfg<~w(F(B2q%_abY-8_4gX5Ws(vY$8i02y9 zm!OrRl1m!hJImICr8qV=Q}ST93lVxOX!+qDVrKINs#X_vZfnB57isN>e3U)3x;LdV zMPr&`gXIr{I?;XXq{ZhQvWeAMOy)T0Ee@~HKmJwd4)1wE^2 zsv5Ft0g53O5%qlG8dPjIP@1Zd1{t0c8 zw>)YmOm7J?;1v_`O*0{T0;stRqxF1d)%`cshp69f@8;L=0J|me1iEQB0Z}2W8jgV& zF7np^43D~b5|2UUKmuoJw{tjlAln?CRADspwcpKrun0XNCh|?uQlSQmJcCR!m!c-r zoa%0(KDHBvF9H$zr`Fw04JT$BM1>^p0UO&I;6<|@+9+A)OcYb*~Wr$%D28W}zIp{iw^*ttBg z+j7_j=3d2VM|+e?VoDHqo!}ILsr;0a5WA!VA&DQrw(AE8Q`N~zPNT3;5 z#CQP+7{eCwaDO8-{$nTR?4*3O560|q`8m&)-CQ2cW#-(;p|4kdWY=rz7D*F%`w8v` zjsN6t6eKdA@*Ek@TZGP|*#zKonBXUa=%#3s+lf?2=NBI5tmq}7;uy6h=3+a|Qln7+ z_SxahQ%~oGAk)h`|JL0ZBbaqw+ZB~dp2t>0W+Z?z`JkxCL|DS44yc`12NO#R@>LRfdUP9}@bSKhOS9j{xZ|SrQ z(BBc61hZ-0X(#x(#V+8d*RqIZ$s-bJ;Xg?}S5xl36<3tWis{H{DuV^^i0SnZ5d`z* z!onjEE+hZIER77c)i)ErTIXu&2%~UoC#90O`Qe#maxv7NB4Ubh&#i@+s}S$8me5e< zY3Lz&q#K9#T$j6XO#q3>C{QXC<~y;Fu*dv|=mP&4#&#sOr1M?<%99%y37M&IKEO!L{xx1Djyx@S@k zZw;hty4I2f>fGVfn#(t?wwzNjtZ2};#Ldt^$pR1Z%1m17;8ik0=Qp2)1UMOWu7hH; z{Dkd;9Ur_*-@S*9AlX?1vBqEow#vFUVZ>LGDgEco)`)O4Lbff4CVMYwi$+gU-f(e+ zNg>;H`fP^=q*`PiyAV8hQ{ME)B;(6eU#89%D-{oT=&R(tQ8xM5cup^pi{TI_N+9E= zr!6Q$kFBW!^O*PY1h&{?RjgA~7c)gzv}61Tq+r04Dw&b< zp7c0`3|=saNz4oS2l%1_1qUy_;qe6-<{DL`Ic&+%q_2s)7yxSG0?lOft_jT9fbaXJ{b9G?$|w}JP6Fdmrs7vHLH>fHg1qt7HH2PIg@F`i`(6SBaO%q}6E z6UFk$mtAMJGyNx(nyc`r({%e`lo^G=_CtJActm)R8qSg6j(LUpMexz|k*UTfAuGaO zG8Ok^eKML0`h0Nrhl#*QM7?ahG~hqLn0EjVO%(qW@&97K>D+q((2zxoEy7zNqWeKz zz20x^_i%OKf4yai*}OqZQ#OS;wN)811}?KU2L@n(f>F`$msb=>MAo;UgMyIjhS!)H z*dn3eB1(hBIiADJgt*Oh=LN-2kr-U^J5!FI|%@w966 z^&iP>y{Ls=(t!1qBlCo?>m!d<*vZUrQZvME8EML~x~tG8sDFmUB}q-&%^VgBil6J7 z){&jjx_{*%mm+g|^Yna#7D{4tea!5$Anjf|@5#SI2oB5ftB4vuTk1q3EOj_-;h5lb znWD9!C&m{adwE2#Bep6Ok>;vy5`fq)5ikXhJu%9a$l;N`^=Fs*TRZ(R#1$jtGG z;RlCI`YU84P^@ODVCK-LvAw5{Zdpw);yq)4_b@TMpgT|;Q(Ue9eR0`B-=>FE?fKy-Tt598V4!EDci zc78%Z*b{tS^nTlr&rcRp#z=A0WyRGR7S^?NJ6PWhFBG!^$y@?O+D+$=wTS$Kg*qYQ ztS@(9TG*?c24bTZIc?h;?p2`t3cjc`79buazoGe<8iInZMT><+aF|9O;DuvYZFelmP z7LKR=ZLXw%6#%vlXTslY4@q|f=^_jP5Gu{s8{Eb?Ce5OJ`wMOb&;-A+ zA!ah#rs9wVv6~Oa42%JLZD8mh{(lFw*AJjCUd+tg$STZsQlx}z~@wIwdpA_tI?eML-UkMNbjGsJK|HlEIL8E}c@;kA)-G_{`Oao;The);XL zj?+#S{fzuOX^F}o#KZTXcN3evVjWOSafhnVL-~=nc0w!nCI7Q$ri*Gg?l=Fw!I_Xm zI1}+~^YQBFc+p{CI0a$3yD$@WCMMe|jY``a7`jJzZowoLDrWE@R>sbH* zCnZX1OFyG&*VndmG#()n_K0zM@&> z0AyX)L&>2jBEphVb71SPb=2 z#z&@hhMmR?&QZ&+vn`glJDNLG5|uTOZATN~GXo;Qe>Q$qh@<#;yPp_pZhIC)55&>J znopWszca^c`2)#66|}Zq`fmxFqG=e19q6s(SN1)Nm7^6%ABpSPcTzZ+=Kr;e`%kzy z#Uc=wVOJK)yeIS_0-@RYfQ)baqd&X7*~h0BnQhpq2M53K4YCe)jz8@*^O+ZR zH+mn2FW=8dIh7P0tW5IbQ0lU;5fot1zOW1?TI>_d@j4qbZ&e~=8RM(rIgraww{NB5 z7tTzG#~p14q0;@`OiejO3klbLuZf=>yoHaT;Hl#x*CeDU*i>FBLJ-7M)HJS)-19_PDP^WHs z7zF9(^GMji7?#%Ym2Gd?N}$^II-0Vl`(rU!U_i$&rslI@PcU3~S1mEaPJu@jGAC3iVBZbfeP9JZnUjSnuih z*{Rbt@-TOtm_rW98L7dn08evil*kpq5OfwuP&~K@tdy^k?tREZVu;xP7KCuehl)CV z=^Sy4HL;{b?LIo!qSujKv@rx%n( zu*}t;*eH>&MUVU|=>fE7^ir2WkYN7&)~}?cv*k0zFR$?WZ>RAhL01e&?+V%(2La-) z%KSxW*WtHL-oPEryeiVtYZJW$a3|A&0|??e9IOAKP$+euoYhXe(2b5z$MTfW(6!@6 zy85z;AaFBzUTi&0yW?AzlUd2F%lBHX0WIwyxB(i>*hUFd>g$v#0Ye;%a#O2FmlI-K z0Fi(o6F8V0L9$ErHZ!D{oN!2`y{~n22Lu$W5X>K$EhA|mO6RWoE-kzm)AuCer>~^{ zMYW?SWcOlMz50c1S(qtQh0>;;0yy!SW}VKRl{X+udRpGWsz1jEn~~lef|1$N;`5vF zud6-C&BfXHgQl!NKm(;i)>{~GZMX6BB};Ci?&92`DjWgAA7kWsfpU6c+yiTCcSf*$ zTB>F(JPX^J8$8t}MwKO?L|d>)-^Dtus3$(98y;#Uj{8Unp=aa66SLg^YBEvzrTyzmprdypOV*7EA}NfH`mIC(?NORuKci%0ohmAy^Cb_Pn{B-rX+v z$28p%P}r!HtP@e( zs*8L3566lrf8@uZSXSVg;0J6#8N+>;br4OvHvjngAc}CIq@$@h;*G;`r*`8%?SNQG zgPNkn3(hd1epR_pOMY3yE?P?;8?W#SL0LglU8QEE9?2fu{eFYzrfrMOlED-R)QGt>o7KKrQePY*E*~fv{`tAJ&1zcWJI1z&XrYu`*m?$SC_hQ>)o0UBz05 zs|??c&vC_EzgeL<_%Gtcyu$Lv{m;{|JR6<6R4N8n0gl;M;&SL}e^Sgxn)5kHpa>uM z|Ik=AcAEU%`5pe@O#fopZQiY!$(uaVbuHcgz~9s(iVN_>G0kT(lb+fbu76PoGrV7> z+{qSvA<*kR_mT8wEtaYayD(ssm4Lci-0=%bm;y1_nBAvU;iX#h{6@EE7*^7skls~G zhU^|$jAT){Imlu#K=noq=9c~?y*4;ZY($yO*AJr26+*tIbFKum5wE?8qWs@P09Z_c zC)#jR(rNoiV2`|s4_*?iXC|cL8}=9dU=F&tyu9n-iq~`x)7HTs?OF-Zm_PF#*XIhl zW90#!4gdDcE&A{1dvNEToh&5GLFpDKdY#~Xg;OrceW@BI+G>#0T%!L)1>xFA9fmX@ zS;P#bZ6bF%uZR{p*IB|QnMe+(bu7S`J6UpxkzBgx4>)<56Rt}+$TJh8xenAAinx32 ztJ0FN(^0D%j&9(%R@vK@vuuO~L6s)pN9i}BbDKM|L3fHXP6(QKtQ&|n#*K~j3N=bY z9z|3)cBh@Mc}pPqmh*AhiJ5EQWWo+OI6Za7Yi;5gVLY!DvG@uo*U7WP1NZiZcc5Rx zH^s;3VpXi9h###3_blcSMKh*DpBq4STeFtLIKK2s@xV*4Xd79A{O2q2RYLS6zSz(z z)xIud1yrG7<_KCeZgevz;<#;tK5LqZQ0^E-~A;op&WW} z`UQ-Co0BPdTZt+aHurtv#|Qb+s7EZ|{l4>s;8SA3qL9IF$|{7rzF~5blRrvq^+LdC zQ{|g*%gotm@@$YI6elN&pf0ShCU4&X7$YN;go$ehjN zj)YZRFY%vYF}|vtWTMf%(;`pyDR#A(mC?JAIVukOXf1K<&gUEn@bjdk{51gBz1^vf z`H#R%;Wa?Tr~e;i@y+b72?2 ztXgdASh@D`PX92@!=zn4{!>`!!8tVc4XOX52hY~yIE_I>9>|K~dT%4bU`$EP0&LoD zadp4&JI+xTr5-9_KX7dTyN~Q9?^~~*EEGyo@vk7HYiO=bR&9YjEh?hdwEc$Y9gb~1 zpKs7RjrIUOE;%l{0y7lkdLxMhr$Vo*+hVgWbQb2#j7a?5_;EHv%$**z!m^g@>q0f| z=PF3RgpZ1P;naa1^Lee23n{C^dSl zk*XK1BXUqB@Jw+$rpbaJ%w}PI7w*}bX&XjZ1q{8v`nP8$Q3Ce$pv&ztzz^!SJEn9W ziv8+CuNh^<2!Fo{a1eTjV0>-sX%rN5=B?(q0q|9ZzA4K+fjCJn8~o`{@?2e-ylNXx zW;X;fVeW`N!Og*Ms3srzxm~so@K(z2RD%IreybX5@6lL`|J?Kvukp>V+S#!dZD}(r zf`dv~XHXrZtPdzEI3-W&_TAWGK^+4M$pKP>i-on0wko*ABW#iw%8nOpqp*?d22Q`MA8CgXCHB zi3ETN7%~NQF4TWqq7X;(2c6NwDkhv8knt zqg%-`LeDH);yn9i!$dx!l_lPUH}^Zt)l}68X8#R?>uq5`Y46Ego)}nT0S9KDpO(CO zWw-BU8t9|FYREc8ZQVv+cNg!s)B%GyIuRX$|Ftg2SXcm-KT}L-^flZ=^USwe$sN#O za__2}u8D{fFv&$dmP&~M5Usj9KoVMd3_gJa=ZK;A=E&`G;Tc3I`dF}xQ8~F@Bl9~n zbUvnMu)`9tf^1*! z{tZe^Bp;J4U0+KB4ESfbOwt)}C zy@Bm?p0(ZWP54BEIC83!%I@CL_5|uroO1F>ix1)02ByBv)61I)WVc5x$C~t#oUKuu zJcvROfza)PU?_|wa?xr+Y~Mq*U2RAo>Fc`yYr!pr|IeZXjk=h=7+6ucwOSmGkl76W{^Vp3R7?~j7?f?0eZ5DA~_~9n4vA*L^rsXMgqLrj_I! zPTJa64~D_@pW|9o8Hj@E8v>Iv)d=SPA53NctMZ$v{(t;PAX~md@|=33uLxEsS)fU? zCv)y5ZQyJBU$7~TiHo82`H!{4O=f{!w&K?tr(Lux_dObuNV-u9bOwDrz9HG#s5Jn3 zbnu-NYU6KHHGJ>M4fhqw!=ritFyNzw&wAoIW z|ID6kJdBoM)Hvh{=J{bf-{a@o;4cQVIY7 zZ(gjJ+g19!#Is(``xvhij^LU@DFwhYdpYL_?jG=vtkCp9o;Lfot> zd+$u@O_GDoKmDL=OPl^zZH{;zqO_oG3j#1_yF3{3uj=S?+-e0KNwXZ(Y+I;``U#m5 z3(4S47w-}h92CCZb;QVGe-VxCZ(|mB)i8-w^LvZ8Nky~xC=nH+vj~P-i`{{k9MpLo z0^QQE)#x1~%~n+OMRs?%$=g?}X>qpl>E*_F>0+cMm{0tdsDIz0`I5q`6er{lJd*>J zT*e{zjnVQ5Vk<-#|`NNe4$$ss;af_qvO<@Ls^!&Wj zx=2E9YB+-Sqe=u1%IJayE3sG)Uz9k|;iuyM#m?{xAnk4t>SS^6aLjX@<_l`J_%gPT zS^*SINbc!0apYTYv0dwIY)`}HH`{*fSw=zh=nURJaMy8|$&8`nLk7sQhgVobpo8MX z1LVX;0E{IoSe2*oF&BpJDa3wW;gZ(1FvM&u6a>P^iQe)6saK_6p7Nt7QxylOx(u>J zC)bZ~Ko<$?=zMZN4#ibmu|%@iRd*Of;pdVfysKD^y>-}4$g>X8nIMlOCA^iagapMb zo~dP`f~d58{@y)J!F7f} z_TFz$2|@8{XGB?Kow1;4Jzo%MmJNhH0{Xd{PAk8<4_Ah;$REZo$;FwQnR1E`U4xRo$?5ZIux9gu#H_2`~1;Pfgy;A@r( z@Ov6|hIk%!p#>^O$uCo@;}N%ucw*E*!@+FHBl*?(wCMWG9{YaJN4{8qGM+Pj7d=O- zs>KB$b8ufG9zWmC9;O7qi4rJNx9xmbya6j^X|N?2gH8Ap()gmR*CbJL6f5MaPBT;{ zs%-GO{G$xhkNm5Ajc&-VxU<%fvh4_3j)rEQrh9nx4r-W|!6?qziE40^x-%l7?W*nF zftlE#k-p0Jbq8g^Y?RP?!I6{MQS|C?GkZM#i`~u+5aHhcF?WvW;RTWcth5#Sc2A|@ zF?^|sE_n+sW}D4eAXcS8ZZu_3>=oOGM<#ro6I2%=n3Oi4vtuCG29z_;DE`@x*MAEm z)P7sl=4z*C|77^P==+Ee-e3p!!lOZul5{v5-oWQI=X19z$)8WoU3XSu2Z^X{l2EI| zjTBz|@eoU;$4^vleX&Y0i)?nlj^dl$VA!eP%idJQX886&@o4obY#8vqhSe2-B|O+j zCt!LR-6h9PaEU3{4@!W{slMT7(i>uemx4dfl4VC;81#CnT^Wjltu9u37=L$tH%*>| zgA2(j2J)utQPXfkD{l>jL7v%YzLQSbX=_k77RiT4Jz=+fQzG@1nfIEcb#O<$L5JXj5h-%f)h`o=p- zbx6AiFmoFiAJaKHkug2gRo#1Y`2bN*S)@2WhYUWgi&>U0XL5?2o!4vE#FSJj11$IZ z?Q08}2I076LJIy`u*W;R5W^wkFgR+pK)>)IBCZ}L>Odi!7dQZ!XXJQm_f>}&z@=tL z!U%bdL@9awik^OT1{mRhzx?}r>KVH&zp6?QO(J0(~`EQHaQED>U@w`$mPF;M4dKF#j5ylrU)^L7H zAD?e zI#>O=jeXLjf#*FN#zv@l`e1IUYyoKNz*nji4$dF~tI@^Wi0wt7r(j|<^f!)4dhA5~ zs{EX-C=_buNKDiCOSdIjR{Q;OJZg`Ez@sJ}BN8KTE`gnp_>^PFD75y>A#IGuP=gz# z0=D{9!#R9Z7_F<45!WynywE=cZB9l}R3xRO&V+6bEU9w(t3!~36AX%tA-S5>C zFi?=xX(`;V;o%2iZxN7ClGjyWMSUc15oUn*l1|d5=S0I31b5Q zRI9z<=);J_p27J|bo+R7K1;_(YAXHL zA2u~y<&dtdbg#a@yh9T5rk$^eby*GCiwwnb0o?P`j_s8#Zh(WvXNxFr0UI~VvyZV& zCZ3uA@|8HCN-_y+xw6EXhyXt7OY88+d0%SVswnR$n<1;feF*}362|YH#)mo_ST_{9 z+cAKL8B(5%xKr=_ImJd@)NAa_#~+E87e=-2`C*r*VB9X&jj#u2_GDVxm{7d8gOB>R z0DGZKn%*_=gDGV6OI4w_v7wC7UxMnCp%l9>#W_Ak&2j^~iiD&aW}9s$-0)IrPwp>A zV$S-KsW*KY!fDYAJP9K>p*q0+>7$_UjE^e38U^0dV|B^%@jPqE!H0HnufLq8)K3%B zkFnPL6ULgs z`gV+!YM}m^eSdJG-nbZVI76#Wp|1m&;w`3R(_OpZL`tXk(hs_8m4N=+Bd@ntkD|Q~ zW;vN~$R4-C^bW0l;$hjv-(%$z>+$ze6HBP?DCN2uy9FPknf-Uya2)F={<|3_tOx#S zCPN>|Y!(my6%nu$=gi{$d$^6Tc+{V=-TnGK8h$3BeUW_Z#Q!hs$5b^B-r1NaftTB- zr`tJN*g^}9B_ZPH)eKuYRih({Z6`Z3I9vK)CT`xxfkJ2sUUtxd()H*}Gh-p2ndos| z*dZ%g*Sn8rH9!8!+Y0RSN511{1M)7DIWsN(KthIVn5<#P7!#b18uhgl9=;1z(~R)q zZ{91?vTFAe3~-73YVe{Z`b2z_Xlx3ZGlNNAW^gmFym&7GLR62DZvpG#io1LG_YvqY z)t}Hf{??nxtAqAk*|CaI-YQLn)YXsfv~;;pRJkq1$r41}+>u6gzDGHf2PE0(s9_hD zRC=3?VS~7w@_&b7-H#CVp=(=^y;tC5RzclpSe19ElIS5~v?M_x9baT1@FL2847bRy z@#Y|EAz``OsrB6j>}^^!==>9M2c)cNrFa-esg6iTnUPPToz8;4$7Ngk@y`7^hg8yh zz{CvkTI_!A7Y{|Bcho}`jRO4AnBFaBORq0yB90*=ti1&A8|wz?Icz*MVWK5SWS2-bz$^iH&LzL@BG z_Ew{Noj5=%r9Y^F$qP&#nT7Mk8?999jaWz+j?N+hhfjlpxWbZysDy7w55!|v^D`{m zqx9+!niAqRLFc@^rDd`B8SRFpt{Se1FGWAFO{j_{XoS_A# z8Yf9nWXpO64scivyrjU;RPzQ^(l!qKOS?B{800`&GYu70{@K!JN6(^ZSOMMU)4{bz zfLCJTmVCLo|7^a{1ZgmdRbbJLAKeX_+JyJ=lOmIQRTaPJ4B@5>gt z(^u^6;>I$>gI0ptk<6uVrMsSQ!t;Z**#^fV{!h}Whh(rWqUv;vjt*$X-=1t{3@4xl z0MZnyXxai4c$HxPt5m3u3xa9_E~uMDU4)7zRi^Nn>$J^>FoxMzs32U!4lgTr6fhKe zsta$jtk=y``!udGA=41MNU&c2WXNGyh-lDkjMg^}>R;k@K6A%~&iiFT6C3n$=xjm# zzi~Eq_R}-8N&!&7E|g6FYiC#(P(4z>^_o|>7c0I}8*?0@F0iLBU%LbqOH6pI=4PsG zSTv-bZ~&6Y|LwIS_&RP3q+gmNK=kv6A2b{D@)fHdg7fl@E>P!^sO*x!060ERH;Jt~ z6E7wCxT}q(o==@ECN`H(HF(*2njZb<{Dy9kYzAb7_P=9TsDc-3A=BK9nQ*Rdwy`$5 zyq)gTaI9-33SaXE{c)^ISY;kw45cFv-_uN=KgP5VD8S8M{5NEnORG61RC0jA=|Pcc zxn`p8;o{V@cWFw)GJ>idu#FOhNtfY=cO%;gu1k&8(`ZCex})5J@2&!eX?|&ci?1o# zS@$U0+>{P$r~D^v(Pd!2tnvjTS2GnowvK*myn`o!Xz;1V_At`| z2#BOz=9CTjXz7u}Q2g~WS`!X>W07aDHY!wA1KS+)Z7PC?=!~ytB0FFk@35eN;LW@B zn3@WBPIL3wI?GzFONw+4u(5oXDXLAV6}zN4cAOqx>{jwQQ#>m!q#rh-$xMgBJF@yf z6Jc$hqlOCI!`{wGRx-)`4d*M$#PTJVESR1IXS{STQ0<2C!Ofi3rk}GAuQ@n1vV=gG zJH)7&v$G22q(w4BE7QbB>z60_ zJ2RtydV4QNZ<&pUq3HRGlyxemW70haTl!NvgZhWp?pl4{R3YD)dO)~EFaQaih2p`Kl$|CgHN{}l_F z{ZWGm@H_%ht9@mIjVuMl(XflozyPo9hoVO~#KvsnK>oRBdfTt#Ro0_vDZlB*ia@el zw|PVQ55jo_;4V0wRG^HX0qi+fzPBDplvpwzFeTXj{aG1Ew&`9m^0rZW5SX@V0g=v1{V`p7v2WQFne>Xe zu^OjBc!iv%SE(OZbiH&*5$JW}U{94op?FPf8hwSTn1K0hLIjBn>9+=)Xoanwx%CR* z2u)&r&b7!(odK0Ut1DepUJ7 zHJ*ygSgD@G>UWZ|6;D35+Vk+;Wlm%KuV1wunL`WOyg!?24jYF^w8eQ`^iZ;FUia%s zKVLgy=3<5m$#Q>1fn>=mJzQyGTZBJ%>;TNt9vKHdf0&6MIdZT!_X#BSR9*xq|0G%; z;PJ_wLI|!&nP3rzKb0Z$l+SrD|5dC&*C-<2BZu+2-BGE~yUP&qT>Nd9Kj(CKH0i#A;TzfTorCr zzen=k)Y*5Py+s~!9kbOdpOEic4Q6KyP!|M&4hRP6VgX5#uyLq3hCot7mKiki{B0|A zW3bR~CLiP{L>G9u#$e7W!e>|$C7WwQZ6!~6B3&p(`OG(z;pcPlr~sL42d2G^-la#( zp#__2e(^Z6+)pQk$+-)O0p(hQf8sOTidVU#ahlQec7BtyQmT-s!@$K~fyW0)RX41X zj6sf!p{I#}E4Ki&!E|liz^gqqRex~+QHz-ZN;6dQX{5ssbr+N5yV3|3dVA2q{9YG2 z^ke_sW{C05DSwE1Nl-PAP+BXnPL)butoC9&7*#K?)q@k|sWE6FV!SKAD2>GgTTG>A zCSk2$clIZ*{#iFpq9bL&$M;O_k#wtuNhU2M7S5VvsDx5$W*jgB|D-Gqmo=?E@&2PEMzxZ^#nK3 zzPpEe|KHH#u(mrBNO;k4b80W^V37_1r&gOE+0aYwg8JJ5GXd z>P!u6b=oq&EZ1tJR^5g7PeqSa4SpRy7S>~2AY!50gz%ZfN5!(ZQS2jJGkD#|@&W-I zF3;Zfyb)6GZZ2L`m&2Vk>1ww!RK!3p0sXzZD}hNv4i*Bo`xmpHc@%c<;U;HiuoPad z7O`DKwj)A#n=qTeP8j>$$HNxBmm!z+ZqDyXQucvB1foqz)Xdpx1f%Py?#w$Q$1>fp zk~>OH^>J?M9CGSQ!-g=@y9DmVFSA{uLj5(GE$r+^6wNAMuQZ=YeC1|O3e<=5SIo|p z2B0$5+xzIywKsNXmp%Nr|G~Je0&~KFiteIW@(!K;^$eo8h;pX%-H;ZRl0-P>brFl)p03Zz>sHlyOd$&KO*NPB zv%OMPAHh%r5K^@>LzNU`IZ-BRgGxRY$`lLRJxT-`j7vEo=M^B;AKH<)%1i#jCnA1< z;=d*FR5Afd50Uy4+eB}DDM9c1-ITwY4H6(-cSApwZ{p^rsiPU_1Cio8;f- zMBVUvfGZ9E9nFOFts}>?(4b2&mVek3p5u3XFw*@;Ve5Uyt3@AWf*c~ieP*{dlA2k( zN0ePt21E_byn4wlrB?duB~@qc0bW`T){Z;enaZD{uE3u;z;+edN54~uy?6)~xGln% z0DJKXFTRAJHGpR6XNURZ*Z`U~6tsS+fwy;AFTdYm!6z4na&#)Iy&;^~oL!Oz=A9S` z65)hKZiP-bM%JzeNgt!V90D*lAJK?EhQr|UrNm(Jcu~*%eK!bhnbzPL;}2!eKBu$v zv(Aw8mmnx22wsIA-1d@wz!z(Wi|^5IyhoNj1N2OUGOD+JR*ASS7Z5-luON z_D+}iy<(g(ih}O1!LaLOBc{2%sU{nNqN?-av1zO^p1H56US3b&}h|rIocgJCz+KlB266dR}?o zjLu#m%5WLfY7GN=@9p01DY?XS5LgnxF`{fU7y){B(|PXY58Aerg0Bx?r=eU7CAXPx zLNS>+#-UwxX=fAF5azk`7o2raO8IEW#nBukj(O7DE)I>au;^! z9{1rMTyK7vB{4H(GRkk8k>tUL_2&%(&+s^*z56ry!n*=S->ggd7e0ybRJ8Dp>5Z3v z&lww`ZDJ$oaL}UC)cUogDZ-IB$KBTQ{3p)tFh!YxHfr;&_i;7ltTszP-cC{p%|{Ksg0>J^2B;mqBMz(TP#o-P{c+CII$Is}Jd=W-w_UgBKK(RBswUAg{SY zNKm>E#t#8nEk5mB1c7)q+NNYUMBmnb;-a{bDspK#s|@~5;i|d|U~g?^zP=@m=E|{X zC&<3DHP$8c)9za>kL` z#{WlgTm1QSi%(MqO=!u^4aBR8^1nWnrmX|tGup9}s+P=y!)N{NP8#;B{4wg{&D%o! zChGDmy68(okMwxG6qm9sr)V4+=_bZ+L9}tDyM-8P^nyhkOKTuZh%|{OiR;;$-XQFa z>#d0sgSwB1uv#H06m?h2-;FK6GczNf5g{vS%qqQgU3x7zL4wIF2F?GC6;VgOkPi`Q z(&8CavnD<{r!;!H5qM>2pvr7UY6Og54Mc)6zv6)qtBZEwPfY1c<`i4)KR4M&S_6ea;&gWYEgRiWV?r zaz!BJw|t)7p3MXV{e*^QJ7#s=u%l`*c`s%%$Ha&h2hPdIK0`8c;$(+*<)kMD93*eL zrX~>`P@r@m8F&*T1ml3=(p~(p#}nrJyd4ev%gO(P`5`lXkw7qdbGVT1z$g|nMeG|@ z#L}_cC~yQd!KL-JOf!AMpH$Gu7*7fnZAIL~^EEWd6I5t{P17qr%64dV`kEqi{II?# zeFnnVd7ghhiBDif!9DaBQ<2v7dmTzVy!*J?#Y^%pEW?RlfgjeM^E`8roGLV$VYX5yWzFa%e;s{>CKE$Ut# zY5Jf7U)vCTv&JcsO0n+2ha$KJ&|&z)!hm#sb~MTp6qJa=JA-5$1~dM8PU`v8m!q{} z;B*=#F=_v)gnW0&VZ9suaQe@0301cR@OuwZRMJX>dc)Lc1>wt46wYk{T@HgtHo)HC zP8&pTUSi_kvg|F3SWCsnC7)7VUg_rKHlPH`fo$7LbM;I3EL7y9wAea5M;Sgk<#1S5 z+)#RoZ!vmr-J;pTq zECtSBn*t?Y4 zhJ#*VU5JeRcQX*hlOI`Yu)4L|Isd86l(SxxKJCE((oVhlVkZ}IUoInU3^k^hW2R}~?V=h(FRQUGrj^pT-OW^VFsFYDmW(&PJZoj5%z9`ZE# zF(-7l3!3zU_o+x2Zw>kimhXO!`JSnqYm)u@YxIFI^{oz%VZnSs-hGhVfjHkncPSkX z{y0kS-KGSDfUtSxD_LH zV-#k65=egob}r@zHM~{q+lLe?P}43K=DHnvf{2BkiqScnDYSmqPde*en^<3KQwoFB zJ%Q6`&tjI${26X}FMFDPdRi~>8g6#RD@gi@JgpQ?zXXP#J_@NzFkHWP9 zN!%wp#bK3jw-u)-gW;)9-LWU)ZgsZhR27FWY%-RR3{hW$;x;j^4PWy8o?uwt-i#7T zJT<>_e#ovhp@9uTSR{RbbecRhw~D{6z)<2Lg(^}r=MrPm=FKv<=v6Md-5KsUaCGc=ZRqIY=((<|cCi(m{(_L|k;mML)f0gX z`V{YiO08;8bAxF~wK>UX5Qi;$b;Zh7pI&@Uw&u>)pI8WRA(CF>W{~GF?xxZ$ulkvb zIw;butChz_&=nHsq(r;ur8jM#0*<+<+evn)XIJYKj}Mf4?G}1pNx5+9{#m*zAQV~$ z1TaC;c<3FOLALN5<&^qfoANJ$Ac9(37eR*eMT)NEqeT0+NyMsZp#aPW_#!((L|?va zKcIQ)xWUDW!Lt6dT%=@+sqGFs@EZckM45YI&IA=oYP-e~|1q!M&I+leAvgwOz%?e> z)Xtl}ng2CzQ$~VpStu;(oOw91A6dw&VF?2!e-Xs47uP|s`O8gGO`4_fpr!@j%VaUL`52$#;RuLAE$HwoS^;>GFUBvGImSnXOgc3{ z6>0zfs}T#CWd-|$UqB6-97@8r3=<}eK@$9>g16Bu$#Nom6?`oRcBxgE#+9bGc>cZq zNbg|&Z7?K7M2X1jT^S4lVmKFU{6%&$r7&s#r?SZ2fGtFq7Q#ZnHa2CYPwnnkTcRAB zvtbd{gB6zO3}uhYw&V)jSD)>8!tW;XOZ-^9 zcFp@b3;O2fUZ9u%$;p#=w0@X8;FAi_aIP1e(DY(BaSM{KG$zJ-_}kD?y8OrU6QxVA z-eG2!{xX085W7t0sD#nb17l2ij8o4@4pBDhfDuu|g~U!!vt+yOW)aa2ajLyB0C{XO z!HXh|!@)~9#c3Y$HxFelvEfrYUazIkr7KYH5dZwUO4(ujC0~7jquvi;Q*wR!U|#)A zoZa+TBhY}>8d&s zndW|n_aFdXc1Ff10p`edBCjzzo?vz_a$ZIXR*mt~0m0@wQF(ZMx1f9}r>fs&_pDgv3on&eTLVL19g(5~?o| zK~?bcHymH{sVQGM2b(7}k4OclJMX`MgKKukkWP*@^ z@(8QPRiRc`@g(KcQ})IsET-!bFKW6T-Mp+obNkTct7uFQ#-*5o3Kpuc520p-UhL!` z5rl?IuajAJElY2nM#F>XI!1%9Kh9lfaUbDI%LeaVagOcK&J#`oz#58_QOGXDxJ z7|xJE8r{Bc!2gtAvo(8hB6%vDy-ohp)tzLl=`=~3uEX!ONQP0imP*S!*R1)5JgIe) zZ$-Zb(GaRbSV!W9lma1KG&)~8b!psQEQjOe*zApjzqc|0e$-eWO3Z@nP^RBvnJT}* zOiwZ5wC4F4dxb$GX*>ao>>Vb|8Tlo*-+tC5ZilC)!3XT{Y!m>po0yK9#$sF|f`B^f z^?RQJ(s2o=f7o0CKe-cXT~L+HtgP^w*2YVZPiK-*zSL(}6%5OXXnX3B@82EKU7{$N zU*pQ4Rc|)t__McAyC^I^v{b~TjNsEih>MXBw(C(p0OK}(DhbHnVYEVp^PHlkw6?+= z#`{gzEHdP@SqozLD!+74X#oo|mV2>KZ`KZ6cD2hGt$%05*MujUO%sze0J*tIAUdQl3f&54d{eF<&M-?TdZJX?4LQY-9FuX;fy^zAKe+(CBH0Usac z$&M|6S2Z{KJS#JHYtD1UV-e7OO$WK)O1*)tXoRx0by&nxbOIrim9(Cue;7j=@4En4 zt=<+gD1~q3#Zz9&NQJRaVXlf10J>Z0NoGir>55+xFMw&&iP~LC>D>@KS zSd_HyvVB(GfSCJxv~RAhjCF{S%@~?fhovvTR?XyB-{;K$Oa;X#w`#4C2RlOJuaRYTU_y4e$KwM+rD2)X5>iN}` z7twaYze9JZ51L*Q%vq6Ub?MWA)#q^9;m!7;je@wAybq&mZN~r`pDl_E(pH<-tsi3V z6yZ~#G+}kM?|`s5SaSGq-2@A7j91ULyi=&-N-J73hkk@S|Vd&H_88m`}|iE81c z*ocVV7gM46ai%+^dqmqT&b&L+djeUq@4kt$KzJCV8)K@#Z;YVzP*}U*BZ|s?`xt-- zELUY(HTiHo)fVD=RQX^yEHK&osUPY%V^&Qn&nt*|$AhrAu17R+>Fb*TxN!XT3uC53 z_d!>;ut$C;x>HU`I0J?-CDwiMo?e1m{hvD&S-3SCXJ+JkME%iIiArFVDAsQ&8-yf8 z_Gk7S!EdheXPykhBV95_DY~T@{@P(%Ln(fbKzjS_?u1XnwS5fP2!MBHc?_i}^7ySR z=I!0C3+uE_miXk367;BuD|;OC!1se9S9(^*>xZHD@ij2~=i||6wYFL~k@}Ojn7XUD zq+4zXZENs%un(2axfbt{@K-_RE9}WFn^tSQbj*rU9Vq3@8)iF96@QWJ`0Wv)Dj)5J z@!T>kHoy2!(G?(l&c`O1RxT(rF+O^tVD%0%UZu8mhV4Mz_<)2&FD;eVBx31DdXDE$ zvZ}-(`wztaLGT1X5y4>~^?m%3-IB4I53~e1*$m*2d~*|zB72(-u4Z{5jBn|dgo`I6 zvi6Hjdid&-R{g6a5j{piQq|V^EI8KAR!m*djpxd4-4AHKu^YG@WIN3^XC;S){TjmB z#9bPqaV6oHz04GO1wL5s;mFb*`QmXv=oleu-gT@|abXfnOQ)ZpH1ZOz?m@<*ed;@{ z3ZWsAtSyjiQg`vuTZ7xDj*TS*5|p$&w45()V`#ALF6S=wxlGZ0h?`tAWISZcQF;%y zuu_!`secf>LBzK@M{`$lO@XyN`JF6k2M| zr!KUj$<26?+YY1`B$qE0j(%yVjd{L|4P$P^RP#lg({H$O7A5Ha37x`%d<{GYO^24=l?0M^wAaWA{d#ITh6KHiYQsfL4D`EsRDaMLAVYm` zrzE9B6pjy#;#tr9D>MYoKvNGk->ja>Z9FqwbWAm{<3{;oQ)SbwDl4pUgO#-E=3Szh zTCTRdS-9VR%q^mYrK>f!Ya{s&I9W!YDn*4UkTByLauNS*)kI;fMcl3?{Q6 zcbtQYHb;9J5utN^HUur#T9N@2+hFG9tLq84RXejgAxG2mTvB=}^x3Bu%RA z#U5Fg%D@$7U>*nhM@e?*4C)#QLn|&?aP5WRRYMpW8iWL6km1%6eZR$zCGQ(A*YHg} zVzMyFSczxDPGaR-5deYmm(xH8KWpRw(SV_~>u}S9SytIAX6=t`;vW z@vEa$E>87!TDXzNbIC9#djYebXE8rU@F;oKTj>W zd8wpkG`m^uMTz*>Yed0A+v-0@1r*&;A_*Y>|G__X9a6TqqJfr5%FOV~FPkTb0_avC z&XKp3q~A7tPqzS(8ON;eAKb*Ls!cciPMLxLo0;4QWj19iQBx@V`J!oSBLi+vuwLXi z9%>^fLD`!HcAGVs{vCX&iPnC|0uwXi4X?>KZ z9S*+luu90&VX@oku`CSM2leIE)9F_{X+QsNubhohqE54&w$MF-n%}uzW34o7k<$&F$8S) zb-JMG>L0nss*1QklR{zWgU6-PMfB!OU+5}`A?o$#o z!+;Db)xVjKbho50Jy(;FFlUWgY_-hKb9z`rKE4&^+KfdM0`CdJM02lTIlsyZG^>y> z`}~n?G*tr*??9qrV4j&2t)rt;=6#^-v#_p7H-JA{D%U{m%QSha()zS}&PLf!4Su$X zy!oA^Fm`|`^`iRF$4i4rnH05t1#o-{m5O_df-Lgr-PZ5KaD%Z?XBF!XX6WtRY|mXH z!)Ek}#_+0Py*!UAk@_JvrM)J=(C&aSvgTtjgBQ~gJEgW?_VYpTh$M7iG#LFRs7rCw z6b{1KL*ThNU0iHO^GP`gJsgph6gb54ZAApx=?a-XBg~i(J>AEBm=;6}QFWHpK)On+ z%Lfe|zvg<&9%NU%48(8EraiBJb&;%4{>icyWOsNRGvK*9)1pm(ZTXAkeqIB1Q}flj zqS69*ZH$hgZm90SVe;bOsKmRxNvC8HD?R@&sN$;%M_Z+e2L>Cb#(0#=hMUM?IXV8F z1HGa&!w|?k);1ISpwj`qGSGW07N}n;09J6?i1FIX43|4q)ak~5C0p%|^3c72l+%TI zKOMjNXxrC`@HdijwrA3=G+MgXjv?$0lu6LbaeN;md!s}I{c!m3oj|4{i*l_gmOW1b z90Q5tzrxG?SarY9K$Cs51cQ#N=NQTrS8D^J%fxi20v8fdY$%_BS&@pc+ycz`e7;wN`u8I6Gjg9aLjonsx=~dbABTB(zYV`C|^##(i&w{!&%BN-OQq1Teb^MTs zhct0P+Xq;IM)H^=EMBGLFVl+%o3zCzBK;r*C#6Awmcl%XHL86Lun^>&WU?gApi6ja z0nYiZIJW;MX1Xavn1G{tfIP9fGqKII0!ODcraI+-Hp=Ja<^g{b6XUz`V?A6W}i+GKy5P z#Yfz}QVf$kgiA*_G|};o_*Z6@SR!e2$EyRA4s!b9qiZIOevYYO72 zw6FFyUmzE3XXmxs7(5Pmt^VATs^Jv0XiwY^2^9MZUs5 zfxXUE!F>$=st0zgoQE@xKiAbpJ@rKp_P1>z&OLtdQ8@_DX{AHD_2k09`9#HY2o-s4 zS(QgeN109x+#+EXTMHsi(T~D#zw1KZrxZW?1nxU$ie69TN&~RjU$7Esm#ul9kI{7q z5Z1)zT6u>!>U?gQrdJMWUcX9v2J<<~Jf8B_9~#OE^E;JejgLLZJBDc|s-x)U7{f}O zyJa?L=NYl^#izE7CMSLyCn?TW|mX5{8_>>{R}Zm{7({;Mh5x%gz^3HdvpF2!9+ zlK`B%ZFFKc@nAMVPbuIEl7u#|$V8)nhBnOIC00sY8pmYQ zpiyeQv!~CvlXfgugz9pEtF~men==|UE*Cfzp^~`mtVz?_BD|q7G`fKE-C9dH`<17qMCK!y75zrdQt{aM2-i9Q zp;6qQ%5z#i$euz`Rb{fr(ajaDL~Ty9?W(7+bHt3j4n}HLo_IBUn*@`w)?)mk_@&Zj zLR*pHqC_ro3o`ClP+@ZXFmr=bFC=H*ZL@)q10<$&V)ek*mGgzn^n*-{^BqbvuWij! z3e*C~qZE6`nIrs^*Lh}V?0U~7 z!6>J&qIcBwMyRVycmcph7&&PGb43HsADaD@IUjREXOAQ2L80070VaBxz4acoP(V(f zB+-&o3vXdS>+dGC1A7ovBS)s)kfSS8`vMmZ{cRHA%2isf1kgPt# z8lF(!2c`r0^=m;Ky@c-5#i-Z0uq7{fFF#$0bR@=iB@XbX>TPYiTR%U&1I*++)5y=alQw66<+weYkV%wSuR$%UwGD4IcT0xV z#(!`%S5c`$LwIITDxoVBA#Y`SO7{23cnizRkFeA?z8(r$DWg<7QNHpct za2LZ44SP#Xm1gE992P)oR5AkvArau-*Ne|Q*$`oPOWlP(y753x7>(-haCVtNX_1=o z3?A)0%DYoI)fdP%XA9XFol~61ctrpB6E#E=Dy)THWnZ=kUu#WQbEl?+SF|XjD3LV)p{(4?*LGK{13|z26>QD_=7`k+S>x#&jgV zkYK|hTN^+$L7*Ec2c{lw-D=WPgRB0qb=y<-{1VDd$R!m%*+r|SB3ah}`u_`YO>Xwu0oD6o^|E>MTe$jLS{gFk9@rq=tLC)#yZJqO7} zStU(SJ!T_(J;YCh^4aXd<8}SuTepH$7%@R$mWIy~Dk{@hfw)Oh`QdAt4c-&KvGh_gu1FeE(1!ez3SCWN*=V5uXlyD-N$cby}(mTwaRC%z~9v>ZzV0!`Sfw z@5vnNcKf@&uud-CNcZf|D`1t}6-WUAAFn%8_s)&DU8805G@ISOSr5`#H38|}4JcU~ z1^fvsCR;|rl8>28fgU`yCSw!{k9m}Ia`#vsJZ-0B05jQf#mnAyxgLAPF%@CBC6 z%&vzBPJu3&#>;-F${t2B(-#0~-P~XTJ4L}ZS&bFYShNV*rN+B>|MPwcI)~w8Q^U6k z!8YGQ82Ygh7xx&JH^go{f;06&jr=VHMFJU^z*4rQhSvDb&;gco0>}j@-oM+8b=cH`cn>%t2zbgqoWF;LEnw z(uRiB(lH0;$}piaRJ^2$55acAb5T$cYX@ghzOeZH57-L3!k*LM$Mr`lNR=RHrBu)id5QL=*-)F_BOI z-n1mSJ!2<)Yj#*96?vo*!W#<1u7!roVL12r(U#~j)&n^SqFnKZfyqAU%S}+kKrNRs zsGrZpc6O|8W(~7PaP)kV`jgdEO%uh~DaxTrCY6DdD4!fFHIFM^K6+nTwdN(0(4lAtzbXzAexlnyObOse~Xgq*-#W@O|vbs=~A2+L=8-kRjPvli3igR3s>2TDZ;96uLU*744FUVUr{_Q4(6H@ zcRPQmWBs&cgAX#piJ18n7r}&|qE$db3e$6E47GbWZ=}o`Q?!Dvt6FVaYw@=Us|Jrm zToPvXmGpqI!OIjfVfT4}cqu^ft*qf*>S@jjya-)lKSA29$IUfx+8oJ(r;fS*_Gxj& z49IOAAanv+Pzf_@#5o)q3_ zO4!4@ame_wiOW4b6Ag3nfWsnHsQ`Aia46**}xP&F~zarxXC zk2PE!eg+TKy-i=&eL~QGE(wv;3vuuLj9n)pg_WY3C3AkHo9IDB~S z4?)B}3}4<8!b-bSiO+ZDHCQ}FxSd}^{CYJI0jpD5$av4ct=7La!nY9LvlsB!($#J} ziUh@G&ljl|$=`|3VIz{xhfG43`^)_=*2+P^Q90@kZ^DOhLTAb2D4QsGKhX`mq!T|Y z-5!}l9J{4h^|{9pNonmnn>qj|{`X7cbsX=})yPv-7B#3SavR%&k7R z>S-RFs~H>~Ez%|NSvZ6xlT(gdeK4ZoHvh=MtLfllfa#{Pz>?m<~<-pHW!PE7t@qCd-%1={~5VclOsj1CB_7Nu;T zun*5!QyN044tP(jc)U}qTD6Oj5H5gv*fZ>f-VK7tvGZF;mrdL zQ!rZK1ERE7)ej>TZr4T&?cpGUw>8W)SbE=2^A)= zuIpyLt9dL==>PI9Yym9LafDKvKpeMWb?g&)7_RL!O_apNB$DS-M8(%gsV09wWoH)w zeq-ChsAC;vF3i4qU9N)u)@4=rsO+x+2W%)~;|B0XSS9gIzMCk95ENN6edlT@`u{ZG zo{wO!=T?ha_Jc$+3}VL>e=J)}?E2)lB)%Ckv(cHIt*$=ZqZVp(u$-8Zz7>XeC^Hnn)W%E@e|Kj%W8%X7MQiIpqk1QsL;uOlmOVK4b9 zFDbvGtTRO#+G(8M@uPDhaiWLWxIlD3=&>t_7?M0Ql_7uNBQ%hrjvgTK$EG;tG;>Ce z0YG;gRhD;Cv4!3$)PGsuxz7N{K~0{egRJ{1is^H@QdH!=4WKb%N0yko$+z_|I=l#W z?0vr+HGyrLYME18jUV_G4sv1FU`t+Gyf$IL zKs}-QQfryLE<;F+5t4(RPIp;(-c(q1WfDt#*o*bA3=8FzFUraX%Soy=(S)}p7jOK9 zl+L+Vizemey(3%e#zuET4eRCb=O4=gaZtOoW7B?fJ;XVX7EE~wIL?jf}D zguwHa=;^3fWF*HO8>?TdgCkxJ@N51?6SiateEgKrjyWAW7jlV2t8Lil{99LO>dtzy z6;*3&T5-FUS(!j9?YPROpv3wV^G%78G_}`Gep7cNSyic4l zj?4i!yB;DX6&}Bq+>i$Zt=_3ku+97HsWfK)TlGrU>M&vW(Snoc`{IgSH3`S&+K~fi z3)B6YE%z~PRv}@Wg&ilwzdg&N6Jfw4p#yO`AS3O{i=eQTon{y7Q2qAVFwUCC58fCW zdJFrA2q8lwPE8hQ1fcQlQgTy|#|zQop?M5>WxaM?n_WNt%H^SEk*|cCsEO<|$XCwh z=LU5IoEDqNHr^$k5%Ry{qpfB=Or3a#J-Vg^B^5yMzv2y{ix6V~k%F!YAZb*OzCVlD zSM7%bqY?WiWE=h5Yq^XWeB{yO#tScMeEepXog35hQ)T%komc7*dIFWU9cxl=8Ej-wc^i$(uC7uhoL+o=!6N?t zsmABi0}|9-R1Ig!RopJ=pXu-Sj^==1;}LAST<%^ecONVn89(ERQ` z13=WNLAj+B0ADO1*omVEL9h(SI1b@SGkZUb*v|}X&#HT@5}}8RP%eluMX2ZGqwrAu zZA$~LPyeN-!dQEI`!@%+#grYJ5dsDNr4E2;Z*y$TXR>!&S|B7YobDZo;hjFJC~*jp z-s1ozy3tw+a8vqt;<$Vk7Y+!cD68~ml@LmbbKqU`IK*qD=t^Uk@_eoH2RK&HeGe@X z0b$DJzE6Dpr?HS0+i~^jb8KOzs%TaDfS#|a0S{>$B0|z$aiE-K?b%kt9;6E$mIBNv zQ?g0T`Fl52;GLTSqU}5@>gked8QGe2FoO2iSxm70*VD8j5xreF1HhCCM&U}RO%P~? z*<~1xTv_f1m}#4@^Unin_?o3-$%kg*dTeuz@1W_OHXYD!fkk}I`XE5h5Hc?qho*U+ z~!> z>GL6QkCj~(4PT8duSurrvsEI-?=!~eSKi_nWL^dRDlz1GRfUDMjBd!QDWjjTB?455 zjSQ#|Bn2lr_5${tOe9w5~1QcnCU`b|FhG3-NWEoxn%)iF`xWu;x%-3Kh%1GfH3 ze{Q7GlkaI(2}Z5YQDNIzt74}XVa|Br0IgK>t6if+e)7!vha|d=&1K z8C|?)HHq^fmmKydhI{| z*8HlT%qZ=9bgU*wp3BR|UmUjN?-yltkul`yN&cyex=Mj^!?+*swdZV$&ch7h8BO~6J!itR;I9t8^ZT%4S*>bqc2*{RPG7&WqnLhJN^)2VJrsMy_ zYg0Rb56b;LsCMH4oU>ep<=D1AS%G!1iIldg^2;bf6tiZX+^6 zA8X9kvu~BttM_i>H&+CqEX75AzC-2t%2CLNAAgpFyk%G}+)u@E&Yh|GcDb z7`gfq$@dXKG<0CkKdpOPi!iT+NJtA6e|`-?$o@UTXc4$SPJ)-JB>!SX-ThAbpSHKn zrK#XF%O%YqhEV8uGUmE{)rY&1l@A(!?kZ?c{m(iJ2Fv*Mj5eC55G0VQ%b{*YMAn^~ zwx$0tSTva<&DfuB*XLhXA#ltR_4L|kwQlz2RDfq!BO+Mq8phjD<(u4+Y~6K)YL z!@uBBC4~}qb|Gb;+xPVe?a*pQRe8p=;nm;v6q=KGB0Qwb@xzKzrVTpFd6X@j|{)x{l4FScsVT@rFG#l{6NGnSYfIJI1NE# z({EqBGcdLLQRd<$1iDlj^_@z^@8fy4=y?ncglv2@lULu2&*8h{8isZR-VvYRIsAA! zJ-v6cg3gT~Q{qeDS2<4c?eUKmF~D<=Yh~hLkm*lKqQs8061zkM?M&>+H-0)Fy^&t( zY>9?(P-_1Za1|0>_;=O^!@$diqO4MrklBl@I_TwB)p5x7Nj}MOcOjB!_#=dOKDg`2 z6MU}q5w!mr|KV!he6J-3y@IM;@+PAbOu=}dvsPGe-M}d~bf&4HBD=@X9|5BG)S(*5 za30{@<5a7Bm`oQnz+%66P>mKRb6q7uwM~#&{Z@jlB1-F}HFGhZuy`$#=tJyOEn~FW z+G7xg76jv8M1PF7;jy?w<~Pn~Ua^x>yB=)^T`vU~tF#ze4blN>&YRC76P!COp~r0k zH@}Ks6WDOWFl`b<(9>hV-j8%4TRSM=+89SD!D6@V2#M~|1NpSU5j*BM4^?+&qY z9Qi6r^>6q?Z5H!2;jCmR-X?ynEhr7D-iY>>#yi;bps6Qrz&Q5)pv(+{f0W43S!pcY zal8h{12I;MFZbgE)-Q*SAv%(}LWTZ1J3tM0Sco3OI0++oS}wZs@UHSL!ez_<@x1hmJ3ZYah1a@>23V zQlMM=#yLkmrJ~hi%aGUP6bZ)kZ}baqKQJ>e(%xtlEuNQ6La{bKOA>MuyO@Pwe5;;Q z7ZL^waIB}Scs{MK#+q|0sl~onH5RWcg`z|ET&-^4wv;Z-D}HN!P@7&GnZn4!AbxY> zmOR};AsBq1EUN>eVEKxSnykB%i=Q>aH;xj;$(2=EL*%oeG0=_ORx$)=#FEtq(3cTr zm}gMr29jB52gYCQkbI_&MAt*|cL&ibD$q|$o(1%=KiE;$mH{9 z{V8ynmcg)B5?=TUoA1-OV)a&1fFe;ES zRXQWE3&1GBX78DPt=>O>UEN)DW$pxv-URTNxx3;dxjjH{cH?oZoZ{+x4%?9$xtws@ zjF|hU+60TW7Av#E9ktD*&`LyELKD7kICoRgkBQ~Y0nSgt8hWeEa6o!oL=^ zbFi$cu(^wd`s<5Oa@G%3ku*U%wS|2Mf6}_t=A8{+E#9m8Qlv=NKF}*Y`T~~Q4@i6t zCca(POlfx;#3Uq5XP}DicT5g?m%hNqMw4q5TuhvKAb9*O$9}LBiM0J?$l3y&6Mn`( zSV&n8hQ;A$ix#o&*f+m5ap1bAef5C7?yZ!iSW7E5U==~`iZ84~6 zG6uRb2^>JcOOBLEJO2KwB;yd>;(<6_+dCBv=3q2YF@Hjg61qQ|&@faO>wWIUDk(Vk zfO>p=69k;xIQ`_w(Kt`gFUC--(#lgT`Bq*(p1&0O4@Vi<6bz)&2xcFCg}(G|D(r;B zHyQwJl-tm43J>d1fOt-(X`?7m$iOQ57aP1zap^_}>^6eu_7dmMr<79^v3Ec7I=_dW zu1T}!*!^I-3G>z?QK!u|naPR?4b*kVvExtSpBRBC+mEh?k)!P~nCIp)BY{?yJouXM z1MODmhxThKo>V~UcI&6He)Z+G`KnPzYN$ywf9K;QD^RHWHUR*~#1*7E=GvY+j(1jM zR|_qsO^BRX>2u5nA`2g$rjCod67SFKoZX^GC-r;f}H;}p}H1BgDIet z-sRA5vcZ#&WawSPBjRXlj`0|fgfsfZedLQLUx_3rfTg#dauFr*m5cFQmvNw%uxA`1 z8Ix)8Y%O0BS$k#gQ_l5+3T;b&6dHSY&~&A_Q3 zJt9Z5h~HINc7+~cNa}03Q{^c?ky9(s5wmv$0BR{^=wNr&^>F|2WEA8a*C?RB9;SV; z%oWuvqh3CchRhE1;WBskA{i&yzPpA@=k4dp;i_#mu1o=rQIAacHhA|!PYsFuU=L<# z>Oq7$_1Q4K_xvBI?A;B|xCiMh3HZ{@L}VYpYZfVbMC7POvmI5&HVKeG-8=M2(n2$A zgYsN&NVnnrey=7>mZ8m(db)ZBy%Cda$srL9-e|81&P04p_ z2%W1h@i)AHdf1G;Qart_wUpF+yYhL9QE~#*r+2Pi!RH+Ao|Hg4LWE3%g^MAThg-`< zO=Pqv8Xj7uw?L6}DNcVfr>s<#VpMX*PXB!gv)k@qMBfYhIl^NpJmz6m`dGFk!)`=F z_HpB&;W!xtJyYA3R}-%IT3Lf~SBOzoOT-Dh8 zn`LcDVDZm4%#9J~e1J7}p&W3?Pdt0SaL!BKygEr{4SvsYnc648JS1_xQ|JR|++M}aSaqXa z%?R@<2_~C%oe>2_t2M_k*A@ON$aI`^bY!-@E;}{4nlefS54r0f`Xhi%$RMOejoZA& zxtIMVZ0~fAGe}AZ)98r& zE#8lzrHxb$HVi^Vwl;lCE}T>+H4rEuEL8SvPnNV1h_)(EJ)0YMMqiw@N!!$kpoT|1 zMd)il=vUKLDqKxtX7@g{{lpSIy(klfO&@VlD5mLVQiS+g0de>bdxVFB8B^`4WZUSQ(cl2&{dUHfE6%ZH4e za|1&4V%~V<9~%D}(?Gg1B(r&F^eh(m@2Sh6bs9D`dp`x)`k69{Chz3+IbbR9K7>i)>`jf=ZQqz`-}21R!Lv zTBX$&XFTd-^INZT6#!Twj5*_(2`I+|ECg_==wfjERHlJ{FFqn>tHi2 z0+7^*J^%MqQ^WdaiK|rr+|{WSHU(r-$^#S=!G9Cfh#Ljt3~?L}*)>^p&6F!3KH;_e zZ99n?Ut~>{*OTQbWIKmtE=~?sctG z#Ehzs*KuYI?SO#f=>*6GyIoTAW`+>O^pU%K{5!P`#1hMr5Oo(>Qg80UV^JP>UgwN6S&QjK@p6c1Gm(j7W|c(9suV$rg8=%PhlY% zZgnY4;0D}N9KgjSt=Z&L_oKlNyShmTaf0&%7vF-AHW41xgbjrW<&q_#fQcnU239ML zW)xHo3a$&<{5~q&Bb#2>?BhLx)bPzOHHt@*JxCT4cLMp3X;KNDpktk-iB0d*t8*j6 zV?B8+yp(n%CuZ7{Lh)ILm{^8HJxV*)(Fh?f6)G?w6uIQTSq;NFE4|9eyXj zD~MZcw{#qXd5_XlCy3pt(K@LXXY}my8DQL2Nw=B_Bz{cnG~(=$!di!gpS@vnu#jg7 zYBfQ(qhXsqW+P&9V{8$N9lv1A_$evg*EQaEi%vtl!ZI>UPtvq^!J2500o02Y<}{h$ z5GmRl5g75#rehLB6{cRJUo#c{t(Kcr@oZQB%yqOdb^Fi_oUz#qGnFc#+|8W3`?3nM zpMWlI%U1kRwh5UXo?X2niE@H&&}1}9#Jcnf3sgRNK_kOhp?(2?X*N^Keiub~Vc6>v zB19kv-y^_CG=qPKv%@oyc?u?Z0U;yN^$z6C|JpSFqLyZgg8{Vp$#kH(QBsZu1(dWG zJULyM*k!smM)>DUnh221cc|iLii0ZzP+f)Bir~!m~t10J)XNr;pP48cCZu>l9a^C>|fS zSR&Fib~-90ZU@9AfKadTLAS^HEMjc7*RRTS&nSRMkNWhb$$Vc#)!S z$(t78Gc!<7-6(Rj$pM~9MP+4QCOk%`GP)9+S>k9W(Isfx3nhaM<;h>D&CZq+xg6#L zVD6$x1OfBMuTF)U#dj{eh|s4_K}Oj81bPgf63TLPtcYp$Ksg%kb#dJN90Lr>c8A7f7oO%V%cBw zV9?5)3_c~A2)8&wdpAU?Dczf4MSZvqV?z+LjGwVza`SZgB#g>N3wLIB7bbjBUTbQx z|2O04a*B^Mr-NJ>;rqHNg8MLobYKipRMkIOvm&XZo3grmw?9U;7}nJMzW%Zu(ZeEq zQ@0T--w$xX=|)SlVz)ZhE~qlnfqX?&G+bT|(Jk_~18VZu8W9B+ISW(vwZ^9d zl-VxNNj8&PS6qat#L)T~BmAqItrC%()+o5OKvUBnvTKQ{-4PGIJq^OSr6~u_=7x=( z#|nsP5kiM`65!=hYje-iB>dJe(AB2sdb=A0n%a^o(=@MLEUx!P4TG*vSoGZIAy+Gu z#@X6K=cw8Aupm@6>8Ocu;;JC)9uGrNknBN3=E_PLHof>R%uZOj4viuY3r6GsB6G7r zXEzAjY;P^(u9oQcEo?1~v-`}idsT^9NM9y2`5yfpF8~UiZTevEQY8Za?NUU+YCICL z-MOQht=A=AZY3i33|8aA;@yU(H^$t_eYB8UPQ66fgIp(k#i>hO!winVaQc{2)p<50mNa&WU<@X*`|8ia1!8#Cr*YjmI!xd8pr^ zKIh5ukLN=Nj=56Z)~eO@3Oy$=*0me}`qnU}w!L$-M)Z_tv(i{<0M29R+Z;^Ig9&$* zaZENd5feh!4((pp1)pIj9%zx zR6GmJjhYM2TwnSMu{v+URR!NIu;iDl9hHQdNBTz{>B(z>y5T=K&@(jlpj7)9KYSZ~ zsjVh$i9zhA{Rwb|VxH;X^=^jmMWZDyzY z@A(Zo6>vIw%jU=OB+?6i*#p}5+UGv+tHS1=n}joOO~W`Q)h?#b7_wdt5fi<;x&NmR zqfvxNp0pO=R{}R#06X$DAcl^cb=OvrE&2w(ULtyP5-1p)m`+W$v2G{RYdw6U$m9`+ zb2JiKu;NO^H4rXrs#ko4{_%=iyb|!}OjealoCJv*fYbiTdE69J3tygmofBNKVe_in z2~m>OE&PNP_90e>>9$it&&0_b3Tx%n%C>R9+%yk-q3a8l4OW~^#TPyTrxOcqLhM7C z1|n2JaC;H#${5aIHenMm=_$9GWK)(v}H>1X~zSCEZza4)~2;eo>~DJ)YcwUrDz*Q}5?X+#@;g22SpmTGM) z-3~kKlfLk>-$9j`^CQ5Qj?_u_r?lEcx&42@&PogUS6#QVI`ewyGmHXdHkxcbge^Ga z0p5U>9AovY29s`vxO*#9u{XM~8|lxwp65@~O*cNO9?}>d!#C{?UnBva2EAAzyH%!M z#MExe>H+S!k};edR>gXmZhf1?^TBnHbM|dQD25mW3E1kh-Yvc6GKGU`Pp0Ic9L^<| ztGFuT?~V_yGSTAW?WKuezfjThyeW zBGf<4R74JylKWlj0cdR|I8M5q`d7K(h-En@-0M6~VVRjFNs=?nEHn$Gdbz!g`OblQ zgYE7roYd48t~4334J>dNFejHA=XCB+JJm8lLcM@WlzMIx&|;K!=%j43ntmbxd>X?4 zPn6J6S8wKMD0m-NMDNOJjHj_t5R0wZZ$Ff44_B!kLyZX>a#}QW@jOVQk$gwKQq&nt z!u?8Ti{D)^@(lSTGIfEY!-p1%bO8tL^(NAop)jz-x8+>hi%eM}M}`^!osY#0{thT! zUmay+h^9+d3Wiq6(!OD6&i94KAnndk?ys&|;fgA7Y zy2+`MrrpZ1Urv@D1fJ#VCl}X=`$C|<4xJDfO(73Tv{i*Z6G(~vwS;)4LQ0EIJRl-u z#lnKN5R}NES9}(6K>=IWuJy67Q_@?CWu#Q?;IOKwlhKkw&F!lc<5gj0OT3&HijD2p zWM#FgqO9iRB+r&RPSro?vmWn;$ixzfF%Z_aRS7Vg$gf~Tv%5fLUpH`5IkYZkW=At{ z3-*`G552pEF~~4WEB&)&Yj-!B=E0!D&^PprV+V^{dj7MlKaAck9fH5cf%j|XOpC|m zn$PzlS+14-k&+G9n7e`T`J<2i3e0uUaIKewQgEHsZxSM^ z3UjPyU8J>bLN3q)&MQKwlfiwMy=Sg#B5(m>nlpXoqP0Wm>R1ls5i_e@9f7)@yuw$UVfENO0Zhm8C=a!N1UoJe*e1kNwCJm)Z}zQ8nV0^m3Vkg;<#l*E|GXGo@3%RwMR6t*mWyj?=d*LRvGH8CQrRo8(xPn4smd z)E+TS){Iu>@<;d8D_bae3${5jcWqZZ;KBUxsifC2{S}>+EMiCSZd;2~it69w<@!K^ zmN_CwSjoguVyYMSnx!FR&Byrgn4DDUGEC>oKsXZ)%S95L;UgrwCGeU=%XCAMIVylN z^JZhXKyAm>OCGdZ)+Aa9d0Nd6c@PohI{~6=qBGR(&xtw*QFb2)=TCcHkd>|>Ro2SA z^4$(DD)f7h(OYS|x+5U>kwg=!VS%(t`3W5@ljH8HIajG^DP^i=fj)!;z6~l|VP@}I zmLj4Dphro`I$lENzg4L-z|TJakM-_4oxUTU(8c@{k=bwty>j0oT)*KsWSc$G|LCY+ zL!$%o^Gsmu`3=BBV{p+czj3=AI0vSc-*jp7Bwf4>R_M~~Pd=vg_pAnNEW4+&jHjz@ zH(3%&wu?+Kbw*xBU=04$U0j)V8cNKxbo8OKl)YyHk*)zlZ^IaVb6cWxFuFu4;Hat)DLP6HVp!4;-^sZ6R5HRyGX`$I+`BC(s z1(PRB!0Beh<9w$u)+HxJ<&SE z-$CJMd7J_0`Da)G6Rww=6m+bfHXW+=oRy^Os4QJU$Wewt?uOTgaB7ryp%)lqL^KTQvguVBuVd3w7dIC7xzY#ydHq4~Uq$n)f@*VFA_JdIso# z{HQrtXK~PE$J7HwsU>mystcwl5x@)>!OJqTqYe?4-Y9MCp|CO6CowK`=s z3B{Pwx46-VFi7i?{xEfcv>>uaKmYqXiNj26#%4!2$C)g(hRcPsql$$|EW%I>;+iLc ze1CszYhJ&a@o9VmJ?NMwRQSs`%P4mPBjl(A1f9D7Z5m7zamID+(^4C zL2wQU0WsF$q{PBBk~@KowY8$w$h8B$KkasSw>Ye^ML)2gS5M18&}S#7@VRR`m=)3Z zco`*XHf5}=VXyG^*z>I}S?OANGEoZ(gdZ$KB^6#*`#8|ln&GxB!+umb3BXORh|j($ z5XAqjZ$?e_UFsktj+Jw^oryRF@{~97%-VUJ)lc#dgg)_j%L|`?taME! zwnfe1NR!KiAqR{h9Y=MmV0k>W*DMesC8^UO%q7QW36ia=FFs#Y%@qS{v(=^YHo(|8(?j^l%T6*8H=$gj(dj7P~k=c_=L?!YN zarGIADS*&4sHJ!lg=bU21gAmyN6NyDPuZ7cluoosS)SB+y!rprt^M_+sKV+!+;{K> z!gj1{lGez;{P@M^{KREggjz9E*eDqn*`tMnpi@qngYmE}ONSXF#aMcf z5=s#*UM=hvpJ@LUTWhzD+Sj`CaV{ZjJMT17trRmC_y~e}3T?EK<8;gM2IA_klV$6O9?c-N1Hd~qKU{gRL8h&v6-Vxl1Ys89>C9wLEe4?ra+FAn^GW4TKw2@ADeMOFak-U%MCDkE+qv@VD zJiDkiBL7o<*F#F6YC@$BVwSuQu&P0F9YEonABm0%uYYIBTi)dHN-?2zeK+OE1^ zRPl@VtbNf?)~gdlvh}82=3pVF3PvIR-J|)+Pl`lxH>OF2)!$(DQ|-WuBXI52U1!y4 zy~pvZc9=~92)_QhxZmiuCo%opZDwcYYg7R2eu445Byi1^}3+^Y8fOGQmMnduk6Hf>S?iJ4ALGJ zszdP__i)DfRPMk7jAi6Bf4Ke=^Nh%nU;Fg*MR<-F(9BEWN~dlb+dG1-B`uB{Z*O0$w9 zhA^BK&pwP=btc^jo)2ZBtFR`NLl}3SpmjJYoIxcVW=$YxMZZr`l`Bh%w4K}qZ!crkRp;NS)$>LL(jW>S_NBT z9$79eToAGnm%DsR4>hexn`o(V&njkbzhH9mybpjKc^EgT9K1HYBK1U?fv9k0VxXTV zYQdcEG|PakYazq5jF9GC7_H1HIOxJVPvF{ys=7sNYx>=deTkM5W_1tiVe;>tAx#?e zFnhQ$>=Afv9Ira1_eZC+<}U)KKt%*Iev5Csc6YfFjxexo0|8`EHly4}87Wq4nlz?q zq~^{1Gi!R6$_FR0^ZC;?%%4tn2o73j>8@rycjg%f0e6FKa77wWr%gUV)&4+jm?!`t zhowUSDNMId>K~*rh;wJ3dpB>+k$8i=>0wQxTdD-MOG4KcLn5l0y~xy!W(b?zoWA-f zv*P@>NO(*fo}Uk~`pY_fJoY~i?EY@Q{aCpHg?W9%8ukF0pDfr#A%6PewITNr9yC`* z?cl3g(bosFUwWb~#m|c&!uVCPl&>k^)JY)nnZaFF+B#C!Q)A>HH@#cO9LQ!(C;%iW zw4y-3s5Bvzda?8YUid*5{&`8Dt?DI7b6jz}CvNszS0I4qg?|x4IE%B+$vaM5qsg1x zh-D9aLr~ax*%i;IKdu%FQ>?x#v5w~T-NM7A8%kUhzw)gFFND1r%fz*H^?17-lc_hn zm6hti8`fDi(*JJ*vqZTK=Ewliqb;U%6v8R@OxBE?A3}ZPe}5SsOmB4l|#t-BG)4ZmwClph!RzVE_usaW)uqsu8G&lMd&w{a+a}^Q0*oBAJ z9>OOGsE%F&c}|rI5WE~ZmzVUt@e+$rNneZb2IPW}Hu7=>mflmz4w(EXYk7bt+zgQZwHEN0`TldAiVHVND#GmLyd>e8YBYR?|)?Bj^LU8%z3H zk|pPD)FK?JLdJT{f-9VH^<V%X9lWvEdb0ruVEv?Q zQiMN#48+{Gg_lm@XYrACxw> zGX^sOV|!?pa}^tuCrR;8Xoy!i=EM-Fjx&5nKo-{YTE{dGT>M9ffJG6I5?Fm@j=nq2 zNrtSq_FxzcE<)*JT~>R9CBi=6^l|l#vkO+iL@$Xt~*{O;&WLG7sOMNknbR zgrCjxQhIkas*-yezvgdJz(%rup7fVUomR3s2+@Yb@RfoY1t7AsX@&90{r1`~L`wAH zKYeK0rEIm2tnJFl-|<|NZ|R_?TCK8n)F+dO4q7hi@F%&99~w6iAeCu&n7j7Mh?GpY zSn*w8J-+A z05Ck)B|`(g^CljyK@fd^L)E#JXJ3;VGS$NyAoc%F8gcCyT)AP+w_U^xYpY&&huK!|ZQ*2OCNN6&9dN45eqki;l_GCGQhdiNz@g%pjcL zr(d8uw{ml6D0Sl9k6HS;c*15tlhJn_ReCyJJl?@Ab%wiNko9yepgx8dxK|IMC3i(7 zNu1*E@%+c>yV5@RbYmjz3kbDL5ScM>b3_c9%vO0JL%5bFdHX%7PEmFptQli%H1f-1 z6ly7p=((JAbQQZPaLz+?=SY^+S^o9ER4h_0o=;|2nS2;la}T*FQ~$#MBSb9B@dRtcKb^ z%wv`Wn^f+VHxSO>&pzxlE55r5O2B2hno?%nQ-Ls1?km2#1cO8KB|rG!9=e>TK%knY z7=fOLm%1lVsSh%JIeMQams0f-RnNMsyA(<4?mWTIEdU`NRs*~=^Y4jk`&)ss;}#+~ z;SGSN(>>Fpb57d3mhO!`D5xFc$n+?ikIX43+eEY^t7$)W;;4ZwPvQLZWJv)5?@AvC ze4>fz2OG9i5{k)Vz2n;#8G3QmWSYC`wIOLeZvaqc*kFf#lK>w8^=5l~T^ik7f1MRf z`L9MbNvDx`2xZVFG|<5&Ac=gNJKZC`&=?~QX?jjlk7*Hg%#GYUW=d=qaBB-?x7JqLQ|iLs01Mk0a({ez+J7F*cS%G*^Nji7Wc#d6(n<1d zXgV-0t*|ZmN=|$(fy1vEm*)%#?F=|`uFwiC3Pk2bPI*mebfAzg^5mCo|beT3Uw#k$u790D%<)J)rL>v^MJww)| zdjmJ~yu*1mL>yIFbo5Exq?{c-PjsG!FI&Cb=mAlB2z)Jr&6Ux)5|2YP`F&G!5`i6g z{@u>^xCqDrsvu~}mMCzValJ{aI`&kmc=osaKBFCQMw6^Prt_JeN2(C3l0ClAu^QR$ z;4m2@sN+@{hsG0<4-fMXE{q_}KgG+VCsO?wimMdDZ+U?;HT(E?;`CcZU;sDWuJEiv zKg>68+l%Gso3-NW?7a#7YHpAi%?B`p=Ewv~!a85rtLXP^yO21a+iCAeo3(K7$ZVvZ z-Yhv{;m>KU7iP5a$|X0};fcYF?T>bU_zx24zhm5{?D^BRei7p6GV2?n-^q-@1%Hnk zjxEz6ApJl2Qf5j|_JQ4j8mm!bnl*oVokv^5h)ep=CI1$?*OA4a0zegV!oOw}foX@_ zTBMm(P*0Oe5L4{xAmA$=2MBmTb8wQfRoDitc*k|x1(huTCp96mnd@)y1A_Q=UzHBi@T_@CHh{r~Bs8iNPrmovSIC;AI09C~5` zK=(jt?D|fIV24T>;_f>*77Jj2#>+<6aK)LCav~|w+mQQ9vCBanvg7CBlsd=arN~n` z+NHuPoyn2eONASLLCX_eMQ?6;v09Hi<6MCC0u0 zT%*j&J$1QWE7c$81g`_!n|d0184x#Ew5)-i!hKG7v}wfF=3O84yn{qSt@t(yg6B5|CGtS z_OwO%K)!?h!XYp27@4Un?ORL4RQlXM5^)px)zbUDOarw&UefN9ID|-x4aKN8t-dAy z(Av!1Vw%8{hW) z(G8KbmHETGKV6Wt>d_uxF;}4q3+h-tSS%;>ii+5oDt+@crKU>jwN)v);% zpBo%JwB&%^QrM|lIK&n`zo+n6VYVbFt1d>^dSkOMYQ*+ZDBkHrSteY#U(i2azwOn4 z0M+sV=(r4`zK>cRbLiCsEAwIT)M-VyJC7Z~k&W}ZCuLG%#S@$JWmWEowB|Ohfd>A= zieX6NjQ0e|6z84?_eS&vSUIRKOPEs7eQETQ#O#3kilg^e@A2xCEo>-EK<>43n+(iv zEl65F0!)=Z5%TA#F{sA5@x=bNr;Lb~QOzuTqxM8b|B`5W^l*f;Icx|1L637|!_KHy z$J2T2wJfbkl|VK`#c@_yTq|v}7l{H>3JefSCfC~-mKHlAR5J;X{u+FerYahLn#>Kx(TaF_}>cJ8mXp z(tQg%Ad;4nsDh~O?M+@WrSRpIK>YS2;Qd z@sNNquXo47k6Y~PZl5=$ML*)?nqf$ot#G*L04uT`vbjlxfY!T_EOjy7UX_u#JfLT2 z?}dqm=&G$9wF~-Gt5K}g*p`G0jAPX-jveVh#~R6{!XFd9AUgYtqHgSDRNoW5!%60n zdDnfSP@9+Lb9>)jR_cLyVMs;%hEdzI(f$ymQ}+-8cd} z0)%F8*a^6TdWFKg6T$*1WpGe0F_=>X>Vh87N)r-ONe~yA9H6M)To(U3?S@|_^N|Fx z9BPRGV3}l{R2XI4$MVx+beVr>sHqO{$7M;uwPx7xgk2gjjD|89N8BOsJMqd{XPQL>^{rM zssSX@;MCTZgXvEhzv`YHhZWgs%=f0%G}P+$YeiEu%O(h54`0c#@G}4gmT(LUOxmL? zU1Gbxl7GwRJ6X7)}y7tF6lP}nu zsyKq>IN8ou4wGBofoHAs9||Q?g6}ai`%goYVV@8(#8uz9*Gz zHclw)wlEDfJh^*{ZsRpAecRv^UuO){ht=0V)~}YCVzS1ulZj zKnDlw-Ii08a}6{-73=Pw*u287MdLWmVL2F^v88Nh2T=!vq%$qvZQ`?4S57DQh$I~4 zC3Sp2%?Sfm_pfxIViM3kOMleW!T&RH35aw17G4@27ozN&}6K*QF@fqX;5(e-?7C@CE2{FZ(H5psHgm^U_bdR5W(+e`@NO^*t6rlbRw#>xTbG-b!AGufCj34#}uF)W8WzBPBfO}gVW0oYu5vPN@wXU-g8Lp{ntbpX)T{9SbJvFf*hpgbg9Swz0dSm>K`O7K|4h`-RH`P#CRi-)@!kSmEuSXDJyKY(EEKGCKj{2oiT7Eh~vYe8l-6 z`3vX^BcLAIWHAYB zGTN|F79x>BE>8$o)-5XFu=<&5t;?uH%XyVeBD7akS;T|W5#qK_-43>X3v)xrvW`Mr z^cB66`N_=`7jG@0-6Rs8zbR$=2Iyhp|Fz*XXCNxJ5pI4uQ5c(k1`P)RCp8@&7{vPa zEJh_(5*5mcEU#pTZ0Ypyl^Om*2u}btq;=3Sot|Zh2e`Xm9~o!NVUmXsmE2W{$qo?x zi?<9Ce#5!i?F5WXNViLGx$t&oF33*hy#L%viAT)G0<62=ea`ETB=)|J|0b(aH1w>^ z{+sU*QzZ1{{J5s!zXmTd^etO<#GiWq5gkCtK|11)gB~}_3=ze6#Bz>1vJ5g>_IqfA zx2yj zF*qGl8O^AcN%I*f zgN^EYPzShanJ;TGubi`EuTIgUsr{yL=(2tt@wxiw#X{EJh&GJ$h?Y;@#9@IP7~WnA zK8O;Hlcjd{Imp#UMn0I2OHslv`mYq|%;W(7KLEgQ5;&rVu5dV&VIA6oJMUdM!|P2? z<5pPEa4#nr6U_XK_9&K<=;&hy(D*3SyM6e8maOoUVsdWPm{;H=-Qrt6#wGn3Hp+1}lf5TqvF=il) zGQUPPP%9CzgV^`>aPtT_3XeAD)6ikLbZqko&CI1MTGydZOgdq4Tbw_I_CHH= zP0b%yu)@@X{xkg&7|(o1Y0V*o*WdY~hUwHg;3r4q#vz&-zlV^kxVX2#Plq16VCcWj z02kuMLx^MpGd|DI`l4@+)5QhFR)Z`Vhwq-v?<&>4=Cj}tF1ko|tWA(B@nL4@F!bH9 zcb$O=hyG;hotRi#_wva56pkq}5+Z%e{X+^T1P6X4E;v^O)U?o3&ycdm&%nSGVE)_I zAV0+K$*Kd(lPDk1ITb*^@$6tBvAOWAwbjT%;Q|JPH zCK=P)D}`axtGbqMnC(7Ot)$MBvDP^1tUj263xLa7Q1rV=|YR-_jZ^;CRg3|KvSDhnrG8ORx<9~Af;MV zK}bfwN)RpZGM$w6?iG=8l7!R@Hq1uWe?Li`kyl=S4TrScHq)<3tYHk6>1>v+`m(6d z&*-@Zpykb;1dmoWLpXq>(V?6s0xwF`*N!(5yXpq3@gz*!<$_rq;wwRZHmBWb3WxD- za>#NGXvgMezaktI$5bzPNZ>hQPNeB!pjHUVu^Avibe6#o%+Bt%3CZ5}1Av}pk}(qQTx*R5M$nijUt9m} zq~$cm$5TSO0tZ2KAzaNDYbn%&BZ^uF9&+3mrMY(B$nVE#`Vd4aEbhgu14LOOQ@l-i zJxz!crPlD;@fU=cRsbX&;1i>K)cOCj(DV0?H%)wLn;6ZIv?yy=&*=y5SgFNJLQ+Tp z`b6`q;I4oEnr8=$GWocq-lW}~Pc_W0L z%|&>`=7L`d%|u@ZV)1Zc^z=h_96AR5mN*5SVT#i529{PZxZ&S*e=_0{?KyNasn8Nt z5EA+Un2)O`aAzf4Y~QBUrq(UH88pP-)k<4F7p|F1x!~Q$)^F{S6IwcV)QVKYKHfv{VngWvMNGR)AZ2XR^jg3y;PuhbcsppO!ri@ZTu`+zR(8I36pqT8tp;@ye5d?WrK*67$|$ zs)D$}%e|hyv*AxjZLc)tIppksd+#R4I*E6Z0lr3JBKMC7&-DRP>?RbhH%F{LjlA4^rJIb>-=TjoJ>yqhLsGW#urmex!3hky^E6;mGV?(X$&TILEk!a_VLDd!)1g`-L!6fWxklfbwf zH6m-{c|ksXN(Qj|=Y#lh={-jQw_3#1Fg$8{nzaXTPV*_P!(N+(50+bI3mkrsQZE3M zLXN4cC%Gk(y(K)_XFW*kv&JWqC(l+6k3-|l7h+nXjByMD#!W3uh^OZFmsZ}uRg$g@ z!vAgoj^FI*)O`DdQ&^OMnvsJEZ$^UdfR8f_0L~IAT_B<~K4-LXHU9GyybzSCvZ46&xTw7n-rPiAO(Peg zA!)M>rO(DTwxxK*wC2;jO1*FbHtYRF@=(YH&xnqNDX$I#^70JKf*Z_kVJ!Coy&0zlyKj^HXmdD4TdZcT55^F(2Wzah;6Mec!owoNygpbIXqcZ*n6S z8*)X;_MLoe=2b-zr9S7sz3nB8`!uYE=nIwGDn6RpP=Htnq!9HqWHp~M-P!ib-cubj zDl}BwvYDwP466lUnGFh@?&;9!2pf*;Q`v>O0WM9z0Qx=*DkPn$J&8Z@9S$tN1hanJ z)Sc2V13TD{trBXGH5l|bI=)X!6+*N6o{#Jk)_@RHx%)Po68^<>|2A;)dbt8z#x~2G z`{T;t7_az5YW9*Zmke!@u8uvtD2+HbpSeZ=VW#faQ*Zf9vxsknzO!7fmq7)f{%(l7 z7OPG7$ z-GI7~bsS>pVlt#NlRL&lozA5ssR5Vh{XHP)0CKRw>I%N629>;<4;azHt&|#{yS^M> zDXvK3h@@he79M)(30)rMqPUqc-dimMx0{>M&KB;=v3XYxgQk+h&^4h-&w)tomH9mDhzGh*?1-E_xUV~()oM4G0*Jv7Ay1+6pEnY z%D22Vg(et~${Q6jQ&9Ae87ZtC7)pO`eARK zI&^YGmICcr;|>Aqus7pPnr63J4cQvI>_XsME0R%bkvzriL|n>#VxeO?H?Uv_qF9I~ zG@`8=mEekjEv$p#Eo92qrRryaC3b&{{&LmLE+GuH%CdRd1qjLBJm_O-uP>lQ3bS-y ze~Ce=;O$ReO{f?&&dmb+^^h8c_1H|9H_ty6+7g!23+%rynf&C z9fNrWET=3Pbq@cIuYrE6P~2yne07r_x>urDcyB1mj5f&ovvjNV{?dzG^061veUhDN zc>riW3)T{WjUg8M_GP1` zo*Xro_ZJ+e`QaH6>nl6j4w0RVLX@B12}*n=SyBp(z|x%X%XRNbT%DpMmz0v8#ThVX zgYNyBbL?hjfE(TL+*fiyVF!LXsR~XK`Yon%LC9&>`y`5G!&beN?YE=-uKZi$yNSfk z_kNB$7{cjFj&Km@@+yOMCIA`JMW%Jos)6upUfq;ZTK=MjS@*e8Pue1BjAFntTyn0$ zpF;#P8p9+0meBX0GaJMdTr%`C!oGqE$ zhFRXnW-#mt;5H$p(Itdf*HLe92#v7JHNroVAA1PGuyWqzX>J~T#g5n4gXq3zm?r9F z;n+_^bbIK4D`2>XCWnuS9+>^D5Hp{^<ZZ@{Z@qwk*L99jb`eq=d-ZB}raEozM9#F~*$VcMjnth=@dKtb*Q3xVGR%3KK3E_yZ39VEOwNnqIDYl4pxCv(xA^bVXw^W~ORZF8e~5Ht%L_Nh&n2(>aLLqEP-VLOEWvuH#Da?tx z{iKfwJ{Rs-b9A8)@h146ocbvArjBit^#k*}I@9e%yc?v$^Rf;{Ya>!DXnJxC%9O(> zf=%?0g9_+43VZ)tNH^hwDsb^HtdNW*W02I|&R%Oh^~6!l&f6g-iK<1t zhdg@ocHc9hrWA2w4F&2_0*13e;e|09xa~2WC9BC&y}NkJU@za~&ToqxFyIRd(tRl> zWL}L6?g-TcSj67&Y`V;EO!+?z;n3y+EF7_|a(;9EZqeSA2RBEzco20N?cHhWgjzm` zFG_1ii2_CvO$=>T zR!GbIf8QK9o^!cc{eMI%gY1f~tD$~v2|yO$*;(U}A#ux2NRQk|`~y&`(A(LhghoK4 zlExzHQ;q}nX3QQ%R8EJASK%wW#Q7<{lv9eWQ9Z5ZOEnG&r%6SPe=DNPy)}XG zhN8@YFv|IB6G42GPkLjgPyxr|fobSe=f)uEJU@fDVOfQ^_NrU+zj49sylP)>+T3d29&rH8=~uHtCW>#1G<0 zjI+BZ2--rCynH?bf)$!Br2&M|JJrsYub_!Sl zrstHc?80SEQm&aSoqZQ8YFpp#uJm=7-OVRq3tmlZhgrDw|E)hZm5}oGB5muG!G~xC~nWB2l zcHe?!`5KIzwIbVtA#%u3yu}ko%Qx81TPOwAef{D zm9i)J$Qs6EDs)t5-~;iotH2ImfW?PLdnaP<$m#6w==A-(&-*Zuj@GTaDzTU2Qhc=i zy(l4C;A6g4@ir8oFALT+HE$$@BN4g~x$-{GK0UxgW0%zZ<-uZEZCoZnyEysD*Y`+c zaCX7iDQl}!5)R+SOPpM4ul!z6W$>_O8W3Z#@)t2mnr$`3+gcZUKRSO9A-|9{mitTx zY-dgXx{;a%u@MVj4J6Ram^??W^cw;QgeU-VnlfqNij1bTB940DX28$;0UHV;4DG@= zUm;Eu)6perzU_iS!Cxp!gpAa6hPyay&^gU&q{S_5ob@lS4s_WY?$ViQS%=NsQtr)lCiMb8MUUr;h^h9jU>*y zLRAw_<;>&{S}?zFp!`g}PaG5eXBT*JPYRlqHt1o@XTDkm-6CEeo6k z$z?o={#?6R5nyKb>1T{I^T<3`?^w|)c?Tw>ONypWYI;_(`Kf~X8bPOIE`|JF@|!?e z3jsHaA4uf~)6hW?uMu7xK7+7ZD2jb?CcGqVa|CG3Fycx3tXO?ytSmh7GBiLb>QMn8 z9#EO57c@NhU!BAFE#>_tmItN+YT@P9(?5#F*itvyP^`%r;goW(bWy&mM9{r67#NY( zXX@vD(+K2SHfq@_&Y%%~KIkE}c#e#CTV6X1xz|J-de%`?Y8`z$Vg^q(4ypgPSB7S~ zMY1b6?gfd{iUx}J+-ILV7ky6rE`EPvbP*wq_I@UpbMAW(sHE%(CT1R-@$sGA$xKd} z%2DF!-g~h?lmYS7v!meJ=CLBCE%F+DQJHIZ<0p{xrS2s-fju~1Gfkb(&(;pNMU-p?>9bT`Uz1@!0R!$Uk1(}@(bWSNp zw|MdFGeX4*n7O(FLjEG1A;6M+j!GQ}LN%J9oz1OW3=%=Dd~l>CfYRD(#!G>E6#~3# zp5*mmou?vzY_X4KcSil`4SSJh>=j9^ z*BdKer<{4UR|^^1rH_gKL|fw6LxKw75O>zl+v<)>n!E06Rq!{x*z^6Nqr1uI9b4!>Uaa=W+=NB_cg-nthy0S!=Z;4F22J=mH0Q^ zBfldeUNZy0vPbLDq<`S>>A<$J9!-CQN<%>LJfkEcDZtCZE8wW7peY2<~=b+DE=KK6(b8GU4UihN7Xv_l0Fe4 zUOnoADzShbIPe)wqXh2bM!r$g^rt~yJz9`j=I=b;;Tvr-sI`q{Pls|vagjQk*sSxyQDWNCff6ebm zUA!e(1a6=8)Ikd%{Uwn!O-@1E?d+G80rTP8c|(W~1Mri226CYOR-DU0L8Jv=F?n&I zpk;^T6pPEN6{^j@8eP7THVR_>$A#a1BxyK0Ocok^N|}n6#uq&kfQo)Zk`dj!{oS17 zt)JueUOIu%cN_K=84RN&=ND5DB#o_;v@cc)G|jitZ4+*nv)eT*$>qbhSS{Rp?sPam zCgVbNW^eBzE?iyqQQe4dt}>58G82wtj_JRw_w~ZXW#S5CSz3!C5WrOi5h?39DAqK13W*a!#{ebbOD74 z(}$RDRUog0!AvU)`CLe$m#0LyA#G>aOH$R~4$2N(=F|xOLVFU0L1TGvZrLW?i;b24 zv?sU=5W$qIR0JaW_mmelJz~+yU<#+)>n$&eizKNb0^lp=CnV?3{{ypq6|Bs{5l&tz zLO$KIpnCZC97O7|#o>Ndw_|rC>0ugxp7jl3~At%zS0(Xa!hW#Q_REJo&4uPe5YG@VFGndbr zUqNG(8SMcoFMgnZR_P)Ur88r2api0%qzzsCDsL2}gT#c5?^s#5FoG{U(?Tk(@P}q< zq5(#cnR!a=!0J`6vZ|+SL>~C#9S;lm3S}+X?jsaxr31~-D zHn!6aGIkHi5qa911wDhVFpyYrFGJ_Y1?i_z(cMaD2CKsI?r{;$Q1Q+VIuyL7sS{M zzDFd>X0CbuPCuN$>?7Gd7`uVSG@;_JTi5|%3YL@~(DxBp_`XQ|_E4ym2oB6$%M~~x zrjRCo$P>c78gFvIe(A^~? zJ~GbKh7BgW)JjPs3x08rF`LIc{yOQ^_4s+B*-@k_Ae0D*FRM7qQxNMqStd-`j-l5f zokCv8sVHq4o(D-h7{0ir`>If{Rj>i5>B+ZAdKpQiW~Pr3jYE8$y?`_CCR2mMxd4~* z7xLBD+^BLx6`AM1QmbknvNpG42eub=XRr7vgT2&j8?}`6LbR&2SHAiWb;gCU_$`S*Wq4spXxGgf~p=!0H;iJ;vt_pEGL= zy08>=fIS=+Evp~CSb1w>=|muR0Nr{cB(Z?(vmA;5(km6mu3NX7P?X$ZoF(*~6b$@i zwb?L%HSES`4PTjT9J!cT-D9MhJeMra1gEF_)8!4541o)8Qle{Ags70-YXn1S`~8xw z`@lB0;e3h}cpl;!12aHKNE8(q_lbuSY%x!rS4vKr6J@@aw=sArA%`;>wuRS)R-3l~ zm|DE32TkR2vzOO-bIo2N&E6iC9-^8wHW=pe_QUX0q^&KF=ClK#x`@7pA}2m)!_yO3 zHS$VX(wexAXmA>1q})T&(0_Ty@0=oz(=8-=DuyGfQ{$*FeW}2l5$ycwr0#UABk@5t zNvvAGNt@3Exu6P;Y_p0w#>jxmk6q6^uaa6-Cb>o71xPlYw7%)Z^9;oE2W2yX2tVC2 zn$^0N-$hqUgw4jb+ zJuN3vHZwnH1a~kIk({>UYqA`OCb~udGvESA_>L5{Le_M!0QQqplW{`5s+B2;z8T8B0p{n(GSf4xeoCt*;z*gTgg%Jk(Ui0r zetj0Rw|k!5Iv4&lJ#_dZBvu zuMs9N6{xN5KV|z>%#5wR z$)o}Ag{ejmPhhNi%~CzFn4L7$1~YZ9Iw^^A(ol*l(Wup*{p32;#vTpI0rz!_mTq1x zl}9KpmW%!3-())Y0*4A8@cn|Wom^I8gepz~kZ4{z>#etI|5ZoNZ5tNo*#%X{=7x2K z9I86A9x`Y-gb)?58PrcyWX`&h^^vm;FmN6>>r8_H{VVw}ZNyK||;qGAuuom#LleDy*+U&@C0e<^#bJ2x^ z!dGrhpff_Z12!hbG#Vn@lh>jqj-AwwxS4= zEi>8*$W#p4MHtk6{dofqmtjZF=%ir-*z)5cU=FzLFij+B2K4Tuv;1*)hFgk@#Q8K# ziH;)*vDvgNVoz@ZoE^WSt-AZZ^-kRmII->sse_qlGd-W2tIhMpwfIT5@sx*(Xt;wZ zXd1-{=+fbobkYz|UX|+P5K?BTB{iuiPpR|qo-C0+^!syu@#zNOJv3BPO&bC-SbHGL zNn--(Y-~Q}<1TL}qlV=)&?s}+ceKc1c-~4rIi%Os3HV%xVrT0QEK_&ZZMK;;hUZ^k8?Pi)SJZ{_(iKI?M%sU=8zM(ve}JL7*z@s`aw?CBUVeX7fozlG7QDkg;>_H z0l%D*gu0M7;%5#9jju$8iFh`V{w-a85a^NR<6tBRJ0`!9A%&!Gwy06YyVGH)15B(k z)K~VSNFP?I)-6tayVZY?>J3}!xRdG)W}_|9BRi1!(5Sy!&j$Z`ES139yL4QXA)2AI z?*Du_)wp@g$kzCH2XU08J|iaUI=nZl5s}95i^PR;tw%m4p5(V>EkeeZO z{9t`$`J7W!$GL|hws#(Jh367aFdy7J|!yv)x6GAr6Ow3~-4i4N)VVB2dtJq1Z}=Jv;vq{FN8eyy6DT$|(m*CZCXl#=_Kwm!2OIcB(#`Y*@K zn{zq{J0LavEVglwN+60pf9qIhOWQ=88 z9qmMH%!ILcx~6Zmlsrz^`YK38!M0g9uNXO&_KEcpzL`*lXvyte4w7HjHp#V)wonzU zra;tFb&1$#PX)xp)y&;KAWCL2zUsjE>if;ExLzmtk8?7V`?Q}S)~H6Z(o~hzcPi38 zVj)@%=fP%FR$WuE(j&e{L3aaZuHy;N0DVEh@&#F&E@CEO$-nf&&od2LY^wnDmd_;$ zAP(-XPfF`LN|C}?#__L*>^y}nSnGid^q*-o=<&~%B)@tNRuzbU2b-PfB z#48IQ8uyhF?!|xo{c@_XD#pAlwOJZ^8~?Oz;wv3aE4T*aq*C#X_Sb?Meoz`@ShX5i z?YPKDOrst=?0}e+AymFWl3=K5v8Up87l~w%-vwEH@@6qVf)*ro%-GdLsMRE7hR%?E zCv&xDJ;UyWPtqTVDgaUnw9K}GmKo9y2)ztKS$OJ;Vw>N10wN8UjlynRafG5ROQ&|p ziy__gQEoF@s_)(MG;MULjm^(fWFWkR635B$!evrR2(6!E1oz&WBb=8^@o~nX*|Kr; z=a5j9+CZ2QrI=-G?gZ=@R{Gfc^Z`ApUZrcR#}A6naDYNBBE|8r(Ixtq_mk^(&id~B z%VVO(0beDrm$dSEkhkX{jeFMFq!H9{ZtIqRtGw+tS3UKRa|I#I^t%>cRd$K2TzmuXMq4s)myquik&t? zhGLeF9CAPh>-Zp#s(n_xT=GaOG1c&CT^n5aB4b#+eX%r0g zpM=xt{KSc?Ko&}vc@stChoI%BJFS&Z=1E-C+u^=Gq ztGpvmZvFHCqk4x+f$p6;^EuJ;q;yiVta7bmZ+Djs5u<{>C6%W4iS zxmRNQX?B=)E&hP6cQyAsW6aO~!A`j5>y$nTCk zc+_rcwfM~4Xwb-vQgV*Oc-jaGmEbj_Gx7;c$z|^Qk9B}c1Ol}!@HF> zLsh=&Ah!cFjGAKL`u^$#zVY;7a&YM{CMKT!2e6gs-#NqGwDKQo{z*Mt)YWS&=K#@93) zSLn4!5pFsF-=cpG15Vl3XfBFoJ8jUNX=mFxufcMtekIt1meLQdpN{u+?pK0r2b-fQ zuOjO+wVz9Ri7T(=K_!>wqH~_fRGQS@RO6n0v6PVt>3bWtd%0)%_?9N7+6T(l2_m)3 zQTJwoeg+n$FM({ftaN3m*wO-xY)`gF3Lu~0ZjEhYS~q&bu5|+XG5B{T_WYri`&#I4 zUa+3wq!*hY<>z)cXKC=#WA~#qGo?h9QVZXaGb#PX{VkI$`1rKdW$eLb}=fAH0v&DLe&aOnfq>Z^NIYd=6cVYbK0t(T> z64l`HjvTE1UG&=q1-Ybt*==_cv&b?aaE0)}j=@Lpo=zECW&OcE$o70P)&QD_AIfS- zGMXjGfYN*uQQ86*eNoglU#Zkoy11>Vly?QxsZf zB#?tdH<*?8Tm!d!rkzivhTXD0CYQYD=sDN5J0!;DvoQSARF4FDWad6M+TDfSV##$K zc8#de!{tym*Q%bLxb8j37kKxa=p_G-|@sKC68;onj}Bs zBOGGqR&Z93i6%Gj=;x1gaa`w;4#bfA)JW;B;sS`i(}+(VL0IIC5=l#{e9pk2`F#aC z{ZWn!Ec-H*HuE9hYqk)xaTW@5DBH>Sl8B8TNI?S@&G7>Ks|YH@`RzFY#JUez8yVXX zKUi8gIGozjn_n$b&s^~3#Y+%&*dZ!|(-;;8epc2Vhpcj&OY6&ZkFU|Cy;weaV0pWm z!_6#lC4faXG&~ZVs7Ag$>YcYS^->^h#Q#st(V8LReAp;TjpnpcF%NrME5^_%#zm4O zi3u%|xhwzH%+-~6FgK@eWb+G0b=~HMHtbmvEgop|u~D!F zG)X=>tWq%Ow>EmfXAn^r8GbT5BO~r+TzqF=O9Dl(=On$T+hfj=rqNB%O^G-86%Mke|PilPS^1I~V#ekfH0gVaqOR2CJ$KSKYw zslUVh&%2XswsjJadf8CJ6`sLilc>n$aY(L_1#ojB`XIC@PJ^3W<2?F-928FfEnetQ z#nmf)$u)URRu$H%7F4D{N7}Dzv{&70fr5uV_ZQN)qnqu_tSIT2D?@m+o=w zmloS;ML;D}2o1ORmw-guh@%Iol&b0|V5H9ELH+9ZCeXr!A;=8^2gEVbZ7Kp1l-8_2 z^s-O7|2iD1)k3zF2u`emfJ}H{mqQq?S3ifG|$ zG2s((w*YO3WBJU5U%y^l*up~T{>a=KR-8GL7la7~XItk9cE@up=+uc4!{4f9(evTP zdWn=8D2H=XRn%?wN?FaSnTV$i2Pz6+zT5+ia8oT=|7>3S?c1z;=YPm6OAC*o|9NQ9 zmadOr>SDwspjM7aukv5xlG0X*iYF}o`~iLzXRng&4x3>UQYH2K0ZVm#s=UQKxKxDX zFj`L@$6HxC!{Ae1+F5xMq1sHU)><7xtNJ3@|7C~HZU6rTT39&@i3;E#a~d6TojQCq zT=X-&<({J>FW>OOXq5a?33r^0@b5dMxdklvdb%GfDyil`_y{*^2pTcOU=K0LVH$w% zAoid!a+A~u~sdxC|lzm>W%+Nfh|IcR+!SuAaZSBlgG&fCeMg5ZHB zK8UVAtHB#)q9R@C(X<`hXsU9?CcxVOs2ca76X+D~~8e0UsL zredy1B4vOArDHUEE}Sl4#bk+2nhE2CAhX~Mw4bE&WeOm(lLl;J?%lD;83j9F$?A5xx8JBS7G(~{?pINJb*3c z@gCa3WCS<78{jdbbk!twmXc?FUPFPUFLuGDS^hP1 zuWU~d&*oP<#Ic)C5~`sg4CEWM0Io6rA}zM^UyJo%Ma&fI_RL|7M2-vpD+0YsO&p{k zh`?oS5i$dW-2bS>cSJYTPBM;3L)t+oA!NCsqoY$^@DVog$3B~e@1n_L$hp3A3a;~_ z7#qi1HbZ7ZFuK9~>9gT2Phav00WwniS7D*bULS^w?3IBsM{+xF7Y*WapCx2{2gr~I zzE?K)b!c8tRJXkx0R_UEv!v_dVswy%1(0LX+U3Db+s|^cY_wl5%!h%y_?Eh{Ze?DcFF{q$wnMwYA_X{r>3Or6)Q-Mw?ih8Gg>sT696 z6{|S3$`EYjLsd6~T>9hov^iIE_o@f>6|S8QS$lpi#6e(lp+|}G>|d(qiwMw6k>XM@iKw+>V9x<<8IcB6d`F57awQ`&KJs;Gp(2nLJw1 zs+|(u+B`WqQ;YROi3ixZ-05-O$+cp2Pcu~R0#dUgO~8e4+vTe}ub@>9`pT(cf1rQxPo$(03WUl5dF(%SpmDb(!xT0T%^P=&a10U+uppZ7I8xR~ zE8e1xN~>L}WGre(#D{q1@{2TuSB^jz`Wxy2u=5|tgY7bQkd%~U{;_9^E;b-k3MdKj z6H2%Mz2!wMx0Q`uj;2+5m7o~$1n#U})z^NOwGZ(6Wg^^}ukWtz%kHmmOCGtw9=4!em z|Fbd=qS-e@5$J7?h^#>wBdQPpU_;FbI`{Xor&oRW-JWRSIY3BYYudkglZSm-=oaVE<)-@XVfM_#PLU&|MGh;E=mhV*A{|Dz)I!3|VD{BZQx@{~#CvH&Y?*YD1I^<&C zqOcH4+becboGhc%oBREq377N!@N0(5A&>|WQ^gD4F;x7Tfg^vw^}WM07dFc?2=_Cn zvZJO6{6*>yG7xFQ%O^cl@emDk9m4;i*Y61Sxa~}FublW%H79(WE{miW|E3pl6+jNqBSrO>HL0{ zR7wzhXdk+ZFwt3RYkU+Bh|N9r*1~z;D`mtLFc&%472*X^Sx691WEtrQ_1GPv*P>~u zmv;Y-)fzK4O#o$%bMDjDJ&^$9eOs!RY?Z(n<_2TaUwTP7g9~-YOpC z851de$W%u|fgm{#xKr9?GOAK75i&phA`;h_A4Q1Z*k*Qe0*0u0;62r#aEA!(U~*k5 zObyE(S{qW~^?$F=1BJCU6}Iu}+|aB#n<$z;AA68D%ZTdy&q7S%EqkQD&;xC+x7;E% z0tQNt0SgAp7hpDdkn(Q;qCxt51wKpY*kg7vY_KWQ-}U+3TMxC<_@s1{RTe>R9iqA#2*o|& zsL`ye`G3RH8ReXd09x;9JxFzLL~6v582f(snCOe(b!z9K{;S^erd>S0Rhk;kcLp?Q zXt2GVWMjTb?DrK*P*{=%1-Ni3NcR7ivfLif`Ts!L@I&910b*TFaGB%}?Y}HS z@+6#}0)qNqXEJE(Tn|@^IcJGIql1Af-n{6GknVxzO}V4_WBgtAWeS!p_o4PiBOv6z zNy@4(tec5c?f=^JIU4&vj3?)-4V4IxjT4NjD3*3l;rUc$roEh6h4}9mfSh`DYvS$_ z$q%E>)F{~XiPd-*`q+T!GiK_`ou#ZT3sEDiExI5!0s^k%VRfrHXaIzj&zWEPU;rZf zfRJa*xui_w7c0&T&5Y`OOCKHJj2z(scY?IbQ&u8&J*jE-ZqMM`LEBr@`=Qd+!dywi zZrHf3b=jCiBP}|0@TJj=PZHbOs%kb91Loh(>Y(F#ion00`^)S-=<(%77zjcZgIg-R z+~qHnWG=nB+opNTOKjM7oZs6lPSJ@9&u@h2M=uQ{>4m1!|u;DPXg{ z%B81JHD~AQ0cedeyNq_*uterqestw$H^ozNfPMgmRe%4h{yX%(gFKTwSGrKeYT z#oD@aN6ByQVx@?k)F^L5_j;dSS@_fu)?u=-lj;TQo189OUq;;rw3@te3m(XruB? zg>B%Bh}1qDcyWggvZ7BJGPH;i>*pU8c)}Z^D1MeNhPSy9ePX<26M5dnw@ZUTF4jQJ z#s5zB^k6$i>NT7mNLKB6JKEq;1DV1$Z>IiVZ0iHuKnpENRGB#G1;^+~{C$q>*IWG9 zY1yc9fs%=O{~^LNLoOk054`});AO=rhW{i)5V{N$UBlW`Rkzv~bFMzert(vln0y@E zLtjn03t#xyF7h<;Gzw@Ot32 zuFd0+k~Z9El_{_X0;n%jVH6RA&u6x+B6~pHIMVB5w?n&k0$ka<#13idw8iPxs8)Tt zF&#nW8yL6u-)G5af^RzNu?ru|>!=g#Q+mu5KWhC@VYfN;d|sC8zx$IyFbVAIQgxHw zd>j#%foINYducGF9IiF^7)x@DgBk@E21+wskX_$P-Mlf-j{1~e0|;f~YiH)r6-6Vl za(`Rh9PMF+)XEOiE>RI1-fc{u0L-X@{dq+ydBQstZ>p5s2|VM8Q=FJE#fgMYk)s6( zjjvo2giIJ0^w^r2HV{I!c7by!3R%J}X$4>ztAi=8fQ#3jf{*C?7eyvoSjZmdZv1O; zwPp$l#6z0f)A26N)n9x7bk2jRyQ*FzY!2dA)-hrznl#m*`CejRWF6`*6-UAP1eG)Rd#;omJplB{bjh8 zx?bl5k9p4@A$EaHT~=5{(;L}rr`-^_A;s2zHNDIn^Kyh9t0zV-b>iGno{HWECVYUm!X@bFjsHbgTaI;iyzpx-blvrko5F0P$! zMGKMui9iAnUe>7X0X^tQNlAi_Q7UTfS%v>-{auTIQdLEt`-pnJJCT%q?iu@7VZtrSP_mCf2ta!={*+q9e4$RUPVdCgY>W7UlI+dN+z;LRA(t-k(M^`C+fV}j zud!GIFf9Q?l6lKQhlXuwi9<^f$Ei-Cv9 zDd;gAhkir}3Ix=t^x+jb2p}d^$US*Ne;{@@o83urH&%lE+8@quArg1xU-q|8p`2tM zN~Nw^gc+4jG?Y0*h<0yt!f>Kf^wn#@pXfj9_ z4h4h{`;}y_w^QP|cRj0CX*r8VO-yWSE+$*GTro5ars{wX_vnlB*8j(KUBJO$Mb zShep>ekvl)fst70bjaWE8DU_)36y%EsZj37!b!s2az;rgQ&<0w9?7ZLYB=gzgtVQO z`wgJDFxkJ0?)hT=u)EZwn5jFb**?2DB~nlq&z<~{5LeZKGX%IgO&)r6%VRZmze_N) z0G~VzBe)Ij*9B6*TE(-R#d$ASq!<7tz&lEBp~>E0-*6%N+9A%vCw59)>{?=j<*?rm zlFdz&)DN<4>VatfrfF#Py#>3jA#FovS0*s_U{y`beQW`ht03D>0k zOLxpt0t^yvhn5$o-<&oINs%0u?kjYBU$#Q-KvQGc&LRX4&dy$Bv6KBF(7nzgCA$Lb zTR{uX&IPoL=}qN6w(Rbgx^v`uQ1H3KGM(v zmt2XBtaiHKazESfjR}~r+K^Ge$JI*NSK0@j%Ek-{FH12MUQX=n=mV7uS3~Oi-$oA*H^0X)*o38b7j+# zp_)}JO3B7{^@PJ8Ne!b#x`X#yY4!<&m)Amv4i}Wc9`56fY8kO4Hl7i(8E!dtw^m1y zyN02&m0Yk4vT4n!K4>&zsH{kCvM$wEi*l)2vTF;^V~CWy^;k82&lhcpoq^Y!xL#@eL?6_(CO zb`~TNH!|c~MS^er;YoDrDX*3q zd?rm;?Yrpf zaHFnlRko)jBNo6EE7!J~Aa)7Yb6V6Yoys+Z#|1o*qpwVL_g+pGxw4Yb2WZ{;<}6-= zs8~h^h3Lb{))*7ZdzR$9bYoUkUzw}waFebnkAwaTh=-y1a~~T1{HKi;`W+uP)M#6| z-`u;htc+@*yS`s!Sh8;xa;j;VIL-F?96#kSzw9o%l&7beZz7eFl~)GWIQVIe)ppe& zk54&}1p*3spg+*wPv>)>4(XWqqg+M#8&gCm;{}os5KW00pY}jIL(&OK4`<*ppW#L3 z>inWV*-N{}w6+_MjU)zqsMXkj!k9bR*O(DW1%;@~oon)2Cp5`#D?+8Em2^AR9TgiO zQk>DBWk>4&i+tBIDlp{C#gCK=(i#dq);Nkgto>=L!}j_pwTzDO@K&ewDI-RgBF{8X zbCqeF!e`7Ir!9M6Ug*4DiX`=X9ASa{X)1f{Q&?3hQ1Tnqg>1(qW6LzYFIGW=6$W{2 zr;y%y!+mm!VVxY}Vcnhi7P=GrqHXi^c0*tDt z2YO_Xz*Y2f5<~^jMqO*>iZqe*D}fS1MENeHo((X4N>CzdpuPt<6LODw$0=uFx+vXi zLC|O$K+mp`+Ym7;Erz84q+?Z*M41jk*FGU?8;lqize<;8#F zA`nyS&X%vT<;QJI;Hd22xl2T`vw9>ObAra?PYR{BbTeCKR~-=Bsa<|N71mp#Xv=`J zT-}lmhzP*p`-ZA3&$XZ}N71%HG?&Va#{220RjBpT-ub4OiiCb_0DxYTj=*v?ITPKx z6puRk8^P^ID03L!jTqzVz084d)D@B_Zb5NBHCSB2@LYo^7}TGOV!LK&-={Y{8G0CT zc4G%P-`jig#x8X`-gSXgbviVX&t!uF$_FHC-L~{C%(G{u=n;E0J2j?$dW&;3|4%?q zEtszjtQiM?B5{>mb0J1dln-@gBfv$0QOHy(bU=Lh-_$aaNh|k}*txPg40% z*!E{6pI7##?hon%F@~6tKVO0AX7`L#G^V zBYP79c_FGfyxcZq!ygmvqjrTzp_~KPB|+drcEb9;T{!ymRi$8^@jjL8BC@q5y|Be) zbdx^JU3Lp0B%{HQfr@t+Sp?VT6(JLGpJzSmB&h8$UD-ro9@YmDEa{O zd^E}6U~&vowLR+$=bP6s(^Yi{=rvKs(#OSoU;0kALH7AwK4F<9MxZK=FZa?({^KQt zUm;y#{ydrKYO-DJbEG@{(&?7nP0Bck$ARKMdr=r;cwJjH#PQ)#s12TVYgTy&mIJ|! z>juVy@mz(HHV=t`;T0^9Id~of@AOM>>@CVZ%nAQ;sa~kz(oZna9Um}RqD$@ANB#M)rW>n?h-h&DA{!=#q(3_NP zqOp@>P8yrpC1!g5N;D<|iD5&dr5b@hkT71BQgH`N9*vR{_8TLotBzybM>s1b?Q!7q|_uzvZ zn`!9)##i6(IrdduG5?q#JhSimqbS~8@7z^CDBtX2a~wzNP}dVh=}fHM1eI#SZO6n? zh_2Hu5SXswBHVIT3A?_Ie_c+*6c}{Og(K3?B^H=!5wt0$KRA67xWLRX1*+zUeUuB? zo8)o%EKSxAj&4W6?~u{H+4C7AWEQLLkx~~48}op2RZ7apcMBt!dF+`XdT<_gEvjWG zaF~)l?f4HQZT0kh`86(9_Hf7{*iBy}Jp-I0l*skxkB#&FaEIuaDxE~J#ofg(&GAG7 z!8au1-!#9;27B^F&`_x-hpYf*8DZSSC@sI3e!Ma9r z+(W*6?@QZM#{(bewR_qfHjnJjrXr*ar@)NHcSn2nLuUh!y%$lW;7kE58h(g{-UfVSH z0Osr?pFJ8dKw9_HVu3RP*YyqAI)5+R^!|=ph7<%E>s_R??GIWHbGyU0e@EsT)dI3& z-|B+P${s~CPh_O34ycG#JQv*B2`Cu`P)mHZ_aH4oFD_-i)0hQ zP0(w*$j|J^U7HhK!X4_Edyd4CR=%2GnevUPzel{Yjz?K$rZCjh@QOYOCbc)O{AMXV z5_8jU?v{{|*6b%|&WoKT-GteaOarw?k+pXW$z6TvkA&mTPrEGy{a@g3#ZQo9=&j-Z z8Wxh$qcIg)kWjW<;F<~^t_$Fh5*X5L7DLh2!iOhRg^hZAaP%BgsYglcpnI_6^_oHe zvwXAd?UmMkn6%;%55*C4DYE&oW6+1{!l$PzHX9gnK;s1(bpP0Ug5)}2?VjX;P_i`(KVr#R!vtj7E>DG2m&>yXr<_8L*f&*`cy3cT}!dslC48qTEKz_Rhi3!5SV8m)?^?uyk&G|5$!$m&KxHq}+A+LWoauX6285~|USU6Q zxT~DvQ=`XSFb`w76Yafd1KoZatioDQT;4IbJ~1&1gm3z~U>CoYK&~i*!jU9tNe{M< z?bugmj>dEw`qDQ+e^L!B>NcOwAMloOj%+sxVPjz#Rg(7$Kx~}}so5`r)i!Ol)g#|S z;o&C<=drQ8v$R8I=?Qh_^v^o#AQ9E6%)BJgEp(5t#@l&`Z`lW`6@K>y!e`_&1cM=j zr5%uS8O>sqr99arTqb!P?fxhB_G|0nG*z7HEpbE7sWPg8^6CcubF^`;dm930K79-R z;d&!liQ7)BX}nHv&O1c)gz?-0o>yQ*#Q}x0K=6FZ@E|8U3Oy*qb4$b8jQN8H!l6x5 zI+`f>uy^|_DIR?Dr;_Sp-a6C@TL}a}62qj&qnUqLO~t9Fnf5`LyE%WNkReB2j>gqX zRuLUsqS(WD!`-2qxe?E8Pq>l)FwM#7kc&~WR4}1GBk0?)3mlC7RvF1~OPKOFqBsw9 zqdkonR280BGH*>wHmy<{lb|2nJb#gK$Of9w>V*97Ux*9JD|8BK$xrqEMf0FhuvwL? zo1(ciRqfsp9QUDky>TF>>%F-_2X6p_UMJ*QH@}n@ipl149!ga9EtQe^Ozr#=PA{Eu zf0`&;(B0lq0OhEfjHECqG{}#%!sH6CkKS`#V5Zs4``s-bLQdm+9U66xf~3o>4a5 z(#0YM8V;ZMhY+w%6eml)vkogQzd%8Ios8vb2D+KpS-K_gr&vI1Wty@Mo8NSmq8voRsn1DrQTKQn?uLmlb3o-mN!@}x!q*hhu%I6N}QEdG`!@2om7GE5PT-sT#MT@{>0s$XcjzuY{V zOXy10ukSoo6xZK;v<2>8ba3dn_&uM3!4)-1rWaCcNp(5ApbKqFD`{ri)EkZlep(%* zm9QVQV>?@U0bP)L;w*&9KqG(k%1cLl5}dNAKanBnY%s6=Ue#{yshxqVU6O|#=Ccc# z)D0FgN7$IP*c+9ko$2&ZY>xmC`qDHoPf@~w?^@wJY|YSl?iCU!{VO}dW2e?cMRI!~P8U9(r5vVbQxtl%AjcMhOX1E(BNC^Sj21KB;h_qMY|==3sGWvOEt z93qGqqh-K73Zf^0waHeE4qX3uIs0Z5w<1pQpw*x`Ccf0^z&4At`7DuIobwrIfNph6 z-e_P$Ef!^9pvx&)IA?0`p>G5$I;19!xP&A8zC92@;l?>lWv=1r*~gg=d9WI%?&7b5 z4cg$>ZW%bL8Lo3`ew%{+8n1(PBxP%F7Pz{+vCVAURF zZ7XYu7%VZL{DBKwcqP@3<@vK| zX@~PbiW(QzJpwAGKJTWsu@~Y*ABkl|Z0xljK-SN%JTW+Erv-Yac_Qm4`svN*S`>Sl zXaYX%U)1-CP>7r_D3k$kJ~EUda&d|4k4Ekf+X_Pv8A)#C&WR3t(T46si1A0gTe#rk zWU9KH6a`7xZ&|ZEn^Zu$L|xW9b8qTD1hfJ&fWXOU2WF>9t5~%3S39&_rJoC;@(;6d z3Qyd{RD?k*xZOLPz0g#%>fTMC%*x45@z~x1xX}$#ii#1S`KfC@Q269CEyMLY|Jlhj zVMfhm`>Q*#zh1~=jgXa_M?XeKZ!B9uAq6RDRcp)Pn1`jFeV^@T`PY0+Y5op-(|SUU zLq0kgG8D6F3$zRt1|N6mw3g^lHs)#T-XKNct;FAo+tskt;K1EUI90HA=^NqHJ)AZV zrQ{%6ck<<%jh?PB-f`TCg(~?xaWfkav6rybqTZmFz#+IC(E&E9cI#0#B&V*HtA4Ok z;LNvC+hwfrM%U_QdEZJD?+;{g57OTA@5q?F`+#<*f0LMY#~>xxD=5Po z_>%MH*ib+b2biu9&l2qZ%r{L6q(m(T9)a*xlQI|W!3h9YzyS9}R;uL$T3iS9EJ3XS{_1j~E6!KP4$j8^SxsRb ze8ARAge1t+OX8k*uxN*G;++2<#4_*_1VWd!kzTvq!Os2uim`P%&Jk4K<+cMsxi#oJ zqxgx!n8&U=!kMMx&;SQAt~F2j{~kMcVa2O-PshTbTPXI>Jx&qTR!Z0Rfv+Yt{x;9T zY(CvMQP{ZR?C+5Vd>>V0`&lbO5@!w|m@4i-iLuB~n374J=i+K>PM-|{#~XYFq5CCX z1VfSat%jdd=|sl|3@Y=*WME}DF| z-OIn*X;=*+Rk8I9yCsAqXT{PQ$VUCqdvC#;9m7hu9!HZmtz?9iYYC5BZt7=Z?<9GX z=IZPRPhHWsTwiTlSV2u?rl!0-?(VjNkS&6$)(sh`QWBC)wPP(CZ3`(O&ll-dh^5Cc1{&stRd)_8>BbH!#MlmVIg znQ~y`k1HMEQU4$hb{zcj21)B-3lQXIK9P zY9AxTXm}ay5^h!%?qTLreRXtSHe=2A0`!y9Mc6roDWc3DW^|q%8`Mka?7AA1^qP4$ z?%dPX$b5*!cUc!krENsYy0=9Cdp0$b9Ctj}X%5)eoQf*h!PO9dpILjtTlsoXgy;3P zB4>YR2=|*fTj!>C!}S8yqa8Xx+?|u$l_0#`76!OLu>?x(fFeb=X)w zlu?JnAwPk6$CfzWYlGi0>E1)MJ*!^iZa3)cKzCd}1X_HVA-!}wDi4uvk&gGq<27HC zMs+lo_Ql2h`U94K1?|E(^G)IuCEEH^KR&3VvaJ%+A!MTb+tYn73(%bRwzjSjDT{@RQ(EmT#l#@`D9p4 zJE(v=^n=9Zsjpv$HjOWAi zt=?$5gA;(=`Z0i`pNaN8N@3tHzTt%B7LZ6mUpyndlf`hs?Q zr+t~IY!Dc$yBBrP*$_dM)MERbfDl1`!}MF;WeW>b1N3y$!^*CNc1_gk`B#u9?uT)6 zl1#g+e|2M}O~$mbOE!>r&}z_B8qd?>e6Bng-DiQa7C{rax+OaMyR~Q21sd^l3a5DY zMe;R^01p`z`f=XIi13-t`!!-g@!d}hb!)BF7BP(b;kBKY(V8(X6&JKTQ@m-k{sy&QCPocUb`cYdp%15At#kT&({s2VuXAO3 z@0U)ftCd{1As3US&#UzyeTc$b(uMiCcjJb)4YeXM%DSvJ&5I`Vk_?TJxD&V4O_6SJrDCaj zM&7dwIXawyMr8_ow(P|or*OXc6$-^jnstuksSo0?b>lpbG3Dt|H{PKc^Jh`^WY=ye zI+>Pt6Y7%g@YM%l@AU{0y|EYb3Z1E!cN~TIIDLO(6AN(o#u1+0#8B?!*b+5@WG4@|&L>jEmF~`I9|{)u?o@798cwU*y~q8m5*x2&*r(Ox`-&iQ5@0 zmM}cR4_3<{cj~^T>heg3vo8g>)08S)x-~>rBjv9Nm+i4$Ihbxwc7TmzKkeGr5BG1X zmbH9QV^&^Rx66RJ(L|CrhBnFe|H<2l|jEJdGUWC ztZRkzV;?DDJF}hQsJnmVcePHUbp)S&(ei45Fw7mem)(|sXTVw$gN8%QoQ?f%EciiO zClXN(5ai;jVl=)^o)iA$GMyaVy0ebAqITnvg+YXZdA~oqqJ7}C^iqtMnU`JleTDA8 z8?d6XVbwdb&JoD9#Bf8!5|19yV0b}}ag8P!$K}+&c~i*ZJ`*NLP-qSgYl4{dCMJdJ znT0lWNDDD5(Lrg@ecrETAUgKw@F}YoTC)u@;&)@j?Jg|6YGhi6F`5|9b zD;~{hSG31>)iKm(lLcqyk4*opS&)-N%M>{I@eOq?XgJa?mZ}c_rx(-Qt^qi}5ID*3 z5WQkr^y)Z;C*++1VrOUKd*M6urE#5*SQ_4@mQ3Y4G*0<>OHfC?* z1wN{$|0>1t8fbVskP*R`y_XD4g!i@O(Q4HMn9J}LT1n|TLedIuFp!w+Ya%*U6E%go zGuznY!9fV#Vh(DNvIN9;;y{I?-dcOa3!N9^ofjo8OtzgJ^5gIMHc&AU()LyuNLrul zn;e9jFaZ`tvZ2xQ4Ept$BV+K`Z4l^Dj8s^zEbS|`{COCw8}r5WJHLp>2^tR#7H3z41)WHZB1cngEsDf`cy=2{IiHX z=gUqNpHp7Hv_g`1gTr>MscDrw%MSz4`z8tcO>Uc)A$nk6Tc}n^0*hAYHiTOijxcy4 zoxHVN6Lej&gXLV#(-74ACkK^6#eH`YuE)8XN#p-*mobtfqC~}u(6)yuWVfv0jT}F$ z=!N>vuW#$1&nUb!#7^5X1oBbQfw9>0)MhkV@a~LU0|hnOkZA3pS`Do8Cyur4)BCe_9ACaoRwZg&S)P=rCLiGHf=@HC&$ z>ysWOoz`fg8KVYfkz1{f_s|*($sm9~63wcbDfF+TmrXoNG;}Bz6jQ8(D<8}}qj@tl z3V?ZKUGZHFpe#gJ%#u&Vf>|CI;IvjCldnibCZ!VLKn0oMivO(&WRM#WK;d4 zSbg4cT983-ZFKxQHJhojGmF4v%z1r)%{jDXO)+&0;n^}Zb+cRWh4$U%MZ7gXGRlzy zR#p7C7>Wn=-0*?j85`0B!FBS|A9gJjc^J7^q+>)9L0js4VBS)vKhwWpN6$O>TYnVG zTrv$7j#0ox0lNxFAt4-z<%A=ZS5N~}^0kS}`V#Rw|L@fIJcBzo&e;Mvg1!$ zox+WF+qS$O>j@C!+vWlnx^;zhCE%HqNNhhp<~^Pwin$=#EPbV55g0kWUEd8dn(xQT zP&SP3-DmwCD^XyVibKfJwKDa3{F*^Cv^w@)*78#E7f#(CcPAZV+E+T*+u2{`thx_w6!@GSn_u;OxarDQK1h(4Sxre1?S( zuA$UK*+3qG?z3}WhiBCLDTY8`pi-V-BEulhNohUnahw@`P$91)ucb?srkY?4Y>QxT z6#8JDtgh*=`g-)Pul58jaq&X>Zw{XnAN-0+1ay@DG^i=v#JEDC|5Bo$5Ptd2@Bv8B zA}T^@!r|~`^Z%PY%UIsDr`fdFU#nN_8=b!cD3uNk*YV7!jEz+{NYFZL-tXbbr=YZY zJe2=@W5`m+H|oO84tKZr%9vh7gj6l5(1UR0R1SiuGrrA>*$oOitp{L&EZkQl8|?U| zoWdd~i^a;c3$rxeUjK`{Y5)hv9FcfUP>~$8A`#y(_+Mp_E;2-kcf;QXy;=1d$}zJo zyt+Twacc-2C}|E~t-z$Vd;6+dfE540%*59xdLjI)-tqHmOdavmf*X^LarEzk!QKI= zEE}(dkH1W7XV%iW&NNuXpn}ZcHn;BVwAsyfE=!tBC>89lP)!Gt?IuuAScT(~7j}!u zStc_Fi8|W+20~*M6x=qeN8m4iAh(O_6bjoYGfj$z$H&ZRUpv|^T z`E%H{uW11;v>ibuq=UkmIm)(R+0uCHn17#blu)Pl>C>hX=YSX218iFjbhF>u4055( zyiCz;?BHcm>UEcR-sfV=YtlXyvC8-%zT*>Fr@FmbhIK06BRZ+c;`yK0b`ko9BUIiH z!@QlW>5e$UCf~#&2~%yo?q#ld69la62`2Iu&=J{V#{iWv?S`4Dg3I<0jJso{rgCQN zFv$kC*v{!MTF&qz1sgljNHK47mK_`W6O%k+!S4Yw5;P@HCK@q))1AByd@%hcoJr)n zb6D;)3H2RZ;c>x@D?VzAUUwFzwH#i;r%8i*&-^c-p{mT~o}060kI+bT;hS$~80DI> z48LQ~wQa?iQO1G$G6LhRg{jD83;M>~h1yQvMmcWRO<;~ggCL){blTJ!e&J*pN8lvO z_AS?^aP^KvuZbua!(?tk)l*wh=GshD*}3~fBXb-l_O@TLOy3to1dY-a}Phc&*YC{C1+gq>kPJNxRp z`C^0?&*UE>5hS&dfcpNkAC0+Ni3oc~s~Ciy2psiLU8R%N1cWfgbh#nia3+M8;Om<4 z)&?OKc-v#c^o9a;4SfH=lbAO{PiVH{XOZHMT?uX-7d^Hul&QwFbj5b`=3A|D5TDI2 zUIZSMt~^Q1Qd=?1sh#IiFvU-@KZbQs>@ToWVS5`Ln6N8Tc9^b=QaYtMR` zZ$bX}Ua9)HdM~@l>9I`uth-kogmG)KqVD$w^X~u1YwEofDKB-@)EZBg3S4B@F<>eR zCc^umfz1zhpuo5BY~@tf?bLKq+)nb;-RQx|Fg}fc6I1kk*)D|pcKJ|gNHr^Ga4s27$Z8yHv zd_y`zZg&5aM>S96M(Fb&OK22Jh|1{6nMrhoThSK-OUP;}#*-KkE!GXezx?5yX8ZWFX=UMXICujrX?#KlqtLj_9@b7e9~kHw5v{k1?V39RPz$`UUbMJS$Q ze2?Ql9UEYq2OpHOv_bqj8df&U&3?l1FX2pT_6GMlW$;;IqJFO!;Kq!IQ>+MeO<@IU zAF354kIW_(pt`yeKBMKdVi%0vJplFh*5}M%?OkPAnFrnvkrk7GH(Kfx(zi)7}qQGG8`U`}y8geP$0=m%&@m8jf3=+{< zSl{9%sJHjsw_L+XkJY+!@9w&WsvK*a4nD==*YcZ-@9;L^@>Rr<8#2FOP(ssld2xjz z4oYiLkV2pji$TxMV#{Kp~CQQk#NU@7Gj0VhqICD`Z|y+Z1`717Np+gC{D zk$o?hw@4|zmfyidcv1g*UFVV!?!+_cN|;YuSjeY;^ikrs$g`fScq-I0rDVb648w73 zOxP z#`Tp)xGj^I$b#huy>k*R-`Y< zG&1*ZqEOdN?`#_03ga>xs8jPfoF%9=&&vdevI%E~{_ED9KiB4uikDE60pt}T9A_{p zY(TKr1u($1=Z;gJRuEiEdh#x;NRQpK-Zlfv8?|uR2=Zp6+FRDGNKcgS!9)UQ8uRa; z?+IqJB-ceg59chI$auP?)u6x0_m+a+5`4sZ1_Sse>U=TJsyEl0j{@i&!jo;$%}v0I zBZ~Jj#M?9P^dScs>JN&r4{*?mk;z(JB%f7lFsx43aT}5|g{jwauwx@>RPl8j?!&DB zMDa@>{DK-Myagn2S}=wZ06OTuXZDGh4}n{vOnEjfORA1)i1!N#DU|hEy3(LwHSdRv z1mj=R5a(_UFAIXWl{_bQ300q}kdhPh9t69Ut zj#IHWa-L}wjYW)BuiPe2TJ^6}M<4;_D(Y)l7cdjAhGDt?GMR|elP1gfV`k;FB2p+FPxP@;-{Vz|6Ab)o)qTm##IM+bS#bK@o0Gtme+p zc?KYhk7!u16UsN(N|aP#2jp7+H+R^!Ccm1umfy`O?Aaok6FD{U{?kMp)lZaSt`T2r0T85*G4Go1t-&O@E4cUNaviF;` z%1x?o*O!zgLvYf{^sIiawntnQ`xEk>d)uz5pV_c!(^bQWdQFdOCg$jV;kmDvEW+6) zH0D;D$NC}P`LVsPF&HAFR?MET&hS$mlx_H_dbgG`kgR;`<-qox(Cu;Pj)RVrh?=E` zHkldt!9fD&P#P>mgFkGsOb5&a-}i%yLS7ecXr_TyrT?Oo7&fus_j2uBw2~NDKQyrL zpZ6Kwcs;3)txJyCr2;Y_U^rWp-EYW)BH>g}{POg<`@88c@4_?y8<@KzhCG!3X!_jv z=-)+&F#W(_{AB<8(BbkWa9cYX)zo5mS~c+jc0(>xjBNt?9(UbdiD})VnT^5@eC;_= zv7MlVitpIT#AJ-XZFsNT-Oq3R?gm4Yq0Iv5&0mBPb1%_wkfp{`cVgh>#MqXxQ4u@CzU?cusG;)nz@u`Hng#ZLbDtoIx&mj8o-#OX&-^Vhp z+o!9hLijn8jlSc9fsf(w;P%N`T)u%7Bfgjcx0Y#PYvMFlllVU=@|uQJr|X{|q6ca?ycQ+K3-840EoI5iqm z?Ctd6OmBqGML|h`?S`Y36AfS6o5i;FH}r(vJh>n8KCnCo!2#6T`s(4c#%SWmbWB*Y zzOPtjv#DR(#`UZfJo+jYuM_=`4<9MlH3sMt_FmVf&xq2! zJqTNhvY-2BN)14JNJH+phL4^TLk|1s0ij9xu}LW(fs}YmVyj(53#E|>hSEy&Pr=)_ z?)X0#Dw4lWvDf$Gdqa`iSP?yn?L6ZN;LT>2V#|@tTp2i52qL5Z#iM%(PQR)XpKjqE z#=)-;_K*ki(MHEULF`%tXK4inm_Je28!(<4KPQL0j%fh}6C0+$q3=rs3e_kclgr7# zi>nkZFKIpLP0-O)g?Jzv_g*O819&H9BBJj~F}^-aoH#;cqc6xakzt59KXm7T$F9{+ zi%1tKN*fq4OGKA!!%renSN)iKe-qcd_YGc*YU{+P+WQx4cTZ&DX^vZ@k;pJLTS|u* zWU)OeUBWia;8RoKHGqk|`Y7PJ8@32@ z0?~gH_=-M4%Y}-yWSYPh$L~Ai*hU{)Zcp8WAc{TN8H>UnFaVCTyVQ#v#IYaLh^H$N|8OLJZmFmur3dP zHeGNq^zX)pU~X2JL9MzW;l_=n)!iqz=s^QnQiZa?Iia>nqe|LDTzyQ~&w*{3jKc85 zC)H>HIrsbZ9laJ{3B||XBxztcD2e??hw6swdIg_-~YDqNcV zaXwCg(*a|s$4E!)ODs+qNpE<-2JUAgK#Tx^j z{|G_<4?`T}2^ZFv1zI^yU^zB22-HqtAMgy<12I+qO|zKH!bU1vqe`saIJe|Zjrgo6LH)$;;A z^!NMv`pOI{tA;>i)c4<9Z2lqW#A#i^9tywKSmB|F4w6wmIf=VqcJ%Gc|FKBLFZsq* zIXVI2P!F*hE4Hk+U|r4q=DS|KJD5C2aPi|`23qvF}I^5y=&(A^&{5FCgufJO$4cuU-`p|ip zwa0typ|v5lPS$vBWjIGXPB9H&3^?f{ps(xS`3 zGKhUREfhmQycUV$2Gne!bu=~xX(N!y!uU^>;?h_aVU2CL!efZ(W-U&qb&K04!hZIt z3ZA)FrM&di6Pa1x;9=)Fy360}OM7(izWX@wm$X!$`T37}sp%*iD<(ZoyQOr+5Rg!H z?c+f3FY7MSWF!54SF?8QSbU>Q^KQ$L`vw$GKT66(e94&Dd&NIute{;RsaGK zPI@=jkeDZSD~da}Q(0a&m&?^n?9$nH|Bw1sPt&m$h5N_73Gl=YQexA%qTHD?V&X6> zeyot4w4B*67!rU?_9UZ}#(5v>rEHb2TEtdov&F#}E;ebSegm~`ChP7Z0oe8Y{T(p{WMvDMOS9HBNgBc@~*( zld1QToYI1^;4>-bA=IF13nA=N-e#>g>raEln~P%*Vq8DMi;aG(1TOXm4^)x7#CfK? zpF~snWtHXz;f2R&$f$f%@)s(k_jUvGGtUWV4a~^sTCwbTXd~VoJC43Qh1ga@M?*HQ zcVc1R_}y;Un1=+PS4b8pum!!zF*;3*fbmsr(t2!*Z96=oY`IaPO{IaYdZQmp+j$qj z-hskBFQuBu+XjJC(cScO5rBs~m}jvoN50StA9UxJw8d;Eo>{{;zeL-e-a9oNLF82T zRi+4Bq-kryFq`@4Q)G&e7M(R4DQOHD^kTsg$#hN{YlWCL{_}t%QyjdBDvS}?TsV%= z?nu8!T}x8p=d5)QluF_r+HEDxySibn#2UxaFyFWH4*ko<`p^K&MbCYM(pnzbnv|1X zbvc%^g>i28WSv}NIju5n+=-h9cZYBOv!3zPksyUy7lK-IKxsrAXQb!WjLS3wwh+|M8|*a){u@g{L}KAed4s0m2{D=-i?X!4_G{?IWXhTdN7iIJJ2rn*9fw^xY@HgV zZNE3>q)&P;`eCYQPQ37|7E4b^&qqe)0sCPTJJH|usDQeX^EZ3AvnsoiBiD(>_TZ-! z$H5UkMS2NIbG1)NYr3?L+=6m&!W_QGMVhc4@JvP#= zyfoqf__Cd}d4EE;f8=du`JAvsuBRf!Vq)u zhP_HK5GHg^%Ny8hpK*VaYcL7i*hoa(^lK~Z}U~zJM@^&t6qpN@e*WNfvy5m6K zoGG2)$PtU^CG@%(%cSNc{W>5+K`O)34rnJt!u>m(oAi#T6h#8q*1zNopseCsy*)Gp z0%(OiLQQR=zwvT*u-8+b!fnE1Z9Up*bp9ouk<8Fxlvc^*!0>=n0=9WLVYb1xz(KQ6%T_t?`HbqVfCVDDLU}K z2T8J0Ni3#}r6+*qDV!g3%4Wz*+1(I5Cib;SIN&$YNde=evPxhjRc`vlshiyHGg6pq zv!XUUV7ME2Y?s0=b>_?sbOkZ_;`{Rt^mXFcdNUs68p+sr9>n3x{YcEPQ-BZd8ria- zh}Mlfa}q>b{L=81qW+9Ym~$y>T@7;fvlf2+M-&XI_GR;={zF-<&m#T9-afnZ#@U!U}3O>rQq`BnT^<+J#W0dmei84M34`jonv2soK2->S>;a=>z23iUO33pYM{1 z>E(r-`Jodgm*poHi-~1lo#bZZbxi&e4l5!CnWU7K%>Nvy`K->NJFS;l2>+?>CYh`R z2$_oI>#xWd`Z>Ot4|@r=Cx4E=8qXY{lNt#E&qGo3u?!nha<|q(X!%+s+^S1|SXO5nDldBZ z9(OhdARd|~pz0NYaNebaaoxBTP#!Q~EE8Cj;H3b`uSMhh7;U?Xz*o3QWB0nOq{Q^` zi>QO;_yagPA})UVIyq^_^!GRgBCcBUo!=kkU)=Wl0 z_L%A!Rx2Uf){NK2Fj1SH22ZZ|4`mJKJa#_x z@Krrf0#1*`uMAO%A;27Y<=~hoT-`7}c48^jY|SZ$>r~0JpFLqhOnXbQXmDvg#krB5 zFMhxT>OKMOkslwU=8M@QO-em*Eaw3o4h#<}SW_vjBHi=_EzkQ&s-|(u;*cCp7ZP>mX(5fO2%Dd6}V>41pPit0AuS^VzMDPD{d}d{k{ao zt6w)+0-`fn#c(aAFApmg6;P@-mp2!k5p-_w6_w;mOQg7K7Tgabkfjm!pWE0dI$`|( zApl&KpJI&@XKUBwXN6;7khy8o4(93O0*xk*>Gu4tfh)xM`lflIH=Hg!gfx}s+_FM( z6et;1Qig>qM>6TK6e!yPDBFh?!FdZ(8@dPW4jBF)vysZ{6VjF_n&@b0^>M(oPe$4< z7JuoE9*71)tjvhmgtwjhst~x>2R+9c2uA2FW(eHuAb-MxQ8O8w2nwjyi^!eLF)5xA zvI{Q5BkMaVkrmJ9Mfc%2*8~YAqL(u@TZE^!=tYsZ!1nZ+!r~P5E&EtHBD8$l#mSjShNYY7@8V9U>{aOXt&YI+pE3kMHz6eBUM-2@yG9i#N-3i&E%8lQMqQ`K|-g!nJ$ zojqdzF|CSK($lVjsx{ekOl}WNS?ZE^3UWV$O_N^|C(i4dfPC8* znC3+(4L4|K<}Ueet!rXDIdu&m+X2Q)Nea84qWP<}x~+IGm2p7%#3vIHZdsSy-!kPU zn-wG{8xAZ^ZR5$zP;HZo%d zM-Df{H~ROz>-3~`PH09q z(!2#1S3w z^xtVizGxLeo0yKOWsF%qG>6IMup{ZmX={rn4eUZ9RtW8#tKl&I{Rh>}H^Y|!fVU`n z+dL8)VqqPJdYu8O?5t#`T}}}-sT)Mxf%LE$Ep?3)NykCucr_!|QWD1KYpQ@K5KkmPIkaq+Y`=Qz#hqo&t?=8O)ks#kVx`NGF_)m zC24(-$8;bM?6`n&rDKxJlX$y2{;%*5DZ(rWHs7TWJvP`0!(S?z#F))|GI_ zqD=tA_`u}`+_4p9ceh_ixhBY(gRES$ku-RGMoCpr{3NWR>Tom060+=evs!h0 zd2(Eg7UFqtseqb29F`lXX^M*OZ?+nJ?~(XgJn4{GQ+P3f5y)|h=q{dCZ|Jc%_&L&c z<-@UeqYT9L<`Neoyryrek}>LH`K5YXGffNIf?5>9p_@R|n)*r%h8aolUibK|rEjs! z4%!qQbizS3WjNf)k(*x z@mnR3wX)-%sdR!AE#h1< zKDPbS0&_@d@%Zvi{^ENdw16ijd6)cE$AbfcI5ma{lTUnKL%^u#hF3S2WuVbPduXEl zCoKrBGSl3`vc2(R#ETMUDHes%8q<>@7BT+TX2eZ1L&xm0yOw?WpC2^`%OL%dX1w<( zjmX~sA(Z;s(ZOZ|>1?qCKYQm~Em$8+Lf(zGjS;7L)MFtq_37C({uMNPs*z$1_k|wQ zs`^vQ!kyx958-DQdooFn9%)9dSlWnJ=Ch|9gei9Fcx9~Vsmd~D7i4MKb;dCKOB*D; z_8nBDxf1q~{d6M-uL{obtH=tlfNO>gQPN}?(VBY5294c=M1O`rVa47RsgL8OHR;!R zygJZyTLIxCjX)!bor)Gm-PMMuy!x7uN_xG#IKCTkk{~-|n?GFz4tjH&9y!$;+F=%O zhfIm*Z@p4t4jK)_bO}@g^N_MB1dd(|p}+g;JS;$WO1g;jlqZrMj z1w+Ba_qF_$+WzWh+`I8-R$!4)1u_ocJb#^SXQkLVl?-KUlFc=&GAyTlhVIUGNL^R` zm>99c5Nlnuc@n3SrH#vUE3Y3D`q{{Gm$23`TLUS#nK=l&y~Tuxf503ugC6gmNzqox zviDfA;+XoBUlsT`+vPj0&_1^b@Vgns0|8WYXh_Z%(QMnnl8;!KExk9zI}PYm^qGR` ztsw?kXrUSIrO9Ui3Dh7@$6ComaB&M!n|^8Myl&kfj3vVD*Oul|Um@vce=!(g+X1MF z&4|!LAaGLp)n6Qahuw2W9s>Jme6O%9s=XbnfRGcPLH;i!!Mszx77EF(gZDzqOf7Df zwM`_)@!I>v>8$645eas{f3Jx)&aF1@z+^JAI_(`CMUTNm@)bD8@4m68!PoM2o}XYC4T#x?g;>G>d5B7(lSv-*&>k;DERNKM}xrl$n@dX^t5;gn!3{*?QU|U9g*-TVl zzQjz>_tqu?6bR@k{d&S{cwwFrl2l7AzNuhaVay4I&_(U~TU!x^iPN4^N+zsA^dNOx z;7SRE;IrOr;ShRiS6ye0?U$7l(0G-h=GCjS-hKhT2ght z2J4Mhh?3E?dt~vDz@q?>vSFJ<8g3(v-%1cDOL{{zXWH}2+_HeyKc(Bag4A!D%ZvzS z9%Tbl!rbKBB-eg^KlSl|TNOLuSKloYc0O&uROj0QIJH*T^}yRL1pK~3iHF>XTnxh%8d`x#nkUNW%#E6cFe;s2vV`&=ok#NpnoQPTh$p8b;ts(BknS}-vKmHUyc zxtW`Y+uLz&tnJXbJkavgAe1}atP<&)$%X zoUVVf{%97Z9{sWeICW-^NoG-=p*c*DPZD>(&QF$0F!m{Z1@#Satzh9LYZJi}pHpxd z>erklo2CyClGNUs=K*kBCu80MRfW#-`my~IuF>uicP1{+0$kDT4 z=DpkNLb6wSuw(Il;MMT^To2+?IvzIP`JtG-;ix}5_g-=pQ1E}4Q4#YIz{egmGrb+E zx9`W;ykB%J^`wek9>NRA-dyLQX4TR&-R%*ef(R!+9fHw+ymJ=)~s7_AZlWtk5c2(?{&e2X2`t#TcRGLD1 zK9N51H!;*-oqHUe|2#$x^lRxY^ZEHw37E&MNwHIslYe9Z_FK>-u zGFsJ}*6^%@ih-S_A(xsBSk3n?^&24`kCvlzex_%%xf~|Y0zk6`Wm8O#>5BhO1Eolba^D>)&4Fx3{-pg-+>qW4BM6?w&j!}!3v<)?vtFR2deF7eE0Gzn)ezLvbA^K zuki}OIH%ARZzh3kfl;k9u(*xb3R*FbM-Kve&&c)E252Ufoxll_$iB#_YG14z&aitT z1nwXFwWI0s<82OF-EW1W9^|f;9=B|bbz-qudEX%hd72&x5zwb^yjk6gL2cNA~Xap`*R#OCqg|Dh$O%l|!I*C^} zALKqpzo!$$3ye%8g7cPbzT@h36pO&C@O`2T^4}{WycRgan7b~unSq=3&cEdA6j07_ znJs0e;6}M@2c_`Di7$##%B79)3VU)y7O_t+d6%29(okQ(NV)GGLXb#>0oSIBq{^79 zN7lF?*A6KHUv~m$$1#Rg#FQQueuc=J0K>7;wpri#m};}7Q&GDdPi0gSG|DyeDBX}f zALJenQ=#%MttlE4S^7&qd5i5?`qoS|PFHxv&uR=Di4D2I0|EP=65TVdkS!k>o3Uur z6xi97SB4(a&b5j~nFg%U;wi`~C|aRI!b~|+TH$6+%v;`0;E1gXz{&~@QskFPf|!D6 z7H)LkKd^GseIL%XXt`Q6SxG#O7D}0Dd*ziqT`px!18-wwyO;WcfE0`U(o;XJz(L;Y z0sp!3LLeJ8t6nIi!iN*hKjN-2TGU`PY+Qt<<^2X9t(x7lp{=LYN1#BUoiToprLNHD z4HS`CR_#cprtUp}&Ex(*_*x4j>HN1wp^Qy+am!PRK>`5XT*>2&P0)VW3u(!X(e7CUh!OSnbY@iT;Q zxU-}o*vsTVe(0mq-(7;^CGDJ62r{D$DA7hdFa2)-}i|xjL`M#kX!oSZA%OKM+D%46$lBh;t*Y$GOMI7GKNvR9(Grg>! zSY9JoZilDjlB<}UW=J>OY7U^m^J@9Pu%tD@WLqrj+<6S>SPej^Dt4-hKhPn(6z#)$ zdaWn&k=2VuoT^V>bQF+QX|F|`Gv@Ry(Eqmg@LALtB@~mtl5#gO22wHQNUhERMmrNi ziKnNHS-v`EyWLQLX543UtKl-51C0IlA=aP^Aw~}4ndd=j`wo$+bQD8Rb`P?3!5w?+ zPf~nr()ak$ry%5Y5UqnaN6ZJV)3V zzdN{QG8IWXCBI;>z*SxaG$fl{CIIFL$EjR=y;g(i#6WINn!=5MI6!^a1GX)YYy=;# zUj2tpVr9d#!zUybs1$JLFC_4*DIk`b9Mjfhn7~5_P~&mVLTP)ByG?SBO`xA_>*R?- zU70Vll!_HIc4B-cQe5klSitLnorg-7$r*;rBDnKTtrVMvQKe?8@0hksM2E6U0Fn;i zqN~V3+_gKKMXI?_0FmNQ{Ah1VvDbX>QO^YUm^O-()ND~?N4U|up~&G>YFy_97vzYCWdasW29i0c2k+F8`#Tlv-mqLygyS%?BDhztNUxo5HeQ0hkRjp~2 zI(NIr2YTt*!X@~yI{A^%XjwC+mxk(rxFB8j&#-|VDogKhJ*FgYd}> z)u=|K0;KA^_!C)l;R0UA7ZY_vtSgnSF1K8-h0ZWdR+ahmv;(#CSPlvWtLg;B$!mc* zF1=mI4;q~gJ((y^OVkVyJ*d3OdTX^DgI7Tgp0w!k>wxP z#32mdatv9e?@}S2GNhZxzQ`{2nM3Vl5CopUM#5T{2w>uMcJ zu8yp&UVsC||33Pv0WCHG@srtDBpurK)ZKwHDT9B>3_`Al?5ctDJAvbmvL1GaxFQdf zNbfa3wb+fk!&tA=sH|PJ0dhkk?H8`gq<2ZZwS`XUo$QFaDqM-Z}5#k_M zr>29;SVqqbx!Atw*qAq5tf>x4HsGY*##4H5Y#UAGxBxfdV3&K`?4<9ZkfOn}Tgn_z zZA(z}xwzr8n9k88t=asbHC`5`4r&!Xvp`Jh@sw@TVfPx0lse;Z>>BEn@8%rxv>Rhqx z3LW$YNGEAMggux~!-gS;#{HiNEt$OnE$86KfLf^xk`0_dm1Aj z-sn(Qc5RYdIx|)8tXE;(+WnZCH)0b-kn3PeY~e^%%e|ld^ZV9Zwlj?s^lq_ZGEh~m zLgsMEvpR(Ki&dMKxsz=5lfX@bd%BKEm_M88|M{OY19s7c0tBUR#RFGtI$G!=bPoO$ z)mxI=?K8WHM_HMubO>*{{*Q`d{ndMzG>x-qKwF&fCMIf4*#ieLgaOPO*NLwWX zWbS9KLO}>?MrU0{Z-0yM>wV>VdX>1)7vMT%7V3#<`B+J(IZ^o&=EUaFdhufb#V8rgfJ#x{}} z;+2C>pRlV9+u`lgDU6Ha}akqNpgZRag_E^#|rtW zqBtQX%GAn`umwW1R7et%a455?HI~g(Gxi4YNqYh7^2Wdm`pzd6bUjke7MIJ zgS){N_*b50U%12C^Gz7`89Oj`be*zA-eg`cW((0eWKSsR5E0FT6%(%ki_eST1P`=| z9zjU|5gx{Hl^F<8nJC17anx-#Mo}$*bZSFQ2HrKa25XW3w(B|p1~|}%6z3%QCwgEC zr&vFS?b2ns-c;CXMH25R}>MI*`dB1z&2FnDI48J|i5O8<)meX>?wju-sZRga>SW>7MJb~IaKS_OY3wT&(+R%y}iPv?1xoTjH zTv+e;^h|}%O|E#Bt?OK4ffV9>e_Ler8UsBMB(<$Xy@k zXEeSI1;Q6Beh)(QkPu=2iZXSM4e&8nLg7Ky{U<)Rhcwf3&Xx$SFF@ZSRvsJf^`pbH z%x)b(K&0^(kltDf8`&_*#<3`mX%aRg)yI?|_eCO!=*_;4xROb44WCTdtQw%!PVKG- z{xMK;#t7{JcBTru=)!;xi`*2S3&-N~_sn+uRfCT9p_G5w#(ThdAn_?p&wND7q5|Z5 z-AQ)n_BLr|@3Oxt&yNjNeKdJ#mw!RVa(0|hLbevn>tQ8Y%RmQ1A0)nm7t+k9vrCbK z2ZKv;%Q$=@xCh1Q@)8r#mxIeW7{f>FU2JeR@0F0Z>^>~AoX6SvuesG)6%F-zvY~Z%u?Nbde_$D+xagPf)7c~&hqdM1z`hvA-1y9^c9liz z{yZrb#X6v$rJY~_HACmq@quZSj;Q_T=+5U$P2YKll!(ZqoH7y7 z5;IgstErG1q~~^xA)(-SeT%7!UHb18G%Rj3aq>j1Kxv3->)s7PW#%)m>;|FRHWc^P zR@%vll8nIGj(3W$or~WxuH{f@efl_Lm)tV67YSjBu&^OyUfon4ui3l5H7%Cn2!?DK zm$tAOnJQ5)ncm8#101FQV%eydwq}bGX>|Q1!w;}A)O_s*d+cJd*f^VjUF~~WMAA;x zl90IUZPLIN8(<+984Tb5VDs4Y7;}D{qZlFru$16-kfu+K4KbdaE?uCbL(+q_b{E#z zDOsjzdRq6GWB3g_&x<&~$Nc}XJI3&K&^7kFxS<~279PsPE=V`WG$+Efid*$*uzKSb z?X&;}rujjfUSi?ei)|uo7+Mnst9Y@sk6hp$z6DWt7i!a5XCAuT`rkzGDv7mA6m|Dv zVuh&3zL%ijlT<~_=Wf7ES`fDlunU~-1*16zCy=s>UXJiGiy1t`C%oUD<18q* z1#Ey(Tl0{U#5PT4nD*N-dPmd}W0lmGYTY`-2Sf$ovxuOpm4j01%iu4tym#0R`KC@K z!|?bFMwl3e#^C|2)l;46SxDc#U|&|dYxeTLPJHsWK`iX;JpGJb9#Nkyd9&xr}6iIS^sZkEuAi13ehDlJQ_R9%vGM6)FqjF4|n=M^}Ov) zG$X-91C?8@E6m8B*t(=5k;WS$Z=1;&!$w?%UxEWz-p6^lrGVpiM=XGTku3ttwNwoJ zP3P7wF{ZKw`$aXC!b^?q#%2J7j2@%S!i8wPJPkq~f(;O7T$jljB0pR{8dULoqd3a0 zm~1%pIR{?XVpu0T?8mGCghv$eHqHEv2H4h-x+D74vGxCi>OvO`#(vYA$1g#|O)}xZ zgy1`9Vl$0Js6U0L3U^+vQH-m#H{cf%i*(Em#104JFlBvs&{jBu6p)3=@ZB zDe&q8A?xD3u3{@c8Pn}>CwR7a_$GFIG{z(A7MALU+tIdlfK6=4OO3<@#XDM|6vQ=Q z)1If6pmB!GMa@;u?0e=W_)ulIVMzB4gtS8+hdJ zhn1!qm)i4djtS}xMEO}1oEaCHAdUR@B_Z#@*@)Zh?Aasxa3*>mnnL;uWMV-%)?5a=gQHMZ-_Hl-J)sfF5?>4-r(##v2+0fo!oxEihfXF^&k#y zqt<@r;Pe-6#<3ysv9lrm)EsND)em{uJyQXXb%GCU4Eaucb$p?2umA-_wCTsWwY@wQ zvsDIo(_QtYp3YAEQz9SS*sgVzMyG(!z2kY8{?|*A1$j9M9(dT9B9BC*&DN3O4lqf% zwy)r{UbF=Wv=*{ck$@6){b$FuL7ndq2JDgcOjCGO#mfX;KNQy0LX>=I}aMX^F zYWO9z&rn!A3jHBUUCdr`C4tMYMkrSIhMS3K4k`EsY4drjYXzZYq-W9Hr}vDBuVJGp zwGl`+sqM0Yi1qehQvO2_L&D$L zx(GVARRFc_C*8H5e=r~2)+r*Q!mwt!0++{HR*D0=^= zB90e*1orhi42&30l_)-bYz{gv4@dR}GV&?s9q^ppWZ5W`_|@Sr#WiZiehQcH&0eLh zUsHAGEIRF{>akJLf&qz1NIQ9#Kc7lkOuUPX-g^=ek_kZ9vB<$Zse5{TEk9-x&RijJgwN)x^d`xwo5A>hzaYH&}YkPCMcRDoo6CvVE;y{SZgble7T`LTVr+-|H-L_9DGrlCw}XAP;VrR!kU{${k#yLBhBZy*VmXhb z<2|{Bxa>;93u5S{kH)lz+D>OfH9jPyeAubd{=8tONa6a4)wSRR(bc$K%PcV3oM`@G znHV6w9hcp57|5l_8(r;+9*2W0pj-2cf$fO6@&3ufe- zcyByiMv5j24wNK4ufpY4~Ll(1gqTa0EVumq_W znK-SVq)#jie&;tXIrXSY&p-w=81PYQISP89nS)#Vg#4ms;_fShg%V*3x9smO?sr_{ zmCwi{HK=aP*>@P+Ig(R!KwOg&4@7llZvpEl{~gw2x$2o0!Y~RXYMw$j3ef8;=caGV zv}knGZCvg}(RxMz0%>oX+vVz7@-lm3 z_@9kh$ogq0->o=8#hCAaV)TTpv@(toY5&{#u%zeys8tdqRO!AG?p#$!!MQS`mV+D7 zGOec%BZFE$El7+-GM&1SIRz&2c2Q^zlTv}z$xbzy{hp@IK{NMdDj)7k!N4vc;J2Zh zFuBIx^h)9M7o8Cj@4&H%+cKrcRHxV~MPvwKxr(_bh5Le=A^5Uua$|SbX?Cx~R(%*r zhPLyJ9?EEWEO|;}iPLSVN#wP1z?skxVl_DV0Wdr}Xwf{YGVDOIXW~q~UEvB~`Nxll z*g@wf5tVEV9nAtIbjAl2$Dx5~d9gv26bl)wnl+G%EPrC4U#*$KV>;3(Y!81J9u`<{ z>5aU^m>0-ZsJHrIHqWN=j26ywRUTjfFF}cP+v_FNtDwe{`_{d}u<+Q|$iN|?Jykrd z_9teNsD-v|2{fpCfO}B`N5{2zm+qWpd}MR{^Zs@U5#YM;eT>+E^rVwkc~A?IUAa?x zInX!NH`$|k`Win^viu(EsBk(l4EY=H;!6Z?ef+5Eu8Gn%c;5>6o&#|dQsX8;@;-jv zCnmBvK>T}wX$}4EhganH5p^T@Wnxs6Q(+qXeP$*ozv>-aL(LPSj6U=8mR>d<9-6II zWu4KUYH_jp_$l20%TDx)YmVn(drkrfI&3%Y<^O)>EF?Vb?kgBHz2bKl9M~g7=d+u? z@C4_!(u8X&{FG2&G&^4ixx1?XKhfww{+_@*yl@s=Z$n+Kd{d;*8{2c4_T(rIWS)Vq zbhii~Q(y@Jwbp^=Fk;1Y-eEU0Rs0QM-&9L@-B&pwW?NvSQk@yLB>l&tw(4Eq@{AQo ziMbuXg(RO^Hzj(L%o)O?KfK7)gyc9IT+I00bMZU%Z?VwFiM}QOd6KyXWgM|Rl*0iw z=;kPPJy0F-R|Fy&XOjSBVK7V@W>8{K*2FFQd!`qR_nH;nO%r0U@liOZB*Bd+Wy{0h zD2-w6kUp`bHt4{kbaPBEVT>wy#Kl+Y^mLRld~;6snQk(msTz*H-i`A#IuI*wE3_~; zyrW*un(YR(hexL>@6is=F#2K1?CFMRHQ^!K*@`fGjEP4hT@2X-lVi z-}wkBVObe)u1}WqZk^9j2MNVSM4izi3)lrgHD?woJ_QRJqlziZ==Q9>ZN?jAVs)^i zGvkcfYKq13(OW^6yMc7H`miZWbNx%XHOn70dXzRFmGa_2z-iC{CzX(gFP=)05D8SB z^%sX)=JSx-V^RQ0dkJ_I3=&S?FAlyIql3jvB5^Kp3%P*%5_SpGaAyW7V&b+z1n*#|@_RR@xyu|7jfc!=OR`sUhL}hi)E61jlnX)tu1VMq zB04h1=|5IXpBCsOGFFt+EefPD{Fd&MP|RVZ&;tkk%k~R`Yfn5CswfswvC-ESa3?aa zXOZ`OJi^^$AEhH{vv5mIBPeKq=f|J#+Q0>6mgB=APg#RH8BZ~(?ZU<1om!To) z_LT)+yFPmhkHR()VOB|Fo2%nN6$J%|0!T;GD4C8ZFEi8cRMcO*%MGehKlo*`Ivln=88EPKB&!4zwJ&bVqK}tgHX{2NPe`quy7bWn0rfKt~5eG)81UT8mo%kSJ-5GYEp zQcGS;;QS6azLBkEIZoex96{ecJw!iPXSJ_?ILvR<^zb08qKv*8b;gY5^*6QS3vmu)6JdhAa;jS`f~owS z$+_@ZjH0MMm~}^B6304DeJLrWTXlU*lM2C@Mwf9Tj;=3~M9f_eRTQ#WBVhFyxtcDW zx&G)Sbau{L*a1L(`#Y-|INDM82X`+JSTfH#Y)HUI4rfp9eFBD?rn*}J!M2>isu8tY ziQ201ukA{n{jN;9=C=|aBCj+yAOt`#4I3A8L(h8G7Qf*voH+z5Ushh_jRkS#q%-VH zvOn~cnXUY$0v)?zyRD~&j>jV46E;FkE|9CEdTV$t3XL<#})&ow|{lwrOe38M`Z`BNZELhjc*98l0pi zS9|eC`|1%LM8*o_s4dt*fbQi48;zZcPkZ4g*9-499uV!3?&>>D?_PE1=Naod`a}oh zkn!V3pV)>EV@)Vt5_NR3=ev2R#}(>3)(3}Ywym@a6)fE zB{Eaj%X|aqwCY`4Dl-O`^vQ!in0-&5G=FA_K|Yp*d(AByB!CsU%`*+(=C!^fErM%7 z57OP*K=h%9GLX@|r5ceV1{!fVLaGt5b@#t$9@qirqvlpC>7{Nhkn~B+Ju-rfwoS5&+}s%$6@~{xdRL3a^zB?>vW5!#a->hdol z6Vw_!v{k+71leDE0UjF=eAZ>b(DfIml1ZxzWF1y`U-NFL4wUTFo!phjF*tZN`D3h zn#HRGQi$hgB8K3@Q;pG?GyTOODR>p3>J~|uH6u)k*g*%r{@Kk+SXiFXtL2~=RU?GkqhkaIAGZxnwV7*D-mxoLB z$W(o#_F_8}Of_z&y{yX1zq6gsCeOTUl%R;X+@hgeNZKs)HNKkXFy7 z=X2Ws?$@<#jF#hn^b+NkY5odPq%kz61TAqV-cS|UzI$@jt|IkRuXdp?I3~ruUrkEH z4_C_==}PsFFFXX-m44qi&gbTRP?Lhu>w&k^i?NMxd0H~w?;d(AA|$LvM|VirfTZ&Y z1}KIKml7{#Ia0x6;NHqni}HcupHN*fqh_A8H-QMK#!`q|$v+ ze)sbPxrP_N#i(~RKUl>-5J$M@scb0}%i=Mz4kc=`rQ9yIc7Hh;tocr_l7){a*c@O8 zar;eX^Y8e%B8m!VcKMJJ(|M}kM;%jj+x{h$m$zYzs1O{YKM|h8qfnGLZe4*?WdCr7 z@-A94^ZO~FH6e|t0f~myE^_Lacdjbbb8+oN>Z>0eWB=DNKR08_k`YDOi`uK^(8}ka zd7^GVlmY|?0?d#Nv$8u}`=%3EHy!6K%AVx|2y1ov%T+1D#sjbR2#;P4w}_Kr#NUXo z*TIPxUeth?W&dLGIUYT|XV@U0L}K(Bzn=`-Th)N5-*9pImF{r~0+1xTyUCxG^Cq%z zc+pYx^-Y>f2z85tTxfa0wS5%qR$D%(B9VSe@?G#ZlTx#r;} zBG(Aj8?SuO@Kxb_LQj19(_HD0P>u1eNaLeg#4>Hvf`zzJpW9}0-530f3Y*{f5}$l> zdUT#m*0f(2f;+x2%1Sk8z*MrDB@^};$wP4ePALCaDaEuI{d-QYZW+PKydED}1mi(c z@e4hEOBOF(`K#_f!yKM16($lyin3KL1FcM3=0d^#a@{s*+lARZKaYuVl5;oFJqkg+ z+n8m@ntr3gJ)aP?b%+orl_n^&1R<1}CRAz;ROhbs$}3qV>X)}+3Tqa_j?@m1-fRH> zKLEf))>SaUgKasfju;pOH6nrlSSITqIt703^cSCB;&93K!zQ15e$_E?Q0;J)P8KXWmiBT+GO-#~Y2 zJInE z8Sk~RY0+cJh*eTkkSNM|5h1vSW@u|0E-4;YXWSCz};EpDIL=!sJ7`Y}XifH*5k zp+>lIp37~fjHd^PzFYM)EJaxE4Km|FtkoPKz!IaMQPQ>!8mUfNCY+TCYK;oj*5+Gc zWJr&YQR-Z$ATRn|PvEg7S%Gu@;Oc@?=i>?rcP}sbOfH0jK?yH5guPdeNVTQrZ(Ttj+g&Y%VWT~Wi*+D`^h^n8fwCJ?&m)VFD4ke0Ck;KOT*x8#GpP#|GUER88kC6p6P0>HciNxeo*qwqtxa}aKn{FID=PPNIJ)^}OsQ(&8k+Vf zM30WPA6EW>)#-${oXk)VKw-y8_f8t9wr~S7hs>uF|43iNMvNpt8-J` zIp38dr(;NC)5;hACs(G$|8StA)4gQbQ-(%yscgEuGn@Tf?zn`0{HN%Ddem}sfXQ@m zm){k76OVlme`81d$N>)&dRl}2TX7A@ijIc49o2$dTFeoBDiJIm{2DGp;QRXk%xBA$ zL}{SDKpvv_yIz@0fb2vZ?>6QXcW=)_x2*Mv51*R29hqqg`jvc239U-d0v-L>4Bulj zLSH^Iw5)k=r@7Gr%=45L@2o$zm((+!nFq0ccLmCiy^IC72H&vz5vVX3I2>%KPLRC=D6s=f>*tm|JtLL%pB4Ho%zBwO4uw?Dcqghr8 zX2F=4h}M zhsdATv@_KPxn0U=j0VBBZI8b}zJEk!{|>V=v<6u{r?_g}flbX;(#T_i=aI0@kQBtG ztLX6$pieOCr8U}d*2yIP8*n&c(i}-3f3ZE*RQou={^YP&geti5fj0STArK)kc8>8l zfS?C=WAH^q0TJQl$N6HvrRp-MUhwvfk}5TNc;VELW|4$C45JVJZukL%8&>y{mfgWtAp3@7i-+^P_Cz-fya0>3GtA0np|*4BEMA zhjAK`M)W895MBR5{`Ppyv7b35$bfWXN5R8Fim~S^N=xHe!UJQjx@kEG2quxDBE%ydCxXIbxpUmbi`K&J+HqQ=m^dK_g65<2z@3j7T&n z=bLJ$_E>IoY~e@@XcG>E=YMBcAt-pn4y=4P@RezFDrPENLK%nr> znm0BVN87krbe4ddwT-?b)J>yKoHm7Nei?FLBqJj|%#;-_*Btk4Ml4uerTe?Q%aObg z;L+R?iNL2(gns?|Z-%wD=B+Fu?9YhPv!pyz&u{P9SR)XA*$t{FL0WT+`6%qg*4EM6 zm;(=(rVf2_jju72ic4Pqaihv9nhYab*7Tbm0{TIro2s~6vXgc?Nm_oCks^_dGA!{5 zUPlJHj61L+Emv{zbxb6--Ug_+uCxsA&H$9-Y58d0H0J>|g-h_lR~;icXl{=^px|yt z?I&Hr2fzz|b4W9CMJF5@0tHFO%2q^#Am);-cIH&{@D1Y|?D=Hc-5A5KgaMxc4fQXX zvx|#=V!g+<&kY0-ql5%uC(A5(eg&$)E6#939$0|AvF8f93+UJ?wFaER)XRm{s+gib zuw%1rBUfOBeV*==yfCaA|09;SzWmDeJsV=vR@B7DuUbA@m9%epR=%Jno=p*r9(NU0 z@}fw^`ES+Fb-B>RUVd*jHvj5LzE&unb3V7#N3NjT98NKANS^8b%+(w!#m<=k>d?+ zC>V;bZLY9A{x1DH8m>Y7D@xWxYf*vu%$9n=Nk#_89mhpm;=8sDZg%SAlhW2IB51s} zd~Qm~tVKvmLTGg19IIbLV7kxUS8XLLyl1jNDsLE)Vkdf;sU+#27i{G@GVlcszqog- zJ~Sn3%fcv|sdK07O=~MWRn?DT#jb=c%oAcm;UVZiCN84B%8()R5kGqyf)`x`toNtT z*Yw$cfL)XDX&Ng|NtGtmol|3f{1;p}q^fe?j0gcM0{tHZRTgahQHx%QNmj~%Cc1Z6 z)~r5pe_e={*IDe>W^_o6&BTVAA`ly9{NhcMl_^wqbG{nt!EuUCDL>>=zS^L?rFSGW|R)_s9DJDMdoNYqiGw8E6eqT_uU0U6Sc=RO3YB8-m)IJ=p zdk)Gf#?>+=qfDTV%pe{8{S9e?=h6mc%(sRjQiDjjcXC-Y+~%Zna6Ucapth*aES4>1 z$8I4a#tEfxGyNBB!c6EaRD=*SZa4{#Wf3(icwQ}<=U8484X zhYo=`rDeffP1!-e#v!PH9LkPj2X`0!;WYrc(R}Gz)NSosr$A*Nbs(|4oZ8o0bsM#; zL2nvdb08>yt^U4!s>;;<-w0+@lvpxb3}YV^!3?XO@CTP^n&33KG?1EunFchJ57Wm` zbjR}V(BS;8Q@lEGb)Wvp+=|HOa7}ni@h*iAGA%Cz*01mCgu@Z0+)qI}HH>>~^SW8w zg;sZ@l$&E1r?&t@RoZn$IDpey>62F$QG*8}460k4`*?aw7p4rWuid3zk=KBH4t-E7 zi~Y|LU}e=>VVBxhD+`fxMFl*^8Ig|#L=J3Y+X@-n-PEQOZDQTNaj70-OISX=J&jh6 zZO2VJ^?eD?MTP?LQ?M+~k|6Vqg|Zs`P2TwKKufgL+_P zcFK!l4*@*L7zWa1v8-E`u8sJTzn7aDo63FYU32E-6J`0~F| zR+Y|5;ImNveUl4dX&;(D)kpdl3F;4*?jBm_6|Igc)Kko?V#WgY7_k(qnI!dFYzj<7 z^2A*(WXj+5I`3FKF5=PS8^zR)2F1A}7I5PH?Gw2l&XMT#qKV^LDgC3~mL#_tsgbDv zE6agZF`$7+8GAGP?NP_vq?0;A*l>87P0%cQvukyJqaisNqLTU7R(SJp* zLvcbR1aey->iGxg%hpnA*49pKwIkJx+;-c^2lSgX)qhqP?32MiE2$eW8t!5_?+xvSPk9KyB$2J870`{laKE9{5WOnUD8Y}0Ph zPmA%{%M4DYnI{^jkdS#TtAPNqdrbN77#6bfXe6t?cws5U+|2VV*=g(6n_Sw3h(if_fv zA#AWmVCmKo*=RD#ylj%#x7J|TCjAi1S+8V`y86;w*0ph^o!SnR)~5#&0NP$kBV^}z zx)>SeRgxVs6J&y7!-Pcr-K!YOe*-rEr!4gR*qhv_T!gnhNQ9ijFyn`bV|X zl6qfDB=W9e1afA8!Gln&u}iu8gYe~JZ*#%*vvq1k_aJkns>RJv;X}n8SLdkV!S5jz zAr-9ti|Z+9QUdX|e!Ne?9qz%61?SYj!DDVXM}9To1Hg1mryi5qN~ciZ=_NDAHpxk8uF`hND*&xn|72FTaZLH z-fHaXSKh%9WP#JiCz_pM|8nr|m)8UXCdg0<5X>MCRFjrdwbt;lUFQdItnCkGLjcSm zOB_}yRU}Le9mqn$$McmW+Rd4i4_`1in!vz?kTS>zxO?zv;{7HNoJR}ymX1++{Xl6W zGOk|M@gNF;`vw0Gvf+_HkSZSY#B?H!TPZI6G>X@U6x$bpLHjH6Voj?>zV5D*(PL~w zk>Gn{Mzl|%&+*BzOdzhBj#CNlBlBdVx3<1(`bPp78v{*i!GKJfNAqlok{N&l6fm|) zp-LjuLWg%74c1Pl;8nr2C1gyL)1t+}_IE}@YUP0-bAOT_Cr^OLeprLv2I0^dSEBh& z(>GDV@WA2_em$SU82AZwm$4i5(yGq`I4sz)=X1Re_p_QZXoE#~{gP*=s2De4bIZnh z5sV&DTjH&4b^g^VrSH}Fz z#W0f2;xRp5TC(K4!TR5!anBmOMN>=}2Vbp&{fyxQofk1rJveFDsDzl?Plbt`qMOk| z$m!+Gqp6>I#py(Eon*5eOPMdvUOh7JzAsAPDz&>QcE%Ik29|B--WKeFaEZjz$l+e) zH#!x)^6qE5mO{Ab1pT87%FSquRX)WHOfKH#Gcuc`Q-Pa%LWs_un{E1H6TJ@E_Ro6l zz*e4VB?n;79Cd!#Glg{raz)JwAC+Z2liu^W+r!N!)P#_x=3g2HmzHs*L~cIo3T-3x zH0|McN-pa46!?CyDv>{NdZ(kR7;9^2(`Nu@tLLR;GetrX3$*0gvBaHXURA8Z+Po=) z#_9GG4ui%(dv1jKZ>b(7Ks8hXIwQi!;1O#~`H;{tj>e$s*Kwo%I~YjL@D9j9#8c=+ z&8BiLMroxY4o?Zeez*Rq0U(cvTA;_d>AImj_WnNK8+!uFnp7hgm<<_F+XV+^NxoYd z8?3DoHe9Jq_b!(0Dx_l|rpWf}zjGqFkO7$-cQbzf)juwo3_OTv~?VlDH7pzXcB`U*vyBiciPJ~?;f|k|4!4ZyiV(D7_(AC ztZpdC2C&rS0nwhy06Y~~`SfGzOn5=N9$&Gn;2@z&rTFuH6e0euneq}par)-0zn2@- z#LiYMZSnL8Gj=E<^~c$0%UZ2pxHJ1pFd1COUM&i0!v1@^(xwL;;(H*=;-MM;u=*!= z7MO6tc9F2DdV5W#BxySIGKp-(FTaI?KY(#sbG3EoG^NY!tXZ{uv_9Iz@$!`mgrZo3 zCU(m6lE@6qIZes*tOiF^aR+QypH;cmY0fCpMjVgarDTlR^UC z=>N2zBwLd<9X)Ii2mdD>;W44RGbh!Nn$^JBSrg2WH@-VZQ5?Gx@M)v*0vlg3>%;ZTQb0})pU)t)X&TX?tt4cN`?6h!n0_PTD%MH>@KaNu9L3X zbQ~uJDmWiKsjrV84yL~qA=n?1i?@xRT!z`HX(=+|GPE+eWjBSOfdYxo;m0C(_d-2^ z2JZTG6Cxx*H)fKv7%DVCR^7ng+!-$U5}P?Fe)!m6v9GVL_!@VXCHc%7e-^JA^zam< zq{1CFpew;94Rd0XL4%#_T2-x{K7sKLXz75Trxw4-m?~xvWy1K%mf-+wsPD4#?g@R7 zM3_F4JPi!ee^oWjr4p@26lVF=TG@b{v(c4|Qvzo^9s#^aNi?SlFk^C@=gBv%zn)2NRQ!vXhL-m@Fj~5f4s8-sQD3aqeu8rI6NNvbHB|Ev)HDHSwN% zPG=pwe_l~z_e*UHhX)qE6Jlr`NXu;pN?y zr=VJ#j50w2d9la&8-*@0fu#8%nSVZ|!sUZBT?E5Gt23$wxP-$H+tk*_@XWrjNh={d zpUZ83&a68D`ZiL>nx56(mtJyLt{oI!d`vEn309nf9-{zWWd(2-c$b7QUmb9d>4Cy^ z7I?N<{6u0jXce;b1X#S!spR2-6edkUQikJSlTGr$*d!!%e$0(mdV{TU4Bik~{cI{kO9gRj@~l)VR#PYqYpf;RXj`@FEXCX9Wo)v#QSN{0W~-gc1K?3U07 zIbD5Nf=f_0B+Jp0&32M#7xceNDD=hLtJ&0>Tr zD#1bN0WA_j(eNpZSN)st^@y_PqtD7(omF~$`avD20CF~Ox>gu*(2|c@Uy8?t&BUg+?nc4~ol)wsKf{KI>~H_{Feq zrIu>_4P28W?3dB|kdfMC!Y1$OvIp{k@gdfzB5VdB;vBnb$5Ce>A0A+r{LE(NZvRao zOTIZQg9;B=%M3pNbe2B&oxDVc8RlL4B^b`#xu>Z1LXB>~4%bV?#IE@>JP;?*U-{@; zdP}U^TMyLNe6H!@%}4_10Z;q#u*i-+Gnj{(pWeYLh9iB< z9fOIiK;Fh(kiex$X4FaP*8T@D6Aw(TNG?8>H@GyYG-~Qulo}uPKC6nCJs1)#NR?e- zo+6Vqh!jeeuZ=!At^-Nz^{3XJZZQSl`gnr!eyh7U$rZ))UvpDGV` zd@H~R4?&1b`!9_^n190~yfjpsNkt2&+xsZ~?ylSaYyD3Ve`xeZX%QyoSS)ta7y$SvCe>b&$CaQ|80n}Co~(sK%P-} zf#c1wvCNe0+`k%8#?alRX`l~O%B7)6dZT3Cow>)VhgSIZqE( zGRgBgRLB0Jf#(5DRhn^IXPGWK$1gl1>Oa~Y=hWrvDwOmC*Qz{r6NmBqu2;eH0^v%G z163}n9k&DQDTR!$aGRn0h>tv~=sF2DDJeqqBoryESnT(U;c<|8<~l8HrNq^FwzU?m zm{jjTb|(e#tNQgS#5!Lg)^RYY-bA++r* z*x2t-?i$J4T6hVSIF(UekH^DEw=4tBxkLCsiU1WHEZbMIk`D*{@5`~GI|qfUE4PsW zUnb5^Z6MYq@&|5O0z*OC$}MDw@Lc8h6{RcC>Sl5D$A*bk z3=N)y>n>V&TBMc-%QdzsTS6umi@jG8Ia2enot}uyV*$}^vGy9SLikl`VK}t!K2m`} zRF@{%GtFARBm8{TD&Pbr&J~v6H2D0s{=U5`o?fVvVl!C5AP@n8W1cXC%E-B;XKnwY ztoYiDREyXfpkR$(7G-*evB9MR7cj|e*p3S?Cv^*A5(#(va?2CbPM=93tOq!`Jf^^h0r58wK?XdV)!V9Z;}nwY^b6RO!Wcc zYLWTFm9^g4`@9534{Mf8HYr`%VBxYaSZBJ35ZOnPFS8;=?cSx%3BylNq+8-FDivsW z4kUG0o;?%uQ`3d4m)S~nkhaWX=lY9IRefK9E5S+N8V!K00PAQpO{l=f5MWMWq5+f2 zM`jV*ZkUWhnd$DEwn`e}%KUDo-At!))9cxFyYLDkNMF<6aLeo8d*)d)q$GcYr*}e! z>~za>3uaUl5dVdyV2nFLQWSA@i}1Bvu4kvzfi_)6MnUxXN3?#tT&frlK^XANSSP=3 zE%hP^_2*BYv0Yak=-Ie|DoI(M8?k;z&W7KPVyO(DX}^;vJu>}(T{L~{X>x<2wpK`B zX4P*+r@+y8?0yneu*A;7xD+vM(UHaoLpfURqmA!h#c`PxCeeeQt*ITF!$1eV&+DrL z5n6g)#Ip1~Fm{wa43692IC0Twe8lHhD;pTvAE5PGE>VmHQOY^ZSRWOKT-4w;G}Eg^ z!>|=IaU2pbf-hGhuLy%V)9$6I$-9j4l+r2Xs9s`rhHR^_{wrYnUKz8?YG_a4(>V&a zx$+Krdj&}2pS29FD~H=>`j$`Rl4mpFnO0N5f2YWGErFj zF>M&OKM{xc)w_rnvcim2GLJGPCL`!W|6$^Mhr zHLj}5@|x=wspC*<{0Sp1m(tUz;|>ID*^qC1`CT{!G+DV6wHaxRD>Kp05v-Qsce{_i z4P;(c_Qyd^BIDi#)f*Y=>L>h;yEWxCZ1mWFH?gs+&K>sF4CYgY0jr!}#_-QkZL8fC zWN`I_ZeRY%`rt39)8DBsyn1*Y{K z2MOo)gu6+B$xDb+xChm$|HGn(VzCtoI5zeIME@YW|JeS2(@3@dMsDBDy6zRAz8>ME z+B@9Luj!(Zb+R#f{f|_UPu14uk8*GZLdsY79R>*L0)%)O1&0LYr<8OI=sq#Ec1aHAII{ZD z$JK3l!@8LL!~JYSozn9MzyY*=5v{}VGaZ4A*bZ#?AQenE8RxHp2+nb1i%T9&S1J<4 zwx?hoQE1xr?9~%t+E$U02X@5)Na(F(AtJu=&wV)1Mug=c^Djk-*{oV+rNgHOls(5v^L?wGiEA)?F8Rzk=7thj{eQ2j8Eb`y&qMmZ=a6Inh!;uB zrf`7fbdu%oBlY}E50G$YoO_MJP^`z4mXo6>8Sl*dI?C)>Enco#{S3>dPdb-RTw(R{ z3h0qc^>?-X5P?Q`5J?HC{J1Gd`#C&T-1}Y8VtW99sO!nP3o^pTZ`|=H=gJ-uQtIf! zHGw(~gyq1+1)8<_`x6TLe%?TLYfBTJDJg7S93+5&=e$EfI&t79Xyvw=NcZjT9$?w6 z)?9kUss0qo8%vX;Zc|;Utg9kcioRYHt|r>XkgL zD?f_W)p<{Ji?!L$xY^EUZnBpd`$!M7?^m=rabTJuZ;h4^_O-B{akV{IHa^+tD~cHb0nD7xD=T{$tw zbZ@4-Up)gLg0J`~SgxujyL|wWhGFd>0Ko-KQtdYK)!+5>-PNsvUa+nqnz)PHb{Ok5 z=BuA$gz)&YLe$sPfHKG;#0UyAL!{Mj#}Sv9A*lKQ)-X=r0O!CJA*&+^$|W>94UD!l zzBJ5Kg?^T>3OECoNSo-d65ODVn*@5f>57Fy{dG`PzJ_7cuTu})PYlW9W0MJifcL+T z{TLtPEEvw!q0FqQOLAz1%@O4?G{71=+_-d_vUoqHy@@3z{H=H&0S#i_z##3Mm?cUL zT|ZN#m`Dap+}SJuq0h(U?#IkJu}x!>{f^Tj6sDxQImnEm&g@&0I}U(WyN=P9M4E90yKxw9sERj=E0O|5>)L+i?r}+I0_|CM zeAl(io$ssc?S?G{1~XnaC$!3DmV8p!%t4n}FUqnDYUn%9u$S;JNP{%zb+{ zi5EqdV=&z0m&y~UTMvFa+`}6TK`=O~Sj8Hgtvu@elw;3nMa93{*%?ZSL|o30QY&SW z)WI9%ik~FzqccLh6#kBWwDy}E1i6QEG4RSlV|J7gn4bml;+M!hno7=#o^~Eey+(TO zx<4DaStQGx{zt;q$_n7e8$NC@-ed+UPphqKba#PbCGLe#INc>lXG#1)A$Sa=YkU<1|l@p91 zu3U9$pRyOWA4ub(c?h??2-%$j&7Q?J3gNccQFDb#84)>E@fJniC7-3YL1Wv`SDg}y(x`27r#T~PB2S5G^VUZmX%puH8F8coZ z@ggV*2BrWqPCk`tBp_iY+SL}gK$*o4pY5E05C@j?i%1A3_PjSj9B5cg*iY*!#j96! zq_I9a0wTD~mAV8crX)PCFw@DdS3i@soV8$|xbLGUpHGwgVa_mTy0r1A7Uo3TbO1yO z??o+#c;NuVn+@tA!)+V22}Gov1P$yA9q zqRGQi$`i+WCftDqMcb>_ef1%*+icS0N5Kg{qJL7lU|KAzu7Ov`ilLlY6z2FyQUx`i zDS?5*kwqlx7@c&u-W)xg!ygX}*PONY@GRR6q|>2sz!`P*O5uJcVi_6Vrl6dY?xE{t z*nq|$gurD3S)xTO(dN}MW1*J{O@yehZiw=S`JRy8maM@bG0P7K*KFfn;J+H%*-50x z8EP$%oTKqOA#x!y52Mr2hgo}W)i$6;H4q*T*kdFf*NptlYC$cNKbz{Ed0Ub!{eCCc z;Xpj6NYN~Q%Ur`7{&n{(fUyuQOJ`0r0euOHz~j7+P7;4&ero8r;6q&;vepk;ap3iK zL>NvGfLyuhm1kticjlG9zTB|ayP}M_IatL}Pso<&<%QZ>1)lPOa--D_u)=8RcMTA( z5CBt+r}zngpLQNo6?EQsok*rNpLc%hrVv()eN@!?s+M&Nn0U~b^K=RTkj+b$JMMph z!x`qA8Mo4n;Q|iD8P0Qj2^okRP%Y^qaM#@f1%_U?H9s(WZAWvdftYO{c1AvMpTO}b zqe-TV1J|wo9V+4=Rt1*tZ}Ig#Co94|vZPsN;TqhAb>9H5&hL2m1maT>Mca8y39s7| z7rJMlZ;b_G!Zc9+ER-!%%#E{-4PsoaF+b;Nz`(QcJOtSK`XdphqX5mmh%FHvd=)@j zZBHAy{h{-c$)IvY@%*)k+T)J_fOHx(v}H2Fi>RC<>R0JP4<$Hp?cuQ=g19|pa=3|j zx_OxmK*NF5)xkb#+~l5}fy*yba4|*CIn&Blw(8HfN>X5xnAZ_?uxoSg7uY7^7TLHL z9TW+M*Pev1o8ayP1HW-3n0P(m5wy0bf^d-24LjFb1%Z!k1!O-&N$&4uUOo5`;&2c( z29ButWg6Tf=T1=e5nvG$*NQA3FM3Sh*ed_B!hfc<$m{k$GfU^cX!v%8CbKxM#~^%A za+8Rp@n{Q_B1I`}bPKiAdl^g>gNngUCE(^Ee?tG_R9Io-<$Co2`SIV|;%H8qpI72s zg1(gzsHLc8n5BghE&gvykhB&rzZ=4W7J%N*DGOjwu;00LU+V?uBWJaQU(%Mn>R zx96aLlmnV!OUbS@YtYLg3;GAi37K#pELH?zk??@AZAcu19eTuhBcK2J8YEWE>iN&f zm>bcKp?ocInlCmJ#AvWU<)(vFX-k}@Jjd3?3;T!!#Xtm)ihTWj0Eoq3b)vXtDW=E} zU6&EmLU~nS2%aoCkt9|YvuwcR-pJ3;p*_AL_-cXtMyHm?#e*XLQiOQ?K0a}6#N6?L znRzgfa4|VjjNI=TB#YT3_JIaKH~A26a&1Q&>Z3X+U!Uly7O)uL^oR^BfPPos#vxa? z1FL#gH_fD4boP{O9$DuCK$PkwK+{%OB3O0tp#cS+XoMVgPmDgJ_D513FyW`bu2Q${ z%J3@K#9+%|c3Zb|4<1May%Jye{Sj0W{$cD#6cm3p& zp*ZB_5%{m3ADn9@kYAdRKw0pHcp4D@gTQIPIMUEKdKn+XZm5vG|72wWP)GiX%7_7| zCgnIzB)HwzQEgVAjo=Ei^Pu6T$k!R*vrL|Y2>Q`t?)m2nSQnq&$8|3RDG&Vt@jleX zawB&XyZ)Q_H*f$vUAT#D`L$lee!3HlRcpWP=0qJV&#&^#Ubd`T&OGKk_>vTPk~(kIHGy%!b5f*8E6DCl;tUZqB7(Ce{tujso~h zq#7g*Eni*abYbQVL6lV0E+J5|^V8dl2YpVJEpqrd&~Q1i4{Nt!(u75*&V}(V9OG4` zsD_`ls!+BxJ@DMmw>Kh(dh`yf+nE$gTRGB}&>fyi)eSH78BS>RKgVY<`pBM@-hkq; zI`@^E*Suu!@>3+Ga|2-hB&xBwq)B&l98`tlZ3E0F;Yp|cI1osQh)XZsBPsH1DI};O zVT9W>ibaQiUljb*{TH?XexDygBQT5gG7nr3tI^>BeqjibCYdbXOh4asOHMu){d)I% z>0N}PRyD;o7S!pIUDmSw3PV@H{VFOcUehM`Q5w4NK--$rK}zF}g(MB+OCL@hKyTk%AyK`{(kHw90U@;gJn zhZY)&y^ijX+Y+JZi=9eiPfuBnNzyT#>`n7z+dNgu!(Dub?5Mh{B86Q*k}ZfOefz?5 z14k=Pnci;+pHZ@@@P@#)jfy-}^b}MZ8=rxK{ZeVyU-T;9g$}bBHi>K`l3phNl$Ny> z%yS&w8?*6I02@4Kj*%)ysTdr~tqK*RK&ek{se(U>%sXZ-`RCPKSdkFaxvSK(bw5;Rb_cZ;bIp8DBE?^pnD@L*)i&b}QW}9pI5ztkAs-E|q=yCw&RLhdbhVv94quc&4rXr6 zxMj1$_pyKt+z8on9?;6!^ip$2gwZ!R=xniwqJ3Mocf#_%qb+iemPeSE$Q{OjbJtUp zf5`?O;gKbad^1g4i!Ik8g&TJQ%1i-y zF=a#c#d9bB@V*LMoKpDnFA0#+6Z3o6*)#diNH97qPGl?KA2bhg&fYJzK*yM$ zOO0$ER|Qe`W1{itI7;Yaf&otGzBsL3RL|M7%{f@s3$}0WKdGu8UxU1q^s^V(cHq9( zu<85)n^6qde2^bGHHwd*q^4c2!8wcJ2Eu_IgQQ(B=bbLO$p?9#V^T7?ujCpT;!qh7 zvuJcytcgVw*~>u$GbZyHjm+)vH&?bx^-I9bcprBBn=~HIXI{3byzUP+9{UUZh7oz# zRUD`rGItft1k`Ohb!8+HyxP~eLl2At`R1K`NrerP(Z9{)6Xr;n(-T9MM-EEuu9<*E z_m(O(4Kv;IgQ;?5Mq#W7PWDyoeOG8jTK!5G=CqsDMHy9Y56@bADO@sk(XiKRfPzew z&^Ot+F;9mZ?V%JTG|P!GM3(2k>usf!n8J9d`#ZrqIg1DmK#o+t^&m62SRcjCFV2XU z8G6BAf`L~&Sxk^LxKfr?^`6Q|CPZ%~U;lr@I}9UMcn)Ok8NF}@C?TvY1w(%ar>!j5 z44|A2SiuvlxV!s=OU?oO;F*HW`QiTD?cP;|qr~-6_r+3*&Gl)TfLirhtM12IKRq)s zyH#U<$d85Z-q0COyjBn!;58ClnuAf<&#i7p2}y+qMBD-vhAj19jMZmumCJgqgaipT zH%c_uVoWZ!Yi%^GcXpbvZ`AO{64h!pz#q4FYzeX62gs84Et-byXAG%Zn_ALA1qPPL-c<{WVz7{HG!M>-w zCPM#3?$n^z1cxf#!#*YYB*7M4%@rE1PZvEKjFk*8G}r*T)@pxulNz^U zh1S;>+cbf2UN$2$tXG8PAPgOgzE6puVs7m5+2I;OafBrhp#=>7A9VWmrW4x`nhqzRrRXsb2jz^3~;_HeOa3lliK0|JeKQy@IvmVm0pdGI#M4J{gVL-{V8 z0syR`luxG`yJV66*642S`aPg({n9A;>E{sVR~`!55bEx0q#oBnm9}4*zc)QI{9Oxs z-)Fzj+|FNHD5JI*(dn$UT=E&hQXH~CzGtSV-DV0E#jpB?xlScMvwsWOp2ks--NS9E zzb(kMauykjL|{7_d{|9^8JuWdwt$Sk;pUB$;1D*<2xz{ru3=vl)H9kYM+WH9V& z2BL&TV&_rl4_gC)a13BdMSop;c9HO7^U)S(W*$M3bwIp4mf33%WD6u=B^6I@Sdks} z?;|e+9}!$mT>Hcowy%C|#29lZa`qdTmf$f@Td0bexCeDem$fjI$KYYDJ36@2JzFlP zdrrb(_nBY`EsS9&p}h7~b6SIyYeUc5jOgWb)(hHEz2%N>r>hSv#nN4D849%ZTR!#- zoZbeU7k90d%0O$SOtr#-k|jP;KJ21zZTus?_iCO~USh!?63)5`$zzv@lXFdm3m-p3 z&749GFcNra$XQ_@#KO}nUHpwgTI9mF{fMlq#YWLIi6a72DjHPl-0~o#l(xLwrcB7p%hlkCRS_U+fNdliX&z1UXm9ad9U7 zgyfnua$o*C31l-+6NsMo{I0(RJkE^AK(qeCB)jW+xQ?D@GZWZJVArZ<_DG4?xnlk- zYDYo{nw(gPsof@?p&EM-yd#I%8x4WdjJ%R(USZVxwVKGGDGi#gDOaM)hT4Z1pU>$) z8!>77U}~i+6Qz{dlAdkigXOB#_HDl%h^kC1djeB@p+pgrj}SFL`pI`0n51$Kd9b!* zJ^Z8j{%mL+Zn)o)YSQB7L%D5AMQHS_iejG%j$dh&2+cR5$Yvo)36PGlgrF~SJ= zqJ362QZO>bwPL*z=Nk)0Fbmml?M}#7=$zZCiz3OXXY66lQT3AqT}X|$ysqOHa(V8w zKj*9X2^MT$hoh-3>a+r8P@5V9;luK`NEvaLCj9h^okK8~nix8mAbn;PT7g$5E2tCk zeOGieSl=svertR^TWJ>MHa0%}?gqn~+;w;j^I2)M@^d|x%Z46;`(6})b7^Ecqfz=5 z|8$JtWRHjNiz0LTd(cCYJWXcx%l+LY0q@y|9f{7PU5hYi8!*4|8RmRz zL>y_A8)hwo2FfprZ$9B?_u|+HNJLVTU&uUn;9p_(pFa zxWPuT@v1AFhJPK&B=om>ht)}N7JFt;e`TOw&r>-7>Fedh&4@hA-ix&gjstvEA}|zSt6h%){N@6>4AL!IA>(afiLet!ta3@& z9(<%N9(Dc@XCNK{P07PB77Yh)(@^gncR?qfJ}+{dLYlogljG*GZxDd^x#I@p(eg|$ z3hzQlkd_OL&^7ylOKdYH?48OiyKw)mQoqGR9UmZv*e?Jw#LL5{s&EIez1GBB$Esh& zL7)2i%-0k|ej?q=>K7L#HKVu1r4BXvycD=9+72HF^Wked*(xy^`>@%H7GbqjqhJ?0!p z1El2jCz>$S;Bzr>Wz8&iuOIE0DL_&`t``~3D}-f1Bi<3A5i9}6d$CCAgFeS2V4Ma~ zfFvF*Jv3lL%gD93@y6SZ2S|lFQH0M#xmPhMnl#{jU}n-X9b!ofJ0ca%NJ*&6YXm(p zon;uy#ln(&+b#)a=rRWJD2Ri}(+z_aV zF2q{2j1h!2ZDxINF1s#76rP@+1m~zWQE+GTb2f;SHMI3-Wu2~GWR(*g_b8`m9Vpfx zzh7YD8vKHrIGu2^Pu0t>UolJ@Z2k-_)s0vf6I#c3ILKwSD{TdUqUSySh95>b+h-Od zJex|8pcyG?u5c$LohtuO@x#tmRTz`iOKZ&(51#o~2@&IFV3sy1=mN@CY)-e)4LJ21 z8i_&_#HnE@hVqdgH)m@D%E73x8p8w1MQWW|wtkg8Kz8gODdl7?lggjCb@ z_YS85a2GW48$BoKF_;VXMIm;lohLHS4F?j{sKn%eGFQhI-#5fXivTFh9k73Op3?Aw zk6+gY^`pQNlgl+E>UQJ7n3ulkd1Kt0ce@7GJwFCVC!5ax+XZg-oVZHqywS=oYF-ve zAONgf6Az||iB_y~o7 za+i`b)WNG%1|3AJVE|?8zk@jkO zU_xsT74mkM^ioJu6ncxED0LoeB;oj zjwW19{iOy@H1$Zs0QmZK+eJ%uc;INS!l`A&pVB!-SW@3aA7Yk`-id(7)g7F96`^Wa z;f|UD3_6eMNs8pc@2Hr2AbI7MP5SCu@>7@UF}b*qz}jx;K& z2@l}3glBX+X%Ms2n?pw4^JHt>)?-nj-mScd$xt>e^dA)?sE@xN3o_90Y zzxDus^n|}m0i&y|tpBnTWn8d_Z4SA2#*d6>w+63OF-V2UNniEQy{a`Ah$*}5>%Ztx zbbguO4|?iy&#aW_Q*)W7E1cPiEqMtD#p9VC8#l-0wY%ySHv!tW^tZ`3y_6@COs%lm z9x22#Jb}%vB$z#b@}D{C+LsHGcQ=1U?Al$`5Z&wch{hHLMb-)4F&`f{Ne*yV$)&N)vjCfz z!TeTKy;3FWD8CRZbhe{nj%g!d0520@?SIR3g7W6u6;EIbZOM@>_ zUW5ot(uw6$vz~`x6!x|a;lF>eEcD!$Sb!v=9QN}9e>rky!=?vvp|;Pg7sY5|*>wDP zH$&&pM<>Ygu0qTN)gnCfVdtvnmcR)ez~u4Q?+N2eEGWM9beaah4XMLycQJjiJrn%j zFmaVu(@OfHTwKURzyof#acClx>OnaSw|x14@qEc83~F+4tLH~?f2a_hyB?=1WxgJ; zr%V=?-MTsU{haFwPq>YzW$UlQ%$Z#-u5zWcO*B+8->p`&fI{@}HxGF_TcE(Cut7To zn&0Aj&8{6!KToOg-((JSdCl;u%t9!E=sa!-d_bT*+dC8^5YWLdKSq!UfFXPTtYsB@ zy}RB;e}}L;F+!Bj4mknJ@ zY>dQWrS6#+73JuTRvE+G-~0eYKT07R20r8gQQWq8#&c zHP*DEE}u_U%JA{{2{;BkB7nb0<*v%yhNw|fbtX)4Y{c)*tsWPIa@pNzFI|uF<182L zM!hFM_gx}sfnsXqxuH9Ocy_HzqiuHnCINrTuXXQI*D@P&+&Ko1ysL zj@k+0l0y)Wen$kka z`k@MDJ)fzKuDEV}W5gq?v3$VG+q>^ZKP%3s+*Uq84@O8R_liGGa;7G6m?M_tZUh?Qp|HFe4zNpPh81ErV5Jg~ad1mmXh;l`jW0BwB!)? z1qbTbi{``ra=eAyeJ9{!%+;lejggSmmVI-;-lPd6j3E zamct(?^C8NF+>a7o;-QILjfDsp&pXRbDDao0uxvcMGw>$?+XcpQc4Ge|Gv+6q+RuX z9K!%vTXOo$zLRUXbu9`QgSIDE$f*}+a@Y{va*=Le0Ovy-zP`y-^djM%=gn7h+j!e= z{y?%wz#otC((YKJ&KrPbgKYZ0b9~PXp-RJ^Z^GbUc&m*Sr9DL(hvQVFl}laRzI6xy zz(F~=T_4E)^%nh~Xa%MEzxG*(3WYOpFm5t3rqpSWM$wjoFMo-F4JU!;P#@W`@`-RJ z1v~C>m*iIUOCHz#)uUegRX6)9kV*ab!3E+DH@`}QxXntNu*eSR{RHgxrn*5|{~D6A z^f!8{->d$IS;A{w7YZYZ#$Q+2>O0tWVZzY21H;g?hHrfIQwMjWfP?f62Fn*ojB|qr zz^aOwCL36zFzi?0iVsvLdI9@?hS$U)(h&wIGeiSiO!U1L@LtH8w>-2B>faa*{1v|# znr_2jFwIWt=68W<#O20i(`Z@26Tgwibvh90%y@>j>7+r_wP;CACA@C~y*ih_4G7%j zvo%dg=y$dy1+>t_p1mU-c0_O@q|qm9Zz3#hCMp_=d$T!pDnmWQ2xl4M^;8Bjz(02v zTIL$46Wt@5OztLj@ex>o^;Fp)-<;JOVDiHN3D|S|W1R|fwkwbqBQrli;l|dhAldo> z-Df?DjeMw%A-BwqaV*ZZe4AWCcOQt1a9rVqj>)}0YDfTZuxJIX?*s|qC#`J=h8Lj= zl61q~rU>2WX-{iD*$KkzxP$C2W07XlA*o0scgwu~UDPHxq!yY>F9N_h{&*oo+fV6F zGIIeO$O90ffGr!CtWI=BCA)PvJ%>Cb)2Se0Tg!nVq8@c&)Y?uMh~ZfRlu6igOO?zM277p3FM)yAYY@jr%pc$> z*#1id9FQEu?!QuIhvh{GfL}Q;VCy*|aZ0&cIyZQ4O_^K4{s>R)+1is`rTZsE^)izL zj9N29I;9pCJ_7;QSEEJo_Ysol6tuyI%9S$@V-qB3WH4o_0Nrl%+K|M9;9=`(%K~Pe z^9m%U<^A$0SnxDL;=9NiC^VWg&zxX-bA4o`jx7@NBpg+{|w~t1#bxxXP1Kz|?fyP*NGzgi!XsSa^(DMBK&tix3{Es_w z5rdFgN-H|TXkPcm=>@Wlfpp;)0r zr}l~fXg)2?YsTlQyukC%UZi*l%|wA*F_<6R_IJhbTOVHlCqL`RWKNcZwA>OvIf&C= zwO66?7uc+D7Nzq($l#t+v1?0WQw4NyfVcD()xN!=p9JS(!%Q+l|5YykaQTVFO4OCP zbah1Hd)`@0-o|&Yud9b1wGF&sx!L#(06EJTwX#=UHJ#(SSj`y2}E|2H!N4 z3Lsnq%!Pn$Lc~}FStBi5D+xuG=oGZg@#k?%UOT}c@e0ECSH2@B?!Yx9-odNTP}6^9 zdc^$~NjIl}8lWmVwzffhUWt%R#l^f9vp?abm>PXV&@> zQ9;HQzX|yuUbq927a5}IiR!q$?l_bdE&s-JyTLIEbUnm<0dsv6X3>8=V=46LGlrY; z7;$jqstHTmA;yvyUWr%y5aZ4=$De@w;O<-G7Q_%r!YHOSfo9*Bv`yb@SV#vEGzlOg za0Cc6tRd@US~2X{6=#slSV;_MITW~;==oPoN`cLQ=(-myf^}LVBhpex6#3wLQy;7g zKsn{k@zgAvs49|z z%fhJ`)IDe+!8pPAzGwFCM_{qes?{RVtkQ969vKL0fT(4}ta1Ly4;%D0Fu+>ZycFIL z^6J|Ihj`Ma!Pz;+Q`@OIm|(|Q<3C@~xC*T5pJaMUsNtmd}#+YeaGI!H%w&wgeowNNw7n z^Es_A7G;0)BD*Y5kYPXV-C+KY9e6xhWJJ!L=^AJXv#;^Z(S;>qw_63DT4*3)`m<3q z(Gn@gDu72k%&PqPTtS1~VOmYlno*I5sA1bU9W&8qrawS7)o#GZ6YV}g{i%pn zryCf`W>6kfRM}V;qG8phA6M}=j_O9(yr(b-;Nnk}rhM|mbLSP?@>%r=Mm4dYI4&QD zhICfDN14n{-?RtG&;ht<+LDSD^;niwkQI-;JIy^whD8jdZA#(X?%lW z1l%Y>?@||;?0s5$v0LjF2#D6^SV|BsPjS!jxW{<5H=emg_9Tyx`b}cN*1p+qk_!9C zB{|oLdK{&AjAm7g-k6Q4_cyYnM0MoXE&HmDksL)CJw$-*sUGTdONdcpX<_$l>FD=M z?YXv(5WkLmV~LrsYOPYVtr!y%il~^~Q*8Xqz}Z!}=z0(RimK$@5Q!VT(=31<5n+P8 zyXlvg8G4&qM7S)EshTP2{fQE#OVA-dM`d@s$`?cFyODI|)A~Og-^0>NbhR!PCxtPZ zlMpdUsVa)pto8=?!YR{#%n-j9Whr}(o4|xUbGKM`S(dJY^3wd@9!&^ z7iTExF0N|yrPJ>IO$7l@CcIYuUXmcPf`rk!hkjLTjwaWHJ*hR;Tw~a`NUPHq(0Eq} z=2DxR4%x7{J|bTNczpSD)~>Em4b1^6rPa6FQOKC9YKA9o&i1#YF(Q3Wp&@X>Sz?>7 zU1x|BUh2Te)A4XC3v~xuuzmISQPY!XOp-;+F9o$e(rRzmYIioaN@Q;cAWMqT(*%BlWX#+~D$I(-)dF%A=vU9e-7`Y&x{wVb4 zTBcYlAfnr&2w8V=dnLF77SCEjRnJAZ5m<-+1ttRyGLK@dc!tOUp znM&oVF&%6!OX9zU7U)RZB5-#^uCE0NuNvL2t@GHv>&1S1YzZw;v1~mJ@i+WG|25U74?toL2 z^*7bzv=|g*vSJ;THjcAepNg+0$G(+8y)4%Yf?@uDOdbFQ5m#zVkp3VwhMEOWz)$?P zfP>|&Z+HpVim2xEErF5(wa9=PBj<~*D+nl(ixY;z! z9ZyX^=% zo30g#eExO*_aoQ$0e&|r|71_(gMW@P(PH!ryZUM2S2yf}j^P@h4)?!JN}7*Xjw1Hh z4D-o#F5q1@e0+V!-6#oQf9D@gmq=c3^_(?zo8s-+b~;U75lxVD3-rMjinoT$#TP(- zSkoH_V(cxWTX1rYKAYoCJmB@fqFS?V-2?85>r2ciA)$u;?Xyzi!Wd4L+|QRQI~$>Tvcbml+TXfDE*?-kAT@ zAsW7Z+;oG_CuK`nDXLa%0qo|muwjU&YRwyNgsTm6wU@D;Id0gnjIF`Ag<#z@P+`Sn zoBhDRg(yc#S}(Ty_>@IaP&pLG5rcWzziSMw`ZuZb z#V5cieA!Lg{(hB=qp8}>ZYABQ`!g_;YSZjf+#`~?F(U}|ok(+?VaJKF{{AnEU`bb_$27ZzZRX|LLmV@CQu!cO2Y6fvr~C=zNx0K;p=D?}%CyHB(EC2V zlwyxt!fKypZK|C0-mX_B_lMbgIk}XFLb4xz!?9(mi24kQQ(GSJk1$zZN~6D&6>-&u zU+c|FOIGoDn@&CN1XdZ~8cquEDQk-b5uYkyoQd@5fK3BgI|oB!{${)V$eDxGMi5U3 z4{pd4idI?&RI8A|To}9#)$9$p8S7y+J>m$=Z!lX%ij_-McPNZKHDzfO3c28bZwEL;m0*j=sbRsq~iZsVcL3<`B0RcXHonWipAhuTUzd5Z| zY+jdS4rcg{k8>vnWjn4$c~4!If?KqZc#(mYyRe14kc&f0=FOCi*nq`UdUV|GZm^t8 z?SJqfY2TOOL@$Q`6x9^lsEQgBcI-df31?R;V03JU76eJb5?=S%z6w^90OVfGDgf+< zwEM%V7M|SY4t@H$xrENqJFlSE;s3TROp=k`?;XCp(uft%+g8}=;|FSICWTu`>@$rY z2my;0S^eKE)J7Y8y1^k~<7o`|Z)?lrCZoh(6*giE)Z(57#5|{;z_o>jbUhip)h?7-JPWW4tr6!8y`a|`T zBs#lYgZDGg^w7QnD3gYFBdi`lAS=KJo^e>Q5!7!Yf)rbJO4o~-{o*F{`(Ao^kE?C_ zxu`iZ3!7AJgKZGD6>NZzq=qZb54vZg1 zU#qQORHUZ{+s5Rt(j%g#IB{L+7XpBJ;^(Sog`h;P88(~ALyKTm=(v^CvDRO)?4W2~ zexa@OqK?C+;xWIPCZU?pTc_tNdobr*t*F8b)WI85a%VGUdR6Z)1?Y2(Lm+>U;V((t zHS7a5=`rQ={oTsZk1O5Bco)PM(4O+s(}-d^sYU;N@Owg$-&VOu)G;O>lwW3wzM5uh zXYlf+d)C)G>AtjcOX(TW%2uhe{+;C$UBNc2BHLOj%@i0d>?n#ckATKKeFvT1`qdL6 zB+#wioyPPQ$>3K%kdHwn-3g$#x;bZcSM4&r?lhG8Y|MB5#k|=qr5OB|M~M<6gK(%fdHd7`2%khC#NRZ;arI`%NX-jop-FDga$t(UQ&| zgenbQ_WDNN0?ADK$Nx>zWON*3H6BW-h2SFqv#Q39l?jD(e~BBEvMLqM7guvQp0JeD zyY#h9@&*RLc<-+UM|qbmy!rxTNqpUpPKwAGe3=?SliYN`B7D)DN1+Fqb&7o$G}t7b z-Z}iWzklzP$GLpO*t)VZWEpIZOc=4rIDA>T7KX{`Ux|HXSoEw2odHEAHW-vu%aD@G zQqJy+FMD;oQO!d^bhe<&KvBc6+S}3^Q{Cb-OHchS7p!soZrRkwU~Vpwd|8)99yebAm3YjMnTR!@{Wt}>_=98u+3NBHhxiGNZjLh z3enBBk@AE34pt;ztyqo0;>H5i<$1iR!4Tj&d1tW(5G` zR9ER+H2yyAkZ5C6YiNQrgexa63VcIHnxyc^+!_@sDr0fP{DVV+u(~oM>^i#rn|20d zeu*Wv%qv$>WAS(veEjg;Y5Ivh1g_OWb{xnu#?e*l3f+`&-f`468 zpb?i{MLH*j!uS7|l0)~_ObPqalR6toXHn^H8x*8^M=@y83C12Q02V)_noreWbP<6b z!ef6dn!i&e`L%ig#W^TO&JzI_3*i#GVG~@W;G31opDZDFk3v-|Tw&oz>!F!qmh~^I z{tVlg_`M1SEhuh346_jzi$idzMovp3pgGJn1Ew_rv=2YjoX`{ zkHPfPB4m;JGKkyMoaZ{<{}A)!Y;0}Zv%cI9l_8}7S6+3f*ituq1a7H2NdMF}gB)K5 zVmY8*yV(CGkz(|_LYpm{8DM_w=g;3QIpD?ViwKMf_q))s!Z4O!@+vHuj%eHfwrYjm zohBo|yR1=B8?C9k=o&9?h@RHxffm8F|5dNRLC4uZ7#evtb98C=U`aWg$ALh$eOWI^EWD6)k1CD+1~lzSsM=Z@l}m6~wwK+! z;jj~qGjH(J&*xPJYmmP63|r1T3xfy>=@-KGE*Gt`7M=*MO2GOn`(TX2I6Qw|9LmP+oH=1Gz5=;dz)G?9}OKlfE)-X76 zZa=nB=0JOnyy2)PSX2k5)VMuUwR*0e)9PX9z9njMS~$WDNa!;JfUWyoDjQluNP znSh?=p~IY-X%$je_erp*pYqCqIw;r}kXr5`Uo*4VC`l5}E9NATEK-cAiGwi;SJdiL zdP8-i6x5Xg$CTk6g?fZ~6!~@mT@Gqo2tFTvaO(&Q0V$9TTo(v-lf*8# z??dBKh!rzJq&(xS&%_z#P5sKy;9m*B)v_EvlBOvkP8!8w^NWc2gd_`_@bPX;8i9$8 z0uBOa<`*b)aLJTf_M1Ucx?X>9rDPDhU5CJn+X(-9Q3Q(Is2F|ONg*(Cw^MdD*Ia`h zv(ZH5HFyo2byDK*7`9Lp*%{-BnyLDruIoNr{{JY#h4XucCqlKb$(#KPb2iOdkPvAj zk7~pAv)DXYivHNt`b>_UN3DB6#66x1^6pEjM9+cM!aqh_-|X1J!2ZXL^*zhCGM6u+}WD$Umsb<73CCl z8+8~=K@16Q5;5L>vnY$Eri_@)9E#NdfC(4!T>s_7MQ(G!%Mr&X@a+*B16ZqI0gz&S z!IkbAVzQ(RHCFoV0SK2_D`VkRk{*8g72nUY<8&0LSsR~KMNGjXM@UzlRT$A=b z4#CJ{E$Q_6ek#1Biox1ta0)TBFR1%jbwC+0mnBHPFvNjIUs$(FZ?VaDWMF+`oKDly z_D2=u1cSly8^mNFC}tU-)~&4p9m4>e+s>7{EMqx`$0BtYW&1+)SeO?C5tXK@B_@)$ zmivrQ)Sn{%I!zfv@sXkY?4Cf0F27J#1W1*gNODEdu6~18G~R(uOgNjN4`^B+2U*H! z3n#`4wZwvcSSG`vPzazw#EGlv%SYb1@CI$qrWB_w26b1(kWbZz;!AON>xot~L?Yt? zh`e}LDtj%PQ~7T-)urt;Q1PA>58!~?_X72+1tn&cm9!?*fS^4Mvns5YxRbMTx95sH znql*M@04L?T@{+lgKADx3{1BfBrR>ab#-L_kaLS{JrTHNPp}+eP_{)|N}W8hS25jC z$w*1WAf{lSaZ8!r5dJ1(qohtriuKDAtw>{j-6_* zSfF>oG7RoGKp#eiO|Tc`^#fZb%hd`2a6#=X{>UEZI=!k&BW)auL)2xlM&spk{Bt{G zzgwkq2u`e2p;M3=x<)~KY%fCo#yIsa>U;1yT7CUt#?H*&B~P#122bdOo98ApdwsQyz1iwXY9yB8WP=$r%K0d?taDY7Uc)3NB2@k1wLKCKl@_bw&OuEXZ zG6rOj-aA#-n*srcg157U0CN!6^7cQr(53?70T?Ud1k-# ztVDK>`hwnQv-HvL4RNr~AQDs#m5#-$3u=(?E%4x+3*4LC0gOxP708$DB;%0XpYS^u z2yp{F#xR{D-(rUc!RK+zl<49<3k(-@rb8uopj34FfQfw(QXsapS92uLOtKWV-+ze# z3Hn^drBi(ax`Sh9tV2|Vn+#QJm?fYx`fHI!$s!sjA+N|t?cWI;K_uuzCdzaL{@5j*Q>28o>?Xt z^|Z3ZeCQV03GPP~X^-~H<@V2|@=E;dMWjxgS8kE;>8R>OwlO6xBn}jKjVM4F^J}B0 z>}B!7FFrP1{agC(=95T*O?npMu4TG!wPtYO#oXNr)k9{Nx6`5}RH981GQu5JI-lU7 z7J}>aS5MqH^!UCa#G^ALs8&%RU$^NLd1732E}@v?W{wUJnTHP=cT(-dZd+@sZ0Ei2 zR@dI=0a}8%(EFJ{x0k&F2*j!bH=q5$>^y!9J(0BiZDN`A$*A-xVS9eayJsDae-eDV zm>CNGHb4o=p-b4?vTWo;&8bl#V4k8I%GBuU=c6JDIf;#v3)5=Fnsn12s7}=Ca-V@i zZ(_VZxwVk*gqEG%FTK&x9S@z%&TUxvGj~%UKkP_s- zYy4u3f5gy=w~U@PXxD+KsC#;$VxBvAw?-wvsNk~@HtYS!R->)`N!J60fX^xr!eh3x zu{uj0bAbC)h7&LpM*OYtxs;Df3}oYKm}~LY`W{ph1#{;v{NYOGj;$CsnI{Eti<(|P zB3@#*pP~n}DUmnD_7;V{^fZuj7ARdTXTrz1F%2)?dsCUqx<{Evb*v)8lRrPG`7_f! z!f3N(aHykeS3U%Be2DDJR}!~S&MHi9H^-+@vlaXMshRM3;UCG&qp7LA+{9MTX=sGg z6BAPDo)@hK!tZKdWod4G!9)Ok13?Q(#pMUVr-X0U!|jHmx@_m_{4FqjH~w_Rxd2{# zGjDZrG1B zP0k5PGA-?+%@2a-6_$$$%xp7IZy5-)$2d=TaojI+xRst;KElQx+n1lPz!CU1)D@7Y z=H9vOtzaBm865#Za@rF9VlxOa!uOmy1|XLmS8zA{9~cq@F6GzgXe~t2qn)(9-W<~O z6W9fIkqw+tMMl_+K)0Zb(SZ8pbod^(Ym*UEI5!ci>KS5YdJ^`9zR;k3gGTGs=_g!O z;Wqg~`8XQ<`5QyzUv^vQ#O3ZpbUFfR@n%zu0^41`^lz_rQN#Mo#6v8McsmC&ptFGM)iX)dlDO`zKD1IH#``TBEH z5^UaiP-r)C;%4cW+8RjB-CB*_H6zxseoaso*&5SQRk0oP-S`_^@Ms6ynW1;YgtW1; zg$m0IptM)!2)umv_T^_kch&`y-%9Up8dr<;3HLX+zIBFknZC}Iy3D(r#7!Cln*)^4 zG#hrn1+abLntVt0d*05J9U&C(Nj12xG5O`?g% z8^a$g4oeoU`YhyRI#m`RLVn#XM6($XB<{B#Dm6Ep-cn(?a|=`8_b=gn6gx~+DqLZEuk+ifiEhzqpvp?M-l9>(+ejd%Y5E>H{oJQM_J!Ns!o(;Jhba@kDzZrtNny=1k)>kJhBdRQ{^6i+#jo=+OzG3WANbzdd*vxnxr{ zx^oCjk<7@p9V|z?8|otIDr=z89xhVIG539~a&-*^1o}>R;Atxx*uvP7E^RX>7yCq) zJm0roC_0wXS7}oJHp3o6VxgQ1o-d+5Jp7b@`$Q&ud)(b9e!PAXkr+%PA5>BNI-d1t9GmC>rN(lKL!7Ut4iCbbiC9I>#FlnVL%4N+YtgpRL&xFJQ#2$0Y(Y42V#CKU7t#V z1Gf$g=x99^obj*nGl7*neVA7EEIxXs_&heOPWo*O66R=HGmlO z4Ku7!G&hGlDb`kcUjL_ofU8E8GIB$1UsaD~DzN=P29Jod8Xco4VhBpDHtYXbz(1qqIafJk@;kncVd!|rb3L$o6|O~~FVv>9ZQ3)#26x2VwvCc{)mVcRh*$L2wgf*w2c zZOXKP=!_$%faG&H@$Qrydx#xF$YFsuGh5Vq8F?bVmW0$LMEBG6tT0+s$|UDy_~qC*sg{Qrh8=Btl3+#+><^8AinbOFf-77 zEy}|-`NE}NH|EQndV~``+FS9O%LF#E5PEK3G(GOyuL(W#g&?+N-+DJsz_YtruD$L| zk1z*5KpcmzDe##%@&N4dvpWbMhv00$Nhbgz`)vlGZaj!-$_5nDVuv6ORMkQOJ*cM5 zN>`St#zHGL7Z|EZ1(jVaju3}8P&A;gN1qZla{9VIsSJka zK6HQs5Q}tjSj>#S0nOw+ig^XEx?C!slC?(HrC8{`lN1BhNTdnkZ?mf4j81$v3W@r< z=KVhy$$FH>wOJ4S3$lK!yq#*S%b0WN!llyht4X1}Wiykv5^yc)_~nMaN#mEpa$e63 zpGK3+EmqYo;;U=9!@a-60>opw4+!g_v;ussruNwXCC4-K@N&!5~!qclkP73h#tA z<-UbrqfAhe&9_s_=n%4!8cXM^W1eF-po^p&;mW70Meq`yyyt5&k-w`s0r&x(`KrCa zFBv&U8#cx7i$a-Fn4z`TJ;hLzk+&2A7os&}>E^E$98QeU_h|0;`t-CciybPTJ=cKU z%f8M=f+NW}n!??x_O*+*BO!*Pk>OS;l`e>aCRkXLI#{(CHcR~}xM>x|m{F;hi7|ZQ z-UcfEAC>A~{p6e+gdlDWY4a4z*ea{=I#r(n2W0>*6a0jOe?9{&sLD5Hn3`~0)!k*; zpfZE1czbqknG(Eb1avY14Nq4R0*E`V4z;0I#w3BqpA=r*De5!hD*+`Fl{+YG2`NEH z?p>Qz>MI-7!#{+G<=6%+E8S2tzY&s50}SXOdTYS#GRuZ6e&Vzh7(eu*^U)mD8uh%^ zf^nl7d%rOOSC8nD5z0hI83%8d!4HbXeFc94tS!QnNl7l(#P!?>XOWOxHoLY=1-!hh zdnXq(hbHb8v4XO@H7|M9{mN_LLN=tQ9mCd2b5PP#*nz+kY`CE6%=7GX`DKZ7LR488 z)U7$me=BuFz^pR^fc1Fdw4#BG~3?N{_L7F{?x49fq6yErxuMyQUbDzIi+K z(Uo}wf%IX-S4|w=yQdv%#N2RDex4TBG zn5~@0O=gfcDL)oh{WI2uWWSzvnYy3gR$Yg;{U!S{2oCZ2vY@g=Y3vF8mSP)$ov~@v zOL54-P*S!}ors5iLksV^z=64~N;&NP4gJYU^Ui#NC+oMFR*ug|rPv}^)~eqY+gV`3 z5UcNCUf>-om}C86EC+Huo>x3A7-@WFDbba zv9Mc<+b}GV2pEb5qmfP_Q9gg2V|0Kc?I$MuAZ7^t?qhb!b0kwEbvxErc@2u1GIxye zt}Cm}*=i(E7eL=Hr&;Zhy+%A{%H71ic`d)zt-jL8-q z^fUi+TiD2S96*t3Y3S|@^c@+d)qeP>p(YAQM?lB=W>;pdYr{0B#15>&88}mF6 ztxF<@8K?>#_LfhwV&6b)bPF!TL#~h{=f6nRbg=`trq&_rgwmp;pH3MWoFznd5g06sbFk2NEYOkd2XT88KoC%hxNcVNwa)G%afTqLk}j2xKViq zh7%@$9q1NFXrky#drY45ZVlIQERSPgBi+XbBw>%5IkhosyU|fj$0Q!{Y#Sfy#(`&k z1vmq%e=|%ncLSy7i+xHWM;&1J3fo1Fs*fKVFGi_MchWA6hJ5JHwtvxsxVep7P!ZcF z>u|eH#psr-iW@t;pkvyMu88k!;~k5oIO|6^x6T8nTg#y8$&_vNWGIh7#L}~K1t|H+DX^%6!&-J(P^oUnB=os3`|RMfO5S&=od5TCi2j4q5=@B;pU5GEg({QD zvZ(lKhZIVSk$nuf$p)1(f@`P|5~sByt0>j;5WF{t`F-xTffrEL7f*994T8x+7fOG6 zTy*+Nm*w=uuXk^P@7*ZX@*oCNF_ob}gt#ZU#!{7VEql)6iw^^-?H?nfS*>c4O;~#dSNp*BH~%ARLKJ@1Mh1|FFoG$$yHTVy4TBXx(w0jh)vT_iz45Ilwp zx5ZqiMp6?G0r_9vO6eZD_!_ZtzI=`=AIUbhtyJ$5L_Iqnx7WP}Wc{(T=X5yR&-CT@ z4Rmj(Zx*{}YHXQbM;X;Oq<&2y@Jo0rt(Y5^lNcZbD~gkCo~MZ?yt*3agG7yeNHl0m zFM7kGgJA)D9u+EFAQX+9RF6Y`6M{=_QYj3s^kVoxN5SziZnS$L*fY3UYf0P2F9&F4 zb_c&JYs>9O&=!AQRCVdirHhXIOY^VGDzF5$X&xhm{Py~|S@d2fwZ zbSO`FW{2lItfH$~!!}Sv(e-%AwLHV~-gbPxr!hvNWL1Oz8gfrtFt2;-+e(Axx_Kc5 z>;5y=tUYREtDEfc6IQ&%3Ja6dHM4HPA_$?G;ZPJRNe6iJNjBn zB8|)QXU=pFF;v|8ZCD%=wi#gENcsF!2ASjwl_Y=;QF-pQ6M%U*RhL=akgY)X#jIvH zu&2hqK*R&LVOCsa<DrcI#_jmGirE2uUmz^NYx~sQGooQ z_L~7&<6EfJwwwX+@x~k;x<&(zXH$+bzMjw&oZDO6PeZg2aC={M>vK-MR=5u~x@BgW z3W|9Pf)0eA?QdBa;0#sWy9uv)%B-p)a^b*F#^$%jB_A~^gA{SFZUGz=9wLnZ%`7ea z@B9zrn!zF@wa`_03+wxF$HZm8N2tn00%vr~y`(&lQ6N;>*v;t#Lx#DI5eNUlU}nc=6&p@%KYwK)TYreP!$L4aQWaPO}bi4 z9uloqru>TFLvuN>45-B$!Kr{Hd=$1UGs8d!V=y1(Kem$bpjdnFpy z%^E*BthRm)Vok|FhCC|V5Hpn}Fht=vii)wVdvbvQc6zpqJ%9C$Nm4&)qZu5jI}IZT zYnwf5lT0^VG6DD&+qiJP0|m=Iivw7ZTICPDR;i0wsRE8+9=<<lf8p(*P`2u@&2AfG^~%+!p0;x?m@YXj&+82`n7;AQ68d)^Kc z%7Gg&R17N&gjnRxF0Oo+sZ?M>#$>_Fr2Q7`Ib~qHbn|3JA+6q5;n;!*LN)1%$`o}n zT69cA+%xG54T`X(c7@#zcsRN^yf(v#rT$Qf6JI>bR$sJ?j<(@Tm(n)Z;F8OH43rC_ ze_is#{ayfR4SE<^Cn(RUY)5mkjW4+J%P>qz_Yo3iLa;bM4A53yM5RN4z%GsOkzQSu%!jxl+zp2|ch_Arg?2}uFGj-G3qN}aL@u=I-t zSeebyA?{mAefS#;_UCN}RRB}F6E%*mB&Wzs?)Q7ynG?3UDqc7FJsq3SG|dnjoqlr? z&v+mUqV^Gl@AM8Ie!jI$f^Ey2_p6c2Vei6yy*JEM@lz{L009WQvc=6!Vm+o?@u#T}f`l2pB zw6_YPhD-b|(t=%)uvJ_DH-XV_a)(yVgx?Hy?}8;AvppO-^9UdfbaFs!o@x?`b%Rj_ zlAH))M1AY8MR>#Tv7|a>R0SHxw{kpRTMhJ$`bDXD8e19J02?(0snqf?pN#)|`9NlMDCIbuNF&P2feVI~P;VOw zB0<}~B4ZDbMl&TT2B|Ctv-Wd5q0bTw5g>dZ35Q1F&T*FSUV5JX8Sy>+5(Pmx2K_Y=!qJk8tOw?D6aRAfnC4FMQj-K0W z@Y?rqLH$p!v{XJf^Z)o7WF#WQI4X{k+M;VB>B`*eSo4q1Cn{)%8q8@Z8@sBL22* zGA~77?Q6}mvuMIF6$?IjjK#F-Js;oqYcBgxYQ? z*4XSqxl_#-adR}}nhp15XOf!2pZb%%@q%jwyunn$Q7gFqg-G11a6KurtpsCTemB=W1%g z$D)u5VI&arKp*qSAH1<=nmlQ|E5v)&(34Xg@Xr&W9(eSQz||K_rXqx zJ33(rF?EzPjN42eb<%A54h(P-8z<9j$tHyE8TWF;hl)wj+0GjGQ(pqRLnf43>dH=D zC7jvO6^+6MZ7xaPoSB2BB8p`+Mr&qlfd#M+Cl0QfK7kbO|8e<=d%{JCULTLZ_v;TA zucibus(Qfuo0}TK#o#!{di@2xs6~kj=>PT@Dch*C9}0ueku@ zxKPOdZmQ{_!XGS#^)JcUl%1vsGAt6hFuLXged!YKWuHyvZX7|`vbEcPcVY}WfKN?r zo(m|HfsM_5D)(65I@-~=hDv-qO#~(1sFxi8|PqU%CRo-nO+R6X$AfEQAD))cvpgn%He9ol@kN5w(y=Hp}q z2B*WdUt{!-zWbI3nhYBnzTQ;$Ysg#de2cJu*SLeF)#`74KN^_>n#w^uyTTrP>`enh zgZL15I+>NI`W{qJP4(t;B#CQ%>0{84hE6$&ld?&hYDiVAq=5}}NvFL}^##X^_ACB$ z4l2%Z{pabd^det8-co7;G~?GPo+aWAykCTN%MypWUp5Ex&n!Pr(j~y?WzU)!@1W6% ze2gur@!#wxT`Qy^yiWn~#AQnTFVl+7xq-|7CPSM25M!!J36 zj(!i7=`R>KGZE&{9@Ig%qE49$oMLSu5`$`bxw&Bh?J_i{^B^ffgq0`sJ`~l!!QiB( z$#L~w0ZX@C=-`RA6{OaTdMlQ0^SE)L|;b%xp8n;%DWMT`kA zyAdr5m`_6h&88BavFtN9#m^~~Nh#dl7WA#_DNs3NW)te4?z}>80Ue?& zV%!yY1vMW%<+%lU7D&K^S@GkZHQUggGiR(E2S)DfAIinxE_hD#?DLD1KiOLJe@A2P zoH*sU67XSL(iFmBg#J-zHhtTtm}ggPaK4+B`sW5c=e`Zc4AX4V5;q2>ehspK;)L{_ zk*56*LAuc0i4?*Qngy&M(ok4h^6!CLiTTj@WjwOLo^gkd(J$tVI=#6Pzhvf)ZMKY8 zv5%kRxw9oOF2m7@nyz4cm<-G)X&#CHZgdhTmzRl6n8afWka}I-Sw$^Vc zd}$>YY@1*CgW9=hhNl#jYoJDNq!3_JxRe$=x(DQnM3W<6_M!j5Ii@{IW&FH+PAOzn z7M)%`a@^)2*YW}Ga6&O6R=?UF)Fh(g5sfY-G=EQW5HbnQJBM)C1ar9MBi z47*!iSCRVLJPNW7djB#Eb2&0IsK8S(8(F-7&(?5MGSn_7wwZTVS|Uc;pI^ri9{gIgOwE)tZ|0JIYGMw^8g6TQm(v-b^3KS& zP$cC7>vcm^5W#cm$rL%{X0eHZ7QlX(l_lAm>7g4g%^3PP{5`a>M+&=~aU>$%e%|O) zHpwh-9lOv!qS&uP)u=6+hVW<@)GxW&!!fJ?mYD^}t}+)S(Z}Lyff#Fi(Y==L;<{JN zP)Chnx$r%cr`|wkk|6|XI&2?#o1mNVGZfupsIzvZ+_S6?e-lh3>_0fz=*6=Uu?e59 z#G6vJFTXuW} zrXY#n5LG;YDu3S;9R2vszx7}=Fv6nmQ@H5+sW5jHz=d?DIB&H68%KV=#70{MI0$%Q z<+W!hop&cm8FE(x65rEV`4wtDu8*#%jX;v2iI9zK;hjNrHM8fdG0aGwogF!8b{V@t z0Im%h!&@V?PEbJ?1J;F#RJT~$FxSXK;S?HR8?qv~{2wBU z$9`y8k_ra))fE0sRZOeqx@SJk6Eq_xdvdkfd5WHkAs+wYnM|k_7=G0~bphq?z&^=3 z7|!XF80Tuc5ep9Xv$u3UXKu~Yo%sQ4L6lG9u{v5%c)P1S8l#B~F%WP5dMB$6ggTjj zI4R5@MZ2vd-W~q%R60Oxd5Xp4$kT8qoeNzHO8RM5lto`Ietn+u!&K+}r%z)%<5*5Q zk=prGv(2fKu38VPh4bo#iE1=4ChEsUl4fu9DNlL4-9lA5rMRT~wFc}+TNfJoa42My8 ziXN*PGUl4C>p%_6AfPdhS5GZ{Q~C5mO@{&2ZW71&6t}VdK-?_{vF5B^32w4WlFr;* zbV&<4(rHPj-nL$rbvoa6)*?+{fpQTS+OmvnuXsMza^O>TbRCA9UrDadmQegwggr0| z=vv$w=t=qV?t1}~Wyo`tk_Vef*N7Y}3=U%j4EB(FpX<-a%zz2KaBl6^aa|<_-J{M| zb$^^`%{i{AWkL>3=-;NEXzZdzUo5mnbelXn$Y?d+^Xs z=9E~H!}h3PTl}263zdb;V!It1xc*m)*K4k#qeS|4*3d=?Rk$W8ub)sL*S)ke+j1}Q z3Uw=$;ewjvHNRrs)x6@63Pv`s7N_b(YoL2o{_7v@mSE8$*4xN~Q*K{B0$iu(Na_la z9PQ$a<7Y$_QRIpF8(U|>aiww3@K5zYU{R_@jiRxY&4E0jHpfUq)eaqYPym)@kfgF~ zIk&i~Cv&|wDK*(QauV!oRu~0(Xvi1XpCJw^!X%>dBr@{`tyCbppJv^LXSHFVZoNdLm z+E_U|$V1JLa&2amoP4YHnBO7yrZ!QI#OlmeB`j0htTOrLEu3m45%3^kCyT*kG?nR8V^~mSx~$$PgP9L#uutgYsZBGQ3_%#RTII(f8ll}n5@O|-H7b} ziTs#CtRwaY_s-owtbU#%K|E#a>yiE?kn;a~ad=U%NT77v3nY9(GsK;{xp%qB2@u8$ zxQP&Xn`kh%xFWef%Ha!7v-6=x2i-k34tJOg&#JU&uj2}+r~P;lbxLT%f^h&Y-xhGk zRMOCC;{MWmaA#!Qt}d7;P z2+X;vsAy1~sUzynQS_1a3ThSp=(i!9XR8pwpHr#Joy1egmxx5dp+bI(fgPXeQJCC9JmiFC+GL zs2)(wx#VXb>ueP3{(%wIu+!H*veXLp>0n>WTqK!NP2gM0%{N47>5n>X+N*;6aO922 z3h=Q6iwWP#&Kmqiy=xWX~1C z+u)J;tWYe3b|j{%ovF7?62R`$|9g|t0Mfs#^N6nBVB}2`S!Wbgsk!xtJ#I-MVq)(m z)|x_!fopHxBw#uhYyZ%CJhsjVe|ut^lLYHxV#R_rNUxK`Jl?eKVx=PORg1SIIKgeL zkPJa6$6=7A0Nr(mM1r8@-G9&KX=!8_Wxy`}oY#ZJF3~Wb_P)&?2DCAkAM*g97wFVn zX8hS>x`}ItjmS&$PipLvz6-tDuk4X=T&87D$BmgSNam27n0tiq#}w(xdGd}9mESVD*SsF22v?2pjLZSoHjOCyG#v359>b^MI4c zLxKc-BY19Mt$#R4G_)o$5;+V)eMXmsSWuv=WU+ExuBuJ$+^~Q@NY%?S(0mw}vF&w( zcIA77DO(I)3(|ti24A$y-TEOZ-V5KsEC(**kzW6T=bjeIGV+Czbd(xMPs&WW#x0?N z(|m)|2OQPhtQ%@P_@XSoUWpmu14i>D^}hDyML+1RR`UbY6IYMRjPnu+7`VaEKz%VXmcJ0_{~8MHbvB2snTAN=H!LQyPIo&RPBN zqOYo3f|fWEy{s(Ch^~ke)?s@}V=pQW`S_rul)aC{$4F6+Z>;U*eZs@kRK@0WF`G3J zH6e-kkG_j~J1YKKpKq1GrAzmS$u9y8DKP!;)?+7KLOIIAX?)*KJHd#gz+pusURyRD z`7EV%P-hZMfhBr^Dl>5vCH8f=)F4y3ES2ogJ8g{Cw#gf zA=Gi5^ZHaEgkj+9!Fw=lzxHL8oFXl#IBDK&wz z$wEl$6!ZCWbdK%Ijad2-J$oD8YG&B9uJ&JAe?!lBFFjG~aCZ71Qhab;=&7*Jn0bl# z6xEi%%t57GlP)a6|5b#)OcQch7h9zvj0*Hq z)T(jRHZcCSLglD0!bl)yEayYV;VtTq(NCs&j06c%I6dkD>>!9!+S;U=|Atmb$}O>$ z4|24?b?Nt(Tb&=!G&rE&`! zkkJ9tpEUn0G&?1*D%SvKTf*=jaXTF0-rvt*KxByZx_ezly6B6RA`wf}e>zWb**lOi zH%X$vD{p#i>m)B$={L{qNH zK5NVM{#T+R$kt`9deq?GbS%UPu8I+tsm~?((_6dP9i?!5hB7A>gGkRL=#%+ou+ywI zeiuE8)*Tt=GX&4?N&Y_18OA0;L#@65aneDyBdWecAV=! z+PIA<8B4l0W|0_%)jVDlyS=AmEmGIw3QfuZ>GK2SMA;CCGK2QtoeqIVpsJhDpp4>6 z>Pvrua6o1IZAApzQP$0%+}|^>yuz11HRiW^LXv%%1+I)0RDa1nedcw#>)H1@C@p(B z`r#V|^}n71X@D>!i$p~jVv86veIXap13D`Y?QV3zrw90h!tEs4Yld!}u}+<-4ih`sUY7A=mLIWO_?Pn z0U|j*h=7DrVyz~?L{GTQAf9k@f1`6}e7Kav(huvfTjLmPY*d~D<|{`|4F{>+QMS+` zWfuhi*E0rSA1*O4EnGC~jkm`WzJCzfuVoa6?h^GyQGvb8!0)Yc_If zJ%+RJ8kka$2s@OKttXp1b1=Xha+f#8;-2hse&;|i;orHc2p?xKqL~oye_TiR6vDlK#!(1kturBmR2l( zbRvxvvi$8Yv#YTC3>c@cCw~KsGRNY=*s&EgZ*NJRr)&)2^M{#aR$*hAZ^MP>Ed?xv zcPq8GPZ8?3Nb5@Pr+zts(eJ5!Rw;NKdk81)#VB#!7eHnWRp!!)PsJQ9wFEn2Yj@^x6$Ln)mbXLt#9g`4mgI`c9^rbk} zaPL?0EE_sF@Iy9Lf71(SmHd)yZb7J$;&wTh!={%0wsrnOL45XTbM;a#&T{ApPl`A_wTaEAE1iBnBxN_~Jp~G!CzdtfIApR2qX9K9mL?Zl*?SPb*;l1vhZJ=YCiVe&P*&a?h4^ zdl7f>r9hOG2j}H9`$A1&%Oc&72@_Ng8O!zCc-b~x|42*_YnU1)O0KAtb$XoqQu%2- z8WCCPI1JO7ttd{*@U{g)H(VM``Djga@W?bMx=W?B>?@EfyhqF5$~dmGlJL=g`9Qpr z{=yjX(H)dLwRV{^*F*;Vu>|SgOKrJC^7NWK$Lb3HYn2d`>lW>`gd^F8xQtdudzQlfFkuh)Pz z8F;4?l?fG@sZiXL5~-CLU=~o}dxOaqIEC%P&wi1OViaqiV8BzX@1{*G7_$%IWgV;< zJCB36pcrhJ_vkUIMNppMQ1H%^;o(VSTw81^Q}GG9XXQhCE3seLU8#%lyux05SF)DUu{sw+%HE z9DStd>t&m#sY4wZ&fQDrMaN1uXt5M$SfA(O73>k2=ON9Fif^%FlHo}&v4jS6fzgWI zp}l(*R2;nN2sWK$OF<98>}J1r3kTKJ=X30kSlMs8kct%#>Q*jABuvHeooDw8-3rqL ze4RIyoab<83iHBMDevZypx3o}LUCGYh;&QC2=UN>?6LuR#~p)1W(p|p+&j30C@M?s zHA6S)-LhY{I&ra0}$ zjaIjT}JhSx-RTsfT^3 z?68qtkU1txlN(RX>^~lQPtU8B{0v0SN&2fSUaFMOdP~}^!S(?DjUPISFWpF=2s3xp z2HB0jci@kyNJgd(46<@>SiVCM7JT7y&O*Er{Z7HX{=pT>541R<6ITdnQ8u7?5Tqg8)0R4}XG|E`r?5E+c z^BBTk>=@#g^F#rBZkPQ4u-|G_H_cpKdw%JK7s$Z=19ugOoQrRXB?H+nnkV5`%4i_2 zp`b0^?l|aI(>q4V8s#~+>`5wt_4MeEtC6Imu!k`I>9&;mn(an zlcOz*P@3{8H{kF1#qGJVqt9)yhdT-h3OWx>5OK&i!Er7ogQBqbe~-zO_z;>yvuAlZ9G zTjE#{9yEHkiytm|f%{bv4n-4!oVV&`{Hx4X!vU7>ZTL?@Vt}$(`hIaT&NMTV2`ybG zA1ONHWaWM%^vZ?I+TpI?kOlA^DY3YD-<+ULE?#EL2LEg@?bDM%H1ST_*3TCw(k${? z6f4z}b^Wv|$O=Q}0whhHi>UZ^5UH%5DY0B`zd{F|f8AFbF#z;G7HVN&+5AEs?KV=a z-aBq1xq#aAwNzEF$s^ngO&Ei1=@yc3O3CDAk_R7M*PEdYulV4_y(aYi0f!P{0xT)q zvBxk9TJFnr?Wr_dPpj7zUm3Y;N2zez^=*BA-TLp)cw6CwNGG1x?~urey5hx>hHJT> zqDoS~V1)Cnkq@Q`VWFC>L-yvobilhmNz;Q-L5R}{e5q6o5T60U1|=8Jk_0U%S9tTV zY6?|~lAooo)#kB~L6FHkSA77&{DFT_20e3JU~019TA{ia4NvzVX*$lrWDD}tHa1By z$quaXiAo{*G6DelqS!3{$ULC)C#JY1_|ZnPgHMO9FD0$3VmR_~ms0a>SXyq7rbC67 zy7Bz_JtD+ACm>DYYk;t&?P=9phxO=hvmmJB8c{)br!Qq4oUZ{72=;6ks1PZxsG~yU z>DQT;TU2W%Xe_R!75%D)Er3aP_dG{FzgxjU+aPKJB-E_@j~+?yV1JPhXqF?FSAVac z=_ylQxwE&>!UNwELl$e#F0{e<$xl+2wy2{!@sQA1tdz8(f91*~{lQoT?p1 zd}8CyLQ%V$&Xtne?WAR&6ra24KA!}IQnU~?#D1gjs8Wts$XQ8D_+i$1anZzCkdPka zO#uT1o(IPFbvhRJVckWAa$<;4EI0?GM^$?7!7NMDV%Ay)>fRFRd43&NMOUxMu*mO> zoSJu-_YfvC@7mUv{d)#;RNGY7ei=SWh|hO+i`-aMn&CI1^qmIkDhAH^eUBsIwlM#z zVtT0xJp7T&tU7%d-Jly~nyIgSpacI1rimmi%ZBguvMOx%#X~r9G{r$l^DXKX2d1j% zP7i%R3xeS1K)=V>dE&zrrko&z_m0(zLqDWHyPV+*pTkMkR0pSe!?2kUudq7lKxjUL zoY$AZh+rpgm)ufNy;6=!Ebqn$Y#(j>Qxwno zZt2+EMe|i%65e|RR{jl!2n|#cLFc!m+U4cjjIV{0S)saU(!Vvu6&>_JL566_qwWy- zbe%&d&Mx3>MWNrFDaH*kF}Ts-nkK$5Kkc$Oh*#s$RdFTeTZ@vR{7@m1Q8>|9}^7u>~)7#+ub}QNwrvWgm^U z82Ft;E{OaI3`)W4hQ=D2kxoVj%6T2xHZt5oWo&)Pku7sIAgwdFTM{1orKPKArKN{c zK-*V9I&(XY;rBu;L%zHfzD7KH#$MxrU18Pn!144X`Ay9swxgMO?f}nMw4bU&wqMs+r`Akjw=GBeF4Zte;+{APFKe59hRG34ZC~Sa$?{iVCVee-l=0U zc2JQ(yhPiG{t{Vf!kvVnlmCBh(l!HTX>YQC!<7@#Ii|zrwRO+s!0`!@#~{$EmeyXc zYdNIA@AE7yi-B|aIF)A*fwP)}@Q?(rP4C5~b7`So;dCw2?d1u1i*kU^Xw*hM-!nFv zpgD35d*^(vAq*t?Xbi8KInLvj6xxR>MD$SxUbBe{ftVCr;TsF%iKn5{DwY3^9rqX62H znAjjNZPxFftZ0EPBvk~3Zpu3{3|`wrH;lmmwArTQ4w=GueOVM+{)^t^z=C+BVU3kD z)kVOY_55PfQfXS)0T92O#>9&jI_lJ&(&FBRCecl(+2{9_#UB{WlHdYP$U3d2IvnZw zewY^qe=%ut%Tw|c4$|-;EkO7Gr5qJGJ>lIMS&-TU=ac(UE3=q-3@rm^GrH3Db!lKPXK6vOX0Oo+!`xoGql| z(^%PM1_wO0P18}Eo;jgo#9aK6&()zeu3Lr$pw`Oo)t?~OvE#`yO=UN*JK9r^p=spW zZqaoxeP1Q{>;Rv@E4kSQDGBIMeEs{c!`JacX^02QNXU;EzYa&U^5Sr_Epl(fL>+r% zAC=wre<$T}75Y*lN$Y^yyL$llBlKFb^OhpiHUY9f(?28B*dc5cST8KqdR9|OEqC?808*D3NTBdhF1A-PKlALJw$Rj*OUcLj&Mkd?i2qa61G|#qMA+h&C595&s5?4uX8(t;3FUhlm65{R;o(KMp+T!RJLtKIl0+_kO!7ixpV zp;W3Q0PW#<6Ov&>RT8|TB~xy?^6Wg@CiXB88KSw8N0#i-DcmLJxb>)+A}~pp*HiG6 zRs3G)#YaMYea3BretRqF0g`hsnN@WvVtf(;V{|?@@nZ;olwjR^j*YiLDd*-VeF{=| zzXUS>cGnQu^Eh@Rrf%)=-M#PkeX;lG6-|Vl_W5b5%wvgDv==fWVGTAbL{48sZ zxRJLyZrXo+n2g+0IhhZoX?VkAe{v(PkV`!j{%=Rg+;xyh5j?meTm-B&NsvCiF-dQO z7LQEh9Rr(AYjT@lACpik8yX)8lgs?ghs+1~`pZ7i+y4d4E+)0EuhIBfj_b@KUW$gU z0(U$_zASK%iXh!!wTuAUTg24kqI4+z`mR|oJL0RT2Tpf&jvCx zhP(!jl{RiI-lRL}$Rl0C8|vkpR_c1IPSl$OxbGhkbcd5Fxi{ObqK=6xFyu-z4D#bp z#h10HEa9P=Pq1T<1*hm8?seJkXd|3Kh>M}JFp6m88pnDpXZt9ceIz2b6(|0&?B|qI z*4l@AuoZ>Itx{r%qbtH+sJc>s7%1lCdh4i67X~;NYn6ADN{QceN<)PGEfoYNg=tUv zQ3NmyBp+I;(dhh`8HeE>^Ghm_D(!N8a5G6 z{kh&OThY+9PyZA?@w*Rn)0RVEJHw(wODwn53OD*uuigf>LvUoZ6p`H(f}((w^epHT z<803g*MoG^pjo^9clJYtR?j4F?Ky^vf(P^4dQjCX0TC+G%HCB!oOXAq?!CLrI1m6f z*ux}VxOryVAkoO>GWsl0TKA8G>NCq!#`$y#`o0;Kh#z}HIE8Zq55aN1qk?tDLMll; zpu$B_i7YKr+8I``r!#4m=jNK5COYu1rr(Dd zN$?VHHg6Nis5V{TW_Akq+9ChD`D7fsGvF5CDFV0NUQTOEifx^Cy+EIcd@jNy-bx+f z5hWJuC|32od*ar1zjsw0zO4)nauWYD>x%EOK|nKO(%7f#V z;5BAy1NHUE?#eL)5?MOw$A74t-r>77!yC1aZtR=D^R5rfNHFLj#7D5BdsHznw~}XA zF_J%1emhpmc$4r%8@lu2x+|Vdoasmk&9D^n@YAXy&#-W)z|b1awxUbq(7&f-8hEFZ z8^Y<5PKJeLj<(Z|3s&+4!N`CFanQqn_p-Xvda{{{eDJ9Sn&W&MCL{vLn*POZOxTfPwJRp}=eC5e{cD*`#>HV^|A_P3mcxDJAt7iT276VV&Wc;FPUs=_0_}q`lJt^p~{3!DVy-WM!Cdh z4j*&HTD8+OGTye+M0Vge-feTv9-8;|3JeS0*>A!!bhrkP+H-O3Fq;mQ!G<6k55gB> zh3y6qWxNAJ_E7kpx*p#opX*GOmRYDVHm=LdQ4kt6^d%Lq3OKOUZCe;>WG@Lh*OXzj zylr`@L-N@}B9r2X=%9Z_O)F~{{`-nk3jG(`oSEEOK3|C*Sd86#2Ks}_anm|Kf%B4Y zFkg@iM42-b^i6a17Pt@$erQUqU^DvLGJ`mk{#I*d@yJgoY2fRLV*`oOo_5K z&n_5NTNZ`R+EDuc61U#y32r4D7 zC|z)D$MFPftHCvGRY&eM@G~o%*YvAhb|x4r8&Lv(DyL%WSz~um z00p|9cFT_&Yg~qDHe5E^46NU z@1H})h;Cfc#X|t!L#rX>Bye|DZBbBM_27%?g=gWp6*EaHlP{xyRphgUTNR`cg5j}7 zq=TSaq2uH~9TVsZPc!hp4wO3^D{}svfG&Zxkaz@M$d!%)u3A#tjeouW7yND z7K-%n?WX@mh90Gn`TR5d)$%kP4WLAF_yGSu0Kk@J1nUfO{Tuh6_>alMN}E67f3FkG ztKp1PgS7%90fR3z33TCL(c>d0fmGcS=c!iRh^eoZb2aE6O5_9`qIK^j)a zHeKE>P|t{Xf>B$AR4~hUx8$HfG_;d z@@=Tv)ad^dt~Dgp$7?ofkKcRD>lu60Cq%)IGV{v zfUMY@6big+(xziADLe+7Q=c*4$oLA60$Hb$=G9hx3fZ-z8_&F3vSbueUKeNkIwH&8 zKB>7Bj`6Ii+DinSf5e*h-aM^XW2C;W8;?gfd?x3&$%=(vcU9)4rZ<78ks2!301dM^ z&Ojdi?GvB6;CVV|-x^iC2#NR&d5Y|`Q%3Jb)XV`WwuS_!n_lHf<{5SQKa#~mySfIt ztQ<&S%`LoZvG?TxF_lMjHE}KYN?9o~OchaYd}_p>D><26kd)gSJL%S#$4#De8s+~o zcmeUexd$iV*hUdK<2Z8kvl&Cw!=m0-TA%jZYiuyjsCrs&da`$ZD&+c>6$eu8)&|IN zZs;gI2@t^opa1@-r&c}Th_#;l;zoCufO2B4&Hp965f&)3$bi5o(jss=cOdtP06I{)8!_SLA#C*#z>=7 zm7ld4HI>F_B?Tq|nvv-Z=9nlMGHkUigiB`zns63IDPn!Vrl>Tuza*T2SE4Rjy+Y zWZ%xrSnG$gYUZIq5NmO&;7^woaCO3Q3@{GD`ucPhkPOQfw8JjT*HsWTB4F|Q$|9L( z?~sKzsm|+aba~g!Flsw&UGo(o5yw%{;%ayXY3#~?c#QfFMqmT49P;?qhJJp+rqw`i zk&Ahj1_2`vW z9>*<&jnsWDAR7O?-2$Xfk%R-V27NK07yCQh?|6gsmx5M6Ygj`7@p#FI+kFLi??-QM zO!gUxPU{YXU80_pR*?@ktDSzkk0J>@uUxwa=k+GTNRC3C=KRN`+2Eg0h6ScZ>{VO0 ztxX(tVoi%U>o1Z@3s5An46DSN&C@Y-7!pY#lus^c^@03(k}Yg?Fxp$ex6L$M`9PIl zvF+jOlW>`V;i?oLNBv-V@2o3PL@QV2GPMQ`^u&7m zs{B1p;MdBp{XkM%mDv|5PHV_!gjw`C0U-D`++6NSx(pZXju`-CcW|eSA^gANZnwoVe4_OtJh>8 zh8ZcNK+iW&oJ!^v7Y%!0Lwjrt>>=pEWaxnO?V2f!(J>X9d|3kCJSxn1F=@o9eM@pI}jIz)gLt{G? z1YAUjLOoyYISM{R_@*|d@gM)~6OIL*cY6-WgYsqz_R!FnPji~R<82#U7!1=JW!nZA z;OBH?p<<8a%K(%?bw_Pz;Tto+$^$O5^--Xg zTJ7Cq&UjPz46+;t$s!NN+lv%%TlGWakWC}kHMmgGyM0!cqhIS$7N@Rbl5Esol?t_sPjfyd?0km(S2LX*!1Y%ZrC{D>Qq zZRTsM0EPA})T9D`Fh+uwt>Gqykuj1Yd&MvTgnw z^b&Yi&t2)>4JppO2ON8e-@LLK!ok8HOHzGYB`H=Wt{)b`v55QROW{HWBr-yx-MP+& z4ts8uq9*D?N7a%j76Q>{fvs*Aq9UunNW%T`9J?D86KOoR1Sxe22oDAz(5k_(QYzapyGtNO#-W?GOMi$v zfx*Y%b?x`Y<~spSip*A*ouHp*l!IOZUUBE`583sYS(Z;c=2CFR2Qsye$4&EtQZ}L>7;&9$Csqzaqa9)4t1yh~@xFpB!tOs!E72G~}ph5d<^Z-=-^D=;zzB07Gus|OFvC@i)}|&#apK@ph{dl8jl`|JNa}2qf~gE7wmv1Z8Cgf`0eULf_@0J=jl%Bz1))OM6?xd z-R1dga})`>uDJT&Z3ppGdm4j&b;^T%n}m_g0pPy#bao&IsAA^beHQuaX*}Q@W3B^| z!Z7mGW&Eaj0$zC7z$w<}DKfr@hMmB>(Snrqv6B26DF}C1L{oyblj%fZYz?K&l5q3baiL0FPy=T+@ zQf6^&9b#qKD){cnt;A+SlI8YqZ#wAu@IL5vk@gP+P3}%G6hhyp&hK^sfWN5H6I!yT zqh2~UBxtC)?&*?>+Ia_V# zwq|M&n;*8AmvfmIN1UZpn=8k6OE--;HasV9iZ_5@yCGHuYTta%l6!zg)A!UPo_3E7 zpt~=jOy^jH+G^gb0#MO*)3P=gP|wbqk&DpETvNX`6WI1q*DK`QM&xx?nIv?PXpsKn z2&+kGT%P?+q?g*|B)Snc#(|;PySnv;*Je~&j5sa|7U%Vr8?pS=DHU5r>AHXC+%}%@ zxUaN9;p!ODwzk6orp24CxYeueE3$({EO|)&)x$m%y$i$8l>u7A3*OZcyC62KNW4Bt z^(|Kg%ey z6Z3&CySk>mosIcLz+rBG@Hu4RLcTSiV5vsgr~G!HTdjGNC6kP^o^7^n20QPS$fxhz z6LXFvR9(xf;gTfpV2Ey6ZZX{=9d!X{0a zPw{e~F3n3~sWHH+G%WVE1nd}2a@1HN>|IbY*?=gcet=W56T7N;`%9a6tPZh!H@iLC zlQQRq=}Tt_z|t%qPP7rCUHb0(HH}E{5S#T@`Qk>w}Kr$4@t|gXBStvmx6|U zO2B3opcl3vDyJ@ez4@uB!Jy3iY@H}mrF!;6Z+lF8+D;T=t|zIpsLTlLvv}5jN2jxz z#_*4apC>FzxjE5Ww8S2`UziPjQFkpLd)M~+okv9)(&`estzT>5l9Il`MWx%yERawg z+vq4#*TGIMsJOr1U#pX)sJ~v}Aen)6GM!AKC7dV*Ky@h&<}Zh#A#8+G?uJU7RFpk( z@U=!e=W(eUDcqBGeQK}WF*Op}&;RM^V8o6n`161va>oGU_kBtiA&U4ajiZH!XdgoZ z1TU7fG8aR%rcVy5zWP1bGx@R5DA9h12p7tq8b zv#jvl07o_u17c-Zio7p|k6$H42RGXWV?pNUhGEnPFevEt9!1vPC%Wtlv}(#kbaN}6 zX+P>#E~L2m=-7&-W4U)$784Sx6LdHWLBV8nGe`aXvZ&I{NF8vHkB#$)8i;FKVlkHQ z(;YY`*@OOT3O7GD7Q8x622}Dc|+3Yfg1jj zPkumq9Ql%OC@$AvJ;Gb;{&>tzAd|nxI{=wst2XmSeo$tU3_87U3Ig`K37_bQI)f+? zoWzi!`$GrB{*I`Z?g2Y1k64`({AYnl;Hl)Z;S~enFUE1G$+FHPBnn-%_kG&gm3&mI zq2kqPOZ!uZ_!};A23x?`9ZFvucQ073R4Ma`nbUrJ7}gPtQZQ6LpU;lq-siINj(u~2 zV{?CdY>{N-(3l8va6_*Oe^?4r8WrP|Ao7TAI>cvM5AT8=v1m+;QiEfhcn>NRaW9Wz+MD7`_szujYeG#f%xSPi0 z@}#1toKzy8>Z3M@C%TgFbYZGseXb@)ZBOa4OaCF_7=7zvdw9wy?zeQ|6OXr1R&3Lf z>5V8Es(S6Jn)T8pGmNWuDRk%u@%W+EXMrBJ4x;v!|UWxpS( zat~Z7PJ;s!)~dUAw3R>W{?relgGW$G9HjYgnTCz7MnKv7(&M<;r-99Qwdpys<)12i zXXW3ivIP*uNM}vt1c$sFWySmv6$=%j!9{{Fy(&3+E*@MR9ZF1eS-^))+f~qc25Zg+ z`S(uhwh3%p;8wqeffoQ8;oeGp%613a$ebZ}MPrM{&0VWU+qZIni2L`tHCHbJ7 zUC`%nS^_%bFY#d^(1cM+ggmahU{vKxk=?u<@9|E>WT0Cprl4#w}aL0`4ZSJQ*q* zEc5aSXBA%~TP)u3t1lb`o%=tq=st7T401@%>~p1z*;=Gq6U|n7K-D3$R0%+ z$|ZeFiZbge@u&##rbGn$Zdt&zqMTJLG5RYkpyORJwCh$zvH2Al$CF~Hlct!7H_g#rN(fhdi$zVv?l2z(4 zs7UFPyncvGR#I^KRW80UQ&4)a7vOb0f0%33m<3@D!;}p>yU_HX(h- z=-IZ=^Z}Xa8e3n-Gii?#KUwS{EzcK;(q{f6zt-UkN~ydrP9_o3J8kge%UX`PaEg)F zoWb+%Fy~)^0=~?nd--W};1N>fhX!8~2`pjhu_PS;XiV2i<&UJZ9M33-z{Z|G(H>cV zwOJZHFSg`%Kh=5wXYKjHezIPFSYSM~E3CO0L--q*k``8h-JrLXn=Dmsx~G_9J`yC@ws*dtU5W|9ad?A zB2)t?*7h*JBquepwH^4QG0T1M0>hoLefVeB=SL-1Qp9N`Tk9|m>UNbtGSE#Vjb;9S z$LnJxfDdAsx-WXfATz2VhM5akIaB5Z<35#>K!7)WDnys$SaBn8EtRPm8n=2iecvCZHa@MWZlo8l(ah8{7PW_ zi8sCt9Ww6goFgQbo6rHXN~A2_+5Ze_!C;N$<%h5pf8Tbd46a`mQ!~*r@-bP$75SC( z-P-d)=FgNgXLX}cP6zx%r}?7XEY3FgS{)RlY-*b;x(V@P)Fw&ny<}g-O4M+iH?Tm# zJL3V=p>I@PJB0)j2EXXMREHeXtii}XRW|+!e{R-X(My`uX|Y^|8c)j$)`+I(*=r{* z8o*5MB!w9esXegrS~qz<%pv`mE6O)wmYBDZP5Gxw#)tPilhKR|fsv5+Gt09Xy7AyFnlz=p?rUFyWkXWMVi7Spg)1#91>9l4WATRDBIUd0H=ZPIHjD5e1gvT%xtt#8>vUy_pWG4ed)|^=1VemZqkF z;fBH~)z!JYp0b7TE545>3{5n)~Z@ z0Ogkl48I`e0=lZMcN!t$Nk!-TZeYuDDjY~>VjI2%1dV7MLNEd&DetRmD zta9knI<&cUOC5pe)-gXs7jo6PVqCA>aK}G80W=ain%NXzUUh1Js09>MvjJIHE2_9; z55tZUnmvHyv9Eq|MkSr-=0Z7~c8iGZnaYl%#M>v>&8CYq-26NR;~d%OoM0l={bAd_rjnJc{H z%&!&Y6Zro5of=;ik0hZ!H>0+UqNfVlG8y;|KISG!)y!tfK{%;g=YMtG5jfgE0mQjjprbRU`vL4o_vtOM7*`Ijhm=vm{O7VoVRK=$ z6^R;mpjdWZ=qT4A@jSV@(ve{_y; z)v1bXJnFaLH%!3z$weL_R%53Ul;-rYF^^%Erh+7w!YD7$4kPf2fObmO5-vBOp^2M9 zHzkA}{75<#q}(MrWNVtqjNjgDdh-cpK)2e0csJ5Z;j0UQ52Hht8W&Ru&wEKKBQTaH zoSQ;t@m<#iqgSTZe22Q@HsKi8bkLXZvOU==z%EAR0)3bP0L$mL?ArpfsDDnflWF^cX znOtjP-FZER5m}GxS}ZrwO;kpPYVnjJ3X8MR3#`Ucd24{+sufopmHi z%Oj5HQl5L+M>+VBCXK1~kUQ&b5_V7ArHOg>T6yp!g`_wA>e{!pr|)A1qj+LI{PFw5 zCMZvY95Bm?-*zy5zEF<&(NQ*#4wAVRKa0Dhll5WjYP>c(3uM-zAAKzf8X-5azk}iA z-&Jn1YZ7K>{euq)@ld60W8Ckj0qI$4rZ%$yW_L#m_%p} zv{2J@9c0?!bI*x?IJ3LzX*>FoZM0Is!R`~|KPPKf(HiVYGkWAo={em-ZaoUPpK= zW%4Q5ilb*n=^Nkx8#*%2rqtY}c>=Mb2DpdnNOmsJ-e{CPlbe1Q;VMhZs-3t&oL1Pp z_yRZYq~Dc|Qi`yMh%3_kUPCUwO0{b5;D;Qz* z|G^SFaZhazp6{ZH;L}fEoEiw{a;`%dlg!sZ4XM}qw@o^t_CoM*j1vH2BP1BDnBhq( zdtuF%(-S(PNwbJ`yV{E3k&1D5J{kzmTo=JwbxJ2ruAX^pIF8xr94@Ds&7WZ+zX&67 zBfId_Q8u*pL{$>*nb{LDdas!;7Sb7mnX`pI!edxa&kV^nJQM6l3h~2(QcOE886VTmj)c`_<=0)YtNG5v0P8w2^dbC#$2J)G=or%)7 z7oI(>irlz9^oqe&Z#cRIpz3fT4T}L;V;X9<+rvg*GZDf>gl)OuD)^KLKJ6zA(6?DcYFWj zN`!7Sq8!oxtuvY^@im-jZj3wOT&1`T9i8dRb?2sTbRCf%c74ktRryx zh+a5R0|sGw`C@zjb&X0rAF)P&>V8UY;ww)yL03U1VYLq>xp)8|qLYMmQYs1W&OQL} z9;rz(Rk|$`D(MHMI)}MdC#0*~)Y4qzubfOE$a=PtA~z0P*h#w|iX6(}IrW^)=up%B z9&y1CKqJHC+bImiTTk3g27#{1C}Y@W z;IKrHH~7DcS%rd<9yH_De{~A?HfB!q^^Yw=a7~WNps`G)5_XZwrv!hHjPds!TexJN zSW9j8?9~PM@Jjq&1)YkYJ7-6HiZ5bv77dt*C7oL8L!msZGJ6zn}eFEc<`zuEfuCh#5-`=hv=~vf9fHlrh z@un(S?<>PDP!b;eFq`rD+U-mHK4s8!n%x)V;**raOHtmK)01gPJ=L5kn?Drur-U^yx*maw$b$2lrxmM|i+|;9&Y~ryqVjixQu){`SHNNaU zaJ{sS=~9iYtDCbTcG3)HAoJ7lQ9O^d|MKFBp=vXFw=z2&E8mFrN*)TLp7jVF-B%aT z*!G2Ut#OEaq!Q)H5C%`>7{hI35o%Q`DjYJUd8)Tku?^Iu;rsh)x>kxQ7(Efn6>Qn~ z8Z^Dy9xcv>8L4|(=cc84O2s*QSE5R3sfD>9?-G3Of;0*<9J#aZ#W$CU-h=R$>ty

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