Sharedwww / compute.dviOpen in CoCalc
����;� TeX output 1997.06.30:2350�������Š���@����ٍ��e��s���D��tG�G�cmr17�The�7tComputing�Bo�s�ok��,����������X�Qcmr12�William��Stein����������June��30,�1997�����*��Š���@����ٍ���n��&iF�ئ��H�cmbx25�Con��Dhten�ts��>���&iF��"V

cmbx10�1��5iGX��TWindo��9ws��N��1������5iG�K�`y

cmr10�1.1��LiKXF86Cong��|����
�b>

cmmi10�:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����1������5iG1.2��LiKWindo���w�UUManagers��]����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����2������LiK1.2.1��liLFvwm95�������:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����2������&iF�2��5iGNet��9w�orking��N�]8������5iG�2.1��LiKConguring�UUon�Lin���ux��Q����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����8������LiK2.1.1��liLPPP�UUdialup�net���w�orking�@����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����8������&iF�3��5iGData��TStructures��2�H10������5iG�3.1��LiKList�UUStructures��ፑ��:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����10������LiK3.1.1��liLC++�UUIn���teger�Stac�k��ꍑ��:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����10������LiK3.1.2��liLFIF���O�UUQueue��;����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����11������5iG3.2��LiKArra���ys�������:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����12������LiK3.2.1��liLDynamic�UUarra���y�class������:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����12������5iG3.3��LiKGraphs�-퍑��:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����13������LiK3.3.1��liLAdjacency�UUmatrix�simple�graph��ȍ���:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����13������&iF�4��5iGCryptology��K_15������5iG�4.1��LiKSecret�UUKey�Enco�Gding�b�����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����15������LiK4.1.1��liLCeaser�UUCipher�q>����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����15������LiK4.1.2��liLX���OR�UUCipher�
�����:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����15������&iF�5��5iGJa��9v��\ra��mCW16������5iG�5.1��LiKElliptic�UUCurv���e�Graphing�Program��ߍ���:������:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����:�����16����K����ii�������Š���@����ٍ��������iF��=��q�jcmbx20�Chapter�i�1��2�6���iF�X��Windo��Dhws��:�6����iF���Kffffcmbx14�1.1����XF86Cong������iF�My�UU���<x

cmtt10�XF86Config��for�m���y�P�en�tium�200�is�is�as�follo�ws.��Lٍ��iF�Section�?�"Files"����)=RgbPath���"/usr/X11R6/lib/X11/rgb"����)=FontPath���"/usr/X11R6/lib/X11/fonts/misc:unscaled"����)=FontPath���"/usr/X11R6/lib/X11/fonts/75dpi:unscaled"����)=FontPath���"/usr/X11R6/lib/X11/fonts/100dpi:unscaled"����)=FontPath���"/usr/X11R6/lib/X11/fonts/Type1"����)=FontPath���"/usr/X11R6/lib/X11/fonts/Speedo"����)=FontPath���"/usr/X11R6/lib/X11/fonts/misc"����)=FontPath���"/usr/X11R6/lib/X11/fonts/75dpi"����)=FontPath���"/usr/X11R6/lib/X11/fonts/100dpi"�����iFEndSection������iFSection�?�"ServerFlags"�����iFEndSection������iFSection�?�"Keyboard"����)=Protocol�)��"Standard"����)=XkbRules�)��"xfree86"����)=XkbModel�)��"pc101"����)=XkbLayout�$��"us"�����iFEndSection������iFSection�?�"Pointer"����)=Protocol�)��"Microsoft"����)=Device�4�"/dev/mouse"����)=BaudRate�)��1200����)=Emulate3Timeout�?�50����)=Emulate3Buttons�����iFEndSection������iFSection�?�"Monitor"����)=Identifier��"Primary�?�Monitor"����)=VendorName��"Unknown"����)=ModelName�$��"Unknown"����)=HorizSync�$��31.5-64.3����)=VertRefresh�?�50-90���K�����#�1�������Š���@�����&iF�2���!p�0J

cmsl10�CHAPTER�UU1.���X�WINDO���WS����ٍ��vn��6)=�Modeline�
�"1280x1024"�?�110.00�1280�1328�1512�1712�1024�1025�1028�1054����6)=Modeline�
�"1152x864"���92.00�?�1152�1196�1356�1526�864�877�887�923����6)=Modeline�
�"1024x768"���85.00�?�1024�1076�1196�1340�768�776�779�819����6)=Modeline�
�"800x600"���60.75�?�800�816�880�1028�600�616�621�657�-hsync�-vsync����6)=Modeline�
�"640x480"���36.00�?�640�656�712�848�480�481�484�509�-hsync�-vsync����6)=Modeline�
�"640x400"���31.50�?�640�672�736�832�400�401�404�445�-hsync�+vsync����6)=Modeline�
�"512x384"���22.00�?�512�528�592�640�384�385�388�404�-hsync�-vsync����6)=Modeline�
�"480x300"���29.95�?�480�504�584�624�300�319�322�333�doublescan����6)=Modeline�
�"400x300"���25.00�?�400�424�488�520�300�319�322�333�doublescan����6)=Modeline�
�"320x240"���15.75�?�320�336�384�400�240�244�246�262�doublescan����6)=Modeline�
�"320x200"���12.59�?�320�336�384�400�200�204�205�225�doublescan����&iFEndSection�����&iFSection�?�"Device"����6)=Identifier��"Primary�?�Card"����6)=VendorName��"Unknown"����6)=BoardName�$��"Matrox�?�Millennium�(MGA)"����&iFEndSection�����&iFSection�?�"Screen"����6)=Driver�4�"SVGA"����6)=Device�4�"Primary�?�Card"����6)=Monitor�/?�"Primary�?�Monitor"����6)=SubSection�?�"Display"����&iF##�?�comment�out�EXACTLY�one.����&iF#��Depth�)��8����&iF#��Depth�)��15����E�4Depth�)��16����&iF#��Depth�)��24����&iF#��Depth�)��32����E�4Modes�)��"1280x1024"�?�"1152x864"�"1024x768"�"800x600"�"640x480"����6)=EndSubSection����&iFEndSection���"{���&iF�1.2��J��Windo���w�L�Managers��E���&iF� ��N�cmbx12�1.2.1��O�FFvwm95���=��&iF�This�UUis�m���y�conguration�le.���׍�&iF�#############################################################################����&iF#�?�Win95-like�but�very�simple�and�useful�fvwm�configuration�for�working�with�#����&iF#�?�shells�and�emacs�in�X-windows.�
�It�provides�exactly�what�I�need�9��#����&iF#�?�to�work�--�a�clock,�two�buttons:�color-xterm�and�emacs,�and�a�task�bar.���#����&iF#���1997,�?�William�Stein��d#����&iF#############################################################################����&iFWindowFont�?�-adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*����&iFIconFont�?�fixed����&iFMenuFont���-adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*����&iFDefaultColors���Black�?�#c3c3c3�#c3c3c3�grey51����&iFHilightColors���White�?�#000080����&iFStickyColors���grey51�?�#60c080����&iFStyle�?�"*"�ClickToFocus����&iFStyle�?�"*"�NoIcon�������Š���@������iF�1.2.���WINDO���W�UUMANA�GERS���3����ٍ��vn���iF�Style�?�"*"�MWMFunctions�����iFStyle�?�"*"�HintOverride�����iFStyle�?�"*"�MWMDecor�����iFOpaqueMoveSize�?�100�����iFEdgeScroll�?�100�100�����iFEdgeResistance�?�10000�0������iFStyle�?�"*"�RandomPlacement�����iFStyle�?�"*"�NoPPosition������iFDeskTopSize�?�1x1������iFModulePath�?�/usr/X11R6/lib/X11/fvwm95-2/�����iFPixmapPath�?�/usr/include/X11/pixmaps/:/usr/local/mini-icons/�����iFIconPath���/usr/include/X11/bitmaps/:/usr/local/icons/������iFStyle�?�"*"�BorderWidth�5,�HandleWidth�5������iFStyle�?�"Fvwm*"�)��NoTitle,�Sticky,�WindowListSkip�����iFStyle�?�"Fvwm�Pager"���StaysOnTop,�NoHandles�����iFStyle�?�"FvwmBanner"���StaysOnTop�����iFStyle�?�"FvwmButtons"�
�NoTitle,�NoHandles,�Sticky,�WindowListSkip,BorderWidth�5�����iFStyle�?�"*lock"�)��NoTitle,�NoHandles,�Sticky,�WindowListSkip�����iFStyle�?�"xbiff"�)��NoTitle,�>��Sticky,�WindowListSkip������iF#�?�Some�mini-icons�for�the�title�bar�����iFStyle�?�"*"�/?�TitleIcon�mini-x2.xpm�����iFStyle�?�"xterm"�?�TitleIcon�mini-sh1.xpm�����iFStyle�?�"emacs"�?�TitleIcon�mini-paint.xpm�����iFStyle�?�"netscape"�
�TitleIcon�mini-nscape.xpm������iF#�?�#########�INIT:�programs�automatically�run�at�start�up.�����iFAddToFunc�?�"InitFunction"���"I"�Exec�xsetroot�-solid�cyan4�&�����iF+����"I"�?�Module�FvwmButtons�����iF+����"I"�?�Module�FvwmTaskBar�����iF+����"I"�?�Exec�emacs�-geometry�86x62+29+8�-font�8x13�-name�"book�emacs"�~/book/tb.tex�����iF+����"I"�?�Exec�xterm�-geometry�85x7+207+870�-ls�-sb�-sl�512�-title�"commands"�����iF+����"I"�?�Exec�xterm�-geometry�81x24+752+648�-ls�-sb�-iconic�-sl�512�-title�"term"�����iF+����"I"�?�Exec�xdvi�-geometry�860x965+408+2�-iconic�-s�3�~/book/tb.dvi�����iF+����"I"�?�Exec�xdvi�-geometry�672x828+594+3�-iconic�-s�4�~/book/tb.dvi�����iF+��"I"�?�Exec�netscape�-geometry�581x955+685+7�-iconic������iFAddToFunc�?�"RestartFunction"�"I"�Module�FvwmButtons�����iF+����"I"�?�Module�FvwmTaskBar�����iFAddToFunc�?�"Move-or-Raise"�"M"�Move�����iF+��?�"M"�?�Raise�����iF+��?�"C"�?�Raise�����iF+��?�"D"�?�Maximize�100�100�����iFAddToFunc�?�"Move-or-Lower"�"M"�Move�����iF+��?�"M"�?�Lower�����iF+��?�"C"�?�Lower�����iF+��?�"D"�?�RaiseLower�����iFAddToFunc�?�"Move-or-Iconify"�"M"�Move�����iF+����"D"�?�Iconify�����iFAddToFunc�?�"Resize-or-Raise"�"M"�Resize�����& ��Š���@�����&iF�4���CHAPTER�UU1.���X�WINDO���WS����ٍ��vn��&iF�+����"M"�?�Raise����&iF+����"C"�?�Raise����&iF+����"D"�?�RaiseLower�����&iFAddToMenu�?�"StartMenu"����&iF+�?�"Screensavers�?�%mini-bball.xpm%"�$��Popup���Screensaver1����&iF+�?�"Screensavers�?�%mini-bball.xpm%"�$��Popup���Screensaver2����&iF+�?�"lidia�manual�?�%mini-man.xpm%"�/?�Exec���xdvi�-s�4�/extra/LiDIA/doc/man.dvi�-geometry�674x857+589+4����&iF+�?�"pari�manual�?�%mini-man.xpm%"�/?�Exec���xdvi�-s�4�/usr/local/pari/doc/users.dvi�-geometry�674x857+589+4����&iF+�?�"xterm�?�%mini-sh1.xpm%"�/?�Exec���xterm�-sl�500�-ls�-sb�&����&iF+�?�"emacs�>��%mini-paint.xpm%"��Exec���emacs�-fn�8x13�&����&iF+�?�"netscape�/?�%mini-nscape.xpm%"��Exec���netscape�&����&iF+�?�""����Nop����&iF+�?�""����Nop����&iF+�?�"Exit�Fvwm95��%mini-stop.xpm%"�)��Popup���Quit-Verify�����&iFAddToMenu�?�"Screensaver1"�"Screensaver�(a-h)"�Title����&iF+�?�"Ant%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�ant�&����&iF+�?�"Bat%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�bat�&����&iF+�?�"Blank%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�blank�&����&iF+�?�"Blot%mini-bball.xpm%"�Exec�xlock�-nolock�-nice�0�-mode�blot�&����&iF+�?�"Bouboule%mini-bball.xpm%"�Exec�xlock�-nolock�-nice�0�-mode�bouboule�&����&iF+�?�"Bob%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�image�&����&iF+�?�"Bounce%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�bounce�&����&iF+�?�"Braid%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�braid�&����&iF+�?�"Bug%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�bug�&����&iF+�?�"Clock%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�clock�&����&iF+�?�"Demon%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�demon�&����&iF+�?�"Eyes%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�eyes�&����&iF+�?�"Flag%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�flag�&����&iF+�?�"Flame%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�flame�&����&iF+�?�"Forest%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�forest�&����&iF+�?�"Galaxy%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�galaxy�&����&iF+�?�"Geometry%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�geometry�&����&iF+�?�"Grav%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�grav�&����&iF+�?�"Helix%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�helix�&����&iF+�?�"Hop%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�hop���&����&iF+�?�"Hyper%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�hyper�&�����&iFAddToMenu�?�"Screensaver2"�"Screensaver�(i-z)"�Title����&iF+�?�"Kaleid%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�kaleid�&����&iF+�?�"Laser%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�laser�&����&iF+�?�"Life%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�life�&����&iF+�?�"Life1d%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�life1d�&����&iF+�?�"Life3d%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�life3d�&����&iF+�?�"Lissie%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�lissie�&����&iF+�?�"Marquee%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�marquee�&����&iF+�?�"Maze%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�maze�&����&iF+�?�"Mountain%mini-bball.xpm%"�Exec�xlock�-nolock�-nice�0�-mode�mountain�&����&iF+�?�"Nose%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�nose�&����&iF+�?�"Petal%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�petal�&����&iF+�?�"Puzzle%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�puzzle�&����&iF+�?�"Pyro%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�pyro�&����&iF+�?�"Qix%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�qix�&����&iF+�?�"Random%mini-bball.xpm%"�Exec�xlock�-nolock�-nice�0�-mode�random�&�����/���Š���@������iF�1.2.���WINDO���W�UUMANA�GERS���5����ٍ��vn���iF�+�?�"Rock%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�rock�&�����iF+�?�"Rotor%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�rotor�&�����iF+�?�"Shape%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�shape�&�����iF+�?�"Slip%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�slip�&�����iF+�?�"Sphere%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�sphere�&�����iF+�?�"Spiral%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�spiral�&�����iF+�?�"Spline%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�spline�&�����iF+�?�"Swarm%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�swarm�&�����iF+�?�"Swirl%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�swirl�&�����iF+�?�"Triangle%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�triangle�&�����iF+�?�"Wator%mini-bball.xpm%"���Exec�xlock�-nolock�-nice�0�-mode�wator�&�����iF+�?�"World%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�world�&�����iF+�?�"Worm%mini-bball.xpm%"�
�Exec�xlock�-nolock�-nice�0�-mode�worm�&�����iFAddToMenu�?�"Quit-Verify"�"Quit?"�Title�����iF+�?�"Restart%mini-turn.xpm%"�Restart�fvwm95-2�����iF+�?�""�
�Nop�����iF+�?�"Yes,�Quit%mini-exclam.xpm%"�Quit�����iF+�?�"No,�Don't�Quit%mini-cross.xpm%"�
�Nop�����iFAddToMenu�?�"Window"�"Window�Ops"�Title�����iF+�?�"&Move"�n?�Function�Move-or-Raise�����iF+�?�"&Resize"�c��Function�Resize-or-Raise�����iF+�?�"R&aise%mini-raise.xpm%"���Raise�����iF+�?�"&Lower%mini-lower.xpm%"���Lower�����iF+�?�"(De)Iconify"�N��Iconify�����iF+�?�"(Un)Stick"�Y?�Stick�����iF+�?�"(Un)Maximize"�I�Maximize�100�100�����iF+�?�""���Nop�����iF+�?�"Kill"�s�Destroy�����iF+�?�"&Close"�h��Delete�����iF+�?�""���Nop�����iF+�?�"Switch�to..."�I�WindowList�����iF+�?�"Refresh�Screen%mini-ray.xpm%"�Refresh�����iFAddToMenu�?�"Window-Ops2"�"&Restore"�)��Iconify�-1�����iF+�x��"&Move"�9��Move-or-Raise�����iF+�x��"&Size"�9��Resize-or-Raise�����iF+�x��"Mi&nimize"�$��Iconify�?�1�����iF+�x��"Ma&ximize"�$��Maximize�?�100�100�����iF+�x��""�S��Nop�����iF+�x��"&Kill"�9��Destroy�����iF+�x��"&Close�?�Alt+F4"���Delete�����iFAddToFunc�?�"window_ops_func"�"C"�PopUp�Window-Ops2�����iF+�I�"M"�?�PopUp�Window-Ops2�����iF+�I�"D"�?�Delete�����iF#�?�Button�?�Context�Modifi�
�Function�����iFMouse�?�1�R���A�$��Menu�"Utilities"�Nop�����iFMouse�?�2�R�?�A�$��Menu�"Window�Ops"�Nop�����iFMouse�?�3�/?�R�$��A�WindowList�����iF#Mouse�?�3�R�?�A�$��Module�"winlist"�FvwmWinList�transient�����iF#�?�Button�?�Context�Modif�
�Function�����iFMouse�?�0�1�?�A�$��Function�"window_ops_func"�����iFMouse�?�1�/?�2�$��A�Delete�����iFMouse�?�0�4�?�A��Maximize�100�100�����iFMouse�?�0�6�?�A��Iconify�����iFMouse�?�1�F�A�Function�"Resize-or-Raise"�����iFMouse�?�1�TS�A�Function�"Move-or-Raise"�����>���Š���@�����&iF�6���CHAPTER�UU1.���X�WINDO���WS����ٍ��vn��&iF�Mouse�?�1�I�A�Function�"Move-or-Iconify"����&iFMouse�?�2�I�A�Iconify����&iFMouse�?�2�FST�A�Function�"window_ops_func"����&iFMouse�?�3�TSIF�A�RaiseLower����&iFMouse�?�3�/?�W�$��M�RaiseLower����&iF#�?�Arrow�Keys����&iF#�?�press�arrow�+�control�anywhere,�and�scroll�by�1�page����&iFKey�?�Left�A�C�Scroll�-100�0����&iFKey�?�Right�A�C�Scroll�+100�+0����&iFKey�?�Up�A�C�Scroll�+0���-100����&iFKey�?�Down�A�C�Scroll�+0���+100�����&iF#�?�press�arrow�+�meta�key,�and�scroll�by�1/10�of�a�page����&iFKey�?�Left�A�M�Scroll�-10�+0����&iFKey�?�Right�A�M�Scroll�+10�+0����&iFKey�?�Up�A�M�Scroll�+0���-10����&iFKey�?�Down�A�M�Scroll�+0���+10�����&iF#�?�press�shift�arrow�+�control�anywhere,�and�move�the�pointer�by�1%�of�a�page����&iFKey�?�Left�A�SC�CursorMove�-1�0����&iFKey�?�Right�A�SC�CursorMove�+1�+0����&iFKey�?�Up�A�SC�CursorMove�+0���-1����&iFKey�?�Down�A�SC�CursorMove�+0���+1�����&iF#�?�press�shift�arrow�+�meta�key,�and�move�the�pointer�by�1/10�of�a�page����&iFKey�?�Left�A�SM�CursorMove�-10�+0����&iFKey�?�Right�A�SM�CursorMove�+10�+0����&iFKey�?�Up�A�SM�CursorMove�+0���-10����&iFKey�?�Down�A�SM�CursorMove�+0���+10�����&iF#�?�Keyboard�accelerators����&iFKey�?�F1�A�M�Popup�"Utilities"����&iFKey�?�F1�A�M�Popup�"Utilities"����&iFKey�?�F2�A�M�Popup�"Window�Ops"����&iFKey�?�F3�A�M�Module�"WindowList"�FvwmWinList����&iFKey�?�F4�A�M�Iconify����&iFKey�?�F5�A�M�Move����&iFKey�?�F6�A�M�Resize����&iFKey�?�F7�A�M�CirculateUp����&iFKey�?�F8�A�M�CirculateDown�����&iFKey�?�Tab�/?�A�$��M�Prev�Focus����&iFKey�?�Tab�/?�A�$��MS��Next�Focus�����&iFKey�?�Escape��A�$��C�WindowList�����&iF#------------------�?�Pager����&iF*FvwmPagerBack�?�grey60����&iF*FvwmPagerFore�?�black����&iF*FvwmPagerFont�?�-adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*����&iF*FvwmPagerHilight�?�#c3c3c3����&iF*FvwmPagerGeometry�?�-1-1����&iF*FvwmPagerLabel�?�0�Desktop����&iF*FvwmPagerSmallFont�?�5x8������J��Š���@������iF�1.2.��WINDO���W�UUMANA�GERS��r�7����ٍ��vn���iF�#------------------�?�FvwmButtons�����iF*FvwmButtonsFore�?�Black�����iF*FvwmButtonsBack�?�#c3c3c3�����iF*FvwmButtonsFont�?�-adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*�����iF#�?�Geometry�-�really�likes�to�pick�its�own�size,�but�giving�a�position�is�OK�����iF*FvwmButtonsGeometry�?�+5-34�����iF#�?�Layout:�specify�rows�or�columns,�not�both�����iF*FvwmButtonsRows�?�1������iF#�?�Define�the�buttons�to�use.....�����iF*FvwmButtons�?�xterm���mini-sh1.xpm�Exec�
�"xterm"�xterm�-ls�-sb�-sl�500�-title�"xterm"�����iF*FvwmButtons�?�emacs���mini-paint.xpm�Exec���"emacs"�emacs�-fn�8x13�����iF*FvwmButtons�?�netscape�mini-nscape.xpm�Exec���"netscape"�netscape�����iF#*FvwmButtons�?�xv�$��mini-xv.xpm�Exec�"xv"�xv�����iF#*FvwmButtons�?�xpaint���mini-paint.xpm�Exec�
�"xpaint"�xpaint������iF#------------------�?�FvwmWinList�����iF*FvwmWinListBack�?�#c3c3c3�����iF*FvwmWinListFore�?�Black�����iF*FvwmWinListFont�?�-adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*�����iF*FvwmWinListAction�?�Click1�Iconify�-1,Focus�����iF*FvwmWinListAction�?�Click2�Iconify�����iF*FvwmWinListAction�?�Click3�Module�"FvwmIdent"�FvwmIdent�����iF*FvwmWinListUseSkipList�����iF*FvwmWinListGeometry�?�+0-1������iF#------------------�?�FvwmTaskBar�����iFStyle�?�"FvwmTaskBar"�NoTitle,BorderWidth�4,HandleWidth�4,Sticky,StaysOnTop,WindowListSkip,CirculateSkip������iF*FvwmTaskBarGeometry�?�+0-0�����iF*FvwmTaskBarFore�?�Black�����iF*FvwmTaskBarBack�?�#c3c3c3�����iF*FvwmTaskBarTipsFore�?�black�����iF*FvwmTaskBarTipsBack�?�bisque�����iF*FvwmTaskBarFont�?�-adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*�����iF*FvwmTaskBarSelFont�?�-adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-*-*�����iF*FvwmTaskBarAction�?�Click1�Iconify�-1,Raise,Focus�����iF*FvwmTaskBarAction�?�Click2�Iconify�����iF*FvwmTaskBarAction�?�Click3�Module�"FvwmIdent"�FvwmIdent�����iF*FvwmTaskBarUseSkipList�����iF*FvwmTaskBarAutoStick�����iF*FvwmTaskBarStartName�?�Start�����iF*FvwmTaskBarStartMenu�?�StartMenu�����iF*FvwmTaskBarStartIcon�?�mini-exp.xpm�����iF*FvwmTaskBarShowTips�����iF*FvwmTaskBarMailProg�?�xterm�-e�mail�����R��Š���@����ٍ���ƍ�&iF�Chapter�i�2��2X��&iF�Net��Dhw�orking��:X���&iF�2.1��J��Conguring�L�on�Lin���ux���鍍�&iF�2.1.1��O�FPPP��dialup�net��w�orking���"��&iF�I���am��using�PPP�on�m���y�Lin�ux�system.�1WT��*�o�congure�lin�ux�net�w�orking�one�ma�y�ha�v�e�to�mo�Gdify�the����&iFfollo���wing�۝les:�~W�/etc/hosts�,��/�/etc/resolv.conf�,��/etc/rc.d/rc.inet2�.��I��zonly�had�to�mo�Gdify����&iFthe�UUrst�t���w�o.��X��5iFMy�UU�/etc/hosts��is:��_��&iF�127.0.0.1�?�localhost����&iF127.0.0.1�?�number����5iF�My�UU�/etc/resolv.conf��is:����&iF�domain�?�autobahn.org����&iFnameserver�?�206.79.223.27����&iFnameserver�?�206.79.223.28����&iFnameserver�?�206.79.223.100����&iFaddress�
�206.79.223.27�?�206.79.223.28�206.79.223.100����5iF�T��*�o��4connect�I��use�the�command��dip�?�autobahn.dip�2>&1��4�where��autobahn.dip��is�the�follo���w-����&iFing�UUscript.����&iF�#Make�?�a�PPP�connection�with�autobahn�ISP�
�647-0500����&iFget�?�$mtu�1006����&iFport�?�modem����&iFspeed�?�57600����&iFinitialize:����&iFprint�?�Initializing�modem...����&iFsend�?�atz0\n����&iFprint�?�Dialing�AutoBahn,�call�waiting�disabled�(*70--6470500).�����&iFdialseq:����&iF#�?�Need�t�prefix�for�tone�dial.����&iFprint�?�Dialing����&iFdial�?�t*70--6470500�����&iF#�?�BUSY����&iFif�?�$errlvl�==�3�goto�redial����&iF#�?�ERROR����&iFif�?�$errlvl�==�2�goto�error����&iF#�?�NO�CARRIER���K�����#�8����	Z���Š���@������iF�2.1.��CONFIGURING�UUON�LINUX�
�9����ٍ��vn���iF�if�?�$errlvl�==�4�goto�redo�����iF#�?�OK�����iFif�?�$errlvl�==�0�goto�redo�����iF#�?�NO�DIALTONE�����iFif�?�$errlvl�==�5�goto�redo������iFprint�?�Connected...�����iFwait�?�login:�120�����iFif�?�$errlvl�!=�0�goto�fatal�����iFprint�?�login:�was�����iFsend�?�was\n�����iFwait�?�assword:�120�����iFif�?�$errlvl�!=�0�goto�fatal�����iFprint�?�password:�xxxxxxx�����iFsend�?�my_password������iF##�?�Get�the�dynamically�allocated�names.�����iFget�?�$remote�remote�����iFif�?�$errlvl�!=�0�goto�error�����iF#�?�Get�local�IP�address�from�server,�assign�to�variable�$local.�����iFget�?�$local�remote�����iFif�?�$errlvl�!=�0�goto�error������iF#�?�Set�up�default�route.�����iFdefault�����iFprint�?�Default�route...������iFprint�?�Setting�up�PPP�connection...�����iFprint�?�$local�(local)�<-->�$remote�(remote)�����iFmode�?�PPP������iFgoto�?�exit�����iFerror:�����iFprint�?�Error�detected,�reinitializing�modem�and�restarting...�����iFgoto�?�initialize������iFredial:�����iFprint�?�Busy�signal�detected,�redialing...�����iFgoto�?�dialseq������iFredo:�����iFprint�?�Dial�sequence�failed,�retrying...�����iFgoto�?�dialseq������iFfatal:�����iFprint�?�Fatal�error�occured,�exiting...������iFexit:�����
`t��Š���@����ٍ���Χ��&iF�Chapter�i�3��2�9��&iF�Data��Structures��:�9���&iF�3.1��J��List�L�Structures��f獍�&iF�3.1.1��O�FC++��In��teger�Stac�k��� ��&iF�This�UUis�a�C++�link���ed�list�implemen�tation�of�a�stac�k�of�in�tegers.��8㍑&iF�//�?�stack.C�--�a�stack�class����&iF#include<iostream.h>�����&iFclass�?�Node�{����0�@int�?�data;����0�@Node*�?�below;����&iFpublic:����0�@Node(Node*�?�node,�int�n=0)�{�below=node;�data=n;}����0�@~Node()�?�{�if(below)�delete�below;�}����0�@//�?�Chop�off�the�node�from�the�buttom�of�the�stack.�
�Returns�the�top����0�@//�?�of�the�stack�which�was�just�chopped�off�and�is�left�dangeling�below.����0�@Node*�?�Chop()�{�Node*�temp=below;�below=NULL;�return�temp;�}����0�@int�?�Data()�{�return�data;�}����&iF};�����&iFclass�?�Stack�{����0�@Node*�?�top;����&iFpublic:����0�@Stack()�?�{�top=NULL;�}����0�@~Stack()�?�{�if(top)�delete�top;�}����0�@void�?�Push(int�data)�{�Node*�temp=new�Node(top,data);�top=temp;�}����0�@int�?�Pop()�{�if(top!=NULL)�{����E�4Node*�?�temp=top;����E�4int�?�data=top->Data();����E�4top=top->Chop();����E�4delete�?�temp;����E�4return�?�data;����;i:}����;i:cout�?�<<�"Error:�Pop�from�empty�stack!"�<<�endl;�return�0;����0�@}����&iF};�����&iFmain()�?�{����0�@Stack�?�s;���K����i#�10����e���Š���@������iF�3.1.��LIST�UUSTR���UCTURES��X�11����ٍ��vn����@�for(int�?�i=1;i<10;i++)�s.Push(i*i);������@for(int�?�i=1;i<5;i++)�cout�<<�s.Pop()�<<�endl;�����iF}��0I�����iF�3.1.2���FFIF��O��Queue�����iF�The��follo���wing�is�a�rst-in-rst-out�(FIF�O)��queue�of�in�tegers�implemen�ted�in�C++.���It�uses�a�����iF\sen���tinel"��no�Gde�so�that�when�the�queue�is�empt�y�there�are�less�sp�Gecial�cases�to�tak�e�care�of.�����iFThink�UUof�the�sen���tinel�as�a�guard�who�alw�a�ys�stands�at�the�fron�t�of�the�queue.��#L썑�iF�//�?�fifo.C�--�a�linked�list�FIFO�queue�of�integers.�����iF#include<iostream.h>������iFclass�?�Node�{������@int�?�n;������@Node*�?�next;�����iFpublic:������@Node(int�?�ini_n=0,�Node*�ini_next=0)�:�n(ini_n),�next(ini_next)�{�}������@~Node()�?�{�if(next)�delete�next;�}������@int�?�N()�{�return�n;�}������@void�?�SetNext(Node*�new_next)�{�next=new_next;�}������@Node*�?�GetNext()�{�return�next;�}�����iF};������iFclass�?�Fifo�{������@Node�?�*front,�*back;�
�//�front�and�back�of�queue,�insert�in�back,�take�from�front.�����iFpublic:������@Fifo()�?�{�front=back=new�Node;�}�
�//�create�sentinel.������@~Fifo()�?�{�delete�front;�}������@void�?�EnQueue(int�n)�{����i:back->SetNext(new�?�Node(n,0));����i:back=back->GetNext();������@}������@int�?�DeQueue()�{����i:if(front==back)�����4{�?�cerr<<"DeQueue�error:�there�is�nothing�in�the�queue."<<endl;�return�0;�}����i:Node*�?�AfterSent=front->GetNext();����i:int�?�n=AfterSent->N();����i:front->SetNext(AfterSent->GetNext());����i:AfterSent->SetNext(0);�?�delete�AfterSent;����i://�?�if�we�just�deleted�what�back�pointed�to,�set�it�to�point�at�the�sentinel.����i:if(front->GetNext()==0)�?�{�back=front;�}����i:return�?�n;������@}�����iF};������iFmain()�?�{������@Fifo�?�fifo;������@for(int�?�i=0;i<25;i++)�fifo.EnQueue(i);������@for(int�?�i=0;i<25;i++)�cout<<fifo.DeQueue()<<"�";������@cout<<endl;�����iF}�����j֠�Š���@�����&iF�12����CHAPTER�UU3.���D���A��*�T�A�STR���UCTURES����ٍ��vn���&iF�3.2��J��Arra���ys������&iF�3.2.1��O�FDynamic��arra��y�class��uT��&iF�This�˜class�is�a�C++�in���teger�arra�y��*�.���It�is�dynamically�allo�Gcated�so�the�user�can�mak�e�arra�ys�of����&iFan���y���size�during�execution.�It�can�b�Ge�resized,���the�old�arra�y�b�Geing�copied�in�to�the�new�arra�y��*�,���as����&iFb�Gest�qas�p�ossible.���It�has�a�cop���y�constructor�and�an�equalit�y�op�Gerator.���All�en�tries�are�initialized����&iFto�6�0.�g�It�is�robust:�b_if�the�calling�program�tries�to�access�an�in���v��q�alid�comp�Gonen�t�of�the�arra�y��*�,�<�then����&iFan��'error�message�is�rep�Gorted�and�a�dumm���y�data�lo�cation�is�set�up�to�b�e�used�in�place�of�the����&iFin���v��q�alid��arra�y�en�try��*�.�Y=Th�us�the�program�con�tin�ues�to�execute.�Y=The��[�?�]��op�Gerator�is�o�v�erloaded,�qso����&iFif�SR�a��is�an��IntArray�,�S�then��a[5]=2��assigns�2�to�the�sixth�comp�Gonen���t�of��a��(the�rst�comp�onen���t�is����&iF�a[0]�.���#��&iF�//�?�array.C�--�robust�dynamic�integer�array.����&iF#include<iostream.h>����&iFclass�?�IntArray�{����0�@int*�?�a;����0�@int�?�size;����0�@int�?�ErrorCheck(char*�message,�int�prop)�{����;i:if(!prop)�?�cerr�<<�"Error:�"�<<�message�<<�"!"�<<�endl;����;i:return�?�prop;����0�@}����&iFpublic:����0�@IntArray(int�?�n=0)�:�size(n)�{����;i:a=new�?�int[size];�for(int�i=0;i<size;i++)�a[i]=0;����0�@}����0�@IntArray(const�?�IntArray&�other)�{����;i:size=other.size;�?�a=new�int[size];����;i:for(int�?�i=0;i<size;i++)�a[i]=other.a[i];����0�@}����0�@~IntArray()�?�{�delete�a;�}����0�@int&�?�operator[](int�n)�{����;i:if(ErrorCheck("array�?�access�out�of�bounds",0<=n�&&�n<size))�return�a[n];����;i:else�?�{�static�int�bad;�return�bad;�}����0�@}����0�@int�?�get(int�n)�const�{����;i:if(ErrorCheck("array�?�access�out�of�bounds",0<=n�&&�n<size))����E�4return�?�a[n];����;i:else�?�return�0;����0�@}����0�@int�?�operator==(const�IntArray&�other)�{����;i:if(size!=other.size)�?�return�0;����;i:for(int�?�i=0;i<size;i++)�if(a[i]!=other.a[i])�return�0;����;i:return�?�1;����0�@}����0�@void�?�resize(int�newsize)�{����;i:int*�?�t=new�int[newsize];����;i:int�?�i,�cpsize=(size<newsize)?size:newsize;����;i:for(i=0;i<cpsize;i++)�?�t[i]=a[i];����;i:for(;i<newsize;i++)�?�t[i]=0;����;i:delete�?�a;�a=t;����;i:size=newsize;����0�@}����0�@void�?�print()�const�{����@�7cout<<"<";�?�for(int�i=0;i<size;i++)�cout<<a[i]<<((i<size-1)?",":">\n");����0�@}�����
r���Š���@������iF�3.3.���GRAPHS�S5�13����ٍ��vn����@�int�?�length()�const�{�return�size;�}�����iF};��s���iF�Here��is�a�recursiv���e�merge�sort�program�whic�h�demonstrates�the�use�of��IntArray�.�\�[Can�it�b�Ge�����iFmade�5�more�ecien���t�b�y�a�v�oiding�all�of�the�copies?�g.As�is,�;�it�can�sort�an�arra�y�of�25000�en�tries�in�����iFa�UUsecond.]������iF�//�?�given�two�IntArray's,�assumed�sorted,�creates�a�third�IntArray,�����iF//�?�sort-merges�them�into�it�and�returns�a�pointer�to�the�new�IntArray.�����iFIntArray*�?�SortedMerge(const�IntArray&�a,�const�IntArray&�b)�{������@IntArray*�?�c�=�new�IntArray(a.length()+b.length());������@int�?�ai=0,�bi=0;������@for(int�?�i=0;i<c->length();i++)�{����i:if(ai==a.length())�����4(*c)[i]=b.get(bi++);����i:else�?�if(bi==b.length())�����4(*c)[i]=a.get(ai++);����i:else�����4(*c)[i]=(a.get(ai)<b.get(bi))?a.get(ai++):b.get(bi++);������@}������@return�?�c;�����iF}������iFvoid�?�Sort(IntArray&�a)�{������@if(a.length()<=1)�?�return;������@if(a.length()==2)�?�{����i:if(a[0]>a[1])�?�{int�t=a[0];a[0]=a[1];a[1]=t;}����i:return;������@}������@int�?�i,�half=a.length()/2;������@IntArray�?�left(half),�right(a.length()-half);������@for(i=0;i<half;i++)�?�left[i]=a[i];������@for(;i<a.length();i++)�?�right[i-half]=a[i];������@Sort(left);�?�Sort(right);������@IntArray*�?�c=SortedMerge(left,right);������@a=*c;�����iF}������iFmain()�?�{������@IntArray�?�a(25000);������@for(int�?�i=0;i<25000;i++)�a[i]=(i*i)%25000;������@cout�?�<<�"start�sorting..."�<<�endl;������@Sort(a);������@cout�?�<<�"Done!"�<<�endl;�����iF}�� �/����iF�3.3����Graphs�������iF�3.3.1���FAdjacency��matrix�simple�graph��uT���iF�The�*�follo���wing�is�a�C++�implemen�tation�of�a�simple�graph�using�a�dynamically�allo�Gcated�upp�er�����iFtriangular��adjacency�matrix.��SIt�is�go�Go�d��for�smaller�or�dense�graphs,�9but�not�for�large�sparse�����iFgraphs�UUha���ving�man�y�v�ertices�but�few�edges.�����iF�//�?�graph1.C�--�adjacency�matrix�implementation�of�a�(simple)�graph�class.�����iF#include<iostream.h>�����|���Š���@�����&iF�14��jV�CHAPTER�UU3.��D���A��*�T�A�STR���UCTURES����ٍ��vn���&iF�void�?�ERROR(const�char*�offender)�{�cout<<"Error�in:�"<<offender<<endl;�exit(0);}�����&iFtypedef�?�char�BOOL;����&iFconst�?�BOOL�FALSE=0,�TRUE=1;����&iFconst�?�char*�BOOLSTRING[]={"FALSE","TRUE"};�����&iFclass�?�Graph�{����0�@BOOL**�?�m;�
�//�(dynamically�allocated)�upper�triangular�adjacency�matrix.����0�@int�?�size;�
�//�number�of�vertices����&iFpublic:����0�@Graph(int�?�n)�:�size(n)�{����;i:if(size<0)�?�ERROR("Graph::Graph�--�invalid�graph�size");����;i:m=new�?�(BOOL*)[size];����;i:for(int�?�i=0;i<size;i++)�{�//�make�upper�triangular�matrix.����E�4m[i]=new�?�BOOL[i+1];����E�4for(int�?�j=0;j<i+1;j++)�m[i][j]=FALSE;���//�initialized�to�FALSE.����;i:}����0�@}����0�@~Graph()�?�{�for(int�i=0;i<size;i++)�delete�m[i];�delete�m;�}����0�@void�?�Print()�{����;i:for(int�?�i=0;i<size;i++)����E�4for(int�?�j=0;j<=i;j++)����Pi.if(m[i][j]==TRUE)�?�cout<<"["<<i<<"]------["<<j<<"]"<<endl;����0�@}����0�@void�?�MakeEdge(int�v1,�int�v2)�{����;i:if(v1<0||v2<0||v1>=size||v2>=size)�?�ERROR("Graph::MakeEdge�--�invalid�vertices");����;i:if(v1>=v2)�?�m[v1][v2]=TRUE;�else�m[v2][v1]=TRUE;����0�@}����0�@BOOL�?�IsEdge(int�v1,�int�v2)�{����;i:if(v1<0||v2<0||v1>=size||v2>=size)�?�ERROR("Graph::IsEdge�--�invalid�vertices");����;i:if(v1>=v2)�?�return�m[v1][v2];�else�return�m[v2][v1];����0�@}����&iF};�����&iFmain(){����0�@//�?�this�class�is�good�for�small�graphs.����0�@Graph�?�G(10);�G.MakeEdge(2,1);�G.Print();����0�@cout�?�<<�BOOLSTRING[G.IsEdge(5,1)]�<<�",�"�<<�BOOLSTRING[G.IsEdge(2,1)]�<<�endl;����0�@for(int�?�i=0;i<8;i++)�G.MakeEdge(i,1);�
�G.Print();����0�@//�?�but�for�large�sparse�graphs�it�is�disastrously�inefficient.����0�@Graph�?�H(10000);����0�@for(int�?�i=0;i<10000;i++)�H.MakeEdge(i,0);����0�@H.Print();����&iF}��������Š���@����ٍ���n���iF�Chapter�i�4��2���iF�Cryptology��:����iF�4.1����Secret�L�Key�Enco�qding�������iF�4.1.1���FCeaser��Cipher��uT���iF�C++��TImplemen��9tation�of�Ceaser�Cipher�����iF�/*�?�ceaser.c�--�ceaser�cipher:�shifts�characters�from�stdin�a�given�amount.�*/�����iF#include<stdio.h>�����iFint�?�main(int�argc,�char*�argv[])�{����)=char�?�c;�int�n;����)=if(argc!=2)�?�{�fprintf(stderr,"usage:�%s�[shift-by]\n",argv[0]);�return�1;�}����)=n=atoi(argv[1]);����)=while(EOF!=scanf("%c",&c))�?�printf("%c",c+n);����)=return�?�0;�����iF}���6����iF�4.1.2���FX��OR��Cipher��uT���iF�The��4follo���wing�is�an�xor�cipher.�PgAlthough�it�is�easily�brok�en�it�is�commonly�used�in�Mac�and�PC�����iFsoft���w�are��and�is�touted�as�\b�Geing�more�secure�than�DES."�F��*�rom�standard�input�it�tak���es�plain�text�����iFor��	ciphertext.�R�The�output�is�the�corresp�Gonding�ciphertext�or�plain���text.�Successiv�e��	letters�of�the�����iFencryption�UUk���ey�are�X�OR'd�with�eac�h�c�haracter�of�input.�q�See�page�12�of�[�?�].�����iF�/*�?�xor.c�--�xor�cipher�*/�����iF#include<stdio.h>�����iFint�?�main(int�argc,�char*�argv[])�{������@char�?�c;�char*�key=argv[1];������@if(argc!=2)�?�{�fprintf(stderr,"usage:�%s�key\n",�argv[0]);�return�0;�}������@while(EOF!=scanf("%c",&c))�?�{����i:if(*key==0)�?�key=argv[1];����i:c�?�^=�*(key++);����i:printf("%c",c);������@}������@return�?�1;�����iF}�����iF�Here���is�ho���w�to�use��xor�.�?�The�command��xor�?�dona�<�xor.c�>�xor.encrypted����creates�an�en-�����iFcrypted��le��xor.encrypted�.�WGThe�command��xor�?�dona�<�xor.encrypted�Ӳoutputs�the�plain���text�����iFof�UU�xor.c�.���K����i#15�����U��Š���@����ٍ�����&iF�Chapter�i�5��2���&iF�Ja��Dhv����a��:����&iF�5.1��J��Elliptic�L�Curv���e�Graphing�Program����&iF�The�g�follo���wing�program�is�a�v�ery�simple�in�teractiv�e�to�Gol�for�understanding�ho�w�the�shap�Ge�of����&iFan�t�elliptic�curv���e�v��q�aries�as�the�parameters�whic�h�dene�it�v��q�ary��*�.�ІT�o�t�me�the�co�Gde�seems�v�ery����&iFbad,�IVbut��the�program�itself�seems�to�w���ork�
a�wlessly��*�.��bT�o��use�this�I�Vrst�compiled�the�source����&iFle�I
�Elliptic.java��to�pro�Gduce�the�b���yte�co�de��Elliptic.class��using�the�command��javac����&iFElliptic.java�.�*7Then���I���ran�the�program�using�either�the�Sun�appletview���er�or�Netscap�Ge.�The����&iFle�UU�go.html��is:��F���&iF�<title>Elliptic�?�Curve�Grapher</title>����&iF<hr>�?�<applet�code=Elliptic.class�width=400�height=400>�</applet>�<hr>����&iF<a�?�href="Elliptic.java">Source.</a>��5��&iF�The�UUsource�le��Elliptic.java��is:����&iF�//�?�elliptic.java�--�Play�with�an�elliptic�curve.�(by�William�Stein,�6/30/97)����&iFimport�?�java.applet.*;����&iFimport�?�java.awt.*;�����&iFpublic�?�class�Elliptic�extends�java.applet.Applet�{����0�@private�?�static�double�step=0.05;����0�@private�?�double�a=0,b=0,����U�+scale_x=75,scale_y=75;����0�@private�?�Button�a_up_button,�a_down_button,�b_up_button,�b_down_button;�����0�@public�?�void�init()�{����;i:super.init();����;i:a_up_button=new�?�Button("Increase�a");�this.add(a_up_button);����;i:a_down_button=new�?�Button("Decrease�a");�this.add(a_down_button);����;i:b_up_button=new�?�Button("Increase�b");�this.add(b_up_button);����;i:b_down_button=new�?�Button("Decrease�b");�this.add(b_down_button);����0�@}�����0�@public�?�boolean�action(Event�event,�Object�arg)�{����;i:if��(event.target==a_up_button)����E�4{�?�a+=step;�paint(this.getGraphics());�return�true;�}����;i:else�?�if�(event.target==a_down_button)����E�4{�?�a-=step;�paint(this.getGraphics());�return�true;�}����;i:else�?�if�(event.target==b_up_button)����E�4{�
�b+=step;�?�paint(this.getGraphics());�return�true;�}����;i:else�?�if�(event.target==b_down_button)���K����i#�16�������Š���@������iF�5.1.��ELLIPTIC�UUCUR���VE�GRAPHING�PR���OGRAM����17����ٍ��vn���4�{�?�b-=step;�paint(this.getGraphics());�return�true;�}����i:else�?�return�super.action(event,arg);������@}�������@double�?�f(double�x)�{�return�x*x*x+a*x+b;�}������@double�?�y(double�x)�{�return�Math.sqrt(f(x));�}�������@double�?�tograph_x(double�x)�{�return�(double)�(x-size().width/2)/scale_x;�}������@double�?�tograph_y(double�y)�{�return�(double)�(y-size().height/2)/scale_y;�}������@int�?�toscreen_x(double�x)�{�return�(int)(x*scale_x+size().width/2);�}������@int�?�toscreen_y(double�y)�{�return�(int)(y*scale_y+size().height/2);�}�������@private�?�void�clear_screen(Graphics�g)�{����i:Rectangle�?�r=this.bounds();����i:g.setColor(this.getBackground());����i:g.fillRect(r.x,r.y,r.width,r.height);����i:g.setColor(this.getForeground());������@}�������@private�?�void�display_weierstrass(Graphics�g)�{����i:double�?�tolerance=0.0001;����i:g.drawString("Y^2�?�=�X^3�+�aX�+�b",40,40);����i:if(Math.abs(a)>=tolerance�?�&&�Math.abs(b)>=tolerance)����)1g.drawString("Y^2�?�=�X^3�+�"+a+"X�+�"+b,40,55);����i:else�?�if(Math.abs(b)>=tolerance)����)1g.drawString("Y^2�?�=�X^3�+�"+b,40,55);����i:else�?�if(Math.abs(a)>=tolerance)����)1g.drawString("Y^2�?�=�X^3�+�"+a+"X",40,55);����i:else�?�g.drawString("Y^2�=�X^3",40,55)�;������@}�������@public�?�void�paint(Graphics�g)�{����i:clear_screen(g);����i:display_weierstrass(g);����i:for(int�?�x=0;x<size().width;x++)�{�����4double�?�xx=tograph_x((double)x),�xxplusone=tograph_x((double)x+1);�����4if(f(xx)>=0�?�&&�f(xxplusone)>=0)�{����i.g.drawLine(x,toscreen_y(y(xx)),x+1,toscreen_y(y(xxplusone)));����i.g.drawLine(x,toscreen_y(-y(xx)),x+1,toscreen_y(-y(xxplusone)));�����4}�?�else�if(f(xxplusone)>=0)�{�
�//�draw�a�vertical�line�to�avoid�holes.����$�(g.drawLine(x,toscreen_y(y(xxplusone)),x,toscreen_y(-y(xxplusone)));�����4}�?�else�if(f(xx)>=0)�{����$�(g.drawLine(x,toscreen_y(y(xx)),x,toscreen_y(-y(xx)));�����4}����i:}������@}�����iF}����������;��Š�i�!p�0J

cmsl10� ��N�cmbx12���<x

cmtt10���Kffffcmbx14��=��q�jcmbx20��"V

cmbx10�ئ��H�cmbx25�X�Qcmr12�D��tG�G�cmr17�
�b>

cmmi10�K�`y

cmr10����������