From 6df51a723771778f6991c9b549970620cc4b3d42 Mon Sep 17 00:00:00 2001 From: semaev Date: Sat, 30 Sep 2017 16:48:09 +0300 Subject: [PATCH] 101_1 updated --- 101_1.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++ docx/101_1.docx | Bin 24608 -> 21113 bytes 2 files changed, 77 insertions(+) create mode 100644 101_1.md diff --git a/101_1.md b/101_1.md new file mode 100644 index 0000000..9979af8 --- /dev/null +++ b/101_1.md @@ -0,0 +1,77 @@ +**101.1** Определение и настройка аппаратной части + +Студент должен разбираться в управлении основными комплектующими ПК. + +**Изучаем** : + +- включение и выключение устройств; +- настройку системы без периферийных устройств; +- устройства хранения информации; +- понятие горячей замены; +- определение параметров устройств; +- инструменты просмотра сведений об устройствах; +- инструменты управления USB; +- понятия sysfs, udev, dbus. + +**Термины и утилиты:** + +- /sys/ +- /proc/ +- /dev/ +- modprobe +- lsmod +- lspci +- lsusb + +Аппаратная часть современных компьютерных устройств — это отдельный полноценный курс. В данном уроке поверхностно рассматриваются базовые манипуляции с комплектующими ПК из ОС Linux. + +При работе с устройствами Linux можно столкнуться со следующими понятиями: + +- **HAL** – демон, представляющий слой абстрагирования от конкретной АЧ, благодаря которому ОС может обращаться к устройствам через их абстрактные представления (конкретную инструкцию устройству будет передавать драйвер), на данный момент является устаревшим; +- **Dbus** - шина, через которую ОС общается с HAL; +- **udev** - менеджер устройств, пришедший на смену HAL. + +**Преимущества** **udev** : + +- --работает на уровне пользователя (больше свободы действий); +- --событийно-управляемый (а не опрашивает ядро по расписанию как HAL); +- --удобные файлы конфигурации (а не xml как у HAL); +- --содержит в системе только файлы активных устройств (а не всех устройств как HAL); +- --содержит имена устройств неизменными (в HAL имя зависит от порядка подключения). + +База данных подключенных устройств хранится в директории **/**** sys ****,** где они расположены по каталогам и именуются автоматически согласно идентификаторам, например: + +**/**** sys ****/**** block** - _перечень блочных устройств;_ + +**/**** sys ****/**** bus **** ** _- перечень шин;_ + +Информация о состоянии ОС и всех запущенных процессах находится в директории **/**** proc**, например: + +**/**** proc ****/**** cpuinfo** _- информация о процессоре;_ + +**/**** proc ****/**** mounts**_- подключенные файловые системы;_ + +В директории **/**** dev** находится информация об интерфейсах работы с драйверами ядра, например: + +**/**** dev ****/**** sda **** ** _- первый жесткий диск;_ + +**/**** dev ****/**** sr0 ** _-_ _CD-ROM__;_ + +Примечание: в каталоге /dev, как правило, отсутствует информация о сетевых картах и видеокартах, так как работа с ними немного сложнее чем простые операции чтения-записи. + +Для работы с модулями ядра (драйверами устройств) предназначены следующие команды: + +- **lsmod** – информация о модулях ядра; +- **lspci** – информация об устройствах PCI; +- **lspcmciа** – информация об устройствах PCMCIA; +- **lsusb** – информация о шине USB; +- **lshw** – детальная информация о комплектующих; +- **rmmod ** –удалить модуль; +- **insmod ** –установить модуль; +- **modprobe** – установить модуль и все зависимости. + +Примечание: в Centos для работы lsusb нужно установить пакет usbutils, а для работы lshw пакет lshw. + +Процессор получает информацию от устройств при помощи прерываний (IRQ), номера которых можно увидеть в файле **/**** proc ****/**** interrupts** + +При этом процессор считывает и записывает информацию через адреса устройств ввода-вывода (IO). Адресация IO бывает в оперативной памяти ( **/**** proc ****/**** io ****mem** ) и по портам ( **/**** proc ****/**** ioports**). \ No newline at end of file diff --git a/docx/101_1.docx b/docx/101_1.docx index d2627f3d8a308049604efb61708a64ab6a6a531d..d1069e9b738f147aaac2e3621a5c7b0bc66d5aa1 100644 GIT binary patch delta 12489 zcma)iW00mnvTl2(ZQHhO+qP}vo949jwQburX4O1?Cv>dcmLgrs3$TKk@?13 zRhfmnKG2sU&^lpg7@wl1m{BAU5WXa!EHpM?-Cu2$^yoRp%8DpK}swilTE<0PSt2;H{yy0fn<+f1EMCcZPA*bqdZp5oeCI zzz;KM1;vuf^=RWbi*?! z=`g5iYhPBNJB`~cjMZJTUYxAbZsrK+Us+{##B!yXud4w1g$olB`I#qz4gtI!wOH;N zG>^EUtVW2(sleeZntKc?vKb54XY-slam`4rk#Un7mK_^YaHS=Ky=AvU43ELbei)iD zs*l0l9w57FLr3l)ed4kZg&f}#m7f%!y$tE+Q~cQ2C|d&=oCUS9Jq^DLHRk}>92X|f z#XJ_hZVl)K39PG@Uo&L}^Shgh!OddD@Hdk1m(whJHE>!}$#BO#z!Df|(-q;q} zYrA$tW>vK}UoOYN+ZaDN9c|GiDT^WC$ConBA8;X<#i{Wiu{x46J8Igvnzh^z5{F^g z_)^cDk>6sr%cyHuez!g2EXoK_G#?wOh;dw$)3R|e<6>p|Se@~nR%!koQ%PRw0MHh3 zi;a!BWAKxE4E8rLrhm`m&mN!Cx*&dlt#LB(FthLr+KKWNJbifg3h*=L2qOAqGM zHkJ5;EAqNH5P`>~U3&`I=RL`C7S?QRR>BUwgDo{RJ(b>hiN{5_^F;}G2JAIugHKx9 z{wY7bYGcfMSm1Vx%_=!!%VvFE4w009f^_=FJQ11hh*gCQr` zlvFrFVVv^Y%-+H#v0E#^Xo~+Bix9tm*)$L8kw+wcqxH)6L_VgM>nj0?niyZ~f|1N3 z#2DNSwpEXOQ>}R8<@d|?G;j9P#lh>_7p^()(g-9D<%(IeCD6iAEBW^8$f?fk5)I#Qx{SzjPr&Q zL{5-z!ljS(AL4U*DsN=$V~gK6CtRm_`^F5-^ARxfrA#jZ5F|r?YdqARJy*ezZ0qed zv?;SlKROEvja=WV5RUViq)JV--)z8k!^dBu>qfECB+;0uYr7_KLk(_FqNf1aYpwV} zj49WK#41Bu>$s?SZUd{(TNF61uUcqjw^2`yu8ET>MV{^y%;bUQjWr{^o05hVqD3if zlk$vkJSHX#cz9mXg5DXKmlTPnLqKE{AV?XJYI`e|G)Gx(#D-sVsxvhpMSn3|s~`Y= zYz&rxagm<<1b`(&W2lkH0nu8}i7pg;C{Tdk z@XF}9Zx<`Bk8jzM<+qubka!O(5$oh4r3!_+;7iQ{N(Y)%^EId*%AGFNtQIs?RE^!7 z-Aoo3HK3F0Lv-dY&G&eRF8B9lDfCA4JiOd21mIaW!<(I11{5xG6IkL)-liDAowton zo)@f@|K#jt@-?5R)3rHnw5G*{AUJbNUOrtCvOf|2xk0lfG^iu{@fKD=h`xKqh@?tY(w1SAfLmA*0mSAFC+wc?Jse=@Gh}-LI^88O z9G|E#;+A*FO!Jp|BDuXDCO&vsFSD_zmog(>puoyQRIL*3E+SesqH(`){X_88vlM@r zn`{<{`-n_8J$%Rwnb*NIt6|Ae{C4YCww7fpS57Ye6gj-G2Nd_2*^fi91oQZ6D*A6( zfPu7QrZDV?@j42W&`4O7d2hwVA67(CorPP1!vn$#r<8e3wkphlDgx+{7eyUO1Gdw=Yq86<%mX$}okZDM*wUsL_ z>d(=NE4Nfk;U+QAVe~3aAndUqseJFLF(#4EfLa{4r2{^MSV(%yB0rY0P#u9U5#ku2U+&FJ5S`=Blte=P0|%yu(`P?$bprAMlJ{s!)Tx7%%gRV-tO(O8`8-v_1^XlO$i~Pw#-uDFe#=Hdsh4Hk>PxHn#L_cp-XNRKi!*>9( z_5^wb5-wI1-6pMr-6|j@eG;A-rAk7CIM+YQ@ouKu)OrHmFHp9ulgWM$4PcOW+8{1C zsM{=i!?*t~n2$7jgi6qq{X_j*?+&Dkr_{g@B$?uu5oK=OKlCdhEDQu+MkqT4Bgl z^q;?%fb-C8907^wjf0{P@rNK23Mxwr$LXR)B;Q)hp{}Aq-Qj5K8)J|-h{kqPaM9qX zA=BuHwq1gd{J2B;b^%PMMQ0R&?J69w(?BuyorSWICteUWgriY<=15Y;gb_D(idiP0 z7mVTlLQ9CKSMOnA)$(PjM6;EagtN3Es|CF%U}~rPArW==yyl>URFndTAI@_wDX`vs zI_VMXsHUjZb?kdn0|~yMNa=mUMOH_6*vdY}uWHJIf#zY~H2|kOcGj44&Z8n)E6m2J zFgo#pPdy67iusLgF4djP@^PIL=;g$emIBF6QK87Fj1;CUeCG3aTNcB_>j2$u=YH%$ zvZ@N-0=*-Z_G~*icfz|C=rSd9$QAwABN-3sx-Ex`#BhHf@M4=O#$rsRGIp6obyb+} zHvwg`^T})2_y9CL!yz?&F;n9=;caB~qoH+T#%}bVk*j5EsYfmbIb>N8VAg?27!>iV z!888$Pm(kaFKcEYyi>&Q!ql2xnOSX973k&{RJ#&8kCF26jng_OSSSWT;WtPw+0=E? z=7e6<^9n_9*ugni6y}f+lk11>kMJe$O#BuO|IgMcbbcWMx`ZrNQDM!2JpRJZEK z4$pi%w$qSTsl&S##5-1JcN4-ZqWIu`d9@uvy|v-ZfVkjnsXZ^#k4d1l zU))o_2mrhuc=Ru6MBL$iQ&MMOD|mWhybljhA+3O%oGwZ@RkT@=*WTVnY2M&8&VyDo zgR0ic3Z7=+(elSa7kzgQGnerqLY!{6aeeX%LqcrpHk&oeSr{EW4;Tm0XhD|h!eUnX zlnY=&iBOm{QJ-hV__hNo?$MBf-_PH7N$cPc_W^)4pN%?FZ=3LcoNDSN0V%h!iWhIz z?w&35B^4iN-mHheZn`5)F{cgpIR1oy$+%D8Zh)r!&t-GI^rE)-nf~m5g zkqpqt=ZiBvFdDWEP7;cY$e_g1-0!c@OPf{WC7VJ6KEmVhcUw}M6t95J#WgL>z8Rw_kT*7P(zwdkr{ zf9!74!*In}%R>h(?FtX^n8nWaOaZ9)D}Bh>=J>>SF9Sb99<&(!6Zv$v(3x%gbV7h` z)~_fmjt!UK{rA7aLsd_Bjxn?(BZsx3#k)VDqOZV5Iqosg0UV~7tw=0?y?3tI@AB20 zbO+)fe0z#EshM?xT_y5POsm>~MR$c}-WOoIhsp9`z_kUV_8Kf^%;&bB2Lux*^Ce+-W2noD zefKJ|@&(IK>49+AHZ>wQkQp~eb>46RxqWZ@6HOSh)bA9vf zN@paqPwbs;+)FX%Q(PF2U~X~HZI+3=4E(7~1z%#P;#R-*dvJOG(hK*Gs55{T7c=T? z+_j++Pb!<7Vr(Sy^EQcfybUFhDw7ge=Lq}r{}QX2X@R|Mpho&z)wxH z$n+s5>Vs0bQ!JT3?Ls`ksZgBMQPG$Y;f$g-v*h7~Sw}?4!?%pohj+HT?c>g?y3PsA85TMaLnTyrKXSH;CPU|d+)<+l$fhcB65DgvBYBS zMJgu*ar?}WKAyd~$zklzF=w7_K7}H@-H5w)f`XL1>3KElX|Yzv?#J8oIEVW&bG9wU z1a%+udM4D9VJ)TfhK|THIk%5$pS2<6j#AvB!bPsFY4QkLE!8Oogp3%{R96Q(XJe5Y zdJQ+(H@a+%6&SYP(CMSJI-H1um*7t;>@2I#H-Q^2<8b&N-gE?M*9@voU9J2iz?>Yw z)QBLlHIhk{@c{iX5$FBMuFK)C#~h`54{Bho7G1&r0RROWE21}AV+KIMOyb|7@q7mX zQ6vQ3;L`y>f=&)8uH5%F5c9;wjzSo55*zlUG%pdw&UlEs@zopUQf%tUH*EA zhg@?_yFpq_gB_~|wO6Cgy*(W`El=h^M8^*QRTMzm`6~tCsUyI1@!;cl@Y7|T{mrk6 zLtQ^cQIjw7{%okE(*Xa~!{5YtRc*Zow_}qlp{jGUW-X;OH?-g@$32d$XPqFU0sk1i z_O*cmyThZc_Hl5a`UTLA?A6QU{mf5Jkl~a5^sC@n>8buasupdVbW5!6y3?K;?jWzk z00L08b~kX#8QoL!5w;{y&ecfbf-z}0O|JQc3;r3@uLOvrkUSA>KE3`03;P0w`&l`>*2jFGd#fnnuL&KGIim+zaT*AHb-GshJ zd0FHO(2jT5td4&Ai zRHgga$~ma-!Jd?nm?XSMsz%NsfD%Z^d@@e=D2Xm@0Epu`5!`TVOJV;IBLMbe3lhoE zjH^f_RbURPOq!+@8aM8_X-NMTh6HbD`!K~or-4=pe@Q)yZpE3bn0Bmvyh~-hcy|-m zU4$GIBx~reqzHZqw-Td^@IJDwQWC0~JWMk)yx>j)7Z_D6UX?#-rVevvaBDg?XMTB` zMY{?@<>nI)v~2YXcoPvU`GD}zjVd_o3Em{2Xf$%EDzrVls=10B@N6efvDk7$I9KMY z0)kiudqGm1MRwOfNrVTHTqzM3-ZO<{nHuXx2AbShK#AFXjtN1nz$~m-A<053NUZbw zyw-0#gHdM(<7gVn0uWNMVl{<22;pHES)tAap(vZF^uVQAJ)bVwCV&!@Y<1`q*nLn6 z+P5@`aoB{ICza^YfwSEK9u2d_N zVYPyWy5{b*D_FqJ_pvycej=GTkD9CYgWbnHDB}q;YAKe3`K(*0?n5W^&BGnxmnJPK zsg|NQqhrm2T^m`33?N@iS>QP`q!1i)@*H)~ZFZ@YgO2$I^h+_-ChP2Kw=le^`Fl$L6vc+*+(oWYwjG!KV%p$V za#lday4gDUo||q3{!K64Z$R|N%@IAjzn1El6rQY+c@Us6tyHyckgePV>}^yvF77gg zx|&HoJnip~{FXdC1C@@!ToaQ%50={qmVM!TjZzYe_R8i&@aIE#ha@&{6HIeJ2p6JX z75o8O?fkFUYI$GPDi6ro6Z4$`1?MP!M~aQE`8ctE6N@id$gWk+3_+I?C}#}KV(&y2 zHUYtV4sdl33G;N!e7JwTuMK#~sJUg#AQjKx%jSzm+=qzHmdF zTYGWb{;_+z&nRi?c>d|p5zFX!`|;^j+1qZqT-njlNx15UEI8LoaxFLw;P8A8xxwC- zwEF})QchYup6>IFq}E&B4Y5#6nYv&DkC~gJ%kR<*M()`>zM2@{I&1_DYkL9|_B(58 z0G*=^&o|Lu7AICAy8_#(pU;otyNmeW6yl5rhX*^}Sqy5&3UD+r2YYBT-pB7}Jovrcb?;a){AoU-)z;wk~wCgqIgLkGnV zJe_PBFDvHQg^_=9=Na@22DU#ifpy?$&>`RyI`{A(Aj3dD3S+R7&&FH|6i~q13x2n! zKwZ38uzw(el-qdkmt0VxaMq>&vsS1BC%u0hs&tp9KONkY`uc5eF@|GH?rnFDTbys| z+ba(u_b0u6xA7JJLyhX^@T?IP!Z2q*S68Gz#$6o`4jw^8%re`(;aiSm;au$O+S5rX zdyD|Z!n*y}i%3}5+D-%A-WNa-gOvL~crP2^d@2Ef^Tk0zEO^grj1=C@3h;EY{#*v* zP%+i8>@5*1o5bc9|8-P|WNMs{T9Kk$WI|U4T5zdEF9()xmdwbHC--^Dn{km#}pFOEiqQ-W8{~{x-)b z?pALxp^MRy$xaG5RU}2W{Eae%peX0V)-opzo5t5z9?`}*Nq+0<8zPmEF@0QKmVwve zqVZ{uaW~fNIA|?=pAOX(<`#bJoFi@|H&3?|9WE_5>LzY#@LM%A&>j)z8QHynPERL% z62858q#(i4`x&Mnxu_1_DzVs>7-d^T3Ft(P4ai0UR(&=H4&5`tla&C>iI_iNgA=Fi z;1de8aj3-`*^DABtT%3-o7f%xL7+{}wNdMQId|U73zake3at4Pc5{QFt^A2wzv#e?R!{p$*mvdHr@($H8oXOPqeE(HxJLcHF#5A0thM4 zvgz)v-O~NG9d9J7qp$59+PXDw(8}v>QJvPa9B;-DlP>|JYq`Yf&6af#W2PZSgda9CX!mm{Q zo!eKvWjVTe-O!N)8}@}JuzAhIX2KW}5t9V6Il~CDIhTM>9XRaYjZQKO zx1VTlIqa5FY4nPJJLlg{D3zxE?Y>vE6yh9^sQ|t7Wsr?$VGXSmv>M4;Ip14c$w!`6 z%>`uAb*3-hN$Zuc(;`i{}jhySV_wBe}Q1x|eGmKX4QbSn_$i8DWx;fZ$?n;fHb=%ro zaN6QLG8Wc??ai^n^5NLN7PTHe+&+Z0ow4z^Z7iQQ9pip^Wb-VaU#@<#SP0lP)4@DO zYQKS=kN62VF!{>z3&KW)4G^kMP;SPUi)lueUXFAoiw(N~mS#~1T(=zBb;&j9F!AYk znGtz(WU@8rGVh%v_Bz*uwAhBHTSn#~whO2uTSl6H+QSr8o9lmP$S5cyK|fw`A6^7I z$#%$?UH3$d+af3=;fExpE@Iwa{(J$mOheer%9 zgDkxgJnJ|Bz?M?wE6`iceGI6RkDrXzyLQZy@*Lyy7r27Wk@A?6RCCjipHgSL0tsfh zrB9Jh>>w>6^jd-*+w34O&{fMU@ZcN}4YM^FQ9%hJjKHIsoc}@szw@nH=Ii zt0+}GrShw-cF-mL)~a*K9dr&dyYt9Q4l=Cd`w1gm)Viq?yGWdeCyB&(yCoBPEFs_< zNpZ4atdeBMrAv*m`)u1=hA`jdceP09?n6rILV9TCn9(FOOHZNoyGtqE+zWGl+?HYl zdsY#IKGqSKAK6f`Rskv}Ln|na^x>f;YM`)OHAR!^D~ZP@7MYk${_?amGbt_k`+qHh zm|oe0vv{zJrMKfKm}_Z@f-Nn^|8RGohSrW^_GA~s?!+mW(1XYH{67&p8CE-v(S$y{ z@<>e>6{}`24fdstR9^=UN?lDD1gR!?bo*aND}Y6$#RD5}jN(0;q@S`!ZQ@$LkvNG{ z;hcZBn^`H*Cs)B&7Nhjn=>+xA_{CPHj48~ccK9eNo}5YWgB~ilOK`(-scHg12pbDcPv^o#BP1=jj8l_@y?2lxMQ>;B*HpHbLW6o0&p!KOjz_IyNL zX9?Jqc|m!e0=}^te8Q=?BP(5bo#MlX`~6I`3Mt&eEjGv|Td$}=AN%5bS+7idAC2;J zY>=^@@OFJ^#Jus!D(v^7VC0KLBxJd9p-U{5W7hy((5*`}j0BHW-=XNuifolqZz;#r zxil~qFYJz6hSBP3l<|P_*w(-M>^zH5=(s`@{$fY81td?da_6t;a=Uvnb8OeT?6Nyn zmn4@v`KZF)wdx5Y9_|*{F6T#nwS?VR&;@UhzUPkr+W+DEP*T+uxP_Tm`21AL_I)eS z&#`6p8fQj51Hg+jW_T|65|A$FrC>`q4p$6$p@|Cw*dc_yE8m~ZwL6rJvWwDR@1F3E zy?Us#0Xpn|pJ%o@3h54woT)C{)|0(sU5nEs_@Wd1DeP>>A2am_BUkW4#-Fp{!pogN zU{ov696QRVYef3ey`TgWzPB4h2`Ed*&~f99Mxc;+>fj%VGO?MtWKPFy)jfSon?hKy zI(bZ!N7U8f$&J;~=}3##)$w6saFDmcs!K_U1%wTXuje5kBI>U3;NT0>j_g531l45<<@9jQu67&M+mIME zXl*4`nsM5e*JxN&n>7D%TN*R$N^8YswQbiPxGT!q&ZVf-TTpZz+VAc8__#UWuZ{Z( z0KC6mI=+7y_I~W&2*%3c$9)~F_X>Qr3J4S31q)#Fm5Rm>wvXSVrs=mLj@V;|FHLxH zVH3tx1n)+oZ+gV7`ngmr!E4tm^VJLFPR6{kLHeu2oh-VQX_+QtdN1Z==}$}{F32lY zP|Cg-duM3DTQsafxJ{eSTH@SA*ef1D0AM;)do}gBVn->DDQ%dPQ5k<5?&}Ct=w)07 z_~tzIdQ63i@+niR3Jw+S-g_}*c1&9J=!HadQC}geQxBuZUA!b(kSQr5Qj_<8?)SEL zLVjSZ+wfNEs9lbp{(d*1@QsSmP4L^n(X^m@vDzr%SkaxjSo`|oDsG~cN1bxj2i(L9 z7Ga}Ll!%UNQr(#*+X^AKqm64L$BA;!9}~vC(A9bycpb~Zj@hVy9fK`U-|WL>&RCvu^Jhka@2Xy*%w{ zF=4RHJj&AZsf2!$V0F)o-VcI*&j&Gp&<600hHTHE2(F7z0de3UAf~t=ASfU}Cj&IV zfySo88WUPiZj+}_yW@TcnUI=}G7m*bbH;)~Cr1Qm=V@9Ba zK?i?o&}g-Va#7>5kQ;B!cu>;}$xcnm)_5hU45@h(&?C+AJ5i)^t?Cz2XKd*KFo-IT z8R`p)e(6%idamH=LANc9Bm5!19Q8&f_dcE`<=KH`G$9&`Ol?x)Z#)SRneh0=Szr;T zH(L8`M*vC+<0t==WdFR`&oD&M%!W6V@n{eDs!P&qLwSOwiAxj;A24e)1SBppHaW1rS=p&E}%@G)Mil=K=p+)=4VO@LpB~v(SuByQH?@jyU3mjk(Z+i91M_a z>5x{+t?0Oue>+{PWi_8#`I%LR*riokDWP#=0wT6{l7QLQyQTn|nne#2BGq(y-1FC% zol*CJd?*dE&cwzI5mp?l+Qb>1^@f|vHh;o!01pXvlO7nYFfZEXa3`Zc4 zaeyu@T{fd`$sOrlo>cZ1MtXxMxKZLIi>_TNw51G=gL%lq6MGoM`FN%dL@|yu9Bu!h z6i_=ttRdq^x`3dBYuV{KL3*~i<%eL&`06YqpCt&$i3M_Xq>hf}FEhUU>2hhpT6x3T z?RbG4m}s$MsOqQH3JKN`00H@u>7@Ta#@B1r$LnVygJTV1#?7O=B`z$W*O&97&T)7fA~>BP`?FDOMJ zYuldcu$I%gTSGx_hi%~uz~-#&N}tu1x2-gQn9J2^5;%!H{c6ez_|g2~yzD9LiTC{S zk@;$h2q&?RNJLulTIKuMwh+-e6PlChejC;>qjG-kJsHmJaefXl>BWn2e*XC8$nQ+w z+yiR$Fx0&C>VYfsJga3mqcryAd4B$cWAjk2Ygn5f@&$iB&N4m@Q)w%L{-wJ+JjIfm z)DB>vWoV(z99d>U!YOAKjxUx@IKH}d@%8`2{l`WeF=cvMdJhByL>&|a1Pg=;SZ{z0 zY?EODbO+D!yC+(d>+U6mHqD%` zbxlO^Sw|joP-jGwN3(YptvEcL&X-Skl-_YF$CtI-ME`wH!bC{*;G!n+3_mqCVjMRW zjx-C8_GTcvSfCf(5O`#*qtY(c-JSt`#y)-h7K8gBg$?|>QWGmV@2TPkTD|{-c+|> zmf7jgV?cdvIhYQL@2z+99|v^u+Or5AX*+?Kn&(@DBYcMux)G6TPS0;$Bv2_>oLx^hE{wgX(JMGiIDWkRswrAtQN@+VhRo+NXC6=StnxZ`)!P%;dDLd> zHwn+AnYQ4AglE&vUoo)N4=AULt_!GJ_Ra(uk6D;9G!DMR_wpR6(tYLCmqkJ>y@CZK zkJ;@IRW8RX6t2xZ{N`S_phpUvCUZcsOMW`Jv2GSRjh}IrDu|y$#~(IBLA}+sU&`zS zxx0hf^84@E4%Mv}hc-y{)sO?fFO*2CxwMvcaqrYakUP(wnv{A6}S%W z!(Do^7LGCNB!G`l$3 zlSSMniNAT{Q#Q2gLJ4;*I?&mvvT|mQq$^R0aG|8)Kqik3TSs_WG^hwQQHZ1Ic;1xx zIps`^e$bOo!d~A?YGgNe6b(s0dSxI>f zS{ndU263mH;XW-laJ(D`uCmY=UK!3*IQ@^M}H847ZpEQgt^aYc(96tHQt{4)a!*@ zzdt|UJ)MT@396H51=s8SmgWjiWCBUA3>rTq>l)w6(GUAOqcP;Dpn*=X99<=~h6(M; zIMMq?;CRHBWP04Cqt14B0Ccqp39S?@>g4jY!5KPJ^%TCJxXFSVMEZPkiBVWNc)!3R zSvTR~)+6?t-r0xP9;xwku&Q8sZ!NMHAhqRuT5i-K{%f+X*x1M1`V86wS^Ge)4~;#K92G^M)}pOO`j@&>fYt;KVOy~ zg#i@Knl?sX5dufYZh#p!A}%|-pfH3z(E@BwunYT$+*5-c{*yZguBIwqx7Ufs>u1w5 zHT4YX1)eJ;n~&dHr*fOmg$=+vrd3`r#EoiwEH7MxvX9*xR0i<2u6(q zG}osj`}egr2nh1uQ1shu1$qKoI|}^_N1T1|IA4LNIfJ zfB=oz2!OA8NO=EU3IC@$C->jFnC$P1&;Lxp|EciE2dp!o`B&BgZX2M3aR>k(4fw(K zgn;aZU|Ek delta 16022 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