¼Ö¶ó¸®½º óÀ½ »ç¿ëÇϱ⠼ֶ󸮽º ÀνºÅçÀ» ¼º°øÀûÀ¸·Î ¸¶ÃÆ´Ù¸é ÀçºÎÆÃÀ» ÇÏ°í, óÀ½À¸·Î ¸ÂÀÌÇÏ´Â °ÍÀÌ CDE(Common Desktop Environment)ÀÔ´Ï´Ù. °ü¸®ÀÚ °èÁ¤À¸·Î ±âº»À¸·Î root¸¦ ÀÔ·ÂÇÏ°í, ¼³Ä¡½Ã ÀÔ·ÂÇß´ø rootÀÇ Æнº¿öµå¸¦ ÀÔ·ÂÇÕ´Ï´Ù.. ±×·¯¸é µÎ°³ÀÇ Ã¢ÀÌ ¶ã°ÍÀÔ´Ï´Ù.. µµ¿ò¸» ÆíÁý±â¿Í ÆÄÀÏ °ü¸®ÀÚÀÔ´Ï´Ù.. ÀÚ~ ±×·¸´Ù¸é ¼Ö¶ó¸®½º¿Í Ä£¼÷ÇØ Áö±â À§Çؼ­ ¿­½ÉÈ÷ ¸¶¿ì½º°¡ »Ç°³Áö±â Á÷Àü±îÁö ¸¶¿ì½º·Î ¿©·¯ ¸Þ´º¸¦ Âï¾îº¾´Ï´Ù.. ¾î´ÀÁ¤µµ´Â CDE¿¡¼­ Àß Àо±¸ ¸¶¿ì½º·Î ¶Ç°¢°Å¸®¸é °ü¸®°¡ µË´Ï´Ù... ÇæÇæ~ ÅÚ³ÝÀ¸·Î ·Î±×ÀÎ ÇÒ¶§´Â ´Ù¸¥ »ç¿ëÀÚ·Î ·Î±äÇÑ ÈÄ¿¡ su¶ó´Â ¸í·É¾î¸¦ ÅëÇؼ­ root»ç¿ëÀÚ·Î ·Î±äÀ» ÇØ¾ß ÇÕ´Ï´Ù.. À©µµ¿ì¿¡¼­ ÅÚ³ÝÀ» ÇÑ´Ù¸é...[½ÃÀÛ] --> [½ÇÇà] --> telnet 192.168.0.101À» ÇÕ´Ï´Ù.. µÚ¿¡ ¾ÆÀÌÇÇ´Â ¼Ö¶ó¸®½º°¡ ÀνºÅçµÈ ÄÄÅÍÀÇ IPÁÖ¼Ò ÀÔ´Ï´Ù.. ¼Ö¶ó¸®½º ȯ°æ¿¡¼­ ÄܼÖÀ» ¿­À¸½Ã¼Å Çغ¸½Ã±â¹Ù¶ø´Ï´Ù... ================================================================================ SunOS 5.8 login: oracle Password: Last login: Sat Nov 24 15:17:21 from :0 Sun Microsystems Inc. SunOS 5.8 Generic February 2000 $ ================================================================================ ÀÌ·±½ÄÀÔ´Ï´Ù... Àú´Â ¿À¶óŬ»ç¿ëÀÚ·Î ·Î±äÀ» Çß½À´Ï´Ù.. ¸ÕÀú ÅÚ³ÝÀ» »ç¿ëÇÏ¿© Á¢¼ÓÇÒ »ç¿ëÀÚ »ý¼ºÀ» Çغ¾½Ã´Ù.. °£´ÜÇÏ°Ô Çغ¾½Ã´Ù.. ¿©±âºÎÅÍ´Â ±×´ë·Î µû¶ó¼­ Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.. '--'·Î ½ÃÀÛÇÏ´Â °ÍÀº Á¦°¡ ÁÖ¼®À» ´Þ¾Æ³í°ÍÀ̴ϱî ÀÌ°ÍÀº ½Ç½ÀÇϽǶ§ »ý·«ÇϽñæ.. ================================================================================ $ su root Password: --¼Ö¶ó¸®½º ÄܼÖÀ» ÀÌ¿ëÇÏ½Å´Ù¸é »ý·«Çϼ¼¿ä.. # groupadd -g 7000 users --±×·ìÀÇ »ý¼º, -g ¿É¼ÇÀº ±×·ìÀÇ ¹øÈ£ÁöÁ¤ # useradd -g users -d /export/home/yasi -m yasi --»ç¿ëÀÚ »ý¼º, -g ´Â ±×·ì, -d´Â »ç¿ëÀÚÀÇ È¨µð·ºÅ丮 -m Àº »ç¿ëÀÚÀÇ È¨µð·ºÅ丮°¡ ¾øÀ»¶§ »ý¼º # passwd yasi New password: --º¸¾È»ó ÀÔ·ÂÇÏ´Â Æнº¿öµå´Â º¸ÀÌÁö ¾Ê´Â´Ù. Re-enter new password: passwd (SYSTEM): passwd successfully changed for yasi # mkdir -P /export/home/yasi mkdir: À߸øµÈ ¿É¼Ç -- P --¼Ö¶ó¸®½º¿¡¼­´Â ´ë/¼Ò¹®ÀÚ±¸º°À» È®½ÇÈ÷ ÇÕ´Ï´Ù.. mkdir: »ç¿ë¹ý: mkdir [-m mode] [-p] dirname ... # mkdir -p /export/home/yasi --µð·ºÅ丮 »ý¼º, (ÇöÀç root °èÁ¤) -p ¿É¼ÇÀº ÇÏÀ§µð·ºÅ丮±îÁö »ý¼º # chown oracle /export/home/yasi --change owner, ·çÆ®°èÁ¤À¸·Î »ý¼ºÇÑ µð·ºÅ丮´Â ·çÆ®ÀÇ ¼ÒÀ¯À̱⠶§¹®¿¡ ¼ÒÀ¯ÀÚ¸¦ º¯°æ # su - yasi Sun Microsystems Inc. SunOS 5.8 Generic February 2000 $ id --ÇöÀç »ç¿ëÀÚÀÇ ¼Ö¶ó¸®½º¿¡¼­ ºÎ¿©ÇÑ ¹øÈ£¿Í À̸§, ±×·ìÀÌ ³ª¿É´Ï´Ù.. uid=101(yasi) gid=7000(users) $ pwd --ÇöÀç »ç¿ëÀÚ°¡ ¸Ó¹°°í ÀÖ´Â µð·ºÅ丮 /export/home/yasi $ --»ç¿ëÀÚÀÇ ½©ÀÌ #¿¡¼­ $·Î ¹Ù²ï°ÍÀ» º¼¼ö ÀÖ½À´Ï´Ù.. ================================================================================ ÇãÀ̱¸...ÀÌ°Å ÅÚ³ÝÀ¸·Î ÇϱâÀ§ÇÑ ÀÛ¾÷À» ÇÏ´Ùº¸´Ï....±×·ì»ý¼º°ú »ç¿ëÀÚ »ý¼ºÀ»¿¡ ´ëÇÑ °ÅÀÇ ¸ðµç ÁþÀ» Çعö·È½¿´Ù..ÇæÇæ~ Áß¿äÇÑ °ÍÀº root°èÁ¤À¸·Î µé¾î°¡¼­ ÀÛ¾÷ÇÒ ¶§´Â ÁÖÀǸ¦ ÇÏ¼Å¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.. ȯ°æÀ̶óµçÁö ¾î¶² ÀÛ¾÷À» À߸øÇÏ¸é ¿î¿µÃ¼Á¦¿¡ ¾ÆÁÖ ³ª»Û ¿µÇâÀ» ³¢Ä¥¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.. ¼Ö¶ó¸®½ºÀÇ CUI(Consol(Command-Line) User Interface)¿Í Ä£¼÷ÇØ Áö±â À§Çؼ­.. Àç¹ÌÀÖ´Â ¸í·É¾îÀÇ Ã¹ ¸¸³²À» ½ÃÀÛÇØ º¾½Ã´Ù.. ================================================================================ $ su - root Password: Sun Microsystems Inc. SunOS 5.8 Generic February 2000 # uname --ÀÌ ¸í·É¾î´Â ¿î¿µÃ¼Á¦ÀÇ Á¤º¸¸¦ º¸¿©ÁÝ´Ï´Ù.. ¿É¼ÇÀÌ a, X°¡ Àִµ¥ »ç¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù.. SunOS # uname -a SunOS yasicom 5.8 Generic_108529-09 i86pc i386 i86pc # uname -X System = SunOS Node = yasicom Release = 5.8 KernelID = Generic_108529-09 Machine = i86pc BusType = Serial = Users = OEM# = 0 Origin# = 1 NumCPU = 1 # uname -aX SunOS yasicom 5.8 Generic_108529-09 i86pc i386 i86pcSystem = SunOS Node = yasicom Release = 5.8 KernelID = Generic_108529-09 Machine = i86pc BusType = Serial = Users = OEM# = 0 Origin# = 1 NumCPU = 1 ================================================================================ ´ÙÀ½Àº ³¯Â¥¸¦ ¾Ë¾Æº¸´Â ¸í·É¾î data¸¦ »ç¿ëÇØ º¾½Ã´Ù. date¸í·ÉÀ¸·Î ÀϹݻç¿ëÀÚ´Â Áö±Ý ½Ã½ºÅÛÀÇ ½Ã°£À» ±âÁØÀ¸·Î ½Ã°£°ú ³¯Â¥¸¦ º¼¼ö°¡ ÀÖ½À´Ï´Ù.. ±×·¯³ª ³¯Â¥¿Í ½Ã°£À» °íÄ¡´Â °ÍÀº rootÀ¯Àú¸¸ ÇÒ ¼ö ÀÖ½À´Ï´Ù.. ================================================================================ $ date 2001³â 11¿ù 25ÀÏ ÀÏ¿äÀÏ ¿ÀÈÄ 11½Ã 35ºÐ 23ÃÊ $ date 112523352001 --rootÀ¯Àú°¡ ¾Æ´Ï±â¶§¹®¿¡ ¿¡·¯..³¯Â¥¸¦ ¹Ù²Ü ±ÇÇÑÀÌ ¾ø´Ù. date: ¼ÒÀ¯ÀÚ°¡ ¾Æ´Ô »ç¿ë¹ý: date [-u] mmddHHMM[[cc]yy][.SS] date [-u] [+format] date -a [-]sss[.fff] $ su Password: # date 112523142001 2001³â 11¿ù 25ÀÏ ÀÏ¿äÀÏ ¿ÀÈÄ 11½Ã 14ºÐ 00ÃÊ # date 2001³â 11¿ù 25ÀÏ ÀÏ¿äÀÏ ¿ÀÈÄ 11½Ã 14ºÐ 10ÃÊ ================================================================================ ´ÙÀ½Àº ´Þ·ÂÀ» ºÁº¾½Ã´Ù... ÀëÀÖ½À´Ï´Ù... ================================================================================ $ cal 6 --6¿ùÀ» ³ªÅ¸³À´Ï´Ù.. 6 Jan Feb Mar S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 1 2 3 4 5 6 1 2 3 4 5 6 3 4 5 6 7 8 9 7 8 9 10 11 12 13 7 8 9 10 11 12 13 10 11 12 13 14 15 16 14 15 16 17 18 19 20 14 15 16 17 18 19 20 17 18 19 20 21 22 23 21 22 23 24 25 26 27 21 22 23 24 25 26 27 24 25 26 27 28 29 30 28 28 29 30 31 31 Apr May Jun S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 1 1 2 3 4 5 4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12 11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19 18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26 25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30 30 31 Jul Aug Sep S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 1 2 3 4 5 6 7 1 2 3 4 4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11 11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18 18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25 25 26 27 28 29 30 31 29 30 31 26 27 28 29 30 Oct Nov Dec S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 1 2 3 4 5 6 1 2 3 4 3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11 10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18 17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25 24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31 31 $ cal November 2001 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ cal 12 2022 --2022³âÀÇ Å©¸®½º¸¶½º´Â ÀÏ¿äÀÏÀ̱º¿©...±×¶§±îÁ¤ »ì¼ö ÀÖÀ»¶ó³ª?? December 2022 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ================================================================================ ´ÙÀ½Àº µµ¿ò¸» »ç¿ë¹ýÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù... Àú°°ÀÌ ¸Ó¸®³ª»Û³ÑÀº ¸í·É¾î¸¦ Àß ±â¾ïÇÏÁö ¸øÇÕ´Ï´Ù... ±×¶§ Âü°íÇÒ ¸¸ÇÑ°ÍÀÌ ¹Ù·Î..manÀÌÁÒ.. Á» ¸¹Àº ¾çÀÌ ³ª¿À¹Ç·Î...ÇÑÆäÀÌÁö¾¿ º¸¿©ÁÖ°Ô µË´Ï´Ù... <»ç¿ë¹ý> ½ºÆäÀ̽º¹Ù : ´ÙÀ½ È­¸éÀ¸·Î À̵¿ ¿£ÅÍ : ÇöÀçÈ­¸é¿¡¼­ ÇÑ ¶óÀÎ ÁøÇà Ctrl + b : ÇÑ È­¸é ¾ÕÀ¸·Î À̵¿ Ctrl + f : ÇÑ È­¸é µÚ·Î À̵¿ /pattern : ÆÐÅÏÀ» ã¾Æ À̵¿ N : ´ÙÀ½ ÆÐÅÏÀ» ã¾Æ À̵¿ Q : Á¾·á ================================================================================ $ man uname Reformatting page. Please Wait... done User Commands uname(1) NAME uname - print name of current system SYNOPSIS uname [ -aimnprsvX ] uname [ -S system_name ] DESCRIPTION The uname utility prints information about the current sys- tem on the standard output. When options are specified, sym- bols representing one or more system characteristics will be written to the standard output. If no options are specified, uname prints the current operating system's name. The options print selected information returned by uname(2), sysinfo(2), or both. OPTIONS The following options are supported: -a Prints basic information currently available from the system. -i Prints the name of the hardware implementation (plat- form). -m Prints the machine hardware name (class). Use of this option is discouraged; use uname -p instead. See NOTES section below. -n Prints the nodename (the nodename is the name by which the system is known to a communications network). <ÀÌÇÏ»ý·«> ================================================================================ ´ÙÀ½Àº ÇöÀç ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ µÇ¾î ÀÖ´Â »ç¶÷ÀÌ ´©±¸´©±¸ ÀÎÁö »ìÆ캸´Â ¸í·É¾îÀÔ´Ï´Ù.. Á÷Á¢ Çغ¸´Â°Ô ´õ ³´°Ú½À´Ï´Ù.. µÎ¹ø° Çʵ忡 ³ª¿À´Â consoleÀº ÁøÂ¥ ÀÖ´Â ÀåÄ¡¸¦ ÀǹÌÇϱ¸¿©.. pts/4, pts/5ÇÏ´Â °ÍÀº °¡»óÀÇ ÀåÄ¡ÀÔ´Ï´Ù...pseudo device¶ó°í ÇÏÁö¿©... termÀº ¿©±â¿¡ ¾È³ª¿À´Âµ¥...ÀÌ°ÍÀº ·£Ä«µå³ª...¸ðµ¨°°Àº ¹°¸®ÀûÀ¸·Î ¿¬°áµÇ´Â ÀåÄ¡¸¦ ÀǹÌÇÕ´Ï´Ù.. ================================================================================ $ who --ÀϹÝÀûÀÎ Á¤º¸¸¦ º¸¿©ÁÝ´Ï´Ù.. oracle console 11¿ù 25 22:18 (:0) oracle pts/4 11¿ù 25 22:19 (:0.0) oracle pts/5 11¿ù 25 22:21 (:0.0) yasi pts/6 11¿ù 25 23:32 (192.168.0.1) $ who am i --Áö±Ý ³»°¡ ¾î¶² »ç¿ëÀÚ·Î ·Î±äÇß´ÂÁö º¸¿©ÁÝ´Ï´Ù... yasi pts/6 11¿ù 25 23:32 (192.168.0.1) $ whoami --ÀÌ ¸í·ÉÀº °£´ÜÈ÷ À̸§¸¸ ³ª¿À´Âµ¥...¿ì°...¾È³ª¿À³×¿©..¤Ñ¤Ñ; whoami: ¾øÀ½ $ who -H --who ¸í·É¾î¿Í °°ÁÒ? NAME LINE TIME oracle console 11¿ù 25 22:18 (:0) oracle pts/4 11¿ù 25 22:19 (:0.0) oracle pts/5 11¿ù 25 22:21 (:0.0) yasi pts/6 11¿ù 25 23:32 (192.168.0.1) $ who -q --°£´ÜÈ÷ À̸§¸¸ º¸¿©ÁÝ´Ï´Ù.. oracle oracle oracle yasi # users=4 $ who -m --ÇöÀç Å͹̳ο¡ ´ëÇÑ Á¤º¸¸¸ º¸¿©ÁÝ´Ï´Ù.. yasi pts/6 11¿ù 25 23:32 (192.168.0.1) ================================================================================ ÇöÀç ³»°¡ ¾î¶² »ç¿ëÀÚ·Î ·Î±äÇߴ°¡´Â ¶Ç ´Ù¸¥ ¸í·É¾î·Îµµ ¾Ë ¼ö ÀÖ½À´Ï´Ù.. »Ó¸¸¾Æ´Ï¶ó ÇöÀç ·Î±äµÈ À¯ÀúÀÇ ¾ÆÀ̵ð¿Í ±×·ìµµ ¾Ë¼ö°¡ ÀÖÁö¿©... ================================================================================ $ id uid=101(yasi) gid=7000(users) --ÇØ´ç À¯Àú°¡ ¼ÓÇÑ Primary Group¸¸À» Ç¥½Ã $ id -a --ÇØ´ç À¯Àú°¡ ¼ÓÇÑ ¸ðµç ±×·ìÀ» Ç¥½Ã uid=101(yasi) gid=7000(users) groups=7000(users),101(dba) $ id oracle uid=1001(oracle) gid=101(dba) $ id -a oracle uid=1001(oracle) gid=101(dba) groups=101(dba) ================================================================================ ÷¿¡ ÀÌ·±¾ß±×¸¦ Àá±ñ ÇÑ°Å °°½¿´Ù... ¸í·É¾î¸¦ ¸î°³ ¿¬°áÇؼ­ ¾µ¼ö ÀÖ´Ù±¸¿©... ´ÙÀ½¿¡ ¹è¿ï µð·ºÅ丮 °Ë»ö ¸í·É¾î¸¦ ½áº¾½Ã´Ù.. ================================================================================ $ ls local.cshrc local.login local.profile $ ls -a . .. .profile local.cshrc local.login local.profile $ ls -al total 12 drwxr-xr-x 2 100 users 512 Nov 24 17:05 . drwxr-xr-x 5 root root 512 Nov 25 22:09 .. -rw-r--r-- 1 yasi users 144 Nov 24 17:05 .profile -rw-r--r-- 1 yasi users 124 Nov 24 17:05 local.cshrc -rw-r--r-- 1 yasi users 607 Nov 24 17:05 local.login -rw-r--r-- 1 yasi users 582 Nov 24 17:05 local.profile $ ls;pwd --µÎ°³ÀÇ ¸í·É¾î¸¦ ¿¬°áÇß½¿´Ù.. local.cshrc local.login local.profile /export/home/yasi $ pwd --ÇöÀç ·Î±äÇÑ »ç¿ëÀÚ°¡ ÀÖ´Â µð·ºÅ丮ÀÇ À§Ä¡ /export/home/yasi ================================================================================ ÅÚ³ÝÀ» Á¢¼ÓÇÏ¼Ì´Ù¸é »ó´çÈ÷ Áö±Ý ´ä´äÇϽǰ̴ϴÙ.. ¿Ö³ªÇÏ¸é ¹é½ºÆäÀ̽º³ª ¹æÇâÀÌ ÀÌ·±°Å »ç¿ëÀÌ ¾ÈµÅ´Ï±î¿©.. ÀúµÎ ÀÌ°Ô Á» Â¥Áõ½º·´´õ±º¿©..ÇæÇæ~ °¢°¢À» ¼³¸íÇÏ°í ÀÖ´Â °ÍÀÌ º¸ÀÔ´Ï´Ù.. ¾Èº¸À̽ô ºÐÀº ´«À» Å©°Ô¶ß°í ´Ù½Ã º¸½Ã±æ... erase :ÇѱÛÀÚ¸¦ Áö¿î´Ù. werase :ÇÑ ´Ü¾î¸¦ Áö¿î´Ù. kill :ÇѶóÀÎÀ» ¸ðµÎÁö¿î´Ù. intr, quit :ÇöÀç ÀÛ¾÷À» °­Á¦Á¾·á½ÃŲ´Ù. susp :ÇöÀç ÀÛ¾÷À» ÀϽÃÁßÁö½ÃŲ´Ù. ================================================================================ $ stty -a speed 38400 baud; rows = 61; columns = 120; ypixels = 0; xpixels = 0; csdata ? eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^\; erase = ^?; kill = ^u; eof = ^d; eol = ; eol2 = ; swtch = ; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; -parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk -crtscts -crtsxoff -parext -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc ixon -ixany -ixoff imaxbel isig icanon -xcase echo echoe echok -echonl -noflsh -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3 $ stty erase ^H --ÀÌÁ¦ Á» ÀÚÀ¯·Î¿ö Á³À» °ÍÀÌ´Ù..ÁÖÀÇÇÒ°ÍÀº ¹Ù²Ü¶§ ÇѱÛÀÚ Áö¿ì±â¸¦ eraseÁß¿¡ ÇÑ ´Ü¾î·Î ÇÏÁö ¸»¶ó´Â °ÍÀÌ´Ù. --ÀÌÀ¯´Â ³ªÁß¿¡ ´Ù½Ã ¹Ù²ÙÁö¸¦ ¸øÇϱ⠶§¹®ÀÌ´Ù.. '\'¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù´Âµ¥...¿ì° Àú´Â ¾ÈµÅ´Â±¸¸¸¿ä..ÇæÇæ~ --¾Æ½Î¸® ¹®Á¦²¨¸®¸¦ ÀÏÀ¸Å³ ÁþÀ» ¾ÈÇÏ¸é µÇ´Â °ÍÀÌÁÒ¸Ó.. ================================================================================