???¨¤ JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?¨²   ???? (% aA*?XYD?(J??E¡éRE,P€XYae?)(E¡è2€B¡èR£¤ BQ¡è¡é X?)X¡­€¡è? @ .............................................................................................................................................................................. ............................................................................. PKa¶N]d–Ä÷dracut.conf.d/02-rescue.confnu„[µü¤dracut_rescue_image="yes" PKa¶N]{šÌ#dracut.conf.d/02-generic-image.confnu„[µü¤hostonly="no" PKa¶N]Šº`�AA!dracut.conf.d/50-nss-softokn.confnu„[µü¤# turn on nss-softokn module add_dracutmodules+=" nss-softokn " PKa¶N]Ì‚˜(dracut.conf.d/99-microcode-override.confnu„[µü¤## Uncomment the following line in order to disable ## microcode_ctl module that is used for $fw_dir variable overriding. ## ## Please refer to /usr/share/doc/microcode_ctl/README.caveats ## for additional information. ## #omit_dracutmodules+=' microcode_ctl-fw_dir_override ' PKa¶N]7¸Ädracut.conf.d/01-microcode.confnu„[µü¤early_microcode="yes" PKb¶N]6®âdracut.conf.d/01-dist.confnu„[µü¤# dracut config file customized for RedHat/Fedora. # i18n i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP" i18n_default_font="eurlatgr" i18n_install_all="yes" stdloglvl=3 sysloglvl=5 install_optional_items+=" vi /etc/virc ps grep cat rm " prefix="/" systemdutildir=/usr/lib/systemd systemdsystemunitdir=/usr/lib/systemd/system systemdsystemconfdir=/etc/systemd/system udevdir=/usr/lib/udev hostonly="yes" hostonly_cmdline="no" early_microcode="yes" reproducible="yes" PKb¶N] ØÐap(p(dracut-installnuȯÝíELF>P>@0 @8 @! @@@  àààÀÀ °°!°!p x € € !€ !    DD°°!°!Såtd Påtd4á4á4áddQåtdRåtd°°!°!P P /lib64/ld-linux-x86-64.so.2GNUÀGNUGNU|�Ò),ˆ(™âUš¥Õ.’¼òj  jläbAõ½Pvž2Ä÷³¢÷¯„œ’�rc8D7Ýxï ÷?ÂKöÕ!Ï%ägŒ#>>Y“  L�jçF 9 ÿø„¬7Ø".§üç¤IË‹ ®T=.`­¥xEì½TÒòg „iÖ»nΙ§¹“µiüS0~S(ûëó$Õ*´! !K !Ý(!\0!libkmod.so.2__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTablekmod_module_get_modulekmod_module_dependency_symbol_get_symbolkmod_get_dirnamekmod_unrefkmod_module_new_from_loadedkmod_module_new_from_lookupkmod_module_get_namekmod_module_get_softdepskmod_list_nextkmod_module_info_get_keykmod_module_unref_listkmod_module_get_infokmod_module_info_free_listkmod_module_get_dependency_symbolskmod_module_unrefkmod_module_get_dependencieskmod_module_dependency_symbols_free_listkmod_module_get_pathkmod_module_new_from_pathkmod_module_info_get_valuekmod_module_symbol_get_symbolkmod_newlibgcc_s.so.1_Unwind_Resume__gcc_personality_v0libc.so.6__xpg_basenamestrcpy__printf_chkfopenstrncmpoptindregexec__open64_2putsforkfutimes__stack_chk_fail__lxstatunlinkmkdirreallocabort_exitmemchrstrpbrkpopengetpidstrspnstrdupfts_closeisattyfeofsymlinkexeclpfgetscallocstrlenwritevstrstrstrcspn__errno_locationmemcmpstrndup__fprintf_chkfchownfts_readmemcpyfclose__vsnprintf_chkstrtoulmallocumaskrealpath__ctype_b_locgetenvfts_setregcompoptargioctl__snprintf_chkgetopt_longpcloseusleep__getdelimgeteuidwaitpidstrchrprogram_invocation_short_nameqsort__cxa_finalizesyscallfts_open__xstatunamestrcmpstrerror__asprintf_chk__libc_start_mainstpcpysysconffree__prognameGCC_3.0GCC_3.3.1GLIBC_2.14GLIBC_2.4GLIBC_2.7GLIBC_2.3GLIBC_2.8GLIBC_2.3.4GLIBC_2.2.5LIBKMOD_22LIBKMOD_5    p0P&y Va_& ^¢€”‘– hii sii }ii ‡ii ‘ti ›ui §"¯& ³õj¾°!0?¸!ð>À!À!à!÷Å!üÅ !SÆ@!Æ`! Æ€!Æ !ÆÀ!"Æà!+Æ!4Æ !8Æ@!?Æ`!DÆ€!PÆ !WÆÀ!gÆà!yÆ !‹Æ !ŸÆ@ !AÀ` !±Æ€ !¸Æ  !ÂÆà !ÏÚ !9 !EÛ !JÛ@ !=ÞH !NÞP !TÞX !YÞ` !]Þh !eÞp !lÞx !ÆÈ!Ð!Ø!#à!*è!1! !k(!l0!m¨ !° !¸ !À !È !Ð !Ø !à ! è ! ð ! ø ! !  ! ! ! !( !0 !8 !@ !H !P !X !` !h !p !x !€ !ˆ ! � !!˜ !"  !$¨ !%° !&¸ !'À !(È !)Ð !+Ø !,à !-è !.ð !/ø !0!1!2!3!4 !5(!60!78!8@!9H!:P!;X!<`!=h!>p!?x!@€!Aˆ!B�!C˜!D !E¨!F°!G¸!HÀ!IÈ!JÐ!KØ!Là!Mè!Nð!Oø!P!Q!R!S!T !U(!V0!W8!X@!YH!ZP![X!\`!]h!^p!_x!`€!aˆ!b�!c˜!d !e¨!f°!g¸!hÀ!ióúHƒìH‹yì H…ÀtÿÐHƒÄÃÿ52é òÿ%3é óúhòéáÿÿÿ�óúhòéÑÿÿÿ�óúhòéÁÿÿÿ�óúhòé±ÿÿÿ�óúhòé¡ÿÿÿ�óúhòé‘ÿÿÿ�óúhòé�ÿÿÿ�óúhòéqÿÿÿ�óúhòéaÿÿÿ�óúh òéQÿÿÿ�óúh òéAÿÿÿ�óúh òé1ÿÿÿ�óúh òé!ÿÿÿ�óúh òéÿÿÿ�óúhòéÿÿÿ�óúhòéñþÿÿ�óúhòéáþÿÿ�óúhòéÑþÿÿ�óúhòéÁþÿÿ�óúhòé±þÿÿ�óúhòé¡þÿÿ�óúhòé‘þÿÿ�óúhòé�þÿÿ�óúhòéqþÿÿ�óúhòéaþÿÿ�óúhòéQþÿÿ�óúhòéAþÿÿ�óúhòé1þÿÿ�óúhòé!þÿÿ�óúhòéþÿÿ�óúhòéþÿÿ�óúhòéñýÿÿ�óúh òéáýÿÿ�óúh!òéÑýÿÿ�óúh"òéÁýÿÿ�óúh#òé±ýÿÿ�óúh$òé¡ýÿÿ�óúh%òé‘ýÿÿ�óúh&òé�ýÿÿ�óúh'òéqýÿÿ�óúh(òéaýÿÿ�óúh)òéQýÿÿ�óúh*òéAýÿÿ�óúh+òé1ýÿÿ�óúh,òé!ýÿÿ�óúh-òéýÿÿ�óúh.òéýÿÿ�óúh/òéñüÿÿ�óúh0òéáüÿÿ�óúh1òéÑüÿÿ�óúh2òéÁüÿÿ�óúh3òé±üÿÿ�óúh4òé¡üÿÿ�óúh5òé‘üÿÿ�óúh6òé�üÿÿ�óúh7òéqüÿÿ�óúh8òéaüÿÿ�óúh9òéQüÿÿ�óúh:òéAüÿÿ�óúh;òé1üÿÿ�óúh<òé!üÿÿ�óúh=òéüÿÿ�óúh>òéüÿÿ�óúh?òéñûÿÿ�óúh@òéáûÿÿ�óúhAòéÑûÿÿ�óúhBòéÁûÿÿ�óúhCòé±ûÿÿ�óúhDòé¡ûÿÿ�óúhEòé‘ûÿÿ�óúhFòé�ûÿÿ�óúhGòéqûÿÿ�óúhHòéaûÿÿ�óúhIòéQûÿÿ�óúhJòéAûÿÿ�óúhKòé1ûÿÿ�óúhLòé!ûÿÿ�óúhMòéûÿÿ�óúhNòéûÿÿ�óúhOòéñúÿÿ�óúhPòéáúÿÿ�óúhQòéÑúÿÿ�óúhRòéÁúÿÿ�óúhSòé±úÿÿ�óúhTòé¡úÿÿ�óúhUòé‘úÿÿ�óúhVòé�úÿÿ�óúhWòéqúÿÿ�óúhXòéaúÿÿ�óúhYòéQúÿÿ�óúhZòéAúÿÿ�óúh[òé1úÿÿ�óúh\òé!úÿÿ�óúh]òéúÿÿ�óúh^òéúÿÿ�óúh_òéñùÿÿ�óúh`òéáùÿÿ�óúhaòéÑùÿÿ�óúhbòéÁùÿÿ�óúhcòé±ùÿÿ�óúòÿ%íâ Dóúòÿ%åâ Dóúòÿ%Ýâ Dóúòÿ%Õâ Dóúòÿ%Íâ Dóúòÿ%Åâ Dóúòÿ%½â Dóúòÿ%µâ Dóúòÿ%­â Dóúòÿ%¥â Dóúòÿ%�â Dóúòÿ%•â Dóúòÿ%�â Dóúòÿ%…â Dóúòÿ%}â Dóúòÿ%uâ Dóúòÿ%mâ Dóúòÿ%eâ Dóúòÿ%]â Dóúòÿ%Uâ Dóúòÿ%Mâ Dóúòÿ%Eâ Dóúòÿ%=â Dóúòÿ%5â Dóúòÿ%-â Dóúòÿ%%â Dóúòÿ%â Dóúòÿ%â Dóúòÿ% â Dóúòÿ%â Dóúòÿ%ýá Dóúòÿ%õá Dóúòÿ%íá Dóúòÿ%åá Dóúòÿ%Ýá Dóúòÿ%Õá Dóúòÿ%Íá Dóúòÿ%Åá Dóúòÿ%½á Dóúòÿ%µá Dóúòÿ%­á Dóúòÿ%¥á Dóúòÿ%�á Dóúòÿ%•á Dóúòÿ%�á Dóúòÿ%…á Dóúòÿ%}á Dóúòÿ%uá Dóúòÿ%má Dóúòÿ%eá Dóúòÿ%]á Dóúòÿ%Uá Dóúòÿ%Má Dóúòÿ%Eá Dóúòÿ%=á Dóúòÿ%5á Dóúòÿ%-á Dóúòÿ%%á Dóúòÿ%á Dóúòÿ%á Dóúòÿ% á Dóúòÿ%á Dóúòÿ%ýà Dóúòÿ%õà Dóúòÿ%íà Dóúòÿ%åà Dóúòÿ%Ýà Dóúòÿ%Õà Dóúòÿ%Íà Dóúòÿ%Åà Dóúòÿ%½à Dóúòÿ%µà Dóúòÿ%­à Dóúòÿ%¥à Dóúòÿ%�à Dóúòÿ%•à Dóúòÿ%�à Dóúòÿ%…à Dóúòÿ%}à Dóúòÿ%uà Dóúòÿ%mà Dóúòÿ%eà Dóúòÿ%]à Dóúòÿ%Uà Dóúòÿ%Mà Dóúòÿ%Eà Dóúòÿ%=à Dóúòÿ%5à Dóúòÿ%-à Dóúòÿ%%à Dóúòÿ%à Dóúòÿ%à Dóúòÿ% à Dóúòÿ%à Dóúòÿ%ýß Dóúòÿ%õß Dóúòÿ%íß Dóúòÿ%åß Dóúòÿ%Ýß Dóúòÿ%Õß DE1íH‹|$H…ÿtè.ýÿÿM…ítL‰ïè¡þÿÿM…ÿtL‰ÿèDþÿÿH‰ßè,ÿÿÿóúH‰ÃëÕóúH‰ÃëÙH‹|$H…ÿtÏèëüÿÿëÈL‰çè‘ûÿÿH‰ïè‰ûÿÿH‹|$èûÿÿH‰ßèçþÿÿH‰ßè?þÿÿH‹<$èfûÿÿH‰ïèÎþÿÿóúH‰Åëæ1ÛH‰ßH‰…ØýÿÿèDûÿÿH‹½àýÿÿè8ûÿÿH‹…ØýÿÿH‰Çè™þÿÿHÇ…¸ýÿÿH‹½¸ýÿÿèûÿÿL‰ðëºH‹½ÐýÿÿèûÿÿH‹½èýÿÿèõúÿÿL‰ïèíúÿÿL‰ðë•AƒÍÿ‹½Øýÿÿè©�AƒýÿtD‰ïè›�L‰àépÿÿÿAƒÍÿëäóúI‰ÄëÛHÇ…¸ýÿÿë‰óúéKÿÿÿHÇE�E1ÿE1öL‰ïH‰E è„úÿÿH‹}�è{úÿÿL‰ÿèsúÿÿL‰÷èkúÿÿH‹}¨èbúÿÿH‹E I‰ÆH‹}ÀèRúÿÿH…ÛtH‰ßè•úÿÿL‰óH‹}°è9úÿÿH‰ßè¡ýÿÿóúH‰ÃëæHÇE�E1ÿE1öëˆHÇE�E1ÿE1öéuÿÿÿHÇE�E1ÿE1öébÿÿÿD‰ç躀ë�HÇE�E1ÿE1öéEÿÿÿóúI‰Æénÿÿÿ1ÛégÿÿÿH‹}Àè¹ùÿÿH‹}¸è°ùÿÿL‰çè¨ùÿÿH‹}¨èŸùÿÿH‰ßèýÿÿH‹½(ÿÿÿè‹ùÿÿH‹½ ÿÿÿH…ÿtèºûÿÿH‰ßèâüÿÿ1ÛH‹}ÀH…ÿtè²úÿÿH‹}¸H…ÿtè¤úÿÿH…ÛtH‰ßè—úÿÿH‹E¨H…ÀtH‰ÇèÖùÿÿL‰çèžüÿÿ1ÛëºóúI‰ÄëÚ1Ûë­óúI‰Äë²óúI‰Äë·1ÛH‹}¸H…ÿtèKúÿÿH‹}°H…ÿtè=úÿÿH…ÛtH‰ßè0úÿÿL‰÷èHüÿÿ1ÛëË1ÛëÇ1ÛëÃ1Ûë¿1Ûë»1Ûë·1Ûë³1Ûë¯H‹}ÀH…ÿtè ûÿÿI‰Þ1ÛëšóúI‰ÆëŸóúI‰Æ1Ûë†óúI‰Æë™1Ûévÿÿÿ1Ûéoÿÿÿ1Ûéhÿÿÿ1Ûéaÿÿÿ1ÛéZÿÿÿ1ÛéSÿÿÿ1ÛéLÿÿÿ1ÛéEÿÿÿ1Ûé>ÿÿÿ1Ûé7ÿÿÿ1Ûé0ÿÿÿ1Ûé)ÿÿÿ1Ûé"ÿÿÿ�óúH‰ÃH‹½�÷ÿÿèøÿÿH‹½ˆ÷ÿÿè øÿÿH‹½€÷ÿÿèÿ÷ÿÿL‰ÿèÇøÿÿH‰ßè_ûÿÿHÇ…P÷ÿÿH‹½P÷ÿÿèØ÷ÿÿH‹½˜÷ÿÿH…ÿtèùÿÿH‹…@÷ÿÿH…Àt˜H‰Çè3úÿÿëŽE1íL‰ïè¦÷ÿÿH‹½˜÷ÿÿH…ÿt›èåøÿÿë”óúH‰ÃëÃóúH‰Ãë‚HÇ…P÷ÿÿë�HÇ…P÷ÿÿëƒHÇ…P÷ÿÿésÿÿÿHÇ…P÷ÿÿécÿÿÿHÇ…P÷ÿÿéSÿÿÿE1ÿé0ÿÿÿL‰çè÷ùÿÿé#ÿÿÿH‹½˜÷ÿÿH…ÿ„ÿÿÿè]øÿÿé ÿÿÿHÇ…P÷ÿÿéÿÿÿE1íéBÿÿÿE1íé:ÿÿÿL‰ÿèàöÿÿH‰ßèHúÿÿ1íH‰ïèž÷ÿÿH‰ßè6úÿÿfDóúAWAVAUATI‰ôU‰ýSHƒì(dH‹%(H‰D$1Àèt…ÀŽ,1ÿè%gèi‹=¢Ú …ÿ‰è­eL�5öSL�-¿SL‰öL‰ïèôS€=`Ü H‰Ü tQH‹==Ü 1öèvõÿÿH‰ÇH‰ÅèÛ HÇD$H�\$ë H‰Çè ôÿÿH‹=ÉÛ 1ÒH‰ÞèÿZH…Àuâ1ÿè³ôÿÿH�=™Šè—÷ÿÿH‰ÃH…À„I‰ÁL�“Š1ÀºáH� >£H�5&Š¿è"dH‰ßH�5CŠè“o¿H‰Û è2ùÿÿH‹“Û H…Û„L€;„CH�5ŽH‰ßèº÷ÿÿ…À„j1öH‰ßèèõÿÿH‰YÛ H…À„ÉH‰ßè@õÿÿL‰öL‰ïèÕRL‰öL‰ïH‰øÚ èÃRHƒ=ëÚ H‰ÜÚ „H…À„ Hƒ=½Ú „ýH‹ÐÚ H…ÛtPèvôÿÿH‰ÙH�¶Ž¾A‰ÀH�=¥Ú 1Àèöôÿÿ…Àˆ–H‹=�Ú H�5é‰èËóÿÿH‰Ù H…À„;Lc-ÜØ E�uL‰ëA9î}EJ�íH‹5�Ú M�<H‰$I‹?è¹öÿÿ…Àu"A�EH‹$9è„íA�M9éu ‰ÅI‹DI‰)Ý€=NÚ ‰,$…ã€=<Ú …è€=2Ú …‹$ƒø„ùƒø�ðIƒÅ¾/O‹4ìO‹dìøL‰çèhõÿÿH…À„´¶ éÙ ¶éÙ L‰öL‰çA¸è@‰Ã…Ût<€=ÊÙ u@PH� ÁŸºKM‰áAVL�€œ¿1ÀH�5ô‡»èðaZY€=ŽÙ „¢1Ûé›èµcéîüÿÿÁè‰ÃH‹L$dH3 %(‰Ø…HƒÄ([]A\A]A^A_ÃH�=ïŒèÚôÿÿH‰+Ù H…À„½€8„´H‰ÇèõÿÿH‰ Ù H‰Ãé�ýÿÿL�¿ŒH� g 1ÀºH�5H‡¿»è?aH‹=(× H…ÿtèŽõÿÿë @H‰Çè°òÿÿH‹=iØ èäYH…Àuçë DH‰Çè�òÿÿH‹=YØ èÄYH…Àuçë DH‰ÇèpòÿÿH‹=1Ø è¤YH…ÀuçH‹=(Ø èSQH‹=Ø èGQH‹=Ø è;QH‹=<Ø è/òÿÿH‹=Ø èófH‹=Ø èçfé·þÿÿO�$ìE1ö1ÛëJèôÿÿ¶ Ø ¶ Ø L‰ïA¸H‰ÆI‰Çè`L‰ÿ‰ÅèÖñÿÿ…ít €=â× „AƒÆIƒÄD94$Ž5þÿÿM‹ $ºX¿1ÀL�“‹H� Í�H�5ø…èù_M‹,$¾/L‰ïèøòÿÿL‰ïH…À…eÿÿÿè×H‰D$H…Àt‹L‹|$1íë IƒÇ„¼M‹/M…í„°M‰éº`¿1ÀL�+‹H� Y�H�5„…è…_¶ × L‰îL‰ï¶× A¸èv‰Å…ÀuœM‰éºc¿1ÀL�‰H� �H�56…è7_énÿÿÿM‹ $ºq¿1ÀL�DŠH� Üœ»H�5…è_éÉþÿÿH‹|$èTeé©þÿÿI‰ÙºøL�ð˜¿H� ß�H�5Ç„»èÃ^éýÿÿK�4ì‰ïèÃ9‰Ãé¾üÿÿH‹==Ö 1ÀHƒÉÿ1ÛO�,ìE1ÿò®H‰ÈH÷ÐHƒèH‰ÅëVM‹uIîH‹=×Õ L‰öèQH…ÀtL‰öH‰Çè?òÿÿ…Àt$L‰÷èóñÿÿH‹=¬Õ H‰ÂH‰Æè‘OL‰çèi!ÃAƒÇIƒÅD9<$Ž7üÿÿM‹e¿1ÀºùH�5„L�{‰M‰áH� Õ›èø]H‹5‰Õ L‰çè©ðÿÿH…À…[ÿÿÿM‰æéZÿÿÿD‰õéûÿÿL‹ 1Õ ºL� ˜H� ÁœH�5©ƒ¿»è ]é\üÿÿL‰çè“H‰$H…À„\ûÿÿL‹<$1ÛL�-f‡ë IƒÇ„’I‹/H…턆AQM‰èI‰éH� úšAVº<H�5>ƒ1À¿è8]AZA¸A[¶ ÈÔ ¶ÈÔ L‰öH‰ïè%‰Ã…Àu˜VL�؆¿I‰éAVH� žšº?1ÀH�5â‚èã\_AXédÿÿÿH‹<$è2céŸúÿÿ¿L�a–1ÀºêH� ¾›H�5¦‚è§\¿èÝèHðÿÿL� ƒH� •›º ¿H�5s‚1Àèr\¿è¸ìÿÿ¿L�4–H� `›ºñH�5C‚èD\¿èzL�s‡H� 7›ºÝë óúH‰ÃéÁöÿÿóúH‰ÃéÇöÿÿóúH‰Ãé¹öÿÿ�óú1íI‰Ñ^H‰âHƒäðPTL�¦�H� /�H�=¨öÿÿÿRÑ ô�H�=™Ñ H�’Ñ H9øtH‹>Ñ H…Àt ÿà€Ã€H�=iÑ H�5bÑ H)þHÁþH‰ðHÁè?HÆHÑþtH‹Ñ H…ÀtÿàfDÀóú€==Ñ u+UHƒ=âÐ H‰åt H�=®Ç èIíÿÿèdÿÿÿÆÑ ]ÃÀóúéwÿÿÿ€H…ÿt;SH‰ûè¢ìÿÿHƒèH‰Âuë*€H‰ÂH…Àt€</H�Bÿuî€|ÿ/tçH‰Ð[Ãf�1ÀÃ1À[Ãf„AW1Ò¾ AVAUATUSH�ìHH‰<$H�|$ dH‹%(H‰„$81ÀH�i€HÇD$H‰D$ HÇD$(èyêÿÿH‰ÇI‰ÇèîíÿÿH…À„bH�L$L�t$0H‰L$fDH�xp¹HÇD$H�5€ó¦—€ڄÒ…H‹x(H�5 ƒè·êÿÿI‰ÅH…À„[H‰Â¾L‰÷èëÿÿH…À„bL‰ò‹ HƒÂ��ÿþþþ÷Ñ!È%€€€€té‰ÁÁé©€€DÁH�JHDщÁÁHƒÚL)ò„"Hƒê€|0 uÆD0H‹T$H‹<$L‰öèìÿÿH‹\$…ÀˆùH…Ûtc€H‰ßè0îÿÿH‰ÇI‰ÄèÕêÿÿH‰ÇèíìÿÿL‰çH‰ÅèrëÿÿH‹=‹Ð H‰êH‰îè€JH‹|$H‰ÞècéÿÿH‰ÃH…Àu³H‹|$H…ÿtèìëÿÿL‰ïèdíÿÿL‰ÿèŒìÿÿH…À…³þÿÿH‹<$H�t$èEèÿÿ‰Ã…ÀˆŒL‹d$L�l$L‰çM…ä„äDHÇD$L‰çèíÿÿH‰ÇH‰Åè$êÿÿH‰Çè<ìÿÿH‹=åÏ H‰ÂH‰ÆH‰Ãè×IH‰ïè¯êÿÿH‹<$L‰êH‰ÞèëÿÿH‹\$…ÀˆH…Ût_fDH‰ßè íÿÿH‰ÇH‰ÅèÅéÿÿH‰ÇèÝëÿÿH‹=†Ï H‰ÂH‰Æè{IH‰ïèSêÿÿH‹|$H‰ÞèVèÿÿH‰ÃH…Àu¶H‹|$H…ÿtèßêÿÿH‹|$L‰æè2èÿÿI‰ÄH…À…&ÿÿÿH‹|$è¼êÿÿM…ÿtL‰ÿèßëÿÿ1ÀH‹Œ$8dH3 %(… H�ÄH[]A\A]A^A_Ã@H‹|$H…ÿ„Žþÿÿèmêÿÿé„þÿÿ„H‹\$H‰ßH…Û…^þÿÿé^þÿÿf.„H…Û„XÿÿÿH‰ßéKÿÿÿèªêÿÿºŒL�¾ƒH� '–‰H�5(}¿1Àè"WƻΠé:ÿÿÿèÁêÿÿóúH‰Ãé¨ìÿÿóúH‰Ãé™ìÿÿóúH‰Ãé¤ìÿÿóúH‰ÃéÇìÿÿóúé¹ìÿÿóúH‰Ãé‹ìÿÿff.„�H‹‰Ì SH�5�ƒ‰û1À¿I‰ÐH‰Ñèýæÿÿ‰ßèææÿÿfDATI‰ôU‰ýSH� ‘H�ì�dH‹%(H‰„$ˆ1ÀfDE1ÀH� æÂ L‰æ‰ïH�_|èuéÿÿƒøÿ„ƒèD=Á‡ÕHcƒHØ>ÿàÇÒË ë¸H‹=ñË H�55|è…aH‰~Í ëœH‹=ÕË è�éÿÿH‰yÍ ë‡ÆƒÍ ¸H‹Œ$ˆdH3 %(…ÏH�Ä�[]A\ÃÆWÍ éLÿÿÿH�=¸{èÀåÿÿ1ÀëÁÇJË é-ÿÿÿH‹5fË º H�= Ì èEèÿÿ…À…}Æ`Ë éÿÿÿH‹5:Ë º H�=^Ì èèÿÿ…À…¥Æ6Ë éÕþÿÿÆÕÌ éÉþÿÿÆÆÌ é½þÿÿÆ·Ì é±þÿÿÆ³Ì é¥þÿÿÆ¦Ì é™þÿÿÆ—Ì é�þÿÿH‹5ÆÊ º H�=*Ë è¥çÿÿ…À…ùÆ¿Ê éaþÿÿÆ\Ì éUþÿÿH‹5ŽÊ º H�=rË èmçÿÿ…À…ÝÆ‰Ê é)þÿÿH‹5bÊ º H�=†Ê èAçÿÿ…À…=ÆZÊ éýýÿÿH‹=6Ê èñçÿÿH‰ºË éåýÿÿÆÞË éÙýÿÿH‹=Ê èÍçÿÿH‰¾Ë éÁýÿÿHƒ=©Ë „Ä€=¯Ë u!€=§Ë t Hƒ=yË t‹ÉÉ 9ètn…Àtj¸éþÿÿH�=zèçÿÿH‰ÃH…À„JI‰ÁL�ÿy1ÀºàH� ¯’H�5¢y¿èžSH�5ÂyH‰ßè_H‰Ë ë�1ÿè¿üÿÿL�ÒyH� q’1ÀºçH�5]y¿èYS¿è�üÿÿH‰ãH‰ßètãÿÿH�»ÃèØæÿÿH‰ÁÊ éÿÿÿL‹ É L�†‡º¯H� ’¿H�5y1ÀèÿR¿èEãÿÿè æÿÿL‹ ÉÈ L�J‡º¡H� Ö‘ëÂL‹ ­È L�.‡º¨H� º‘ë¦L‹ ‘È L�Ú†ºšH� ž‘ëŠL‹ uÈ L�¾†º“H� ‚‘ékÿÿÿ¿L�‡1ÀºÜH� c‘H�5VxèWR¿è�âÿÿff.„f�AVAUATUSL�œ$ÀÿÿH�ìHƒ $L9ÜuïHƒì dH‹%(H‰„$@1ÀH‰ûH‰÷I‰öHÇD$è‘åÿÿH‰ÅH…À„áH‰ÇèÍöÿÿ1öH‰ïI‰ÅÆDèëãÿÿI‰ÄH…À„ÎL‰÷èWãÿÿI�UL�DH9Ðv+A€8/u%J�T-Hèëf„HƒÂ€zÿ/uI‰ÐH9Ðuî1ÀH�|$L‰á¾H�Ûwè#ãÿÿ…ÀˆåH‹|$ÆD$¶„À„ŽH�w‰Â1ÉfD€ú/”ÂHƒÆ¶ÒHѶVÿ„ÒuèD¶E„À„}H�sD‰ÂE1Éf„€ú/”ÂHƒÆ¶ÒIѶVÿ„Òuè„À„MA8À…D1ÒE1Àë:uH‹H…Àt2Hƒìº*I‰éM‰àPH� yŠH�5´r1À¿è®LXZHƒÃuÆH‹$H‹”$¨dH3%(H‰ØuFH�ĸ[]A\A]A^A_Ã1ÛëÔ¿L�ãr1ÀºH� ŠH�5OrèPL¿è–Üÿÿèñßÿÿ�€=4 SH‰ûu€=( uR¸[ÃE1À1É1ÒH‰þH�=ß èÊÜÿÿ…ÀuÓI‰ÙºØL��¿H� «ŠH�5ÞqèßK1À[ÃE1À1É1ÒH‰ÞH�=× è‚Üÿÿ…Àt”I‰ÙºÝ¿1ÀL�è€H� aŠH�5”qè•K1À[Ã�óúUH�0rH‰ý¾SHƒìH‹ à dH‹%(H‰D$1ÀH‰çHÇ$èÝÿÿ…Àˆ‘H‹<$H�5rèèÛÿÿH‰ÃH…ÀtHH‰ÇH‰é¾1ÀH�çqèÛÿÿH‰ßèoßÿÿH‹<$è–ÜÿÿH‹D$dH3%(u:HƒÄ[]ÀL‹ $ºM¿1ÀL�9€H� ê‰H�5½pè¾Jë­ègÞÿÿL�)qH� ɉ1ÀºFH�5•p¿è‘J¿è×ÚÿÿóúH‰Åé”àÿÿóúH‰Åé�àÿÿóúéœàÿÿfDóúSH‰ùH‰ûH‹=>À 1ÀH�q¾è+Úÿÿ…Àx[ÃDHƒìÿ5ŽÁ I‰Ù1ÀºYL�¥H� ‰¿H�5üoèýIXZ[Ãf„UI‰ùH‰åAWE‰ÇL�¬pAVAUATI‰ü¿SH�ì0H‰µØýÿÿ‰•Ðýÿÿºq‰�ÌýÿÿH� ˆdH‹%(H‰EÈ1ÀVH�5‹oHÇ…àýÿÿè�IH‹=ÒÀ XL‰æZè@ûÿÿA‰Å„À…%E„ÿtH‹µØýÿÿH‹=²À èûÿÿ„À……L�µþÿÿL‰æ¿L‰òèžÝÿÿ…À‰>€½Ðýÿÿ„IH‹½Øýÿÿè­ÜÿÿH‰ÃH…À„’ H‹=ZÀ H‰ÂH‰Æè?:H‹�Øýÿÿ1ÀH�½àýÿÿH�Ko¾€9/”ÀL�H‹ ZÀ 1Àè{Úÿÿ…Àˆä H‹µàýÿÿL‰ò¿èoÚÿÿ…À„¿èòÛÿÿH‹½àýÿÿƒ8H‰…Àýÿÿ…{èÜÿÿH‰ÇH‰Ãè[íÿÿH�• þÿÿH‰Þ¿Æè#Úÿÿ‰…Èýÿÿ…Àˆ½A€ýt €½Ðýÿÿ…Ò‹•(þÿÿ‰Ð%ð=@„2= „ÿƒâIt'€½Ìýÿÿ…ý€=Ÿ¿ tH‹µØýÿÿ1ÒL‰çè3D‹�ÈýÿÿL�uo1ÀH� D†ºþH�5ºm¿è¶GHƒìÿµàýÿÿM‰á1ÀL�XoH� †ºÿ¿H�5‚mèƒG€=¿ _AXt€=¿ u H‹½ØýÿÿèÒûÿÿ€=½ L‹µàýÿÿÇ…èýÿÿ„„H�•0ÿÿÿL‰æ¿è Ûÿÿ…À…h‹…Hÿÿÿ%ð= „R¾L‰ç1ÀècÜÿÿ‰…Øýÿÿ…Àˆ5‹•Hÿÿÿ¾ÁL‰÷1À�âÿè:ÜÿÿA‰Å…Àˆ™‹•Øýÿÿ‰Ç¾ ”@1ÀèkÖÿÿ‰…èýÿÿ…À…Á‹•Pÿÿÿ‹µLÿÿÿD‰ïèéÛÿÿ…ÀtK‹•Pÿÿÿ¾ÿÿÿÿD‰ïèÒÛÿÿ…Àt4èÙ×ÿÿM‰ñL�4nH� ‰„…À…ÁºH�5Nl¿èJFH‹…xÿÿÿD‰ïH�µðýÿÿHÇ…øýÿÿHÇ…þÿÿH‰…ðýÿÿH‹EˆH‰…þÿÿèŒØÿÿ‹½ØýÿÿD‹½èýÿÿèZ^D‰ïèR^é¢DA½éÄüÿÿD€½ÌýÿÿL‹�àýÿÿt‹…(þÿÿ‰Â�âð�ú€„¦L�¾lH� „1ÀºŸH�5Œk¿èˆE1ÛE1ÿH‰ßè ×ÿÿH‹½àýÿÿèÿÖÿÿD‰øH‹]ÈdH3%(……H�eØ[A\A]A^A_]Ãf.„M‰áºt¿1ÀL�êzH� ›ƒH�5kèE1ÛA¿ëŠD¨I„RÿÿÿL�ÙzH� jƒ1ÀºœH�5Þj¿èÚDL‰çèA‰Ç1ÛéEÿÿÿ„L‹�ØýÿÿL�œk1ÀH� !ƒºyH�5—j¿è“DéÿÿÿfDH‹…ÀýÿÿI‰Ùƒ8…ÅL�™kH� ß‚1Àº³H�5Sj¿èODH‹½Øýÿÿèã×ÿÿH…À„°H‰ÇH‰…¸ýÿÿèéÿÿH‹½¸ýÿÿA¸1ɺÆH‰þèúÿÿ‰…Èýÿÿ…À…`H‹½¸ýÿÿè�Õÿÿé§ûÿÿD‰ïè„ÓÿÿL‰÷èÌÔÿÿ‹½Øýÿÿƃ¹ è*\f.„è{ØÿÿA‰Ç…À„VL�­èýÿÿë€H‹…Àýÿÿƒ8…Ð1ÒL‰îD‰ÿè£Öÿÿ…ÀxßD‹�èýÿÿL�Œk1ÀH� ‰�ºKH�5Vi¿èRCD‹½èýÿÿD½ÈýÿÿuHƒ=*¹ tL‰çèÐøÿÿE‰ùº¿1ÀL�ºjH� ‹�H�5ièCéýÿÿf�I‰ùL�øi1Àº–H� `�H�5Ûh¿è×Bé»ýÿÿf�L‰çèhÖÿÿH‹=º H‰ÂH‰Æè4éšýÿÿ�L�«iH� �1Àº¯H�5Žh¿èŠBHÇ…¸ýÿÿH‹½¸ýÿÿA¿èýÓÿÿéåüÿÿ„L‹�àýÿÿL�ši1ÀH� Á€ºÂH�57h¿è3BH‹½àýÿÿ¾íè²×ÿÿA‰Çé—üÿÿf.„1öL‰çè&ÔÿÿI‰ÅH…À„ª¶�ÌýÿÿE¶Ç1ÒH‰ÆH‰Çèò÷ÿÿ…À…aL‰òL‰î¿è:ÖÿÿA‰Ç…À…[H‹µàýÿÿL‰ò¿èÖÿÿ…À„Á1ÀH‹ 2¹ HÇ…èýÿÿH�½èýÿÿA€}/H�ïg¾”ÀM�D1Àè(Óÿÿ…ÀˆÞL‹µàýÿÿH‹½èýÿÿL‰öè ïÿÿHƒìI‰ÁH‰…Ðýÿÿ1ÀAVºåL�¡hH� •H�5g¿èAH‹½ÐýÿÿA[L‰öXèrÐÿÿ…À…êH‹½Ðýÿÿè~ÒÿÿH‹½èýÿÿèrÒÿÿ€=„¸ …¯L‰ïè]ÒÿÿéEûÿÿ„Ç…èýÿÿÿÿÿÿèÒÿÿ…ÀumHƒìM‰áL�ÿvºDAVH� ²~¿H�5fè€@XZéúüÿÿM‰éºØ¿1ÀL�¶gH� Ô~H�5OfèP@A¿épÿÿÿDHƒìM‰áL�êv1ÀAVH� H~ºGH�5f¿è@XZé‹üÿÿf.„L‰çè(…Èýÿÿéð÷ÿÿDL‹�àýÿÿL�"g1ÀH� I~ºÊH�5¿e¿è»?‹µ(þÿÿH‹½àýÿÿ@€Î€è5ÕÿÿA‰ÇéúÿÿI‰Ùº¼¿1ÀL�—uH� ø}H�5seèt?éðüÿÿA¿ôÿÿÿéáùÿÿM‰éºÝ¿1ÀL�´fH� ¿}H�5:eè;?éæþÿÿ‹½Øýÿÿè‹WéfûÿÿH‹µØýÿÿ1ÒL‰çèe é;þÿÿHƒìL‹�Ðýÿÿ1ÀL��fAVH� c}ºéH�5ád¿èÝ>AYAZéÚýÿÿèÒÿÿL�AeH� 9}1Àº�H�5­d¿è©>¿èïÎÿÿº!H�5�d¿1Àè‡>é8øÿÿL�ôdH� ì|1ÀºæH�5`d¿è\>ë±èµÏÿÿ…Àu@VH�5FfL� fjL�qtH‰÷H� fAVH�fATèÿÎÿÿHƒÄ ¿èÏÿÿQH�5f1ÀL� ÜejL�÷eH‰÷H� ÍeAVH�ÒeATè½ÎÿÿHƒÄ ë¼óúé ÔÿÿóúéÔÿÿóúI‰Æé+ÔÿÿóúI‰Æé0ÔÿÿóúéßÓÿÿóúI‰Äé@ÔÿÿóúI‰Æé'ÔÿÿóúI‰ÄéMÔÿÿóúI‰ÆéÔÿÿóúé¦Óÿÿóúé�ÓÿÿóúI‰Æé2ÔÿÿóúI‰Æé±Óÿÿóúé|ÓÿÿóúéuÓÿÿóúéjÓÿÿóúI‰ÄéàÓÿÿóúéUÓÿÿóúéLÓÿÿóúéCÓÿÿóúé:ÓÿÿóúI‰ÄéŸÓÿÿóúé%ÓÿÿóúI‰Äé£Óÿÿff.„UH‰åAWAVAUATSHƒìXH‰}€¿dH‹%(H‰EÈ1ÀHÇE¸HÇEÀè2ÍÿÿH‰E°H…À„¥H‹}€H�5¡dè5ÏÿÿH‰ÃH…À„H‹M€1ÀH�}À¾H�±dèÎÿÿ…Àˆ¸H‹}ÀH�5;eèFÑÿÿH‰ÃH�E¸ÇEŒH‰E H�E°H‰E˜@H‰ßèPÐÿÿ…À…¨H‹u H‹}˜H‰Ùº èƒËÿÿH…À~ÖL‹M°ºÑ¿1ÀL�AdH� zH�5ÃaèÄ;H‹E°H�5ÁrH‰ÇI‰ÆènÎÿÿH…À…H�5dL‰÷èVÎÿÿH…À…-H�5dL‰÷è>ÎÿÿH…À…H�5dL‰÷è&ÎÿÿH…À…ýH�5dL‰÷èÎÿÿH…À…åH�5dL‰÷èöÍÿÿH…À…ÍH�5dL‰÷èÞÍÿÿH…À…µH�5dL‰÷èÆÍÿÿH…À…�H‹5޲ L‰÷è®ÍÿÿI‰ÅH…À…‚H�5ñcL‰÷è“Íÿÿ¾/H…ÀIDÆH‰ÇèÏÍÿÿI‰ÄH…À„›þÿÿ¶¨ß„à< „ØL‰àë€ú t HƒÀ¶öÂßuïÆL‰çèÎÿÿA¸1É1ÒH‰ÆH‰ÇI‰ÇH‰E¨èpðÿÿ‰Eˆ…À„=Hƒìÿu€M‰ùºZL�oqH� xx¿1ÀH�5$`è%:XZL‹}¨H�5CcL‰ÿèÐÌÿÿH…Àt!Æ@A¸1É1ÒL‰þL‰ÿèðÿÿ…À„ZH‹}¨èqËÿÿL‰çèyÍÿÿH‰ÇH‰E¨èMÉÿÿI‰ÆH…À„!H‰ÇèYÍÿÿH‰ÇI‰Æè.ÉÿÿI‰ÇH…À„BH‰Çè:ÍÿÿH‰ÇI‰ÇèÉÿÿH‰E�H…À„¢H‰ÇèÍÿÿH‰E�H…À„�H‹}¨L‰æèaÍÿÿL‰ÿèIËÿÿ¹ H�=}bL‹e�H‰Æó¦H‹}¨—À„ÀMEçè Ëÿÿ1ÉH�5ScH‰ÂL‰ç1Àè*VA¸1É1ÒH‰ÆH‰ÇI‰Åèïÿÿ…À„:H�5bL‰ïè«ËÿÿH…À„Æ@A¸1É1ÒL‰îL‰ïèÙîÿÿ…À…äL‹M¨º”¿1ÀL�ÃaH� ãvH�5–^è—8éµM‰ñºÔ¿1ÀL�ñbH� ÅvH�5h^èi8ƒEŒDH‹}ÀèçÉÿÿH…ÛtH‰ßè*ÊÿÿH‹}°èÑÉÿÿ‹EŒH‹]ÈdH3%(…ÍH�eØ[A\A]A^A_]Ã@L‹M¨º\¿1ÀL�aH� :vH�5í]èî7éÆýÿÿf„E1íL‰ïèeÉÿÿH‹}�è\ÉÿÿL‰ÿèTÉÿÿL‰÷èLÉÿÿH‹}¨èCÉÿÿ‹MˆMŒé�ûÿÿ„E1íHÇE�E1ÿë³L‹M¨ºf¿1ÀL�’`H� ²uH�5e]èf7éwýÿÿ�E1íHÇE�ésÿÿÿH‹}€¾1Àè ÌÿÿA‰Ä…Àxèº×ÿÿH�}¸I‰ØL‰ñAÆH�/\1À¾èhÄÿÿ…Àˆ¹1ÀH�}ÀI‰ØL‰áH�\¾èCÄÿÿ…À‰½þÿÿL�íXH� •p1Àº5H�5YX¿èU2ë&L�ÅXH� mp1Àº#H�51X¿è-2¿èsÂÿÿ1ÿ»ôÿÿÿé¦þÿÿè¿ÅÿÿL��XH� )p1Àº)H�5íW¿èé1ëºL�YXH� p1Àº/H�5ÅW¿èÁ1ë’óúH‰Ãé�ÉÿÿUH‰åAWAVH�µ ÿÿÿAUATSH�ìÈH‰½ÿÿÿdH‹%(H‰EÈ1ÀHÇ… ÿÿÿèßÄÿÿ‰Ã…Àˆ<L‹¥ ÿÿÿM…ä„wL�½0ÿÿÿë@H‹½ ÿÿÿL‰æèyÁÿÿI‰ÄH…À„ÍL‰çè•ÆÿÿH‰Ç¹ H�5»Zó¦—À„ÀuÃL‰çèóÃÿÿI‰ÅI‰ÁL�¤Z1ÀH� ýnºŽ¿H�5ÖVè×0H‹P¨ H…Û„%Hƒ;„Ç…ÿÿÿÿÿÿÿL�µ(ÿÿÿë{f.„H‹½(ÿÿÿA¸1É1ÒH‰þè—æÿÿ‰…ÿÿÿH‹½(ÿÿÿ…Àu.I‰ùº¢L�!Z¿H� knH�5NVèO0H‹½(ÿÿÿèÓÁÿÿHƒÃ„‰Hƒ;„1ÀM‰èH�–VL‰÷HÇ…(ÿÿÿH‹ ¾èÈÁÿÿ…Àˆ&H‹µ(ÿÿÿL‰ú¿è¼Áÿÿ…À„DÿÿÿL‹�(ÿÿÿL�^V1ÀH� ÝmºœH�5»U¿è·/écÿÿÿf�‹�ÿÿÿ…É„ZþÿÿH‹½ÿÿÿèÁÿÿHƒìM‰éL�gº¦PH� ‹mH�5nU1À¿èh/XZéþÿÿ�1ÛH‹½ ÿÿÿH…ÿtèÃÿÿH‹MÈdH3 %(‰Ø…ŽH�eØ[A\A]A^A_]ÉÇ÷ßèÐÁÿÿH‹½ÿÿÿI‰Çè‘ÀÿÿHƒìI‰Á1ÀºƒAWL�RfH� m¿H�5áTèâ.^_ë€1Ûë�L�LUH� Ül1Àº—H�5¸T¿è´.¿èú¾ÿÿèUÂÿÿóúH‰ÃéžÆÿÿóúH‰Ã醯ÿÿff.„f�UH‰åAWAVAUATSHƒìHdH‹%(H‰EÈ1ÀH…ÿ„_H�EÀI‰ýI‰üE1öH‰E H�E¸L�=K¤ H‰E˜€L‰çèøÂÿÿH‰ÇH‰E¨èÌ¿ÿÿH‰ÃH…À„pH‹=a¥ H‰ÆèÑßÿÿ„À…áH‹=R¥ H‰Þèºßÿÿ„À…BH‹}¨èY¿ÿÿ€=Ê£ tE1À1É1ÒH‰ÆL‰ÿè~¾ÿÿ…À„H‹57¥ 1É1ÒH‰ßA¸HÞèªãÿÿA‰ÆH‹¥ HØE…ö…ôHƒìI‰ÙL�GWºPH� YkH�5\S1À¿HÇE¸HÇEÀèF-H‹}¨Y^è‹ûÿÿH‹}¨è²ÁÿÿH‰ÇH‰Ãè§þÿÿA‰Æ…À„ÄH‹}ÀH…ÿtèî¿ÿÿH‹}¸H…ÿtèà¿ÿÿH…ÛtH‰ßèÓ¿ÿÿH‹}¨H…ÿtè¿ÿÿL‰æL‰ïè½ÿÿI‰ÄH…À…žþÿÿH‹MÈdH3 %(D‰ð…ÈH�eØ[A\A]A^A_]Ãf„H‹E¨H…Àt²H‰Çë¨f�HƒìI‰ÙL�:dºPH� ejH�5hR1À¿èb,XZéhÿÿÿH‹U H‹u˜H‹}¨è‡¾ÿÿA‰Æ…À… ÿÿÿH‹}¸è³ýÿÿH‹}ÀA‰Æè§ýÿÿE…öDDðéÿþÿÿH‹}¨A¾ÿÿÿÿH…ÿ„7ÿÿÿè0¾ÿÿé-ÿÿÿE1öé"ÿÿÿ蛿ÿÿóúI‰ÄéÿÃÿÿóúI‰Äé5Äÿÿóúé4ÄÿÿóúI‰ÄéÄÿÿóúI‰ÄéÐÃÿÿóúI‰ÄéÄÿÿóúéÄÿÿóúé Äÿÿ@UH‰åAWAVAUATI‰üSHƒì(dH‹%(H‰EÈ1ÀHÇE°HÇE¸èؼÿÿ€=I¡ H‰Ã…Ø€=ᢠ…›L‰çèã¼ÿÿH‰ÃH…À„ÜH‹=x¢ H‰ÆèèÜÿÿ„À…¸H‹=i¢ H‰ÞèÑÜÿÿ„À„¡1ÛE1öH‹}¸H…ÿtèÆ½ÿÿH‹}°H…ÿt踽ÿÿH…ÛtH‰ß諽ÿÿH‹MÈdH3 %(D‰ð…‡H�eØ[A\A]A^A_]ÃfDH‹=é¡ H‰ÞèaÜÿÿ„À…NÿÿÿI‰Ùº)¿1ÀL�kbH� iH�5_Pè`*ébÿÿÿH‰ßèÞÿÿ„À„ €=;  HÇEÀ…À=%  …¶H‹§¡ HƒìI‰ÙL�þSH� ²hº<¿HØH�5ðOP1Àèî)H‹5o¡ XA¸1ÉZH‰ß1ÒHÞèàßÿÿA‰Æ…À„õ€=e¡ …1Û€=U¡ …µþÿÿL‰çè!»ÿÿI‰ÁL��S1ÀºCH� 1hH�5|O¿èx)1Ûé}þÿÿ�H�uÀL‰çè$½ÿÿ…Àˆ<H‹EÀ€=JŸ I‰Ç„?H…À„ÿL�5ˆŸ ëfDH‹}ÀL‰þèd¹ÿÿI‰ÇH…À„L‰ÿ耻ÿÿE1À1É1ÒH‰ÆL‰÷I‰Å軹ÿÿ…ÀuÇL‰çèoºÿÿHƒìI‰Á1ÀºÀAUL�(aH� ag¿H�5¿NèÀ(_H‹}ÀAXH…ÿt 蟼ÿÿ€I‰Ùº8¿1ÀL�BaH� 3gH�5~Nè(1ÛA¾é~ýÿÿf�E1À1É1ÒH‰ÆH�=ož è¹ÿÿ…À… ýÿÿI‰Ùº$¿1ÀL�`H� ÝfH�5(Nè)(é+ýÿÿ@L�9`H� ¢f1ÀºµH�5þM¿èú'H‹EÀ€=é� I‰Ç…½M…ÿ„·ýÿÿL‰ÿèÅ»ÿÿéªýÿÿL‰çèH¹ÿÿI‰ÁL�xQ1Àº@H� XfH�5£M¿èŸ'L‰çèçõÿÿL‰çè¼ÿÿH‰ÇH‰ÃèùÿÿA‰Æ…À……üÿÿH�U¸H�u°L‰ç詹ÿÿA‰Æ…À…jüÿÿH‹}°èÕøÿÿH‹}¸A‰ÆèÉøÿÿE…öAEÆA‰ÆéFüÿÿf.„H‹EÀI‰ÇM…ÿ„xþÿÿL‰ÿè»ÿÿékþÿÿH‹EÀI‰Ç€=üœ „ÿÿÿM…ÿ„KþÿÿL�5|� ëf.„H‹}ÀL‰þè·ÿÿI‰ÇH…ÀtœL‰ÿè4¸ÿÿE1À1É1ÒH‰ÆL‰÷I‰Åèo·ÿÿ…ÀuËL‰çè#¸ÿÿHƒìI‰Á1ÀºËAUL� _H� e¿H�5sLèt&H‹}ÀY^H…ÿ„?üÿÿèPºÿÿé5üÿÿ1ÛA¾ÿÿÿÿéWûÿÿA¾þÿÿÿéLûÿÿ€=3œ …‹ýÿÿéüÿÿèÙ¹ÿÿóúI‰Æé¢¾ÿÿóúI‰ÆéɾÿÿóúI‰ÆéÁ¾ÿÿóúI‰Æé¹¾ÿÿóúI‰Æé±¾ÿÿóúI‰Æé©¾ÿÿóúI‰Æé¡¾ÿÿóúI‰Æé™¾ÿÿóúI‰Æé‘¾ÿÿóúH‰Ã鉾ÿÿóúI‰Æéü¾ÿÿóúI‰Æé ¾ÿÿóúI‰Æé—¾ÿÿóúI‰Æé’¾ÿÿóúé}¾ÿÿóúé`¾ÿÿóúI‰Æé{¾ÿÿóúI‰Æév¾ÿÿóúI‰Æéq¾ÿÿóúI‰Æél¾ÿÿóúI‰Æég¾ÿÿóúI‰Æéb¾ÿÿóúI‰Æé]¾ÿÿóúI‰ÆéX¾ÿÿóúI‰ÆéS¾ÿÿóúI‰ÆéU¾ÿÿ€UH‰åAWAVI‰ö1öAUA‰ýATSH�ì˜H‹=]œ dH‹%(H‰EÈ1ÀHÇ…x÷ÿÿè~µÿÿH‰ÇI‰Çè3¹ÿÿH�5¼NH‰ÇH‰ÃèQ·ÿÿH…Àt H)ØH‰ œ €=œ …1E…í޲A�EÿL‰µh÷ÿÿI�DÆE1öH‰…H÷ÿÿH�…˜÷ÿÿH‰…`÷ÿÿH�…x÷ÿÿH‰…X÷ÿÿH‹�h÷ÿÿL�oN1ÀH� ÿbºäH�5 J¿L‹ è$H‹¶¿èÏë¿€=m� …Û€=_� …dýÿÿAVM‰éL�ÿQ1ÀSH� }WºH�5‹>¿è‡éJøÿÿL‰ïè ªÿÿH‹½˜÷ÿÿH…ÿ…ñøÿÿéñøÿÿH‹…h÷ÿÿºúL�‚QH� +WH�5>>¿L‹1Àè5é>øÿÿè‹«ÿÿƒ8…«H‹…@÷ÿÿH…ÀtH‰Çè¬ÿÿH‹½�÷ÿÿè’©ÿÿH‹½ˆ÷ÿÿ膩ÿÿH‹½€÷ÿÿèz©ÿÿéwøÿÿATM‰éL�1Q1ÀSH� ¯VºH�5½=¿è¹^_éÃ÷ÿÿH‹…h÷ÿÿAPM‰éºL�ôAH� sV¿ÿ0H�5=1Àè~^_éˆ÷ÿÿL�^BH� IV1Àº�H�5U=¿èQé*ÿÿÿ€=ëŽ t »éÞóÿÿH‹…h÷ÿÿº²L�OBH� ÿUH�5=¿L‹1Àè ëÄ貪ÿÿL�t=H� ÔU1Àº.H�5à<¿èÜ¿è"§ÿÿL�D=H� ¤U1Àº(H�5°<¿è¬ëÎL�=H� |U1Àº4H�5ˆ<¿è„ë¦óúH‰Ãéã¯ÿÿóúH‰Ãéׯÿÿóúé˯ÿÿóúH‰Ãéö¯ÿÿóúH‰Ãé(°ÿÿóúH‰ÃéŰÿÿóúH‰Ãé°ÿÿóúH‰ÃéѯÿÿóúH‰Ãé(°ÿÿóúH‰Ãé)°ÿÿóúH‰Ãé*°ÿÿóúH‰Ãé.°ÿÿóúéí¯ÿÿóúH‰Ãé)°ÿÿóúH‰Ãé-°ÿÿóúH‰Ãé)°ÿÿóúH‰Ãé*°ÿÿóú齯ÿÿóúH‰Ãé8¯ÿÿóúH‰Ãé3°ÿÿóúH‰Ãé/°ÿÿf.„Dóú‰øÃf„óú1ÀH9÷ºÿÿÿÿ—ÀBÂÃff.„HƒìH…ÿtwH…ö„ŽH‹N H‹F(H…ÉtAH‰A(H‹F(H…Àt=H‰H H‹NH‹FH…ÉtH‰AH‹FH…Àt&H‰H‹G …Àtkƒè‰G HƒÄÃH‰GH…ÀuÃH‰OëÁ�‰ÒH‰L×(ëÕ€H� ùTºÝH�5ëSH�=Ë@èA�H� ÙTºÞH�5ËSH�=°Xè!�H� ¹TºôH�5«SH�=¶Sè�HƒìH…ÿtH…ö„ž‰ÒH�D×(H‹HÇFH‰VH‹H…ÒtH‰rH‰0H‹GHÇF H‰F(H…Àt$Hƒ„™H‰p ƒG H‰wtkHƒÄÃfDHƒ…•H‰wëÚ€H� áSºÂH�5SH�=ã?èYf„H� ¹SºÃH�5ÛRH�=ÀWè1�H� ™SºÙH�5»RH�=ÆRè�H� ySºÐH�5›RH�=¹Rèñ�H� YSºÓH�5{RH�=˜RèÑ�ATUSH‹H…Àt$‹P ‹H9Êsz�JH¯ÖH�r‰H Hð[]A\Ã@»H‰õI‰üè*H¯Ý1ÒH�|H÷ØH!ÇH�GðH÷õH‰Ã耣ÿÿH…ÀtÂI‹$‰X¾¹Ç@ H‰I‰$ë›f.„ɸ�ùBȉËë‘ff.„�ATUSH…ÿtG‰öH‰ýI‰ÔH‹\÷(H…Ûuë#H‹[H…ÛtL‰æH‹;ÿU…ÀuêH‰Ø[]A\Ãf�1ÛH‰Ø[]A\ÃfDH� IRº(H�5[QH�=;>è±�USHƒìH…ÿtuH‰óH…ö„‰H‰ýH‹>ÿUH‰ï‰ÁHiÉH‰Î‰ÁHÁî )ñÑéñH‰ÞÁé‰ÊÁâ)Ê)ЉÂèüÿÿ€}$tH‹r‰ H‰k‰ H‰HƒÄ[]Ã�HƒÄH‰ß[]é2£ÿÿf�H� ÙQºûH�5»PH�=›=è�H� ¹QºüH�5›PH�=€Uèñ�SH‹wH‰ûH…ötH‰ßè(ÿÿÿH‹sH…öuï€{$tH‹òˆ H‰ëˆ H‰[ÃfDH‰ß[é§¢ÿÿ€óú¾¸„Òt‰ÁHƒÇÁáÊо„ÒuìÃÀóúé·¤ÿÿ€óúATUH‰ýSH‰óè=*A‰Ä„À„ÂH‹kˆ H…Ò„‚H‹H‰Xˆ H�zH‰Ñ1ÀHÇHÇ‚HƒçøH)ù�Á ÁéóH«H…íH�àúÿÿÇB HDèH�ÞúÿÿH…ÛHÇBHDØHÇBH‰ÐH‰*H‰ZDˆb$[]A\Ã@¾ H�=܇ èÏüÿÿH‰ÂH…À…kÿÿÿ1Ò[H‰Ð]A\Ãf„¾¿ è¤ÿÿH‰ÂH…À…kÿÿÿ1ÒëÐ�óúSH‰ûH…ÿt3Hƒ?t 1À[Ãf„H‰÷H‰ÖèÕþÿÿH‰H…Àuà¸ôÿÿÿ[ÃfDH� ÙOº¶H�5«NH�=‹;è�óúH…ÿtéþÿÿf�Ãff.„@óúH…ÿtGUSH‰ûHƒìH‹wH…öt"H‹nH‰ßè ýÿÿH…ítH‰ï謠ÿÿH‹sH…öuÞHƒÄH‰ß[]é¥ýÿÿDÃff.„@óúH…ÿt/SH‹wH‰ûH…ötf.„H‰ßè¨üÿÿH‹sH…öuï[ÃDÀóúAUATUSHƒìH…ÿ„ÉI‰ýH‰õH‰÷I‰ÔAÿUL‰ï‰ÃHiÛH‰Ú‰ÃHÁê )ÓÑëÓÁë‰ÚÁâ)Ú)ÐH‰ê‰Æ‰ÃèÆûÿÿH…Àt!L9`ºïÿÿÿ¸EÂHƒÄ[]A\A]ÃDA€}$t9H‹5Ò… H…ötmH‹H‰Ã… H‰.‰ÚL‰ïL‰fè’ùÿÿHƒÄ¸[]A\A]Ãf�¿0膞ÿÿH‰ÆH…öu˸ôÿÿÿë—€H� éMº6H�5ëLH�=Ë9èA�¾0H�=\… è_úÿÿH‰Æë·f.„óúATUSH…ÿtkH‰ýH‰óH‰÷I‰ÔÿUH‰ï‰ÂHiÒH‰Ñ‰ÂHÁé )ÊÑêÊÁê‰ÑÁá)ÑH‰Ú)ȉÆè³úÿÿH…ÀtH‰L‰`1À[]A\ÃL‰âH‰ÞH‰ï[]A\énþÿÿfDH� MºVH�53LH�=9è‰f„óúH…ÿtgUH‰õSH‰ûH‰÷HƒìÿH‰ß‰ÁHiÉHÁé I‰È‰ÁD)ÁÑéDÁÁé‰ÊÁâ)Ê)ÐH‰ê‰ÆèúÿÿH…ÀtH‹@HƒÄ[]ÃHƒÄ1À[]À1ÀÃff.„f�óúUSHƒìH…ÿtaH‰ûH‰õH‰÷ÿ‰ÁHiÉH‰Ï‰ÁHÁï )ùÑéùH‰ßÁé‰ÊÁâ)Ê)ÐH‰ê‰Æè•ùÿÿH…Àt H‹hH‰ÆH‰ßèñùÿÿHƒÄH‰è[]À1íHƒÄH‰è[]Ã@óúH…ÿ„ØAWAVI‰ÎAUI‰ÕATI‰üH‰÷UH‰õSHƒìAÿ$L‰ç‰Á‰ÃHiÉHÁé )ËÑëËÁë‰ÚÁâ)Ú)ÐH‰ê‰Æ‰ÃèùÿÿI‰ÇH…ÀtxL‰ïAÿ$L‰ç‰ÅHiíH‰ê‰ÅHÁê )ÕÑíÕÁí‰êÁâ)ê)ÐL‰ê‰Æ‰ÅèÀøÿÿºïÿÿÿH…Àu#‰ÚL‰þL‰çèéõÿÿM‰/‰êL‰þM‰wL‰çèµöÿÿ1ÒHƒÄ‰Ð[]A\A]A^A_úþÿÿÿëèºþÿÿÿ‰ÐÃóúH…ÿ„åAWAVI‰ÎAUI‰ÕATI‰üH‰÷UH‰õSHƒìAÿ$L‰ç‰Á‰ÃHiÉHÁé )ËÑëËÁë‰ÚÁâ)Ú)ÐH‰ê‰Æ‰ÃèøÿÿI‰ÇH…À„�L‰ïAÿ$L‰ç‰ÅHiíH‰ê‰ÅHÁê )ÕÑíÕÁí‰êÁâ)ê)ÐL‰ê‰Æ‰ÅèÌ÷ÿÿH…ÀtI9Çt H‰ÆL‰çè'øÿÿ‰ÚL‰þL‰çèêôÿÿM‰/‰êL‰þM‰wL‰çè¶õÿÿ1ÀHƒÄ[]A\A]A^A_øþÿÿÿëê¸þÿÿÿÄóúH…ÿtwATI‰ôUH‰ýH‰÷SH‰ÓÿU‰ÁHiÉH‰Ï‰ÁHÁï )ùÑéùH‰ïÁé‰ÊÁâ)Ê)ÐL‰â‰Æè#÷ÿÿH…ÀtH9XuH‰ÆH‰ïè}÷ÿÿH‰Ø[]A\ÃD[1À]A\Ãf„1ÀÃff.„f�óúH…ötgH…ÿtJH‹HƒøÿtAH…Àt,H‹H HÇÇÿÿÿÿH…ÉHDÏH‰H…ÒtH‹H‰ H‹@ÀH‹GH…ÀuË€HÇÿÿÿÿ1ÀH…ÒtHÇÃf�HƒìH� ÕHºÐH�5HH�=JHèm ff.„f�óúH…ötWH…ÿt:H‹H…Àt2HƒøÿtH‹H(H‰H…ÒtH‹H‰ H‹@ÃDH‹GH…ÀuÛ€HÇ1ÀH…ÒtHÇÃf�HƒìH� %HºóH�5‡GH�=ºGèÝ ff.„f�óúH…ÿtgATI‰ôUH‰ýH‰÷SH‰ÓÿUH‰ï‰ÁHiÉHÁé I‰È‰ÁD)ÁÑéDÁÁé‰ÊÁâ)Ê)ÐL‰â‰ÆèaõÿÿH…Àt H‰[H‹@]A\Ã[1À]A\Ãf„1ÀÃff.„f�óúH…ÿtH‹GH…ÀtH‹@Ãf„1ÀÃff.„f�óúH…ÿtH‹GH…ÀtH‹Ãf.„1ÀÃff.„f�óúH…ÿtH‹GH…ÀtH‹@Ãf„1ÀÃff.„f�óúSH…ÿtH‹wH…ötH‹^èôôÿÿH‰Ø[À1ÛH‰Ø[Ã�óúSH…ÿtH‹wH…öt H‹èÅôÿÿH‰Ø[Ã1ÛH‰Ø[Ãf„óúH…ÿt‹G Ã1ÀÃff.„f�óúH…ÿt‹G …À”ÀÃfD¸Ãf�óúUSHƒìH…ÿtAH…öt-H‹^H‰ýH…Ût!H‹SH‹3H‰ïè±÷ÿÿƒøït…Àx H‹[ H…Ûuß1ÀHƒÄ[]ÃfDH� áEºvH�5[EH�=;2è±�óúAVAUATUSH…ÿ„ÃI‰õH…ö„§L‹vH‰ýM…ö„—€I‹>M‹f ÿUH‰ï‰Â‰ÃHiÒHÁê )ÓÑëÓÁë‰ÚÁâ)Ú)ÐI‹‰Æ‰ÃèóÿÿH…ÀuEI‹>AÿUL‰ï‰ÁHiÉH‰Î‰ÁHÁî )ñÑéñL‰öÁé‰ÊÁâ)Ê)ЉÂè!ðÿÿ‰ÚL‰öH‰ïèôðÿÿM‰æM…ä…pÿÿÿ[]A\A]A^ÀH� ÙDº‰H�5cDH�=C1è¹f„óúH…ö„ÃAVI‰ÖAUI‰ýATI‰ôUSH…ÿ„±H‰×AÿUL‰ï‰Â‰ÃHiÒHÁê )ÓÑëÓÁë‰ÚÁâ)Ú)ÐL‰ò‰Æ‰Ãè2òÿÿH…À…™L‰÷Aÿ$L‰ç‰ÅHiíH‰ê‰ÅHÁê )ÕÑíÕÁí‰êÁâ)ê)ÐL‰ò‰Æ‰ÅèïñÿÿI‰ÆH…Àt^H‰Æ‰êL‰çèïÿÿ‰ÚL‰öL‰ïèíïÿÿ1À[]A\A]A^Ãf�1ÀÃDH� ÁCº©H�5cCH�=C0è¹f„¸ïÿÿÿ뾸þÿÿÿë·f�óúUSHƒìH…ÿt1H‹wH‰ûH‹?è"óÿÿH‰ÅH…ÀtH‰ÞH‰ÇèOýÿÿ…Àx+HƒÄH‰è[]Ã�H� 9Cº¼H�5ëBH�=Ë/èA�H‰ï1íèFòÿÿëÉ@óúAVAUATI‰üUSHƒìdH‹%(H‰D$1À‹G �xHÁçè”ÿÿH‰ÅH…ÀtPI‰æ1ÒL‰çHÇ$L‰öèÞùÿÿH…ÀtY»@1ÒL‰öL‰çH‰DÝøè¾ùÿÿLcëHƒÃH…ÀuâJ�DíHÇH‹L$dH3 %(H‰èuHƒÄ[]A\A]A^ÃfDH‰èëÎè––ÿÿfDAWAVAUATUSHƒìhdH‹%(H‰D$X1Àƒ=‹‚ „åH‰ÕI‰äL�5CL�-n)ë€H…í„¿H�5ƒFH‰ï耕ÿÿH�\€;„¢H�5fFH‰ß1íèÑ’ÿÿH…ÀtÆH�hD‹=x E…ÿx±fïÀH‰ßL‰4$AD$AD$(AD$8IÇD$HHÇD$H‰\$è°“ÿÿºL‰æD‰ÿH‰D$L‰l$ HÇD$(è=–ÿÿH…À‰Lÿÿÿè?•ÿÿ‹…ÀŽ=ÿÿÿ÷Øë�1ÀH‹L$XdH3 %(uHƒÄh[]A\A]A^A_ÃèZ•ÿÿf.„AWI‰×AVA‰öAUI‰ýATUSH�ì(H‰L$H�l$dH‹%(H‰„$1ÀèÄ”ÿÿL‹L$M‰øH‰ï¹D‹ ºH‰Ã¾è’ÿÿH‰êD‰öL‰ïÆ„$èIþÿÿD‰#H‹Œ$dH3 %(uH�Ä([]A\A]A^A_Ã謔ÿÿff.„�UI‰ù‰ÕH�=³x S1ÀH‰óHƒìQ¹RºV¾èr•ÿÿHƒÄ ‰îH‰ßH�‚x Æz€ èÆýÿÿèa�ÿÿ�óúS‹]v …Ûx 謑ÿÿƒøt[ÃDƒûÇ9v ÿÿÿÿ[À‰ßèÁëäff.„@óúëªf.„óúÃff.„óúƒç;=ïu H‰ð‰Ö~ 1ÀÃf„L‰ÉL‰ÂH‰Çébþÿÿf�óúH�ìØI‰ò‰ÖL‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹%(H‰D$1ÀH�„$àƒçÇ$(H‰D$H�D$ H‰D$1À;=Cu ÇD$0~H‹L$dH3 %(uH�ÄØÃDH‰áL‰ÂL‰×è¢ýÿÿëÓèë’ÿÿff.„óú‹ît S1Û…Àx‰Ø[Ãè3�ÿÿƒøtÇÌt ‰Ø[þH�=n?蟉±t …Àx-L�@H� ‡A1ÀºIH�5P?¿è¿þÿÿëžD÷؉Çè_‘ÿÿºEL�£?H� LAI‰ÁH�5?¿1Àè†þÿÿ‹Ht é\ÿÿÿff.„óúPXL�Ã?Hƒìèjýÿÿf.„PXH� ×@º\H�5Â>H�=É>Hƒìè»ÿÿÿff.„óú‰øƒà9øu ‰Ùs Ã@Hƒìè¯ÿÿÿff.„@óúPXL�ƒ?Hƒìèêüÿÿf.„óúHƒì…ÿxƒÿ/‰=‰} HƒÄÃ@H� !@ºìH�5$>H�=C>è!ÿÿÿ�H� @ºíH�5>H�=/>èÿÿÿ�óúHƒìès…Àx©øÿÿÿu‰s 1ÀHƒÄÃèóþÿÿóú‹} ÃDóú‹òr ÃDóúƒÿwHcÿH��l H‹øÃ„1ÀÃff.„f�óúAUL�-sl ATI‰üH�=V=US1ÛHƒìdH‹%(H‰D$1ÀÇD$M…äuë`I‹|݉ÝH…ÿt L‰æè|�ÿÿ…Àt*HƒÃHƒû uÞH�t$L‰çèQ…ÀxL‹l$¸ÿÿÿÿƒýGèH‹T$dH3%(‰èu2HƒÄ[]A\A]Ã�H� ‰>º%H�5Ä<H�=¬&èÁýÿÿ½ÿÿÿÿë¼èÕ�ÿÿDóúHƒìè#ÿÿÿ…Àx‰Çè8þÿÿ1ÀHƒÄÃ�¸êÿÿÿëóf„óúSH�=¶<è�ÿÿH…ÀtH‰ÇH‰Ãèßþÿÿ…ÀxU‰ÇèôýÿÿH�=¡<èøŽÿÿH‰ÃH…Àt H‰Çè8þÿÿ…Àx[Ãf�I‰ÙL�®=º[H� é=H�5 <¿1ÀévûÿÿI‰Ùº ¿1ÀL�H=H� ¹=H�5Ù;èMûÿÿë‡f.„�óúH‹6H‹?é�ÿÿ�UH‰ýSHƒìH‹?H…ÿtH‰ë@裌ÿÿHƒÃH‹;H…ÿuïHƒÄH‰ï[]鉌ÿÿf„1ÀHƒ?t„HƒÇƒÀHƒ?uóÃf�Ãff.„@óúATUSH…ötSH‰ûH…ÿt;H‹/I‰ôH…íuë#fDHƒÃt"H‹+H…ítL‰æH‰ïè_Žÿÿ…ÀuãH‰è[]A\Ã1í[H‰è]A\ÃfDH� >º H�5=H�=¢&èÑûÿÿ�óúAUATUSHƒìH…ötmH‰ûH…ÿtUH‹/H…ít=H‰÷I‰õ貋ÿÿI‰ÄëDHƒÃt2H‹+H…ítL‰âL‰îH‰ïè|Šÿÿ…ÀuàH‰èLàtØHƒÄH‰è[]A\A]Ãf�HƒÄ1í[H‰è]A\A]ÃH� I=º,H�5n<H�=&è1ûÿÿ�óúH…ÿtébþÿÿf�Ãff.„@óúATUSH…ÿtkH‰ûè{þÿÿ�xHÁçèÿ‰ÿÿI‰ÄH…Àt=H‹;H‰ÅH…ÿuëWf.„HƒÃH‹;HƒÅH…ÿt=èËŒÿÿH‰EH…ÀuâL‰çèêýÿÿE1ä[]L‰àA\À¿螉ÿÿH‰ÅH…ÀtÜI‰ÄHÇEL‰à[]A\ÃóúH…ÿtéâýÿÿf�1ÀÃff.„f�óúATUSHƒì dH‹%(H‰D$1ÀH…ÿ„Kóo1ÀHƒÿÿI‰ü•ÀH‰õ$H‹N�xH‰L$ë%fD‰ÂƒÀHʉ$H‹H…Àt*Hƒøÿ•À¶ÀÇ‹$ƒø/vÙH‹T$H�BH‰D$H‹H…ÀuÖHÁçèʈÿÿH‰ÃH…À„ÆIƒüÿ„¤L‰ç謋ÿÿH‰H…À„ A¼f.„‹Eƒø/w7‰ÂƒÀHU‰EH‹:H…ÿt7HƒÿÿtÞèi‹ÿÿD‰âH‰ÓH…Àt]‹EAƒÄƒø/vÉH‹UH�BH‰EH‹:H…ÿuÉJ�ãHÇH‹t$dH34%(H‰ØuEHƒÄ []A\ÃfDE1äéxÿÿÿ„H‰ßè(üÿÿ1ÛëÂ@¿èæ‡ÿÿH‰ÃH…Àu¥1Ûë¨èåŠÿÿDóúH�ìØH‰t$(H‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹%(H‰D$1ÀH�„$àH‰æÇ$H‰D$H�D$ ÇD$0H‰D$èÓýÿÿH‹T$dH3%(uH�ÄØÃè&ŠÿÿfDóúAUATI‰ôUSHƒìH…ÿ„¾H‰ýH…ö„µèUûÿÿH‰÷‰ÂèKûÿÿ�|HÁçèΆÿÿI‰ÅH…Àt?H‹}H‰ÃH…ÿuë]„HƒÅH‹}HƒÃH…ÿtD蚉ÿÿH‰H…ÀuâL‰ïE1íè·úÿÿHƒÄL‰è[]A\A]Ãf„èk‰ÿÿH‰H…ÀtÑHƒÃIƒÄI‹<$H…ÿuâHÇHƒÄL‰è[]A\A]ÃDH‰÷HƒÄ[]A\A]éüÿÿfDóúAVAUATUH‰ýSH…ö„ØH‰÷I‰ÕI‰ôèjúÿÿ‰ÂH…턟H‰ïèWúÿÿ�|HÁçèÚ…ÿÿI‰ÆH…Àt8H‹}H‰ÃH…ÿuëT@HƒÅH‹}HƒÃH…ÿt?誈ÿÿH‰H…ÀuâL‰÷èÊùÿÿE1ö[]L‰ðA\A]A^ÃL‰îè°H‰H…ÀtÖHƒÃIƒÄI‹<$H…ÿußHÇL‰ð[]A\A]A^Ã@�xHÁçèD…ÿÿH‰ÃH…Àt¢I‰ÆëÇ€[]A\A]A^éûÿÿóúAWAVAUATUSHƒì(dH‹%(H‰D$1ÀH…ÿ„L�l$L�|$I‰ôH‰òL‰éL‰þH‰ýHÇD$èžH…À„õ1Ûë�D‰óL‰éL‰âL‰þH‰ïD�sèxH…Àuã�{HÁçè—„ÿÿI‰ÆH…ÀtkL‰éL‰âL‰þH‰ïHÇD$èEH…À„¦1Ûë!„L‰éL‰âL‰þH‰ïƒÃèH…ÀtGH‹t$H‰Çè‰ÿÿ‰ÚI‰ÖH…ÀuÏL‰÷E1öèTøÿÿH‹L$dH3 %(L‰ðuPHƒÄ([]A\A]A^A_Ãf�I�ÞHÇëÏH� Á6ºòH�5þ5H�=¬èÁôÿÿ�¿é*ÿÿÿL‰ðëÅè̆ÿÿff.„�óúAWAVAUATUSHƒì(dH‹%(H‰D$1ÀH…ÿ„L�d$L�t$H‰ýHÇD$L‰âL‰öè”H…À„û1Ûë €D‰ëL‰âL‰öD�kH‰ïèkH…Àuæ�{HÁçè*ƒÿÿI‰ÅH…ÀtgL‰âL‰öH‰ïHÇD$è;H…À„¬1ÛëfDL‰âL‰öH‰ïƒÃèH…ÀtRH‹t$‰ÚH‰ÇM�|ÕèîI‰H…ÀuÎL‰ïE1íèëöÿÿH‹L$dH3 %(L‰èuWHƒÄ([]A\A]A^A_Ãf„I�DÝHÇëÇf�H� 95ºH�5Ž4H�=<èQóÿÿ�¿é'ÿÿÿL‰èëÆè\…ÿÿff.„�óúUSHƒìH…ÿtQH�5…5èýÿÿH‰ÃH…Àt.H‰Çè…öÿÿ…Àt"ƒèH�,ÃH‹}H…ÿt€?u èç‚ÿÿHÇEHƒÄH‰Ø[]ÃDH� y4º.H�5î3H�=œè±òÿÿ�óúAWAVAUATUH‰ýSHƒìH…ö„ÚH‰÷I‰öè—‚ÿÿI‰ÇH…í„ÕL‹mI‰ì1ÛL‰ïM…íuëz„I‹<$H…ÿtJ�;H…ÛHEØèW‚ÿÿHÃIƒÄuÞH�{èE�ÿÿH‰ÃH…À„˜H‰ÇfDL‰îèh€ÿÿH‰ÂHƒÅt?L‹mM…ít6H‰ßH9ÃtÞH‰ÇL‰öèC€ÿÿH‰Çëοèô€ÿÿH‰ÂH…ÀtKH‰Ãf„ÆHƒÄH‰Ø[]A\A]A^A_ÃA¿L�5“0é"ÿÿÿ¿謀ÿÿH‰ÂH‰ÃH…ÀuÁ1ÛëÀff.„f�óúAUI‰õATUSHƒìH…ÿ„¶H‰ûH…ö„šèÕôÿÿ�xHÁçèY€ÿÿI‰ÄH…Àt:H‹;H‰ÅH…ÿuëD@HƒÃH‹;HƒÅH…ÿt0è+ƒÿÿH‰EH…ÀuâL‰çE1äèGôÿÿHƒÄL‰à[]A\A]Ãf„L‰ïèø‚ÿÿH‰EH…ÀtÍHÇEHƒÄL‰à[]A\A]Ãf„HƒÄ[]A\A]é¡õÿÿ�HƒÄL‰ï1ö1À[]A\A]éÚ÷ÿÿf.„óúH…ötWATUH‰ýSH‹H‰óH…ÒtMH‰×èíóÿÿ�pA‰ÄHÁæH‰×諃ÿÿH…Àt8D‰âH‰ÐA�T$HÇÐH‰E1À[]A\À1ÀÃD¾E1ä뻸ôÿÿÿëÛ€UH‰ýH‰÷SHƒìè‚ÿÿH…Àt1H‰ÆH‰ïH‰Ãè\ÿÿÿ…ÀxHƒÄ[]Ã�H‰ß‰D$ èÔÿÿ‹D$ HƒÄ[]øôÿÿÿëÚf�óúH…ötë¥D1ÀÃff.„f�óúAVI‰þAUATUSH…ÿtdI‰õH…ötlH‹I‰üH‰ýH…ÛuëD@HƒÅI‰$IƒÄH‹]H…Ût+L‰îH‰ßè �ÿÿ…ÀuÜH‰ßHƒÅè@ÿÿH‹]H…ÛuÜ€IÇ$[L‰ð]A\A]A^Ã@H� ©0º»H�560H�=äèùîÿÿf„óúUH‰ýSHƒìH…ÿt'H‹7H…ötH‰ûë �H‹3H…ötHƒÃH‰ßèÿÿÿH…ÛuçHƒÄH‰è[]Ãff.„f�óúAWI‰ÿAVAUATUSHƒìH…ÿtpI‰õH…öt~H‹I‰þH‰ýH…Ûu"ëQfDIÜt2H‰ßHƒÅèW~ÿÿH‹]H…Ût1L‰ïèV~ÿÿL‰îH‰ßH‰ÂI‰Äè5}ÿÿ…ÀtÉHƒÅI‰IƒÆH‹]H…ÛuÏIÇHƒÄL‰ø[]A\A]A^A_Ã@H� y/ºÔH�5/H�=Ìèáíÿÿ�óúAWAVAUATUSH‰ûHƒìH…ÿu H…ö…=H…ö„TH�,3H‰ØE1ö¿H9Ýv€8A�~u A�VA‰þ‰×HƒÀH9Åuå€|3ÿ…º¾è€ÿÿH‰$H…À„ŠE1äH9Ýw8éªfDH‰ÖH‰ßH‰T$H)Þè-�ÿÿH‹T$H…ÀI‰tFH�ZAƒÄH9ÝvwI‰í1öH‰ßI)ÝL‰êèP{ÿÿH‹ $H‰ÂD‰àL�<ÁH…Òu­L‰îH‰ßèâ€ÿÿI‰H…Àu:H‹<$è!ðÿÿHÇ$H‹$HƒÄ[]A\A]A^A_ÃfDA‰þƒÇé;ÿÿÿDAƒÄE9ætÎH� .ºH�5Å-H�=Ù-èˆìÿÿ„H� Ù-ºìH�5ž-H�=¦-èaìÿÿ�HƒÄ¾¿[]A\A]A^A_éã~ÿÿóúUSHƒìdH‹%(H‰D$1ÀHÇ$H…ÿtq€?H‰ûtiH‰åë@H‰ßè|ÿÿH�\H…Ût.€;t)H‰ÞH‰ïèÖûÿÿ…ÀyÚH‹$H…ÀtH‰Çèïÿÿ1ÀëDH‹$H…ÀtH‹T$dH3%(uHƒÄ[]Ã1ö1ÿ1ÀèÝòÿÿëÜè¶}ÿÿfDóúH…ÿt{AUI‰õATI‰üUSHƒìH‹/H…ítVM…ítBI‹uL‰ëH…öuë4@HƒÃt*H‹3H…öt"H‰ïè’}ÿÿ…ÀuæHƒÄ¸[]A\A]ÃfDIƒÄt I‹,$H…íuªHƒÄ1À[]A\A]Ã1ÀÃf„óúSH‰ûH…ÿt!Hƒ?tèhîÿÿH� îÿÿºH‰ß‰ÆèÂ|ÿÿH‰Ø[Ãff.„f�óúH…ÿtSH‰ûH‹;H…ÿt è3yÿÿHƒÃuí[ÃÀóúdH‹%øÿÿÿH…ÀtÃDHƒì¿èêyÿÿH…À~dH‰%øÿÿÿHƒÄÃH� ˜/º(H�5f,H�=Õ,è8êÿÿ„óúATUSH…ÿtSH‰õH…ötkH‰ûH‰÷è zÿÿºI‰ÄH…Àt&H‰ßè zÿÿ1ÒL9àrL)àL‰âH‰îH�<èr|ÿÿ…À”Â[‰Ð]A\ÃfDH� /º2H�5ß+H�=œè±éÿÿ�H� á.º3H�5¿+H�=Ç+è‘éÿÿ�óúS‰û…ÿyë+èK{ÿÿ‹ƒøu‰ßè}wÿÿ…Àxé[À÷Ø[Ã@H� y.ºAH�5g+H�=w+è9éÿÿf„óúATU‰ýSèñzÿÿ‰ïH‰ÃD‹ è„ÿÿÿ…ÀuD‰#[]A\ÄH� .ºUH�5+H�='+èáèÿÿ�óúAUI‰ýATA‰ôU½SHƒìëD¿PÃèÆyÿÿD‰æL‰ïèkzÿÿ‰Ã…ÀyEèpzÿÿ‹ƒûu%ƒíuÔ»ûÿÿÿHƒÄ‰Ø[]A\A]ÉßèKÿÿÿèFzÿÿ‹HƒÄ÷Û‰Ø[]A\A]ÃD‰ÇèÉvÿÿ…ÀxÓuĉ߻çÿÿÿèÿÿÿë¶DóúH…ÿtH…ötHƒìèyzÿÿ…À”ÀHƒÄÀH ÷”ÀÃ�óúd‹%ðÿÿÿ…ÀtŸÀÃ@Sè‚wÿÿ¿º‰Ã1Àè¤xÿÿ9ÔÀ¶Ð�Tÿd‰%ðÿÿÿ[Ãff.„óúATUSHƒìdH‹%(H‰D$1ÀHÇ$H…ÿ„‹I‰ôH…ö„§H‰ûèOyÿÿ1ÒH‰æH‰ßÇH‰ÅèùzÿÿH‹ $‹UH…Ét=€9u8…ÒuD‰ÁH9È…ˆA‰$H‹|$dH3<%(‰Ðu|HƒÄ[]A\Ãf.„…Òu ºêÿÿÿëÐD÷ÚëÇ@H� ù+ºžH�5)H�=Ôèéæÿÿf„H� Ñ+ºŸH�5ï(H�=)èÁæÿÿºÞÿÿÿérÿÿÿèÒxÿÿf�óúƒÿwHcÿH�ýT H‹øÃ„1ÀÃff.„f�óúAUL�-ÓT ATI‰üH�=Ä(US1ÛHƒìdH‹%(H‰D$1ÀÇD$M…äuë`I‹|݉ÝH…ÿt L‰æè|xÿÿ…Àt*HƒÃHƒûuÞH�t$L‰çèQþÿÿ…ÀxL‹l$¸ÿÿÿÿƒýGèH‹T$dH3%(‰èu2HƒÄ[]A\A]Ã�H� ¹*º¹H�5ï'H�=¬èÁåÿÿ½ÿÿÿÿë¼èÕwÿÿDóúH‰øH ð„�AWAVAUATUH‰õSHƒìH…ÿ„†H…ö„�I‰ÔH‰ûE1íèuÿÿI‰ÆH÷ÐI9Äw9O�<4I�ègtÿÿI‰ÅH…Àt$L‰òH‰ÞH‰ÇèñxÿÿK�|5L‰âH‰îèáxÿÿCÆD=HƒÄL‰è[]A\A]A^A_Ãf„H�=G éwÿÿ@HƒÄH‰ïH‰Ö[]A\A]A^A_é×xÿÿ€HƒÄ[]A\A]A^A_éÝvÿÿff.„f�óúU1ÒH‰ýSH‰óHƒìH…öt H‰÷è±tÿÿH‰ÂHƒÄH‰ÞH‰ï[]éÝþÿÿff.„f�óúATUSHƒìPH‰t$(H‰T$0H‰L$8L‰D$@L‰L$HdH‹%(H‰D$1ÀH�D$pÇ$H‰D$H�D$ H‰D$H…ÿ„H‰ýè/tÿÿH‹\$I‰Äë/D‰ÂƒÀHÚ‰$H‹:H…ÿt5ètÿÿL‰âH÷ÒH9‚ÁIÄ‹$ƒø/vÎH‹T$H‹:H�BH‰D$H…ÿuËI�|$èÎrÿÿH‰ÃH…ÀtnH‰îH‰ßèûqÿÿH�L$pÇ$H‰L$H�L$ H‰L$ë#fD‰ÑHL$ƒÂH‹1‰$H…öt+H‰Çè»qÿÿ‹$ƒú/vÛH‹L$H‹1H�QH‰T$H…öuÚDH‰ØH‹\$dH3%(u,HƒÄP[]A\Ã@1ÛëÜ@¿è&rÿÿH‰ÃH…ÀtÆÆëÁè$uÿÿ@óúAVAUATUSH…ÿ„ÛH‰ûI‰ôL�nI‰ÖH…Ò„}H‰×èÝrÿÿJ�<(H‰ÅèÑqÿÿH…À„8H‰êL‰öH‰ÇèZvÿÿI‰ÀH�(J�4#H9óƒýH�=O%A¹ÿÿÿÿ뀈H‰ËHƒÀH9óƒÕ¶H�K€ú\uâ¶K€ùx‡å¶ÑHc—Hú>ÿℾSD�RЉÑA€ú †ìD�RŸA€ú†@ƒéAƒê7€ùACÑD¾SE�ZÐD‰ÑA€û † E�ZŸA€û†ƒéA€ù‡±A�JÉ…Òˆ¥…Ɉ�ÁâHƒÃHƒÀ ʈPÿéAÿÿÿ„Æ HƒÃHƒÀé)ÿÿÿÆ HƒÃHƒÀéÿÿÿÆ HƒÃHƒÀé ÿÿÿÆ HƒÃHƒÀéùþÿÿÆ HƒÃHƒÀééþÿÿÆ HƒÃHƒÀéÙþÿÿÆHƒÃHƒÀéÉþÿÿÆHƒÃHƒÀé¹þÿÿÆ\HƒÃHƒÀé©þÿÿD¾[D¾ÑAƒê0D‰Úƒê0€ú‡”¾kAƒë0‰êƒê0€ú‡~ƒí0E…Ûxv…íxrAÁâAÁãHƒÃHƒÀE ÓD Ý@ˆhÿéLþÿÿÆ'HƒÃHƒÀé9þÿÿÆ"HƒÃHƒÀé)þÿÿÆ\HƒÀÆL‰À[]A\A]A^Ãf.„E1À[]L‰ÀA\A]A^Ã�Æ\HƒÃHƒÀˆHÿéæýÿÿDL‰ïè`oÿÿH…ÀtËI‰Àé ýÿÿƒê0é'þÿÿ„º\xHƒÃHƒÀf‰Pþé£ýÿÿf.„H� É$ºH�5"H�=Üèñßÿÿ�A�JÐé þÿÿA�J©éþÿÿƒêWéÅýÿÿfDóú1ÒéÅüÿÿDóúAVAUATUSH…ÿ„ëI‰ôH…ö„ÿH‰ÕH…Ò„H‹H�5ò!H…ÛHDßH‰ßèêpÿÿHþ3@„ö„“@€þ'tUI‰ÞL�-Ä!@€þ"„é�@€þ\„¶L‰ïè¾pÿÿH…Àu IƒÆA¾6@„öuÜL‰ðH)ØI‰$H‰ØL‰u[]A\A]A^Ãf�¶SH�sH‰ð„Òu)H‰ñ1ÒëCf.„€ú'„‡¶PH�H„ÒtH‰È€ú\uã€x„€¶PH�H„ÒuâH‰ÊH)òI‰$€9H‰óHƒÙÿH‰ØH‰M[]A\A]A^Ãf„A€~„3A¾vI�FI‰Æ@„ö… ÿÿÿé?ÿÿÿ¶CH�K„À„!H‰Ê<\tQ<"tfH�B¶R„Òt€ú\t?€ú"t HƒÀ¶„ÒuëH‰ÆH)ÎI‰4$€8H‰ËHƒØÿH‰EH‰Ø[]A\A]A^ÄH‰Ð€x„³H�P¶@„Àu’H‰ÖH‰ÐH)Îë¶@1ÛH‰Ø[]A\A]A^Ãf.„H� a"º¥H�5ÏH�=÷è¡Ýÿÿ�H� A"º¦H�5¯H�=Ïè�Ýÿÿ�H� !"º§H�5�H�=ÉèaÝÿÿ�H‰ÂH‰ÁH)òé›þÿÿIƒÆéþÿÿH�HéƒþÿÿHƒÀé ÿÿÿH‰È1öéÿÿÿff.„f�óúAUATUSHƒìH‹H…ÛHD߀;tC€?t>I‰õH‰ßH‰ÖH‰ÍI‰ÔèZnÿÿL‰æHÃH‰ßèìoÿÿI‰EHØH‰EHƒÄH‰Ø[]A\A]ÃHƒÄ1ÛH‰Ø[]A\A]Ãóú�GÐ< v%�GŸ<v�G¿<w'@¾ÿ�GÉÀ@¾ÿ�G©Ã@¾ÿ�GÐĸÿÿÿÿÃf.„óú�GÐ<w @¾ÿ�GÐÃD¸ÿÿÿÿÃf�óúAWI‰×AVI‰öAUA‰ýATL�%ôF UH�-ôF SL)åHƒìèocÿÿHÁýt1Û€L‰úL‰öD‰ïAÿÜHƒÃH9ÝuêHƒÄ[]A\A]A^A_Ãff.„óúÃóúHƒìHƒÄÃ/sys/devicesmodaliasinstall/dracut-install.c2madfhlL:oD:HRp:P:s:S:N:DRACUT_FIRMWARE_PATHDRACUT_FIRMWARE_PATH=%sNo SOURCE argument given%s/%sOut of memory!stat(%s) != 0find_binary(%s) == %s%s/lib/dracut/hostonly-filesa%s dracut_install('%s', '%s')hash hit items for '%s'ERROR: stat '%s': %m'%s' already existsdest dir '%s' does not existmkdir '%s''%s' install errorlstat '%s': %mln -s '%s' '%s'ERROR: ln -s '%s' '%s': %mdracut_install ret = %dcp '%s' '%s'Failed to chown %s: %m-fL--sparse=auto--reflink=autocp--preserve=mode,timestampscp ret = %d.soScript install: '%s'ERROR: failed to install '%s'ldd %s 2>&1ldd: '%s'Not a valid dynamic programcannot execute binary filenot a dynamic executableloader cannot load itselfnot regular filecannot read headercannot be preloaded=>Lib install: '%s'.so.glibc-hwcaps/lib/fipscheck/lib64/fipscheck/lib/hmaccalc/lib64/hmaccalc%s/.%s.hmac%s/%s.hmachmac cp '%s' '%s')firmwareFirmware %sdracut_install '%s' OKdracut_install '%s' '%s' OKdracut_install '%s' '%s'dracut_install '%s' ERROR/lib/modules/DRACUT_KERNEL_MODALIASESHandle module '%s'Failed to find module '%s' %sERROR: installing module '%s'Handling =%s%s/kernel/%s%s/extra/%s%s/updates/%sSkipping %sIgnoring %sHandling %sFTS ERROR: %m.ko.ko.xz.ko.gzFailed to find module '%s'ERROR: installing '%s'PATH is not setDESTROOTDIROut of memory%s/%d.logresolve_deps('%s')Handle '%s'dracut_install '%s'helpversiondebugverboselddresolvelazyoptionalhostonlyallmodulefipsdestrootdirlogdirmod-filter-pathmod-filter-nopathmod-filter-symbolmod-filter-nosymbolmod-filter-nonamesilentkerneldirfirmwaredirsCould not get list of loaded modules: %m. Switching to non-hostonly mode.Usage: %s -D DESTROOTDIR [OPTION]... -a SOURCE... or: %s -D DESTROOTDIR [OPTION]... SOURCE DEST or: %s -D DESTROOTDIR [OPTION]... -m KERNELMODULE [KERNELMODULE …] Install SOURCE to DEST in DESTROOTDIR with all needed dependencies. KERNELMODULE can have the format: with a leading / =[/…] like '=drivers/hid' -D --destrootdir Install all files to DESTROOTDIR as the root -a --all Install all SOURCE arguments to DESTROOTDIR -o --optional If SOURCE does not exist, do not fail -d --dir SOURCE is a directory -l --ldd Also install shebang executables and libraries -L --logdir Log files, which were installed from the host to -R --resolvelazy Only install shebang executables and libraries for all SOURCE files -H --hostonly Mark all SOURCE files as hostonly -f --fips Also install all '.SOURCE.hmac' files --module,-m Install kernel modules, instead of files --kerneldir Specify the kernel module directory --firmwaredirs Specify the firmware directory search path with : separation --silent Don't display error messages for kernel module install --modalias Only generate module list from /sys/devices modalias list -o --optional If kernel module does not exist, do not fail -p --mod-filter-path Filter kernel modules by path regexp -P --mod-filter-nopath Exclude kernel modules by path regexp -s --mod-filter-symbol Filter kernel modules by symbol regexp -S --mod-filter-nosymbol Exclude kernel modules by symbol regexp -N --mod-filter-noname Exclude kernel modules by name regexp -v --verbose Show more output --debug Show debug output --version Show package version -h --help Show this help Module path filter %s is not a regular expressionModule symbol filter %s is not a regular expressionEnvironment variable DRACUT_FIRMWARE_PATH is not setconvert_abs_rel(): target '%s' directory has no realpath.Path %s matched exclusion filterPath %s matched inclusion filterCould not open '%s' for writing.Could not append '%s' to logfile '%s': %mhash hit items_failed for '%s''%s' already exists, but checking for any depsERROR: failed to create directory '%s'--preserve=mode,xattr,timestampsFailed: cp --reflink=auto --sparse=auto --preserve=mode,xattr,timestamps -fL %s %sFailed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps -fL %s %syou do not have execution permissionERROR: failed to install '%s' for '%s'could not get modinfo from '%s': %s Possible missing firmware %s for kernel module %sdracut_install '%s' '%s' ERRORdracut_install '%s' is excludeddracut_install '%s' not hostonlykmod_module_get_dependency_symbols failedModule %s: symbol %s matched exclusion filterModule %s: symbol %s matched inclusion filterNo symbol or path match for '%s'Adding module '%s' to hostonly module listFailed to lookup modules path '%s': %mFailed to get name for module '%s'3 Failed to lookup alias '%s': %dFailed to lookup alias '%s': %mEnvironment DESTROOTDIR or argument -D is not set!Environment DESTROOTDIR or argument -D is set to '/'!Environment DESTROOTDIR or argument -D is set to '%s': %mCould not open %s for logging: %mERROR: installing '%s' to '%s''qÿÿrÿÿrÿÿrÿÿqÿÿrÿÿrÿÿrÿÿqÿÿrÿÿ×pÿÿrÿÿ«pÿÿrÿÿŸpÿÿspÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿgpÿÿrÿÿrÿÿ[pÿÿrÿÿOpÿÿrÿÿÚqÿÿrÿÿrÿÿrÿÿCpÿÿ7pÿÿrÿÿ+pÿÿÿoÿÿrÿÿrÿÿÓoÿÿrÿÿrÿÿÄoÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿrÿÿ´oÿÿ¨oÿÿyoÿÿdoÿÿHoÿÿn_entries >= 1!h->iterate_list_headihashmap_copyhashmap_move_onehashmap_movehashmap_mergehashmap_iterate_backwardshashmap_iteratehashmap_replacelink_entryhash_scanhashmap_putunlink_entryremove_entryhashmap_ensure_allocateddracut-install: /dev/consoleinstall/log.c(level & 0x07) == leveltarget >= 0target < _LOG_TARGET_MAXDRACUT_LOG_TARGETDRACUT_LOG_LEVELsafenullFailed to open /dev/console for logging: %sSuccessfully opened /dev/console for logging.Assertion '%s' failed at %s:%u, function %s(). Aborting.Code should not be reached '%s' at %s:%u, function %s(). Aborting.Failed to parse log target %s. Ignoring.Failed to parse log level %s. Ignoring.log_target_from_stringlog_parse_environmentlog_set_targetlog_set_max_levellog_open_consoleinstall/strv.cs || l == 0i == cstrv_parse_nulstrstrv_remove_prefixstrv_removestrv_split_newlinesstrv_split_quotedstrv_splitstrv_find_prefixstrv_findinstall/util.cpostfixfd >= 0close_nointr(fd) == 0ret_uemergstate alertcriterrwarningnoticeinfo(r = sysconf(_SC_PAGESIZE)) > 0 ÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿ�ÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿ€ÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿ Üÿÿ Üÿÿ Üÿÿ Üÿÿ Üÿÿ Üÿÿ Üÿÿ ÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÜÿÿðÛÿÿÐÜÿÿÐÜÿÿÐÜÿÿàÛÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÜÿÿÐÛÿÿÐÜÿÿÐÜÿÿÐÜÿÿÀÛÿÿ°Ûÿÿ ÛÿÿÐÜÿÿ�ÛÿÿÐÜÿÿÛÿÿsplit_quotedcunescape_length_with_prefixlog_level_from_stringsafe_atouclose_nointr_nofailclose_nointrendswithpage_size;`‹,Bÿÿ”|Hÿÿ¼¼NÿÿœOÿÿ€5Oÿÿ�WOÿÿ`Pÿÿ´êPÿÿ Qÿÿ` :Qÿÿ¸ ¡Qÿÿ �Rÿÿ„ ÄSÿÿP ìSÿÿ¬ ]ÿÿ| ^ÿÿÔ\^ÿÿ\bÿÿ´ŒbÿÿÌÜfÿÿìjÿÿ˜kÿÿ´ÜlÿÿŒmÿÿ<¼nÿÿ¨,oÿÿÔL|ÿÿxl„ÿÿÌl‡ÿÿ œŠÿÿx Œ�ÿÿÐ ,”ÿÿ0 œ£ÿÿl ¬£ÿÿ€ Ì£ÿÿ” ¬¤ÿÿ° Ü¥ÿÿÌ Œ¦ÿÿø ü¦ÿÿ0 ¼§ÿÿh ¨ÿÿˆ <¨ÿÿœ L¨ÿÿ° L©ÿÿì ¬©ÿÿ Ì©ÿÿ$ ,ªÿÿP lªÿÿl Œ«ÿÿ¼ ,¬ÿÿø ¬¬ÿÿ0,­ÿÿd®ÿÿ¸¯ÿÿ ¬¯ÿÿHL°ÿÿ`ܰÿÿx\±ÿÿ´Œ±ÿÿȼ±ÿÿÜì±ÿÿð²ÿÿL²ÿÿ0l²ÿÿDŒ²ÿÿXü²ÿÿ„ü³ÿÿÄ µÿÿ|µÿÿ@<¶ÿÿ„|·ÿÿÔ,¸ÿÿ |¸ÿÿL̸ÿÿpܸÿÿ„ì¸ÿÿ˜¹ÿÿ¬ì¹ÿÿȬºÿÿì̺ÿÿüºÿÿ$,»ÿÿ8L»ÿÿT¬»ÿÿpÜ»ÿÿŒì»ÿÿ ü»ÿÿ´,¼ÿÿÈü¼ÿÿ,½ÿÿ ܽÿÿDì½ÿÿX,¾ÿÿ€\¾ÿÿ”ܾÿÿÐ|¿ÿÿ œ¿ÿÿ4<Àÿÿl\Àÿÿ€ìÁÿÿ´¬ÂÿÿМÃÿÿ,œÄÿÿŒ ÆÿÿØ|Çÿÿ$üÇÿÿP,ÉÿÿœÊÿÿ œÊÿÿDìÊÿÿ| Ëÿÿ�¼ËÿÿÐ ÌÿÿøÌÌÿÿDlÎÿÿ¨ÏÿÿÔ¬Ïÿÿ$ìÏÿÿ@Ðÿÿ\|ÐÿÿxÑÿÿ¨|ÑÿÿÌÌÑÿÿølÒÿÿDœÒÿÿ\ìÒÿÿxüÓÿÿ¬,ÔÿÿÀüÔÿÿüìÕÿÿ”,Öÿÿ¼¬×ÿÿðÜÚÿÿ@ìÚÿÿTŒÝÿÿÌüÝÿÿLÞÿÿ,lÞÿÿDÜÞÿÿŒzRx �˜Xÿÿ/D$4�=ÿÿPFJ w€?:*3$"\¸Cÿÿ@ t0YÿÿGFƒwCÃCƒCzPLRx›Ñ)  �P$À!÷ÅhüÅSÆdÆ ÆvÆlÆR"Æo+ÆH4Æa8Æm?ÆfDÆDPÆLWÆpgÆPyÆs‹ÆSŸÆNAÀ±Æ¸ÆÂÆÏÚ9ÂEÛJÛ=ÞNÞTÞYÞ]ÞeÞlÞÆp¢ @# À°!¸!õþÿohð   È � !` àxh ûÿÿoþÿÿo˜ÿÿÿoðÿÿo¸ùÿÿo&€ !p#€#�# #°#À#Ð#à#ð#$$ $0$@$P$`$p$€$�$ $°$À$Ð$à$ð$%% %0%@%P%`%p%€%�% %°%À%Ð%à%ð%&& &0&@&P&`&p&€&�& &°&À&Ð&à&ð&'' '0'@'P'`'p'€'�' '°'À'Ð'à'ð'(( (0(@(P(`(p(€(�( (°(À(Ð(à(ð()) )0)@)P)`)p)€)�) )ÿÿÿÿGA$3a1@#> GA$3p1113ð/ž¿GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*…GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3a1€>%À GA$3p1113ЄÀGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*ЄI± GA*GOW*…GA* ¿À GA*GOW* GA*FORTIFY@?ÀGA+GLIBCXX_ASSERTIONS GA*FORTIFYЄž¿GA+GLIBCXX_ASSERTIONSdracut-install-049-246.git20260728.el8_10.x86_64.debugÞ*¬ý7zXZæÖ´F!t/å£à%g _]?‘E„h=‰¦ÚŠáƒ2NÙcöøÃ }ßç ˆMâšµ8Ÿ9œµi°Cu]E7ÁîCÖXð¼�:eïå 5ä§,ªoê£=õÍDÒåãyþÖ¤• #s�؈6¸÷Ë YĦ´â ±²{$s)R˜ v8pœo§×„ÞÁ…¬�xÇOK¡Ú¸ÀÁžöXñ«>üÏ-‘[‰˜TÕ¡�# y• b<¥Ë×™ùk�ü·ZòË�µF,<0¬ 4ŽxØã3—3ͰPº6ʬÈý© 9ýMôÛþÞ\þÏpô}þ !åò=�¾^yNî¡"#t_;a…ÑÓ¹÷¸{éÅül/z²sŽÜµóLÙ¹]¼Ôñ€Ò·Ì�@¦¥žöÝ(]–sˆŠðÊòÕ0„_ —ª[°Šå³]ìºfÁCéQ¹¡r×Y’m‹·¦²·£ý¾DTO‘°%p6FÙ‰ÔŽ2³>̱b?gz´Öó3ôöf|ù¬ßB ö€:�Ì£=!Ü�šP[ Ñ0C‚“¦FFö¾ –¦>(� ¨D ¦ÃŸbQÜ,™4pê(0ô/û¢Ä¥ø![ËbšHFS~ÈÆHñlîúaN³'¤lÒ-O¸Ö1½…À¸+@ÈeÑb…Ñ6/õ×V>‹tøŠ�ù"²W‘GgÓ+�|¶d”Ú¨#éÅt !tg–žj»L¢&^v5-¡L Ù¼ÓLؽ|»›–äO£Æ»qãÏhd1¦PòöÇfâ»ÒxŒˆÏp³¢ íÝhš7�ðç1ÞE6ŽÝ²‘,·Šk1dÓº©ZÊ�Ö`šï ŒÑ’óÈü•GØD!ºeº3K,@¨æÑ�þSæNEÆúË›šv7ä8µÕ.sîjLiˆêÿØõÆýò�‰ß²U’7<Š!}npùÂ܆Yob�×�“ð Í<‹]o$"=n¤v§ì�p±¿Ì]Ëïó¿9Òñæ¤-pUP­©W¬´�®™øÃèæŽÏ{U„Œ™­Ru¯NŒJ@QWµõq¼WËm×b‘¢8…Œš!\òëÝǚîŸJiÄŽÔ*¦?un¤r*øœ·t€ŸÚdnB/žH¦Åq€´‹ó£o²‡`éìŽÈãr'åLMÕÒªÑk¢y´ç�9z´3ï›Þ%¬]5t嚺NýÇSfÞŒcQ“T×Ùäð¯G®J¨GHèb=¹Ã•;Š'Tû¾õÖß³üVôL¡äBüf‡”tö¨)p™Á%krHuŒ§³ý¹GéP>(èuSxéºÌ­bí#Â1Yo¹“I<˜?>yŠKqBCÙêMƒ|ñ…¦0qØùTÑÐ @N|×ÄYÞ²lYŠÔÀS[—ÓÖ*Њ6ŠÈƒ‰Û,t=Fõ­çb­YNÅÚgpïæëÎõØ‚×Ø_Y g!Ëä{¦i²:™ìÿx-èàVäþ,m~ªS¢I£¸„�Û¡+ã¯'„ÜXÚd�è¼8vsÊ]O–05½i…°iA¦„ ˆeù®Wú…”vdÇýäÝ63ÎIðN ½ôØšX>¥üt�ì†.Ø]OÛ(|vUP,bBž…*n[g~j˜Íªm§ƒ¹°SH8™ÚOÂßãð|zŒ{ò>V·IþÉÏ1ò«ÜÔ{ _à,�ï– ¹rkŸO®æÃÍ�š¿<û>Û¢p‰5„÷Ozà¹;nÙA€p¸c~9Ê  ÇÏ}Ùli»¢X‡dÕ4ëâÇ"L«ö9ä6™f}æ q–D�Œe±ÍOŸ$ö¼-Üî(õù77éIž›§M¨¯zmD®I#LTK¯ÿgºJn5/‚ߺ~ ½¸d8¶¦,Ð/"„˜ºûÚ¿«÷Á]dž6àìPLø•ÖD5VÙ*ŽtŸ=â=?æjãЯìK¸È–¶6‡¨¦Ì%>`pqòwBÆJòêñmoG{Û¿Ò+q.brî`Þ|ó~Kvš|t‰ à 7dV„,.Õü˜ñ­.SÛÃÕçì5^ž[ÿ=w‘}çQƒ ·ç…pŽ‰Ò©Vö�5¬beVAÁgÓŸî3EnYšwO–g'šÃ£jxÌ…c¬E`dž<V49‡evl¸Ÿk÷œ(OXLÊ5ºp€FNÚ°�¿ÍßÏ�¹ƒv©ßŽ sô›ŽìR/ðUgèml=¨3Ì;;œ"ß5š®¬á½뉩ëXÂÜNr<†~„âÕþ¨×�BØËN¦GÆH|;žÂYÝ6Cýê.qC_Šu[6©œ±5œËMŸU •œ¯½ìén'\],§…´©†ÉrçÈm ülQˆŸÄµóý-['Џ¼ÊÛÃ?ñCå59ÊV è]ƒSh�uã}/yV­[1蛼ÇEK2?¿Ž³Z-|šçú<)TéTÁ/Æ„éÊÖ¶]YOÖûèJ$˜æÈ±ÄgûYZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.gcc_except_table.tbss.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata àà &   4@@$Göÿÿohh4Q   P Yð ð Èaÿÿÿo¸¸Ünþÿÿo˜˜à}xxh‡Bàà` ‘@#@#Œ`#`#P—°)°)@ ð/ð/%�¦ÀÀ ¬0À0À!´4á4ád˜å˜å@ÌØÿØÿèÞ°!°ä°!°ð¸!¸üÀ!ÀÀ € !€ � !� `!  !  "(a Ü8ü<G8  ØVPKb¶N]D A2**dracut-version.shnu„[µü¤DRACUT_VERSION=049-246.git20260728.el8_10 PKb¶N]Ñ×i�ŒTŒTdracut-functions.shnuȯÝí#!/bin/bash # # functions used by dracut and other tools. # # Copyright 2005-2009 Red Hat, Inc. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # export LC_MESSAGES=C # is_func # Check whether $1 is a function. is_func() { [[ "$(type -t "$1")" = "function" ]] } # Generic substring function. If $2 is in $1, return 0. strstr() { [[ $1 = *"$2"* ]]; } # Generic glob matching function. If glob pattern $2 matches anywhere in $1, OK strglobin() { [[ $1 = *$2* ]]; } # Generic glob matching function. If glob pattern $2 matches all of $1, OK strglob() { [[ $1 = $2 ]]; } # returns OK if $1 contains literal string $2 at the beginning, and isn't empty str_starts() { [ "${1#"$2"*}" != "$1" ]; } # returns OK if $1 contains literal string $2 at the end, and isn't empty str_ends() { [ "${1%*"$2"}" != "$1" ]; } # find a binary. If we were not passed the full path directly, # search in the usual places to find the binary. find_binary() { if [[ -z ${1##/*} ]]; then if [[ -x $1 ]] || { [[ "$1" == *.so* ]] && ldd "$1" &>/dev/null; }; then printf "%s\n" "$1" return 0 fi fi type -P "${1##*/}" } ldconfig_paths() { ldconfig -pN 2>/dev/null | grep -E -v '/(lib|lib64|usr/lib|usr/lib64)/[^/]*$' | sed -n 's,.* => \(.*\)/.*,\1,p' | sort | uniq } # Version comparision function. Assumes Linux style version scheme. # $1 = version a # $2 = comparision op (gt, ge, eq, le, lt, ne) # $3 = version b vercmp() { local _n1=(${1//./ }) _op=$2 _n2=(${3//./ }) _i _res for ((_i=0; ; _i++)) do if [[ ! ${_n1[_i]}${_n2[_i]} ]]; then _res=0 elif ((${_n1[_i]:-0} > ${_n2[_i]:-0})); then _res=1 elif ((${_n1[_i]:-0} < ${_n2[_i]:-0})); then _res=2 else continue fi break done case $_op in gt) ((_res == 1));; ge) ((_res != 2));; eq) ((_res == 0));; le) ((_res != 1));; lt) ((_res == 2));; ne) ((_res != 0));; esac } # Create all subdirectories for given path without creating the last element. # $1 = path mksubdirs() { [[ -e ${1%/*} ]] || mkdir -m 0755 -p -- "${1%/*}" } # Function prints global variables in format name=value line by line. # $@ = list of global variables' name print_vars() { local _var _value for _var in "$@" do eval printf -v _value "%s" \""\$$_var"\" [[ ${_value} ]] && printf '%s="%s"\n' "$_var" "$_value" done } # normalize_path # Prints the normalized path, where it removes any duplicated # and trailing slashes. # Example: # $ normalize_path ///test/test// # /test/test normalize_path() { shopt -q -s extglob set -- "${1//+(\/)//}" shopt -q -u extglob printf "%s\n" "${1%/}" } # convert_abs_rel # Prints the relative path, when creating a symlink to from . # Example: # $ convert_abs_rel /usr/bin/test /bin/test-2 # ../../bin/test-2 # $ ln -s $(convert_abs_rel /usr/bin/test /bin/test-2) /usr/bin/test convert_abs_rel() { local __current __absolute __abssize __cursize __newpath local -i __i __level set -- "$(normalize_path "$1")" "$(normalize_path "$2")" # corner case #1 - self looping link [[ "$1" == "$2" ]] && { printf "%s\n" "${1##*/}"; return; } # corner case #2 - own dir link [[ "${1%/*}" == "$2" ]] && { printf ".\n"; return; } IFS="/" __current=($1) IFS="/" __absolute=($2) __abssize=${#__absolute[@]} __cursize=${#__current[@]} while [[ "${__absolute[__level]}" == "${__current[__level]}" ]] do (( __level++ )) if (( __level > __abssize || __level > __cursize )) then break fi done for ((__i = __level; __i < __cursize-1; __i++)) do if ((__i > __level)) then __newpath=$__newpath"/" fi __newpath=$__newpath".." done for ((__i = __level; __i < __abssize; __i++)) do if [[ -n $__newpath ]] then __newpath=$__newpath"/" fi __newpath=$__newpath${__absolute[__i]} done printf "%s\n" "$__newpath" } # get_fs_env # Get and the ID_FS_TYPE variable from udev for a device. # Example: # $ get_fs_env /dev/sda2 # ext4 get_fs_env() { local evalstr local found [[ $1 ]] || return unset ID_FS_TYPE ID_FS_TYPE=$(blkid -u filesystem -o export -- "$1" \ | while read line || [ -n "$line" ]; do if [[ "$line" == TYPE\=* ]]; then printf "%s" "${line#TYPE=}"; exit 0; fi done) if [[ $ID_FS_TYPE ]]; then printf "%s" "$ID_FS_TYPE" return 0 fi return 1 } # get_maj_min # Prints the major and minor of a device node. # Example: # $ get_maj_min /dev/sda2 # 8:2 get_maj_min() { local _majmin local _out if [[ $get_maj_min_cache_file ]]; then _out="$(grep -m1 -oP "^$1 \K\S+$" "$get_maj_min_cache_file")" fi if ! [[ "$_out" ]]; then _majmin="$(stat -L -c '%t:%T' "$1" 2>/dev/null)" _out="$(printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))")" if [[ $get_maj_min_cache_file ]]; then echo "$1 $_out" >> "$get_maj_min_cache_file" fi fi echo -n "$_out" } # get_devpath_block # get the DEVPATH in /sys of a block device get_devpath_block() { local _majmin _i _majmin=$(get_maj_min "$1") for _i in /sys/block/*/dev /sys/block/*/*/dev; do [[ -e "$_i" ]] || continue if [[ "$_majmin" == "$(<"$_i")" ]]; then printf "%s" "${_i%/dev}" return 0 fi done return 1 } # get a persistent path from a device get_persistent_dev() { local i _tmp _dev _pol _dev=$(get_maj_min "$1") [ -z "$_dev" ] && return if [[ -n "$persistent_policy" ]]; then _pol="/dev/disk/${persistent_policy}/*" else _pol= fi for i in \ $_pol \ /dev/mapper/* \ /dev/disk/by-uuid/* \ /dev/disk/by-label/* \ /dev/disk/by-partuuid/* \ /dev/disk/by-partlabel/* \ /dev/disk/by-id/* \ /dev/disk/by-path/* \ ; do [[ -e "$i" ]] || continue [[ $i == /dev/mapper/control ]] && continue [[ $i == /dev/mapper/mpath* ]] && continue _tmp=$(get_maj_min "$i") if [ "$_tmp" = "$_dev" ]; then printf -- "%s" "$i" return fi done printf -- "%s" "$1" } expand_persistent_dev() { local _dev=$1 case "$_dev" in LABEL=*) _dev="/dev/disk/by-label/${_dev#LABEL=}" ;; UUID=*) _dev="${_dev#UUID=}" _dev="${_dev,,}" _dev="/dev/disk/by-uuid/${_dev}" ;; PARTUUID=*) _dev="${_dev#PARTUUID=}" _dev="${_dev,,}" _dev="/dev/disk/by-partuuid/${_dev}" ;; PARTLABEL=*) _dev="/dev/disk/by-partlabel/${_dev#PARTLABEL=}" ;; esac printf "%s" "$_dev" } shorten_persistent_dev() { local _dev="$1" case "$_dev" in /dev/disk/by-uuid/*) printf "%s" "UUID=${_dev##*/}";; /dev/disk/by-label/*) printf "%s" "LABEL=${_dev##*/}";; /dev/disk/by-partuuid/*) printf "%s" "PARTUUID=${_dev##*/}";; /dev/disk/by-partlabel/*) printf "%s" "PARTLABEL=${_dev##*/}";; *) printf "%s" "$_dev";; esac } # find_block_device # Prints the major and minor number of the block device # for a given mountpoint. # Unless $use_fstab is set to "yes" the functions # uses /proc/self/mountinfo as the primary source of the # information and only falls back to /etc/fstab, if the mountpoint # is not found there. # Example: # $ find_block_device /usr # 8:4 find_block_device() { local _dev _majmin _find_mpt _find_mpt="$1" if [[ $use_fstab != yes ]]; then [[ -d $_find_mpt/. ]] findmnt -e -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | { \ while read _majmin _dev || [ -n "$_dev" ]; do if [[ -b $_dev ]]; then if ! [[ $_majmin ]] || [[ $_majmin == 0:* ]]; then _majmin=$(get_maj_min $_dev) fi if [[ $_majmin ]]; then printf "%s\n" "$_majmin" else printf "%s\n" "$_dev" fi return 0 fi if [[ $_dev = *:* ]]; then printf "%s\n" "$_dev" return 0 fi done; return 1; } && return 0 fi # fall back to /etc/fstab findmnt -e --fstab -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | { \ while read _majmin _dev || [ -n "$_dev" ]; do if ! [[ $_dev ]]; then _dev="$_majmin" unset _majmin fi if [[ -b $_dev ]]; then [[ $_majmin ]] || _majmin=$(get_maj_min $_dev) if [[ $_majmin ]]; then printf "%s\n" "$_majmin" else printf "%s\n" "$_dev" fi return 0 fi if [[ $_dev = *:* ]]; then printf "%s\n" "$_dev" return 0 fi done; return 1; } && return 0 return 1 } # find_mp_fstype # Echo the filesystem type for a given mountpoint. # /proc/self/mountinfo is taken as the primary source of information # and /etc/fstab is used as a fallback. # No newline is appended! # Example: # $ find_mp_fstype /;echo # ext4 find_mp_fstype() { local _fs if [[ $use_fstab != yes ]]; then findmnt -e -v -n -o 'FSTYPE' --target "$1" | { \ while read _fs || [ -n "$_fs" ]; do [[ $_fs ]] || continue [[ $_fs = "autofs" ]] && continue printf "%s" "$_fs" return 0 done; return 1; } && return 0 fi findmnt --fstab -e -v -n -o 'FSTYPE' --target "$1" | { \ while read _fs || [ -n "$_fs" ]; do [[ $_fs ]] || continue [[ $_fs = "autofs" ]] && continue printf "%s" "$_fs" return 0 done; return 1; } && return 0 return 1 } # find_dev_fstype # Echo the filesystem type for a given device. # /proc/self/mountinfo is taken as the primary source of information # and /etc/fstab is used as a fallback. # No newline is appended! # Example: # $ find_dev_fstype /dev/sda2;echo # ext4 find_dev_fstype() { local _find_dev _fs _find_dev="$1" if ! [[ "$_find_dev" = /dev* ]]; then [[ -b "/dev/block/$_find_dev" ]] && _find_dev="/dev/block/$_find_dev" fi if [[ $use_fstab != yes ]]; then findmnt -e -v -n -o 'FSTYPE' --source "$_find_dev" | { \ while read _fs || [ -n "$_fs" ]; do [[ $_fs ]] || continue [[ $_fs = "autofs" ]] && continue printf "%s" "$_fs" return 0 done; return 1; } && return 0 fi findmnt --fstab -e -v -n -o 'FSTYPE' --source "$_find_dev" | { \ while read _fs || [ -n "$_fs" ]; do [[ $_fs ]] || continue [[ $_fs = "autofs" ]] && continue printf "%s" "$_fs" return 0 done; return 1; } && return 0 return 1 } # find_mp_fsopts # Echo the filesystem options for a given mountpoint. # /proc/self/mountinfo is taken as the primary source of information # and /etc/fstab is used as a fallback. # No newline is appended! # Example: # $ find_mp_fsopts /;echo # rw,relatime,discard,data=ordered find_mp_fsopts() { if [[ $use_fstab != yes ]]; then findmnt -e -v -n -o 'OPTIONS' --target "$1" 2>/dev/null && return 0 fi findmnt --fstab -e -v -n -o 'OPTIONS' --target "$1" } # find_dev_fsopts # Echo the filesystem options for a given device. # /proc/self/mountinfo is taken as the primary source of information # and /etc/fstab is used as a fallback. # Example: # $ find_dev_fsopts /dev/sda2 # rw,relatime,discard,data=ordered find_dev_fsopts() { local _find_dev _opts _find_dev="$1" if ! [[ "$_find_dev" = /dev* ]]; then [[ -b "/dev/block/$_find_dev" ]] && _find_dev="/dev/block/$_find_dev" fi if [[ $use_fstab != yes ]]; then findmnt -e -v -n -o 'OPTIONS' --source "$_find_dev" 2>/dev/null && return 0 fi findmnt --fstab -e -v -n -o 'OPTIONS' --source "$_find_dev" } # finds the major:minor of the block device backing the root filesystem. find_root_block_device() { find_block_device /; } # for_each_host_dev_fs # Execute " " for every " " pair found # in ${host_fs_types[@]} for_each_host_dev_fs() { local _func="$1" local _dev local _ret=1 [[ "${#host_fs_types[@]}" ]] || return 2 for _dev in "${!host_fs_types[@]}"; do $_func "$_dev" "${host_fs_types[$_dev]}" && _ret=0 done return $_ret } host_fs_all() { printf "%s\n" "${host_fs_types[@]}" } # Walk all the slave relationships for a given block device. # Stop when our helper function returns success # $1 = function to call on every found block device # $2 = block device in major:minor format check_block_and_slaves() { local _x [[ -b /dev/block/$2 ]] || return 1 # Not a block device? So sorry. if ! lvm_internal_dev $2; then "$1" $2 && return; fi check_vol_slaves "$@" && return 0 if [[ -f /sys/dev/block/$2/../dev ]] && [[ /sys/dev/block/$2/../subsystem -ef /sys/class/block ]]; then check_block_and_slaves $1 $(<"/sys/dev/block/$2/../dev") && return 0 fi [[ -d /sys/dev/block/$2/slaves ]] || return 1 for _x in /sys/dev/block/$2/slaves/*; do [[ -f $_x/dev ]] || continue [[ $_x/subsystem -ef /sys/class/block ]] || continue check_block_and_slaves $1 $(<"$_x/dev") && return 0 done return 1 } check_block_and_slaves_all() { local _x _ret=1 [[ -b /dev/block/$2 ]] || return 1 # Not a block device? So sorry. if ! lvm_internal_dev $2 && "$1" $2; then _ret=0 fi check_vol_slaves_all "$@" && return 0 if [[ -f /sys/dev/block/$2/../dev ]] && [[ /sys/dev/block/$2/../subsystem -ef /sys/class/block ]]; then check_block_and_slaves_all $1 $(<"/sys/dev/block/$2/../dev") && _ret=0 fi [[ -d /sys/dev/block/$2/slaves ]] || return 1 for _x in /sys/dev/block/$2/slaves/*; do [[ -f $_x/dev ]] || continue [[ $_x/subsystem -ef /sys/class/block ]] || continue check_block_and_slaves_all $1 $(<"$_x/dev") && _ret=0 done return $_ret } # for_each_host_dev_and_slaves # Execute " " for every "" found # in ${host_devs[@]} and their slaves for_each_host_dev_and_slaves_all() { local _func="$1" local _dev local _ret=1 [[ "${host_devs[@]}" ]] || return 2 for _dev in "${host_devs[@]}"; do [[ -b "$_dev" ]] || continue if check_block_and_slaves_all $_func $(get_maj_min $_dev); then _ret=0 fi done return $_ret } for_each_host_dev_and_slaves() { local _func="$1" local _dev [[ "${host_devs[@]}" ]] || return 2 for _dev in "${host_devs[@]}"; do [[ -b "$_dev" ]] || continue check_block_and_slaves $_func $(get_maj_min $_dev) && return 0 done return 1 } # ugly workaround for the lvm design # There is no volume group device, # so, there are no slave devices for volume groups. # Logical volumes only have the slave devices they really live on, # but you cannot create the logical volume without the volume group. # And the volume group might be bigger than the devices the LV needs. check_vol_slaves() { local _lv _vg _pv _dm _majmin _majmin="$2" _lv="/dev/block/$_majmin" _dm=/sys/dev/block/$_majmin/dm [[ -f $_dm/uuid && $(<$_dm/uuid) =~ LVM-* ]] || return 1 _vg=$(dmsetup splitname --noheadings -o vg_name $(<"$_dm/name") ) # strip space _vg="${_vg//[[:space:]]/}" if [[ $_vg ]]; then for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) do check_block_and_slaves $1 $(get_maj_min $_pv) && return 0 done fi return 1 } check_vol_slaves_all() { local _lv _vg _pv _majmin _majmin="$2" _lv="/dev/block/$_majmin" _dm="/sys/dev/block/$_majmin/dm" [[ -f $_dm/uuid && $(<$_dm/uuid) =~ LVM-* ]] || return 1 _vg=$(dmsetup splitname --noheadings -o vg_name $(<"$_dm/name") ) # strip space _vg="${_vg//[[:space:]]/}" if [[ $_vg ]]; then for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) do check_block_and_slaves_all $1 $(get_maj_min $_pv) done return 0 fi return 1 } # fs_get_option # search for a specific option in a bunch of filesystem options # and return the value fs_get_option() { local _fsopts=$1 local _option=$2 local OLDIFS="$IFS" IFS=, set -- $_fsopts IFS="$OLDIFS" while [ $# -gt 0 ]; do case $1 in $_option=*) echo ${1#${_option}=} break esac shift done } check_kernel_config() { local _config_opt="$1" local _config_file [[ -f /boot/config-$kernel ]] \ && _config_file="/boot/config-$kernel" [[ -f /lib/modules/$kernel/config ]] \ && _config_file="/lib/modules/$kernel/config" # no kernel config file, so return true [[ $_config_file ]] || return 0 grep -q -F "${_config_opt}=" "$_config_file" && return 0 return 1 } # get_cpu_vendor # Only two values are returned: AMD or Intel get_cpu_vendor () { if grep -qE AMD /proc/cpuinfo; then printf "AMD" fi if grep -qE Intel /proc/cpuinfo; then printf "Intel" fi } # get_host_ucode # Get the hosts' ucode file based on the /proc/cpuinfo get_ucode_file () { local family=`grep -E "cpu family" /proc/cpuinfo | head -1 | sed s/.*:\ //` local model=`grep -E "model" /proc/cpuinfo |grep -v name | head -1 | sed s/.*:\ //` local stepping=`grep -E "stepping" /proc/cpuinfo | head -1 | sed s/.*:\ //` if [[ "$(get_cpu_vendor)" == "AMD" ]]; then if [[ $family -ge 21 ]]; then printf "microcode_amd_fam%xh.bin" $family else printf "microcode_amd.bin" fi fi if [[ "$(get_cpu_vendor)" == "Intel" ]]; then # The /proc/cpuinfo are in decimal. printf "%02x-%02x-%02x" ${family} ${model} ${stepping} fi } # Get currently loaded modules # sorted, and delimited by newline get_loaded_kernel_modules () { local modules=( ) while read _module _size _used _used_by; do modules+=( "$_module" ) done <<< "$(lsmod | sed -n '1!p')" printf '%s\n' "${modules[@]}" | sort } # Not every device in /dev/mapper should be examined. # If it is an LVM device, touch only devices which have /dev/VG/LV symlink. lvm_internal_dev() { local dev_dm_dir=/sys/dev/block/$1/dm [[ ! -f $dev_dm_dir/uuid || $(<$dev_dm_dir/uuid) != LVM-* ]] && return 1 # Not an LVM device local DM_VG_NAME DM_LV_NAME DM_LV_LAYER eval $(dmsetup splitname --nameprefixes --noheadings --rows "$(<$dev_dm_dir/name)" 2>/dev/null) [[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 0 # Better skip this! [[ ${DM_LV_LAYER} ]] || [[ ! -L /dev/${DM_VG_NAME}/${DM_LV_NAME} ]] } btrfs_devs() { local _mp="$1" btrfs device usage "$_mp" \ | while read _dev _rest; do str_starts "$_dev" "/" || continue _dev=${_dev%,} printf -- "%s\n" "$_dev" done } # block_is_nbd # Check whether $1 is an nbd device block_is_nbd() { [[ -b /dev/block/$1 && $1 == 43:* ]] } # block_is_iscsi # Check whether $1 is an nbd device block_is_iscsi() { local _dir local _dev=$1 [[ -L "/sys/dev/block/$_dev" ]] || return _dir="$(readlink -f "/sys/dev/block/$_dev")" || return until [[ -d "$_dir/sys" || -d "$_dir/iscsi_session" ]]; do _dir="$_dir/.." done [[ -d "$_dir/iscsi_session" ]] } # block_is_fcoe # Check whether $1 is an FCoE device # Will not work for HBAs that hide the ethernet aspect # completely and present a pure FC device block_is_fcoe() { local _dir local _dev=$1 [[ -L "/sys/dev/block/$_dev" ]] || return _dir="$(readlink -f "/sys/dev/block/$_dev")" until [[ -d "$_dir/sys" ]]; do _dir="$_dir/.." if [[ -d "$_dir/subsystem" ]]; then subsystem=$(basename $(readlink $_dir/subsystem)) [[ $subsystem == "fcoe" ]] && return 0 fi done return 1 } # block_is_netdevice # Check whether $1 is a net device block_is_netdevice() { block_is_nbd "$1" || block_is_iscsi "$1" || block_is_fcoe "$1" }PKc¶N]tg÷   modules.d/99base/module-setup.shnuȯÝí#!/bin/bash # called by dracut check() { return 0 } # called by dracut depends() { echo udev-rules return 0 } # called by dracut install() { local _d inst_multiple mount mknod mkdir sleep chroot chown \ sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink setsid inst $(command -v modprobe) /sbin/modprobe inst_multiple -o findmnt less kmod if [ ! -e "${initdir}/bin/sh" ]; then inst_multiple bash (ln -s bash "${initdir}/bin/sh" || :) fi #add common users in /etc/passwd, it will be used by nfs/ssh currently grep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo 'root:x:0:0::/root:/bin/sh' >> "$initdir/etc/passwd" grep '^nobody:' /etc/passwd >> "$initdir/etc/passwd" # install our scripts and hooks inst_script "$moddir/init.sh" "/init" inst_script "$moddir/initqueue.sh" "/sbin/initqueue" inst_script "$moddir/loginit.sh" "/sbin/loginit" inst_script "$moddir/rdsosreport.sh" "/sbin/rdsosreport" [ -e "${initdir}/lib" ] || mkdir -m 0755 -p ${initdir}/lib mkdir -m 0755 -p ${initdir}/lib/dracut mkdir -m 0755 -p ${initdir}/lib/dracut/hooks mkdir -p ${initdir}/tmp inst_simple "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh" mkdir -p "${initdir}/var" if ! dracut_module_included "systemd"; then inst_multiple switch_root || dfatal "Failed to install switch_root" inst_hook cmdline 10 "$moddir/parse-root-opts.sh" inst_multiple -o $systemdutildir/systemd-timestamp fi if [[ $realinitpath ]]; then for i in $realinitpath; do echo "rd.distroinit=$i" done > "${initdir}/etc/cmdline.d/distroinit.conf" fi ln -fs /proc/self/mounts "$initdir/etc/mtab" if [[ $ro_mnt = yes ]]; then echo ro >> "${initdir}/etc/cmdline.d/base.conf" fi local VERSION="" local PRETTY_NAME="" if [ -e /etc/os-release ]; then . /etc/os-release [[ -n ${VERSION} ]] && VERSION+=" " [[ -n ${PRETTY_NAME} ]] && PRETTY_NAME+=" " fi NAME=dracut ID=dracut VERSION+="dracut-$DRACUT_VERSION" PRETTY_NAME+="dracut-$DRACUT_VERSION (Initramfs)" VERSION_ID=$DRACUT_VERSION ANSI_COLOR="0;31" [ -e "${initdir}/usr/lib" ] || mkdir -m 0755 -p ${initdir}/usr/lib { echo NAME=\"$NAME\" echo VERSION=\"$VERSION\" echo ID=$ID echo VERSION_ID=$VERSION_ID echo PRETTY_NAME=\"$PRETTY_NAME\" echo ANSI_COLOR=\"$ANSI_COLOR\" } > $initdir/usr/lib/initrd-release echo dracut-$DRACUT_VERSION > $initdir/lib/dracut/dracut-$DRACUT_VERSION ln -sf ../usr/lib/initrd-release $initdir/etc/initrd-release ln -sf initrd-release $initdir/usr/lib/os-release ln -sf initrd-release $initdir/etc/os-release ## save host_devs which we need bring up if [[ $hostonly_cmdline == "yes" ]]; then if [[ -n "${host_devs[@]}" ]]; then dracut_need_initqueue fi if [[ -f "$initdir/lib/dracut/need-initqueue" ]] || ! dracut_module_included "systemd"; then ( if dracut_module_included "systemd"; then DRACUT_SYSTEMD=1 fi PREFIX="$initdir" . "$moddir/dracut-lib.sh" for _dev in "${host_devs[@]}"; do for _dev2 in "${root_devs[@]}"; do [[ "$_dev" == "$_dev2" ]] && continue 2 done # We only actually wait for real devs - swap is only needed # for resume and udev rules generated when parsing resume= # argument take care of the waiting for us for _dev2 in "${swap_devs[@]}"; do [[ "$_dev" == "$_dev2" ]] && continue 2 done _pdev=$(get_persistent_dev $_dev) case "$_pdev" in /dev/?*) wait_for_dev $_pdev;; *) ;; esac done ) fi fi } PKc¶N]’[È8££modules.d/99base/initqueue.shnuȯÝí#!/bin/sh # # Licensed under the GPLv2+ # # Copyright 2008-2010, Red Hat, Inc. # Harald Hoyer PATH=/usr/sbin:/usr/bin:/sbin:/bin type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh while [ $# -gt 0 ]; do case "$1" in --onetime) onetime="yes";; --online) qname="/online";; --settled) qname="/settled";; --finished) qname="/finished";; --timeout) qname="/timeout";; --unique) unique="yes";; --name) name="$2";shift;; --env) env="$2"; shift;; *) break;; esac shift done if [ -z "$unique" ]; then job="${name}$$" else job="${name:-$1}" job=${job##*/} fi exe=$1 shift [ -x "$exe" ] || exe=$(command -v $exe) if [ -z "$exe" ] ; then echo "Invalid command" exit 1 fi { [ -n "$onetime" ] && echo '[ -e "$job" ] && rm -f -- "$job"' [ -n "$env" ] && echo "$env" printf '%q ' "$exe" "$@" printf '\n' } > "/tmp/$$-${job}.sh" mv -f "/tmp/$$-${job}.sh" "$hookdir/initqueue${qname}/${job}.sh" [ -z "$qname" ] && >> $hookdir/initqueue/work exit 0 PKc¶N] »ÞI„I„modules.d/99base/dracut-lib.shnuȯÝí#!/bin/sh export DRACUT_SYSTEMD export NEWROOT if [ -n "$NEWROOT" ]; then [ -d $NEWROOT ] || mkdir -p -m 0755 $NEWROOT fi if ! [ -d /run/initramfs ]; then mkdir -p -m 0755 /run/initramfs/log ln -sfn /run/initramfs/log /var/log fi [ -d /run/lock ] || mkdir -p -m 0755 /run/lock [ -d /run/log ] || mkdir -p -m 0755 /run/log debug_off() { set +x } debug_on() { [ "$RD_DEBUG" = "yes" ] && set -x } # returns OK if $1 contains literal string $2 (and isn't empty) strstr() { [ "${1##*"$2"*}" != "$1" ] } # returns OK if $1 matches (completely) glob pattern $2 # An empty $1 will not be considered matched, even if $2 is * which technically # matches; as it would match anything, it's not an interesting case. strglob() { [ -n "$1" -a -z "${1##$2}" ] } # returns OK if $1 contains (anywhere) a match of glob pattern $2 # An empty $1 will not be considered matched, even if $2 is * which technically # matches; as it would match anything, it's not an interesting case. strglobin() { [ -n "$1" -a -z "${1##*$2*}" ] } # returns OK if $1 contains literal string $2 at the beginning, and isn't empty str_starts() { [ "${1#"$2"*}" != "$1" ] } # returns OK if $1 contains literal string $2 at the end, and isn't empty str_ends() { [ "${1%*"$2"}" != "$1" ] } trim() { local var="$*" var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters printf "%s" "$var" } if [ -z "$DRACUT_SYSTEMD" ]; then warn() { check_quiet echo "<28>dracut Warning: $*" > /dev/kmsg echo "dracut Warning: $*" >&2 } info() { check_quiet echo "<30>dracut: $*" > /dev/kmsg [ "$DRACUT_QUIET" != "yes" ] && \ echo "dracut: $*" >&2 } else warn() { echo "Warning: $*" >&2 } info() { echo "$*" } fi vwarn() { while read line || [ -n "$line" ]; do warn $line; done } vinfo() { while read line || [ -n "$line" ]; do info $line; done } # replaces all occurrences of 'search' in 'str' with 'replacement' # # str_replace str search replacement # # example: # str_replace ' one two three ' ' ' '_' str_replace() { local in="$1"; local s="$2"; local r="$3" local out='' while strstr "${in}" "$s"; do chop="${in%%"$s"*}" out="${out}${chop}$r" in="${in#*"$s"}" done echo "${out}${in}" } killall_proc_mountpoint() { local _pid local _t local _killed=0 for _pid in /proc/*; do _pid=${_pid##/proc/} case $_pid in *[!0-9]*) continue;; esac [ -e "/proc/$_pid/exe" ] || continue [ -e "/proc/$_pid/root" ] || continue if strstr "$(ls -l -- "/proc/$_pid" "/proc/$_pid/fd" 2>/dev/null)" "$1" ; then kill -9 "$_pid" _killed=1 fi done return $_killed } getcmdline() { local _line local _i local CMDLINE_ETC_D local CMDLINE_ETC local CMDLINE_PROC unset _line if [ -e /etc/cmdline ]; then while read -r _line || [ -n "$_line" ]; do CMDLINE_ETC="$CMDLINE_ETC $_line"; done ", we want the exact match if [ "$_o" = "$1" ]; then _val="1"; unset _doecho fi continue fi if [ "${_o#*=}" = "$_o" ]; then # if cmdline argument has no "=", we assume "=1" _val="1"; unset _doecho continue fi _val="${_o#*=}" _doecho=1 fi done if [ -n "$_val" ]; then [ "x$_doecho" != "x" ] && echo "$_val"; return 0; fi return 1; } getarg() { debug_off local _deprecated _newoption while [ $# -gt 0 ]; do case $1 in -d) _deprecated=1; shift;; -y) if _dogetarg $2 >/dev/null; then if [ "$_deprecated" = "1" ]; then [ -n "$_newoption" ] && warn "Kernel command line option '$2' is deprecated, use '$_newoption' instead." || warn "Option '$2' is deprecated." fi echo 1 debug_on return 0 fi _deprecated=0 shift 2;; -n) if _dogetarg $2 >/dev/null; then echo 0; if [ "$_deprecated" = "1" ]; then [ -n "$_newoption" ] && warn "Kernel command line option '$2' is deprecated, use '$_newoption=0' instead." || warn "Option '$2' is deprecated." fi debug_on return 1 fi _deprecated=0 shift 2;; *) if [ -z "$_newoption" ]; then _newoption="$1" fi if _dogetarg $1; then if [ "$_deprecated" = "1" ]; then [ -n "$_newoption" ] && warn "Kernel command line option '$1' is deprecated, use '$_newoption' instead." || warn "Option '$1' is deprecated." fi debug_on return 0; fi _deprecated=0 shift;; esac done debug_on return 1 } # getargbool # False if "getarg " returns "0", "no", or "off". # True if getarg returns any other non-empty string. # If not found, assumes - usually 0 for false, 1 for true. # example: getargbool 0 rd.info # true: rd.info, rd.info=1, rd.info=xxx # false: rd.info=0, rd.info=off, rd.info not present (default val is 0) getargbool() { local _b unset _b local _default _default="$1"; shift _b=$(getarg "$@") [ $? -ne 0 -a -z "$_b" ] && _b="$_default" if [ -n "$_b" ]; then [ $_b = "0" ] && return 1 [ $_b = "no" ] && return 1 [ $_b = "off" ] && return 1 fi return 0 } isdigit() { case "$1" in *[!0-9]*|"") return 1;; esac return 0 } # getargnum # Will echo the arg if it's in range [minval - maxval]. # If it's not set or it's not valid, will set it . # Note all values are required to be >= 0 here. # should be with [minval -maxval]. getargnum() { local _b unset _b local _default _min _max _default="$1"; shift _min="$1"; shift _max="$1"; shift _b=$(getarg "$1") [ $? -ne 0 -a -z "$_b" ] && _b=$_default if [ -n "$_b" ]; then isdigit "$_b" && _b=$(($_b)) && \ [ $_b -ge $_min ] && [ $_b -le $_max ] && echo $_b && return fi echo $_default } _dogetargs() { debug_off local _o _found _key unset _o unset _found CMDLINE=$(getcmdline) _key="$1" set -- for _o in $CMDLINE; do if [ "$_o" = "$_key" ]; then _found=1; elif [ "${_o%%=*}" = "${_key%=}" ]; then [ -n "${_o%%=*}" ] && set -- "$@" "${_o#*=}"; _found=1; fi done if [ -n "$_found" ]; then [ $# -gt 0 ] && printf '%s' "$*" return 0 fi return 1; } getargs() { debug_off local _val _i _args _gfound _deprecated unset _val unset _gfound _newoption="$1" _args="$@" set -- for _i in $_args; do if [ "$_i" = "-d" ]; then _deprecated=1 continue fi _val="$(_dogetargs $_i)" if [ $? -eq 0 ]; then if [ "$_deprecated" = "1" ]; then [ -n "$_newoption" ] && warn "Option '$_i' is deprecated, use '$_newoption' instead." || warn "Option $_i is deprecated!" fi _gfound=1 fi [ -n "$_val" ] && set -- "$@" "$_val" _deprecated=0 done if [ -n "$_gfound" ]; then if [ $# -gt 0 ]; then printf '%s' "$*" fi debug_on return 0 fi debug_on return 1; } # Prints value of given option. If option is a flag and it's present, # it just returns 0. Otherwise 1 is returned. # $1 = options separated by commas # $2 = option we are interested in # # Example: # $1 = cipher=aes-cbc-essiv:sha256,hash=sha256,verify # $2 = hash # Output: # sha256 getoptcomma() { local line=",$1,"; local opt="$2"; local tmp case "${line}" in *,${opt}=*,*) tmp="${line#*,${opt}=}" echo "${tmp%%,*}" return 0 ;; *,${opt},*) return 0;; esac return 1 } # Splits given string 'str' with separator 'sep' into variables 'var1', 'var2', # 'varN'. If number of fields is less than number of variables, remaining are # not set. If number of fields is greater than number of variables, the last # variable takes remaining fields. In short - it acts similary to 'read'. # # splitsep sep str var1 var2 varN # # example: # splitsep ':' 'foo:bar:baz' v1 v2 # in result: # v1='foo', v2='bar:baz' # # TODO: ':' inside fields. splitsep() { debug_off local sep="$1"; local str="$2"; shift 2 local tmp while [ -n "$str" -a "$#" -gt 1 ]; do tmp="${str%%$sep*}" local -n _splitsep_ref="$1" _splitsep_ref="$tmp" unset -n _splitsep_ref str="${str#"$tmp"}" str="${str#$sep}" shift done if [ -n "$str" -a -n "$1" ]; then local -n _splitsep_ref="$1" _splitsep_ref="$str" unset -n _splitsep_ref fi debug_on return 0 } setdebug() { [ -f /usr/lib/initrd-release ] || return if [ -z "$RD_DEBUG" ]; then if [ -e /proc/cmdline ]; then RD_DEBUG=no if getargbool 0 rd.debug -d -y rdinitdebug -d -y rdnetdebug; then RD_DEBUG=yes [ -n "$BASH" ] && \ export PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): '; fi fi export RD_DEBUG fi debug_on } setdebug source_all() { local f local _dir _dir=$1; shift [ "$_dir" ] && [ -d "/$_dir" ] || return for f in "/$_dir"/*.sh; do [ -e "$f" ] && . "$f" "$@"; done } hookdir=/lib/dracut/hooks export hookdir source_hook() { local _dir _dir=$1; shift source_all "/lib/dracut/hooks/$_dir" "$@" } check_finished() { local f for f in $hookdir/initqueue/finished/*.sh; do [ "$f" = "$hookdir/initqueue/finished/*.sh" ] && return 0 { [ -e "$f" ] && ( . "$f" ) ; } || return 1 done return 0 } source_conf() { local f [ "$1" ] && [ -d "/$1" ] || return for f in "/$1"/*.conf; do [ -e "$f" ] && . "$f"; done } die() { { echo "<24>dracut: FATAL: $*"; echo "<24>dracut: Refusing to continue"; } > /dev/kmsg { printf 'warn dracut: FATAL: %q\n' "$*" echo "warn dracut: Refusing to continue" } >> $hookdir/emergency/01-die.sh [ -d /run/initramfs ] || mkdir -p -- /run/initramfs > /run/initramfs/.die if getargbool 0 "rd.shell"; then emergency_shell else source_hook "shutdown-emergency" fi if [ -n "$DRACUT_SYSTEMD" ]; then systemctl --no-block --force halt fi exit 1 } check_quiet() { if [ -z "$DRACUT_QUIET" ]; then DRACUT_QUIET="yes" getargbool 0 rd.info -d -y rdinfo && DRACUT_QUIET="no" getargbool 0 rd.debug -d -y rdinitdebug && DRACUT_QUIET="no" getarg quiet || DRACUT_QUIET="yes" a=$(getarg loglevel=) [ -n "$a" ] && [ $a -ge 28 ] && DRACUT_QUIET="yes" export DRACUT_QUIET fi } check_occurances() { # Count the number of times the character $ch occurs in $str # Return 0 if the count matches the expected number, 1 otherwise local str="$1" local ch="$2" local expected="$3" local count=0 while [ "${str#*$ch}" != "${str}" ]; do str="${str#*$ch}" count=$(( $count + 1 )) done [ $count -eq $expected ] } incol2() { debug_off local dummy check; local file="$1"; local str="$2"; [ -z "$file" ] && return 1; [ -z "$str" ] && return 1; while read dummy check restofline || [ -n "$check" ]; do if [ "$check" = "$str" ]; then debug_on return 0 fi done < $file debug_on return 1 } udevsettle() { [ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version | { read v _ ; echo $v ; }) if [ $UDEVVERSION -ge 143 ]; then udevadm settle --exit-if-exists=$hookdir/initqueue/work $settle_exit_if_exists else udevadm settle --timeout=30 fi } udevproperty() { [ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version | { read v _ ; echo $v ; }) if [ $UDEVVERSION -ge 143 ]; then for i in "$@"; do udevadm control --property=$i; done else for i in "$@"; do udevadm control --env=$i; done fi } find_mount() { local dev mnt etc wanted_dev wanted_dev="$(readlink -e -q $1)" while read dev mnt etc || [ -n "$dev" ]; do [ "$dev" = "$wanted_dev" ] && echo "$dev" && return 0 done < /proc/mounts return 1 } # usage: ismounted # usage: ismounted /dev/ if command -v findmnt >/dev/null; then ismounted() { findmnt "$1" > /dev/null 2>&1 } else ismounted() { if [ -b "$1" ]; then find_mount "$1" > /dev/null && return 0 return 1 fi while read a m a || [ -n "$m" ]; do [ "$m" = "$1" ] && return 0 done < /proc/mounts return 1 } fi # root=nfs:[:][:] # root=nfs4:[:][:] nfsroot_to_var() { # strip nfs[4]: local arg="$@:" nfs="${arg%%:*}" arg="${arg##$nfs:}" # check if we have a server if strstr "$arg" ':/' ; then server="${arg%%:/*}" arg="/${arg##*:/}" fi path="${arg%%:*}" # rest are options options="${arg##$path}" # strip leading ":" options="${options##:}" # strip ":" options="${options%%:}" # Does it really start with '/'? [ -n "${path%%/*}" ] && path="error"; #Fix kernel legacy style separating path and options with ',' if [ "$path" != "${path#*,}" ] ; then options=${path#*,} path=${path%%,*} fi } # Create udev rule match for a device with its device name, or the udev property # ID_FS_UUID or ID_FS_LABEL # # example: # udevmatch LABEL=boot # prints: # ENV{ID_FS_LABEL}="boot" # # TODO: symlinks udevmatch() { case "$1" in UUID=????????-????-????-????-????????????|LABEL=*|PARTLABEL=*|PARTUUID=????????-????-????-????-????????????) printf 'ENV{ID_FS_%s}=="%s"' "${1%%=*}" "${1#*=}" ;; UUID=*) printf 'ENV{ID_FS_UUID}=="%s*"' "${1#*=}" ;; PARTUUID=*) printf 'ENV{ID_FS_PARTUUID}=="%s*"' "${1#*=}" ;; /dev/?*) printf -- 'KERNEL=="%s"' "${1#/dev/}" ;; *) return 255 ;; esac } # Prints unique path for potential file inside specified directory. It consists # of specified directory, prefix and number at the end which is incremented # until non-existing file is found. # # funiq dir prefix # # example: # # ls /mnt # cdrom0 cdrom1 # # # funiq /mnt cdrom # /mnt/cdrom2 funiq() { local dir="$1"; local prefix="$2" local i=0 [ -d "${dir}" ] || return 1 while [ -e "${dir}/${prefix}$i" ]; do i=$(($i+1)) || return 1 done echo "${dir}/${prefix}$i" } # Creates unique directory and prints its path. It's using funiq to generate # path. # # mkuniqdir subdir new_dir_name mkuniqdir() { local dir="$1"; local prefix="$2" local retdir; local retdir_new [ -d "${dir}" ] || mkdir -m 0755 -p "${dir}" || return 1 retdir=$(funiq "${dir}" "${prefix}") || return 1 until mkdir -m 0755 "${retdir}" 2>/dev/null; do retdir_new=$(funiq "${dir}" "${prefix}") || return 1 [ "$retdir_new" = "$retdir" ] && return 1 retdir="$retdir_new" done echo "${retdir}" } # Copy the contents of SRC into DEST, merging the contents of existing # directories (kinda like rsync, or cpio -p). # Creates DEST if it doesn't exist. Overwrites files with the same names. # # copytree SRC DEST copytree() { local src="$1" dest="$2" mkdir -p "$dest"; dest=$(readlink -e -q "$dest") ( cd "$src"; cp -af . -t "$dest" ) } # Evaluates command for UUIDs either given as arguments for this function or all # listed in /dev/disk/by-uuid. UUIDs doesn't have to be fully specified. If # beginning is given it is expanded to all matching UUIDs. To pass full UUID to # your command use '$___' as a place holder. Remember to escape '$'! # # foreach_uuid_until [ -p prefix ] command UUIDs # # prefix - string to put just before $___ # command - command to be evaluated # UUIDs - list of UUIDs separated by space # # The function returns after *first successful evaluation* of the given command # with status 0. If evaluation fails for every UUID function returns with # status 1. # # Example: # foreach_uuid_until "mount -U \$___ /mnt; echo OK; umount /mnt" \ # "01234 f512 a235567f-12a3-c123-a1b1-01234567abcb" foreach_uuid_until() ( cd /dev/disk/by-uuid [ "$1" = -p ] && local prefix="$2" && shift 2 local cmd="$1"; shift; local uuids_list="$*" local uuid; local full_uuid; local ___ [ -n "${cmd}" ] || return 1 for uuid in ${uuids_list:-*}; do for full_uuid in ${uuid}*; do [ -e "${full_uuid}" ] || continue ___="${prefix}${full_uuid}" eval ${cmd} && return 0 done done return 1 ) # Get kernel name for given device. Device may be the name too (then the same # is returned), a symlink (full path), UUID (prefixed with "UUID=") or label # (prefixed with "LABEL="). If just a beginning of the UUID is specified or # even an empty, function prints all device names which UUIDs match - every in # single line. # # NOTICE: The name starts with "/dev/". # # Example: # devnames UUID=123 # May print: # /dev/dm-1 # /dev/sdb1 # /dev/sdf3 devnames() { local dev="$1"; local d; local names case "$dev" in UUID=*) dev="$(foreach_uuid_until '! blkid -U $___' "${dev#UUID=}")" \ && return 255 [ -z "$dev" ] && return 255 ;; LABEL=*) dev="$(blkid -L "${dev#LABEL=}")" || return 255 ;; /dev/?*) ;; *) return 255 ;; esac for d in $dev; do names="$names $(readlink -e -q "$d")" || return 255 done echo "${names# }" } usable_root() { local _i [ -d "$1" ] || return 1 for _i in "$1"/usr/lib*/ld-*.so "$1"/lib*/ld-*.so; do [ -e "$_i" ] && return 0 done for _i in proc sys dev; do [ -e "$1"/$_i ] || return 1 done return 0 } inst_hook() { local _hookname _unique _name _job _exe while [ $# -gt 0 ]; do case "$1" in --hook) _hookname="/$2";shift;; --unique) _unique="yes";; --name) _name="$2";shift;; *) break;; esac shift done if [ -z "$_unique" ]; then _job="${_name}$$" else _job="${_name:-$1}" _job=${_job##*/} fi _exe=$1 shift [ -x "$_exe" ] || _exe=$(command -v $_exe) if [ -n "$onetime" ]; then { echo '[ -e "$_job" ] && rm -f -- "$_job"' echo "$_exe $@" } > "/tmp/$$-${_job}.sh" else echo "$_exe $@" > "/tmp/$$-${_job}.sh" fi mv -f "/tmp/$$-${_job}.sh" "$hookdir/${_hookname}/${_job}.sh" } # inst_mount_hook