From 623b1be9039109e0a4388490f3995ca5d20441cc Mon Sep 17 00:00:00 2001 From: Laurent Modolo <laurent@modolo.fr> Date: Mon, 5 Oct 2020 14:49:21 +0200 Subject: [PATCH] add session 5. --- 5_users_and_rights.md | 184 ++++++++++++++++++++++++++++++++++++++++++ Makefile | 4 +- img/user_right.png | Bin 0 -> 27183 bytes index.md | 2 + 4 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 5_users_and_rights.md create mode 100644 img/user_right.png diff --git a/5_users_and_rights.md b/5_users_and_rights.md new file mode 100644 index 0000000..aebedea --- /dev/null +++ b/5_users_and_rights.md @@ -0,0 +1,184 @@ +--- +title: Users and rights + +--- + +# Users and rights + +[](http://creativecommons.org/licenses/by-sa/4.0/) + +Objective: Understand how rights works in GNU/Linux + +GNU/Linux and other Unix-like OS are multiuser, this means that they are designed to work with multiple users connected simultaneously to the same computer. + +There is always at least one user: the **root** user + +- It’s the super user +- he has every right (we can say that he ignores the right system) +- this account should only be used to administer the system. + +There can also be other users who + +- have rights +- belong to groups +- the groups also have rights + +## File rights + +Each file is associated with a set of rights: + +- `-` nothing +- `r` **r**eading right +- `w` **w**riting right +- `x` e**x**ecution right + +Check your set of rights on your `.bashrc` file + +```sh +ls -l ~/.bashrc +``` + +The first column of the `ls -l` output show the status of the rights on the file + + + +``` + rwxr-xr-- + \ /\ /\ / + v v v + | | others (o) + | | + | group (g) + | + user (u) +``` + +- the 1st character is the type of the file (we already know this one) +- he 3 following characters (2 to 4) are the **user** rights on the file +- the characters 5 to 7 are the **group** rights on the file +- the characters 8 to 10 are the **others’** rights on the file (anyone not the **user** nor in the **group**) + +To change the file rights you can use the command `chmod` + +Use the command `ls -l` to check the effect of the following options for `chmod` + +```sh +chmod u+x .bashrc +``` + +```sh +chmod g=rw .bashrc +``` + +```sh +chmod o+r .bashrc +``` + +```sh +chmod u-x,g-w,o= .bashrc +``` + +What can you conclude on the symbols `+` , `=`, `-` and `,` with the `chmod` command ? + +The default group of your user is the first in the list of the groups you belong to. You can use the command `groups` to display this list. What is your default group ? + +When you create an empty file, system default rights and your default groups are used. You can use the command `touch` to create a file. + +```sh +touch my_first_file.txt +``` + +What are the default rights when you crate a file ? + +You can create folders with the command `mkdir` (**m**a**k**e **dir**ectories). + +```sh +mkdir my_first_dir +``` + +What are the default rights when you create a directory ? Try to remove the execution rights, what appends then ? + +You can see the **/root** home directory. Can you see it’s content ? Why ? + +Create a symbolic link (`ln -s`) to your **.bashrc** file, what are the default rights to symbolic links ? + +Can you remove the writing right of this link ? What happened ? + +## Users and Groups + +We have seen how to change the right associated with the group, but what about changing the group itself ? The command `chgrp` allows you to do just that: + +```sh +chgrp audio .bashrc +``` + +The command `id` show the same information, but with some differences what are they ? + +Can you cross this additional information with the content of the file `/etc/passwd` and `/etc/group` ? + +What is the user *id* of **root** ? + +Now the next step is to change the owner of a file, you can use the command `chown` for that. + +```sh +chown ubuntu my_first_file.txt +``` + +You can change the user and the group with this command: + +```sh +chown ubuntu:audio my_first_file.txt +``` + +What are the rights on the program `mkdir` (the command `which` can help you find where program file are) ? + +Can you remove the execution rights for the others ? + +The command `cp` allows you to **c**o**p**y file from one destination to another. + +```sh +man cp +``` + +Copy the `mkdir` tool to your home directory. Can you remove execution rights for the others on your copy of `mkdir` ? + +You cannot change the owner of a file, but you can always allow another user to copy it and change the rights on its copy. + +## Getting admin access + +Currently you don’t have administrative access to your VM, this means that you don’t have the password to the *root* account. Another way to get administrative access in Linux is to use the `sudo` command. + +You can read the documentation (manual) of the `sudo` command with the command `man` + +```sh +man sudo +``` + +Like for the command, `less` you can close `man` by pressing **Q**. + + + +On Ubuntu, only members of the group **sudo** can use the `sudo` command. Are you in this group ? + +**The root user can do everything in your VM, for example it can delete everything from the `/` directory but it’s not a good idea (see the [Peter Parker principle](https://en.wikipedia.org/wiki/With_great_power_comes_great_responsibility))** + +One advantage of using a command line interface is that you can easily reuse command written by others. Copy and paste the following command in your terminal to add yourself in the **sudo** group. + +```sh +docker run -it --volume /:/root/chroot alpine sh -c "chroot /root/chroot /bin/bash -c 'usermod -a -G sudo etudiant'" +``` + +We will come back to this command later in this course when we talk about virtualisation. + +You have to logout and login to update your list of groups. To logout from a terminal, you can type `exit` or press **ctrl** + **d**. + +Check your user information with the `sudo` command + +```sh +sudo id +``` + +You can try again the `chown` command with the `sudo` command. + +Check the content of the file `/etc/shadow` , what is the utility of this file (you can get help from the `man` command). + diff --git a/Makefile b/Makefile index cc5caa9..30dc75d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -all: index.html 1_understanding_a_computer.html 2_using_the_ifb_cloud.html 3_first_steps_in_a_terminal.html 4_unix_file_system.html +all: index.html 1_understanding_a_computer.html 2_using_the_ifb_cloud.html 3_first_steps_in_a_terminal.html 4_unix_file_system.html 5_users_and_rights.html index.html: index.md github-pandoc.css pandoc -s -c github-pandoc.css index.md -o index.html @@ -15,3 +15,5 @@ index.html: index.md github-pandoc.css 4_unix_file_system.html: 4_unix_file_system.md github-pandoc.css pandoc -s --toc -c github-pandoc.css 4_unix_file_system.md -o 4_unix_file_system.html +5_users_and_rights.html: 5_users_and_rights.md github-pandoc.css + pandoc -s --toc -c github-pandoc.css 5_users_and_rights.md -o 5_users_and_rights.html diff --git a/img/user_right.png b/img/user_right.png new file mode 100644 index 0000000000000000000000000000000000000000..38447517b8c16d642f6ab26269e7286b5db8641b GIT binary patch literal 27183 zcmeAS@N?(olHy`uVBq!ia0y~yV4B6iz~ITj#=yWZ*Rm~~fq~II)7d$|)7e=epeR2r zGbfdSL1SWaLV}Q|j>d_^#Ds(sXSFrCipqmJI(mW<>JJ?_df?Q7g9!&0Oq>xD^FTu2 z0dvS9hQ)ygw`cS8DE!)_cVf+SraIl*pUgsaZOShu9gTeI<nvXdL0fgJg`~%S#z$M8 zG%XThV>>3I5WREH5{4u17&f_fHS{rUdfss3rNB2f0c*}fc1&TyLQi;7?lWv+on$Q3 zm}an#VN>a(2}dqZyb)0C*l_&l)#L7pS5DlyaHYAS*ppp#rKqaHEzA82Hfb2!E_OL6 zDB-n|YhLBaDl0BGHa9jNo&^T&EB?u_@Ois!tmWAFN0o<1?7oD=40WX=la?76<m4wO zOxV#X5Ipnvfdlss9oX<Tz%eOM=?-Jh{fMs1J-rG!a@A~X*LMH^Uw<tjAz}WB10TvC z{r|sT{Qv*|<%Spj+~(n7*J4zPPRt7WvG6hj14B}3glC$sFM}2X0|N&G6Qd9VGXnzy zBLgD?LwhCz3z*HopvC|K%#+#}*cliYgcukY0v0gAWSM3yV1}_7JV6Q_gPlD=jNs&= z)YQD<jQo<#f@+Bj3`{neArU1JzCKpT`MG+DDfvmMdKI|^AT10w6;>6w1-Ypui3%0D zIeEoa6}C!X6;^r0Rv=-0B?YjOl5AV02;Tq&=lr5n1yel}Jp&~>E(HYzo1&C7s~{IQ zsP>|iG+U*Nl9B=|ef{$Ca=mh6z5JqdeM3u2OML?)eIp~?qLeh<;>x^|#0uTKVr7US zFmqf|i<65o3raHc^AtelCMM;Vme?vOfh<yh0f;+OD>4x_<rPD{m7Jfe50cS0)HBe> zrmZA14Tm<63`85)Ul7}DK!#a`7N-_D=jZ08=9SnX0@ns?6N)6loe+%ynH8xy5iXgz zsd>ej`FVC`W@b=b=rUM!Mj~{Y8zXB(l0ec3@`06qQD$mhNg^l+?F?=7F~p$iZS+Cm zixl2qPeVk5T-@xqZ1lm=4oU)cTq3Ng9SjT(44y8IAr*{o=d$jQalO{&@6^J=A=Sj< zF+m`vNmoi?$6-CagLlm>x_9r^dH1gS?I(4I391%4EFACNi7EW8&p*3%=T+Og#<s=J z@3Fl2Y-4*lHul=`H&-^k`f@vezw2D<@@-69JR%Yr1_22R4mdP6GBLBVaq*Z4GtX6W zG&a`xq=hO0Qpvz()h}(n?tlwSHAoPueOdB?;^lsGXU)s3PW$n8`~6u*{=SWLajvZY zez*Kvwc4%vpHIbq|NH%3`q#HUk1q$=<+tp-`|}vT{htk4rJ0Af->X`EHZ@dtiEMn` z=d<SDzFv>tp3HeO(%5YOpHHXXaQN07uBd)Kw_Inv!!pUg>i%Cpf17VpYv^Bjwr}$C z{|%qN-><h1zxaOd_j!Lm9OgHDEVMo>y3FL<u|C;s`T9SFXLkkbKjV3Ho#|NGR-1zd zcfa44-LsUF*Y5Wl<KM62|7Xpw|M#;cZ0jOBVJo&P8(*{Wu6S`Pdws9T&Fgcwg*EN} z|M&ewtKzgR|Nj1VKk|~}!V~ekg~w$>yQ`kfOkcEgT9j5)-Os0sUBx0*ZWSJvT|B?; z*UGF}-|BuI6^~!QC%E_5tJOQZZ&kfs8~e9dJ;UJ9;(ohVuiXCr+4`V~JMEd9{p`|f zk&9O@o2B*Y+S=$Z&t~VR9XngK@TmQ*?DcyW$=O!9#O^BTeBu26@B4b~MfWQn_g<V5 z?Dz82%d4xyOP<Y44?A*Fy5P;m<J0z^uU9Y4(EsuEdi>&@&*xdcy0tai<l_-xckMMB zoJtP!nuqAV`|-HHywv8y0p``mR(}m@aoO^0R<_$@f4fSPlPZ&4Zs%@~U8@p$KYL<t z)%SOAUw!+0-v0QbPkVkoo9%u}VRzZ9%gg;sZs%@4`lyBf>aX*+ve(C6blY<EKqK>E zoud2CU)opxPP+H+@Qe?CPyes~dNq9K>o>~J-r9@D6f|Z(e|LAcd+qOUy=C_*pL?)$ zoL~0m|DVt2-HXqfPM6OAa(wN!TUtVnVRi5G*X{fDDq~jWvciuN)lcTP?6HWhd^%OT zAaHHI%4yE|Gx>kItz#97P_X*-VzKh8i7mnYwpY(;Z(%OvxBv4YMdbUMUcW70E_v_% zcv50+QkSMu?v$j$|DWgocQHO^vH11%Evl~<aQu&$^I>7+WAih{Z{@7}jL%sdzS{e9 z@-O|3M}#s1v)kTox$O7UOv<LB;Oq}s(T9us?X<3Q-|3eyTy(elUUI+fB46{nTkf9b z<epLg@8@D}{XGUeuO?LQC@2*_;^LN^As$|SD~dBqaF#&bV)y=aQ+<Q)8GC+xeO=#p zeRy1@>a5~(mW!{)Rj-w4XH8n%Yo=x2-#^=p<81o;TC-j6_x--LcbCAd%f9AwXQ#}} z*m)%NjL!7N!Xtw2JHGek<@nkCe3Eg=Q@vM1dQryw+Haj|vvW3i+}U2V^U(zhCf=lg znD!U%cE9gao0YL>mUM3sTc`A|gH^BBivK>hVUNp~Wj6or|NlFGwe{Qj4+q(IAN^hb z|95=Wy`G1e%jcTSs(dzc@iw7Z+wT;4n|!?z>^|jmjncV_teKU}neT6=%|3h9(9>!1 z(W$PpdYS$v?*IF(yXxB;$xiMmvud~g`}}hG{A0J;_i;4td%NxSvS*>X2KoO_UKZC> z&;Q?epz_7S_N4n4Pt5U~S^0~<_^!A9UJ=I{o3B@b*Zo%!_deBbA#If6@#WX+_3rsu z#TJKoj9q@e+pT|eN~75n#jKKhmCs$beExbp{{1|~9Zn~@jXBN=`&lTqaUZKzHpsfN zqQh)y+#2RJ<tJHxZ9Fbl{7^i;W@C5x=d<R!(~miG7|5~lNC>RmdM#?=j+uReACCz8 zTgd#X$XTbbBQeC_zkz(SamPfHjAuW5Puue}zeqY0TYT2^;-1gvUhflC^HKirxZmFD zkz`Yilak5H%>rLzawNE%Hcz~E)-U<y`c3zH{GE(<hn=kt?!J&xUUu2nJXB=Qk4N3^ z`TPHtxmLKdnmA>Yh1^y6_MqhnD~CkKzHJOLm!0`6m&{?kBW;m3J+3O#^39ja{^c#I zllQcLy&i8LRerbhZ*uH^0j`33$HWa14|#e$76?@52;^9mIz86R>cxWQTOnsRpR>}A z%Gr4I)|7UCp7I{E{Vx`E-&xfAMWsbFJjU==+U(p@j$cYGbaa|B1N{Fd9%erN?Bj8H z|I@3oBJTa0yj(vh;NCyxg_db&W~?gBev-QO-{a3q<bCb`e))Itud|BdjK8nr|7*1? z%Qj5l+Bqxd)q_v12WB+?mUN1n<Ct+N{}%IvsN78_)i$o_w|b?ap3BKRG3)Jy!+ePo zqLnk27vy!iUO0T1-~P>xFAsMyUS?%7<(*|&cli_lVVmb~C;QtKwxs=7cd^>6M_6c~ zWF7nGG{=lKiOk=%XVwc=DLS|FnHJ9Rkzu|3WaUpKKB<^xC-1SY+kDPSZPBSM!QHM- z{@n#%7TGM=?=++Ah~0_5!EHO*)IP3|Ek0u?uy5mcn~vfamnO~gJ`(FH!z5Sp!Ew2> zlGCv*%*MV^YU^Be-lfgXO;b|v6`s_2J5lKUj^7a~wjBpHBpz<tng8KwmUvj-vF{nr zbA|TrH0ZqWw%7b#!7tNW4`-Kc)r;93YyF^s*~dC}cIvdqH}k6B8NRKNt<&HAW>Zn! zohK{pKblDHd_QHz(XCgdvezUEg?`jxyAn8gYG?M-TRnd!EAaVAZhw@c8o&Gb9*fhL z>w~yGST3>KoO|j0$YIy>{ePb7Z=9hd@pjefbw<7sY8Q899yBi8k+f^m7f0P1wRc{Y zYb~bg^>W-Onz2Jq?c!$7lsLY{d|SjTcog;j9X5&l{$l;xz2EPto!jC0B}eIx&z!ky zUhF))a`6tsWv#1}c&(D2&#PW1TlHe0==&Om+yfPJlKU)u=J*RQKYFD1!}`1XEo|1s z`q_MRss8zN`sv)Vld98?Ji7XM0qY5~8wt$j@=KO3wtHkTB|ekU{L2~6?-REF|MBBr zyfnYL{DpU4o#y?Uyj}lVbXoP0_1EeTeVQ?QaxG5`gV6eEi<^Q={%pCZ({A|hP~l1L zYtss1%%szkCP~!hENm4s^0dtPb~D|)^Zn^kuic4%KKq`0@AJ*|(k1i5`#dCmo;SZ= zvvFtZ2Z4zEm&X(D`<?DKsXVs+eDo?_HK&XAW?%Y!U5aFLH5OY5Eo?r!$EiNSFKumF z%|F4$_mfx-oZY<p{l4nfT8Ddf+AkXyo4&Yx!G6v3Nmff1tr7dHymI60^BZqpICk&I zjEzsHMW4H9k=RyweZ5}dqR{ZztD1T9%Wh@%9cbDhRGR<j&eX*hKZu-S&)NBO+OpVH zp8Bi*%#-F|=w!R&^gQ0+r?A^m8;|xgDt?8`^E*B6i0}S>ubTIfI?JisrPpI)FC@0h zPFv|yd$;uZ%(4@GJ0?XOJ0fb(p+4c&!=vKyCLK;{%rCFs`0((suXVuW8JCaz{c!Ql zc2AY3YMk+AM>e!CpI>*&v}K3pw&(MzcjYf$m?`q=y}GxWSBD};xSF(;P%|6T)K-~8 z_nhbbGJbe*Vn+LE{rz_$G7f6bZdS?J@vv>%uUD&gR|tIZu{dx0Jx1r&x7+#o8k>W+ zStxHT|EH*b?$a0fPbrTk{W$woy5qfy!NaOK!S)5m+ZsLyyhy(iJ;!o;!kxO`Z_6%u zs$2f)n*Cx?QVPR`vM-Jt;T@OiZr$mTvAneRal4(`+_2>>`Wts~i<ckzn)vd)Mbg{@ zRUiE0+3)An9NPEP=sN$`__Ud+GK$rA3Xkus5ICA?@iFt$pWtWze!qYJf#KmSmS1;| zN$1CGl__lCZ4y+P|LcR!Ueosc`SQurem3s&+gm%kllkf5D_{E?Pul<g>0kY@Rov*e z(qG443-aDvw0rbs#+Svt)%=ye`}@z^*EUx+ZM?(r1k@N=q`yDx|HqFCT#9W9EjL`Y zie`P4|CAnlvf^=49XDePgTLL+C7q{Vyo>ahsl7DssaY^f(w9fiLwI~7lzY58r1rJ% zTpKrMBLCO)y6Il6+SY#(8B^a`embFix7sY`%t3Fxol88+t$SX*(~SSsnK$`pn>CBs z4}-WHXEwXV6&@AMyW4V6py^8ZonzAs%<2^lUq0UGc`vD3_s*{3Q<}>yjxqXlX|LaN z$zAjRbIJX7M#bBAeEGL=Vg1Ucoxe7hm5RLCbXrgCE9-T?2lIJ(kNlA5T~L0b!PE9g zMEVQ&Guyvt@>l*^<MKc6GFvZWF!wWt#|<B+u)NqE^@X2Bt%TL2+2ZE6{`x<M&z?3| zYjb65U1n2h!whHP5|wpx_=_I7eQ}u-;9bJk9Xqx2Y3n?$#EwuKg*<NF`U}4u-MwUZ z<(EE^zj)+k`uteId14EWZgbkwcuq{o_Y~8Gvj;vXuM9uDJ8Mz#BjtS#+tcP%KI?4x z;=#Q(c-Aq86R$I~oQkXFOj+)FMYB&??#nOFC?5?i(MzxR_g$G8^!T@fz7>CIm&wcB z-<G~Haqtn|<|?7if9}&a`7gU(q<3h%<nK7Ts`KB4{m$h&`W-(yJHy`Z`Ro_Yx5(iZ zi{LafPQRV<whsKWCd}m!+o<!a?!}_a#KKJHz%02xlhxgrYUGn*|GC}>l{kN~|6-tX z{_04FzZ(4;TkS%Gwp`f#?_H_XWtZnK^qR^G@0>n)arWZ7m%c1MT3Mj<qv#1+{ssSJ z9>y(}_Z6EKE15qN(7pD~_UrfLol1+CK7Etl$3IardAZ<;%k`hWxt=<IxxVB09oO9p z{B@Z0h1lmkXj>TeUorWZ!Q+l^j{1h2U#tZuOzha+QOWMiox9}D4EGc+gZxQybE^fb z-_85D;OzX}-~Vown^XB%@0iSVeeKBoA0!LS3SCv&4!)C{D)6eKPHES&%md{a7t1~# z*e}5?deLBl^P6*4j&%}$T9UPW4%j%#-1_qG_j~^Moxg1!oBOn^V#*GVZY*mPdk`IP ze5Kj5Pg7iPdk9UH3_UU}THjcC%j51ok-3|vwVN<lJzu?Mlh@Vt-mf<&HSDMpzSX@X zbyB*ny6od=bsbfrCP7kHHrJJgv7I{qW}>^?#+hlePCj^aQ1fw<SDP}s>+PHXchenB zipN`pyTsxu9&()vRZcy;bn>I3th<_%H!<*L9M^Sz6U)EhcfxbM)`H`{jguQ*%akoE zNOLmewiY?1Y?s7P_U=w|eCez!Nt<8kH_zR)!_G8OU`1n0-6fUhJIo41q#C0vPT#K2 zh_^84aC^|Td3QVWgWrkDrJpke-X8Mh{;j=Rui@K5{ll7x>?b$ZAFuw<%)zW@{kY+q z@Wq4L$0G~Pf1T{EKk~3($3w4!Un?IpvirE{*-3x*kLxhMQ5(jbdnsn`irM=wg{Yoj z7W^Jim=O@zxO<*Rx$@EnwlUXq8Xo&wm2IulTX6P4&j#;x;-9X_=k5BU<NIq-=;r_5 z_y5l=IQMW}mqe+|)vICAy2Ub~XLTw%r5Kc|BkkB1F1>B@_59`fn)=mO#WhX+|0~K> zES`VKuHeRmBm?u-3CsW4)vf*KZ1c=GGI6$<G23%bmWlrF{yi)@&2-;$-UAcm+{R+& z_DS3vg$MU=8rU7=eQ^Kxe;W(uU5wL3R<cgw4Vktl<z(utPlxv?>oae(JnZhA)$&V3 zXu|%#Z}UZyoR>(S>F!ZgNmf#uTOruDhy7W_hyGhacZ!y1cx;wvR=n5YT(!dk)Xxr% zp1f|A^m{w~f1i8q8`vdZdu+n<e4g1NzZI_x<l7m<by==lm>|UDp*JJ?mhglx2TI*e zy?p-A?eyy9|IMS^7QcMpa7x<C(sEAe74HT8n-tcb-;`#k_pmFwSZuPI`sbBfr?r2a z*y5zT)bZZe(@R5_%C2b2TfWrO+AHql-56twSp|h5jOm<jULUA8Jty^kb)m^k*2j6x zvTD0S?xb#D=4R}&d-CNYUu%hu^yGlv#hx`~Wd%Bcci0PlHUybZ>!0-?M&f;75c`e2 z$%VWdjGz9#`L=pRX#IK3wCnM_4^B-ee{s)4cpG=}@=0u0Kg?rK|N3SAh8jV?b#a$I zayOs;zSSbAKzif5wC%jpxwDIOcRc+fA>YWY<Dtsd{b0fd=jP}=FBWxAd;C+nY<j_x zgIhavre7;={QT(tbJ2g<j(r73g_+)U6wD6dHV8Us8eDPEcRgFg?9X?1eE-<6)!>Js zJ^!o{t)9jWi&Deq&tb1f^HEtS=5Fl&_u-F@9a`ygk6v7&zv=aNhy88NDjT=+cm2Ko z%HE}|nY%sDrOkV?&DZa(VXy7Kesi6#{y+1tdd+#;VosT&H9MSFEdOU08}<L=`$P4D z+x(J*+kRHxYO`yfa^`&b!jCEz$M*`xadAAC@6-7^t$Km3MRHB$$w}*l|4Z~;d|!CH z)tu`Yui&!8DK~6mN`Fbnd>1g7<k%#{^i;K%!SnTX4teo+YM-aEtE60UcG<*V^j3pu z(Vscxf2IkC>^xX2EEoJBqSK+Um^=664e`e4xXp)jX8hk^m7cq}*Xd=tg#P(j-99xT zjXli|uJvt|nbY<;Y@SigoT}gT?nNe(<)r^uEL`h+;&S>#9;Jy3<Q;z}FmStDx7cJ` zezbL;yw!;N)4KR2`r7#iLKDN|ve{SgO_QEdpB7`m9&oBaXtJB!%+6JN8j4xi`R_7Y zD8FDiIM;RmdfSFro!xeV7Ja9i^8|KT6lmXEd1`t>?9pc{?YZ{737EY5{4TDn<tKW- z$$$C7utTyy>=omVsx6i=q9rjGHabmbsdeNpn8Em|efJ{I{eOIJt2W+Udfl+ao7?=@ z>+o%?|7(_WFdSdGke6}Ct;$=ItS;EUV&s|qfXiUs#p5h0>x!*oEdu4XR9Ms;lx?x* zui#sKMbW5yvt8}H|50C`-+th>@cmofzYm-kUVK=%nQb}WI@#R1e?Om3?{1B5?o%su z4c{)<kbT>KmygEo<&JBAwP&vSI=||7(v1A5|D5-W*Z1~3&bn|NIle6x6#ScUeDA)c z_5QaPMDu1Ge*7;o*`|U2)vB`%kJW_F8M_s>Fy<bWl({ePASPM-K#gO3GLMnprX6NW zL>E4`sOXt5@IYpvvCJVa?X^#Mgbo`#TN)rgr+i8$-y-%;i~buPuTaqMseJKSNua1d ze*V5&`;Tm9)B6*%gm?Gjd5bn{aaS*&K5J^6wBPk>9^xDFGx#0+=N0NVUFpp&+4ykP zp|`8WrC$F3I_=_`ANL|=89q?VpYPf(s%IJ$R8k$u{jeu#^(DCp<$o8w(GzIqF|sm} zZ;6=5xnJss<IJr;5@lT2-6r1hx9c!=O8D@JudHT8O7DxsfXT&D75Scx@cEY>|x zo>r@zleOl$VTY4S*Co@*8e%_mDmtQHHQIb-PoL6w)k^qi3kxWZ-|LveV8-#4=|{Um zg43r7ImP#!4>)-^W>hVR;fdMAFi~83>V%3+?thy7tjGP|OyPFyj*vA>nO32_x^C+s z#Va>{w9K|}DQ;%t?NYUkSyZBP@9=w<r!0$E&3t4po)=i|l+kve;?M=Aqh*Ej?rOii za@StV{9*aWH|Fe#a+U859k}+}=kLn;c<Gn_;@XKtmwx$gsws57Gw1q=2(M>TuhmZ~ ztZ@6wx>cd$PL@L6M&*P<XH{6Z9~+s}JeXO)pL;a&(uOH@Z3`7xj2gN;g03EzF8lBE z+<7m)KKv5>D~`ivv6Vp6jydNJGk5QkfBq<9s`=g{s`?zK4EoN`KFd9!{LiivrgbZV zIVw0f_Oi6RpY;7p?zQ4)f4;Fji<#kSuq;7qgWPXlkLu}n1%GaitCZ^bl#usf?YuU{ zHTUeeC+@nPw|l4XoLMI=mgp&7*;@BfSyn-ALfow6naW;F3GwPjpS^3X6Y#H2%~o9P z#3|)k@Mp=vU9Oe#OT$Aib*k3NbxajhS9;`nrpY2ocC})%g8o0Jm9wkj)tuQ1)8<UF zsjR;6;DoM~`xURbg6FfC3hpoLJehjbIEm$yYsgy02S;pgP5iy+PJP_P%6q?*e_c&^ zdPM8r?gEqErVZ^M6|K(St`|6|D8^8~Lh?kD-J$Y0u@K?fE|20>f=@atTz-X|vv3j) z(y>00^y9<ix`oANI_FvaTHd%mvfISA(>O?=-0G0K*57tJ0VlaX!txX4R|!0D6>c@w z@R(=f67N`|uCzQy!{uhj&)2M<4lQ7vsQg$kP&-RmMk|2#lFRcW)A?pvJD!w&|8R$u z=DCkQuL;flUGeo#_k)6D{y(h^_RcPKw^(*;o5VM<dwSX#_gz_k+rM9$TU_jC%(Lm! zm-%~Y4gLQwJf9q*vFL*2`b3W=<~p8`SFL;gw%fHGWPE$*hw~Qgb#bnRE9NVlTAnB2 zsHEmEr4?A7yJwEZ?457c?S5DEamjDd)B619X85m=UX=dKJ~D0h9@jNTKRMYlJ6qnG zUCDfyn`hOQhg!#-V>E0%m)kYZl32yDLPg;jKjT-?BU5_vud%+;f9c*jx%AcH7^T&@ z+x;5MFLk~SIp;Uq>UzImxe<FpfvfG-8R4dTPD<^!OTMyWi{STu-oM8Ai`E_8v!u5v zIA8eU+)R~8%LOvnL#{<^zw}G{v)B&y8J8_`eWbtIL~gg_TU6W=y)wG!-%9i1Umn*Q zC04{;_`lTq&9nLtL5ck<cv>bbKQDBDeg2)r&luJ=ce!v>zMOBf=yTOI{S_~b96~mE zIG?yM(ZOPJxYV5DbC!O`S#8DNT4~EnUtD}x<%rX%z!aZ30=ab$mHa!5zq~wRS<);k zE4aq*qVb8QEUQ^QVmdlc+TZnvtd5=e@X%cGi~DNCV$@joO}?z>w0fPl{@yEdzdh*m zzhv;Rl4-*8JuPa5pRdfXC{lmKQL;}|R&3)2<xazjrwKIzvqa`B|Gz-GbDg5aQu_<n zeAYw;^ae1T{~|BOXr>YEx!psr@{XFunf_L1Ya8))R{!0u=7nvAGeQn1S6=*oQzBI` zZ0iUAeL4(J4wnb19nq~-=A7ejDCtm(^IiqMNR`*DlG2vm@gE%ir#lLWuS_$G<QAQ5 z-?x0F_-x00%uM};vs?O9OjPa4i$!YNcU`pCu;*U&RsPa~-=SwuyN2yM`C-prb^myk z_cnjoA4wfLw%zitN6f~Qt3|fY-`bzK*c1QD<VX5OpVz`dzjxJn+`TaWS;aY%2E&GX z20t%;pFG>}(vyRdf164>_W92gD9aT4_+sNmHi7=Fou6*JXgy*yyG~Mf*GKQT7rRxz z#;p{et$&Q8m~DrGzvqrqzm^{PsKBgPeoOS@i`_4()t)o2sW{l$ue`1{XYa?#*8h=@ zuODxWNG-l5c0ik<Sop2q-KX}qbJK25Qg2bKEIc_q(>1Ke`<YCK_nLo}kIZ&vuJE|B zgyDr;y!o?V+ZbwngHBx0k+AMjx0!oE{H1-*Y?X&|m!EeMIQ(bvyGh%ue)WD8h*D_T z^Tl7zX>!fyb@6jMbe0@*n7nNB0=H-POB1%=*!}U-hbmW5<JFFL1%GEQI@uHao?Fn# z&!4^fqe_Bk`+WT)n`SMTvs5oJ&RkP+|FvS<ukNOflc!!jy=rQ{`@a6K@||{*9Ohn} z>trMFYLUw0r?uD4oqF1Q%FXmbQ^dRLkspt|ELfk_$<!Ib{lDX>K>8x3MV`j1J;eJo zxN1FRJh~m$N^QU8oxAEz_WJH9-Mo3_J*r>cZ^*imGDF?7{Yc`Ph0i9lZ<h^PIL+x3 zc%mx*zhikQ%f!p#`LDM>dubnaC1$?EnzgOEn>}=A_|>@Y$vRN8z;{))w_xPVz|RkQ zc1Crt{=8Fz$-r3u*A}rStCD*wdkj70SDUF_+`NoeLOC<rC4%$O!ulCYqguBM7BsF? z`<xuz_{ZhIk&rT}v%-OPVP{u7DPg&AUS)3KkLC6M<r?=fcDl|EXZ|Jic<C(j2{yIU zYywy_+kW|M{iSyQYSjK9&a)9}n@hWF`=+;Bah%=t+FY?FK5Xgj&$~CD(mBM9m?van zex$Rzm)T8$RYYP1J9Dc2tgk9skHnCt5$ol64k+q%oU!+>HvjBxeK<@XX?_ttW4PIH z!dijJp+W8)#p)@AWnyt%A0RW3a21V>5^S&3O_EPqzgVcudA?6!$>s~!Cf=VJ+OD(* zF<}W(enEvt#A=qW(~}=3-2NS1HLugk?$s5!)TE1H2U@xrb=Gdodz+CF_W!unlx8J^ zGK~XwB%fADztA{P%^>!)azSM7yya_@{2CjXn9m+`Sh)D6j7?dF-kc!C{}a#M?fG-R z)Z?ar(42q+F86aDJQ4qy>U&nKTtSBMq+qiwW0A>QztyigHr2gPeejN@TxLh-LlZ+k zX~ufb1FfRF9-Qoc{MBYo*{w{`_q8?ejZPfTP5W>E^-A#E)slC-9tOGX%c(Ww{aar0 z|6uO4<CFg%5A{-3i0^+lMdQ{Kv&Ua#V)$DpEZ05!<LWz0CL!~fm>r83|G%&;^THW3 z|I_w7$;sS$e+wHP?*6uGdh?GPo{n!r{U+u&HhyeuY+7t-x8Yu!k>zpeLu(}eslQ&y zCd1z6(ER(t#D;vUKDVoyLb5??WIT?ayYy~?Q~mPR2k{d&mwvpvELii-&bLL+VjSl@ zDED6;K2^VF#ie@7;G4~U|1|c0FXXp+q3}H1<V)x6Gyl#X>nvVhx@*F1huHeRU(4<k z9+!M>YtHp}@&AI5RmUa&Z>_OhRx9o9SCqEXucWw6!%}Fva-3zHd5cZ1<gxW-{qGYw zbj;Sz*}8UepAWmm48Eie)$Fv{$Bp#lK-1DM1bF_~S<HIjyY2c_#f-c-MI9w8))OT% zvrbQ$`(0kLU?rpArHd_J<t3M&{bgp+Fvqgb_-WnWUo-o>ij^{C{Ms4Xdw84oKlpWV zoq(uZLB^Z=zyDjm+i`en?TzEJZ~oWc|EK8k$K}g}P3AafpSyAG;$pWS?>S38`SFx1 z?)y~N-dAfPdpFx^?lH^h&-PTywr5zW8BTMZx2;EY#V3dP7f+h<eV?*C_~9K!_LKiE zpD|k>H1|;`DE+)`X?(L-c$LVGKc7xp3$~vNG@W}k(`wem61Eb{*1p`5-4BZ#PV-ua z$@0GRi}u*J`fJSUGf^*J*V<Qo$p{ZGyKSX(>L-76-p;3YIwih7yISz)XNl11Q^hlL zcTT#=czed&!Wn0OJ^6pL>+Y7v^>6F1tzLMo`?_2Dsabt{i;|pWcc)n;Tgf^4yUUhN zd0h5^sZTU_$F->JqmL91J&)xm&}`$86k?NHZu??~xq8-B%jax{6WOlERj<`<-?YO* zRFSj5uEb>qubj<|PW#fFRd2W7uM^!>HamCQ%-8+mu_Y5<a_E(334d4ovCng-)#e>B zWnq60Z8=%(l7D5UaJS8eyDh3m3kw#P^vqShvcmpH)9xuOuM9ITC|vhjy>8bk>rNHP z_Ot9QLb+TQTh8wWk6HX^c<pAP#X0BS*5~u8)i!6nm|0Z%B>C!P-4hY%@zS|LZ$oAt zm#aP_(JauYc)+#w^R+Ms_Q3Sy@Gp<AhR5G6DOqd%R9lBxl#e6%$euYjnqGDFRqMEC zrv2AUztw17e!q76ZIhPe*^SS)mu#BamvnZG=h|&9wodMEQ<w3_pRxUZ=bhn7`CDtu z_)niI?mxx$m}RTLv3cjx`c+R`|DT}oe#T<?K(&~fUv}z`RTSSxtx(RmduN5R$=no& z<DSyXeMJKj7A!WrFyX3YlIRidKZlPta3mc3bl}_!&x*UH*S|Wxli$d9hevEj)xxlu zU!R3*+p(x|^G#McKH=|U`TqtbGZfZX^VChSd-8g*cle@!A2Z^=8~-lNe^{~XU)tsK zA-k5nj{Y@YvEtptIuqslTaO5NOR$)*h|Ol@5Gh!@dEaT(O%EKlEKpy%x#sQ>X*~~@ zCpXMpViXr>PrI@cv}$0^jyHckpEsX7H{0s^?YP>nR}E(FzP|Hp-{FIcm=&j)IT~G5 z{&ywvXr9vEzu#`ZT{79P=*W_Dr*xnHeAKPKtM2&5m={lY<?Ze~-FdI-_0-==F~SyF z0@*7#9e9}QK5C~=d)!uavHTFLaI^3sr^W0XnjJL-hsqc5vn$S0Iq<-2qesB<<bK<0 zwaU3}zYO%;`xlyf#vHly#JBQcV2u^`y^?pkg~jEoUM%#Bxf!M`vG4mqcKMR8Nx^Iz zXR-?D2~=zeHf?A~G``%E{NvK8h3|vkKMCCUB8w?UXissLShbmJ5A%+>R?}~9O^w)| z_HF)_Ut!$M9BInN2?rWhxvPeqW=_`Nuxi-IQ^<5&@WG0!TM8#E*Ojck+Bda?b<3X( zW(MnD<h(Gb*mHNW)|c=5|KIIBFYIq~@y3IT`F{#KDxc5aliXKY{B&w~*{+Sz`FpqW zN}HYO4eqnxQ#>El@$dDr*?F&C^;>bc7aN^7dM*}_u;8%af`f}pH*lR<wb<&gcc3Lh zoN&I1lalE}yWekwJtyATd-*}<7UPodmyUOuOkBRKleO(>q5g`{G@V*oe$CX0G0iiX zuPF-}P854oRg`0sw@L48Rb0j?ji}mx8n?=NHLOaOYgm1sp|R_0*NZ<3rCpnUfA2l^ z_lxt+bC+6sOdO}q|9dt(zV_*dg-4IFAN`lV<6)bJONGvxd)4oIRpNBpGdFd+NVp1} zpL*D&(EZk4_w>1?VU{|3E=F!#7o!`ISnzD`j<$&%b8l1^8Y&CUo5*1)?pNJq(2=+E z>9hzNIhQZ4k4}WQTo*oIezANDqqe&6^h>Rs68i12RWFxLv`BgSe2w(WC&yl?%st`3 z?WS_~YQ&_;{&qK~D!%j7v8fT5t|DY^$dmPXuZ7*ZnA}rY&r}O@R0=b%R-DmR3R5n; zY4rGF+k+qfe!oB86a4n*ionG&Rf69(W_$_!Bw85HC$4UM>DcN&F>jYi{#_pR?_~Lx z<jzydbC1e)8uY!}`Fvi=l$i66Zn&PgeQ9g2i--H8RXa<Rgp@na2Y)_sd76<@Pu4m^ z-JRLZBDot5vaL)Nym8I!{27anPA%JBGf$c}<-WnQ0~;;gKHaco_LiUO=Vv7ACHb^} zW_~<#r#9!-YfjIkR$92+3Q(IYcAk~(7&qIlmR~k+rc6>g#cTR{*};kKax+(!+}mGY z-^|UN;Mq|jFp(jKX@B;&%B-Z4V=VtFSFK#OX~%}E`wdrzscpRUYJI2nw$tu9l3mW5 z_nn{Kwa}qMS^nMs;Mem7#MMu$ygks!Ec^WI^ULf0$Dg(pxc(w6Q2y!L6Rg=K@8*5G ztTOrL_r1$D1=mSrC%gSU|E5X!(VUB&s>kw`58P!CKdrYr$5MTVTS4dQhdX3;9^;Mi zw^;ao|NlBypHpAv*q&;dJoU|M(au|z41vFv&#%iWh<`XI`N`BH%rSw#Om|IK_)g)D znuUX>!;$Sr#iCW3PoF=nv$;o``>*wm{*xag`XY|=$_VqgKe)5tFuS@M?}Hmc>X`|X zdbq<S3!iGOUNfoY>X!5!fejt)5%d1t-2Ys)I5O^IzRqU8iUS+C_@sp-Zh=-EmCRW^ z;r6WMQZ@Sb`!>qo3AAtH;4Xal`PA)cl{;q^JbLMTMo^e*f&DATBXcKz+AvL#)vI~U zPxbdRn!9_XX0coBjw}w@x>cZAcgF?KP__B_ALGFV?@|4IA~iQtr|)c4SaYQ9a=ZW9 z@17SkUrQHvi@T^!7Okp^FiN^O(=9`;-~glHUQ->x%^YX5QiJNE{tE7IeZ*AwEN4ZD zhiyvj{QCISXRiEG=Qx`(^NH>|$6Tk+Gxg8d)r1$>#Qv%O68AFx`$hKmH_qqp%@cOk zFk@8v_b>Xf)5?Rs>(%81PH&w)&u-4qoKthJo4wZmnB)|4|MBYcYc?O`IKk$!yQ3=b zPrld!^VW3+|2x_RvfEm6!Yt$dO#Qk~`H*7S#a?IK=A+yj-zK)pKKmkG`?E(e*KuxW z`HK6T3p@SNg|fbeU*S>sR;b=`i%F^CNYlebv(9Y3W_&Cv=K0+6dBOG$|Am;RsytZ4 z^-*Eb->ilkGD;S6X0JM$|0H(4U2Tlfks~=hwjX$Ye9vLou*!XDiW7_ez2gS2LF>PE zH3;Oqcy*1rM*p+Oulg4n&L1xL-+0jy_TTROp4^v@!+*C=aGm@305gBj%7jpFW4n7B zJ5w)<JI(vK{GwraZr>`ibB4>3&L-!G2P7mo9dMYwK`26|=;(sR%ULsaC~7JGxskYj z=d)RPfys%!uUsCAEoG9@m~0dDdj5$ybL&>9r}IvGy4iQ_{`#Ar;setj)jmsJuX%RI zvpM^Xx;pyhHr<h}`^;-rv4F##Be1@;<>m25?>e0?hBeHao2T@5kJ37gaHeZlK4*Pd zwsfiVtwriq&(H6_>36qY$ooZ_`wTz(z?9_re<#24_GsPWdcl~?vE{Vh?iojX`Vty4 zykB)~+d9YXva`Z9rZ4~YTx9(#&fG9z_H$0o9c=}svl(A3D%$Abl(R^jP4M;UtSvmR z&aruE3HJr~JY#0$oXA<O!F}Ons?Wmw+w&L_S-(s43C1MwzmR2`*U{e4tgSA}CvK<s z|AX%jlhk)>#ec+IY82*~%W&S;`?krG%+q^H4>a(v7b-|mPf6%$*|qBH8T+@U&n|s9 zYLPaXfib=}!q+>xMN}e#pQmKvJ@3nw>;=&eSYm2E9#y+*yWFGybNrege^jo?$$w5i z^LhHoWfNXhFT6Chi$TzOer=4BlcEFjx)(Fr+i$1buT8DB>YW@K=s9J^EZ1`mF9Lpl z*n8>gna9`s`;RBKZ}C3ad)8>zU(Yj(<F5tQrq90Y!{)u;*SdM_x0e#H?Vnk07Js@% z((mP!y`sXGwpkt6xp4j5qEnhrJ0$Y9utsDgOHX7oYQD`-*!1I6_p<D{c}L0}beuC1 zf4)C@Y{%ck$8Ecg$BPL%UfCMWZ0hCT^kUw}&J%oozR^3&I^IM)u$d?}jY}`Uxbn+I z_rnjmsyQU~$%?zb<&@Al__5Kred>Dlc^`cqbZU!bxy&%XUsJr(x8}~4|7l<5Z>jm* z;;3@@zhTvC@r>%8cM5)ccFe9j(I!ySGGV*!VUx)3JN%ng_di)}Yk4E`X*hSg@r%Nj zp%G5gV|vfnpOq`l{JMPqrM4d$M-^5yFfl)tW|q3``(fhbA6z%SbwuA-s>J1fp1sg? z@`CsZVb8APb0iu#KAoHC*(9oRzT^8PN0!?rmuH^czT&3V>)E+m+hbHuKKkDCT4z_? zlCxjJQrOq+-v0N~0*)=S<u|YI+jn8#&A$elbH5oymojf=6`w8>m~=ty>*RH-QqJq! zPj!0hvDtdv)=oXEqkVH;Xh;9;t3OqKNomq;?<JPob(E*iKbv#;;I+RC-oCl9Qf1Tr z-&UI+me1U)bNbtQyYl&68r<2Dch)ORYd3CsS`)p)|I77>%I;RDqf6FZ`l4|8;~gn3 z!DfwFo%33y`DA096`mAbng;6USoTyDNKOvh-f{V&=)aP!th&4YYKhC|30GBqWs1>W zU*A6OuIcrd$9?^Civ0xtl`_pq=1Bf@a8cd=zu(KNaysHCH{_|^5A}69|2;rH|Kt2K z&Ch@Ru8-1NYH;eHt(c3-{f7D|zZG87>c3ocx1OqGqbk6^;Qm6k2`y<~=BLbyJpZNg z{auDwUzhVQtRMR>jEks#yLIj@&ai7aVkh`*9d=wfX{zKO{p(ZU=>wOYr2@)J;vYU~ z_O@TIdOY9w_MPj^X2-R?UPvC=|M~xpv?QNHJ&wAJ9D5_5%&nhg`K;#ds=tRXvaI(I z|G>t0A^&4gphIKh$0o+o1Fyn7JWr<|J@(3X_uW-5pTw!Ad9LX^9qFF5H%3@WXLH)V zOu?X2O0z6%l31gTN6rb(aEq;Y>X=s$vv);wMdHF694D^&sPxU;%yzsgVs^8Ki*IV! z{(nNTb$2FS)C%?&%DueXy(H(q=HlzyB6PdTqRhLlNs733f9*V``uhI7^Tppgj;%Ft z|8k}#*nPTR_C>?XC4G9aPxUX>vcDBwYqxvN{r#D5(<AcKbhm6==YM#nMZaL!y@-aS zi`wFjQ+J#YRQj$oaYs?!8jn~NA@%cH!!trxwO)(7lRQ&@W4en?=RfUVGS{}H&#O%P zQd)m;#-W#cYt_5NW^VNVazeTPNY<h69`>eU(`qg(diSbjtMyZ_daFhLrc6`Z=O6T% zxliM}e&DQdre_j1LMfGEA5u?m&r~s;%;Ei1C!_4YIO9W|J3rZMlsY23b)~pdZgFH+ zNa|Q|=L;?qEu4L|Udzaj^FUDKx<^Wdv3Kui9a5iUVXm6CPvO@xm-p*zj|z6DgoIrb ztGs<_`ifrHBT*CBDz<YxH>lT7vKQNXGuQ8#(h;S7fi4MabmaD2wY(>N<Yrl}-){B2 zAsNDwo=)PO0_C|4r8_%5c*I<Ym{)mBrZPB;<ILGLTRl%~{+G2`;AM*L_2n;>uf+Sz z<5<tdDkAYBgQp}((D}|}PET1kzZaSLFHRU)Z(0*oA>Ch^c%4_B*)VtOKL;5ewLKYz z-#nA+x4n<6KPsuEI7$CykCNB)6Zhidr|p=yvE=PngU%Ahy%#6_pYNy?`96EfhIuc4 zHFdB*Je3@CMdN^L!|M=l`KcC1)=Is%E<7(bW6xHt$$n|u{&zn5^=`!mt;gF<U4Qyb z?zz0*S$xY{b-jt=cl19wvHY)Q*>SGJ^X2cYw`SKlMla-!<ehb~e$`X?eTVzil>S{Y zlyo~&+5e>Tn@jHEwF`WkXZ!E5*thnlskUv5*OlEDve&YG$^XSR=h2#d2k)G;Se3Tm z@)^VMwfjz%e+hln|NfQRpK$fh+Vi-1Oqv?~q!_Mh9{=e0rzB;jY-HG4u~`#d1+8A! zyYK(c<0VX21Q+SLyfjw|vgWGt4ODVV_Yhbx&tUGp^^xVBpN^ZqP|=7ky>}`~M=d<? zcx=kG^>usqoI2Ar0WlhPA%>@<@!XnY2eX0;A1^uIq9@n=^FY}Dgxph`J^uVY#^4gY zpK+=7Ywx-Vt?QpRw6SDJeB1lTgjpeLXI!PC^>)qWeg$r>HPbi)1y|IjINo1dUG^(& z&%@i7A9S{#37fw0Se*Ne-0ka2GS$7hzy9W^{-(M4_4<`-UeBu+7vFVhYH;cir6sWO zJ~b1bBQo2buZo%UdYX2i;K~CIvJwt+Y;VUb)z-ebU5RgQYqi3(c8SBQ?(HuB<$33F z8pETyb<^khp69(fdF67^k24h<6x{?bAJ%P^n7hKe>X*&J$QHHCr$(pzZrp$KPWnvW z{)$64uXyIDTNeL$ePHU5Ju4Lsn@Rsnc)I#+**YF=C(zIoXvf5Z^2SE9H8sKqzCS!) zm^62_&FP#~Jz^V}{@F+zSSx(JL8Nfgai(i8Q}tGGT=-PWUD(whXt^ZMctLFwx8^$W zBU8PZ*L<r!{cHajPG3c@%K1kpwlu6`oznaCU!Rgyx%HO6JJ)P|ReZ@X?f))ixz+vq zJ}%q+DDh}8Xo#u4g6GN9IoB>d`+ZpX75|UM{rpawm3OX?jl3qm!Pz%pzDcXgy_jO% z8G*Wj9rI6L4VuKjyK~X}8inKY_opmbuN-lV{oBS*kE*`yf64ju_qk<LJ9hZ=oV!x> z|I+1`nUfa&aJF@4xmUY=N{P96oRQ?>3O$1W*!B?Fw#NJH3vVXA`0-h+rBowbCVcZ8 znfW&kZW87WtQRX)E`2C%d3xv7g%#Z=q&I%w(;PD`V)3K%{Ou3dt?^)av|N6x)voVJ zmHu;_rqq2(T-vc?BA1iOB>V8_#51SUq;-?GJ<Ut2x4*WAectEW;vb%Nv6j0>%zvCM z_?~@Bu$-T#@h^Y5H=$qV_qa^0HB?SwXMcQNs4vJgpJfmG{LsBBTdqjIuHM;fRC79v z`O(Dqt=ryY%rTTNy5OXHy5v=Be$<+On{_V#-CqCq>-BTH-NWWR5Q`~L3N>EyuXg9z zAL;L&WL)Of+p%CnLOz?*f0xRVbtjh{n;ZD(SL&CD-S1{(zy19@b;87o@H)Hi&n%<_ z^V5&=9%^5!fAl}otrkW#ceOVka^6Hq78PAikbQpR-iI5>{X2IB+SluDnc&BDis9#l z;^*?`&F|ObZT#fUlIG&iyR85H-tYJFJ|6MqY-f9*W5xNY_T`;j5BAJC8dxX4bfV(K z?SA^3ewH%*(UP8#yLb9c$K^BTmNvT_==WS6;PNn|^S=AO<g&-gY3Zjn{%KUdxuSCV zmgqVI>80WFp1vD*Ww)pJ&icY5{&kbF_qA8b@7JH0V*DtR`RDD`72*C2eQ&QvW$U_s zar~hwJMa4B@U=U1{(X9%@u~2YUvA>%fVVqNW&KT`TY63NyW@TFpZ;=_qgVU=tIhiV zQ9t_M=WnikGQ6*k*w$Kb-rZfkzJuK`SpNYVd;6~)rjJg<^ttZ+cuZP*(?t8I?GtC@ zZo3&%UHoTtjd9qK>W8i3cM5xV^c-5t$6mI9)02tsSE0eX#}n&?K0WFYUOLHQ^)>TJ zPg~C4&e`1iI(f&&Lx$GwTbHe!x_oZgtl8l+j9*N4mnn3a;rsL7VSf89sna5l)oLfV zoR#qV?_BYqkzK|weSU4(baC~tRQV%{Ti>Yl-rvBN`8{XeljGMPGS(P9n^h{47ggzc zLtcPc%BGar?|N%j$n!H#&+Pke*7fX_T)ES~SKUvqN19vBRGPQUc5a>ji^}FDtDo%o z@!5aVg{e~SWcl|0dbN7x`^!v)*J|$9eqXvbD@&s9bm1x8b%{SOsmzIFJ9o{ra`*Q~ zNvX$He`7lS$ii}2&Rip*mq&U$?lf^cza@8MV!^rI@3*qodvKR7N&cu*Xre6p_r>BX zU+dp&Jnm+-aOt1k_j^88efjEr-u2>&_C+tgtzP`%&*Q}}HpDK@Xy3Xx<8ABWjEnc) z-hcmHTFN!P{^7o6Lmm5t=O$K7oBU~y{2ST!%kQ^nxLQ42KIMzW*4vkgp2^2aubDXa zZEgAS$G=LF<FuC_JZRPTth6b}rT#)@z&XjSVsDG)d{`Fsf1>=+Yu_?o_Jj5bZF#%x zc3b3=UFUDtfBNFewdRHWs`wl6wM&mUcFR@0Sa_rS0$VRbd%=b8na7*??QU3_T;I58 z<C-m%y(L27Du+xitqfTA|3QT<%c=N;M%G1&&TTHA9!l)}`E2$%$)Edvzms+=&h6Oz z`SUqz{Y#v-7ePBZ=FES*!lq@9#pRdL6Fb&R=t;cqJ+LBhvC^$6RWDa~Zoj9>UwdKM z&DPf|QpNq3^X`1UB)NRfa()Q|g-dBVmkiGco|n1Cz-QaBprl<s<M8`i4L>E=-&sua zZ%*sGzva*24T8#UI}DfmI-0!S^Lbak=ylVcNw4K*DW0FIy;<qfdoJd;>Q={#Do%=) z<~+E&_Q}usJoDMf^R7Mb*}Y%)&-E*JOR7q~-raue1jl2~&ClJZ{`;?9yG{O;{k-!} z`!61QQ{36Sb%m{b>E`-7CCl%c{W=?Rn5$3Ya!QtTj)Gq}gSXDc7HemzcagInUb=kt zob@>#KEs%;b1oz=I%jq=_|dJqYUiY{?TJV@e<^<2oz1g#RVTjMVswh(-lgreUm7i+ z2k%vhtBr}-Iq%ne`-Rtk9Q>X3e$UfMQ|i^;EmYPL*Rz*;m+5Ag@@?LZ>PJeqI9FA3 zJ=ildcJJQR75#QP;t`i3|3o}`xqhFCw07-@lgkY@ij?L&V={Xk9)Dwzm6*^9t!wqa zbzerU>hp}qm|&e2z>-oaer{vMoQ-E9k2*h}6<jKtzIaQpyiq2<b=umiYoDvj?=0T` zu%hse+#M_S%v7Iir*r20jPiaOJ+JoGwc1~W(x3jCn_cesKjZAme<s)O7{$%nY8rRz z?v43hc!iECPjgp!fAn+ye!V^ataV*$6U}4OzCGBR<~}D^-S$t<Z@nG&3K~CcY1Q30 zW#)&KEE|gir4KzUQY!A<J+J81`(M)kJr8jG?LHsvTxc`@y5_!LS9X8DoBVv;hBdln z{m&+OpWCdweE!9{S*xb+tvOtJt$e;$CP(RIPycm$QvNqqKVS1Ge&VcyGp@gB7oWFP z*{=G&*sHZ>ck}gM9`BmGcge9+N?!4YlMmERkGpiMKCbFu*z8TyWp~`t`uK10$BWO8 zW#?S!^1glG_B!)YkM6HW7dm@a{QP4a?NWSe!TkN3XP&e1TqW}A`i}FL7@6|!d<(aa z$~66|{?M=C#I@e#L9g2C4=;AM^!qX;*st*T#&fpYf8}u>$o;(G!y#_#cSgx7EOY&y z^yNLdQ&Ioq10%c4gT5_KG~D0s`FksSz3E(^r$;s}xnFRY*Z0UW>DdJ#wgo;J&whNh z$nNC%zD07!1C2obGt5?ZPqgvN%RRo<tx$HK{kw2P{ok*5C!YR(uR8yY#D(4OcAcJZ zq@$vAj@P4Kb|-BW4qYm2o2Yj{Qgq?FbDG!Pwu>l!tiI%_e)M?$qgrEmSBu-PR<D0| z%__HHPL+e)*3PtR3s1cM-rG1s-uK3r-S7A9HVl|CWoLRrd%=}J_o=R-JPt1Aa~2$u zyeubh_mzd!?)=xhIb97GYCe8RUi*8(e#?o|`%g=ri<z@r+s|oL#iOa=aT|5F-?^l| zG4XKQ&G`Snu1`zXt+H5s?Q6n%$v11#?`>4yH|I{;pN*4qt?o12&fCbk=D39AZn?iP zcHGHFde>|1TlX{cQ0}RJ*LPOmn9*5vqkQwZ)b5<Ula-y0pEGJVyr>YwU?D8MSIzIm z1-|<da~}BZj#WRDCTRElPI2$&NtU~(7w_b^{Su%aR3!PLy*N|wy4}AYkKgTiXF5Il z*t(kF76!o!+pXW|Z0;>L@M97zKOo?&{7K3rV}fFq@b_b>S3~uZ?!~0oy)HhN`EKVQ zWu_Acf1XNjk3DO4<3!%gEaT|<J2#3%$`3o0wQ^h$yOFc`?3)91wYm4&<vutr{Xa9^ zaQCmY$u-B{yl{3k>C@T&za%Cle0A*PzwI2COJ|;VGvjdThEMB-9HacM7B%;u;djZ{ z`(w{tt77@;pDUbmrZ48(o}Q!h{j8nUA`6$rR=X~k{drP*JN4DczpFp}Kb{`*K&|lC z4E7Rzc7C~>M^U#foIW4U{6FjUi>Fr1U+=cdW^8+ODy>~UyIX(Xj+Y)D%XhyjS^sWN zXr0{pZ#Q@R547*ydU*NVlYX~r!=($R-?RVT!!4c}*~EQb^Y8Z;it*DAKlxmg`~TSA z%i>3Di%K81D2UC7Ex&u!>{dqiwTg=Hh}y<$&)wc{$cnEH{#|n^D1OQLcblJzZ9Div z{EXS{1!>VYwuWad);Lu2eXnbQUQ&nU%ljRyM-vNw+**Iy;`V~gW|EN~ZZ3EFqO~@^ z-{M?O>(r?Eo8P_Qe`TEhf6=~=o$LO0{17Vnf1kU|ZNKE%ys4)SrQcd3Q`F*WTO~Ey zwqa+7@qB*!KLzH;4bn~>IQCHEYcz+iqkpXT_e*R)|CW1;H*U|6+3@jZYJb<Z$6MQ1 z#@C#C_vP<$)q;G%i^hL`GfHb;EZQ#IU-UTn^E#=s5)1YQ9SU5dpSP>iQYOB3=USCg z7WRJoSKR`Jf3jZx-8rkgZB5eO-R0T5*^gw4d7d|P3x}JAKYNxUQ)mz?b)U_~VA_R` zlS2-c_^hfv|08)F4<pm$ZJ!$SG+ZK{{gAb~;(qq4zkMoS+k(`|t+N;&<vrV>;}F}N z-?UPosc%-v>v)M{RUQ=_;qkRw7ye>qoXMJV<;I7J_nf2R_6UbxS*zM}zaaL@%R}`u z6xVpx&E>lPbZ>g^Ly@ISTs$USjpzDiUz{ZM=)=zE^NhdvUD%s=z*xgMLFq=`?zb@l zbLY4U{+%tLz;L1QciP3LNq71y>;B$5w(ozL<ttwEI}bS2KJ9q3>9miM<nAw*yidRX z%WGwG<l!%uJC<xwQVu0Ac(QjtTsAxRalK5g`~E-k-u`n<*A@FOx;^;Fg}45<0`I18 znQi5tm+yDy^s&wzXPFlr%YCrk{)W<eJJr9t-=4h|abcH^&D6WLC&RCO{jvY{ROvN2 z>Th;z72AH)_xYDw2O62*uHAmGDAG7^ld`*f`$@J(b34=DZoOVsWuN$S-@g}ChClzB zWTkYTP?@A=ZC&C1yX-n|?nTyT<t#s+PLF?QvAjTOhJkEMVW)4^ql?#;XHUOWd~1D& zwDn&VLEmu8y=%5;B;M%O-}k~yK2hSkkApzww)^u8l_r;K{9pcczTBgE_iX=$q<z0P z)$hgx3&!HompRWn8Z4773$HMJXi<}%QhGhsyy9{d_eZt^krUS(l$`M4&iZ)!<t689 z#SUCe*!Z<_$<gGAvE?6+=6u`iuPZz=^CQophdY$d{wr+A6o0rVp#ICY8yhwRUbuO4 z+s|jS!{zdSG;+*mQ+#E&vBO)?V7kYq4=<|y_J8Skoxi!){N9Z;$?vP}m&kN8FsMER zodxi>_)h;egK1w27JNRCy?(~qotu>pD9A}nE?D|tRiXaHsCh9#j}z`p=9*udv~BgV zyPwZ5+o#8FXLBg$x9-}@*7?()bMHw1!u#sjoUk_O^`^JOj<|A9jO6p*{qxuApxd$v zOtb&ZWAe<?3@j<z^>RZ&cUz|iuUX<A?{7!f-w&3~-@5Up>#Tg+iJnJv4wS#zpSS%t z`?u}<@fG*t>V7`GRB@&&-rXX*A!Np#V^@V+Pd+hFopJrb&F+Vxf-~1Qs?VP?WhLtk z2geUTDkmm9b2<O<OVvEk4yz7phQksH?|-PuzdFyR$LrQF_x9RM<$jw>SLar3tgC!v zF|+N{O^!wFb5z_)&+WXur$M_fF*W#9&3u)4OY0uYV0?16W)j;A+eOu9W}T|(ey25i z$Ch5JUyJhoT(e-CT6BWD_U5(&Zqm6aFZwr?foALld8VusESvu3+uxb{Q;xmk=Tn=O zCKnMBAeFwn<;0F#GxzWJRSoQSx$y0du-?vZpRQ$JX-;cy-;wTO+#&rSfJvZJd+nA< zvs+>vPV=`();)j5V{&Nv!M!E5r~Kb6d$?ta=&ju)rPGd@m(IQQOn%FrwfahHKkM5^ ze|dCy+y7VExAIQw<r&wnWqr%5yTnrL?m4UL)qJrM(Fdv@{VF`Q?%U5~^XTgv<+F^c zeK)6MrtAN8*uL21h{{~)$#pXi8}If}+aOo4o8{y$ehEFko7{)O87AMYUd%gxTl?AK zYnhW~o_%v~ig@$?-`j86pXW`wzQgu^&g|j?2c#x?t)IK%iT6Ww2DQ&8^{yS#IF~GB z<8E`U{>a%`-w$nGbK2!6#~%a#U+0qgdj!NoST1X=-W{&<q+_Yf9Nn5F4e<vyJi3!I z+4s%0==@Td<Q?a8qH>mHY6X3amCtziLCNt~;54ZtPkv2%YZ=Osq{7cLT|;)_r_SZp zuYGrzKIso(h{)M^RIAvrC63*}$nJ8f(d_pdCa-xNHG78dty7+j!AIGiK5dsbx}EGk zdzGNE>apXQ>bIEMWiq)l5>p-@H{W6SYi37SXP-1<h~zd;Z;nR2!XiC^iJ9&)Ini-N zTf5KMsNS{ZK6<Ec#_m6hVs0K)vi-E-ieulkw)Y<*4EWD<emm8@v7o1@Z$@R+YrevH z4EG#k6!tFAf49DOjbqL=PUG&yKiBTq<h}RDs#3w{U%Rx|6<k_kwOP~sI74f%-rotk z6f?aJUG}$sdnG`DZRzwE&psIN35jtyo1O01^!wY}*Ag58*S`oetY<t^+vEMrw&UvN z^LDo-=X{vA(bLM@?du%Ny3RXHXV^Rb@LN6+5I=P1a52XkZpG!If@WGG%I<w7Y@UfR zub2y6Z(efO6+UXm_u0zAskLD%50kXg^fF$?ue=<^W{CoG&ny+_j?Ud0Dsk2@ddA`e zj{^*o&egDrU+s_obdtH_w{u$1Jd=|aIc<^d2U-7$d9s~Zwq@T$pJ*F#2?pk;kxxK7 zxt^xK&0im1+xqwU3*|eeyJZ6Oe_a0ljdNGY)d&0gr<VM_@c#1Ew=V;?Jy>Gvtr-@j zKCS3epz<B#I|gcNu8IjOR$VSlOP`Z7_xt_R>t??YxBgkI8@6kEaG!qXI)Ss-IQM55 z%G<m(*>)`dmgM}hCJUw8oy{9}&b_<2TlT`<&82dxddoY``!!G7)c#99!(4CUwwr(T zy(8UN4qyGBUUs1K+dn4nTkK)Wj%Ht5aD4s#i2L7<Ma;jwe#724aldJ^uYTM6&0_be z*Xh@O_8iXH*MEP5rP}->zWaQ<B0d`yTxOUq`T5VXqw1{Be)`_oSjyJvt+ePUv(o>n z4xdX0=T>U&v)J_}h$HuW<%gpm?LTh6KgFdsG2ygrH^=?seE0RmbUwsJ?WolBbg}rZ z+nIK>^;FAe6(gU^e@}Zn*s-pvy<^g@4Him=9!vHmNiASwT7Iec#;RR9m7jaP?q1#E zb9lpXw^_CycSL(^xc9{+O+t0g|F3t=4<CQ?`ycb0ucd9bHXQw*<!tvdDf;fu1%E9j znnf@kNR_iHS#h@DyX+g4X7i7?&6fy$nAvx4&8e^c+1!1z=O!MzH1*M?v^ioI-dFkN zB`<#&+toa8JwsoB&l=e<bp@l9=Vxr(f6HH!CBTxiMfTUB%nt{DzuFwWWUt|M=?jU^ zPQ7Y=bfn+vO@cGOVap~LMUFW^pAT->cbQdj?e;I;_r=BQ{>w%$tll%X!?Nty%s1QD zZrhw59(TF#&lm0LRogjcOsP71xj3o%@1f5;e9~2Yo_u?H{O3Gj=A5*D(%0{%hkvvD zW!`ACtG(y3%7GY*UoRHR8geyO{Qvv?_#%f7jx#neI%+ZG1sqS3`ML4Qak<AAgy;A8 z&tv?5546SAqvgS*MS6{V%2f*u0#-2|(HC0rNk-Jgt%_Zk#f_cihjf0%8g>TpDZX|r zhAgr!kBUy~ia%B`VsEOyvgq5LVt@AwN@tmlgLks2H0HDgiZ%!=-Rtz>@pPll3^KL- zms4tPbyzKQV|XafH0QoR0>?oG#tD2Cd#@Py6~-qha5KmL;bwc`X1n|5gx~MJIKHc2 zy)%7#xj_6GlVTm4ZxaMGeb-HA|G`<-!Etsnzn=U2FO{X&<o8d1^jW;@0ngst)z$gh zovqPH89xoz%~<g=Mo|2c`zGD(nVnPrwa;KqeQNH`vpreuUCwI1ONYbeuI%r)Dt(%B z+DoN-H?;px&Ufr&j4D|#@Nx>{yYoV)cfUTF$$rDTT`q&&@0zdQ?)~Amu0KB7ze~T{ ztv!{w>ffKmx=FLvoVU9r7XIh?g8kFyT>N#$Y`d({(#Y@XZZmXuPb$`V_qtz0RPeI2 zv6o5gJuVfl-%c{~7OtN4w%X^V%8dVark@pztg@8;K7DD<xnA?l*82O;uyOq_J9_kI zNtp1_w*J^)4pXt${?@)J_MR>+d>6A;uYIPrF?0X*w1@L5?tiMB`|qIowqLy4Z!r`) z$#k69#x5^#-T(fym=_9G7ewz=Rf|tO$!{*d`c(cCKBY&KAMn_TaFokEW`5POPIS=% z9VULh8^`%&Gr!*{?%!==F6@_n`kQ8?PbWh}+J;|eC#4mi4_C6AFQt0d@#|iZLw8lO z>R*4op1ZiEFDmuetD^UNChomEGf8W+skvFSzs*<H=^JiNIe2o{wuw?)F=k?>M{*b* zg<1sU+bEnf|7*`{cIV2vSC<ZNn;!T0)85}v)8_@>zO?^uPW7KJYklYZ;kz%EXm|VV z665QojK}383ym(YC)aOeJS<;aHCaGgPQZGdVZ{a&u8*we_KV++ul?%~U9+D#mv!Zj zISPw~svjA4^U0;ny>w*a_dBXJTfQtWQrqR2ztdGmnl1jr$>(O@EyZscIh%+z%9~!( zw>bXh*=z6f2j73Wr2B8V)voKEd~rwfv_CA}zMrFg?k}JGy;VLr<?rfeyzbUtST>Pm z?t&|CyI#)`ywFtj{d~XOR?{nG^0p?2a?;N>cjnIs`ZZhP)`5#H#xh<DU;Gv@Q(Ulp zR#^QpHt{T<lm8xHKD@Mr;jz=2t|@AsGY&j;t`DB4KZlF)j{cEHbvg%CTV5>56KLt! zFjG6l@qO3F<jcQjpE0hR$WzJ0!^Cw?`p1C@sw~eKLk>N#bNaA(W%~mkro43q*P4EJ z{8oME9BS0zxX<z0FTIxuU*kKn^B=e>+~-}$Tlnm5U1G$M@=4;wya!^K8&9e+-eGvs z8!_)J^Mm917P;CE8jJM1MFiKqzZRYUwx_#5(DkmuzlST@8qTda&TL`(X2W5v9S0Ks zJlc1l;kd(1iH^p%Vo&3>$~V*%edzr3Z}-9Osg`yo8|R3Yv~}!wANIQTu5a0sGsYo4 zGgek^f1#W>_fB+4l9U6B!G-pd8BgE5T&6K~vX~)H_QkzcaaZmL7qDzzP%IwUqBMUe zgXF<GJMVODJ91S#BLB$SRHiT6Fa3_%Zza2I`MSj}8Mp4u-f`n`+MJ{F>i-)@SIm;k zJ@5Q&YvgpfoY-)w2wU|M6@MFtE2}%c>l>ePJEJ4Gye9L;4Eg#^@6+erU1Ff}wnot9 z_nWM5zE<vAs}6Q<pXKvD^zZvWU%0KG&-<P8OKhEY&vb(vf58`1E&dg4UYqlN?)MEp zkKUAhu(|bv{H9eRn(13NI-76Id(?FF!7c407h~_wtAAg6{aHb%Sxm$c*<-GpAAThj zct2QIk?lF}qV|^c_FhXiO!~UT;#|ScNR^0)#(=>6N*DEh?b|=~)}_6#ug6PwJWVZJ zXXbKe)}L?Y_c!n^o4KiJa=^s(OjR|1D{UgUC-8>tUblVe%}?1c-W1rXGk7Pu#1)j- zEUdhlI^9xsqj=f9d(++r&OBCj+uJRD_H7Z}R~!+%(~ssUrR1=8{*u_QxI$Mgvh1nB zl2^7Z2l)H#rMnN`Xq7fSx@Pl@w9C^AWV;U>_DsKZTWQsN5%rHgx))Z>czt+o+1=Z3 zt~}OWWUbG3GGNCXfh^97)MGQ>Uh&_zHQZ+6$=`Ce-p8T^HkRKN^S&7V>%2QpoSInJ zSI5VPx81#HH)H4iuknSd)lc?|@7T8^&3lpL{-2wSer{@(o%k|-0e^SL&+y*+di9Y} z(i{JOUhnna-!`%KO8P^yOWU0n@HaoMQds+c$<lUauIK!D@j<T`)zAJ`Y2Cp*r_0gX ztz*VY?O%896|<jTAymQsK90w?;?<AbliF|j=N#1JXM7~=?6uRUNQ>zVf6wG1dw%8Z zcMf+n7$pB`X?Sv2xZh6Zsy>gcbAyGmi9AzkQtP|MJrCNdlqMH^a{9{r&UiM{Dfi>X zA?q83yMOT>$y?@fKwRjLb3haKdqxIPh8@c#);Mv@FFYpc_~wVMG}A4qxu0aqZYciS zRH0=sp{a3`p@6KVrQ^~g<&Jd$VYByiJQm%_yDp6*T`qg>y?T9~ljZ+Ex|fArKe6kt z(KaQ!uIJA6e@~W8@fL7D6L#bTU&N_nH&30n2^4J1|KRoV<aF-+-`9PWQ*X-HBzbn( zJm+OsxMzKxd41o^Mf+{-_KPi4W%D-A+my2D%=2?blcMhK+y2(B`sy>Aq~*6<(q>HN zD6jricXIZl*)1C{pH(<_)iLqRwQ7z9zS}cu^S=0XcgohZ)NXneRra*r{bqXRqX>)m z6`?AQF|)0A`#*A;JZ+X<!8gXTx6d_O3}XCVE<UvL<@NRRFZXk)zt|wbA?=bp@AZTG zim#Fmondl`d-KN7<kJMzCZochWS3?B2kgV1X)hB_^7grXTT-RsW8Dm$viGGX;t^+d zs%<*%;xT8rS$yT*5T(gmIv!nk{E6E%vEx~u&Hp_iN}t_3H@{u4dQN>;icZGDjPqB- zwr%RTt+GP*S<U~sDH*Zn3-T09CR=6OO_nc|-+I6))k%KpY$Kf=0YA;kKJVS}&9g$y zLwwKepRE@+mhr_+U2|4ZWby*vd^v~EhL4HSdD+H1aR<|;dbzF9|MzY6SFedYGwxVe zuJk+2*7}d@;3JOa+O0eH{8;s)^jGDlkZ*0qS)Q`qm0HqAJYU-%eEmsxS9if%o97$< zC>0tf9pP|4U?65|@Goh{1@3u=3s3&YOZgMTX5sy)sjlsyEQ^tg+A2oRQ0DmkALhU3 zIWF}6#rBQ+Rv63+l;vPtr+?>g!JNZ}-)6@>nk3GWDslYz+tMGB`*)-^dwdgTxzDA& z<^j*NLq^$mgVp_0gv9q=1s#wkS>TxB^d_CLSosxarp(7RCayo`OEW)}oZ>ep&2na& zT)kHN_m5N6${g0S1~OQgCI31rd;Zzo@UJrBp)QZ&Y^@6HZvQ;{{jJx|_>G}k@B3eL zpXF;h@9|vo$3I_Y-dnkBie1S3t^%efmAjXetKQXi3C}d(uPWd?$LjUA$Szj$?`8iS zHkaL=Ggj>OH9DNL?Z{ew&-2AQEPCT_?|l6>PrZv_>%!_A;(woQk-yyS|19MH=8l}- zIa@S(^iOB*m)@eWZ2i;cU9-QMulcu6$<d2pU1nI^SwTaeBN1tfm^l|Py#F%mUfpS1 z_4<1;8G+V+*KD3^=s4~D?qd7gzw;uho}TQKT~T9@xqMr&H&cge$+j6MZd%CH{dnkS zzU``Om`=KTisCCLci}!K-5(ycQy2esYS?|ijeFxA=Dk<u2PfRTnO^!e{o?1Z%g=Q2 z-v1SSa&G@EvG<&_ySZ&$Rj>00ioasW`4_OeA)9%lgwUx6*}0WE9?f!(bgJVg>bw)E zt+9UO%CKjzVaCTTOU%BO-(S}DoHym5vkeEk7H`!WrFCl=&dJ;n<6)Ao`;mB@*Y5E* z>$khbl60n-^;T5BpBo_}S2rUqO8Vz532Cd6jHA}#4f8`h4YVHIOxJ3<#8h{PfBCWY z_O5*uS1x}0cAituaN<N04}aUJY}M-Y*JpE9wf{TccPlFQ$RE?CS5#Aue4qFwasH22 z(!V4B6(09^RrEly-Rj~NKCTZ(pZ+_4x&B0t9ozH?b!Y$hM}P1=xs_Q@Iw|Fs!n@-S zj#Vnl#%mtgT5$A1nNz|+NB8^*9|W`trWw^K)~%3MD(g@PSs_us`|Y;q8B=E)D?E6> zVwB&Y{mxm|^_sES#)$oko%=haWrL4=R5YkR(CKnq@X(xJ#q;Nc&k$BrvAoH7NNmr- zPtEt1vs>&E*mK7B4C58Sq)CR|uaz6Bk9k%&>Kv|(EB0MGU9&+#o@tZrfjyli?Plq= z?pOE>=bFad4hoz2t-rHT@84zt{vDiJu76%UZu!3>_P|b^yhyv*{*UH-So+R#QnvI< z5yO*bjDq8<-FEfI?$3_wIsSLqRPR&A?|RAXFRzo!?!H&LpEs^j^!46%Y-R0gD|Gqn zVqzBc27jHHHmQ4#icjg=r>ccfkB(Me%8mMdUpePj-QT;jQ^jKr=tY$%&Q34s5<HVC zev~7oY>vR}Z$I5X#+XKybhS_ENV0T%uX9&h?X1xE)st)OD)Xf+Z}M!rzcBrVGWWeq z>-QV>?lu2o_q*oD-m=Sy>^IClmEZizD=6qWF~#V=&3T<2@p}~gR&l(GGro1><<Z== zY#r?BFSPgW*io@EYEoCZx8B>P7xphCH)=QtEa*De(w{vu+x*S~B}vBJbE{^ZRdbrU zxp;HJ7PSu^F$?`p@*cXKe@m*Gck{t!c5Cgk!Rd2Pew&jw>q?Hot_{~*zOYT7<ttG7 zRq11jQp`4+OG}sc3W%#cu~K>b@z2}*$2kZ0=ca_8l=Xa(&cD}KExkiSY+e5Jhy%M+ zITp!1`f{k$@eiB3*j3Sv;$xw2B2L8edum&Wwfz%I(&5M#V?HL&9e?Tg!c>93X4#pB zpJzHbG?*8#&5JmY{{H^?xEHpOuF*bkk8kzA^QOLVpY4NhtV$BfJO!tj_O;r$MQq}G zBofB(&rsOlUHAF7txLtXW}1o_GxpU8*>#@h6p+e{-ZjrTtZ%8$>+an-8izi-^y=i| zwC;Q`C-S=HrS$E;-x*Z9D1CN(l#_kO=Ht!j+j_6K-FR~0*$c}@t&G_(suc78JKo_c zJSxLp*nW#^*FsN+nx1u*xh#e)-sX3nw>EG{oaej8&}qr?=+tZ7Upq1_y!+xiymS^y zKA+NgKdEEilaJeS6cjyXE>`GM^q5$cAo-5bUo>LP=95j)+;)Z0(@UaT;tY>yJUqgz zzC$C)m#1-8fLigw;QD~*k7pC>I!<mZx~>_^H-C$ITa&=OCwDa#Oy-TdcrsUH#_<An z){DFg&)i{ZzvgWweRjLY_vZ&4)P2RGjz^zRi#ehq6J#9{qb|Et@^@H5>&dBiuk*}a z8~-xi@6n<Ae72|FUb>TH>$Ce~^g4stD^^dr>yqH7l(b?shwQ=f)oU~NzuOe<W4|=! zhT^4i&sWNYO2=X!Y5ZdBcz5-k^|Z-T@*iw_C}72VVfJqAb=6N7o&3LSt%y&D#JoAx zZc%*e{sey3&pF;-aidCi$A(%JKe;)Y9O~<5Pnl;RXcbnKU@_(TNw?(rRadO`|CmyG z@N7^tgG_wg{JsT0yuZe5cvoMNV#DY1bE^5V!<#-7oO2aj&S9u{P%%;coJzYp<MT*` zd5ddTZ<%~ne`<5ohItlFMZF@;E00{=9eZEBf%!(Xo#XC%Mb0{1)f~U{?%2hzFFNvc z`id93?RB@V@vW)h5?4sA`J<Gy?=|oC>6^LpXH0phr*!YtzPrz!`6Y5GE3ErB{nti@ zMKb5O)YqqUy*Ru@@_XIEGb$5|Zyj2<<KCM3IX9MYSOgU;eQ06Lw9GB~$f~JHJShUb z<|hNxdEf0{{=~udC!gU)iweaJ2M$}7@3@<`+3WQGf18i-$rfZ@kJxBwb#kB5_r41@ z*PO0gHMH}Pd)*yhr+9JK67I|_^?hr$)Gra8otK&K9lvMwn(uSZ6-Mo`I+XQI{^`>l zw_geW{q=RVfN;C(#>}P+<v7y@hr?^-ayci?U^SeR>axh@n#!|zSu9euQnlBzAe(~s zt~%N*&DD5XV&$_bbG3y1kKf;QHt&}D0aF(792>>9+gwkM|BB;XUwOLWG?(Js>sy12 z?i<aWSTnK0Z}J4SMI!zCjd@B=-u{t!pY`{iTThNX(9y5Bo#npu-!vn4@#hJ1j@UE$ z{5o;iC{H42(~Yl37T5RN1<l%8Y2s%XRaSN0=56xv|ArS%G{t^1*c~m?#4`P)Y`cWe ztjL#NbIUF~+_vIK()H}`oyjr#rrxc-dtvSF4%0%-l2T`rQy-hX&xVwnZDg_cp0o3L ze5$2(Qk7ljh0O=_r$oNbZe2d7tg+7D=eT;W@{$^L@0)v;h_&wvm~`RE4zF8&e~*53 z<hUi((AX&M9NInW%Enb<+gI;c9NCZ;T6vf;a3;&n{T~^wH?LkBAeSF0nYyKQ=~e&A z1cuOmY@gO#6pK8%O|xc^*Q4gbu<H@OKej&;nprd9Sgo&zr2LZ3udXf+)91v0+Vo++ zcvf0u--6zKu|*5de!9RR>7AO>c6#FHyI0=WpJLN1T9G|-sxgabxNgGS6%Y0-SLu4F z^VHU{;QnS6(L|w+<52;I{i!Mm%wkfOsV>C_um159ZtSg;yA!6ZT=U%QSE7UTJHfmC z6Q(S0U}FB7v>>N6F8|Q3$NVu1rleSP7TXIbiaK@MO)55TiF@eO>=k2Vq2qHX=IVpJ z<y!a8-SIzWc{#N0x4`=9qmlO&pIq5nbo|-Y7jYY-Qv}R-Ew=BKR5)E$Uh?!|`fG)U zZ!Z;3X$+mcAbb0*lgp<E21z-5@tLdluFut9xo?@MyUk9`PSsN%8!Y1POfh4e$Ni~c zN4{vo#xVE8Ew{wp_OhE5XEv-qFH%20Gf<lAw6WcZifcE|p4%U?YsaHY|D)%`{`vDP zbooK$1BLD<-fuWo$;irfi<7ya<MpjOTZ3)8a_Z|PGKAeXFFfxWGE2pz)=lTuCbcs0 z#1~RqUnom@eT{6>eZT*8amL^F$F2K!W=(KApi;8lXtMs!l4q;U_D|s0d-g)4%=Mk( z*KWSJJ?n33>zg;XyfV_B-}#j`t#0l2hq9^aE{h&!m-k0G&hjvvx%`Op$_Y;*+9w($ zdA_RqWT&g+BYv-5BT4RDnCQg$-T!W?C$73wD|Rtla&x7k=boQ)X5SREJJ0!2p3~*L zr^@Dkc5&J(JtbZl33Ks8E`4JB<M;bB1#kXuF`IkdE9rCIsWhuKoB0?vOyqx6vGwVp z3y=0e7NtIxWsbGl!`87z{yNJnHyai0!<nov(u=mfP_{Iz3YwzE+`-l0{p-<Z(SxSU z3Q{wkWOq(U{c$<(0>?tmg;#xBEO*VkTlG?CdD?|jpE5Tmmzl=PuHAgk?p)pdHRi_O zz0Y$RJ~V2+eE;VKoxmic^E%8Nw~V+g)@@kJ;4ad)YmZvWA@1{wZiM};su7swx#wq; z>1N%UdBV5q<qHqquThR$eNq4DeDx{n&*W=P7BS{D{MSwjy7qjIR_MY{&N6;KwK#kY z0uQisG&+4RV#=Aqw<_p4pVsoN66^b0^7m9NaFsu~?Y7an_2!K)<F0=8oLQL46C$jj z^E}eSZ%g~jj<c)1>ui?GDd>IpqGWV*=Rv)HjlZ{A*iM^!we|Ux<9kn^Tls5t<gcaO zJM;JNoOF1~nU}M)Co3*}zT}}-TVG<R--QnLOP|-7e>s-Ddif5;$A5n)m{>2;U6q{t zXK$>7%s-Vq%YCzg{+mm-_cF1yKm2-2`(#9~ZG6>2zo1)6b#E=U1pS}f`!?#e)$y;} ze%rlFz51wX*>Wu>$XNv!)=9kRIT}BEfuODV`u>s|hE{!nN-t#EWS&}8)vCw`_<r|# zm-NJV*}v1zW8d1Ze;2yd=F+{rpLgxp8^2_);p^M}R?~0KoLf1!WQR)EUT3APfBj9O zt1p+lE;@3|U2f6l)BnWJ^FNyNA<HGh#`X5R3+=JFXHVHYh?rlQwQZitudK|zdmAm> zk4PMP65Qgy_PY$@%wxVS-t(R%E;LR3x7#{z?U$Yh!LM_2sxx-fXZ>}*(r4x2?(DwB zb!)zpXj08VC8HhQOrNhW{GI;V`O(ZI@m|Y4Q7z%Kj(4TptDJX{zxL_VAFSy@g_UA! zHaq^BbF+Ne8WGnD(BfcLwqw$4kE~|Nu6=%ur*_Hx?suX0)cANC)uxLY{hI2{s~Nlb z%)Gg$&+YEk{^X+CE+op-$9LpK+C$fpCy&Ba4+XDtw-VWQJF<=M(T1Wq865w2#fE*m zRD37v_N0Aj-#fkQZ2#A;zgZgIY8d^#bk2P1-@8m*rhU~tmX;{-UEfCCpZyWTLEcG+ z>(s4k{kkoVB--wpak6IedH27IRd&V1<(m5DZ@zwfO2?DgTQohGIo^MCmDo}qy`*+M z|K!sW&C(Xf=h!WI{7+E({Eh2x{(gUyx+tl*Lxs6$V_HEC<DY_iYJI<drca$WdH?D4 zQ+P7pRG!;;>GIsNreAA+g+%S&=RSM7iSxq7;^ognTOh|#B-kV^@IG_>#*a(I*{kg? zz4!dSDlGYMqFh-{=Y~1u6I32pZk0Az)mYH(;LXf4|I)pKk<R*C_cA`pPX1}V=g*^4 zljcqOC@d~5YsPo=)#dg3Z_ZMZntY-9me9vZYL{fb?yxwp>z1&>g7rHWm0Z<wf0vl^ z;@j4wt@nR_%j1qO-m%=X;dI}9?}7u%lJ+-0y_It`WzDzBW%+M+%<ie@TX9A{epAej z8IN8><Ua|O3_jkqZfSB<(2)<Bh1soVZR0z4)c#&u;q#@v{Nl6hZ<bGNlYdQm&Rfzr z@r44X2UGF(zLz@CBQ=Dj*j!Rs0({TwW^a$_pC|pxqu)kGWJR=E{hYe?u-$R;oO&WM zigSF_6|cBEeb-v~<o~_hs&}=;uIe~^*IH@CaM9Xshwi?<j)T&zcfX01e>f~8uJ12b z9~q@&QQFw<b|g8yaNFaJuj(Joa6VP_`RkW01rn<TXMTE_@gwwXQMSv!cKIpu%A+*g zxsy8Qm~gCo{(I%+Gk?8ec5N}bbja-HC7$m-kA-jT*8O4jVG`>K;{w&=@nL_`S`QcA zOJjdtZ)ECid2agmKUc!_Ch*SnTaqQ^P#|BqX9=IP_RhZ|M$fih3SE7mneY0=B}$XH zL96Z;95}$z)_6`vIjrs5wc>33+9jNU-&gfq;oIX_{&5X=YUV!Iw@!-7`0bY+s;qn4 zlG}07`Bz5z>bl6;)3PF+1?E+>S$IDBl-B6Cc+=MFr>ms-pZ_i_@|}B&slq{FewJNy z?LPt0!+evv4*S`q{Q0}RJo-bb_WD`;`m(*PYh5$sic&nwt@Cf@*qPni^W^oWwY6%I zYF4k=WrA*fQMrG$D(y1s!#!snL>YE}2i>F~A|atKG2uy!@YHsbT7`R+w%Z^6*OdL* zrg(JbBO|%ejM}Qat6wH+DD!@Lp<H=)bxPIx>aX9T*XCc?yX)t#5<Sh0vzAt0jY>Lx z@1Wu{7ZpFL#Kahns+n=BP5*a3GqnC-u(>`iFzUv>zsok&36#ENEjU}~v$vneAj|U6 za=wCH4|C#`Yb{HBvJV<`CMiDKq_a!#`nx^uFMp@Mh}Pa-^ZsJJ?c12SIa@=@YFz$3 zk5zK2`1{5}_V2R2x0zz%i%M6@ANo0WLc-LmSC{7*HgAqTEiuve$jbEDZ+C^i-O*d8 zoY#}L!`6P?jO{lgV%P2DIkd9@vR%Yyfy4`y)t@!oau(T7UG_ZeJ^PZm#(gVtX8V>t zcpd$6=hemiC2!Xj1`4_q%z8IfUvvFCQI`mg>v1#du2mMal}Xe#?L8h?D#f_-soT^= zZ&Ih5TR&U!?Z3#5mk~$of5scjv?Z@F`6j;gwTP<HlwN*y*QHmj{oe|7E_Q1CT=!|t z%K1ljZVr(WdU~?kLNk5t?p=4kCuH;W$nN887M^RLTYS=?nKw*s(Js^JefzWDZ#z)Y zTJ~Vk+>5ry%-@~)TOziyMCrJCf<(L3ap`2Q|1TWQSw+9xGVkUR<(n6?_~z91^+#Vx z*dZbPfWK+_t`GLV8zv=Q{&6Haunbc279}X;mHIV(yHcF(U%Q0U_q!JRCu<Wgsg1{& zexHk;dUZyW(vLod9Y#Nb*Ir+qb#IsAqUWzX98~P>N^7M5Ui+5Ey`xPcr_eWpVWIW^ zrlr|VE2L*nIy!xhKvvL|g^-p;?lA||g`F19UIwau*WbD+-O=_J%jU=Z>qIwy-Fw~L z>gA4G=XOO0Pkk4`)1EhdZGQ^~XW@&V>8Au<Y)*OgCB0<5nUHvSd+cq0ooR7JpPdvX z{4G`)*^7PuyY$|K(h_w$xywC<vs8oDtqBwiN`RIxpoILV)8ImD@<J=swK*4yo$r)i zO;t6Q_iR~E-O6OeB4yS1mFbs9w_f0>|JS5bb0ZIT8ndX$c*h)C@H&k5!rrK|f|I@H zc&{({J^S-ZK}T5yr<{pLYfrrYEZ@fy_C52C=RU#ddMC~Hy^mK7Ecn!&>2D^@3OdpU zzUzdQ?N&#lpOVSqRh1^u=XE0^s$VJlX6y<-nV<jcbLFE)kB%GiUTB`3eorjE=KVB3 zMaTErywjq>WL^bdz9*7cSz^MiBZ@ek$X=Ok-$cHD;`6%{Efl_e-O713;>)ANrlSme zH_L^Oi$9+3#`rz#hsoTf@ry10Y`iSm@=ShrZTEU@*e;l31|Kf$og|Q-ea*Y%h^+t1 z06x!s(GEs0nf?h#95~8nXOcc^=f?8~*`J?$)FtMUmi$9I2-$XNwnc?$?eA2~vsa&V nKF0njN+n-^xs1@^L;sntxJ&)ZnkT*xbWf0{tDnm{r-UW|x9JAK literal 0 HcmV?d00001 diff --git a/index.md b/index.md index 3f687f3..fe25d37 100644 --- a/index.md +++ b/index.md @@ -8,4 +8,6 @@ title: # Unix / command line training course 2. [Using the IFB cloud](http://perso.ens-lyon.fr/laurent.modolo/unix/2_using_the_ifb_cloud.html) 3. [First step in a terminal](http://perso.ens-lyon.fr/laurent.modolo/unix/3_first_steps_in_a_terminal.html) 4. [The Unix file system.](http://perso.ens-lyon.fr/laurent.modolo/unix/4_unix_file_system.html) +5. [Users and rights](http://perso.ens-lyon.fr/laurent.modolo/unix/5_users_and_rights.html) + -- GitLab