Tryag File Manager
Home
-
Turbo Force
Current Path :
/
proc
/
self
/
root
/
usr
/
share
/
doc
/
iproute-2.6.18
/
Upload File :
New :
File
Dir
//proc/self/root/usr/share/doc/iproute-2.6.18/ip-cref.ps
%!PS-Adobe-2.0 %%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software %%Title: ip-cref.dvi %%Pages: 60 %%PageOrder: Ascend %%BoundingBox: 0 0 595 842 %%DocumentFonts: CMCSC10 CMR12 CMBX12 CMTI12 CMTT12 CMR10 CMSY10 CMSL12 %%+ CMTT10 CMTI10 %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips ip-cref.dvi -o ip-cref.ps %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2012.07.04:0942 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 46 /period put dup 97 /a put dup 98 /b put dup 100 /d put dup 101 /e put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put readonly def /FontBBox{-163 -250 1146 969}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F 21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF 55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A 7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B 19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F 244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9 C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785 EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512 998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0 B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70 CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B 6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5 8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917 6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225 BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1 72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D 5EE89221BFD28AE8117B6A8FC4368790457203061FE1C5E5ABC6DFB6B86605E7 0E2F45A8C1BAA69E72630B14E21A76BC8399B57E0F25EC687149D19AD6D41A45 5BE2E4C26137E9A19E342CEE2ED9C7552825C76AC5B3D03257639BE70BA719B5 5C20126B2BA51CC42E193FA5CEEA4D55549C1496A8037DD91553B14C60135DB7 3A5DB40986B7E40BC65C3C8AA9B30A75CD0E45A3973949BFF6997C95155DF7A3 12FE54CC467BCF644EB81872CC41227512ECD8E1FF3CE64D94D1D6C8CF7C9A56 A90777624F78FD0E784C06C0D36FD884054437D93E3FB28C6AA8E131841553C5 93A5174F12BB33AADF0131BB0A6EBD394DC2EC23187DB1E51AA82E784FB2DD72 0DC92D435B88D387D14810EA7E41ABC8AD1FD57610AB47C09C7156A40E43F157 35F5C3874AF8F9CF10FF61DDE52D78A33AA896BB00133FCA6C1B40678EE2A10A F8EC1DA991E13094A0293776D3A2FCBA027B23C26E26C5A4226CC427AE0494B2 D7AEA7AA35DBD94F5A36161498766322716F61AE104C0B06EA832CFF38CCB36E 1E69B256C143CC50366C0BAB51FCFE0B24192594317CB04443F7C4523A425E92 B884D6D2CD8FCE518B7090FAF2863BF41D148793A806EB2FBEF75E7DB1A7BF60 D84FE2D86AF09B76E5ADE8092F029EA7D206A99733958D609AFC48F9A0691298 E1E5835724C19F3FC588175A4F12FED7BAA7C77E288A0BA7F0FE28548BCA2FE4 6F488E154AC3B01F8044A9095EB501CEF06011C1776482E1FF4CEC734F0676F8 25AA558E7AB9B974CAE1F8DBA7AF919AFDD76A2F949824F58DD1EBD01A897FD0 9829DB7BCD1E76CA3F7305EB0D2FEDC7A40EB45353591E97642712C44C0A9611 D594FAB5F04BBC276958EFFCA93E0561ED8311D45B9C4A0A34D6A0A27D687797 E44746D190418845F232F62A561D521F9B49E93DBE635211C854E91188C45C7E FAF893E39E25056FDD284DD90FC191E99019BAAF3363B34C77221C55B678EE79 5514F34ED922E53CF19C6C7ECDF39F4ED797CF38ABA59781C9284D05C71E009D 6703B0370D91C69E01F6FCB5A6C5D87BBB09128C4C1F9ADFCA38D943F681EF14 7498CD0AF48E6FC67FA2B24DE6A74DA6F5178692F89264A1D001D4952021FE71 EE72EC7DC6B918C5C24ED9A7A8C0040709FE7B67FE9F67C02502897BBCAC221B 7E988EDCE6051A039534450758BDEEE025B9205EE7E74C1A1A6DCFD584ADDA1E E1EA3A94EE7C1722D64DD41B4D26CE73996DE47A9AB56E52B5E1208840C512C4 B2CED94E0B8B629317C4DE17791D6AB0968CCE25BECA7E35D1F4F5511E6E6858 51508A9BDD9433E85B1C52040E240ADBAFFC89D3A72B784AC8FA17F7AF7528D4 A36CA2AD885F038D70B302A30E685AD9D0FA8F9EB62F40FFB13E40F163B6A224 B9BD096A557F3CAAD1121B956FD18894C96B63A0FCEDA0F3B92997236E1770ED 2B7D697618F24612162CCC0B69A1E7A7C849F28A04F97F812CF8D8123547A720 3EADA519D84D4634862BD1A1473E8449CBC5F44080616124789F2B49318EFCCA 30C2D5B4143B542F94452CB453266B97E5A5F7F8DA9EA872826791F2B5E494AC CAF0C74134C4B864ED50AFE4A4B2FA0BCBEE23E306053BF3E72285A0ADF77855 CDF7CE19B5D6B9AC22815A4CF2F732E0F1E04EF457D80B53F99714BCBC5B68FF 709F781288608DB45D46528F8808F94D5DBB9359DCD101069BEB7EFCD34DB32F C25B55D2695BE1A248540EF3912FB3D2375F87BD6A3FE0FA65BCF2DF0B2F9403 C19DB8B35DD44C2FCE89A8E17486DAA4AC0C37607BCB08178549D6BB7F2A22C2 4E6E94318A26A1EFC9FD109A5A946BA404CBE7A30564885DCC2A9CAC213D20AF CCB717277C8C7469462AC16F020F4B8CAAA66C21DF2652F58795DC0BDEBA7378 1D7B2D775252BCFFA8812C2FCE18E79DBE365D1AF2404D261EFF4893EB1C37EA 39EF3D20CED97890A3F3444F67F4D0575D4DF6CE60A781830DB08DD924D6ACE5 40D9ED156C69685CA094AC2F7C5629DBE007E39B0BF6F745FAF3B1B5F61A80D5 BCF53B52A1CB96565380012DBB5878AC046D5D86DF1DA4DD2B6523FDF8FCF27B 31A6E34A91C4DE525F6C8B952F4F552E8DA5A2D3FB37E0144C74AD6DB3D9F6A9 5C70F3777FB13BE82B07CE7F0377DA5DA6D21AB14DF3FEBE3E38651F21E0F769 C3D1263871D65C615702C734F2163686B13224845F18FAB7014E96C4A46AA636 C00EF621F8C43F8BAC34B5A26D09231E004A0F4E9CE7DAB88B54064B6E97F303 7AB190C250AB32487431091B05A388A8FA617EFC64E3A72B85C282E6E13CF43C 022C81C4E73687F467D85B2FAE34A87DD20D0A2D51E14E416927D79009291682 8D2FAFA9D2C209DE1BE994C7ABB88790FD7DC6DF7148BE41891C231DBA949CA9 071C9278F2D22BB84852C7CB892CAF437479FB718D4D0E26003C8455DA6FDEA5 CD365F1DE7B6D536A1DA1671D37BB2D62523248EFEBC3127B45119A2A7B8B2A2 4C29EA7BF7EB03182F5C3C36B6F06544E3504487ADD3E79250AA89B45CCCFB52 940A446D67E8E972584230AAF17C3FDB34A0F6C9A5337A7590E9B966ABF6BB73 EA6EA2F2643E018598B6E959935F5190A9E64931F01598CF5882DBBA656B6B09 A91E46F996CF77F5C95378A3EE02A8077275B80AAD07E029CBF3F370AB516B0A E0775F7931DECCF4DCD63DAD22F36C48EE17C2860A867D3BA80B37C769CD9FCC 54804E7B485EDC61053FDEB9541887DF58941804D97E491E7F5A1CF5A0DD4408 EA634BB17ABC804C7E8CDAE9C8821DA25A1FB3D99051F36AEEE627D19BF71994 95F9A70C429B323B6007C090400BAE0E341A1598A569D416EB07C8909C065302 5E0AD3F9D7CE3EA88CDE5AE658D8CDDAD5774EEB1AC87618ED4A6424D3F4BB14 AD47C8524FF80387387436B90ABD67A2498946C529BF184ED25297262AD67827 21D0AFCC820D52F61BC9BDDEA61936714FFCBC9AF9B7DB86DD3E259989A7E93A 963101B7A53585FFA230F44FC4B25A66BF732328B5E84BB006DC50B59268C0C0 20D8998223CE3D7BF13366EC899F66519A61B7D7097CAA120B2ED5B810A1E90F 56E7924B98793D0FD7B21575989DC98038ED0810B6CFFBBE0AF87A4089274019 59157211E9809488E66BBCD3BF9B5F5B9B4B3B8733DFE4AC15C49420BFB19542 E29358324FA7E5EA9435CCF00FC4061DEE47F23EF759E785F796EB582F7E5BB8 CD0BACBE3326AD88B073C8E661A0FAFE89F8A77EFB1A2BDF23E84FACE038A4CF 6891D0EDC0AFE9DD981946F683C77221BC8113BD169EA55723112CEEDD298788 821CAE72D530F2AE4AE4B5388F8DD64E4985FFA61E2D88281BCA8487DB61F60A FA5FAA759BABA083457A3AE9E5B2D959E1EA199D10761771B28D69CF8A19D9B7 DA6A1B7A33B4DB22443C9690F537B7BA9812968AB781A70B9DD04BA9A2C61C83 8EA1C56C3FB358C1D640FE4A40846825606D42B472639593EA708DF62389F58D 4C7633EB96B9F093FBE82A17957CDEEB268AD8D750B53B6C4CBE9D6A183F6B18 000AC301DD31CD0060D7DF58775D9CF032A90D87F455CCAB98B7278824C0A38D 352E2D5BEB3F2A7CE6C64CA462786682C76E15594A7C5598C64D8556149C069B D867993FD899A6312CA0061CB2C33061830C5B7C8FE6CD612B25F62FCAC4047D A775C38A46961B6B282D3B0790621B83E42C5750B9E4CA1353486132E426599F 592034F9490826FB7804922CFAAD1B6339A3D377ED716AC0B249EE22C6AF99E5 22C74EF1C7A37B6933DB3E8FBF969F3BEA014CFD0CF9CE38516CED8A0E88CF08 74E3E57DA73DA18C5897E04F580772F97658D7E681CFC9799990854B7D65A19F AD97E552CB185CAF07589A30F834F61E52DA467DC173357EB8099B39DFC1FA30 4C4316C24CA455D8A383D01A9DE75255043E6890C0D2D2FB0EEE955EFADF7A27 5FCCE764AEC1F0424656477CB608B3A845A12CB833C132EA20A6EA895C0A556C 4CAEA659C4AE89C2781C8007525E77DFE2E3A1E778C18B5EE5BA6E8CD5E4C066 41915103C935027531C73281B834A59F2B26F4FFE9061AFC60266EE44B4B60E5 1B09FF6C6A64452722871803B9FFE60CF6DD749372C5BE4F2853BBB5224EF63E CBCAE9BA2D73BAC2938B3C2AEC05A985DE5F76326E2DB65C673DB16FF42DB073 6E866C37FAE0CC86E8B4E4595AB178C695EAC0B047689F8316E2BB9B7A02FF91 B000C0714FFAF76060DA031D41CA632C8254F083C4C57382613917C961D2C2F6 9C6BB834CDB65AEFA58FCE4EF5CADC8C7C9BDC32DD20D341BC1EC0345B3B17BF F3FBDEEC98486D2D8E6733A13EBB4058FA94A580EDFDB1BCFFF0B107FA13ED06 782D9B4EE6BF85ADCFD2EDC2575CFEBCD50B3C77F82EC02E768296EBEFDF7754 FC0DC9AF7468EB089D529FBEBE9261CA5EABCA183680BC9EF666A947E006D4B6 A4AF97A0A7ED925EB41E15D41D86AF880366C3394182FBE7E2F2F465B17BE228 B307BC91624D87D5454679E42BFD154A42B038781B2A1C38C74BD54E39A70750 96602D45639FE8DA53C921712432BF1D60E4A8D2CE3A0707363A32AD7166BA3E F66FB394849DB6AB371D1AF7EC541FD99B26FDC3EDF084D12F4566D6A7BC66E4 069FB933B530F25686BA3B2639E9C75C6DC636B8FDEE943D5F45BEB44D5F183D F3A86BB2C219734CDA304306D5DD9C65AE21D37B86E1D15B7880C15D49401F4E AECC38943F4C74E901DDFE5CAAF30DB940AC2761639B91B5585EC17AB14DE2D2 11473D9FA5D1A45C9A8ABBDBC9FE2FEE0DE290E2B4B0FA29C7CEDBD64C7B863D 8D4EA9710B479C95BA2B9587FB9382610787B82F12214D66519B62C54D95EED8 FD684200492B64E34754BE82A1FDFD3E5DDFFD825F9F83DE44D0A5BD362A8DBC CFE638FFF72405D95CCE1E1BC3584FB9A270ED31784462BF59506CACA5771BB9 9C8FD0C5C686A3DE4F696FDB7724E9007301869398076DBA144FE684078052CB 631A2AC1D1F8FC33E9F2FA0DE52727FAC3E591E4ED64C118BCC01D905587A666 69E4D9D65FCAE85CD7669627578D397BF33391C0940A0E1E49B46AD202DA9DFA ED2520C576245AF9710CE1DC6BAD4D7127FFAF0C38514B0A86F4523184354DD3 F4AA958E201F47799D7EE5F7842AE0252D433272419C275DCF0E452A2EB0C4CF 5062252BF5E171140DFF3D5545E276D07A69EFEE02FAA6033EA35C66A2B728FE 5704E6604FE63EF250881F39946FC2B02B70F41867063E53718F21EB623886EC D79843312B5876CA81E451A425BE91AE39315409FAC8C494A72D3ECC9A5EEAD8 E02469F37E2DDBD31DF63F04CB2D3CBDAB004A936FA1FA9AB2971574A5F2CDB4 C2BCEF525DD1B1BFD6CCF979B84C365EFBB36A0161467B7A8FAEC7B058D03F2F B4E149BE6BFA25EF3F5179E7746BDE9AEB6CAC47BEC32FFA6E06C64D16C2592A 742488A346C5287567F2DCCEBC9FEAD9220883067868F1 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT12 %!PS-AdobeFont-1.1: CMTT12 1.0 %%CreationDate: 1991 Aug 20 16:45:46 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 33 /exclam put dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 91 /bracketleft put dup 92 /backslash put dup 93 /bracketright put dup 94 /asciicircum put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /asciitilde put readonly def /FontBBox{-1 -234 524 695}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E 3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B 426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161 E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32 6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5 A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE 0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC 85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4 C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC 12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D 048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8 0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725 741D08B9DB688731A6C8F9F0B1FDFA20C46ABF1BE836FCA0757242BE4780A41B C19304DEC802CBAFBD0D116B1F98C01BF41ACD72DA8C56F8A03756E1850CF32D F657FFF4377B43F208A3F33191F9F6F36FBB0CDA3514D68ACD8DCB2FE67AB377 C6BD16D11FFFD61E05B8B311EBE8D05013ECF1D03F574982E3581A188E337498 3B68080D69F7D88F2863362577B6566B9526D1E05DCAEE47F7E336489F4CF445 E5F4E1DD5EF2B795F184EC5B427C77D49CF637AD9D6885BFBDED79F75F1F870C 5571211F4CD9DD89F59D2E9DBAD027145BB0A4493BE1FDC4E67AB2C92886F747 63242F49C34651CF834A0960A602103F81B33386C63CC91A5F06E4635785783E A4204D66802D6F45878B2BFC1D6C9A65D27416C536540B2EBB3E092C1262B9AF 82B5FFCA2F730DA3415A8655C31798B15BBC29B3E5ACCB2461A0E8F94A6DD4B9 13C188AF5ACF2C12FBE9594CE9B2D2AD8D51401FF5295BCD7DA75E32749A2ECC B547DAF0D6486AFB0310928EB6EE739DAF772C850C928E66FDDB6AC3C2D54AB0 5535CDC899F9261201257BA6DFDECE92E205724DBA41594A8A37FAACE720CA4D 67B661C1A97F9C325E37B7964DF9D2DEEB632983CC1CBEA7746C5CE15CB9BC22 58CD79F473575A2E77E40E8BFD2806BE5821CFB2072AD2EFA021A8F16A266650 6A9391233150AB22F8C980746A4203CB6E154A8C9C8F444501C113108B7BEE7F EF075B73D9B3F59E9D1040DDCB63C2B588D630C94892B2CEF32BC40BCAEE06C3 B094229FEFBF17A16580E115AB65EA37B9AEA1CF1466D5993A652B8CE5C58171 C59C3C44F34FCB066DAA13EA050E60A7809A624FA3E970B359D7B61B5640E4E3 169B10E2899347EADFCBF5B05E7690594AD9E7341206692B9D9D450BFF5F9828 13FED4DA273516764EFA58D8AFC7239008510C45D54FB1BBFC2300EBFA394275 C61804EF6D4F38CFD61CDC6FC5EDC6A16A4209177D820C138BA216CA10905DCD 957EDB4609835E1AFA5749725DAA084C2F56EC8985A3D7B81E744A529FD93BA0 6E3041C7AFAD2BF0DC372DAC5E7B303179B301255B5DBE026EF5FAA65666D81A A6B18A828D796F6889EF6B6ADDFF1DBED32C6B28BA3B71DBA746EE0DBEB2F181 A3C7E3684FE8A9D915B145A4ECBD4503C7468E229B428F3B3596D93F8307EF8C 13ACA63D3551415EA07BAD6C4FDFCE0AEA532C4EF40A6FA1A9522C168E730974 0E8DF227D2F610CD13248ADB6328E75585E0B22D6388FD5D6D3326526082C814 50F37849E5E8800748BBE6807CC4BF71850E1326CF212E6E3E4F38EE71BD78FF B4B65361E164691050B32CE4564E6EE1EB82001D1D043796D00AC974CBAE3F1C 313A0BCD11B8C9F0F34C96FF96103F105DAD8EFE1EDE8D27BB8011103A1C4183 E4DE7AE8301D7046BABA4CC1BE432C730F989F22884B097240D1984861681769 AB138814A01961AE2DDA23A1A17DC3BD1F626A668312077EBAB1F8B10AB5923A 6429D6CC496E5BF1A362189F6D0656674B3BF023857580BF61F400EB7BFE91E8 F9CBC8226D9631962C70C0FF2FDFF1880352BC2F0FF8CB3F4AE38A05E7981D01 88EDAEF227DDA0AA7CE5CFD994A25CBBEAF99955886C21F4A20FED4F9FE9516C ECA3FC45FF1AB36610F37E59F026B86DBA6261214D95DC5D08555416451D33FA F1E92E8735F30A8B7EA660FA1573B91B28850CE503DF544565FB552A4DD693DA F823355F897D716A4ACB0CFCE973CA99A0E7B788A0405C4F1EE7080033D20926 91094B293EA039D6C7E4B7C6A8339FB96491EC25481D6A92D26B5E0A806A0A3D E01BCE077FC072EA87ED2FC7A2DC2072E1CDC1360F4DB59D934A208338994E62 3A7286860B620766167A599C0005C65243A69FEDD9EFCD98D89B900E6413DE07 49B69A365C6FE614B61E951D9D7189797551BD5C06EC449F1114BC86AE4797C6 6D102E4731A539BD594FF061BE9ED98A11BE90C1B065A85CD18E1C11F1AF3453 52D7412DB96E24932D95FE633EF7BE6ED6F697EE5F6B88F9BEF77ED13FF786C9 540E69F5E48BF9C70BD4088D4C1414744CA6B489943E2DE9964104BA0D6780EB 9216A66B52D288510E3F0EE7EDC0472FD8799B9099EBFC10F26436A9C9FEB739 E0A12CE5E472E62B4F008D082AA460340794CC12440FDD425243C443C6F9751D 4A51CBAF5B430A5CBBCFAE4B56F7BEA48A87E2EB245F246F2651E68C7F764410 056A19EC22E75AF9704EE84E821664418416E9F444E096A217800A6C5B5CBBA4 2D56C1D4BB5A9C26A9E56C7FF2FF244A1D5AA842764F95CE0788D407CC97F449 88998DB8B4F44E83A084A6C88A3B882FDB9032BB236184D5847F4BF782AACCC1 5D5760B1F3046914294FB3ECB9B9CC2D5DB952000B7B9119630377339EE7474E 2A408745B73350407A314036CB8E0B25FAFD71F1D4CBC88EE2067AF84E21D7E3 671CEBD82E8C22523CBE8CFEE5C7B12A504E097BC90C486BDE317D565DE461FF 7B2E6C499866E8E17C6710E4FF544B50652579F526168E15F8219EE83CE2B325 0B6F3254B001DE0AC6DA3C4DA257CB46E4D9C3DA14AB7300A35D43926898F886 BF01E2ECBB16585A2340DA7316A891BDB368926E331A13FE317A9C6F3BB777AE CB2ECB416E1CAC0FFA3B5371C8F17826EC54644531AE5BFD64D535F18CB1F25F A1FA0F73B8F92D39F36134CA0355E0E1AEA806DDE37ABB0C29CF4A9594874F00 44D4CDFCAB50BF17F7E87468EB80F5A0694D8BF4044490C619845742A1F1B8EE 279DF9CEFE267E9EFE3B51AFD8C1CBEDE642BE4F0D78898C21E129A3E67F0347 30366896033B9A01D256313087AB43D07029472B73A496A6B50B14EF413EBD69 A23CEA9706EED79003966B902BB5C9CCC1156CFD9595B11F1A7B69E89F014A70 804BC5C713C77FC876F0A6A2EFFFEF53BE1C5EBD99BBE03FD864E5C9485F8A68 70D394D2916183F035CCCC728263FF6E44AE620A16BB36DFC60768A4A7D56AC0 74C1DF00E1D7BE4813A8DF2F438BEED0DF6FFC98F2CC2EBD68FA5CA67F2D8E11 B2B60AEA1165A5D76E33CEBCA291D843ECD0B67DAA01B9C050AE28317DFE7E7C 8C12EB1E160CF9844F6E653BCDACF562E1B2587B47EC09A1B5C47CDDFC4DB367 9C22BD3123841D41822AE6C7157A12CB209023A862250C5FE4EF02B0B6E6D7C2 4902B68920A96973D0FAB5D3D4D53E23E2467C7E0DD586234D0BD14F5D961726 35A102B50AF29EFFED865254C764317B8A5DD74D3F57434E6EAD3FB2BE54BFC5 25940B152E88F80B1C24523A21318DFD0C1CCE57CA814FA0985A5E4F9B24A0AA 007D793D06C42D85EE4E38E375DC75AE49CCFBFD5AB5728FFEDA6A96F9141759 F79797BF9D23927595D269C2315171C413241AE53AF22FEBD984F73D12849BA1 972944DAAB7083B37F6F62C159D8ECADD940B64A970882ED0E1D249679E20D36 072F59689D7A3DD157340D9831AB29B599B74E81129D7CBAC68CA34A0E30F605 2CFBB5B0AC7655EA81F085D86A37EC67AB72E9B73DD8CD251B2EA407B445BD81 B0112B564E7D5FCA7FD1AB5D79FF394D9193D533A09C704EAA6FE1A13ED80CFD 394D8749148949E82077B22B171C8CD067BFE71C334583A5C7C98E9EF9B33DBA 3E1D136F74B656B073B1F80FF196E9A805FB811E75E7DE3C6742C5F3C7536A27 9A9E4BA919358C2FD806235511B413E398AE7A651D408F9133FF75785D8DA5DF 78B394A67EC2DA95F64DDCDAB60490AABB63D245898DEB2E8C8F137BD76A3CD7 9AF0CEC5DDA84211E951D4D443CB5550C7C433BFB0D8F41058B6FA94A562C4CB 0FFE08A474C6F04C0AD9ECA7EED57FBE9025593837781FAC7D04ACCABB061A68 1113EFA33E801ECC2AF920B6C16FB318761BACF5772D2E52056D064290C2E025 A62007D097D40C70B74B4BAC4880661FDCD1868F48C856C590A4BC9869495E40 552B3BA325B118A5B8D7BAEB74641E21310D4FE7016C656CC04DF49A0A6F0B62 F9791652A79FBF0A479971CBB7B3EB5F73CA858CAC53959180B904703D1225C1 6866EBA21CB3482632AC23D28362A90C76AD0F88ADD211EFDA4FA586BBA64E00 3234DD8A516313B6CD7AB6CA779237D4C31EB1907977AB8BD6B7647BBD33E169 938AFB91390867FF3BE3BC65419BD2E4A101A6834A8EDDD2396829F9080A6078 3AC19181E2B618AB63BC699B9B65DF01966DEE560525ABAA725DFA3673F98163 0045E11D64202F353132A2BE501031625B0930EA3B56EFED2ABA892C042E54ED CBD56E6EC0F24D380A48045803920A120459867E50D38620B546FC8BC806E4CC 38FBD04576A9A4EB7AEC29877294038FAA27EA82D539301D8C3DD653CA7C4B6E 6D15AFE882EBD885A344FE7E16C62BC84D4035491F31AC45ACC6F5DF42E0365E 358D24A2597FF2B2E60DB2E62DDA1D8D34C4F782527F0FF17E595A3EE4E16252 32E12A31B95DADFCD3BD856D3255A89437211D2EE6A988C1CEAEC12B036A3879 A8685BE6BCAF7E343781521969C982D3A920B091F3F446165A3E1A2C6E4906AD 537194C1A1462157D3CAA0AE3698012EADC457E94BD7A99B45456E3727B1D8BF 0A3B104ADFCD32170B95D51CD143E8FD0B89CDC86BDE088AF4E953215F8BD375 1C7E5745977AA9526E06BD84BF9DC8C06F7F12B955E62A98F417B73363191E78 00008C7546E6E6A0E6887A8EA09DC2F177E5C624F7EB7960A74A2918FC1E65AF 3059CB3C061CB812EB275F223B755D00BBA63BC3F1F400E34FF2BCA89BA9F6A4 6709C58FEDF0970361D99F5A986E47AD72C1B49FA8EC2BBAC6AE3AC3BD2B71C1 DEB9C44F88680A8E1E67CE8D273174AB0DE72B89E2764A24C252E3C813D71F45 33A23DED1B37141DB828EAA0D20D8D1005A5BF5152B280ED1BA9AF3A563E749F 77EFD96C8C72C35CCEDE9008BF394A2B5A1B7EC9B7FFB7F13F487F725C06438D 336302CD684A46BB41B0F9492D71D8779533ADE7D19C6867C95BEE66C1A1AC2A 933F38B8E466EBCF9786E49A55B07EF212F83AE3E9B4451D2B3D83E9FFB5BF25 48CBB211B452F815C5774C211E276EBC1C3A37019AC2C2401CAA32E6582169A6 F56EC01AB6B1F806B2BFCDDD0A1548AA82E04ED4E134BBB00BAF0CAD61DC962D 0BB3711981886160E267E6AAD3BEB6DF33A883AF7268A1E61A06BCB25A38EA2B 311D1BFB56E5A190E9CCE07082C76E2E47436D62401FEB8EA444B1B05DEB8E15 82B088BF43883C7F8DE98CC18658239761042C5D9209EDD575B678CF6401A2B4 1BBF1B34ABDA5CF5037DA21A5B31527E6700BB236C9E2A24A39CCA880FBCDA81 C8C6513720349C1FA5FE08890B0499D4D2945A1352A4F4416268F0F766ABD547 AA54BADF2EAD7BE80C7C7804A6F0682FC1FEFF4BE5A51417032F772CF7ABB0F2 D6BB53ADD50A9D77409C73A67FD8AEC4F0894B88F145BE163D56311431A7FA79 F69D699AA67C12B8A1E1076EAF0617678DAB5DB842EB2F8DBE170E27260C9146 32E06D463C22ED32A80C5701FCC446AA100A0527CAF3DCD245C339D5E2192658 F2341A214BDE8BD4C3B32FFDBA1B771BDDFAD577EE5F39417303CCE68FCE8353 B9ADE7C936409A57E43E2B55D51FA9EA99936DE6470ACBECEA87709CD8A5E189 463B87DACF981369B329A2F8E9CE9620A1D6DAF6D9930A3CB6639858D712C8F5 069E9DD73D5E725929181AE7733895AB63568F33E952DD8DFC830F474F4DACBA 5ED8760C77376CCD3919F1A2037E18A5286C268E7A2EA03F68897BECBA163C29 2D6B61A44BF42DE3A9E8EAC90457F08C75D17FD797C2B658F2F213E99CE17441 EB6CFA1D159BB877EBF9A33F83D4D5DAAC9AB62281D944108B20164F28C89380 8006EC89430E37B40992A4F52ED061581FD7568D9AF6B25AD37964D608A793B5 3407BE59E30559C7CD9D4F1404D5870D4EA9FCB3C6D8FE0B90AA670D8A1A9E49 3146C3E2BA332516C46A119F314AEAF833B370045504E356D3C80297757C3627 12453084A8FC6163772A850282A5DDD8A85541E0A7B19832B20E907887D29295 190FE5233FAE1728F8C4967F937529D9736A4DB076321755A8E0E81B1AAAD039 92E8B91BF85A5890E193FD2AE7CEE2DD474D5A296A4BDA695CC7614843C84907 E91312BE1BD4CDF39029115065CE2F88EC60668FF16E134B7DC66B14695408A6 7273D2EB1F4619F6029DBE3BAF1AF6701235A334AD2A489E008A83484AF55E14 5C29FB9E88E9ED979312BFBC29A57AC866CB5ACEC9CE1CC900CE6DFA17684A6A 79E0B4CEF17F801229DEAE2DA97A6E82597E74F0961FC8075D1808C8C0BE0B61 BF9B79ECD38AC1A30641AEA948994D8B5B5089C2E11FDD5DE5B1E9104B3DD476 EBE8AE3CC6A56C9B5A4B0A3240446DE29E4F4BF8CBCD7C7CD3728C9B10845316 F6EC23F14EA741EBD971B3AA7BFEF944F6D83D256B8971D037470408D859E569 3276F9D1157358DA6691868EFE727AC2F14027BD73EBB85FED8746E16FE51CBC DEA7540585EB5659421A457A74CC7596E031391F5586795A6DBE273FFCBEC040 7F509C14CBA0E221DD2093A936B2C78BF277C88444BD2C11CDA44C5A3C454F38 0FE08383B6A21B30F0A65073AFDC7EDF3D76C01331F0A13151ABD7CA8F73F4A3 3060F771362195219D61A69FFE7F7A98A21E21B09267C97CC16D4D816AB51474 0828DFFDF37B07734BDAE863DF254697AA1AB8739E3CD2693D9F405DC80E118B 279F984364A7F54472F84E5713B53A8F912A7A5B5E40EC175F190218295AC1E0 807B62C2AB755002C5F075EFE45BA7957CEC547A72D74D7CEF15CA499F08B6D1 D01F02969899A83AD603F6D8CC41582185AB9D322DC30FF1DCCDC4CBBEA9E91C 4176126C1C62FF847045C48B1533EC29F1F37D27A1C82C9FAC663200FF203B65 26215166C1C404338CB6B364CFC2806ADC702E175D2C781A380A56F85BF27F38 798E2F08801AFCCC8A8997DE70C6F912878E8C8C4047F3402B0DE032D348FEE0 865143435811E381771C28FAA248D5907386721B08CA41A370976AF046F006F5 2F52D8B9651FAF80385CA622158043BED36BCD152225FF5131FB3386AD6557FC 482CF7E9E4AE40F17769A7ADC3B350166F59C382E81F498B0DBE42BC14A7495A 65A7CAD4EB8B9B4967A583C84DEE8D6697D92A4D57E14FB8DC41CD825CB3ED93 D9C5761659BC9AD0E5194CB44D94862C8B1E52670E23EB01A6C87EDE1C922F5D BFD69D38A0611ED6C94A7D6C56CE208E93F1710BEAC467B6B911166C86C00D1A EC84A603FD5FE8819524EFFB608164E563FC622C90ABE66FF61A07D3396A6286 4A30F5E756022FA2C60DDB526420FB6606411527DFB1EDA4C50B3B791619144A 9FFFF9C130DE374EF4789DCFF01BCD3678E09F5E91BFE2F6F937643D9C01A4B3 0139DB87E26EC951963CC65C247F0C14E4066E4A82184086447F7AC509D52E53 CEC4DF883F25B92CC7FAA58A4B32A2EAB4393CA781FDD3EFF2579B918B82D8D4 A352FA276500822290E608D2643CC84411F069770797F8C2ECAF0E9D7F116685 88DF96232A6279487D3E5A813A99E69CBA3E5F3CB31B9CEA56F7778A79B67D15 ED09DF52C1F1C8CF63A28003F4E6F074AA4243BB2AEA95F4BADC78C055A3C857 858565C6EE2B66A8F5DEA09400E99E51991028F74D51025EF2BEA033A0329595 121433328A386110353FA997A10D79AE4C98D07CFF25EA3CD6E6E07F33ED89F7 C2ACA3E0F6284DF921553162049DB79D9A251B45DEAD821BD2A60DCE7BE3C3B9 3D8F0C6ADF14E7B77F2D5C929834614AEDFD62EBB87D72D1527EBB284D1E541A 9A321A6B59AACCEBC45CF068030E4EDE1748CA3DCA5CEE11A0EC87BCB2E8AE6F A1F40037D8805879916B4B02FD97FD77FF510F1CC2BA23C91DCE9CBA648E1E0B 88C3280A4E7CE06A4CDAB42EB2D9AFB45049002922090A5EA292602E486DFB9B D5F18CB175F523B89CDD114613F2B7B175268EF1632FC1805F8BADB29C13361A DA39DC18D4CB10D24CE9EC41ACDA1599ED01FC37E27C5AF9B105E3D0BD212BB8 7BF7FE542450C28787AC17217DCD28C340A99D2DCA55294F63ED57EB48002619 1F7B06FBA18BF9971BAA49C77659A4CD2B6F2BAE44ECB764FBCB6C01A8CE3A2F 4469A47015A62A1474697CBA683C4F537E736C660A3781AB64773385AE4A96ED 3C00C9230C61649ED74062CC713FD002357B131FCA196F8068A398A9BF833598 245E7BB166074DC27966CC9329D7EFCD15BD2011A3CFAE4DECBBD7E1A05E87D8 D5AE209252FE0745E944595D6F0E3B473043250B6843AF7BE196148375636518 7D12AEFCA2279A81E797497A46F8A6D9693E0A140A8904D906BD7FE44D0BC866 787277B3A481B5D2DCDFA8776E58CF7184387B28A2381AD2F8D94419586AB73A 8E9E7CE2E90D4498B5547C6A34D1C07A67ADA25CC4D32F5E5AF14D120EE41421 85D0AAECDA447FE21CD21480A772333232107168CCB9F8629A9A827D332E39BE 875917A29A29FE0019AA3FFD3467DD58A457CFB1C97314CB3AEE5AAD94C2FA34 A4CC9B48081E7B57F6C8E8D25575A10D3BE0FDABD123E8A56600EB4473FA02A4 003058D91F9BADA10E418A4929227A775FE2577A6A09732787F56AFBE9113667 227BCA68F5A29041483944179951A53EBC3781801E85F905E1B0007A3907EC0B E340707403EF511BF3EE627601E3B6BDB1E7C9025EF9935513504C99FA84B6FA 01A0F5AD74C0629B15B2947B86138ED34A30CC6EB77CFEECEF6E4753237BBC6E 3C668B7772583D63FD9D84EC922CF0F50F1433EDD72A5375EFC04D470DECA9A7 F91BB600AB9B459DDCBDE429ACA28FEF1719AF51980D2EF727DC035BE974CE79 859CD5266E7693A38DD5A7E9DAF8DE4842A17729082A061DCBF8D88FC650DDB7 DF255C4E5EEEA960FF651701465BCFF1AB7EE28B0F7855EEC169FA954DEA3B30 A191C254CFF939081E9C845D199EE6D34C6D83EBAF249DAB6270E0F086C730DD 3A512E70494A7112BC0778E87631A1B4515483FB18737C74686B8BC46828C66D 30E09490E291AE289CBAF8F9B12175A9720888260B124AE29C8280BB98711993 E3B6475D60549B67CCB50D4D82EC1B1EA97434DD4F3BBB6E92B4A20EE63F6CE2 FF771937999732ACC76AF74EB2B4CB43DB3715D249059C057D92E9DA1558F1B5 3E54A851313ACB2262043ACD60433C3708226739E7E4941CE700ACED4EC39ABB 8EACBE8A036D6300D932A44C3323ADABFAF4A0967BA6E4EFAC766FB30F22745D 5444BFBE0BB2AB7DA54CEFC7C3A1FCBB740EA46D3D512CD5F75D8FF7F51193D5 1B74F67420B223B792AE2C58520692E2BB09FCF371A8A3D62ED65C522FA18157 6B0DE5E7590486C3E29D925B950B5CBBD78C8BE040850B8D6AD81C0D3A093492 BDCE940FC441838B5FC04689E9E7A03E4C76DE58C1923B7B9B12886263983D74 D48EC492D80F5329E2A5CB46D984EA5ABDDA3045CD684E5AC58A9FA3CC746B29 577F42DA2EFE92F2C3EFD9CE2FB480386A950D8C0A9B877B5607F9EF39297842 48FB706843B610805D5E37D8D3073743414E908D5F2DE6DE67A35950FB7A7A60 E7D06BF52C1091B5D840A75338E4BA1203E1711F3B7785D00C16C8F1EAFE5F0F 64E7269E579CE4F7D575D99DCF9D47E5EA327C2E90E0C0C6D4E527D9E30B6D46 A76A45349B93E9FC520AA282BA0D843B030DCA0D78F7528C35B928916438C8AF D5699600ACCA5766C0E5D602536DC779115A5173494B27C66283276E93D1EFE1 9B53526FAE465520F9594A7A84BB6DA87CBA31095E68516F7F7913C5CA546B13 F784DD379BF9862403FBA8F55F6EA830C68303D28382114EDCBFB17C2A92F7C7 C03F724DD1FF4B3EDA15DF1B9185193070A2334CC0F6C42FFBD18C224945E9C4 338DB3EA59149BA29C73837016C4B223FA1885CF6760C1D419B0E3B31295D656 511C787AF9FFF754572BBCA7BD6ABD1AE9CE3B4856EE7F8AE3CC792080CA9B8D D99DB83E1378888FA0616E5AFB4A77B04087B4E9B2DEEE904B16141A2234B4A2 A9417B25627897CFF8F6C2EA8F655ADF86D3939036E5C56F778350C9E26A7A96 36CD5D67F62E8B235940A818AD8B2FD88038BF7D1403042E2A5B982C3546CF75 C59E7B51BBE4ABFAAFE1F2CD3A59A78291F9586062331C22623D64590FB5543E 3C573DD7266BD4F58A211C29866BA44FAF922F4B70C8198BFF14742576CC92A8 5F4F7707C4B5C3D599AF1A4B53B271D6D09662744A552E91A0CEA5E716751CD8 287821EE4A3C958E2FBDE9B559259F5508974EA0D9C3541C81D209D9AAA418E4 45CDF0E64CCA6EA2D9A8F3D45DB96DFC45FCFE4445C86E19F43E69D172EE259C A24DF6819AF0191970F7BA4710EC73D66C3F5AB722B7FFC9B457A80AD7704972 355DB27A6B5C78CB7B244ABB6A3DCA0BF2CB180D87414A4F0E00489576C63D4A D4EA8442FF685F46DCEF89B1A399763112D73A2C495B7BF958B15F4BF63B6804 1618C11F60226E5E0711D625968E19BFAADEE70CAFD27DC782689ADCE22B2177 8ED245620D144C30A07A04136E0FD02FC48C28CC7A7CD1BE8F6AB2D5A70B67D1 571F35EA2FBD71BE44BF20AEF1A00DED8B4776AE8EBF29E498BEDB650FB3FE87 32F80A4E1D4981A5CBF878174A877FDE325479D5A7E7FFAC2FE1A989DE7DDAD0 481F6A50CF0645C5EE51BE449DD1F3A5416BDF2D7ECB12B1ECC562471486E62A 1D069D5897FACBABB2048FE5C5969AD44455E58A3D9A1AD3E4F8B60AFCAB5625 BF05B2BF40DDDBE214FB3D288DA8373406A43BE7B56A157E6F4B1FF996DBD308 E59ADEDD95946F93A5153B5ED8C0DC388D7F90C99D1F241BC32F2AC0F61D2C0A E50CF102475ABD7B220F3B130E41871A3B6F398DE5A88DE2ACB8D237F6E27418 9ACAE005039C34F0F8CA76BAD5B6141631D6B31D36E3796A3001BB26A188A9AF FE36F0900A60F0A9E3FDBB127D4638C43F380EA4EDBEBD4EA7A8415472E3715A F501462CCF10A05AB2E190BC2AC931F4BA2DB7900BAEB2C57AA6AAB7981800DE C239D00E7B06BF085E29E4E5663453A7F2A34604A793BFFE05F258EF4A2C1989 3642693577028AE19EF70EC4FCDC692DC7290EE22EBC79910201E16254565819 649876D70A437D29AFE1C4092C8A55F73350BE0DFB2F7B8011B1FDF231ABCB00 C54FF4DD90B323497A4FBEBE1096576E909D0AAADAB80F3B0C7418EB69D06DC7 1E8440F5D49682243400D66C7EF55C7D97061E093A1B8BB95632ADDA135394B3 6DC0B8B4B4AD386A139240265F82DDE00C9CA79FFA2C420A3899C24B758E3F0F 3104CFC076A488DD562847DD2DBBAF9F3B15017D2CBE17E76FC724E40DF0944A C85B70B1F5B85918CA6D01603BAC73DE4D8F7C2FA2A889CA737C2D3E7207C63B 5279550A55B6B86661E36EEDD79D842480B5E2F6475604489BECE76CD08DA7F0 DE6608D1F4BF8D8F6BF3C3B12504E3822AE816BEBA8C3071D8ED0738FC1A117B D2D810F0EEC593BDBE188ADE841A8ACD38D78B11656A3852E656D0B5B4338B49 E38CD52A817C9B2F2CC8C247CAC47AB3F59714485DA26358B7A0D7DB8048557C 99D2468964963852F1FF711A49F0D03C9BF534185C4CB6735D6681B2998AFAD0 9E6D9200FA730747A969AE72C9D63D8BA438BD266115C1BC5E41F57ACD6FC930 CAB6714D4368D35CD46C38541D361743F9E8778BB8AF3289A800CBDAE49E14ED 7D855058418536715932734C44721C4D3B50F33E64B0CFA2B35052541177E61E 87D0189AA8900E8425A5D96611F0A2B7601262C577440BD99F647A097436376E 9CDBC24CB52EDD6AF8435AAB62EB3D72BB6C16E2921B76E7117FF5626850AC0D D1F5897C1D1AD27A04F1E6FA884BE56C730661E93C41F9853CD2F084994D2E19 BA73A4A53D55E838230F51EC8E9B2F2C0F228DA805E200BFCED472F95360290E F8EBA9F48B02C7AF4C18C7BA8D58823B7CB2B415955C34430CB80B53919159A8 E234D72A0D4C0161D0E3A280027F8E8704D63912DD5DE8ED3974CFDCF20C2A7C 2EDBB24661A6B5AD9999E5F8F4BA82182B3A79B023B964BCB81780949DC35DF0 88E2300AEF1BF7726AAC98EEB276662D1981CE6F724CDB50D0A4534EF53D73C4 CDB2D5579B9FC8D417A0701ABE8A78F80FAEE5E00840ABD6CC2C65CA1A518C53 1621F34A9F9F0630DCA38B40BD0F9A3EB588C5DEA2CD74E2FB7241D6BFA19E92 9B5ACB89950A2C4AB7EB7C8C333A3BCDADDD9EC47AB4AF476056D746C5205DF9 54E79FADD6D31BDB54F9400E5308345EDEC2C1469C4A6283D7289F5D047C81CD 40CD77F8A0541AD239CD5DB6C170163A1B474BBF3F38C92CAE7DBA65867D8DF7 18A06C613D91833E9BFA05FDDDECB1EB26873002D1B879D6C6573B5246C9CE5A 596CE14545A4903BF86A099AB50ABE986831F96314741F259D12E4704C92B174 76B2D94CC8207379ED43F40946338BF3FC4FF57DC91AA51DF653821FAEAA78B3 680F4DD01199D9E5CAA69C3D783464AB3232FD41F5F2290A5619314BAF67CE96 6AF10A3DD973DAD241AACA19054F9542E8F5FC8511EB143EA3D291EE779C480E 1E4F7A64971072366EFD51CD7D6F73C9EE267D41D8DD398968DD68B6127D179B B05FC21BAC58D76829E8333DFBC752E74693647E35D26E526358A68F344F4584 FBA488AC24A875D0FF66A095B63E7BE644F019D181C8196ED7E61FDF241BB159 99C0D72699E3B197DA16F4C7644F7ED91FAF708EB30F7C7468DD17EAE57E3954 62935E802F3E12FAF9D03C285531A4B34049DE5627B968CC38AC92E5A025DB6E 421F6405B22CA044B67001F19F8C1D27FB263D954C72915A85872F7228D70677 C80D446276699CD963C735E46F2F2F32D76D38CD79BAAAB3B60DC24269FBF992 F92AA33216053C6C79B98FF0424DB382E32E894D0FAA948F2C5D92833CB01301 D256051A9E60F4FFB19B9FFBEC50BEF067DE8418AB6D1519C47A9277F5D4F548 B015AD6AB131E53FB1B0C516DECD2E1AED25DA6B0A8E5CE49845D7508C71A287 BE3814B90E464274B854EB2E8870EE9619F9234498A534C8BA8F99390CF6B485 F371206AA8D04FD1BA31403659E1F22E24B84712A63FECE4820E27C8AA4A3FEE CD9119F5630B63E750820DCD9C627ECE4A7107F2A2F5967DB6B22CA20805012F 783EBB0985B567D285C0049F15D1039E291C8D9F76AE82D2E64C928E46FC6A53 C0D75F5E04C149070B63A1E2DA02115CEC358129790294D5863A03C62AA93B44 90E8C89D5435DB19DBE166311D1D886F6F19C220646AF09631B393A508BE5DAB 42F016455EB6FBCC2CAD8429586D8E399A2DCF451E20969831E87A48C9852CBF 57F43EDBD92A28B357E0B2202830B071EBE9A6B44E4961FDBA34A0B985A628D1 F88C1D0703DD77CC580C3B009FB4CCEF1241CF509F29926212F3BEBABD5772EB A0A67DBDBCDDEA121A1DACC1191819A851916C947225942A739AA40A27CD1EF1 7D6E28A7C958C90F8F1C6FD2FC5809E4B0F519F4EB39A8D2C7A4B543650886BA 3AB36E0AB4538AB7EF9EC458A568E6EF3E5F335CAA414B475E6358DC185D91D8 A8927C4800C88896E518384684A9C055774E2203BDB171E74273CF90D6D2CBAF 4B7D9B57B9F9C9AD2E0E3213736CBD60A62F0CA67D019A6961BBF869F0973D00 FFC7347076983AF9CA7EBE3E9955E6EC502C3047271387871A11674E6E3D60EF E7372DCC0F5EBABF4595ECB664ED7613FBD2F0FDFCF7996D04DCCD7607C63AE5 FE1D23A744A45C3EFD2E1660A33A2C24E53A513ABFF513DD6BE937012C220503 7D98B2258815B84476F6C97199D2C34765F1D793C7C0027DFE120C63BD7EC7C3 4C024A3A5BF2DD93D4A14922E64EE8A7A2479C81CCF21E8E70FB7D477654036A A2A3299FDF3BAB525EE0E2BA329C89282082B58E4C381A53A5A09B8F55E75C91 12AD5F09227F7460E12FC902A71CE4D0C85CCD77C40813A8079D31674E874B95 D6A728DF9ED43C91192AA6A1B566F5FA87B4A1B2D1EF3A70D258791B03E28594 8C10700DD4B5C082AD94EAC9367110A4F180D70AA493ABF31220B28089E8E65F D4D2BAB091F8BED0A8FADF81C27405693C4B87C1408934A3E9FB4E3BEB2E6947 49E9CF34DED7C369D23F76E920426A852A4C27E1D53DB5B62B1DCE770E1D435A D1A620B9E5CB6F7BF1CDCA813070FC29F9847F5BD8558904A4494C45D798ABE0 C75869B68285BF9395A70DA7302EF22C3276A60C65AF76E719345CC87E40C4CB F555DDBF0F92DA781ED30EC1AB1486328C4D24F420982271CBA000A844681295 15365AAE1085F39643400870E0EF2C3FD8447D3DFAD0A0DBEF5195BCB7663D42 51F5101855CEF5EA2A82E49422CD056B5D3A0157776FF2AE436A933AD87D0385 F0AE92B3C0D4121D59B010D99A6D6B74964FBB31763F1F2B79863D2618879196 C3F8DA8AD901D6EA917F614D82B3220116805C323E6FBEA2327E30D4277C1597 541E2C002867B233BEF034DE2CC07A46F5B6A75F25E571F5ED7756FCF1FF8822 BFB14D242AA37D24C5969E527DBDF5C56C43AD84C3F3EE3A6B47D63603A57C81 F680E87381478969855F0B9FD8490ACD1EB89B0C5B11D154E3D37E550B61E81D FAE4FD3A2C5BF0D82C1A5CD2A0763EC8323EA4675C0971E27427A65E10C2F166 F3CCF2A2A6ABB805CBC2532812BD25E95204DCFB4123E9C6FCB96DECA0D55946 1E8FCBBB59E30947E9BFF7384CDC9A10A25E9C4441438B36F5E354A36A47F350 38709DC042BFD975DB2BF39426DB46B6CD8B443249A2EFE974FB19B825D021B7 1352EB227A1DF262C3A85EDA8A922879AEDCB45BFD5362F372467FFDE538D398 6641B9EE2136E85E40BDF36DE77729A604F2184FBD99E674E9502F81CBAA6D63 0B53632B2ACF01CB3895585FB4552E7E60F47C3ECCB456895D5E3AB68E596BE6 C168D8598C54C372B434D743E8E615D327FBA258717DCB1A23EC3FA64F7E7BED 367C7A7C787E1A0A9B3C2D67902FA9FA52104614E6CC9B0DEDE528EA75B5B1BD 3618A041D38FBDEAC52F341525CFEDB61ECDBCAAD839164F1A22E530915D4C58 EA7AFE6860183038FFBF5DED117447EBF1D8934BA2B2D8742092D9424F0B9B21 229BCF4D06BE192A2B678723F25B6E66E9C98E1DC6DD6EEB5D719037FE0314B0 982F35C32E9B68674757554916A4FA59E5DAD48507515C4AF3147A684EF8645E E594E511648B4762AC421E032F6E2B989BCA9B6E293E967D40C4C8E65542E865 85F6D3BD2FF2B14542671D4B4A2A00B11F2697FC7FFB1FAADB4B85CC7DE14153 4F5273EF8E01916112A0420A2C6A30426A264C8DEDB619FC1FC67D4EBF381C87 02DF6728C909899277A1638BE9F5B3937E73351E00CAC319EA11B2D4EE5B0790 49662837E958498E66BA8DAC2048DE01314BFAD725F0A4B2080E720BE8A844E7 1C99CFD843F4D8B037E0127FAF10456035B2AC1867D8283992B1C3F5F77ADE66 4C3E22256FB6328869843B5A0B53B9D5A735355D39F1384EDEF58171016E747B 52333C96518D0FBF14E919CD91324054CDF4767A1C746CFEAF7E8263202BE9AF A8BB428A981883917EC260A7F2F7DF386B4F8F5B52504346A2B7FA187E9063F3 73BA3DC8B922B30E946C5007173BC8DF48004CE7C85F8FE84C33D5952075AA06 0A2392053409C08FBD9B8014130734F8C24C2EE41FF626F0C13B2F6667265E19 13527EAF9CFD360365E513C305C961C1C6ED0CFA9C4B72B9B1EB0168B517856A 21029D208EA786282CD648D20EE2C0724B8690370DF910AE4475D42B8D8C9F1E 4E9E3BA7DA7BA86D5536FFF61B24CA978E6DAF494D5DCC3483997D04C2A4CAD0 4AB8F90951E446895983970B25E535895CA559EA2D2F121815D552C76F718C76 FC38AF9E456D880A9110DFD8B519B41AF0D71B3BC0517E14924F2C2E1A8B6269 AB48778BC8384E924B1B6EF85EC4AD4F3E0B7AFDD0D0328FA5C130560E4EE54D CDA56930F4508F91E04AA9258129F3230AF9D6BDD5B7AC829F3E197466799CED 026FAD92F8961F9D01DC86125C92538414070406BF771CEDAFDAC7EBE7DC62A3 1C7ADAA0B6C651989A4C54658CDA95669A59AFD18168AB83E04A0C31DB55504F C0192719065F8225F9465142DFCAE1BC399C98A6F6CA4562FDAEA5EFC8354444 6FF0CE74A4B5FE22F494E0D215C7533BB358738B1D6C001008142161A71998E2 629D1894E28941E0AA01ECEA03EB1F5455E7CCC63E9595C1CCE0C1C2C777F1FD A9AA83C16146D322B6BB48113EC2D131483FD134883571CB3DD1C5B887ADD661 251C6D3D8F3E84E5A6129F5B321DED8D03BB922B92B34CAC490C40E497A55EF1 4978C60E8F6855756FB23E22F5A663FF16BAD7C2AE9D0F736E16A84E30CC398F 2D847DD4D29D91470ED402A40BEFC1CD3BB96879DFE14C1A3C3F8318A5906F7E 0C68537619F5BFFC09B3D8538DEA1E7D1FDB24762758F43E91C79994694548B6 942F3A7202F2CD370886235E47D40393133F4A64A224BE0D85A65F6F2F59DF1F B1D2EEC9DFBFF79FEA9651D75BCF8FDE1C48483EEA51252FB4C6ABCEBD31FD61 33392252ED98DC955475FEAEAEC3A16D566D6594157A78FC5748E5855DD18464 CF9A7EB1F7758EEA4132FE181D724A120F4D8DB4697C418EFC7F7C0F9BAA307E A2BA656B4E4C956D02BAE10F2E806D8202C027B90CA931E6EC320E0599EF425F 8D8DAF5AFBAEFE83952BB24114C7E275170405BD7A5401660784B27866FBC05C 07E3E78C755A5F2007CA1840E70D090EE571A8844BECE791B63D91C6C27A40AD 14E7AF98D108394040B0C3F9D57F94301598EF602BE757F94704BB163952AE82 6524651224653C7C3B0E4218E9E91E10481F47C0340D6B6A95B2B46F20C58141 6B0B0250EC40239AA5A39FF981C793C96B941EB0B9E5CA42FDCC212AEA5379DE 1FCD097AD36347EC22CD9F40161E01C10AED55F85313F976D38D0D936DEE24EC 8DB19F6DB598228F3239732FDEFD1E9F6E272497B2E298F934E02337505EF3A0 2CC96C5659B08C95257A658372EFE6A845BD3B39830DDD2EB96C60CC88C5ADF2 D66BB069770237FE76010D7A927E7FDBF3BF37419FED5BB72184D13A4B1C4DA3 1DAA2BEDB8A15FACB45A3740D6624E6E4CB5FD7AEB48B07BCB9178538F9DFD68 3BC6B1E241F2FCB4CB1192ACD2BF79D99CFB2781CD6A5688EB6F3E2F516B9171 1B8CA41601EB41AA2EB583EA2140976E9FF1784383668D1CE2D06E5F07598A30 50C000A5327BDBE8A2E1F4736C9E0C75F5B9A2409690DA6E076B0F7DFD0E4678 A6DBBFF820228126FAB23CA929086F8F04ECAD8CA3D23A53FA63D4D10CD72169 F66913B0EB3B4F5BACA2DD6620560213D11D2680F72AAE20883569E68D42100D A227026F436DB31FA798C9F02FD6210DE7FB2822A97FB1F72F35B8EC7E16A10A 9BA3FE1094003651FD8D7C8E7F7C8383E077048E36FC80817B67D08BF8FE74E2 3C5BF2F9EA4F9AE986BAEBDD1287E5E84A73271000D7FCB425BEDC36C472A210 87E7DC941DB0A0D62934743126CDD592B73681AFBC717FEF532AB80007A709F7 E26A583FFB1DA5962915163A346B75C079DE83F0D90A27E6CC24F2A704A9C29B F1CA6EF9B4876B1C33F1CB90537DAEE72A40E1D956DC904F87DB65810FC80A5D 087E5212952780E5CAB6B9599133D5CE76AF2641C1C484A133017CFB5292F399 0705D1D9A84F9AFF844D87CF459AB79472E1FF6CD6454D7C7AFA14B75BE33342 DB24E61F9265276C159F5A6620E9F8528A918629B798DFAD2DFEB216B7A8E288 F1AAD497809519F6F68946746EC63446908D11F10C9F4D9652DB4C0A581DD7CB 022644CD5024CC54F352101342F53E116B249D3A29E7B1E5817FBC4E56AEDB3B DD4D1CAD7DF9D5AEF7CF644EA7D25946B7EBAF7D246D0B2D357612C38D306AC9 CF6508A1E99BDA95E320619128F4A4F732889F35C41E49A8A0FFA61DF5238F94 A6B434B27ED52E22438A99361C5E91C0CFF4BD79E480468F002FAC4C8EDEECAF 0119506C97143E2F5A38690B04362FAD8F2B3546274C1889FD8330F725BF6C58 FB990578835D0ECF8279B15B700272A66F8B1EA555CBE1F690E78858DCDFEB2B F3B47408D3A462FD775B50FBFDB6ED807FCC60CC93CF212020748825ED63260B ADBF1B9E49E6F5544C6DFA173034B8FE2BB390BF292D18F33A2080EE34038352 E440F465AAE9DA3A0647CE06FD62A07D24ED2D97EC2275CBB44EC2B95FBF6304 EDA1BD8B96B665A3D07F1C4B1B29377B03010836AB0F5FE24AF493422B40D98D E040A3DA9DCD040BD0B901C82D67890D7F7AAA22BFEAFD8341DC9A076C05EF22 969A4D21F069A58C103139810BCAC931482B442ECF3AD10E48D556EBC5BD3E0C E16EA3E4E8382683F9A2F7D36D2489C6179EEAB78DE7774BBE2C8F8AB039CFE3 7F92031D1AC5E44953F193CA9C10313F065BFEE1E9A31138BB1B12437F6B6ECD 7A04F4373FE3A4C7F8A6AA31417E8CBEE259A3169B1E680EA3F2FB822D2881B5 B43B4E3ECED5D89C5DDE9D4A15BC308F91116C7C9875A122217E6BD5E475588D 24F8D8DCB0D20BD1FA7CC337CCC6AC3F9F10F860659966EF78D120A225E94E49 9FBBC5FE294504875823377F77532FE7B148DA68EEB36E92232724D6CDFA7FFA 95A0DD77DA5014BB46637BC0BFE3BCAEF5B224AAEF9B6A44AD59F6AA4990E2AB B46B7478610DECB32D5D26F44FD55DBF692241594B9F915EBDE25CF98972030E 483B160620B40EB8112F89CA8A714F6BA93A2EA796F359A75D3CBF823268F9E4 CD32D97CA0F7E1BFB414C341569242A707A9E75DF9F92DA0B1DC06BA87983AF9 593228AA40141412E05AC22F0C4B9A0EE97B16D6E5B290AA04AE8FF4E103F5B2 74A1DCB7B2CE6A766C183EFD4C814E73F7EC4FFB1B3507D772F580580EDF19F0 CBDF733A5D3BB44BC63520DCD39B78243CD673CAC51ADD0797A949E8161416E8 24088C57E41079505A89B3975D5297FDFDC25738E22BD12D19B0D1CD83EC105F 070D3945A49935F31237C8F2FFAA96E25B695229FCD3E7C9B3900D84BFB12781 70A2C40547C900CB126ABA175E7964151F137430CA19C8A5947012BA9287DE8B 2D1A8C65F6AE39A431BDD2F7330FB2B2D23E9CDFB4FA7EBEAADA363C28CDACAC BFEDA0EC382BC3EDAB26369F558C23FF2E355548ED78B92DA708DD859389F014 CA9C58AD03BAE1716A914656B688B227EB7678CA7C46E9DB872A4B100AB03FC0 B04C73DEB50834B273E59AD18D2CE5ADD3C0AA6657E768398189D756773BD05D 2CBE1FA2E3627D4F45B711F15B5A9931DD981C4EDCF9C56C29746DABF8D06441 4FE4A71F4DCDDF5603671CD1FA66CFF3CC8D7DDD58A157E4BDFF0F2E068EC863 1850328E39A616102BAC8CC02AE2105FFE21E92BBF2B15E7376215BD85672112 35128449032EA49156B35D7CC4438BCDB400AC9063FF9F5B08D74785C90B38BC 81547AA5B70E86EF22A95D98C0EF4C1096C5B6247FA8DA596EC008EB63CA8E5C D6E4238D60A2C5A222594C6575046B58C0A33E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX12 %!PS-AdobeFont-1.1: CMBX12 1.0 %%CreationDate: 1991 Aug 20 16:34:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 13 /fl put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 72 /H put dup 73 /I put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 123 /endash put dup 124 /emdash put readonly def /FontBBox{-53 -251 1139 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF 20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D 68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E 26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23 337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598 0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 30F37B1F54A6F23CDDD676311856109B27246A09993752032B75ACC6FE0E2F13 17E0E4032886F6BEFC58D15FD6133A24BEBF4F909AAC4734902E4118B92C95F3 0A700FF84E87BBA094797B3D4B83A8F3011193BE6AF0D3251E1E96C4672A7569 1766A5939938DD277FC632AF8D9A35FD9E80EB2951C88088C002FCC7517FCA69 DB6F94D1EA86A4C49C5F3F0B81795680A56DB893D89CF0D181440CE7CACA9984 228F30591606BA159027E682535D06184AFA38DC58DCFD1EB8A54C7E3FDF18BF 0C16762BD7E6A79CCEDAA100BE36212B6D8378C1E1ADCA62AAAD1EE42817A7AE 9F1C56B62890ECD0B88423E922942B64A70E531CE61D9C432A5593F5A46E3D8E C4E29CDDAB824CECE17D19A63AADB17422906B4D0D2D34CA3A123D1664D46B55 86FBEC7B81703D779BFFB5CC8D10964BA7867149BD52655012CCC96799EFE6D0 D5A5ED2E2FCFCB51D5CBE9D8F58A52C859F55DF47C680F22A37680430F34E630 80CA222172B64E4D6689D70691731AB6BA785210D25DD18464CF98A0C4452FDD 361FDC605DF988CE03696952F36346119840E01F374937CC1594E88F6364AF2D 41D928A49646A7A4F5C5175FF7432DC12EA8576E8058E1D9324CF8ECAA9EA01D C6D51AE6B5B41112C1E795C11BCCD5D7D58BE82A3F760E62EA0E9FB2F4EBC6DB 8FFAD83347C6721175BB70D732B5DF9FBB2F2702C6283A0E14CC7A9698F888EE 0C6B2283D886088A052D1747CD0B1E4E91CA7F7C53F366217B2897CEBD727377 71EB37A74F1705FE91950F5C263DA76B97EBE82C89A2F92A8F727B360F36262B EC6C1E4BEBA46E527E474084826602B976453032FD7B01BB7D20FAF0BF2AE53B 1CDDC63A1D0A9899EBE57200DC94C361CB4A18CC815F4D69CA8A96A29F8A3893 D15AC2DB4048422D91635A05017747F95EA439F8260D41459A6FA47E805EC3F9 A576157DB14EAEEB34919BB46300A282B686220867DC310D27C564F55F09C782 25ED2746F4BC41FFE5E488CA14CE047FF6895C14FEAD1EB21FE725B9DC327F66 25450A2CCB38B9301F9DC427DAD1E7595AB70203F5D9C18DFBE962AF83F6059E 0AA93627F7D75BEB86C1C4782080783B442A3F071EE8720DE8E17E6BC3969BE6 8DDAD2A167F02E82EE8CE6BB4E21878E2E68E8148D00C4A8645DCA4DD5C6CADC CA0F014F48DA3EC4826805E8DEBF166FD797458BB83A18F84B4613F473EEC8D0 C81146ACAE3276779948F251D2F846AD0DF6FFF960D0BB3332CD5A2BF8BF5AC2 12ADCB4C42A5FBF4C8161364F0FD6E50A00917E1D94A648D70098C037414E6E0 3603974E33B9A8F7F56102EAD3A597922E5594CC52599531052D976EB457FC8F 8F6FE933AAD4E8A2EDD5FE5D3D4463677CEC65833F1FEF63D0DA95007CD5263B EAB8AF9A9CE1F54E9B9480C38DB5EC7BF932D319290F625C1F06A37055F6A02F CA4D923267212066397A6598E19802037A60F1ABBAFBC8E3250238CCAF403427 C49DCFCA67F8523963E732287DC77C11F6680567EBC9B3630A804933633A166A 639F2B44DD127E94D190620E97E7439E1CA4AACDC2B5FB26B72EF133414280AA 8FC652327D32E4B2FBB7F44B629FE484E4FC6814818DB22A882EFAF2D71A6725 91E62BD21B8E034031EF8A9638DF99DF07C66CE51ED0D642930152E0A05103C7 1AE57BB8FAD7011921662FF0B60A72FBE7763CEA33F25829421BA7DFC158B99E 7EE509A46CA168EBF4510FB86E6950C98D07DA99CB1768C237BBD2E71934C8E5 AA9DDA255B0F26BD784E532580C354851AF8616353CFAC71785ACD5A9459AD48 93E02ECEDEC91DE0D50C068432EF39FD1FE4CB2EC4AA0B155F05BE6115D94CF7 9A23100FB4270A11BD50BEABA373F47C56D95BD6ED7C97E733BD6FF5FC90E5B5 021F9E2380DF9610D3594B58C868123D1EA4916D97B6B942AB25BC7FABAF3D9B C2DA2DA961BD712D60F6360879A0BCA0DCB35BA8FA8DB1C1272393010F87905F 6131AB80B70358DF5CACCC93D55F37DF70FA331B6DD027EF7B417CDC1C265A6F 49871517FC052033EDCF0CB59520919F915B6C6F611B39A655214124C619C8B4 B4C3114C2FBABCF22E999BD655689654AD0044600B32925D659050FC1701F72A E43878ABFFA1FA26E3F92D5443F35291842FE6F9A6A83321C5451F04F34D1F41 BEF8014DFB236B12E35F5A671844C56E89CBA54BF86A18CF6EECFC070EBB6E62 AC0D52A5E9E0B40D391B334F86409D610CE4DB4738784522A183B01E566462C2 CA684981AB8E8FFB034CB458363BA0438B2E9BF20C8CAA1E30B6A5122F54506E 433F8D11BF9868577726818E131B6870341CDB5AAE9083BAD012924DAE080085 81411FEEAC6745FBA1F85F2BEA6681910FED2B089C5927AD38ACCD8BD2E10555 E41B3BBD97795726BAD85C289855BD5805D4640153EE48473513FBC41CDF891F 3F70758C97E56162DD303947C20FDC2A46CD7BFBDAFA011BF97A4AD02FD0C036 BC354EE1BE7CCDA95C5C7590A71997CCC3CE7F4276857AB5369B24EABA6A9F0A 28CB11F771B7A69DDDFBDB5BB3BDE118B7735380DC20FB2B2732099A56DE0E7D 19029ABCF68328030E17238E3CD981B09C372CD997E4070B71D9954FC2665CD3 74F72F82F7BAA304326CABA2841A2F87335CCA80AB4EF1A46736784C3AFC3D5E 8C31BB6A41C170FC70EEFA115963DCE522F463B7F93E92A64F62D9CF330C3954 7058EC6074D7600CDE19DC23D959825DC8969F95841AF683E1288E8CBBAF3FF9 1F5583A2AD6F15FC002D9283EFBFA7C418F537172F0FBE0151FDDC2486A2C2B2 9087CF9B72D7B6B6ADFE5EEDB78CD81CA516899DE86FE0125FFD2A6730FD96AB 4174E81319DEBB5F6AF789139B067E95977A52ADC156104B7C1E3122E4E88291 161071A3F8A9B68BE76CDBAE544CAAC3A01FB6C591C18228E122311D059440C3 68F74ABC788C81C7C711209048FBE03CA0ACE9CA4CFBA7D766396D56A1A90B0F 0737CD3AFB2B93929CAD944765326E76933999DDD5CD69A5B59BDAF1D4445C18 803461C0746F50D2C74036A95E47C832C15B897258E11253A4B1C44A79FD5BE2 C41E40B5EF9F08BBDF51FED2497A8008C77A8D0ECB443FE21D4D49FC355F893D 81CF58D6955603D27DB2644508A38998AD9182706D9BBF6A509C1EB2CCE2C950 F572C5029CEEF7D6357234803B2225A50BE4813DACE8A9BE9D6B38E256B31FF5 B3EE4957B2EB593D701E9756300D7F61AA4CDF2E75E3DB3BEE74075DCE1A4700 7FE0A514D2C0F52C1BE6FD608982795FE17C729A08D5CF5202CB2F175B1526BE E94C95080F5718D426495842A242881836B9A8B6ED993FDCFA79D1D0A190D9E3 E56334B1544B11B9067D59A915C86462994081FE5CCCBEEFAE0611D552F5D286 7164D123BC2625C97FD008AEADEF38FC0680FA9E7C01EC21DCED1A6EB6D9757C D21D522FCBBC166EF17AFF9CF1D9EE1B03DC7AB81185E59355CF2CF11C7E7D76 913C9C2477C6278592D4FA6CD426C116AFC670AA59F11AA8726387457A7906A3 00C01BB464F91EA660855DB9F2AF65BB04D217DB2A60C4FA6748AE0BA03A7AD8 3C79D0B5CEBCF50BD8E91B1A5DB794AE471AA7C4A005220035D884D01ECB7E01 ECF09AE9B64AF2B7A1FD32F9451A2C5FEB822442CA88333D15EDD5859884B0B0 50340286266D341072C895E02979ABB2D0781C4956DF6F96B3D56E557AB9852F 2CCD416749F390298894B338A19858993F7B9EFD9FB53547A36F3DC2FE1C0123 827629CF362211A74971302CD3CC8E0137D8813E90A330816F0EEF317106A2AF 595F44AEC3A251694B4D37305971FFADCD694588BF79E465DF5B35F099385EF1 4D64925BDEDD668B6595E8770FA5D223D3839074C925AC5C780FC7494DC0DA3E B856997B38A145A1FD412456BB42E29B09A494205E48B7AF804B1ACA45521CAA 52A1F259FD34FAB235D5FE943253C3E5695E16FC1727A45889CFDB08A200421B 1DE1D1AE1B6D1E727FFC2228CF2422E0722D63F03EB65E6E36DD63565C0683E4 9D12EB5CB2A812AA1ADE0C07053B2F90B187B1E3CA1DFF265F6FDF90EC94D64A 9582FC373C1AF95EC849090253CD1A7C4044CC13C9C2F99222F99BFCEBF20322 F492AD389EF2120FB0BBB6E37E0E52054F76C13DCE8697D180162AEEEDAD013F 88938BCF4670040883DB41CAF6F5BFBCFAB4C47C996ECC1B94432FB4A26DF882 A38FAA0D89326AA9656972A6B92CCCD2757CF6B92156C3D20F17F07226F39753 06715C7FB7024A5AF7E146022D3414E6A5A494F9DC542182C703FE5BFEC6A6EE A836FCA1EED58CAB92FE9F31E0B724F0EAD39D8C4BDFFF08830CA4CA34449E76 671BEB7507B32A8B8B394DE701D7429330D941D46B29822A9767975E8951D10A 8003DFABE7CBABFC70359B46358E910C4CAA7156B8967321B9EAB196F68FE8DF 2E35726D4D6C6710DD578A1197F2D5110F7B44F9C7EBF50F12E9C767B70445FF 346616E71EDA79A07224EB852F12FBC74CF9F307BA3C28E3C8909A8E6B35EB18 4524456BBC8B281A1399F1C747E56B7320FE9A84D800FF2409AF133C8052D8DD 753834789FD3B293E6E9352FCD6976D678DC714758E8AE96589398017B74C865 5DE93E65D3F4097DD5EA9AD80780B19CDC3C78552BAB6DCC98AF753E4EBCE8A5 A0BEC47D388292A53F2A5702AF41C68B9A1877091B348496383FFAAA42A2679B 1083741369E3822F5796258F7C4E0F12B37256237C5FD9518EAAF92881B526EA 06CEEFC7D187AFD470950B196E2EA5B941ABB45ECA899A7F07EC33CF9C447F31 0175C9275A748425B324B29279C331EA3D48E3146B20E86C42D32D0488B8D842 409B9682361CA6F54E389005D36A18F3C9122016D65E45A7B844C25639CF7482 780A2F9B46D7A253B3E3E0A8B2C18D8A884DAEA55A2995F5E500B8F7A7E498C8 4CFDFB0F2F48E0C9D5891984E839473F8748B3ADC823869B2E1FD33DCC51F8A3 80540BE0ED9ABAA4780553514E1A125906F937FCD569D3C5D3E71EBE32E7E756 DC801FC5300ABB3ADA0B2C0CFA630AF63F024DBAEF2C464A1CAE4E2F3107C897 3C28FB44F1BB4BB7EF5BD7A537EA939F7B39A0197BAF79D97712735F01E89C84 3E90F198EB29C2DF028764E102CE581222DDD8E36FFA9486C3A61BE598DE6F4B 68B105C765421100553C871B73EDDC8A68FEDF72EE40217FF17599054CF752DD 422334D5CED75B5E92958ECAA933C1564CF9FD791D5DC2AE32B926C45497E5B8 02938F8C594C57270608E71507411A351F653114878C717F1C58470F493C4C4C 53B3181AB7A00C871D7859E29E0C28E5C6091EB5288A02B79AF4E52998FAED2C 3DFCD8707666A282384863F3DECAD18224D4D8716723BA28CF9EF9011F216DD5 9F4CDAF696BCB0C013E203D9A3E2C4BC37507D9AC0658D6A4B4236FF0875819E 6CEFA88B5F7170038F5829B3857D1529CB1AD6E963C8B14C8F0D7CF7A12766C7 F9BEE20592E77144EF14478DBF178D6FDDF932973F43782BC9B4766D51C0B75D 0BF3EF927C49C0A3793459D70244C09D1FFF47E1CD7D418731E206025FFB0508 55F5C0BB5B1D02ED7279106E24A83C8C174C51C977F9CD564891E333C7673739 6D9DA15E07860D34EAB4D232FC1AA11B0F7E706FDB6A46BEE1ABA55ED46D8F8E 2C75B8DC98A04775A0DB05DDEC555C29381E9C588A43CC29C3DFAC7C8D6257EB 6621BD7E992991DAD996D00E6EA104F5B170DFCB3B662D1FCBF6676C386C9728 B4FCEDEBCEB7D45AEAB68A0226BDD8BA6902F6E13FAF7CDB7AB0455CB79F8F5D 889F27C25093CB908BCFC3F2E33A35A4720FF3E70D82E5C595A6D9A599E629EB 24E1E7E7F420A5C9B573AE009817D269D97960A721AEC73033914423BBE2A8AA 4353B39298F9829897EE404F2F70D0BECFAB679ED952248F0A38B29FFC148A26 974BAFBBD4F04C3BAFBA5BA26612F55FC57FC5DC8E0930FBF45EC081D87E4676 3064CFBAFAED9A2AC1733E5EFBBC77B807D5D8294FBCCB26B77D4E981A7239DF 294E32B15FD6FF78BB3003CE0876314EB458A9ADBDD036CE84944CABCADAD23C 4A78247F3B4B5E910147F69C140CFBA822224A28785A08A563E204CB221A9D6F D068E0BF386F2338DBCA8AB8F62E841D365085B14F7496E05DF9E57440265EFD 08672B493234DDCCBB444FBA8541636745EA11BFB74F19E863100B5A006AA467 33700BB8434A05B837C6F48319F63D09D876D7FE9191CBF7E8922CBDD273A6ED C241FB87A857C5F57BDB71B740674D875401E09265C89009D642FAE33BD48E1E 72151D20D9C5E058902980EAE8BA1A51E41FF1B674883A71793F2A596873F974 833E641593A3EE5FBE63F2EBACBCC10AFE2A076CAB0130B8CF3C65566002560D 30A19F253A90D10127C83877E164977927E579F5D42EAC81954F815E7F04C231 49FB4A908F18CB1DFF1CCDDFE9772F01ECD02E75671B0A5DA8DAECFF686ACA13 0BF0E9D7A3D6ED23E62838F1D3390381BDC345C4FDFDB8184460A4D2493AE905 3D8A322A7DDAAA54099D1BE0CF118F0A7CD1CEB031D21C634C8F7B88BACA0B6C 4A47559C20E7E279C5A38993C135803B09E6AC1CFC7E81BE6C3601C0BB83D585 BD6E4CC18ADA9EA457EA0B7E94CF8E1D598820BA6846D28E5AE9706C8158CE64 007C591E3EFA62CF5B0316785A107F9AF89D1CF187DD0B04E0C8B04CE77E5C53 1A37FD2549844E89CEEBEF11D4D36F398B62940A1A44A5A9E02AFDD243EDBE86 6A53F80CFDF56A014D9C3765CF8B9DC54C4CD581708A8C1A27D76DCA43955AD0 D6C6BD5EECD3D6F9D27A10A4A7B0F420F16FD6F92E1049833E6EB9753F302502 586E3E5A2D91920E1435E60DCDAAAFEB7CA8B721A6B5CFD9D6E8019314FBC0AC BFADBDA5F0EC7B18FF9B33FABDDAA78F83A47B00E8109721E4A06FC5D7C56BE8 4C9BBE9EEE2AF4B017E2B35C7A58923C9157F2FEEBACF2E21F5B182EBA0688BF BFE8B760F7A7EE7DC3EB74E35D5852A91DDDC44F6CC45039D56D6727041B9F70 A0CEB73C168294872BFC424B9231FD98501084BA1A9ACA3DCD36E9465CD68422 84558A66C1B2262952DBE9A15087CD707853072F54CC56418DDEA6B4E0917139 DCA5216B9654CF6BDB152BF2DEB9014AC9BA6D766F129A12DE620AE9BD64DC92 D48B2BCA61DBD0879E4A62812A3A27AC01A8C9C1CE77BF8C8B758080DB7F0AAA EE57C463CFB5A2141F059673264331E4B0391354F8ECBE2B892784A72390028A 44B0444EBFF62EB2250AED2C836BF79CED00C52054E342341076EA67889D8D1C 275833B2C71D27A31D33FFD256F43BE47628485E67C9A6B61CAA3BA5946076CB 3A54A394FEAF24810AF33CFC65ED0CB2FE44F1765B308138832998ACA0811558 9685D193628D03BD4DFC41F203BF9ED180DF2FC370FDCDA1DCF7EF94FE3C7F95 4874129874A8EA410557F451A77111B3E506A2367AA1D1FB912AE2659433A128 F151EBCB85EF972EB8DD939B72BC7A6A2F6DD32B9B7FD045FC17734B9C64DD67 67A9A5C610000F8B3EEF920C7691921FECA28DDB6D8E93C2AEBA7DD3631AC2AC 569781D4A82C4E9490BA834C93B8B872DBF9F63C983641D7C4A10AC55339CB4A A311051B3C52B5D5646323F983A2E17F68ED3DD48C44CC634E1ECCD21E075C9B 95CC202912C52199D97976DEC80352CA5790489FCFFB5D083B3254BDC46037A3 9279155B34FDE364230B78BA04422CC167610C58B0AB1C28476C7063F6B1328E A68D6656F66187C7C034673A49A25FE637DADEFB145E6D6184DF52F6B810E3A4 BFD081F3E21F77576DF85B8868AEEBC1D674AA0B2756E41FAF97157182972BED D2E9889A425A08220FCFA2A71479EE002D679AE5543DE4603C602E897986442B 012B080F836B9BF721CEF1A524080F69A3B7350EEE78802772783F835D661668 52F4E503DC679383867A75A5DF0DB0989E29704C8EB11170ECB61D8CD2E23782 4349C33DC7F2D345A79CE321C0570A896418E14C9CAF6B4707EF2BE06803F549 4DA3CF9DC70385B5CD0930FD8A3803E143B0631A3A95F69D3CC9B58892006D1F 8F4154474F6053E3E1163FE35AE35C611D0A8058D3DD371B0837E5C1A75C333E 8A6990A5A37C7AE7075211E9A6AD45F0AF5EA3CDACA406C9A8A825AF1C6EAD60 A8019F998326CADC2E18507CE4C57110DBCD90F74CB019A3C592AF454F341C87 9FEDB2AE61EFDEC0F92D8121637D4BAD4CB85567F49222ABE1B0BC74D717749F C2D7E6A0676AEEDBFDF3022C7A682EF48ADE837F63F9EB4A8CA69821AC8A9754 957C3893D44973EE748AEAB4CC1FFC6A4DE3313AE910EF732EA2626C3E956EF5 3C3A7B1D67EE2AD201AC78ABAB68A75C9E499E9CDCC69930A0F13CB589AB9008 74BCFA47111355CC6D8977B657131D0E2BC2A94BDEC398B03DF1D95EC79B5DE6 1552389E7757A47B30EAC118D536CA5CC497335A2D22EE7AD45DB1C14EE29349 AA3E6774320BF720B66FB4F3A4687DAB6C1F48EB8DBA7B0D96A014373FB22B1B 498E38F7A5339A6E7E43B6F1D4E67B2CF6B58DE0DB896DC6278B8BD9E4B63CDA 3F07767E471A2FC2195008E0ED63B867E1B75580A3E7A3A728512C6CD042EBD1 F175815C7656891971B097BF4D5AF256C5FE28D0FBD4265463DAD34A111415E6 5185C65F777A851BF6D826A952404BAE2C17B3ED76E146AE6F6EA2A224E7C582 E2796BFBCC5912C85E4C9CD8A1E68BD0F84BDA34DC15D4195A9866EB92710A8A BCD1CE794E2178EC40F2AA5872C0956BE405592256E2A9C4A955D8D5E5128435 C05E908313C40222C9358EB9B465655CFABE86D13E9FD85600E084C8D07CC885 71D7202C763294FD96EC307259944A405B0B613FFF26D510F43BEA641E6CB9C2 45AF74C3D285A3A295453FAE823866163ECB01150C011BD9F6AE8E6A2515756C 61243C8AECBA40E62A9FD01E5490AFE9819AF1934AC13463BF97F072EDA8F127 BD7CC3A4626F64873377425ADD935EF34CC2988958A5B6B217625CD1686AA629 42AE75A07426F2EBAD9C7A57828D5F4AF0CB83767A73B7449A7696B7C7977027 9578B008F09DA7652AB67FBE428C8D0BD475910ECC46E4AD204CEA3CB5CBE5BE 9D13900B2C3ABC825B4788C4919C30095FFFD78D1BDCCD340A3C5CE4A8F5FC13 045F004E53BA0EF92BFC26A31E85EF5F8562CC49EB4F6D517C876D5CAEB74614 A0EBCD33E76822E64532CD68FB5B78964F9D816E90A48633DB5DAFA0B84D3987 51564701907F5141FCBBF21C6BC6BD1811CE1CCA9F126A3D23F5604D949397E1 0367BBD8231436BD9F87A4F4490383CCC7AA0E8BB647C0CF64098F3AA3B72232 BA15ABA40CF94A23A8A20F19CDAB642C257A97BB3FBD7B8B1FB2AFD71087D091 49C88163B8D1E524F4D01CB6AA9056C208D179BB9EBDF714459B3437A3BDE142 B1A518D1326C318084569B5274F4EF18AAF306B361B38C11ECE7E61BB8DDFCC8 EF759C7B2566C7670663E4632A6DA3CE45D4597A5BC9FA29D27BA2E508011E14 0B546DF47E063042670D4DECFCF2A6D3871365500C0740F3352E1E9031140896 FC33183256EC1FB42947FA754BA71DD564C16CEE74AD5E01777ED2419B5AF25D 0EC618C5CFBDA1397926AA5F65B7D0408C7948DDF5C379D95CAB29B0E2DCDFAC 9BF61F93C135809ADE5E155940C63D5F8240644FA4426877D05D97215773BDA5 41DDE9C577260E49BDC5ECCEE74290A0265E0D35809FA1C0F7377E03F48E49B4 8819D7433ACE54FF74600B7E5371533F788E62F4D050B3C5194367BA801E7EB8 DC6EFCD5DCEF6AA9F7F200D5A78408A3FECF8A634ACAEFCE1FB191320746EA36 C7AA1097D0F821462BF2E9D31967722EEFC642E015A30AE49899386FAFE5F95A 4D4604F0500B12092638355CA798CBC6231E9E3F2EBB75840FA5AE67BF19E4EE 534BBE29D57E08DD608618E2A80C9A8D51C1DD9CCBAD9BD88A154D1327F36672 45EEC23D76473CF15B5F7CA909CD6471720A33544DEF708198DAF76143D9EC99 E8FC78E6C79CCE9830D7B57F56CE834A57A915BE6DA16F2D9D7795D140AB8AB9 049B2C7D91BF3419583F76821A2612D1E3F6762720EA232F55A016EABCD01510 BB09167BDEDD06EB8735352545DB47F35D3E429F33862DCE5CB676BF40DFAD50 BF8E06A71F80A0A4F9125D99CB38398956E4B99E7EB026ECA4D4504B2403B13C 917D1FE1132EBC0C293510512AB15A60F77E4605158941F1DB4A63157DF2F1B1 396D1F90CDA2C2E726095563EDF94EA591D8D56154A487872F535D095CC8F61D B89B38310E3E4D1AE32593D5B500E9F28E63D218FAC8F194E81C6C9292174E1B F83A611540C555A9DCB8E319347120980501FBFF0A312052B5FDD2E1D324B94C 66CDA3341A426BE10D9C5557BE0D179139FCBF52AAC97625FA7C06265854DE3B CE57E1D8B122810418ECF51578618EB343EC2BC63D2CE1B616C0D5312489A508 F3151ADB4FEE0C137D80CE0353A5538E0A4798F65AF9C2E514C055748E3409F0 6FC0D8A2E4D13991393923FAF9474BF42B37AB7DC4C25D1BB71FD734CA8E30E0 B0EF7C6BF46924A7C0DC62662E148938E87CBA1314F6810526BAA10036642A27 C4B8B796DB5C49370177A42C700BFA79ADA133167207BD56EEF0AAA1C1A06914 DC7A0559354CC3E3C4CCA97068C80571C7BE1E185A2C0B7F6D3D7B0E16A88F2D 5C9D60D8FA787CF3FF78C9BB493023A33FF684DE9F48F7195D51612C309B1517 8BB3553436DAAA91608ED71E67FB6FBFF99F194204422D74F8FF18C73ECAFF91 7ECC956A355D7FD6046E2AB99362374A57C276DC23C4A0B665A732AEA0F0AAA4 D2352361753674676C8B4F1036F5B1A97B9B6AFD1D6BA9D106E7BFEBDD7C5523 E7B07244633996993FA111AD4B90951F45E0C8D003B3F8820CA9A5B639963E34 41A5D2CEC339D10091D8DE6303360FBB4DFF544AB2B3BB1FA626F85AD68A0815 AB1EEA8F4ECC27F2A5CDE4CF93900F65E03A4915163949F5166805B6582B9083 F519D98D3755DF1C17848BF8B228FA3B33320C7BD3703D17CA3571E27FEDBF71 18C699E668CC59C9E4D5F40CF1443E23AEA2BD94BDA4111D44BA99528C025CEF 8C64046ED3B5875EE58CCF6428FE7EC200F5357E94CCD8D5ACBE3823EC23FF89 D34125A9E8B3B9053A2E98DC122356E7B67DB34291A5EFC059DB68444E4F8A81 9E0889D7AE32B6545E4ACE2C8D65652069BAC3DBE64BA783C5AD5554CFFBE7EC 231CE1F25DC1827AC8498C1145ABF15B6E4C7F9C3246EB33A71980FE0109F8CB CC0F5688AE13AD4EDBC488F457381331E5F432DBCD939A78FD3D72C46A086812 D9ACFFD2380DB2A6070688F0A55F6FFFB53304B3AB93708240BE3AF904ABDEDC 39B49B2FAB9B72CB2151E96B353D395AA7E02E19779351E93003033E8C022D51 581833C76767628B8598208B1663ECC90A7688FFD5E9907E012D230240327B24 0E830ACCF5ADD93176943015A285673B9F59402C0ACB8E3B1F7E1270FE3F3FE1 EE65BBB43C611D4CD904440C6CAFFADF52EC9E6C5A394FDFC063D49D67DDE740 71B01B18EF34052E5335807409C8142856EE690D6D38AFD413125C832A2E0934 9FABCB9BC0DDE6237DF3D1B0F10800B8E7E84393D68237F09083B7006F341E3D 666152953F4B18E11057F6DD0E73FAE52CB6508434A778C0B4BD7E792BD89B36 39B56C28A030895C195AD995179567035B6CC304966B21EF2FCABF86DBEFCD02 6BCBB66879ECC30677E8066DF84FF614879F0D734F5FC27688D61B06EF5B2C62 E383657B891247BA3497C7A89F79E1BE1D7C636CCC460498C4EC623A3F27A061 CE24E62E7EE663C61AACB9982B5D3FBC0DA3DCA4CBF8AA18D71236EDCC99392B 5CE1C270B3ACA5166EC8714A0CE88C791541AFF4C197E8C5239806C6AD4D6E8A 945E0B639608936BF199501020BA2DAC01FFBAB49E2F24D54B70EEAFD2DC7193 8DBDF2805A5AB461706B134A610091074DEDBDA60AB39D8ED613684F92EC04D3 9441C21A5FE6A0949FC23E06AF3A64E2FA08BC1B729020A101E0EE6DB3F2C14B 733E8F285D17831E6C76CFA5C3BD31C260DBDFA8614D27F8D0EEBDAC2EAB79A4 EB1DC2480A08F46514ACD47282B30170E81434AF548002ECE2B632ED5AF5578D 197EEA7F690049E499EFFFCEAB0C68E616851F255E07003AD4C9C54379414536 B7C995E80F5AF3D2A080CA8FFDE0047F8CE436DFE8DBD34BCBF186BEE099873E 0EDFE6E0C5771023AC85460794DD9B1C4BCD8587F40EE0B93D67D425E8284143 12E9B44DD2ECEFAF18FA0B83FB088961A99E17F6D16F344D7033634F62F996DC 35B27A15A79F4A299501CCFCC85E56F7DEF41C4581F4B0523CED9AAE3440D11A 7C1A348B1EE7A193091A3AAE0BE167368BDC2D068BD815771F448E7DE3C9E0B7 CCBE480E54EA747B3071AC98E696516E5BF865ADBE8CC8E067A7A8794AE33F0A 37B569B7DED81C33F84734E6FC713AAC26BA975D2023A7D617FE73D399463A1D 8887AEBDC313653661EFA183236B010FDAA00EE011388A5DB8D9BC355B8C4318 4AA34B4BD48CCAEB50E462D1CC4BB49C6281FA11BA9F28238E121FDB0F7E362F F02C976C54A2E3AB0916022D56DCCA9B9E98892629AA19DAD127B0AB968AF41A 87B0E3299FA91E94F7D8E5D0B06C996916144C228980F3387C48E9321963A90D A8BFD531D09B5717F687BCF0119F310DF584EC061D3E4B03987E033E39688DDF B07D8A892D 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 40 /parenleft put dup 41 /parenright put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 54 /six put dup 56 /eight put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 71 /G put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 121 /y put readonly def /FontBBox{-4 -235 731 800}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA 6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F 1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF 8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902 194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA624E401F 4EAED54CEF1697634E212C84ABE55DC2BD7AB0B2DF75975866694BF444F28DA1 C82B0FDF01F14CB8BF3D2D7D5A12F28A1EB046E1A5FD96D55AFA643C18223005 A42A56555CAE6BD34D7EA9CAA4F671E3A60CBB746D364C09DED261E309760C30 B9E45D02D0858DD87D990013D6A89CBFE02D3C647390AC6C116064972394DD5B C831C7315F96AEBD10E9D09C169E58C3EFF6C344179C39BE2C981AA8E951FB96 FEA7BFE9D65653A7F560CA6F49B8D9397727F485BCC8F845BDDA7C54DCE39B4A A8C4D17EBB62ACEFE4130081B7D17D92B2FFCF2FAA8EF769678ACCAB562CBD1C 7F6ECE90634CBFEFC5943C3DE9FED3B3F6B887D2CE80D4F611E2F7901C2C8A8C 55263C051427A3C4DF5C7790AA6FDAE5EDBF76871F1F34DA068B282455A7689A A22CA95C08DF004F7CC2011B73B5E925394AD1CDF4823201ADCB322583134461 E00E3B0B6EF52F14648AC186813C82E3C45025F52696DD338FF6E18062DA335A 1BDE88057173C032BED0153264B9F74DD6E9DCC4207768703D9861A7A2A59C84 ACEF0BCA96FE1AE1F979C7A902A6B98C7A873B271827D743C64FBCD7A7AB9341 A7E645A3D19F28BC7EBBC4727AB04ACDE1551E06AA7F1321BA3852A701573102 3632D787D085869155BDD9CB8DC8DF5EFAC20737320F851055B3E35D5210039E 61598ECE5CFEB048D5A30D1827179CF6B4B45C14C9B744BD98D8D43843DCA229 F6F437E78CEB1FDA3939291A3D76D9361B1C0405216910B05386FE85E4DDCC87 B7B18BB3FF214DC47D38F92BA3447F5DC521BFE42B64177C8B72526B35583683 3BD1FA7CE5CF30333A29536DCB67C5470E39402AF2D37821AC806431A5261E15 B1625F6A7194624D33B42527A6992E837D94056D90935925245DF87EC8C756BF DDA040CDA6C22EB9152ABFA8C30CEBB70B808B11A8B9B960865EBF994B034A13 29F4225522E0668DE8F4D29FFADA86B2C55EEC32E34D37D55F767A89212D578E 6713E54E2F901A2E48BC284816FFA927B9BDF95C829007E6F0543E60644C6779 9F117E963B2D6CDEFE94C96ABBAF9377E1429FC71BC18AA7075E5DBA93B31373 2D23BDCF40461E8F1949C720FA8C93016EB9B1545483B66C77ADFBF6723270C8 2429DDFBCC8534E712E635DD1F528612F349EC95D7589B696272CB8E9362177D F220C9580D1993A878F5920CD2D2376BBF2DB7B84714DE9F000AE525ACB3B500 83310B95B332C5F9BB5B66294B41590FCDDDB332E24DD97A5234DDD10DF7BC69 26F4C1A0AB35E3CB594F1609662CB7CCED3B21EA62C21CF69B80611FB850ADB5 CE54DFDE69CDCD82D30692D3A687A4ECA99151B3C87811424D9ED7D993C216C9 7928031EB11DB3339DA6BD80E629A2D1D098558D0D6B649C009383884B505375 FE5E4F797AE368485C25769B2BEBA7715BD4A4204998FA3A68C36B26D434E6FE 3FD69C159400CFB08903FD6E89485ED3CACF1CFE6C46FE822D12DF9516F000B9 28923C0D3DFB750A9CFF0CAFCEFCDEE8479EB5575A92D823685AF32730A6E918 259536F291F0C06411F880E408FA90D0B4C5CF988533D351186C535E1E10ED9F D98C20070745C1E1848103CA76F5BB8923221032BA9521387AA5EEA02E00E181 D1C011FDB0CF0EF40BAAAB0855F81D9D39EA4315EA5D0E63EDCBFEE3CF6D9170 3F36F74A373DEE49961548E551759910C7FA03485DDE3863B79BE9B33618BDB9 79C1F590AEF3005705C7277DE0B357A799DC40CBD3ECCDE4EEBCDCE703FB2E76 942C21DE927B70D92C6A6A5C4140305E86A0B962C580E3F4299DCD7A96A45938 9507822BF178CE54C86D5ED55C50A06C4117DD25811B92E93F433D596CED3D48 98FB19CB52557B44F81D5B7C6D01ED6AC04109C8B0FE2E727DDA7A0F6D93A5C1 1DC4C275AF29EEE785291696FF2C1097840C1E162ECF96FE288201598C8D2FE6 732AF50E401CA68EFE80FC6DFCD38A22B379F055909E33888A30AB228196A5F8 FB94CF4A0A2F68EC13D74FF04DCEECCE255D058F05AB4BC91C779A9EF575960E 9EF3E9DF3666BD0AA3690BB213095859356E279AFE2C2D4D3742386322AA25FD 2F7180C80236F5240F0B798A03606D8F35B872E83115999F4D5B3F35A0B92265 A697B60EAC8198C178188BFAF99DBA6B0C6768E5E275AF1B0282B995A1193BEE 0A7DD5EC84C1D096C03132539BBDA351D7B0A8A7907EC18869CF6420164AE56E AD476DBB16D63DB0DDA2B2F98BA1E17048942138BBA89EB73A90013302317509 7B727296213404BB58353B5269FB8460E45735D8ADBA40E3D075BB60342AA023 63000A5D0CD995F667B706F42076BADDDBD072B927C1592FDFDAD6B34B412D5D B6BEDA7645AD54BE876BE1DFDDF1AF7991C97B8EE12500CA9C19D31E651162BC 4896C8891925DD85EE46C0E17DA5A4CB3F05DEE77ED608978F8F0DED11BE9461 B7C8FB0A3F2D102BBA4FA4E1677588EDAC383F84B22306A554BDC7288E24C918 4607C07212EC2E0F93995B200CB2366F24F24D50E2B3FBF7F3AADCC620BC9AE1 96C97935FAFBC774CC90F4BF067C1E1386DF125CAF16082B1CDC01059BCBE8ED 2FCC464193528D99BB9185A3BFB6FE38B0D016BB57C260B1AB58B8113FC230A6 3AC681EAD3C30D0CA3C9B41C3BC3B6E3667C4A139382EA59EDA3CFE0F66EF143 22608F6919DFD42DC83D3A8A65C0359270B9D996C50882FC30510ACF4EBAAF42 414D6BCEDF9994E242D1357EEFF0A32EFE6E0040E161D439364191EDE9921F59 149CF124F35389A459C699D67AD07970C943084D9FC0168A3D59D9CBA1B7D13C DA6B25BFBD6011739E16B0B9E2B3EA218EED58B0ED436851A1CAB6BB7D858D28 754B0B246DC0DF4224B0A4BA9D56471CC93D2C872E752B368B7FC3FF35062E99 2BE184EC16C2C95CA66129F3E2CF98741C0205C9DBEC9F12FC8B6AD4760E4B43 F0F590F79401B86E9043D9BEF3EEF8A9093927AA7FB3104DC74B808C3A1E205C 1D499AF273690AD8675DE3A7953927CB6FA47E0F31C6A943F707BE12E7D34E53 3FB2941C7CF1FFC985778D8586EBC2BB838ED478CAA2BC236D32A0E00002D0BC 5569FB075E8F4F0531D0ACF9EDF126435042C5653571E6DCCF10A1A9A3630219 4F043E1294B55846E756CB6C4E9D5CF5E251181B56C682EC00B25882E634D7B0 80A388E4A3C77DA4E8671A67875F580A4BBE6ADD6085E16A43E2C52A952EE276 75011AEC7C33789EEAB3D718CD87436E9972946831331641CE6AFEC8D9EEBA83 531AD48742800119A8E972A791AA0F8803794DBB6517132A08E71D61C2481408 1E56DF17651E23EB9A5A4F9E323381ABA72338152EF9CD19C122EAD0ED5CE0BF 403C427EBF8969BD73661ECF83DF655631330ADDDC6133D87D9E1824659238A1 E84187D07A1414FF6ABFBF90309BC5FDCA584090A85FC02119204DE9AD4D8F92 BF42BD0B0254F9EB18F6465E2A7F2319A85B79090D13CA481EE2954B08489AB4 CD3BDC8E1FEB5F4F9C91B12616F421D18DEDE45DB14D2625953FE308C36703EF 4EF1661B07D5876D356BFD473496CD921EF2CE89F469AE8655B94A5BA5738BEA 1E3D309AC60992F48B564D4B611F3EAB663846DB44CCFF72CA21EEF48260941D 7983E8855BC1B0B21E2DCE4CBE8B784ADFA8F8882762F9AE0A60747FD09D8EDC B89B973359EFB45119FDAD936A8FDB034D953307783CE8882213C063E997B423 8FC61A4AFF979736FF49075291A71C7CD08200C2D63DFF248E3EF515E6CEA0AA 65574DD111A7AEFB9D345A55128CDE79CB7EC52B00CBD5E88664BA1372C4A444 DC8769D47E7F89AC5666BE3BA901EAA6C61786FBCECFEC797C4FADDBF6D58572 37D4F31F75EEF36940B5C1EE95C8A4FE2AD0EC1B48AE3C82318741D884EBD500 34D7A40470D750BB4CDAA3A0B5A2D3E680FBB12B494440E549FB12AC11F7AF26 F5F833539B341427230BA324EB635BFB2F7E4E424147DFC82D2FEF2E9306BBDC 97E017D088FFC1927B3D8F81122E52B412622F30A223AC78BA1AACB17CCCAA61 0849F429A76B505A22058AB16960CD8383B57620292B4F36678ABAE7C91E77A1 1F579A1C06E3D873DD7E991EED500BCB44D215E0AC6570B398F32B4934A748A6 10BD3CEB55C9D63F84F3A518855158A4711C8977C78A45AEFAA0BA0D68AF0A88 C6CA6291E6B71903131ED60101EE1E35055B17D2FCCCB462187DDEB3E938E6B1 6BB90389FDC0477F3437C701711AF9904FD85AF2F284F182C3A7EA33E6B1CB50 24D58818AC2B11821BB63CD00BC174FAF434093B214B1E00BC7B68F60A51348F C8C44A79736FF998FE2C8FF3199250D7D373E85F90AF291801FF89DD047C8025 384B46B33D5D88D28EF075F296E61674054541A1DE7EBA7F0883E83028CC39A6 CFD22B773350BB88DCD264AF1B18EC226F72DDDBD0810A14BC6AD93240BB28B1 562F2E47A421914ECF7EA7735DFD0EFB2D4B8D71E2698ABFF4B1F116A4494357 42BA1E1C4C9C4AF61696A8A3F574C196B594DA43AA29651F0889787254A66DF7 5A5E812111DA5013F45D61283C0C3567FDE971E3727691828BD532C5866743E6 7EBD001798C54D90D33534A3D0956F01206751D0851B6C4A8719BF9FAE412DCC 3771F6A7C87EE73A622075034E98466B89584AB0F3EA4F24D131CDD54CB57919 2F8B1D3F935B1D1F18D3343E57D475C9BC200349D84EFCA3306DE03F57334C2D 5CF1471C19EAEE382D1E6712F9792A0AD56976FBAB5103878C2D7BD0F330BD63 3BEDA98D0BA2D547F6F03EA1EA3CF5FE6C813007C3364836C8E8EFBCECF6D18E C1F5E47496AE5D6E25B83C0AEEB0B4FBCF83F8F3C3AFD87599B972F2360795B7 1BAFAD890D2A004B4B662CB3A4D5E6195A37490C23562B7192B329F163C03600 0F810787C14E8717924C7BCEF0190AE4ACDB43E6D7CDEEB4C435094D393D2F2D 6B8B1A57824DE9E3F51FE7226A858B3A507665520CDBF15E241B9F91956AFF92 C5FDB07768847CD6A776CDBF5D4C804BDF5A34B4C87EAF903148ECEB8261D91A 17B59B40B6F71FDDEC1A80796A89C7196244D21A8113CD71A2BB2375BB1EE9F2 2BD4A1E284EE82DE8E9FFFC0BDE6A15C9360D3F38737CD964D1C609D477A1683 B8E1C5AA56BD231B5DD67BC89081705DAD748B6676110F130070F547D804163B 054E4967BEA7C44A98AD25568D55E6A8F042B682ED21B469C999A51D74F8C34B E394DF7ABD6C05F28E73F9690259155AF4074ACEEFC58D6CFB6477DA4158D971 FFD4AB4117FCA7B9AD9B5FC1F8314DF784BAE120EBCA1EC2AF2E5E6AA6D35B01 47053E3E3EEB911D07A04D4F583397BE8A8B189DC13A55DFC59953C0805EEE29 D42688E4E777FF215963B29F6570BFBFFDB3FC13E8260601B2965DD114227728 8B4D134B8E106EEEF4C8CDAFC600CA82018183A190AC523CCEB9D83FA954810C 77FD27B0C287EC9E1DF994641CE6EE70A5F72675730ECEE0262C70473094D520 05227BB48C066A5C23294C1229A940EF53BD1FCCB214B7EE67303AC7C1D9B290 11891AD36F512C072C7AEDBAFE8EAE9CF54058F1A532BB6A0E8DDEAD72BE6B6E 7A685208837D165B5498266762EFB5ABD244BE6420A6727C43A0EB5D55FC355A 6CAD15E5370ACD06DF4626F31A6E11BA1E1BE979BC7CF7704FFACED26D35849B 29264ED0FE295D0808A389D4314094598337452E6CB72B1362A7E8733C1D810D 4DCC1039C7CF5FE33DDC212D3AB929D591BFA1B17430BC2E03C6C716C5959A30 BC5DEE900A2BE18900C4FE6D6CB7F528F5C86DA6A4D78F68F63635F74CFFDE09 97DB54C4CDB2128C6C2F6C525F28FFB0C8DF50ECB4D6EDF1AAE70BB8E46444CA DBA2BA4E6AAC6D705EAB956D4095C8277776A8C29B0FCAB150BC29290D876D41 97926B40CE944DD37F57F5D0B1383F4F4DE2A8CFE75AB6443DB2AE010A2A4DE6 1AC2543014C340572EDFC94D2A287805494AED12B4275AA88BF6CBB7AEA78074 89D770AB8AFF8A58799EC7558C1BF7518837BC514D5FF7A627727604A3ADAD19 7A3431D9A8150B0B878178D6192AD0BB8EF2577F7A9AA4D0BB225D91207F7345 18FAE47B652EFE531354FFCF9DCC027ED047C269B7F83CB894B726180ED760BB 19CEBD48D71206217C2F752B8D3B7DC662A5DAA095109CD9E7AE242561420F13 61C38431995016A3F6256B8E57D0088AA44F8189554BB2FC1E389614A4E2AA1A 9202C99C53197AC9E10FBB4729115C26D5B52FF3654A5F7DC08927E0DF68A30E EDBDC0C0A508DB513442F12A76967A59A1EE34DBF8B626F9B0717FB8DBF2DD9C 9DE5416674985A09897D008D748F0A3D92E30D3456F2F69B0C8E6036E2ACD6BE 1A5CBA050EB6F5362A75EB7EAD0BC57B399779D86EE890AE75DE339506B65195 B515F63ACEF68A433389C33AEA09BA594DEC2C00120CA8A00BA00E02B90EEEC1 0A70F75C483BC8157E09AB535404C3017B96B6FE695E824576E09739A4438C01 3CED9C3F11D032DD6CF58A5A833AF8AD9C4E71D03B561554F4D271BD1CB8D140 5AAD5F77117542E91DF80CDFDE46298DAE2347F8A0CAD72BB18ED2BC2615CEF9 0A24B7348E3A8F0818EBF53BDD88986DF1349AB5703CC3E150E1C27BC3E50014 9B59CC2FC036711630DBD67650EE45F1CF4BB7FD925D44D24E3C7643C694D898 AD32AE7FE535E99C16E7F2B78706E35D48DC8CE6F20608F5B36C7B5D902C31D8 9DC0218D3ECC502A6B58DBA3EA22634845085175CE97578236C35F27AEBD6E57 D3C55B1195E9D3D18D9F14D0E1F888A59C107884CD7AD3668D802B85C341064A 95B4A0B0198D87D68476B00781992C71F58740A0DFBDCF2D433FED818AB8B36C D13F2CFE8C9F1F1F054A5BCB39BD0B0EAE21D56E18FFA29AB664AB6A00EA85D8 2DD1D44F4F2E4A5A190C2AAB4D5DD7B74F438F71C438C0E0BB56107C50737C85 85331ACB460E001F70D922223E85E9655BDC734B208EA7CA33EA60A431E3F396 9AA46D22EAA4A7C3C2715EEAD983D7E2F10229335A01C4E1128E5F72C9C049DF D8880A2CEE2528A789E8112EFE55167ADCFF95B4FDE21A533185D6774ECB6161 94F5CDFDC949E7D869DB3B8C849B09E30062D6CF387515EABBB468FC9986B3A6 99E5C1BE126A9A7057975BCE5A0EF092EBEA22DB3D06F03D8CB2E164EFD49348 58AC53877A1E309A633227D0077647BB2E16CBA11A1851E1F0534AF2C44FE807 614CD08DFAD2C5A9E39512330D0785B3229AA89F4AA6600AD16B4319BDF4773A 678657F95A6576B562A8A909071AE16362E5F054499682FE71A03DD54CA8BC36 BBEECFF9975E395DA6E47D411167F2005FFA4A3B6FDAD07DFC1D865F8BABAC06 155BB7B72AADA98E8F4A88E138A88DBAE7A3C9EB7C61BAFEBBD9407BC2F817D7 3BBB4C41E630E8A265D4042960FDE47707673DC34184F38C9C25DD7941B4CC30 57ACDF99B7758EFCE3D68BD3EA31456BF23B05B93794B2A67368A78B4AA168F2 43E9EEAE601CA0CB4D09E1EF9E7510940F41ED3AF49D580191FB3F30C7CBDE44 86C39F2190C990F26DD1F323016FCCD9F1E29FEA90A606753C7C0023198AA768 184031687DF9DA4621379A48D57A80C0A02A9E4E8307A0F7A307A2469F8DBAE0 CC73D3C8243FA2FB27050338C9F8FCD69BB24091A812EF1217FB6737CB729A25 F864CB524A4A0189DCD56A83318C042FDD44413868AE85B34C9A8A9E43FCA513 CEB62CCB5AC6FB1BE24A6E9E8D8B2264959312352AD5D07FB23A745C8957DBDF 0B8FCAF5DBC5319F173A65817358A7BC11B6C1235075548EA9D7DEF352027D37 A0023B6915C2BF4A7A175DD0F4E8D12976CE8A1E22F371CF229C3E0431D757C6 52B279AEB34BDD9F6DD0BCE00127CAE4145A3984F8128C03EBD52EB4CF3D9B62 056813A9A943B7B03F23CB4CB3DBD0A5AB3391472A17AFBA3FD7905D7923FED5 64E1DCA38048BE6BD43F96EDC9D68C83BA45C3C49DCA4D3A18266D3DFC089187 744E57D2C1E0ECE405046D590FC67EE3EDDA288AC31CBB2C5D7B878E4E4D54B6 1CFA7A501F27C98FCA9515E6E523AFE69055BBBE0100F5A3478CD42F72A4A56A 19CE469B46274BEA9BF03ECA7B5F0561C23042488AB03048DA0DC47DBB56BD27 6327B6D1629867796EF962114B7A4D16C75BA9E002A77BE012F2813273BA3E7F B26C590034707A3C0927BB4A5C0F73D76D11868CD4D4B333ED305602529D074D BE9878C5ECAA203CF714C267505EEE23075B9816A34CAA8D07FD5D0862384017 DB2818CEA02EC8E1D6F7AFFEB35E0A92C6D04D866009925B11AC3278A57464EE 29CC22972EEB10CEACA99FAB524039EC9E30CD7DAEA448D6595953A12A2621AB 8599362EBED50D592CEA74AA282243F4044F6A2A5C288419F94E20967FD25E0E 8D3E203E383886FB2B559418BFC1CBCB3203957BB80A72A21A85F3BBC1D20A80 F18B3AA8229ED4BF1C6CA3042952DF276DD2EF9FF995972A0FA72B12E53C9542 66858F7EBEF5FC0D46C7646953392F06D2E38EC077023A6AEE413B9EEEF1DA84 7CC2BD3DAA0118BB3659FF1ED481D14611F34AEA2B29832CE51F172371422419 148C20149A9B2720D8A7CF310324A25C5D4EAE181E2021278E6E3986FC170700 FC758B687D7974E4C109AD3FE09A2C638EED3D6FB097975514C1AE2D1EC9AEB9 91ED26755E42CDCE4033CF3397068E2530835E052E6E470C31BC0E107CB8A30F 3E779FFFE7AF96504CB85A2871126949F79929E310F992686DB08CAF15FA2C4F 69D717D475A8150F09D52B5AA17023F09AC1981EAAB8F98122FDDB2AB12F8E28 3B4E603050EF6A266E47949A69D48140DDA50B81EA176516B77533DDEA3E909F 3B0D1058740D886A7451F2B5E59475AB8669FD7E63B20FD74B2A1C35B02A31DB 70C0FF1F10E76A96054845D430B115729924B0B627E49B8739DE3C7C31FCF80E F56ECBAA5412432E63F8424FBB75FA47E1D2CA6AE65C50349962FB492F51926C B72D444508ADA15824B2B9DFCD63975A9718D0FE7677597F536FD27F1880FFEF BBFAC59330A2FA7AA03676D4301E429CA69C4F74A0D0BB0145D9FA32904B6303 6B50707B710B93F009C14F6E0C2E940DD9D78F7A25C22DEE13ED565E8B42534C AB3D50B9399AE6AC5E589F9E774E16239B8BC30C33BB661E2FD67768844930FB 288E30E0110CEABF0FE9C32FE01E45A552924D44E6612DD5E441EB6DAFB11047 8D563035E7C9DFE6180D98C759DDF65117B1FDB86CEA3285DFE4D14DA3114194 35E905728AEAFF8CCE386753BFCCC8EF211BA4D8CC8EE63E9DCF3E94773B626B FAB186EE9C51130B3A5F77E3E68DFD694770F6ABDDA10CE09DB9EDBD8E1BD9ED CEE207A2EAED8FE09CC0E88E151AA7789A4EDE2051CBB54C4D3AAB8C69C91C88 4E456A30CE4C951A7B1488636BC0F76B80146E7389D32DC9B99BDDF61E464620 FBA37937E4C6A9B04998ECABF1F72779EF8325FA053AC734D0C47FDBCD73F521 4F63E3F482033EF465F4A39FAEF76DCB594C3C8536819C98E105FC22571B3AEA 562BD146894F0DD5A20A499606893535B0D89B3A3CFC5F78B6665C76F54B4D54 FFB0BF0C4E2CA04DE83EDBDFD0AE95F78ECF2FF0560A978021F77735C74F3FFF C27F4620936D77F9A4C7114844576847F13351E56C9375BC72EE49EA4D6BC15C 0F85DAE3A7CEBE7C136AF523597F28C71F53C0E4B423D59D7F1499D92BBAF80D FEE36295095A90D4C30F7C8B637AC1578B319A90886BD859030D4FFE8AA367E8 68EFAFC0DDBFD689692F99B4702238209B63790C413E80C8C74EF7B055A65347 48F891A9C4843F19CE5125440EED212599B7772913EBF9ACB4EBD7A46662BD55 BFC8ED468541B9A44696E10FA6FB17AB6911BD94DC40118CAE2F250D9E1770C9 4E2189D346A67E99196E520B47556BA5C935A155F926EC3769D4528244411434 6F4C00EB6D6F016DE90D128909B73FC1C47FCBA9B9A5D7A23BE5ACD1233C3505 4CCA33EBC1FCD4B7C4E962BFFA3E00CDA85FFBBFFC1C412E103F7332BB5893E3 0A2191B188747E8C3BB923E3BB42320983A13CAE79AC7B733667F4A83313D747 86063F202C880BE2380658B5474E8ED54BF08BA337A4F0E063D9CE3A34DB9300 53A89384B3EA9805F0665629A1A3660945611858F6AB6E563F3235FD5BE19038 0152475E76DA8514CA698F40620DFE79230CE6D82F80DA760649A7E6E1BB7B94 841310652111BE43A5A69DB52A5FA8EC53F88E5A9B678FEFB0E538A41E26AE44 EEB42AF207A694CD410902B26C50F88D92032367D18FCCD7CE81F07138B5CF02 8091AA1B2B7E04C05F23422F1D8CE9F6430B89F41CB784EA8EE77DD081599D36 4A2E4A491C4F919DEF9954CEFD92BF0436213993A27B4A01343FB55CB0FB7783 2029DD0BDB2395400912C257 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /circlecopyrt put dup 15 /bullet put dup 54 /negationslash put dup 102 /braceleft put dup 103 /braceright put readonly def /FontBBox{-29 -960 1116 775}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC57033D79919697C81395D5B94C3AAAB11 52D73939076389CE6C55308F60C5C553AF6CC4D0A6A9BF8AC24973A41FBFFCF6 103C2BD72C86A8806E179952F62D1EF43B91E4FB41EC57E51DA4EB6A448D1C31 1DAF01675DA184282D532AD7B1F3D00423439E97E375FFCFC0BFCDD6DCE499FC 0683DD1B05EE11A016633F9310CC95B30F55A0DE1211436FF974FA026BB99EC0 B6DFAC2326746C3497F1A9357AFF08347E5D9E7226B705FC5DDE1C24A3AA7603 BBC4278AD33ECB0798A9ACB9B3620F3D6F90D96D1C80DC0C29CF6830F2213E4E 1C709AD6521B6E63F2EA9F9B9E93D9A71E912ED6643AB1BABDB02BE00F2138A9 F6AFA65ED030EB2A62352B5BE8CE28E1366DCD2F6A14339469F2C0139085144D 53E9D29DA5E08A2B78AC12D1CFEA66FEE2A14B41EAD7659BEC126CA18243E7A6 6E3643CCCF8ED7702F66C7C8B899070F3B71735F6E3D95056CB4B77FFCD6A452 650635C4788E40E38C8505CF4C165732BBE41A193DEDEE8B931D3C188A2C913D 45E1304592655847359D9D03A79AF35C14B1C335ABD0986B52F26256A786147C 8F749BB94CDD8548ADAEBE5A5DDBDCA11901FF71ED8C9D4CEEA5957711768974 6C8DADF2E6E1E15B035FEB87191141208C7FE4E6D692ADCA53EF05DC5E1F865E 9588BD411F9A3EF1E9D51F089A90012DE7C646AF1A7DEF2655FE3381B6BA11AB 50EAA26ECB65C49624F4CB26AFEAAD0AB5EF14D448C941D59C88A8A2416366F6 EB0606E5519EA531E77861C73954D69D425370C2D4A383390E3D87DA5531AA39 26F46DD8DAEC0E87CE33B32FDD476E37042F93436DE40EF300B9D81154521CBC 40A9D9D822C9EE13B721F1ACDEA79939A2F3B658F7FE601CBF321E5C31C38426 41C5E0A9245221839CE14D32DB4AE2987B0BC756E8DBF7D9F83B6CC2CFD7B0D7 94FA420D26CCAE9F7C0E32F6EA3342EC95D793C83E67573476E447F3F418FDE8 BC9C73740EFE6A0CE6F7E42F17F1ADB188B533D1D41CA112E73C7CCF2ACBD345 9BDEA2FC0A2FB357BA250DAEB7F085FC417BD4F364BCC00B2AA2E19F3F5B728D E0A42143EFAEA62DF1678A79D25D2E3D69CFEBA6C5844595AE2D53DE40C091BE DF754155362627581E94EC9009DD04454CE9D9C53DE3F615E4CB174176BC5479 D9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSL12 %!PS-AdobeFont-1.1: CMSL12 1.0 %%CreationDate: 1991 Aug 20 16:40:41 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSL12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def end readonly def /FontName /CMSL12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 67 /C put dup 73 /I put dup 80 /P put dup 82 /R put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 109 /m put dup 110 /n put dup 111 /o put dup 114 /r put readonly def /FontBBox{-56 -251 1102 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 55FBD18DCEF738EFB8E96B4B61D9C1A24F5FE2B29EF89EA4320BCB1D16E30E22 AB926EBADAACFDC5784740982ADC9619BFDF3586F8C12E6F6E588B44226DCB87 DEFC33CDC78D0E39CE42F3CD39130758A1DA6723A3BFE0FC6ACE02389569609D E0A2F8219BCA30B5669A6EF48E4FC32BBCC3CA7CC2C7615DACC771E59FDCBA30 17F349B2BEF4EC6B45905D23BDEEC669B3BF525881857B942BF724608CBA8DA8 37CB92A472B89421D4BA156248D4F4F7AA90DA4EEEB4B3D57A4C2F0F41B7E669 9AA74D9F4743AC680A1EA18B567BBD8A2BCCEAC1795CCB5188C77C5B199027DF F158135941CD020826973194789ED9B5279136A8B9D0D9979E5E80F95A223851 BC17E0EBB94FDAE8F32FE889774D72FA17E179F5AF39385406FBA973734BCAE5 4DD33DEA30B1BCAA9207D96BDBC6AE9519E3603AC39A09B2A52ADDF935FE10EA A759515DF32688D0E95B1D37CE23E9F45A114572761B088BAB7464D8A1BF7BEF EDFEC4E472006F678C5E2F6E61AF9E5A5D6DB85600E53818535889F6C31061A4 9A6C369C2680CB769A5540D5A62429DAEE4E2AF5971BC12DAF37B3DAEB66BA94 2998AD18DD63DF3A15EB2FC41AC343063AEAFCD5D2E1BB23C444D4671A954A93 D486AEC7E85A138FEC0119ED1CE10CE7E31F9952B64D538600DEDF8A47A1D883 C36782EFC22E44808A443683D957037650468EFDAB2FAAEB76F20A96028198DF D7488D939A34B92F3E7795DA08E367E2D76DC55390B2E1B60C0D79E94A5B08A9 8A05EB709E20AF278FE8CB356B5B756C40DA10C2A291A884136D4FE5B0C23022 DC1CF3D402B4443529A205D7681FECE13AA57E3F277FAC55F24D6899E6AA82AE 8BCF4A17444A50E22C3A0C2AC9B396D3AFBA758A25F46DE207DF24CD13D1D9B2 3894BC1DC69D4745208B4153D6968C92C559742FD2DBF4CAAD19A4388913BF2D B76B56399836FF125EEBF22929D0EFB09968F153832EE86F4CF5BCEE2153236B 8FFB7BF5FB2BE80EB002CA124D2BF8E564869B7CB14421E803F5193412CB24FE D2D5D9BAE6FD78EB19C27E7C20C3D8AB3F29748FF222AB71EF45E71AEAFC7AB1 5A93136ED4BAAD86F98D5276288F7727504CC1532258D00A264CA159C5D6DD18 9D19B2ABCFBE00661C4E308B73EBD47298857C9BB0B9B42B22C0CC22248971FB C20C2E9AC925CD11B546BAE8EDFBF2B8D6C092651A1C52FC08ADD8A10A41E645 B83D7386A17C0CA5BB4A75AC7A8A18009D2FA36DFE4977C312295D55C57470C4 4C893DEE140A1E6DF4472E2D82850321459E17AEB4AB008FEDF77B99C5CDE7E8 0B1A6F51231BD5BC164EA303DA2E3E7295D9FB3EEC5CB2F7B212A2A4C17B5925 09F09E232C4F65DCC237C1FCD5B2E880056B603636F17A9A8BF3FFA7FFB12C3C 6258B135DE0C814E896FB56C6983F768BEFE2760020BF8D768F505C49B0714D6 A41189ED4CCBF1EB32670F8404A0E82DC3F60335A175C672B8CF9E9D4CFE5EA8 D79131C48A57A393C494F8D9D5A19A43E10F595B14F735C0F0E0F87BD9F1E0C3 D5A67480FC7CBF183383C8CA6C3D66A2D44A87245F12E93FE095F8E31D4C6E78 0C26D51CAADFD50B14F1544513A6F0017F4081834AD297888D606C34F569621B 4AFD63B4A33AB33F31E28E042205E2C254146562ED2C793A6FDFE297356D905A BD66BBD011578E5B690745EF4B2AE455E02ED62599827E5F7302D1DB2A9105D0 EB142B07BCEC916DDB47F8D2193DDA641C437C80C8E2D6E622C4F2FC536EA94B BBE447A95EBC84469BB9415D685317E58A13E0BEEF1CFE626FB9F1F0AAE17D8B 2C38BE67D9813C96AFE5E2F69D716123FBAE1CD1C0DA76B31C039B1F1A535BCC 423E88790AA4D72526F283BB5F0F112D5998CE0015CA7D46E7D52E46D49FD02B 19A3FE39F45368638712C5D809B7DF65EEE48068BE27F71770F903159010F355 B3DB60DD917C1AFAD9CE8C7C01C3A346ABA96E69D28F33C8678FDA67E5914D7F F24BF8B2FAC063F269A4850D5048751C561AE1460C93B2204B913486F287C09C A33050673D406741D53D2CB8FAF0209A0BDD873A04826833ADACAE8AF9568A4D 0B8F61E075FF9057E97A3197A6D1C59B5C6AE7B29EB464386E79C53BE6A7C70D 4F84B2A8710C9BC50423BEE818AAA5BDCFF4297ACCFAFC6CE25E77E49D09F3DD 530718CFF6D129DC67DF2AD9DC829AE9D0FED905CACD8C3804D2A8225A346B47 8C993DBAA3190BC8D5FC491AD6C646FB3F4211B89F0BF4077696090656098BC7 30BCD7ABB3BEC3CE48E257B135DE989FDB0421342F4CD2556464B29D3D5E5837 791241A7E26DD89539CD19D23024F2DE5EE4BECC84ACFF78586DE4CD98E6AD18 5A6D82DBEDF4FB5F056D7A448E6249C56B1AD7B7177222920B96A650DB9C5668 3584F228C0A710EF78575E82E75DC4B92746E86425E5C0C8603D28549D619A8E 6C9718A2A828F7EF53896EEB6AEFA667C5B7516F975A3551AA05BB15C19B8454 3E8AB72E56DA3E86E4006105D205F389930BA618BB189AE0B9C95DE3444CCF66 28A9E72729166C28DF050196BCD7825D17C92540B3B4929B10FFCCCA189E4B2B 980B4A95DAE5AA3D764422AC56C3C21CEB363CF3DF06CBCE18B549276539B5B1 7D015095503D7166EA34DB8A9ADDBDF42C551E55BD3D1308F5BE660F883980C2 C80ADFC9183EC9E08883B163DD48B39BBA9A5BCE219F92AA71B01FEF5189517E 0C82EB90CD3F24ADD778916BD6A95B5F3D3B541315C2C9CA36311D9C18BFB28F 58EC8A42392EF0923240FE750EEC204FAF730D1832B2469ADAA4555E24695FA9 D959CD61FD1F7B1B1E68AF4853D2A1392E6CA1E588E6406AEEBD4E3F28C4CE76 CCE138644120A9AF000EA65119C5F158C65323044EFC743B94DB85D94E038F8D 945FE4B293E1D33956666ABA1245EC3EBA4021114FEB4BC1D655C0CDC4D81F6A B1CC39EBB5AF19722EA0284AB615630FC94AE24318EDEB6B7CEC92C4A410D170 9E33DCF58DED0479938E5B89DB77E94D6CD808D6431114D1847660393B0DAC3F 884A4498FA9F4006B2233E874F3C3EEED4856B3ED3BF82BEFD95A017F6F3783E B5C90ECB49492C12E7512C1656F1666A18991C20D3642D343A963DCD05E5CD1B D320A731394587CB50410BBDB3343004E90D0F92D14CF11B9856270F9F0D64C3 349A258BFBB3749C510DEFC2EB13F52576B5D589C25F03892CC16909A1C19891 C2CC31727F184BD26F10195948E4F945933789CF5110AE8C4E48AD769E2C9FF1 CC7E50B9438F3172D3695614ADE76BDA561943DD012D2099ED13F8C38EE5CF4C 278178D0D6A3592645533309984B0C0B4E38E350D3C419868D8A8053BC420BD2 8F65ABC0A6DE95C06221AA29F10E6642D90DCACB4CA8378F8004E0F29D46A2CF C6997403DEBD0FB5A81FD0D688C2DA83C500E1EBD542DE086F3214D54EB8C283 10CB3571625EAA05B908B5900F8BB060C1789FABA961766C4939F51E8B79967E 7321D0119886280C84C2ACBE5DBAC572339D2284524C881C3FED5C5F1CD0D938 0C2EACB5029D26631EF586D25E2545FEF1599A02B816800583FD7B89078D1080 DCF18F96E88C42844E00B9E6894138E29A31A839434717A80428B9AEF0EE952D EF2E98BCE78A4705153AFF70D357DF211627FF47D503455F44177B9EEDC970D6 B91346F2982B21115A825B68EB91D0C854D3E5DDAC668086F2DF05411FA1C9CB BD79C252FF5E3EE8169069E624CF56A714D99ED12281081DA350BFEC67D4F340 411E0B9EBE9F5C19B8B7FA084B75BFE1EE846F76AAE69E61C7726D5573F059BA CEC3667266ED2F64527675E6C8EEF208E4F44F6C7244436B1FA3BB2109362A70 2CBA96D98A616274877F218ABAB15445AD7DBD0E2D403BA16CDB9CC02B5866DB F2085A169D76427F25AA896882BBFDC9E6C9A74A510ADE2DCE1E1A352A860516 B3A2799E76D4F03C20DCDFF7F81E1A61B8EF59D367480AA48E6A220AC3F40F82 177E38CA2E3ACC0E334B3C71B39EB083FECBA985B3C0A11BB35B1379F7790BC8 69211DA05FFBCF971C447D9872F4D0A91EAFEDDBD5A12B514D6802E8452CA083 167811F6C91D282BA0996FC0257B5E255070CC50E631B1A14A122DC72241B573 D7756011A658FD626FEACE9B433A31D45FE9424531A8055509493A596D1B36F0 FCECAD3E258B5E260F3BD9C5B2368CD73A4340AF6914F6A8C71916F2FA2405DC 7E67D118D8B012F8FAFC5F36C845B44EBE14488047EFB77F5035D852041A864E 76FFBDB0749780C6BC7E30D802BAE5B0CE384956DE058A8010845142666015D0 7E9CABCDF3C0A8375856046914FBEDBBDC698921575EFF3488593860CF2A6F6D 332CA91C6405F732549463F7854A054CA0673353F46D5AEF65035D3AB4770636 681F3F37BFC232BBA89B20966D68C7A41D6E37B63AD5B88780D81BC1FFB6847B 7126B3F33E04EEAD1109097B23ACB0C8DA7C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 34 /quotedblright put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 61 /equal put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 89 /Y put dup 92 /quotedblleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 126 /tilde put readonly def /FontBBox{-251 -250 1009 969}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C 295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C 4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF 2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E 0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B 43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC 96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A 45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625 0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078 3763035411FE36AB5D744E81379106890688CB5BC41184548C36DA35508230C1 7E595D0E697FEC6C9A25BF8C9747BFEF35A8DF1B75B0213D3B7B7AEA69E0744E C94B56720070B7CFE4670208AEBFCC3ED5A2BC3AE5C25A685AE9010D40D6061A 11A31236A31A5EA47CDC497A886809AE63B19C2645865C0356D3C757522A6D88 2D97677E5F2576327E922DDB91438E323B2E3E1A00192B2913B1FD6028939FB1 2FD026E09A8106C80F9ABDAD878915286731DE01010A7C89305D2FEC6ED694E9 7E52B831E535E9C559A585070258D7D2384BFC8D882CE30726982B69CE7D1FDF C068BB8E9E310E08D896321E4EC3A3484CC6C274262DE1888F2E848C308A2C2C FDCD60F89817FAEF1534FF90E05A28234C71C570BE57562474E361175B115073 B2EFD14A1FF76CD8276C5D621FBF31AB8075B907B5FE0C0A623CB39379CDED45 8AFB5F9BBBB748EFE5ABBBCC433CACE72E04427C505322542A0E95199F04AAF2 972E848044D415F644F34C9F4D34F5A12533D2B8E7897EDDAE4E7A75CD0730CF B2532BAB6CEF9DDCB1B3EEBC68307ACCED4404E31127C25899F18559FAE95D2A 75D8E0E238527088399A29E9DCBDD3AED5CA5D23F4F90F81104F610F2E11596D 807E6B08C234832A5BDE9F4F5D02D46BE6008E38730E89A9B73D5C2DA532C736 409D2922F81DB0780BEE7C565D354FA523DF21F6FD82D4047EA3E77BB0759825 CC3A958DC05BDA46514BB62CFEC8E150D7890B3997A59CDF9F3CE04A9901B856 3C2F66397E0C2920FDDFE9775FD4471AA293E4F4B8811C3F4BE6BA3C98D24296 51A8C015BE759661779B42D459C112D78152D9244A367AA7FB3208E32E877421 2FB6A3ACBDEA65D3F9E2989C1949B7BA168CA488A7CCC83C062FE4D30A3D66E2 2451FF8525B846908D73D5AE55A1F7FAD0737D7E3D6F88861882EF3B6BE79269 5EEFE3E8C00D969DBD969FB6B100CC868A9B7A782EC55DC1E5BAA80366BDF9D4 007CF8727CCBB0EF69814C89B698DEEC15F3C1A539A358B83BA4B0616B753CDC 5AC0E79C0B211C49E78BA773972DB8937D7F7CFA2D45AEEDBB16042B4BDE833F FC9ADAD03EBA2F4B8D78760DEF4C5AD394F704345CA5C7FA6D71B6863829632B 22E81515E63B4E241AE3DF164CF3A843159D3BAA56B3B2AAEC51483708DBC7A2 68F687739F355B5535A5B71D8536780940EF8384AEA8C22735F087D2C0763141 BB794EFE0C3C56D7A1B8F7C7A90F0877F466FD57ABEA44EAA210D55BF3779328 F5836885E186588A111DDB0A36186F0A8F282E571EEA61A8450EBB6D124803B1 68DFEB6D3221905161081151A69DF469BDB2F15A3F8112F1087A3A0DF8A576A0 2E9DB90DCB093CCE511765D0E9DD7252D697A2427A63881552AEDB977955A5C7 93B8AAAFA7073775347E9A0590464F8C86DA1B3065795E2256ECD3E7A656D85C E3597760D9400B1E4F4B83A776B36D9E1831D9235A85CCA5AC0566BA90279BD2 0AABFC0CEF42C1B6DDE69519C0992319D64E4B5A842805989A82DBAF84B7A395 AD8E062E67D27C0C405A5E0AFCE07618C4BDE3386590AB10667A5DC23AB2D32D 08EE0E73DE04D584147102CF828D740399CD58C31DBD321A512E5156D50E039B 2A3E54C9C5D6DF0A12B59A41D740121C14B9AF0D2F32816112822B7477A4FCCD 12B5C6E64C82115B78FBA51B5171DDCF780CB20102D272E3E66A646CF86FF8B9 0EDCD51EF1B93598C616C674B7E4BD8CCD155C19CC9B39950835F1A62503375D 79BF46CD300A09185FB353CA803D1AA35742D1638FE6A31CC6CF943A1FA675AC A2BF9A46BBA9FA01B808F47B738D53D3F12CE2A239E40EA8C9A02E43BC464D63 FC1E73AA8EC43F12B7690C1EFB3FBF5A71E0B87A52D68EB4EAEC3F23540B9254 ACEF428F01A9C1F228AAD0C093C38EBAB6C5DBD56F766280D6B7CB93EF6913B8 551C5D10461E96C613EE9B52DA9869929D199AC012F5C74488B4EF4A364229C6 07988EBDC87920BD3AA565A7EC5D740BE76A8C4154668C7C1EF031B182486DBA E2DD2BB36D60B7FA013D4295073B3FB28325421224E25C23299D66C8B6416B80 A3E1F9A126045DF7C1CA87637E93DC0B8FA88535E45781E5F5FE8D47D7547C4F 1F99E1E0207F3CAD595A0B6A3F5FEF388F1D8B45E3D40ED33B63140257431087 FD0208F6785F38244549AFE7AE3C4C5515ACB0772766235ABBEDBA1B0CE708AC 339D0214200480B6CAE5E73D4D13C5367FA4376F58132E0BAA063DF03A4A7A0D 07F238E854931AEA694A90F343596CE3479341EA1CA94699DE788F648171F7A1 E1C11F45F4110DBD8DE63C384E1AD2600DB616D107904569DD56F48C2EFC6061 6FB451B7C81ED85D39E8E4F664406BAA340D93B2F180794C2FFAF273392D12D9 3C2954FDFDE2763332916E8934702069BF576C852443CA2256F56EB6A9DA673B 4CB395960E17059F0E817AF0716C2BBA3FFF60D5FC128A57819C6ED115DC7DE5 3662A0567C6BEA8B34B7C05F0550E03C0A78F31E0BB7FBB58E26D366ECF7ACF4 DDBEB5550A92C312E6FBE23B48B11FFBB46EA2F4FA1C3359601CAC0CB336A3F2 DED281C8BE0D05D4EA9D927B07370822E5E9C72EFEA068284344309958569470 FB33FD265EE3825FC47E76EAD022D383BB043BF01850E6D9DB2CA85A2ABC2B9A CDBD44106D5F9AADF921C3AF7CEC4A17D3A948FC99B58F998E14250CE6C3EEDE E587D00A70C1E4BCF4492F1A363074C3F73FF34C5F2473DFE81999C006012592 33A652D5DEA13A26BC9D3B7D449F572202E8FF76F383723ECE2742647E07126F 8ABD9EFF4A7831CAE180E2DF2C5ECAD56082233F5FAF5CDFFF4380FE9C454068 6C242BE5A82D60BABE390C8E0A8B221ACC084A7B277DDF06C6B75E263B924126 78B1A5570EBDB366A465843085CC2C6E5CC660B320CBE08D1A30C12E18121689 92827B3FFDB72F4C8C89E8500320BBB3F51FAD2A3BBC0867059233EC57CB8074 5B62F448970402C187534CCB5DA23ABC21FB5E69E3AB1A93F18C3BE836630F45 4B9F84B3FBFD5F7E2C948378C3E45D07303B1424CB537F0F3A80BC47A02B7CD4 8E61AD2500DFD556E38A6A2533DA3BE3B21AD319197CC745C0C59AE4BE5C38E4 313A768F64B03CB1CDEA63320FB67B70D59A9B1C30961C3ECBF10338B6C73912 E2D4E39F4E3C116492641B2B34A030116D2FD792E2C4156F55AFF07534D51778 A618A838264A2FD1849B29254DAC04BB50985AB899D912E2235EB05AF7C13040 2BE7552BE3DFA8091AFB1EA56353A2CD2D466CEA71A8E7EB433F14E65A2BE33A E0F6BCB581E0878A24289C35AA6864A0D0B8E4768AA026360879AE5CBFB7A239 48D73E1254A2E833855BD60C1BFDA06E34C27012D3701ECA33A352C23561CCDD 955A45D10E6284FF9DC3ACEE17B46DF652D57329BBBACC6942A14EEC77403EAF 4314478C23E1F88342374B7B7DD45F77409F0A7CFE3A7E6506FA470D9B4C0A8D C65846F4C31164BE90D5E51839AABBFFF3B94572661D3B3B8EE68FF31140C35B 72B7C798E571603803BD644F8AC02C7ED966DFAD819CD5282F26A84218873B2E 5310F9B2C993D0C1D25B865B17F1595E1CE7CDA13D3429E8BFED4FE045434236 3B7E2B5A3E6EE4C4F02E8FEC519CF1744BE24FE919E29AF44BF7356159B372BE 36C2305190E6E15504B54F6B05B40AFB0E64DC448AC1014784BBB300EBDEB8AE 601CE3927ED7D76D62D626CD03B402FBE91187BE1194FA92E4167FDC5EC0F46F 22380B108D580D9D4C6C7BB9F9857E95461DD5076184400EBB8AD0B87DFC5B15 514CAAA0A302706E2BE59E2A236957636469CA782121861CD534C09269FE5F9D 5C3DC46AD5FC4B6B82219BD8C5F88A6DB380C88FC37C53EAD8E0245BBCB9514A D5C93AB2E414423BAF240DB760216177E4817ED3E68260E2BA34FEF07E7F5F8E 4269504252DC5C777CFB508EA19A264C26608D8B7DEF57C6819F6CC87DCABEB3 64F56A255C40308B1EDBA299941A6A0112813C90959E468BB890DCEAEE336409 E38567937E2B4429360654FEC58ED13984E0F35C4BF8437EF02D2795E030A557 3E8965DBF06927B4B2394C1C9EA68211035360C714FB6434533FC0FD2749524C 56D0CC8A2BE8ECFBCF1C2253987D45AF0B16DEF98B7411CB368774BF255E6157 F262FD43FFB64641459A0D5FE7997B1AEBE60713B626CDEAC9F5DDD19BB56420 39A071CC8A458E369E2CD4E1C30F480FB0B8A79AA060F08AE67AC3EE99DF340D 769FA91A28EE4690D09D873F060619098F28CC7DC01641F17D2011753D0FFA68 2AB70CFD793AA62223482F7A763F74B0A21D9A2A06DF9DD8F2AABF48EEE2FF16 A77BBC381F55E7DF985C6D5D1138483E9A6F1C56E364828EC5EC453D628741DD FD62C10EDA85550B0851420178B6056D4789BB4E03ADF155E299199E97767157 12576C81B516838C2A92163EF8D8063E15911D6DC92D02A00D9B239CB60B291F 78D41159729FF52DF3760081583EDD7293A1F3743B166F95616C5747B0C10B0B 921C19DF7A42981E6F90BA0628575FBEB3EAAADEE0A1F095643D0EEBB26D4F70 A5622095D9CFF0E7DF752C1FF61DEFA31AE03F9B6BBD2EC0E527C022D66B65C9 ADEFD90BA0CF9FF53984FFE628AC0C4592F04FCEF97E53A61D066C316453AB4F AA9524559A2FB6B221721C372DCB383556589C88D94E8611084E0231E09BFE9E 5D23AE0970FDC1AFD50307B0A44D523F9DC1F12038725EE7C8EDE1BC9D5CD92D C6FCDBB4EA4F4C38DF050A4A6B31DFE0263D344C1A4A8EADED6F9465C795AD85 819B6639433F43FC280532C48E2E9655637B62EC41C9D4401439337E85A8720B C0D0ABAF76EB1EF8DF92F6EEAB4CBBE66077FB2F15396579C45E3C7F49AE89C9 4ACA2C81C85DA0D0DFD096819A3CB5BFAFB941EB73C9AC4437DDD4B0EC464A07 85185BD21871C248CBF9AC2F6D6AEA5C17FA324C08581F0BF4D1E6F887E33FA5 10A7EE7C520A3C85525751AC9C4DB569935998B9E3839AA4B8496BCF70834892 2166D2E7D06BD1B249855466A8E70E07334BFF28B0A981DEB8BEA027002FE354 AA8F5CF6F6F3CEF85383F7A9109205E8235516E7BB93B9B27947567A2DD572EA 10A5E0033FAE350043F2E667D42EDC15F81317831DAB5C9F0DAB5313AAF9A2C1 89E4353906D87D6AD7CCECA1099524F307EA46D4653A0412015101269142EC86 2D5D566E5DFB6173F332A5EF55068F15F8BA85D666C5D237423D7A4E5754DB97 C300D03C5AD4A8AEC80F1D80EFC2DCD873A7B18731F28CAE66C2C7C8B23626B4 05DF77E3299B5B08C00908D3453B01FD17AE08E81BD2EEF5F268DF96FEA2047A C150755038F68BDCB63798BAF3BF1C294BBB53D90E1412B2F506B5272B81E0D3 CD0F3896AA2182FE626E7E6393EFC104677F00ED308655FC86000A74AD88FD67 1D803DCE6DFF0972DCDF9CC88D63EED032D7B11C039387669ECF7D910D786F0D 62E4DBAD322DFD2257012EB15937FE4553DCD4B7BFDB21D3C89ABD72121C2DF6 A5041FB8F22F53518A7C06968CC744276BC47EFEFC361CFAC41B2F5827F6C8F5 5E8C22D4E6E42C47AC2750497417C43F2F5347D0FA2BE45CD8FCAAF2F5E2F7CE D845A62C8B1E2E8D291BD523C2FCA758808C50844726DCCF9C4C26B7A8B85E85 9C049D17B9F557A627CE5DC23126FA78A62401ADF6AEC682C4D5A3DBB56A6E6E 89EA2FFE8266B6B9DFF5C93D2CF150A68A1BB179B9C98AAA90C6C4A8447229A0 D7A5AE86705827331975414339A60F981359DBFE68ECCC90FC9C12354B72C320 79069DA7F0E97ECCAC84B7FFD5A3031E904738702F2496516397AB2ECABC859C 19F8ED23AA0609CB1BB16C995C5552D7A18074E2340BC26268B77CEB5A5FC8E3 9836FA69AEFE7E5D82150B9846F057CB0579F9C5B8C21B3E235295E9DC748CAB 12BD878866A3E4F95E2EFB7213779F07219F4163332D76EDD11533AF5095F303 D7766BDF0F8DC35925CA6BE512A0EBCCCFD9136A7356FC52D90EA1E3A3C36FAB E8417F7DCBA957E670C4C59A3FD53DBA3559C95697636A2000E39C28A0369D90 93FEA0271F74F82E47532468B50129E11A360282E91FEEEE0FF99FD71D8925CE 910EA13040C489752E6FD13B8A72E5A882F2D8E062E7B8E7C5F42993DA92DEE2 F646AA676CD051B7E650898DFB8697C19EE7B37108A9C598A990701969051432 FB785213FC0F12438C3F3A1D8E00E3F4501725D0BD2F5EFDB579DA74D3081690 F43E5074DB8EBFE44092854551825C93FCEA21ECA199E8B754DCA53422E45A27 839DACA0819449D64A8261A75EE30C7599B24D2AC985E1E190777AC70F252CB1 1B7B49FD1DDBD7C8BFF5A2B19A8475A0A5F354D3F8C019769BA3FDD7B6CDAD84 85696DADBC3FEE7D6817AFC24515353214C4F9028534307A4A0A2D17B6958AAB 1E9A1454FFB365FE3B53DB1C28137057DD055D2A58011D06434F489A069CBC2B 2B1A1A1A76D24F9A7648F1AD7EF29ABDE4F48CDA18A1BBD9EEA6522A3F745985 1299CBEB4B9BB8C64F39D108FED8C98B3D77127C7AA3B3912B72A08FF329A0C4 1A681A353A2DC9E1AEA76573E2B12B59A7A7A52DABD15C11A98A74AEA59BD354 C4BF7FA6BD6429FEF89F7C34EBABC24D4592769F262C4862C6A2CC3FC16F7088 ADEAD3EC59870DF0AB62FF6DB1F1D00E07C025B011BD666BF08B2AB09BE42DA2 73E66B6EC6C5ED5CE058D36131D8FD1C870BF10998DFF50253898B8D458B2D0A 8C3C2962AF1AD035C19FC2CA0ACB9F6561C0DD0941ECE99DB639DDB037CD5370 01F20588E1468B359B949A69E90C5650B283C15EF3C6DBEAA6C7762B72521A98 A53323890163BD13D54272AF25FC8419F1BD142BD58731A203C4D1E8EC8968FA 5B1F3456FFFB75C5C7CBCCCB6544D745B8AFD8B21A9B2038B1BC03E266698082 C6867636147D8B4D8DB8033AB06CDF7B03C42CD2B6A597A7DD0FBCD90C720E5E 6983442ACEDD3FA4C662148CC80C65EF7DBB97BEC0182F416DEEB3388C8BE76D 803EEAACE093398184035637CB65F126A1A39DB7CB3E8651A1D43988DA627A02 A45024CF3BDDA9967C851BC6F3F0A28C8C38857D971172C74CF374F3C1CF6168 492E86B20049D2233C072A41E9DCFACE7522F7435D6A7685DCFFA739A59D0722 BBA842E64F84CF8CD8BA85A4F201A841BB8C1229DC1417F93324DA8434992B22 EB23EB4A4B7CF476D18E6C73EC211054B4F47448136E5C257C103233233EE6E8 4032AF90574B340E39136C5B159B737DC0F722C5F1C0CB7199D2C34765F03928 4FC9D3A1B88D20051022EC90771BF4972C0CB6946DB1E4904B53F3C30662F2FB 68ED3ED0EFB8ED00905BEC9F9B1B21AE5A82AB3290F68BA21ABE33294507C55E 1A80643839A9FE687CA2698464A8E81EFEA91DB9CF1832754A5B1450C7C7E7AF 766F598C4B266E8D77EE3BEB253510AA61C8165B965457660B610D99A500EB0A D7E19962D3F3E63DFCB1712AAE9037AF792F995D55AD66D4A8245606EFEAD098 C4A1B166B152B3C5ED9732C83A420542FB944DC83F5C24E4543D429DD05D2E6F 6A985AE43615F971E8F1BE04BA51797919416A692B3E315D848E654B083227A3 5810A391EE6764C81EF82C7D192F58DD167BCB79514BFA8C31D16120D59134FC 65562C1E02D7CCF9DEFE95DE2BBEA70C0D2A2AE6B77C1234E29B38FE448F8A0B 5104DDAF9896D6AE5645FB83233E019FAA5C61EC99F2ED0C3664792E69708E0F A3E10E6BDE837578988788436333B8C973F0CD83C2019666971FD0755518E1E6 E7A84FBC4A02A548ED11D559C6789579EDE1D7E5814C612EE9DC134907C1845D 2AD6EA6EDA60D46D0C940C4EA66AADBB281B0AA18FBD8098DFDBA9E099578A67 A5710168AE02FCEB4DE365413E3884A590C63139E3BDE574AB3B9C3FB1BD05C6 0E0E6639623D31408D70A2C3C3D6CC975D7770FA310C50C9CA682D90F1760E90 8852154DDE537BEAC939B91F179A0BB79C1359E98F69FC795D5E83245BB4CFA2 C43396AECA20B0BB5B5EAA1303CF6BBDFC11B68CF8E16C3919C3B810D647FC25 C7F66ACB69876DFC0E1549866B21641F3871A0D9BA548495A705DB4AD0EA75A5 08C17A7A9129BE70C9ECA7E2D494C199D78AF400781C0640610A274149DAFC59 BF39B782876E98652B77D57517BC0192BB26EC9606F181387700C513494A99AE 61E1BD14C5B0CEDFE5B400C54F67B2063A519019A9FD853A08464B0263CE8E7D 6275827053924A9ABC9BC97C41606305B4C991B5E94B5CB209CC6A7949754CC3 D12CDB2AD3CA2E1219D86C2092DDDCFFE4273DCFD2F9AE75C5218EEDF277AF1B 52527C4352D6B4160F7DDEE3229F2CEC61C9314D3A231B7D89B21DA3577D3BF7 9F25EFB6354FC6C606552FA395D2B3B26B1ABF4CECF761F21B5890C977C0EEE7 DC38EF802C3868582C5EDEF821F8D3E3D7FD4BC1DE9DB7988666890210093DCF F99FB6A6AD6B6E57FDC42073997F4BE21FEDA431E2B677D30DC1883B1E7FEA2B D6DC69735A9BA6342FAC3406D6D64175C6DB93C45B244FEC40282D53EE73DEF9 CB281C116F54D9BBC4B2544D1D590D489A8E7DDD255ECD69FAC4022E1713CA9B AFADEC8EB64502A78121C81246E14C05F96F69E1F5997B4994E50AA4C3151976 139DD180BE11AA869098BEEC9266D0BDBFEA74E8B039DC8CD71331BEB96798BB 0B2B49904FE3A88664D0C05BE17866E0D03CF06F9B4896478CA75D2CDDB9CF63 AB74AC9458A26045FE66CC94D7FAE8B919E4C13B9CF00F066DEE9110DDC49664 9CE98B228F97062706ABF307E01CDA94B58E2734269C2FAD52FA855DDA7FA5A4 90C952F4BC0811ECF1014E3FB307302067BCFBFA389C595B13E992A3281DAE9A 803D40FD85BBCE104A59C68373E53C6F5AFE9088AF32C44C8C981F60C56B88BA DA2849835444A5CDC0BAD0FED4E589461F3B0D4421728ADE97BE99B5B8D59C75 740980A2A4FC9B25C70D0E44C98ED2045F4846478521BAE28CE5A6234E35957A 1FA0E9FC156C0A7A80C6E99170B021A4EDCBD3395E71DE202AEDB4211D505D5C 04851E739F93CCEFB4CAB108A4654922544265CD98F9D8B9154B2847820DA1F9 D94D464158B385C796939516DF4B41B0D1EA4371EB3B4429F5CED3FD46B1D50E 7862675A1BEBE0565CC4311FE78D53F07E116BFDCE878BCB787C055A45B3E0BB 42E51147E40E46C757A70E7823F1856AC8F642C53B213B935D52429116179C19 8CAB370BBC4CFF8ADFA1FA62945510833A1809AAA606685D1B7E135CE4C0D532 D5131BA0AFEE02EB442413CD532A6FA0C219153E2DFCBDBD5CB2504F2E9E9F60 C4311960453E87C9F23641AA5DB3D9E8196A3FF949DFF4FF391DF66F293EE100 5E3439632FB4CD847E99D0D04ED8D478E8F4AE04BC34FEEBD4A63E68EE5C4984 F9579C0DA33545C03760428BE95331088CE2D937B3EEA79D640020D0E29E0F3B 7918FE92D8AF5B1F31E5A71BF6E3CEF3DDB46A64BBC126521E0229411256BE38 D8F5186E55A7D92E7BFE0987906A0019409D1821E503484941DC0853BAB640C5 BA0C8280B9882A2C9A87D49D1D0A3B9A0A0A64D4B10759D87F486001638407D2 1F354F0EB0F0E190B3EB2E7AAE51D421F3DE4B0F86869DCE05B1D059222D2DF7 EF32590F2E74590932EE04AAC40E01F020E5361DFB45603BE1DF7AF139D75F69 57F015AE8EEFD290736D721CFC7289CCC8032EE1D0A4B994544BF3F14551253A 0C0FC092D7BA30B0492889BB4F253813AC6A34CC71A1BF5E34A47BA96D192AC6 3D70383701D7ECBE5D38D3D1230AD073EB11FA88C8CA170162B78D422FE67E2C E5B829BDDEDF08EFC8DBDB83896671A5B9F8F93690B038809BB6E3A9E5922B77 961447EBAB9A7494059A044E33F078B18E917BCE1C5AFCE65517C21142584DBE 0D64B3534C605BB0869FC54C533D06461649A2921EE643D429A53307EC50B89F 173148D85A282E4827A46022AC4249E19A010B9D0F7B3713A804A3D24463D873 5D6849EE0FBE7179DB8D98C170000E62B2DABF2025D39E191416B35E747268D7 31F15DD4D7BA2EDCBD5CC922C707A83997B4502CB33D44986A91EE6F16CA3136 2D368F2BC072925D77339673B746A1BDC670455C54E21F5347CA3704FB6D3E42 7F0D5622D92FC6059EB6BF5A885D6582A6E33D62456624AC2C8397F077550F4A 09570AAE20B56D824036D268B2D3183F734F8DDBAE0A17582AB1A1DE073AF328 D53B25EB110C33684158573521ED27E68B61E5769D89BBB5C7943EA1813E68EA D6845003A115C256077C65C56715633C0BDC65AD5CC31C5DAFA92607F42BD96E 7247F9EDCDECE4318CD339B00CEBC934CBA6328CD9D1E6A52919DD7AD139B1EA D8E368D759221750CA4B46737B778C51D81EF0E5D7911D0733516A9324475F42 4E30CA71844AC9687495F9B43F3063A38244625F7A09F8F8C44685B8405D00B7 B21335D641AD7876ADEBFE2BA655168D9393A3AEBE83C1DCC67587A411069AB6 9924723B5E8BBD6C31163A98A700B79D9CE9CD08D8BE96BDE41F98769BB5A766 9C59AE0B9177BEB92B47B9F585D4FBDB4470171D021836D069789896072CDD05 817FCF90E82F1ECB2DC49A7711243F234302F5D12B83BC895A223378172FE23B 1F01DE18E1F6E0DD52A6B60E28FCB978F185B5079F4EF1A2F0B8B23FD904E9B1 744B131CA5F6020DBCFB60FFE2AF309DB16E326F72D990F12D727DF64784140F 9209A57CCA1993D69AE66EE5F5DB127BDB0832D0921CB39CD58CBD43A946121E A712AA2AA6EF1D3E7A80E469F6896CE92D148213F5F8A137EB95EE16AA3FE8DC A1B67B53C12A9DAE27DBFEB5A99495AF3343D3B65ABC4092793CA934F05D5C52 E63C5812C0CCBB42B70595D5B3AEA0E6086ECDF3CA2B220A69100E6336A35187 B49A4E5F239C3F06CE00F79551DB22EDCE618D0F537437E50CB5B4CBFAA7E2F0 4FF005DC67AA64FC3F1824993F8911BA2C704EE8D807F746581B536D0D82B511 F0E2D08022311854D832B941EBD4BDB4ABE86370452FBF0EEA40A4326D1F42D1 C19D9377F1789A4B7DC486BBA484BD9652CF6E85CB29A0952D6F74F4045B109F 3510662AC4EB699F69EBEC0C653B6D5CBDED11E9107FB7F99A5025DC9699C487 19AB741D94B3903AA83F97A23B0CBE27A1516D774A11FE8EF30CF2FB2D49FB69 A8C29D27A5E83BDC73E060EF6CECE4066E092F350575B2815E5E2510EE6101A3 4EE3A0DF8A3B49D3FFE71508AA644B2D17C90937F0AF5C9D016207462DCE2F54 DE839462760D2B8449A71818CD100B997EA291A8ED5AFF1C1FC7E362C47AD791 85A8080A1074B884B983F4312ABACF327131BC2B6DD6319BF8EA9519DD8A7031 DF3CF63D471832477440339C2CFF70B9CA24CEB87386DA38DAC7F924CBB1A38B 3EC9A1E96C9F67BCC655B4CD8748BB511F2D679F09D0FBC100F47C768808FF3F D4C368D691DFA0410DBCDF0856132D4A178A44D87F841B514C0B9722D1A601FC 91088E6F356882341FF1446FBEBC3973034A3CE16E1EDC8259C46061EF5A8242 16775905EB319F806531790D84E0EA4ECABE94A17263505203B7AC32774DB7DF 94DF48CCB07F0250AF5C72A45F916BDAC3718F554CCAF345DAAEE92408ED4111 166DACD2C4E2540C9E085A44BB6CCB97862FF0D698F4AA90E3CD7655DB17B0BC 5C91EA285D3401B56E7AB21AC34F5DFDF34B8648A8F84D570C853853ADF569C1 49A83476231F87CB5CB80B013F6B84DB67F4F25E854216F126D7C371CECC9900 FC3A8CF112278D98BD50363C0758B35A1D92AAA1CE6F12CACBEE8D2891CF7731 58BDAE780811A23EC6D55C196C7A0595A3C6174D672FAF07E3D8A7CB6C522A16 CD2FA614C1D549E88698FC36F1437B4E11AC88C8EE494FCBACB86C83257FFAFB 5B0D883EC58A4240F437EA669E46B81EBA830D797DC65420665B9DF42824FE2C B25169AE4E05B73734EA36DCBF0F8A3A47440C389FCE5D220AAD32EFF1EB4E54 E5ADA52483F26E1201563525AD79504A1440AE26DDEDAB2957A58044BAD88FD2 EE96796483A99B28115E731723C4D2678E0441663DA9B0625ECB2A9547EF4012 82F023ED414051A03B18B078DEB6D2082CC4F1BA32877BCFCC78B4271BCA914C 4C7D71BDE2C8ACF47C0423CB14869DA1669615C46F5127E1CB7278E91B394930 F1283EDAD0A6C93D5B7868A44293C211BB7EC2AF07B50746DA43B7A98422FE3C 3CEFEA880F298F45D7C2A5E05D3F5FCF82558CE4E2EB5F3F6B3A4E2F79E8BCE3 E8572312327D8DBA7802CDC8202B4262BF13A261EC9804A95ADF5EA4C43606DC B63D6254307955106A3192977C4B28B1A9E615FF04CC87975835B96EF61E476A 759AA8429B0946A09BDEB3AFA00FF69FF3667134806C0FDE0489576C70EDAD06 B8ECAEB155A15A1263D97DFF5E3DF7F14F086C307AE13E3AEB215600C005A382 95BFBEB599414EE4C51BAD10F395B5390F5B1CD5D668145F2E7BDDC961C6AF95 3BF4C71EF8E367A435E227DF5CF227B8DA94C151E5F39361A1ABA6AE6699E855 8D12C7A4A20CA5B46C55EA32BA90A37D7C2F512F98FD69916F987F4DF5B66496 FE153DFE2FE51282B624D832D509C32493F42B510EB3B93568C82D517A61280B 75597C4307B66AF402C23CE243D7853D6C841396903C73589E2830D83CDCD28E DFE37B669D86DD4AA351875C28C706848D6949EC4F30A1481710985DA28E04DA A7695A0084012A58993481772332E63F0ACF423094002658B20B1C6C82F86D5E 56AED8A712774C51042274E8D90D60E81165D40CA27CA2A48E3C7CF6080B9529 E1B0A9D1F21CDB6187E2A9D59B29948AD0F5C21632BD29130227F4C7B056DD0B 9CB2C5B9B5DFE0193E1C0CA956FA7E8AD112ECF3964A905CEA7AA0628CD86843 ABF457FA8E8FC26BB5DE404CAF34D95F6F0F124D8FC7717FC01329128E1C7EC1 384AA86FF017C0E15D7E3B16D04F7D6B6AAAF1FC30D32AE80214B1FC3A9B038E C03F4E91C8292493A94F792FD9D2EFB55FFD68BFFBE67B64AC850D1FF73D035C 1E729453CFD1FAA450FA79EC22E2E2312F2ED39974D1F826A413812586794E0A F20616F3466C835C607DCBE8D93502BD13E38801B7F3D2E33696FFE5C3F20520 05D2293DA643F478A1B1B55B2FA92CBB55A4E382A375B08B6E32AE6A411D3A0C 06F053B99D96B9990D26D7E83ECD27A630543BB45DF8151934B3B531C98E6ED6 07A11D0536F6B5C2F49D5EED66E3765520A0B066F29205305F056C5F17553260 3E3BFEA58C2421B5AB13C5B5F516C9083420A6E41A55CC78F307254718ED2020 C4669E0B74577D3AA074FB4F30E5F0CF45E31CC8BEF8E16CFDE23A2D031F5FD7 3D7C3CDA5CCE8D03FD1E27D8442577233E3CB5547EF7128F919BFC6A7C2EB40D 54BF4A09CBB23B655A6B96701FCF9A46CF59903894E772947C5786F766CB94BC F1AFBC246C8A974D2AFDE5982D0ED5FE77D92FFD666C4BFBD5DD0D3F0C56ADC2 9755DCD7300306982460EF13E4FFFB3F1C0F0FDFB79489C95A1DC54DBB23D4FD AA0DEC3A8031FF1A21D7D86C124FC266C9F9F66E4AA2E3AA79ED14805DE5EE43 B6F3045BA16432DBAB1BA7BF70563DB9F16B11DDCF79D32F08163A9FF2F2E8DD D9FAD3DA91FAD088A6C01A89C6DD28CDC3B36E1E63F70F08FC676057942A78C4 3B329BF7D0C36F5E11DEE4A59B239934A4DAFF5C30BA6A1E7E6058863A626B84 96911A99BC3BEF3B36C1086A304F9CBF392487508932BCF29F1CF5167AA0014B 0C3696615B2A859A4479534783E8EA8946CD61DB6B0CC0C20DEA23F5175D4D9A F3C9AB862EB834E64BF9E04153CBE1C05B203CC10DABA0DF380AB12CDA043EF2 CF8973538EEB028AF19E2642C17A3C81480792B08457E03510BFE5FB6AE3AD6D 32E9BBF472F9814BE95FE0262DEBCC06A435A7CA8CAFA37C4F1B5DBC9FBA56A3 3CB2E0F9B04BAB930B193FE2521C700E64F54833CDEDECC9C511B70A2CC09655 B0702B3D12AED612B40F063DA7930DAD57E378008048C87428CCC7367979A246 515890E12FC3403CA650FC6175FBBFF3AD64718ECF5894FBA52F2B2F0319D981 2ECFA3666DBB14E6E1B8267DF71C8DD0D574827E373BCB6E57E9C4CF0E5E47A3 2FDFF46B0F8CBC668E256601A4D2378DA088B358A50D8EC2CD1BD04291B76C11 7165E676C0231CDF344D9ABB59831140312D4B8EAA76FC7A0B892744859E52B6 ADA162D70E1275A33B7F6A0382A0870BE553CD50222D3CE220AD616192BE7CE7 46A0862BD3B8E2A328DBE8AA365505B12A8E96ABC1C1F1478FC7C9D6F7A451E4 E28269798C3419BE91206E045F6CE8E8C09C1392CF03433120A2A8E86B382358 7C927053AE1FD1C26D0F688E915F03DA76DFB6942139AE34849F89013BAC8041 1BC2E06B57818A4125EFBEC9088E0FCB75B444A18523229929E529887DFDE120 079D0532350EB45A4624175CE3DB65C42299CE2408AEC2449176AB500788AFFE 02997175C36A8AFBAA9B8555AD13B8E3FBA62D8FD86D2DC9875A9C878D6DBE32 AE097B3C2B2E15D4B9E1F3348BBBF1EEAC37107ED48A36EE4D23313F12B47A73 EFF3BB69890E068B7915F2F1FBE80DD08F2637D4CE9B3F2FF310DCC02B65EC78 38FF2BE8183ED9E426E0751A9967EF5BD178B8D6D9B663811ACE52C032529556 F27C4782998B377CF5057055F922B33E5A8828902F939D40FE8AF01ECF6D033F 07FBE0E35564235BE9D92B9F440F09C4D47354AD5C742E23387F744F9CD81278 97453B42D285D8004F10B8827A6A999E3907FFBE6E255BAF5263F24F69C83CB8 8D6C511430188B3A4F009D2E735EF29475C165D67774293F55F293BDBB27DCDF 4E09F6CB8D8B8B89DB017F1D1BDC5A64FD2BFCF2BC46BAB892F2B50842D0274C 59C41F5DBD508C04B4B2475BBC4CA56408052C490CBC2960AE32224D72422F58 EE2D4DC938C8DEDBE0F1C9D4DBDD777F1A3C67E5FAB285C2BAC373B4FD213E54 4CB1F4ACB6A5272EA50D563FC27E0BB48E65357FEC036F58D9B17E1E3EC3C3BE C846C2FC0EE9F59093F38AA8FAF008D4BCD9386C41E2E41AE3EC51B2B6E338CB 0C014FA27ED966AFDFC36A66483DA14829FC1B16FE09AFEA62AE603E97570D0C 2099913A5E4DBB56107895DD82F25F47C5D8A9CC0888422A54205FB01C64EE68 4AEC91C3FCD18DCB0CBDE7BC14BAFF00D55CECC4D1422382EAAA300CBD2746F8 87166F017D6F0679AE5C7B849952AFB5EB5125E65F1F8A5DA0B8D979E40BB2C0 EACC7FDAB144E314F483E8807C7B3F4B74E14FD82E7BF2988B65CF83617DEDFC 27C6F7474A83F9ACCAA850DD49621454DE79E22C77AC250C7F48C22F2238A84A EF5A5DA94D3CE807059977FB93436AC4967AE4172967E79D548425A0D6BB836B 0DF9B864FC13E8BE62998BCA9E6206C5375051C6E9E7F03D2312D3ABCD23CDAC 94FC554E1E1B0EDC02942E13B019BA3A0B0DBDE676F2B7126B8C44C02E713FBD 3F0F740B5171012F811E1735F93F66EB42F753F92D44E46676033F257E8E71C2 9B9C729C9CE0AA7AFA7A231CC17101F33EFC113CBDC22814D564AFB64DD97F75 C02DC715AACD2636450B0F41848E06C3D401B99FC790D2FD29BA8A56D10FE759 2EC02AB8E32607B91AAFA6328C8B5F9FD42A143F183FD05D0ED53C61E50526E2 75E2BDB500FA85C6D5CFD0218A431E8E9FADB89365AD08EBF034B7AAEA965CC5 0F23D80B751C56846445D2BE18ACA9981F9DA304B169AC25742B2B3CE8833C48 5DE00DCA47034A9A1FD53587AC15897D3E74C3D165DCFA975015CEB68A9486E4 F503ECC40BD8FB04E9B04EDEC49E756964BA63CA3428BA556412130E2D2561BA A556E9D2E1AC8606A5A7B6F12D3746A94A8DFAF660847BB2AD95C624C744BA09 266DA6062A748B081A8BF2F4D6525C7B3948AED4493227DADFF79A64392E5555 091306413AD9AF23DEE2AB276E113EBA184ECC73C1BBCDF7902537C475E8FD0E 12EF54E7A37695DDB82CA6C5494216DDF628A8D121D95BB9F3FCDBDC2FEA5DF8 2B2D1ED26D345568DE34C660ECE77BB54EC2C50C27281C1498B1D85248CB2804 734DA26FF09E2298890271D6A0F96EE50D8BDB4D7F56DE6130EF4FF3E39EBFFD 8F58ECF21FB9D6C81C3F60A2F282EBA9101FE3541D258D193592613DEE0C5A29 5FC43A955AF842AA7B54B2EB34F55EC9C649C4A0E520D698772CCC29764BCA73 3D0E533682C781E438162446C8BB0DF08C32A2DD14B4B8250AD85D7E69881F69 3B29D757205B56624D58AC7D057D03F1892F65481684F7AF883D205B4D14C01B 53847C8C2F87C116A0C799FCA1A50C19086298CA30BBDB8C33D85965788B731F B2CAA0845D567782FF33BD365D9A255852B207D2C8E2F1092CE60D876AB5A9AA 13DC557DA6EF8F149AC18447EBCCFDF367221B14E5022B750AB43FC3E15EA2EF 041E00E2180EBD9A3D7E2943428D50E226400DD9A9F1BBB31F0BAAF2CD4CC734 3B4A53DAE233AA3D9C90FFD3153ED2E080A677935EF9118F3656EED1F615CF7E 1D07B074BAD1B173A6D33D19C8492B9E8CD81F50943FE3F517F6F9D5202B887C 24E17EC9047575E16E4402DB4102101AD9CAA23FB5DD87E8C65028B8227DF065 4FA92C735C39A096A12642A77A808E87089BE1328FC1C6E82E22764A2BDA6007 D9ABE03C96E0D2A30D6A09A85BFA40BF50CABCD8259B1F4756E7682613041FF0 4D1EACC0AE74629798B6225CC26E0D6A1933BB82F539E9899F5333D11294296E FEC81E39B08936D94A5C8737F93E50188B07841DABD615E04244C5ABFAAB98DF 0A7A7B97F27CCEFC64012F5EF1671D2DC5BAE5F5EB21C83BB679BA3F92891557 B44F176E037B664B993F739DB7692A2DC5185868D4D84F3AE43162A209C4B4CC 1A5CD32A500E16F6B121942FD46A82D5999DB67E0774196D5E1E3C82FC7C0622 5F4313A0DA3E734F7845E7ACF2DE9DB350978FB087D646D12280AA12BCF1FD49 BE3A38C6CD1111F89386753F7278E1044DC44D7D1B7AD2D1CC418222A44601CC 54F76495881414742E8FC4ACBA214109540913E1CF7377987C20DF8717EC8988 683767B11C7FA874FA6D8F63615A8F927527544AA6D89E356FB5BDDF5E8A30CF 70CF9F4573F93BCC51009EA3DDED126A7EFA11598991B19FB6CB8CF74A9F8446 39C7BA46707F4A9DC7E9900F338A6095614032AB8A7CCFE81B2E40978AD47703 E69E1BAC64FF8683C7221DC06BAC53516BA9D4CCC34B0CEE6DFBE6EFB6DB9DFC 53223A150960606CA2381EDD4CE9C76CDD3E86EC4CED22DEE40A02258CAEE565 23D1EEF9A334A7F18C5C4FE7D6F36B481923EC4BDEF55ED88230E8EEC9FA5605 308DECE65B98027FE837D6FC90D6D0CDD3F6C6C7AC9C0F7F4DC487C5899CE0E9 D4D90C3C20672ECEF5DB60318EBFB174AEBF8E5227C29217AA0DCFC1D428C135 D841DA04784F2C8A2A3597CC3043F6BC65A249738E6744298BD3133C47354800 24D19EFFF201B6A99DF32F4D4B29B6D2FE5D38E0EED96360EFBDBF8AE12B0E4B BDDEDD384F3F5734AB3D97D1393377A89F2C6FB7912351A8DBDAC45F92B5D6A5 D3937C179234E2F3A168308AF7BC0FEE98372D6F125D1D6AB65F28EFDB93C14E 60A95E0AA9E9380D0EBEBE982368DFAB2976D83B245ED74FAE45FF63D74BFD20 F10180AF1B9A2180874B96A123A9411937F9D2775B05502A873F159E334DE5E5 7A7CA25C5C6615EE3A67641569816D 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI12 %!PS-AdobeFont-1.1: CMTI12 1.0 %%CreationDate: 1991 Aug 18 21:06:53 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 13 /fl put dup 44 /comma put dup 73 /I put dup 77 /M put dup 78 /N put dup 82 /R put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-36 -251 1103 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 525003F3DBE5BF07B2E83E66B7F97DDD7CE0EEB75A78BD9227BF359D002B6ADB 8AC57A33FED4EF021A7085B1E2B933DE602F0FF71467ECD501744AE338AF29A0 26F7D368AC6F25CCB882DB7B7343566192BD687E1349225982823027D3B66703 3B0DB7A7E680A682B98023D39C7FAE81A5D5B867A0A66C8AA0DBC83B1596A84F 0436AC6A7900B767BDCCE0060A4811003C79FDCC71D73F7F2D0A6675E93AD21A 56B4CD8EF75EED3DE8C0A18BEBF7B9D1BE72504872D56EDB272F1E97FC726CB6 68C85C713059DA19F6C2E0F3E12710A59B6FC4699AE883DE8C8615B7292AC25C D5714B6CFB14EF0EF11EB13009BEBA4F345A5D3D6D9926ABC2BAD7DB1328651E 437BFB3C46DA7B62219660FC368CF3D3704DAD3AB461C28F711665BF484BF61C 052093D231CA65618EA463D63E406ECE858D180A6C0589B2FEDC321371C28E77 DE974D655DF5FF7D41ED01FE717D928A885F6FA6CFE4D2C0807F8E7F937916E0 96EDD1A3BA67802B1F4A49100E75613BA0356D9DCBBAD4DAB3C59E70A47058F5 2163D1730F0EE4D1F87C3A4AE723A23CFD7986FC4FBD399347E9F5946354E013 D860FC446AFF0B0744F5DA27CC777C96ADB388D1E835DDCBE123FB517679B9B7 EE5A3DDDCD392415AF58CE22EA55B7F47031138C6F27798B40F7E18FDD315912 BE99F33ADE0FDD538A8A3E5DE58AF68A54732AE69F188F3F7E0458D848205648 CBE820C287ADC2394520F03BBB97DB893F6A12154B1B7F8626D35CE6B70F8524 CB128DE87821A0E32F1E825F6C50AE8B4BE37FAA3183BA4D678E896CC7E61CC9 D0226FC38B9CAE0939D19149D987979B96A86EB69A105807AB426639292FF5FB EFF0817FCFD5E51027D2E47FC5DF8590627DC99082760E8B3E1738BE19E77D06 114C31C967A3659D82AD95E8C7DAC9A7D2E0AA5ADC31CD2B0B4EB30E4D60CC7C C199971C5496A51F8903F963B5E3016D6671699856E47AD0ECEE1EDF0A027558 B4609F0437111E0F234CA0261E77B61DCAFC662EE236E617669871246BFD7579 C8A0F322ACE7DA93A2A013CA343EF9DFAD9F5081617C78BDC705A2D83D5BBEE4 E0F46014971AB69C82767B2227A07BABD07661B5554C76E39D87F409DB834269 8A09FA1ED06DC53CB4537FDDD57AB7E0EC3F3FA61F04167BBE9B5A8A14F444DB 9C5236B2AF50DCA279D94FF231CDB409FC498E293AB604E43509634381F6425C B82B65D49576DB133C66839B878F8A3B254F7498228BED99901583814541AF0E 5CF3172E4CDDCA1F368C04563769753AF218873E5A8BA5A61AED61FCD6464800 8B592198F903959936C78E5C7055B9DC69A555D3B842D98D5B59B8400DC835E0 F19869D8D5A8DA8959D95AE7187CBD4DE26D1510D5E4DCCCACCF00D68BEDC2F8 A2731E0105AD31B2FC3863381C2B44A55FB0E84F469F31882D76BCABCD55C6D9 F7038AEBBF0D7B01286408D71CB603E404136E8CB35661A940AD039E70ECFE0B 888229651E1EB88D54A22D9FD6A18B64E30A7E622F6A072303B046B45A613E38 13916502E0CDB6C884EB1316A725D932F5F652F7B47676CB36694E647E087193 2E048D5A9FF5000B115F6CFD23F8859F234CDD57A7A4C576ED74621D0F5D97F8 62A84C219FE648CD7D961B80FF94637463C4C224FBD151CD46209E3344706014 CB8B0E1A74B6582D88AA944906EBC1D58E11AEA88E1E3B0D71C7403AC3FB7BB5 2186C4AF179A55FA8A6B92F765928D2AE251247AE4EC3376E6081B78964BF738 441F6C0E232EB511690FF216E5378269FD91B942D1DE338094A0E2A7D66FE542 DAC229AD212F45798D4E2F8691CE1EA808884778A4DD5974F8F5ADF22E031F8D 2225CF57B2470F4E2C29E832A971F0B0A8E44ED204F2A2C7E335240B75C9B7CB B462AFA014FB6B596BB80404154084FCF1D7F9AAC8EDC7EBAAC9234B0744F929 E698FFBFD230AD5C0979BC51DDCBD3F514077406D740C16CA62FEB6C2270B107 01A32F0F645A2B46E53BFFC84D5F5C9BB5A8E73928A613B9ACEC347EF558B9FF EF4ED83AC5D78446ABA5167853533944B4F7B9095251332F3176F7BE47F5625E E6D965A2751CA4EB8EEFF6A85484279B0368EB28A918B6426A94DE23E28DDF90 E8FEAF366C80B2FBC15BE2013F73882B122855476AF88F25465252F68660A66F 0A446AFCFE6442BD9F1297653FFDE5D404CF263FF170D5D6DCEC36DC0712A81F E8F3D899DC1EF0409432F3C9A4F90D61944F575AB932D3F6922640F32ED40238 450691DC1B34140EC00BEC29D39BF404968B67D6E9C73C380F5F947BEC2C3849 81AAF31F02333EC0EFD02F04113391B2C5A49E374B7F3C219CCD9174AD9E6772 09A2099DA645B904031D21624D27E6F773231FBB8E67CDA703691914DFF9776F 0C2469A09EA1C16D7BF9950330B2AD7EBE4DCC57214ECF954C3E66C3E95ADA57 C5079CE9EDD8E2E816D76F20618E7CD8F9AD1208396612EE7D2982FD95B3B820 D2A6AE153E4BEF1C1122BD6698172D8CB3D072F72B3AF02E1182608D8919E542 1FEA1157E7B0BB0830FE5E3505E6DC3CA0D53E99DFC4124816B104F98A871DF8 70AFD660C76CA23FD9DA8A1F73AE86D53898D04AC8312F2CB50A5E33EB2D20BD FFC3476081FB5695EFEC477C0887B5E74DE81DB1F8FFDB3B8058096465C5618E 13DBA43023D435FDFF58176130E87D3D254058BE893EB0E896B8DE9DAAFCA7D4 212AED3AD4452FF4954047A0A23492EE07ECC2D26855786BF5387F1D8A7F4C06 9B1F9029F0438BE074ACAA131199DE1CBD5BC0757D6E0074CA173D486128F52A 355A110E86F5E134A9BFCB8D2317A39A52743A6240942688F287C8479324B621 39775D9A8546E16A150D9892F51B9ECE7AF3E9CB76841B4B0D139F5FF06972BD 94767D7F24CC997D920B0198061DB6E54A0175600A12D4E19A77D3C856D94DF6 18B491AF144E4D56A3CF5ABC61767FC3C324EC4B68479EA5904CF47D6476197F 16846A2937CB50D8B4C8B03213ABF210A250B40B12A0F4A6A9F3C18D0721C423 C08A77F25FE3501B42371BDFA6EFBCEB5CD1A4C2141C7B9A2ECA03176A554388 667970684E7FD87DDA4C30CD8F8CE45E62EFE2B32279CB65CF2B48D2E0C015BC 28ECD90BDC86D68CE901BEBDFCA2A8ECB3DFCD113BC404F328EBC996BE07B63F 630D86300DF100BD56294F29A2B57C7D8C12E2AF8FDED32E9115365C71CAB979 73E0BC5B876D08E394835C547BD0DB94DFAA19977D933FF05765965DADA841E6 D0890204B9394B2602B7A59C180C44AA319FCAF5CB47457186132F8269610681 60F0128B5F4A4DB0797ABC1361AD39CB96C2F26EF2119F79A6D8C2AD3E2B004B 7123EDFB659AD17923DDCEBC94F20AAFC73A1FC54B420931C54EA5A7ABD0B750 1330FBC94554F062FC36A62A7243F7D8525AD19016E494753FBAC80A36B16F1D B998BFB90988193ACD6EB8AECECB14CFBDDB31AA25137D0F3FBF1F2E5F16317A A39C4895F85A0FA38B803F646E657F859B80868BBABA016F897CA29748BC5912 C7C3DF89D30DE52E224EAAEE166230035B9E099871E1F955F305D93C2BF91BE4 668479A0A992C69DB9DB7EEAE97CE8F0B26C716B02F58E1F6F04F42A56488B42 914F3E4AC16B5A0D7EFDD10177A93DCE84E2C609954A05F376C2D4DD84C25103 AB9BCAAC378F0C77408351345D0FAA663CFA5CDDD17A1393D45A78D7FAD210F5 D6E3396A6B6D848B1B2E063D24E21C84F16D4A76188490BB519F62E33AC516DD A7F962CD7B2C174467DF54032FD4E5546F19630F36246D7A799D2F42FD48184F 4A7988703C8C70B2F19F2C0759D9FE2C7BFAA0396462E0D86DB05BC7414DDFE2 B6F14DC1F3C32095482534F8C73E750A004DB84982967E14577ECC48F68891DF C0474EEB4E30A4C6C498A082A540D8E33FFD3DCB13E1C80347C4B7F3FF75D076 4443AD5B69752F9306EFCEA184B424D36209A346738E0CA5A09BCF4FB2C0C997 03AFD6AB3EFFBD8BF345DA9E5DBC500B61A5264E4B5DE4641932807C27B7E15E C90070EA3663CCBCC5939FCEC1EE0D66202FCABC8D4C4E01DFD78E3EDEB6F5B3 36BAB1DD353B8B91299057A9CB94F6A2F9273DE425B302051FCC4A2735AED01C 2C241E9917CB7EC4B4E352F9DD39535C5609397C65F2BC25BD99DB0DB743386E 77DEE1719D8915659652465BAE6EE34DEC47F423637A807412F0F29DF5697FE0 EE427BD0996C8EBBB4E9782471768ECEBA41670C29E046FC53BC2A08D3B96389 3AE874285238152A36CD907824FBD31DD8430CAC0373FA9B4CA07CFC11A8DD31 5821765E3810A324B80BD94A1A56CB3D4F82D624F2866B947C51DA02642197EC 0BCC0A7B3CF3920231F6C844EA858BA7E29F114FEE884BEE609CDD3076584AAF D3C9751562B289C06A1182CEFF71E9E388CBE335904587938A36805DD9F063BF 65A0B86961FAC70A0C29DF67D1FC3815B73296476357EECC186F68B499A3C528 6B8838EA757318201226388598E3511DAB1EDC40857642D9805D1A32D5BC771D F05488FE4AB4F95FF9EE1A850BA4963C803A6D62D9B7018AA3D4B36D151EC8A5 13941A2BB41B7D8E803237383DE189547B3084CDEB26A7CB2231B47BE156EB1C 26674BA89891A31110DAB6D7E83CA30DC664883C6696F951AF3C3B44F2C891FB 26CDF89D876E47FB0703CB69CFF868F2B6D9BCC06F37178EB0AF141125292B64 84E0F58481FD082B610F3D5F03E11500C8439B6152C6230F54BBB1E6D94FF754 9669AFF321A49A05423E379F16E2932974799A96ADA222BA58C512C3A2633C3B EB45FBF3703689B961DA65F5A9EDD9D1757D4C457688241B3F5CC44103B360BA DBF7E1D807A9DE0B673631B9C35713B8C283DC395CDB4EF1D8A45D7476C569EC D59D71BF527483F411425207F49849A7892466BDBCA1A8FDA0AB432D521AA376 A533BB8B55AF398D7A85B6BFE0696CFB915C2929EF47F6488E2B7DF720AE82DA AF701E9EB444868F3E00D7E0E8B17BB81630B0B3D6455B57B99838D8EE34D6D3 56C7F99B1DD03DCDC7A235F6DD9B1D9A021E371E111FB12A525A04353A50E46C C9CD8DFCC86899AB7EDFB2A9C9845C94A288E80ED7546B8CD390AC387086ED63 8AB16FD06B01718495675AD103CA0CC20075DA86227ACE369E258382753882E7 D483233FFFBE8CC0D16CF58BB94ED5DB9493F904E88FA7E796DFC87B0B2AE0A0 398F5471B7D5FF55DD3BC32DF1154EBC8B97EE26BA35591A0ACD8BCF51814224 F5169FF2458E4FFC13A51DA32AE545020490E9AB83A0F8F9E4DEB357FC80E37C 61AC3AB296C7E0F1B22FA63EE885D87BA14450597121AEB62BC35D1BBAAF866B 5B238466F403A0A5389AA523A5C2834291DA9A2B62BF06590FD72D4BFA951EB5 53852689B3EB1FDFB98CC56451E4FB738EF2310D3241314552A3B858FF7D7164 941F67EF2A8F0218E6DD4BADF884092B89C29F13C1BF252D018516B82AAC2318 10B1D35978EA978559D8E75279BD1E57D13D176FC99352D311E3D10C64C2655D 8065E6C6A5EFA8CB5A1948CCAE66362B044D55EEFB0E3FB4F83990E9BB3B1C7D 10C8178608CFF80FB50C4248312C4BC411477A880FE72DD5FCE8DD605D847293 2B97FB729E27631CBA6D99A1143ADBB2820B281FD9C54BD7CD722D5AA023AEEF FD24D243F2B47C67A15E6178863B8E767C69A71A2947206615F5D88C53F9F9EE EAC22C2DD0F71C6A034EA8881358E4ED30E0AC2A40F5D627DD54953C19C62653 CFE1C5F2C04434130E406E473221632AC4FF2AEB57CA98C85F0118FC5D7B8EF5 1CE8A9029C775FCB9D668AA01B89F6AAD15370B09CF70ED590484F64BED1C90B 5EA2A7295310B1BB8A4B04039681328107857DC7557AF71CD6DCAA54957BE764 816F1ED1488E658495AEB39EDE9391CA4BCF7FFB5E6E298B457A6C6DBB2ED88C 43A881D21BE5BF68B1F365D7F1126BFC8D8AF7F944BEF14B3AAA0EC2F85568B1 8780B1A7130ECE7CF2B11D1750ABAB1E4E29880020682504C5AA3F784C58F2C4 9188D47068FB8BBEE3A4A68BCDA73286FA68331F6B9B4B1BA7643E3AE818A680 0E807926ED2574A1BD3B5663D9CA815FC6DA30ADB5EBF2C047F91EAF09A8DBE6 E136AAF673F47A030161BBE6D85AD1BE5B7BA13B8C36F01BF8EC1FF0212CB5D5 8130EE06F7D91330765ABB1DD1D3943EF917E4B4A511A0C614633B7432F8E157 B23D272E1F7BA42F9BEFAD6E6E98BAE065ADBF53F41FF69A27C02AD8F432779F 4F6DD9E3B7E5E0CCB2AC890727F96BCF6A39A2F0CB433B04512831C45B422ADB 0C1A511B561A4F719CC522F25E09E16718657B89ABEB261714E1366564A5D6CB B1AF95DDEB0169833A4552548DF27A4FD6701A546A441D1DFD6288C9D5EFF12F FDF4D7001585ADCCD799E8B47F52AF0BE8BC05ACE98BD05C2200D30D895152DF EBA25D8F1B04DB539EEB9186373B3F9FD2AC8136DCA40A75FD34269B9152B800 DF2DF5F523DDE0F55A44AE114788207EB870190950DF063ACC57BC4FAA6D2AC9 E9DFA27A594C5627CAEF6770534D5A9B1E836B4DA7091271CF8122E5C47FEE7E 43D3D9DEDDA757AC9737DF1D9F4A53BBADFA8B1AAADBA63AEFD00D74AC25FC42 3671616D79A2FA7D32719C42CB4C8FADAA667A4B5C5C0694D0F177268A807A97 E476868D3750FF9D8A17394E6A491871E35F5489F879FE12ED7579FDBD276AD4 DFB05A6ABAC543A4DCE6B8019285881AE156B776222C650DB92C648908120920 3AD644BB546638C72EC3F2A1F8D97D245D8F156BE4BF2A866A34D0D15F5E5F73 EEBBBFBCF7859B1ECE935864F58939B28C64D0F99D5698D4E2EC6DCAD8ADF7E4 143DFFF67ABCFEC0E1E40F1ACDB1D329A26469D88264A092302499707E031EA3 FF78BA55127614FD3BD957F4420F84B8F1D231281831DF5098C4AFE2CD2CACC6 6781C59D9FFBE23BE40D5AC71747E7E287A1F7057791378D834CC3E646D4A371 95345617CAD1956DD2067A549D02C4BD5CA0A68D0C15287B8C5D1DAAEEF2C3B9 8D75A25600B89941B5C4BAA32228C327C406EE9FA82282286A7F50A69ACB8B62 F35773C9E511F047DEBDFA43645E06560E334137DB0F322B7913FADEED2FD04D E34D9F7BC1EAC2F670263C4C2DC7454290653183851E123C9538380DC0068A62 CE76DE8D8109728B1B88D78F2B7F1CEB0809964148DC636896439E02D5F883C9 6821934B7C5602C103685C97B2F486A0D1C1B6278158B260E008ADCBFA794051 4F397D03B8E0F0992D62EAF1E54E623DF86B2345BF94CC64ED7BB110363505B1 3B707510F1E0237DD9C241FA85DD9EB174306A354414613C3D6218CA741E99E6 52CB91EF8B668BDBE1C290C6DE5B8BA28347E6E0BF75C225962BACA7E4827CEE 89DBADACEAF8509C5ADEDFEA305C7107A0746F43B7772D5D01603CDCA098BDF0 046859AD117D826C08446759ED78CF39D69535FC2376DD992A4442645FD336A5 B76F28F1E35704BAE69C28CC857A909446EB9DBB737AA017779FC5C0E77AD72D 9A6BD5623B8BFF6B15DEBB5F1CBFCFA57F89B29064EC609994F75366B034CFB0 DFD3E9513D301B950FBD69111C5198F4E94E9D294940BBDCD4C525682A17D081 752D8FE2FFF55D79EB29F3D394617261C09766224D891518ECC11B6106368052 E8B2CCBFC0B0A369C6C778D6FFF4B544336EF6B2D6831AC68BBC4743952C42D0 B20890116597614BBB801E156FBF922EAD0A6ECCDF40D91337424808B1CF6C56 77CB8BDA83DBB68CA9672B60F67F954B445B6C450BB426236080052B867F03CC 165BAC9A5A510E7F921CCFA854BAB82075E9D580CC7A53CCE92B23FE66E86A63 317FE48D7DB03A4F46727F9EC6960962B71B9E006BF2A36205CD54B4E4D176B6 E2E89F7F899E3594E04941DCA43543E2C6CFCC91D4DC2868A975C6E59E8EB688 ED6FDFB76D98A900EB286C1FCCA60C470D0F1042D785F7D4572B59AFF2530222 4C418F60577127A9266F6D29D91BD17F0CE4AA028DBD86868F8588591E23F420 1DAE77E7D19665C132566A6412745AFA4AC15D74566017F410E8E965E37C89E2 BFB7CDF96E7081EC975AA7147F672C3C6EBAE3DBCE18C1E64E1FEDF2D4E7E538 ED5E1E582666187738223833E065FDCED0F6FDB4EAEDC442E41FE321D355B07B B37D2F570EA0D63C8EA3002E9897ADDA6DDE77E82DC1106F09DC5F809D99E33F E44909F5E91E4BBEDA54E6437D306670212B4A2F7EA8E0C719D6AE754D0EB40B C2E19BC5DE97B53648D76DE206EB77FF99D6B1D863283415AAB232B8367209BB 6BFA4107994A02A595E7426E05EE5AD25D420A5BA8ACD0C9F3E61A6F79DD6255 C6D0DEA1F77CB4A8534A547632DB8B199E3AB6D0770571EC63DFAC3882B44FD1 FAA744148D1C44F9177DBE709085F08C62CD996B1D209791D387FFD9AC73F126 33FD7646C66EAEAD22A847C3B83FB98F87604FC6F53B0DA7761741AFBF403AE0 4D3640CC3B294A8283458883A936BC9ED9D43CE2B455430B1D9BE6C5A30764B8 A3D5C34874093CA07B1CC4719A62C23F8F55E22FCCFBFDE599F1C1968A0F9F37 03893944E815867D3E65BC6978B304E092019682DE17CA00613097428D664409 6830F3AF83E851F1CA70064EAF57EEBE0A183D30DE05D0530704D25B34CBBA0C 1E6E4EF11A08495363B34014BB3E93295212F957EF97CB3AD6EFA36FA4DD9B5A C6C4F70285082FA8E5C4DDF1C815FE435815FFF67F816049CD525E5B7EC06019 19374F3737DE579503BA4963D8BBDCB5C4345FD8BB4C57FCEB3825AE084CC493 B3122951030E94D82F229C6E2A1AC295EC8B469834F81B481014391B6BC74ECA 7D491E35016ABB65587F0D98DCF551E8A08E44C59185B7AAE9F20B15DD24B151 CBFC9219A547C6FD2F516CA4721F864CBC9BC7D0878857B4943AF55260B215D7 E70D1BF6E4573EB1F49490D85811D0F522366990A7AD75880BF21A8447D46953 B1F0EC39562B4CF5F1304B68A9118A81053FB171584016A3147A67F4482D0883 064F4E1D910E95FB98228A22F429DE69F7CF41784222A213616BA3843EE2218B 05DFB68EE2B42078F52EB240F7E34B1980C9B10FA2D8D4786F16F04B8A248276 0FE06064C0B10F1929AF2ECBB08D6411AFB484CC5044E7EB54C8B06F9F2E5EC7 04434A14C92564D60B37AA7AA1DFEC28679828A416782ADEEEA604ADE1A5ACE5 94E8C3F507723CE6C96404088C8F2866389AE168A9D84CE382FBD0E7C0C76D42 93DA08602B5618B8B102EBD451FE10ACA2EEB247F6757E075A6190D0444BCFA8 FA2D5485DDE4817DFC211361704F9DCB1419A2569B7265E460BE9165864F3DB0 A9B66A2B00C94FFACED9EC091D7E147C999C50FF16ACC71636953D987D9458EC 5A7AFCA56162AD26194235AABF7015FBCA0A59E431B3843B0D95288711AC4CAD 32D317944A982764FD5F87DB71313EB2B8FE26CDD9C88F538B60D5F1CC83E088 E648E9C7250BCA4FB902405C0DD55549EBEE0418AC91D202725A7BFFBCAC5D78 2A1875F660FF9E9362BD50EE29A68F4FCDFCC7FC1A890B6E5170A1F7BA067EE0 D1250A3442A08BCFE4BBB747DC30F66508C26A022CA5F2AD26B13218F2C4C288 9DA0C7955B418F1369ADC2606C60E9BF99062087DB87B7D909B71E8FC4CA95A4 B59B433FEE91FA5D997F845FB99890DBDA97B1D54DAF311E02029C538D225AFA 9AC2B9142DAE50C6CF49E9E3CB8C25FB0E2937DDA825495A1530501229BD5388 7F69A907C85BC30E0A814FF7 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 33 /exclam put dup 34 /quotedblright put dup 35 /numbersign put dup 36 /dollar put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put dup 124 /emdash put readonly def /FontBBox{-34 -251 988 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E 59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28 51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23 DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F 45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31 821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE 96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D 9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379 26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4 140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213 1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498 1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB 377D3061A20B1EB98796B8607EECBC699445EAA866C38E03ED7D4F3EDBCA1926 2AF6A41F67AFCFBF3630C943FA111E4CCD988A7363F7C2B75EAF5830B049460E 0D2B337988F150B9182E989E7750C51BA83DF37685483F86D1F47478883F3F6A 4B7F768DA5AA89E8F163029ADD4A9209DE8A4F285766C06EA859639B92CCCDCA F59B1C2BB8D588CA754D1257BFF76B53984DF4937093AAEF79009D32A29A4C16 FB610C7D6713482C48D7F9E8410C0F00AD6E67021056B6035534E79F05D14EF2 4E8D85E091EF6CED4A669F73F95D772233997CD13D8DAF2B48D08D79FF729BDA 7B693746B8352376920A0906D34A76AB60B91E50C5B75575E0219371B4DC7B33 2A8BA5B8CF31C119D43F5C298558A2800CF9B3CA37BFEB6E86457A37F67E81C1 14939A099DCD040C322A9DC964061EE11700A6094C01CD2EAE302EA8EF558D35 CB35ED6A6359E90C168C1D0F81410876A4269FF0559C93838E221DC8F1A71FBF A5740F32A6228DF6FCF494311B6CC34F4B60CC286FB90133E1F9819841235C96 A317D8A79380B33CDE450D3069A2EBDC16B0E85FFAF6C3FA920D8A9D902A8337 CBD214ACFB26D4390C7C7D8758478F05326BA569020D64A79A9FB0EB65558F42 20076F0FD4148A2591B866E88EBDE508291DA8F972DB9461960159FC0FE64B8E 3B9D721D69425E567666C203386C4E66B1EC6E0358A3719C093C6442DFFAC5D8 76523218A16EF68AD4B44F8377B3C3B6B56253A9E349127486B8A69D70D1D59C 488D5BDB56B2CA070DB132223BA1FE08BD78B333AF2D39A069459561DA2473E7 F7177755748BF19AC9235301AEC60F4516EE68EA8FC673C21AB90075197054FA F77CF1B1C1D4791820BFD8B26723D284607C15EC9342F192B108869CC6A3990B DA0D781EBF6320E12F94BE7F6820F6C8BF2E3B09BD32BA25B23E04FCA067BD17 9D0E6C7D03C3D8C54CEFBFC23E819913840B6B3E79AE65EC0756B33354E7F144 5D926411518A659C42CE0A804B8694CD0795CC35C274EBB9B767DFCEF3F9054D FD23F5B37B1EA9A75A34443B3F570FADFAF1EAC00D8BC9C8E4F626DE8831DF5F AEAA688B1CDAB362183D41EDD61C2212360ACE86A76A33A2AF41AA2184E6DEC0 D17435BE95B6D8C4B1AE0AD2E93097F2ECE693E2CCDECA5E2BB61CDE9FC6DF93 6A5D13D7896C818A9E7BE04A49D59FCF02F18D3AFCCC56872BFC519A12043D16 CF0D31DE2CADC80573D410289914BD07F81E0C8D08678767BC65E87FFB397125 3983EA5373EAF74E1E6AEC157F89A88390778A61A8BBF369D50EB076EF938714 A227F4319C594BFEAAD0FF7EF9DBC0F64FE3599552A9853C6D46E70EFB553E70 FCEBD2B480EC282317A029C843B401A816BBF576E142026BBDCB4FEC6CD1FA03 FC4ACA720B4C763F002F3F10A079353CDB29511C4CEF528E7E8A80B00B7F1670 BAD5B7F6658559EE0E557245EB83EE6034B13951D4B3E3CFFB7628FD7362F25E 0BEAC93926FC7567753F584187FB4251D31549DE5FDC06F8BBC7B96F49851879 B8036C3326C750F8DD3AB719CD37329ED4E0EB431FD347580347B929266EF09F 9C21E2DF1BC22494A8E31BC93D0E77C51302C6D4248DDF7817C48D9AD8744723 D85FBF8855604CAA309E3BF1906E098A5B90CDDC83DC6D30353F31888B95B19C 3BDDE8F5EAD95BE9BC28FB4B8AE4866E663D332209415479497740476A0B0FF1 C9C79483A261DC85C02086893F87E68ADB969D7C68C270A892BEB4A43E505949 83E0E8F015E9837727BD5348ED9945148B2536106C278D37FB21723EB1BC4608 74CD601F301F7897A2F2B71C3036C7D0D2721F8D83E411CB25D4429E2064DF0E 0F411C0450E509510AED7B21C88B122D55845B1681A52DDA80860B571ADBDF6A 214B15630AF17BDCB1ECEACC9E646977AD7D6E9A980050E85C6D1B9574E94B19 F549BA2B11722488DDA3173CDD144AD57A5F8A967FB535A11FC7AEAB611FDCAE 45C4DE5874BFEC4CFBB17BD19EB6E59E4F1CF35F50E444413A5C89CCD635BD21 BE9E578E9B793F809A5FD7331A8ACFDF3A9473F9B69C5160E0C5C2BCF0CBFA78 81C8CD589FFA5906CCFD85EA3CFA2D598CF16FE257454A7AB5E6CD928F5157D5 9B96AC8E0CD4BEE6EB868CCD67FA5F8AAB6CDB6AB322F361F42CF624FB947BA6 8F8BD448DA996CB833C6492DDAA33419CDFEAEB44EF3DCA87F86E08E2F32142A 40638F13B674223DE58C22A34A6BC5A57DD62D7A8A215D730937A9FBA04C8851 05EAC8111FADA0ED66CD6C4C0731028C0D71FDD99FF02A5A00E01939EB99D243 02B43A470071FD1928DB3A1BF6EED239DB0777EE52EFD285EB8BBF011CA65E1B 432106A3170988E731E6F54AB27DB02F9DA052020C67A9575DF7105B5616721E 6120337F92B8FDE24BEDADF8BB94D1CA9BE117C240419E53E3DCFE1E514E65EC BE3D6E2290D84BE63D561B9D04D152BA22B80D0BC164C0372EDA2FE2F20C2165 30B6144DBC697EE78E84070767A2D0BF7BD5465522B05E1644E4B7D9ACD66446 FF9F31DD1830707EF025091076713C5D44585CAA2D42DA485132A8CA5B0F38C2 D0B19B948808AB1CC74F0CF3DA5A16DF417039F833DD80BFD70A01FFE8FFA306 A03F1E2A37381760D8CCB2B3931DD2409A879E385C1FD8B97EF39DEF62913486 5FB45DDAAE33FD2DBEE27589AB54F34AECD8F8DD2721F78E8E475B98AF9A78D3 A55DDE1905FC2196B4ADDF4965A80A6357876F198A7CBB3B69D9D2E594E17382 10258A1EA1EAF09D2D38C6DDC46444BA609922403342E1C3E7D2E33BEB461F26 1B83849BB10A2C2D0A0E22EB35C4F6452B5C2499ABDCEA920C2F44F284EF2938 5592AAF1DF5B008D4B33BBAFC6B12371ED1E37D97C94CD733CE136D7AD724F3E C36978910EE68C37D57D146A87778157405355192ACEEC1B531E2FCEBCB496DE D75F2E04CA64F16DEFF7FFE30E9F59F803B276ED88D1A4C38FC4BDD1B887C00F CFBA8AD70DB3E2F5A724946F574E51A4F0856DBD4F16ED818DA86AE0714E284D 97811DD14E17147E733E770EFCF619C134C2CE3E5957043C6A68BC62E47D036B 593E14C73D64B02134B9ABC84E0757A87D5288F604BD5ACA8134A83576E5AF82 BE366FCB4E5CA58AC6B8ABD9F69065B87CAE2B9215D97651EA0B67B1649C242C 3981F79218B2D64D73D2A01FD4142AE756DB827572E8264668ED8164B187B7DB 7A46A3D44FA027C6AFDD6CC3A5AE25BCB7079D4598646F13E55384BE8F0A63D2 57A3FFF2500BCA92C75F6585BBDCD77CA18AC3A49303EE68FC21233DEC20D58A 0EE0CC0E32012A3FC4E7E05246D7A2E405E2A4F2AF1CFBB1661D4AEF3429B635 0ADE31F82B0368F3B860AE708CEC8F10764C6A28A1021C613B33188536C87481 CD8D8BD9DD43AA59DA9A6352D71218D22F1C1AF8BC8204F279FA4EFE5595B1E4 A73217B6DB97461C2EC053CA20DD52DFAA00CA9C10322233293C0C4A0A6D5DB5 DA93962CB702A39D0AA7082BC93AD6C2207B3A24DC94B55B3B73B20B92E9B925 74A803E797BB92DBF703F136658785606D99CA5BCADA69BF73EDB089788772BB 8409760EEAA8C4B60D9CF9DF68CC7E27F3B72D25A2701E487AD38D655C75CF4C E9014D1A9AEFA583539F4B5040FAB0CC973B13AE36417A6F274233B893C27DED 519E1E868E8C5D2CDF09E80E67186CCA2553E6B6B96EB11D1F67222EA687F67D C1B9468108021354BF9263F3F4C888327919329E1F37D1038AEB736403A5BB4B 76C8F07727E976CA34405F3FFEAB12D2B3B280C971680AF4A49BA6456F19DD2B 9E63AD5314C6B96E63AC2368EB6517270EA54AB3FCF417550EAA6C3EFDCFA27B 18E52305C70A235F2BE759ACBADE9C5C4F4B313CA7ADE54CC4242AB7C3B55276 F2EFED4B1B3F276699B44302B542453AEE770827F34C511F176CBDAE254C48EE 52FE486DC35CACDDF9897AF023116CA5E394A0FD7BFBC11224D14EC4FF0F0848 26D346BEE2446B99458602B32E0105399DF1940677147B6A96F7305B126D4B02 6388FB94EF35CF0D3553EE2B9416DA467A97AE213414F6B41DFC4B80702D6B1F B8ACAE64437AFC40240342E6CD215153196D3F2B9A2A918B4E6946616DDA38A6 1B619D0A96865DFA03727846A1EC3D301D1D91A3260199853600D72948E67A18 33A6A5F23A8F54C22B62C39906CDCB8847836A942E31E33EF8B4C1E896916CC3 CA038C2630120855C9C0BD891298474B8E9375349EC9F08FB8774E3905669CF7 3818867557DD46B88CE72AFA5AE9A20EAE69121F3C1C51C879068DA68BB2C86D B04AC89D0E090355ECB21C08644F39022DCAD6B96C2A13F293E1FD6DAA7612BD 7FA038430ECEBD0B0B56B5D375B84D95FBEDB6CEF937A2D44A96BA3F5CFCC43B 0B123B51366CA2694288F1F5C974DDCA89A9B530F67ACA443E80671E22A0D335 06F160C743083025E2EAFDA6FD3E4FE7D456F5AB178B8DF418005CD6B4FD012E F74A5084ABC9E491AEFE45A852D8D3E2E8A83CE35122498C09CF973FD76F758A D459CCCB1880A434F36F44C2F9DE6F33545E295F1F2AB7AAEB2006F1DEB18B0D E5038AC247133B0CBAFF8F7825C3DDD136E2086AF622B0775AA6DE5671493367 E8B2D95F008D1A558F36797B4D10CA927063EEFC58A64ED2E53188F4A70F988E A826FB4511B5F4B15269257A53AFD08BFF7B789D55E59B936FAF0F2E1BF06377 0113B6AA552CB3D7E21027FF8C1082337B76D8D3E804EBF8CA4236F32F6A796C 9D4EFD42B0EA666BCB0D1ECA4C29376EB82E45604A8FA9DA5CF83EE019B52A4F 270EBC1667FA7DD33B9DE304DACF792FE4BFB50584628A0D6AF62CFD92070429 6FFFAC798078B19021CE7FAE69BC3112C6D2BFDF4A3C4C0494D4771F5DA0011D 4661B278950EF4F35DD1FD7B5592DA15B296FD46EB323C019F21AB7D67DC1877 3A1E84E41034A2625E88645258905195441BEB86D0A6F0406798FCFB5855497E 6C5FCCCF80E672533C392B727EE7E1436957FAC4F05CD7088548F5BA60D5116F 9A0D26213767BEDB9F9647F79F55AC1B60602773B2197287EBCD7DDF890C9EC3 83144437E467FD6E1F141F2EDF826243E65AA0F2C28AA01614B821BC260DB72A 1A818CA347C18FA174E51FEA50BC1F65FA1F37B296B400FA11343E91B02CC766 4658AB25570894E270E5F5D3B9313BFCE2AABE35B075ADC3E1714B534A236CF5 FFC0704A7F7B368BEB86371E8F2F40918D0B770BDDB778E058803407A0BE97DB C2FBDFB6B2C627DF829998C3A57636E679C934B90C59DBA1546302D663253859 031E2AE6EEA9C10C7C364BD89A93164D1529C96CB38F2D26047A91B895FFA0EF DB017570D25FC391612A9D68FE36B1A3E2C4FEE96CE5197619FF46CAB44EF6B0 1A7D9F6FA94A429E9415B19C34B9031668F62F6090A39BB96671476C9552ED1F DD896B03B4A393C48DB79EA5A46F8E3A64DFF16CE655CDC46F204B45C7D16175 A17C6C190595312B8D3110B614A8802895548CD90BAB45712145DB756ABCE05A 8E705D34A834A48B3FF7A68B4938567DA7F99E5720525EBB51E9F551C03A1E4A CB9D28BA5B0C2306BD1C9106FA26C423CED800CCF5F95D89CE54D354837B4A2A D44832D9B7B2CCF6A9486EFAA6B98E60366652EA73E2BD8889DEEF38FDAF94BB A74F8316D2D7B833A7F723C3FEBF42DEA7E7D5CABBBD989A4DE6A8CE52B208AD 31D93F8E48E5D6AD19BFE94B0190817AE783720D3DEEE72C10A3E20C5FAA1E8A 92458865E276A82DECA4EF133833C2B4461F27A03E9DDC828BF695BA1F142871 FC9684F68839479857613EDFCE75DA2BA38649FD7EA4681D719AF7F6AB7295CE C1B0DD772A1C65F2FFA81E18648E6F81E59C73CA772CEEE87E37A55152A0283D A0BF54ECF4007005A2A7D5F835060A0A0FFE71D4BEB29CF3372EA6D41EE41C6F 1E418D0972A9836F6E1E28D3F07870E2ECFCA1F42CD835512FBB6D098EF0BB3D 411159CB0C9B016FA379F6D17338026B1E889A466BABBB27E264E085711B025F 4803369459BA0CFAB08E55AC55618B7F8A63F25CCADF01042816809A4436FE54 9A145775C831F5D2DCC3CDF9FDEB54E0244D0D055FE205C7B8D70BA119E7A026 98068476DA9653DC35FD471E7E2202EE48F112C605D24140AADDC67E46752128 C62428FA29D4FF8B755F60E165ED749F5C05AEE732EFA5068DF277A19954E6F7 714977650A20EFDFDE568F05BC111854476D5269FBF6E5CB7F7A08A77405F46A E9A262BCB60AD8AC1FE728CD5D418BBE878A19930B101D6AAE16BC467263B158 C662EF3B5A49F90C78F1F1B2F1278DB7595538DB73B17F13A9CB32924B4374B8 8E9419D59F65E0608ECA093B5A3CC04DEB4584E8756766D9741460E1C14036EA FD459386F6547CFFD2C8978CC5E940E52086F0FBA7D87EAE0380D8E811C459BA 717C01FBF20C824E7DAA48456091AD6CBD812D7FF40A963786A9B7B8B26EE977 F39FAEC76C3D973A6A907D39213F48E6BE5BCAF750D289F210583C21AE0EE266 1D6D8F2F763013D02816CCEE6FBF62E33D7F614DA9064FEEC2979AA5C65A5F6A E5602172F91789BA5FE35F46E97FE29FA2A16F6428F145B177C2EE0B3DBC0BD1 42298100086F8190A20920CFCC71E7413BE2045ED0479EB2F86413877F30D162 81B8F0BA8D0CE3CCD225D7BF8BC105CD4C596EE6E0D5A79E28D441E11DD358BE 0752F4578B692603151918D3FD0B6E0AD05775FA0667F95BDD6F9CE7DAB89F63 60BC4203E33CD9D0F1C6DBDBB9E64BC018E9ADE0CF6881E0F44EA3A5115E3B68 555DD282EE8D3A6B47B0AE84A7BB8BC30F57B31BBCFBD6636656EA762B6534C5 DBDB887D30A0163CE29E31C8E587983CC3BACA220F092206DC8E15197CD5484C 9936D32EC2EE131683CBF38CC767126AF4722821CA631DBC535220F81D1E3881 0834D538C8363941C3225CFD5EDB915412D94F12A156F925F52DE68F1E8A2493 A53237855F1AF500CA7635AF487810D141BE6F60732F7129345467E4FAFE87DE A3ADFBDBC54DFA3C9CD42FDDA20B4196561788215F92D4E6876BE2631499247F 647B8F2A0237BC3ACE3AE0E328BB3CD941E139CA1949E74A1C596CFB6C4060C3 FA01E0ECAC17962505D1D4A4053D68A592362D53AFAE97352B265449F66AD247 A46F04501226900E892EA1A36B9305050043A3C5CB5DE91464347D65671E6014 B26072FE0B467A08304DB47216337607198CEE4CCF67BA7022DDA04D1F0AB8C8 AF15B57C011313216EADAD5A3913BC96BE3322044750A005F959943FF5584876 20091DE15D337AAAEAD2855C63C78935095C43FA24702C32C2B67BB09170B0E5 82EA11E61ABB60A4C1B3BF95F741DF6126BCC5059CD7C8CD5BCEDE02709BDAD0 DAE3CE1431415CDA66C3192A4B7398FE2C6850F9C66496DF3A410BE466B32B13 C4B08D727A612EDC171E06F497304A20B30EE8CBF6056EB62EAD94BAA31D528A 94593820DAA9342A89659FA1F9F8EA934A54F9328321E5121A09C4AEA91406F6 78B10174C5B0D918941D0C6F3C876A2533ED53DA58A30BE349A5351DF42FAE66 6C6FDAF33D004A890D9685248387F58B1A945ADF10CF738F185CFEBF5FEBBC57 AD37343B8E476FC79898B364325DD2974BB7786551E5915F4189CA12F8A502BB BF03B06BBEE2F57B8445DE095D2473FF1F3F96F9983460E3EBA33DADE6DCA8A5 FBE434D79125A912F5FF0AC732987502B8248A8B90E803B03D4BC467BC563A58 99BD7932AE0BE9D6D1A06312ADA4B15BE91656018846CB2C47DB109ECF6BF4E9 E58BAD2157CC1E14775F87664031EC2C71EAB2EA493E372D2EA7D81E67A939C2 54F63835110593039EE5F1A7DEAD2B061CA067C496A699CD0B4AA1EB88B1C3A9 BC2017E82E60580698201F01B917B639C84978B3A444145E6D4F8F356701E12C EBDD4748434C4D7B5C7714A5AFA450BBA491FD53618118C22EE60C7163D751FF D1475B68E75B29CF88454FC9FD1B065B1C349E1045988D071CD9408938FAA6C7 0AA08049D54643C0451D3AB6260CDFB107AF6C5BFE6B69A5ED8EE125B012767A E8B9FBD6DAAD39FB187AF6C2E7A4C4BB3A1DC630316BBC8A62420E5695E04471 A88AF0810A1727DC00E495890C8264FD9332253DE12692B189158D7FD829B736 61DEA498E4E0BCA05E70FD26800791D664820771E35E6668D605D073EA22FE3D A094A7BCE1D76A8D1DFE984B867D859F23B2375F807DA9AFB5077D277195E7A1 8AF27A525C4AC31C9BD7BA74ACEF5FE6B3F31BF85261AF7E52EAB7775E935741 B16E34CAF18709E2B5350558417C32F87264D1A24272383747FDD4328FA9E0C4 34A80BC99BCF0D2C90BBAE2ADAD7371A9858D2427B49E801C5857AEFD3B79F8F 794B6B0F83B1BB3211D336EABC4C790B5560CDBDD9785D086D1505DC128D7419 47418D2A480D16470B7D20CEB61E772E13694ED3A91C1F1F58108E41C8EC7BB1 DA59DB31F0FBF5F8F41DBA8F0E80D428267BA5F8B0B6D6955141F1886A872357 44B19061BEC2E7B7677F584F9B93DB9E1AD8FCFC5DB3615A9F96658D75811062 61DC3F29B71F1AB1812A0DB0FB1FF39ED7DCE758A3BC5C5B0A2B158F31C89B79 08D6937802000587EB4AE9BE6EEDC1ABD021593A9CFAFF9E972647CF27080667 3C253CA53558693FE704A02DFEEBFE08EB209D5CDBA6A05A5A375D30B551EB9A CC21968C922B6A40B607F598ADC2870D00E6DE1CE120BB96414C52596A56F84B 8441115A900BE5165832AC5B383F96421EEFEC31D61D207232ED0083A6C6A57F 90FD6BE004C86DB7025EFC9DFEBF2FE3D02DDECE9AB07C7A42D29004599C2A40 75829BB8AE6778CB3348EA713DFA93EC986AFC784203D384967C6E865D729FF6 E610AB6EBB570FAE8BCEBA1BEC7A09BB0C85BE7C993BC77CEADDD9BF7688616B 1BEC1448FA1A67C0CF66093E88E076D060ABB02E486920985ECEDBC1328E6C68 117131F0938D804F93AAB5E6407B98ED47CDCC36B8F5F556191543D7CD3B7345 91C003B36902B3BF190CEB5D57B475D60599A41131AED6549B89CDE90ADC0E77 6B1F1A3F26FC00DF44BB22CB7FB283211C3F80271928F93598820E6D21204240 61F62B1ED2F9B89B990B2043D295F00AE6DA28FCE19C7AC0A5D4067BC6FABF0A 301EE9F2EB7135DCA46C8BC14E2FC75BE3497073CB088438DE30B1D7690BC70D ABC5A096923302B583A60053AC6A93158064233955C99A5782ED2D0CBF438EAA 8B0B0E816FF53549BF0982D8CADC8AF1B28AE4077117B0A2653D5C4E9D38A086 6F594B9C68C739E828ACDAA9C0D976EBE8AE27E268D071F2BDCBAEF128C7FEC8 0A8A8FFAF81123B8CF164303CA496EC2ACCB5C4316F3F471D052E56C21512134 C09A7610A634A3EED8A84D4FE814DB29F605F6187902B9127E142A54B97F9CB7 5624905739774427776DFCA23BCF566330BC926702D591AC4A0F305177943493 A9D49AD4D1B949B797048F295CE066EDE41B75DDD476E6C36ECD070E1D065E21 884D6D1C63C77CE5011720CB8B50FAADC227E5672B6D93DAA269CE7FDA2EE7BD F2FC9A92DEA9DF4C77342779FB584BA7D0A6B14340B94950476C19F757263ACC 78688B9431163D10FE66EFAD71F07CB64EED598624D24FD45D0BE3664DAD08A2 7F2C9DE6C99FDAF2B2928EBC564628BF8D654983AAF0685E227603864FD16BBC 87D2770730165BAC4C71545EB2A45DE34A8EC8C9919E0F21F107D5A99C80588A A063CEC92D983B79D9380DF8537278BDCDCF4BEAF7EEA7943BA3463269F8697A DCC1B7D0AFEA78F2309C342589F274916ECA29191CE9612C6AC4B3A8355E72C3 7FC67A89CC5D3B8F8C47A37609D1E8100B65A6D721C4A727A480DE29AC80D3C7 6C8AB5A5C5770AA13EF4B2AB34BEDD391A4375B0E243F814006F330197B21BC1 F5DDD87ED51E100AE678B15B3DE7A7A5C7B9DE2D03965707E331250304681119 3C7C4795D35DE489CFD4FE803A978CAE938BDC6746E923FB5ED31C4E6E5A5D58 21C960A161BC93F5378A6823B191BC9006FF6418A81A9A4D63480E585226DAB9 ABBA48DC61593091807E60FED10C3FF737129F9120A4B94E913F4B3478FCDC6B 758E221302606F3C48D3CC6A03CBA9C0E4411D77B9F6D49A360FD1753541E4B0 DC968C44C7A0C6BC4B88E756E2B48B2857404ACF9090E0472DB6B8C9237A2026 184D0731E75544C59A1F231855F3712F5713E08D7FDB2A5AC96BF2B79D8A13FF 6EE7800E9C96984943A48825F762BDD6B3A7BFF27B78C80F145E9A1671E83B22 E6DF992BD4DDA0D0AC54B1515EEE0BB073E8D7E697A8C03E189802B3E446E3E8 46F0C02772C6D7665BD6FD85B537680CF6F0F1FBFEC5C24F2B2DD3CB6E96054C ECEF1F1EE6F272890D9EBC8C14F098C2A77533B030A173F067462B76CFABCFE8 7DBDCF2E8F1A92772EEBAB4F0E64C1362EB3F3CAB743531C2A72D9F95E4D767E CD310C7E36FCCDC3058222FA49BBE81D11D7095BD9D4C8BCEC76FC2F21736AB0 C356BE9AC49DC22508AE30E5DDA81A047E9D75DF8EBE5667910873E9B9CB6650 43677436CEB1C4BFDD4EFDBA646850044A37895D5333139E67B9268C6A8B577C A27BB24BE2BDC1C3C912F78EB8B070CE8BC65855F8D2B17A04AE3C6247F37E3A EBE235A4868DAA5EB22C7F6D5C20BD86C8D00D3BE6D98E882E4500293DC41A79 A5745091FDAEC99162C5CD5F900339CFFEFCC1225FAAF6C1B6794D805D05A300 FACA93094D6D1A9E82A817715EB3483854208CAC9CEE6F02C3E4A1123DB62BC9 AABD514F5D0706E7E847F25E3912C1E7C06B4B484C729CE535EA0BAFAB3DB8AF A4514F5258E05680D83037C5A35B382463A5372BDC8137251FD5C95320644C8E 925F53CFEC93DF7A9F79467F03DAD5909D7FE03DD2F0F24C0E321F10D5AEDE2C FE6F1DDB6660A54155EB4D212E776A6433C43D47B49E2BD7BC62544ECB9C8B03 C1C92A2DEDEF19ED9E204583499A4C4DE8D59A5E313E701948D3A880D80EDEDB DAEE9325A154340E2AA352B11535DE291492D250EA7C2CC4EC62B8311252D39B 1B66ACBA03949DA174603C5079FF8052BD7D828A4923D3C4A08F21A14A1E8DC2 768E3D9416743467F5D624614D7B99868E9D592075972A073140133E2D610994 B2CE382A39A884DA2C278E5E140C6DA77EF72929CA5532B99F3952A6E0C48F23 907450983D61CD8CE4E77E5A44CC1934CBB9A0B4E0DF374E3F06B1B1E25A861C A18D0FDDA1094EACB0F89BF36B033B50CB881F2BE7D463856D0DB729FFB10AB7 7CE088F3785792575F519E22C0B8DE684830549C5AF6157BDDF42EA0AD3A4392 DC3457FB157B7691433A9DBE5FAF7B8367CC96D9710713311E42401834CD1138 805F82BC8A02C5827F9FFFDF094D3336B2A894CDBF8971643C5ED9685B0BFA8A 3652F038E9351A6271AAD22EE935D68B9C7EEAD155758D3268342D290D7E63E5 DD3D5EE23DBE8EA288AE9F5AE83EA8153676F71D106C4A43FF318B8F02138037 4B63DE9ABD94BBCC790823CF19301CF85B53C83630D4242254A0363E9E23C9A5 26E73738084DE89709A824DFC046D2B0605494EE75FDAB0014C45DF45BE845DC 096EE718D91982A72F7866C8D858E6EF852546544AB6249607BC5DF075BFE0E9 42411465B2B6D56FF7388F9213E3BADDCEB61DDCAA837FB651DE8F48C9403B93 0E7CE0A62691EFBF1E821E527F826776E644CE7EC013B9C4D11400793E114FB2 A715471CC36243100F92C51DF0C577CD374107B5B540AC779C3D22D55C6319A7 B730A45B3A980F13F7259A35EBFCE27A8980103D99DAA14AF4AE1E45DCE7CF95 D7F705798627A7DF99CE9F78269E89A59B0ED4BAFE1D04DE5C235D8E443F9D68 79BDDB4057C599E4BD70151D3E2492C15C4EF13E71AFB8F557AC70D2BCF9F4B3 1F126199BE1D461F12C03222EDEC74066D2E1264F23C6F183C8B09E67AD1711A FFEED6F16781B90267020CFA006034E5FCB193DF10DA8CF67FFDB0D279D619A7 630E3C664DBCC0D4B64A08A884D7C2A2AC977DD03B570B9C957985AE82BF2597 30C9C88ABC2752AE37531010D71B3DA9D7DC315C3B498EA3CB454E8A2848A527 0F05D7C76F67CB5040E2A90D88B1588E56E35A3E2D97088E52002190F5DFE7EE C9334DED5C982E64A53A12AD6215A747063745AA5073E0F5A3142A61A985A2B3 E75898BF2402C85F971B1ADDD23A442A8884885B47559C13D35F878108CA4213 D137D1FCDA52E293CDB6C752ED03EBF744B431F60FA2C43D846A33B498FD3013 081D819BB01A1DE2C870B61AF118F8C540395B653A2EA89153E3CB680A18F5A8 9EA34C470479DC4D3E6F683414D4AABDFB1FBF156E17ABE421274B8DC0FC2BF0 5DDF8F54061F0C5F883B45168C181E9B1B5B16F3BB5B13249B8D95E3BB9895FA 655A6A64961B0F9AB4636244DE2ED1417AB8104A024803BDDBA86417A82960E4 47FC9F2528354E6AE437E5D37E8DBD953481D4EED7D8404F36056350DA7E2F1E 0EFE17844DEDC3DF8B04FBDF8311363DECBB332F678C3BEDEEF068EA8139597B 146FF8DF4C2908C861C4CCF61BF5DC73C2E80F1715D6E7EA55D87DB671D8284F D3A5D38ABF5E0F0FA79EF18A24888619069BEAA94DCA34883FBC2AA602E097FD 1FF78AE239D277FEC6E72B87A5670289B989727BD46DF116C0161FFF0323388D FE20149A8811635D6C3F5E0AF28123269BF892B25E84E2BB1291179F42BAB53D B975B18D9CD425009B521DA7DEDB9235BE50AB76E90FD3A1E5ABDF154BF1F212 6D8FA5BF6853E51ADC8465F81BD8809E5D56A2EDD9D1ADCC61F7A27E583008B5 C9427A184FDC9DC636769A664AFE011A03F7D5BF99F5AFC6EBB5EC25A8E8E658 D9CE675C62076A58AF101A24E6DCC6B1EE8412DB6A49619DCE941D10E61205D2 7778F7F282C105A85A0C2DE935CD9B017894B72644AD8523C33C61C2FFFD075D C3D601614A65E4FC5D145E939C60F1B97CE378A686E1DEB4FCCFC61FFCF64FFC 142FB601B6F73BA1C8046BA007DE44537D7D2971AF5A6F2376950527352B2EEE B2B49F9F8B3ED58108B39841E8F8DB01537855A5DDCC8499142970566D0E6EF7 1A5B83B3AC12B5A984A654E7ABAF09C1624923E6582E1869E954A3B34749CAA8 A43C6925F963F03C3CF841F84B652583E7284D727A4A39F2D2ABE12B2884EBEC 690BC8A586B7E20D9D262C3E6ED7BEA1951E9C3596D593B7E9D064FFE88E98BD F070AC5E31A871898E0DDA42FDD6BAD1041BD0C4784063A9BF35252C62877FA0 D7C8EE94DD3AA66A8DEC3000D31C4C9073A38468E85D9A376A3973791B54B8CC 020971AB2A8402D65733945DA1804F1FB054516A57C817F4200CF39DF46C7E32 3EE698DE046A1C487E847FF329639298D8808E3571AA4D561AD77FEE6C26AC4C 89C057ED8563E5295E4AF659968B52AD102C0B566DD259152C1AE2715A7F928E BE33131776C9DBCD38FF2DFFB25034325D4071FA7CBC1C5320BFF4A136FB718E 1E6214E3FE1A0A303767F19B94DE5C1DF55594A5CFABF131C96D8D65C4ED10AD 62200750D34C2599BDD17626300032421EAC1A2A241FDD6743DFB458AF3F5D1F C23F26E0F906B55A6A37519777F62B4417482CFED2AD1D92F81F083AD960DE64 97C3EDBC2C4BD9E34A18FED638CADACE73FDDEFB6F45DC61F30C1EEDB4E2F98E 8EF8567912CDFB919F4481B550CFAD7D70A6873379B2BA9790748966C6C425EA 88553D2BA74FF4E79BEC595633289DAE186B9BEB6C2C67CE36359DE284D3C5F4 996A0FF4C19C6299905021961C27BAA6082EBFBEF918EBF6FE242276FFB7D726 ACE3EF0828B9C72D48D7DA5988574EFCA6D1D8EB252C252222246B838F56FCC3 68BFE7A2897E2B9A6B454A82702678DC0B5166143583B9D4ADFB596550413C96 19D91C1F7F0579982EC079D99E42ACF78940898AC1CF2C0036CDE58063BC2DEA B8B24218F21D06CF0CB896B40F3D62CFF00F2D1B9111F6799C4724A587239068 0F6413B2D8BC4BEDD93FCFE22B83688FB99365F14608055D30A7739219EF724A B839003E4A3916C87CF9EF77E6C2478E991ECD3FEF865943006A114F0E44F0E6 007F59928E228A52134F0977281D54C666F587B3446C392FD1F7C46EC6CF7B9E DADD5016E7DBBECF47992A551B0957BB9FB4F68820B266798E82024CDE02002C B6D74741835942599F23CFAB0E172814606CB9B6A179F04D04A600106EEBFB4C 14C4898D09D9BAAB293535AFD00F2BEA37B5F8B08C21E7273DE099CE90389903 8C9A5E5625B3782111F4B04807831954261196E2C9BF921F1187E997E3CEB0BD 6143BA7217252467F6E2DD08AA2263C2AB30E50EEC29F8033040FF0B0459CA38 104A381CF2437B2E8770187E5F033D5FBE979E9FCFE2F7645628BED611589E2A 29F5DB02267069D901F7AF09328E751F58C45D9CF75AB7BB5D01BF0D87203905 7741DCC1AECE9CC5551934090DD256ED63168C1B4B54499DACEF3159576F0D83 B1B9BB8CE1A252A7402DF16D6F9EBF8B1FA141CA06AC86E3933F2E723F4F5E28 0888F9AA718ECA5706FA43FE6306E926D6D3AF5BC93C4A560090F5F095D749FB 5E7BB7C083C3E85A8DD476A885CC9A1D76201CC848AEDA532796EC85919AD872 618962E62BB02101C344E2CAECCC12769EF1F4D64EA17057FF0BE9CA7B7EC16F E4F0B6A611647AFD96C8445541C22E9CA0291A5A3DB146782E4B5798B9117AA9 7436E4A83DABA97096B954665402D7D93D4DDE10B1AED2A4885AF2CE2CD704B9 2DED9CE4804C7E9CAFA6D9604F8A23F23158D0B2F4662B085E9D1CA7C207AD26 62B22211F8296F408427FB2305016A475A0894F19D204EEA0EF85C5C057CAD2C BD0E275296F06B9714BE5BA1181841FBB5B0D8864EA5D5FE4C5AC6E3A38568DB 6C050808AA48C3ECB59F3134C6825D2E59057BB64E9E193DB2A4441CC5ED9D5F AE2DF16D8B92C1449FB8D9C589A60BF5CFB7F8443703AD68B8B7B291E6E60C8D 6F551DB00C0E5154F1B7156E523D59DDC83672FBEF77D9FF22CD06F6F3C47847 2896C95632D672D90137774F56B12A0641A3CE57C55B6315A7D562485A033DC7 A603CFB0493D759F0A547C98283E2C225531609203AB93FB57D2A73BC2260BEA D0A2737FB4E75F3876B04347093A43DC9CA0E8273CED0F5D644519C52F165100 4D726DB0FBD53E5C5464BF1EC7C1598B695D19A230B99C0BA73871BF73D6AD50 8C018FEFCCDC886EB58CA04F8FB09B38518B9F0ED87C7B71E23D11498758F391 17A0746EAB0E557CD819F1C412E241BCE3231DD1E124A9131D9B845C64003231 D867320B58871DFF4FE31502913EC5128084FEAB2E67902375B9B04CBADD5B05 22A718571BF42A44AD6103651591E9AF8EF71F8B74F2FE3531C5E65ED4CF596A 7A15D63DBCF8BDE1FFD4E78D67D89BFA59AB1DADAA857277CACB0ABAEED34E2D 062D0D01A1FA18DD8EE8C5F318ADAFC9EF1D1BFECBDBA9D71EE514D77025FBAD 76975965F8B514C4AAD795E970535FD58DBDE7949F7C946AA0B0D4120E168F30 9EBE843BBAF293EC8A521E76902E11A5D83B0EA5A5E2D97BD56A043200DA9289 5FABE2CDC96D9B40CC29317EFCB81124EF4BD587616BEB1CA83153F1063C5CF1 5A995B4D13919070A4D17EE1B8451CC19A1DF812F45E5BE7B67E26D00F2D2361 9733E8B629E152ABB1FF43C5DC78D86D97386A124DC75E6F129B556877702B63 8C97D284EA759D6B3F46DC26B2EF0A1C3AD9151199F41E175E2367500E1D5634 DE6A023B20C6EE2B6E6A4310096780195D37394EB773EC9C9EA08A3254E4BE54 5A3CD17F59FE94208DBFE84617E91FAF56D10DF647A11420EC6CD63A0D7ECF18 3CBBB63696C19A0F892AA6AE5EB02858025644ACA537CCC0F2F87B009FC47A74 20123D1E13CC769BACB869AC034456420672AAF01076167D5D889871D2AF7FE5 0C6F379C40F0EEE8D29C67AAC1885C4F89B477981281837831FA18BA009F57A9 5BFE943F9A77973A6FED91ADED1814DD27619D15F52A01D940708BD154EB2BDA FFE9EA508B8B332764B3BBD0FD53E48A627A9792E5B9A794A19640A9A43F9C7F 874D4C43A6B2B21504F4DB42DD9B9EF33D6AA6E0CBEC3DD7A47B397E58673451 6FEEDDC8ED791A2996CCEA5AEC6F4EB4F57C1863D81AAE5319C124476FE9503D F45F89D9D9571177573C4BEC461E461CF1549C42565D62A97BE3A597B79FC2FC F53C0CBBE94B38BA050E0927C01E452060A04CCDDC0C8F7D91132A067E13958D AE7249E602B685111CAA9B9EA86216B61028189CC2F87CC7F4336208709067D6 7280227D51F9981084F5CFD79C64E8443FE80F09E288014895507F96A12F04AD E983D014463EAE0CCE6F31D9FD4F625288C0F1DAE1CBF745BCE6693BBF5D4C71 65518FC4962FEC2917A5572F0CF8EA6FF7B6D98B7469FAC59ADCDFD8E6775699 4BBC7F22A75545157651EB87A6E583E8CDEF616C4EDFF01D6EC69593F000BDDD A03D4C74B16F4D5C53E7CF10A5C9DFD8A3EDCE8937BDFE4385B578FD939AA7DC EAD3AB10397D76A0E04C59A0D579617078D45D1828B1D3902149458E714F7CC4 A647752B2811623FE147E7D50C8C16A5B1306A0122C0EDAC96352AF52ED628F5 199FD993D11E38E74746C5839CD57413DD447ED4AECE0C6B58F9071948E23862 B06457C8791F8FCA072A92FBE7A18399FA7F8AB08414C6DEB62E3E6BBF1BFFBE B6C4C0218C5A17E06ED1FFFD729E0221DCA39EAAAD1D90C4109B5EC71ED8CEF0 DEB23A5EEC31617A6E3E4176B3FEFB5A707C867908BF63B87D810A85359D896C B833DBF3AAE5EBE42FA210262E047D6A75E3B0752495B2DECFC107A741B2BF48 B53DAED1051B1121C60134874BFC0D40A2973FD5126FDD779904BB25BEA70CE0 C62DB565CB78E6BF49B2DEC400703595DFDE4003914885A12E3086C094E8A348 0D2BACE3E2F28D9C43F033AD7CD123576E27E0DBA2A4138390CF76102BC3CE55 15DC700073663BAC395CD0DBD05BEE4E0E8E3E5BA2777A4BCCE4966166A74844 7540253BCC8B50230C71DD87B97FC585C9B567CDCB13676D9B4959614D8B964D 1B1D49B46CE994D92CFB8DCE796FEFDA5F2F03E20657025C6F1526654B46700E 97A670DC12E7FE8A2C063BF4958ADD663D640A9CA1D696806900575D5CC706FA 5875CF2298F25A6271F69D52F9231570573AB8EAA99E76D42B440FD66BC6215A 53746881D00968F75D02874383C72BBECE7EE74D2640F9034DAF83B60A2E4377 5D660E3F558B825D1F001A729980B81E1D6D6062160BA4F34023DF18B1F88822 DD9FA1AE09EF9CE075CA33C20356C3B9FCB039881E406E74F07B3642B573A71A FEEAC8BE94D290EAAD5C9A60A4BFBCB86692DC8CEE820742B10E13807749D4A8 74B8C958845249B6A7607CC59FF525EC23C1DFD26214726D69D1B0BCF683E8DD 3F838B3E8D75D53856B34EF56051748ECFB339424CF63428933DAD5348862639 A2F0C6BC44D09CD0247F2A57FEE1710C4CDA7FB5DB0299E667A5FC2819517535 9A9BF0FC617BB348E02E5F93A1EE14DDB76C596D1178027FB7A3EC83ED0A0DF4 1CFCC1C82082767FE6C8A8FB37EF2CCD90F948DD00CAD8125334C8776824434C 43EA0FC41F29A53131E83D319D80C4010D39B0393EBDA36187DD31490B481DD8 9CD86FECF9A66BF3F84CAE3F343474B7A0C577A235235A690FA6E99129F79BF9 A01C6597CB4C116C81FDC847FE47B7F74E70FF846EEC1059930251B7BE55E08E 72EBA76876593BBD502CEABA3C073481AC6D23D94F951A6E7955DBADA3B3ADCA 5016620A737E34B199F30717FED6698A1E6D5F0F88DD55ACA250ED0F30221FFB 6F5CF50DE198F86FA93FF7E282BA4E3CE2C45DD510404CD6D6AAA7671578A708 8984A38DAB4AD4CBC3B1E315CCEDD0E08ADD15204C2A43FE569EB241A8AEE20C 86897D712F507E8BB8F4BD70C7A7ED46ECB26EDAE125B86ED5E06C14657E850B 449697E41447FB1E6B60F8E401086892619A60DD799026FA794275B57B87BEBB F83B33DF9FC2B19F1073D6E30470E4B7DFCD8DBCA54B54610D632CD64832D80D 09337259A06C186FB414B01F3486E908B93CA01CE54EC0077AFBB58D64655E08 3BF6D925B3955CF3EB446FE8FC341CDA4A9EB0F9C23F1679DF5B4C94A55E93F0 75CA0B7114662B7E799F8449E6DCD7042C501C1E423E2291F2A807051AA3FA44 4A5FB34650C6FC1196D56A24C6699E500090CC419E5E3887C4EB2CD3DF58ECA4 FF621D74F9E4242CB3BEBF2BA7B0D8A06BD9BD2AABFBD22ED22943BF9D0874C8 64DFA6641E97AFFF9C1D39E97B8514CD9FB4C4723FB697BE96CDE0344E9E0CF9 0A3DFCF097E75FC6DF57AEB51D3872EDB88BDE5786647B0E5DBF7F2F10AB34EE E2ED4537A516F92DEAF97C91B72BE23E6D0072DDFAEA7D16A32EBE0FCB675A6F C3717808493F4432E15124F505A65E3FA425E3304F6BAF9D9AE97952B6534810 BBF84FD271216874AF8E662121C2420AD0C1894EE8244BA1F290135264442F6E B0AB86B73247A8D43DF89B2606EE01608F4C0962EA68AF25E6293A645D9BFB58 EFD671235252227472533A79F84FD13FF4013CEB0C403F1B6E6690F239AC533E 204BC03616AF59D2D2D202D185D35A43D0594C675082D377B223C3E06451236D A9D6DCC78B9259BAC0165BDEF4CD8545BCE8E0991478DB08CBD6997808E6D29E 62D3FEA575FDE9B55C84CED2DD93DE6623469E81DD4FC1CB52993C304F7CDF9F 2DD3B3AA3B3CA0B04F4514C0F1AB70CF7BCF3A61F9A65D47CB46A6AE6208812D AB8EFE728F801AA285472828C732487C08EA43925C8AA110AD45A23D6CA4948E 6BBD232DC90609FC71CBF2F78CF90AC43D59D115443901831D13C157DD4F6A1F 080BBCD632A10D4C998C0162EA88DA453AD12D54FD01AD642C248068564B233D 33AB02481D78E47102DBC37398A2E44E35F03A7CC8C8E1429EDE79C2B476965E F6D67CC9668460740BB942F58418D085FBBBD1848CE4AC7A23435C51E6D10BE2 9D92CB4C21CF011ABCE33DE36735201B917BF8A864B3DCADF247BCFFF427AF37 C3E1E989083C7AE3C4E7F5343DACDF8E94041D20C1B58C6FFC1C0B7551BF2719 25B06FF07BE60BB8ED9B0A6020AB862A6CE9E20242BF9AC59BB65E9017878599 AE5D7298267C4CE36E5AC7DFA24E45EB2B523F0A374E9DC8EE23F6D3FBAB637A AB5B4FD0BE08CDF13509C70F69EB554798E22C1C547D05D835B933F830073BE6 31E3A23326B6F2E2BE71987828731AEDF1344167A9108B4C5BF11771ACBF9E6C BF5A82AFFE0746331D04570A23A9B8483EE015B071236C307FA886C28C857EC0 04A62FF93EA4A1A539519F9DE4A1CF436873184438B85979E878AF29E52552E1 B9A91EC60FBA87F77CA41A5B852E22B46FAC2D5C57FAC268C8BA145088CCA9C1 A10ACF8D38205DF016E69A13DDC39C0B211C462EADCB1A356679D89D0132DD86 75A784CAF1C2B3411C34B2BD0BEA983EB227F2B586DC34DFF431AD00645DA551 735086FFF5D09C83C32FE5F998E59D 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMCSC10 %!PS-AdobeFont-1.1: CMCSC10 1.0 %%CreationDate: 1991 Aug 18 17:46:49 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMCSC10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMCSC10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 48 /zero put dup 49 /one put dup 50 /two put dup 54 /six put dup 101 /e put dup 105 /i put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put readonly def /FontBBox{14 -250 1077 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337 900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA 87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98 076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518 9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9 CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30 40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B 7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5 FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC 81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D 5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90 CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A 0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091 22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060 1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98 6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C 146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EF8CBB7F86CDBC4 762D501F8A6DAA2C002FC0657EB29B3F9FBE8EDFF7AD60D7D700B1E8BB4AE9A0 D73B1E91F9549591629ADB330A35802D5D044A38E2AC6DF59B745920DACBF793 F5FEE93D47FEA1DFCED3E17315E18BEC7BCC82421F0954327131409D0FD7949E FF1EF9DEC9DF26C69928899939E868347B53C1D1A5B45495CB7509B8D6DB0FC2 A191553124202EFD040DE8E5C2612D301A91F7408D749E9E0AFCA069109E559D FE5BC73A4290C4430AA04C74B00D0DC54518728CF149427A0159269325708E92 8D764F43071C9CDEC8DFF1EACA97036809131F0280A51E8400F708322B484B3D 1CBFD38E34AB6846528879D68124D71DA455475DF0298C5FAEC9DC070725641E 69A60C14D93BE345DC49ADF9B35B54F0AE7EDCFB7C3F9933172D1272CC76086C 365636280E2674E78D3CFA47EB4DF7DBBFB79EEA02019EE0A81C27033471C470 F436A621AC0664D48F8592E96EB2B76BAE52B8C00BE51170083FBC60335EC0B4 2D1B9A4B4903E28BA6E7D6C08A0A3892072AF6F62EA3D46B79D947970E3E1762 7F714E145BD4AB0A94DA09FC06210B362F3170B936734DBC1637465655D4A7D0 C99413A385CE8829F6C499A366F602E8CF17DEC99A3BC9511B0EAD6D641DE491 3BF76B8B8C815018021CAD7A64672FBC32C10860EBBF5556F77591F05D131BDB 5922782B5297B89DD89705BAFE5B31382CE37C4AD108DDC2ED344F09D1D08B3B 37758E2F4936495811BB0D05ED082A290DBAD2F7690AD0CDE8286FE4BC13176B ACDCD745B562202665A59212BED7557CBDC7ADC7AA2A513C97F80BD9DE1E380E F5F0240FCD0C759F851C19DC98873BA7A09DD167504B3FEE7111629A89DA4AF2 32BDCCAC8F67D39D8534256C88933F5B2E54B0BC51C0EB500C52334E564B3D9C 84231A69C62FEFA868A2ED7F5EAB35D752A7CC5C7AF78872EDE55E5E61EA06B3 9F457366E3DC8864C281411F28ADA155D7A1433B8A68A3C3C66A07B55FE78394 4E3859429FB04F3750B9E05B2AD415D4C1F80B767CC9F54497BC35210721BB88 46840A6759899E102527660B14862932995A33D95B864435A22FD6C9566BFB77 5CFD0901C4F2D810AF5BE82D2A2B7C70A046414C5069CDC9D771576D2FA27C2A AFEFE0D920E44735451B97757CA5EDDEA0EEBC612A19D963628B9B7410EF89CD 2825406759959C7056A07568FF0D36D7AE561EC8FDD4E0923C66C7409860424F CF1895F17E907A96A319299877F8283FF339B3DF242C76EE7C93869E2BA53B8F 838D2782F34B7E27AE419ED9793DA17E9696A38BA20101F7CE561671C436BAAE 3DE130B2449B6A11728D83BE811BFD487B9647C05754D230FA17EDABDEACC441 66603A1D124C39486CC412F5FE9D51BAB5F8D55DFEEAC3509ADA1F7DA71907E6 FDAB1CFBC9A295B675D650111591461AE603E64E28E2AEA8E10DE9520EE65FC9 A39B394BBE7C07D8ED12321CCA1A93F0E2FDE9AE9F5DC8863401965B3D378D23 5B9F4A0B8979000334F35AD6931B641CA1C9F7C3890A9BF42BC51DE94283D8C8 6CFC4F1BBB4DE9707A7C561C27554F7CD561977894E4B5B2C2F58214F8915277 B211BD8BED42430DD8801FB3047881DF2883CFE6624FB2B673919C6FF734D13A 6362745D038E2DD3AFFC46C690C3047A7D38A71CF30F4D8143BF41D57DE0EF24 0A256FEA8DF0CDE5AD9A2C6A9878AF2A088039CE5CFA78440BD426FEECCF6A48 4C1CEA1727E0FDF733649A93D4051E5508592C45D3747705ADB065359F2358FC BA69CE0F30CA1824A8522EDD6C1F725482027FF5516258DCB1F7FE1FDFE9518E A4F3334FA9C4C11A8A91F918FCBD57C32A9A91DCDF4D11A88D831B261CE6BCC2 0D36FE9155CF33D66664EC72EC12E1066715B70BE99E87A862A5139E0F67A9BE B0CD36EC20B221D4F74E8EEDF77AB018220B5561DD58401A0B0EADB877931DC6 E98DC1D88C1B02625D07D04D5AD56555F5A08F41DD7AE3EAAD51FC4D686CADFF E333C4CCF661A31D316A4AF1A689603A18926562C0138DCB9A85F650B9BAEC14 716980C153C6CB8770F26E1E0600D818A7719A62FE89A481676156668C66FD23 7D82414BAE8A2701C3513E0B2C31770B4942106BF3A9E4CFD001BEE6C8ADEF46 6F6EC2FB67A605CC7A90A7D1CA087C4E4A2DBD1417D4FEF9FCB18D7CBE97B0D1 C4E4022AE844E81454631B98D5D9972BE1120807A18507D2C9CB5F1C12A76A54 E7CB28C483BCCD24C8587B1FE74BA23A40CBDE9FF62C4FC97430DDD7C100163E C4375A506316BFFDD8475D4494C3AECE045048D5DA1C77F12649303B0B423347 C5F409976A16581755BC76E2CBE42607A0FE704B8984AF5C2484079464AF25DD 9FB7702F84C067A2BB7A62673DAF8392141B439F1500B1A3CB3B8A2A0498374B E8EC5D6E282507BB38270CD35764C4864B000738FFF043F79A37C88402C31B10 2F6E917A40D22C9073D28AFC8C2BFBC06124B1B3463C791A0FE9CED112F44F9E 42BC3015EBA1643C7A848738257FC3574D184E99254D3933716BD062990EBFFC 2BF1D1D01983240F04B27FC0661A7534F049A8B77A1D686030133A1A7868E370 3C50D621E1C8563F8961F5BAD40ECBBCE63BFCB118458F0D4DC48CEC918115DD 19881111B9D7A94C6C9C8211AAA004CCF7E4FB844EC8CC5B5A9DE3F1FE90473E FCEF3AA0628AF5F7A2FA7AFF3D679F98EBF5E1A7BF413A2E7A8FA28624EDA8CF F608772C1FB490ED10C910F539954F7B1E74218770A7BDB775236BD5E9666D8D 96E28CAF28F3D5EF548F7CC5DF04F1EE709BBAFA3D7BDE0031EE970D03AB3379 91A3EE2090385EA242C4A56141FA6EB884B6C23F74B94986F126EFD86C3C2F69 ABA89CAC68534AE3AAC11922A511E59E90833F4E018433B020D400EA3D465263 29C984FB1DD762CBD2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39139632 55387786 1000 600 600 (ip-cref.dvi) @start /Fa 136[55 38 45 28 34 35 2[42 47 68 21 2[25 42 1[25 38 42 1[38 42 50[25 34[51 11[{}19 83.022 /CMTI10 rf /Fb 136[62 1[62 62 62 62 1[62 62 62 62 62 62 1[62 62 62 62 62 62 62 62 62 97[{}20 119.552 /CMTT12 rf /Fc 131[134 2[71 71 97 71 75 52 53 55 1[75 67 75 112 37 2[37 75 67 1[61 75 60 75 65 39[67 67 67 67 67 67 67 67 67 67 1[37 32[75 13[{}34 119.552 /CMBX12 rf /Fd 134[44 3[44 44 44 44 1[44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 1[44 9[44 44 44 44 1[44 44 44 44 44 2[44 1[44 1[44 44 44 44 44 8[44 1[44 3[44 44 44 1[44 44 3[44 44 40[{}46 83.022 /CMTT10 rf /Fe 152[50 50 86[50 15[{}3 99.6264 /CMSY10 rf /Ff 138[74 74 74 74 1[74 74 74 74 74 74 1[74 74 74 74 74 74 74 74 74 97[{}19 143.462 /CMTT12 rf /Fg 141[38 2[49 54 81 6[30 43 54 43 1[49 14[72 1[66 6[35 5[70 67[{}13 99.6264 /CMSL12 rf /Fh 201[0 40[83 13[{}2 83.022 /CMSY10 rf /Fi 129[42 3[37 44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 4[42 2[62 1[85 1[62 60 46 61 1[57 65 62 76 52 65 1[30 62 1[54 57 63 60 59 62 1[39 1[65 2[23 42 42 42 42 1[42 42 42 42 42 42 23 28 23 2[32 32 23 4[42 19[69 46 46 48 11[{}72 83.022 /CMR10 rf /Fj 131[112 56 1[59 59 81 59 62 44 44 46 1[62 56 62 93 31 59 34 31 62 56 34 51 62 50 62 54 9[116 1[86 78 62 84 1[77 84 88 106 3[42 88 2[74 86 81 80 85 6[31 56 56 56 56 56 56 56 56 56 56 56 31 1[31 2[44 44 27[62 12[{}59 99.6264 /CMBX12 rf /Fk 129[51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 1[51 51 51 51 51 51 51 51 1[51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 33[{}92 99.6264 /CMTT12 rf /Fl 134[47 45 65 45 52 32 40 41 45 50 50 55 80 25 45 1[30 50 45 30 45 50 45 45 50 14[71 3[72 87 3[38 28[30 30[57 55 12[{}31 99.6264 /CMTI12 rf /Fm 133[52 62 62 1[62 65 46 46 3[59 65 1[33 6[52 22[88 2[91 9[88 18[33 46[{}15 119.552 /CMR12 rf /Fn 131[161 2[85 85 117 85 90 63 64 66 1[90 81 90 134 45 85 1[45 90 81 49 74 90 72 90 78 12[112 90 120 1[110 1[126 4[60 3[106 124 117 115 122 6[45 81 81 81 81 81 81 81 81 81 81 81 45 54 45 31[90 12[{}51 143.462 /CMBX12 rf /Fo 131[98 49 43 51 51 70 51 54 38 38 38 51 54 49 54 81 27 51 30 27 54 49 30 43 54 43 54 49 3[27 49 27 3[100 73 73 70 54 72 76 66 76 73 89 61 76 50 35 73 77 64 66 75 70 69 73 1[46 1[76 1[27 27 49 49 49 49 49 49 49 49 49 49 49 27 33 27 76 1[38 38 27 76 1[49 81 49 27 18[81 54 54 57 11[{}85 99.6264 /CMR12 rf /Fp 138[61 59 46 60 1[56 63 5[30 3[56 46[55 3[55 55 55 2[38 45[{}13 99.6264 /CMCSC10 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654 b Fo(1)1105 631 y Fn(IP)54 b(Command)g(Reference.)1434 799 y Fm(Alexey)38 b(N.)h(Kuznetso)m(v)1137 919 y Fl(Institute)c(for)g (Nucle)-5 b(ar)35 b(R)-5 b(ese)g(ar)g(ch,)34 b(Mosc)-5 b(ow)1462 1040 y Fk(kuznet@ms2.inr.ac.ru)1672 1160 y Fo(April)33 b(14,)f(1999)174 1651 y Fn(Con)l(ten)l(ts)174 1870 y Fj(1)91 b(Ab)s(out)37 b(this)g(do)s(cumen)m(t)2350 b(3)174 2088 y(2)91 b Fk(ip)38 b Fj(|)f(command)i(syn)m(tax)2280 b(3)174 2306 y(3)91 b Fk(ip)38 b Fj(|)f(error)g(messages)2389 b(5)174 2524 y(4)91 b Fk(ip)51 b(link)39 b Fj(|)e(net)m(w)m(ork)g (device)h(con\014guration)1439 b(6)321 2644 y Fo(4.1)99 b Fk(ip)52 b(link)g(set)33 b Fo(|)g(c)m(hange)g(device)h(attributes)47 b(.)j(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)193 b(6)321 2765 y(4.2)99 b Fk(ip)52 b(link)g(show)34 b Fo(|)e(displa)m(y)i (device)g(attributes)64 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)f(.)h(.)193 b(7)174 2983 y Fj(5)91 b Fk(ip)51 b(address)40 b Fj(|)d(proto)s(col)g(address)i(managemen)m(t)1182 b(11)321 3103 y Fo(5.1)99 b Fk(ip)52 b(address)h(add)33 b Fo(|)f(add)h(a)f(new)i(proto)s(col)e(address)67 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(12)321 3223 y(5.2)99 b Fk(ip)52 b(address)h(delete)34 b Fo(|)e(delete)i(a)e (proto)s(col)g(address)99 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)144 b(13)321 3344 y(5.3)99 b Fk(ip)52 b(address)h(show)34 b Fo(|)e(displa)m(y)i(proto)s(col)e(addresses)75 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(13)321 3464 y(5.4)99 b Fk(ip)52 b(address)h(flush)34 b Fo(|)e(\015ush)h(proto) s(col)g(addresses)44 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f (.)h(.)144 b(15)174 3682 y Fj(6)91 b Fk(ip)51 b(neighbour)40 b Fj(|)e(neigh)m(b)s(our/arp)h(tables)f(managemen)m(t)853 b(16)321 3802 y Fo(6.1)99 b Fk(ip)52 b(neighbour)h(add)34 b Fo(|)e(add)h(a)f(new)h(neigh)m(b)s(our)h(en)m(try)545 3923 y Fk(ip)52 b(neighbour)h(change)35 b Fo(|)d(c)m(hange)h(an)g (existing)h(en)m(try)545 4043 y Fk(ip)52 b(neighbour)h(replace)35 b Fo(|)d(add)h(a)f(new)h(en)m(try)h(or)e(c)m(hange)i(an)e(existing)i (one)134 b(16)321 4163 y(6.2)99 b Fk(ip)52 b(neighbour)h(delete)35 b Fo(|)d(delete)h(a)g(neigh)m(b)s(our)g(en)m(try)93 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(17)321 4284 y(6.3)99 b Fk(ip)52 b(neighbour)h(show)34 b Fo(|)e(list)h(neigh)m(b)s (our)h(en)m(tries)d(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f (.)h(.)144 b(18)321 4404 y(6.4)99 b Fk(ip)52 b(neighbour)h(flush)34 b Fo(|)e(\015ush)i(neigh)m(b)s(our)f(en)m(tries)63 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(20)174 4622 y Fj(7)91 b Fk(ip)51 b(route)39 b Fj(|)f(routing)f(table)h (managemen)m(t)1453 b(21)321 4743 y Fo(7.1)99 b Fk(ip)52 b(route)g(add)34 b Fo(|)e(add)g(a)h(new)g(route)545 4863 y Fk(ip)52 b(route)g(change)35 b Fo(|)d(c)m(hange)h(a)f(route)545 4983 y Fk(ip)52 b(route)g(replace)35 b Fo(|)d(c)m(hange)h(a)g(route)f (or)h(add)f(a)h(new)g(one)45 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(23)321 5104 y(7.2)99 b Fk(ip)52 b(route)g(delete)35 b Fo(|)d(delete)h(a)g(route)60 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(27)321 5224 y(7.3)99 b Fk(ip)52 b(route)g(show)34 b Fo(|)e(list)h(routes)94 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)f(.)h(.)144 b(27)321 5344 y(7.4)99 b Fk(ip)52 b(route)g(flush)34 b Fo(|)e(\015ush)i(routing)e(tables)27 b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) 144 b(31)321 5465 y(7.5)99 b Fk(ip)52 b(route)g(get)34 b Fo(|)e(get)g(a)h(single)g(route)62 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(32)p 174 5540 1440 4 v 324 5631 a Fi(Cop)n(yrigh)n(t)737 5628 y(c)714 5631 y Fh(\015)27 b Fi(1999)f(A.N.Kuznetso)n(v)p eop end %%Page: 2 2 TeXDict begin 2 1 bop 174 324 a Fo(2)2535 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(8)91 b Fk(ip)51 b(rule)39 b Fj(|)e(routing)h(p)s(olicy)g(database)h(managemen)m(t)990 b(35)321 751 y Fo(8.1)99 b Fk(ip)52 b(rule)g(add)33 b Fo(|)g(insert)g(a)f(new)i(rule)545 872 y Fk(ip)52 b(rule)g(delete)34 b Fo(|)e(delete)i(a)e(rule)95 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(37)321 992 y(8.2)99 b Fk(ip)52 b(rule)g(show)34 b Fo(|)e(list)h(rules)51 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(39)174 1210 y Fj(9)91 b Fk(ip)51 b(maddress)40 b Fj(|)d(m)m(ulticast)h(addresses)h(managemen) m(t)989 b(40)321 1330 y Fo(9.1)99 b Fk(ip)52 b(maddress)h(show)34 b Fo(|)e(list)h(m)m(ulticast)h(addresses)71 b(.)50 b(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(40)321 1451 y(9.2)99 b Fk(ip)52 b(maddress)h(add)34 b Fo(|)e(add)g(a)h(m)m(ulticast)h (address)545 1571 y Fk(ip)52 b(maddress)h(delete)34 b Fo(|)e(delete)i(a)f(m)m(ulticast)g(address)81 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(40)174 1789 y Fj(10)35 b Fk(ip)51 b(mroute)39 b Fj(|)f(m)m(ulticast)g(routing)f (cac)m(he)h(managemen)m(t)892 b(41)321 1910 y Fo(10.1)50 b Fk(ip)i(mroute)h(show)33 b Fo(|)f(list)h(mroute)g(cac)m(he)h(en)m (tries)42 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) 144 b(41)174 2127 y Fj(11)35 b Fk(ip)51 b(tunnel)39 b Fj(|)f(tunnel)g(con\014guration)1702 b(42)321 2248 y Fo(11.1)50 b Fk(ip)i(tunnel)h(add)33 b Fo(|)f(add)h(a)f(new)i(tunnel) 545 2368 y Fk(ip)52 b(tunnel)h(change)34 b Fo(|)e(c)m(hange)h(an)g (existing)h(tunnel)545 2489 y Fk(ip)52 b(tunnel)h(delete)34 b Fo(|)e(destro)m(y)i(a)e(tunnel)55 b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(43)321 2609 y(11.2)50 b Fk(ip)i(tunnel)h(show)33 b Fo(|)f(list)h(tunnels)72 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)f(.)h(.)144 b(44)174 2827 y Fj(12)35 b Fk(ip)51 b(monitor)40 b Fj(and)e Fk(rtmon)h Fj(|)e(state)h(monitoring)1320 b(45)174 3045 y(13)35 b(Route)i(realms)h(and)h(p)s(olicy)f (propagation,)g Fk(rtacct)1145 b Fj(46)174 3263 y(References)2964 b(48)174 3481 y(App)s(endix)3011 b(48)174 3699 y(A)62 b(Source)37 b(address)i(selection)2155 b(48)174 3917 y(B)67 b(Pro)m(xy)37 b(ARP/NDISC)2349 b(49)174 4134 y(C)66 b(Route)37 b(NA)-9 b(T)36 b(status)2437 b(50)174 4352 y(D)61 b(Example:)51 b(minimal)39 b(host)f(setup)1894 b(52)174 4570 y(E)73 b(Example:)51 b Fk(ifcfg)38 b Fj(|)g(in)m(terface) g(address)g(managemen)m(t)916 b(55)p eop end %%Page: 3 3 TeXDict begin 3 2 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654 b Fo(3)174 631 y Fn(1)161 b(Ab)t(out)53 b(this)g(do)t(cumen)l(t)174 852 y Fo(This)23 b(do)s(cumen)m(t)g(presen)m(ts)h(a)e(comprehensiv)m(e) j(description)e(of)e(the)h Fk(ip)h Fo(utilit)m(y)f(from)g(the)g Fk(iproute2)174 972 y Fo(pac)m(k)-5 b(age.)46 b(It)33 b(is)g(not)g(a)g(tutorial)f(or)h(user's)h(guide.)46 b(It)33 b(is)g(a)g Fl(dictionary)9 b Fo(,)32 b(not)h(explaining)h(terms,)174 1093 y(but)42 b(translating)f(them)g(in)m(to)h(other)f(terms,)j(whic)m (h)e(ma)m(y)g(also)f(b)s(e)g(unkno)m(wn)i(to)d(the)i(reader.)174 1213 y(Ho)m(w)m(ev)m(er,)c(the)e(do)s(cumen)m(t)g(is)f(self-con)m (tained)i(and)e(the)g(reader,)h(pro)m(vided)h(they)e(ha)m(v)m(e)i(a)d (basic)174 1333 y(net)m(w)m(orking)45 b(bac)m(kground,)i(will)c(\014nd) h(enough)f(information)g(and)g(examples)h(to)f(understand)174 1454 y(and)33 b(con\014gure)g(Lin)m(ux-2.2)g(IP)g(and)g(IPv6)g(net)m(w) m(orking.)321 1575 y(This)45 b(do)s(cumen)m(t)g(is)g(split)f(in)m(to)g (sections)i(explaining)f Fk(ip)g Fo(commands)g(and)f(options,)j(de-)174 1695 y(crypting)36 b Fk(ip)g Fo(output)f(and)g(con)m(taining)h(a)f(few) h(examples.)53 b(More)35 b(v)m(oluminous)i(examples)g(and)174 1816 y(some)d(topics,)f(whic)m(h)h(require)g(more)f(elab)s(orate)f (discussion,)j(are)e(in)g(the)g(app)s(endix.)321 1937 y(The)h(paragraphs)f(b)s(eginning)h(with)g(NB)f(con)m(tain)h(side)h (notes,)f(w)m(arnings)g(ab)s(out)f(bugs)h(and)174 2057 y(design)g(dra)m(wbac)m(ks.)46 b(They)34 b(ma)m(y)f(b)s(e)g(skipp)s(ed) h(at)e(the)h(\014rst)g(reading.)174 2396 y Fn(2)161 b Ff(ip)54 b Fn(|)g(command)g(syn)l(tax)174 2617 y Fo(The)34 b(generic)f(form)g(of)f(an)g Fk(ip)h Fo(command)h(is:)174 2825 y Fk(ip)52 b([)g(OPTIONS)h(])e(OBJECT)i([)f(COMMAND)h([)e (ARGUMENTS)j(]])174 3033 y Fo(where)41 b Fk(OPTIONS)g Fo(is)f(a)f(set)h(of)f(optional)g(mo)s(di\014ers)h(a\013ecting)g(the)g (general)g(b)s(eha)m(viour)g(of)f(the)174 3154 y Fk(ip)34 b Fo(utilit)m(y)h(or)e(c)m(hanging)h(its)g(output.)47 b(All)33 b(options)h(b)s(egin)g(with)g(the)g(c)m(haracter)h Fk('-')f Fo(and)g(ma)m(y)174 3274 y(b)s(e)45 b(used)g(in)g(either)g (long)f(or)g(abbreviated)i(forms.)79 b(Curren)m(tly)-8 b(,)49 b(the)c(follo)m(wing)g(options)f(are)174 3394 y(a)m(v)-5 b(ailable:)320 3629 y Fe(\017)48 b Fk(-V)p Fo(,)33 b Fk(-Version)418 3793 y Fo(|)f(prin)m(t)h(the)g(v)m(ersion)i (of)d(the)h Fk(ip)g Fo(utilit)m(y)g(and)g(exit.)320 4001 y Fe(\017)48 b Fk(-s)p Fo(,)33 b Fk(-stats)p Fo(,)i Fk(-statistics)418 4165 y Fo(|)g(output)g(more)g(information.)50 b(If)35 b(the)h(option)e(app)s(ears)i(t)m(wice)g(or)f(more,)h(the)f(amoun)m(t) 418 4285 y(of)i(information)g(increases.)60 b(As)38 b(a)f(rule,)i(the)f (information)f(is)h(statistics)h(or)e(some)h(time)418 4406 y(v)-5 b(alues.)320 4614 y Fe(\017)48 b Fk(-f)p Fo(,)33 b Fk(-family)i Fo(follo)m(w)m(ed)e(b)m(y)h(a)e(proto)s(col)g (family)h(iden)m(ti\014er:)45 b Fk(inet)p Fo(,)34 b Fk(inet6)g Fo(or)e Fk(link)p Fo(.)418 4778 y(|)g(enforce)h(the)f(proto)s(col)g (family)h(to)e(use.)45 b(If)32 b(the)g(option)h(is)f(not)g(presen)m(t,) i(the)f(proto)s(col)418 4898 y(family)k(is)g(guessed)h(from)e(other)h (argumen)m(ts.)56 b(If)37 b(the)g(rest)g(of)f(the)g(command)i(line)f (do)s(es)418 5019 y(not)k(giv)m(e)h(enough)f(information)f(to)h(guess)h (the)f(family)-8 b(,)43 b Fk(ip)f Fo(falls)f(bac)m(k)g(to)g(the)g (default)418 5139 y(one,)f(usually)g Fk(inet)g Fo(or)e Fk(any)p Fo(.)61 b Fk(link)40 b Fo(is)f(a)f(sp)s(ecial)h(family)g(iden) m(ti\014er)h(meaning)f(that)f(no)418 5259 y(net)m(w)m(orking)d(proto)s (col)d(is)h(in)m(v)m(olv)m(ed.)320 5467 y Fe(\017)48 b Fk(-4)418 5631 y Fo(|)32 b(shortcut)i(for)e Fk(-family)53 b(inet)p Fo(.)p eop end %%Page: 4 4 TeXDict begin 4 3 bop 174 324 a Fo(4)2535 b Fg(IP)33 b(Command)h(Reference)320 631 y Fe(\017)48 b Fk(-6)418 792 y Fo(|)32 b(shortcut)i(for)e Fk(-family)53 b(inet6)p Fo(.)320 994 y Fe(\017)48 b Fk(-0)418 1155 y Fo(|)32 b(shortcut)i(for)e Fk(-family)53 b(link)p Fo(.)320 1356 y Fe(\017)48 b Fk(-o)p Fo(,)33 b Fk(-oneline)418 1517 y Fo(|)d(output)g(eac)m(h)h(record)f(on)g(a)f(single)i(line,)g (replacing)g(line)g(feeds)g(with)f(the)h Fk('\\')f Fo(c)m(harac-)418 1638 y(ter.)44 b(This)33 b(is)g(con)m(v)m(enien)m(t)h(when)g(y)m(ou)e (w)m(an)m(t)h(to)f(coun)m(t)h(records)g(with)g Fk(wc)f Fo(or)g(to)g Fk(grep)h Fo(the)418 1758 y(output.)44 b(The)33 b(trivial)g(script)h Fk(rtpr)f Fo(con)m(v)m(erts)i(the)e(output)g(bac)m (k)g(in)m(to)g(readable)g(form.)320 1960 y Fe(\017)48 b Fk(-r)p Fo(,)33 b Fk(-resolve)418 2121 y Fo(|)25 b(use)h(the)g (system's)i(name)d(resolv)m(er)i(to)e(prin)m(t)h(DNS)f(names)h(instead) h(of)d(host)i(addresses.)654 2285 y Fi(NB.)56 b(Do)28 b(not)f(use)h(this)f(option)h(when)g(rep)r(orting)e(bugs)h(or)g(asking) f(for)h(advice.)654 2472 y(NB.)56 b Fd(ip)27 b Fi(nev)n(er)f(uses)i (DNS)g(to)g(resolv)n(e)d(names)j(to)f(addresses.)321 2694 y Fk(OBJECT)41 b Fo(is)f(the)g(ob)5 b(ject)41 b(to)e(manage)h(or)f (to)h(get)g(information)f(ab)s(out.)65 b(The)40 b(ob)5 b(ject)41 b(t)m(yp)s(es)174 2814 y(curren)m(tly)35 b(understo)s(o)s(d)e (b)m(y)g Fk(ip)g Fo(are:)320 3035 y Fe(\017)48 b Fk(link)34 b Fo(|)e(net)m(w)m(ork)i(device)320 3237 y Fe(\017)48 b Fk(address)35 b Fo(|)d(proto)s(col)g(\(IP)h(or)f(IPv6\))h(address)h (on)f(a)f(device)320 3439 y Fe(\017)48 b Fk(neighbour)35 b Fo(|)d(ARP)h(or)f(NDISC)h(cac)m(he)h(en)m(try)320 3640 y Fe(\017)48 b Fk(route)34 b Fo(|)e(routing)h(table)f(en)m(try)320 3842 y Fe(\017)48 b Fk(rule)34 b Fo(|)e(rule)h(in)g(routing)f(p)s (olicy)h(database)320 4044 y Fe(\017)48 b Fk(maddress)35 b Fo(|)d(m)m(ulticast)i(address)320 4245 y Fe(\017)48 b Fk(mroute)34 b Fo(|)e(m)m(ulticast)i(routing)f(cac)m(he)h(en)m(try) 320 4447 y Fe(\017)48 b Fk(tunnel)34 b Fo(|)e(tunnel)i(o)m(v)m(er)g(IP) 321 4668 y(Again,)40 b(the)f(names)g(of)g(all)f(ob)5 b(jects)40 b(ma)m(y)f(b)s(e)g(written)g(in)g(full)g(or)f(abbreviated)i (form,)g(f.e.)174 4789 y Fk(address)35 b Fo(is)e(abbreviated)h(as)e Fk(addr)i Fo(or)e(just)h Fk(a)p Fo(.)321 4909 y Fk(COMMAND)f Fo(sp)s(eci\014es)g(the)e(action)h(to)e(p)s(erform)i(on)f(the)g(ob)5 b(ject.)44 b(The)31 b(set)g(of)e(p)s(ossible)j(actions)174 5029 y(dep)s(ends)42 b(on)d(the)h(ob)5 b(ject)41 b(t)m(yp)s(e.)66 b(As)40 b(a)f(rule,)j(it)e(is)g(p)s(ossible)h(to)f Fk(add)p Fo(,)i Fk(delete)f Fo(and)f Fk(show)h Fo(\(or)174 5150 y Fk(list)p Fo(\))h(ob)5 b(jects,)44 b(but)e(some)f(ob)5 b(jects)42 b(do)f(not)g(allo)m(w)g(all)g(of)g(these)h(op)s(erations)f (or)f(ha)m(v)m(e)i(some)174 5270 y(additional)31 b(commands.)44 b(The)31 b Fk(help)g Fo(command)g(is)g(a)m(v)-5 b(ailable)31 b(for)f(all)g(ob)5 b(jects.)44 b(It)30 b(prin)m(ts)h(out)g(a)174 5391 y(list)i(of)g(a)m(v)-5 b(ailable)33 b(commands)g(and)g(argumen)m (t)g(syn)m(tax)i(con)m(v)m(en)m(tions.)321 5511 y(If)29 b(no)f(command)i(is)g(giv)m(en,)h(some)e(default)h(command)f(is)h (assumed.)44 b(Usually)30 b(it)f(is)h Fk(list)g Fo(or,)174 5631 y(if)j(the)g(ob)5 b(jects)34 b(of)e(this)h(class)h(cannot)e(b)s(e) h(listed,)h Fk(help)p Fo(.)p eop end %%Page: 5 5 TeXDict begin 5 4 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654 b Fo(5)321 631 y Fk(ARGUMENTS)45 b Fo(is)e(a)g(list)g(of)g(argumen)m (ts)h(to)f(the)g(command.)75 b(The)44 b(argumen)m(ts)g(dep)s(end)g(on) 174 751 y(the)39 b(command)f(and)g(ob)5 b(ject.)60 b(There)39 b(are)e(t)m(w)m(o)i(t)m(yp)s(es)g(of)e(argumen)m(ts:)55 b Fl(\015ags)8 b Fo(,)39 b(consisting)g(of)f(a)174 872 y(single)44 b(k)m(eyw)m(ord,)j(and)42 b Fl(p)-5 b(ar)g(ameters)8 b Fo(,)45 b(consisting)e(of)f(a)g(k)m(eyw)m(ord)j(follo)m(w)m(ed)e(b)m (y)h(a)e(v)-5 b(alue.)73 b(F)-8 b(or)174 992 y(con)m(v)m(enience,)35 b(eac)m(h)d(command)g(has)g(some)g Fl(default)h(p)-5 b(ar)g(ameter)42 b Fo(whic)m(h)32 b(ma)m(y)g(b)s(e)g(omitted.)43 b(F.e.)174 1112 y(parameter)24 b Fk(dev)h Fo(is)f(the)g(default)g(for)f (the)h Fk(ip)52 b(link)24 b Fo(command,)j(so)d Fk(ip)51 b(link)i(ls)e(eth0)25 b Fo(is)f(equiv-)174 1233 y(alen)m(t)k(to)f Fk(ip)52 b(link)g(ls)g(dev)g(eth0)p Fo(.)43 b(In)27 b(the)h(command)g (descriptions)h(b)s(elo)m(w)f(suc)m(h)g(parameters)174 1353 y(are)33 b(distinguished)i(with)e(the)g(mark)m(er:)44 b(\\\(default\)".)321 1474 y(Almost)29 b(all)f(k)m(eyw)m(ords)k(ma)m(y) d(b)s(e)g(abbreviated)h(with)f(sev)m(eral)h(\014rst)f(\(or)f(ev)m(en)j (single\))e(letters.)174 1594 y(The)35 b(shortcuts)h(are)e(con)m(v)m (enien)m(t)j(when)e Fk(ip)g Fo(is)g(used)g(in)m(teractiv)m(ely)-8 b(,)37 b(but)e(they)g(are)f(not)g(recom-)174 1714 y(mended)k(in)f (scripts)g(or)f(when)h(rep)s(orting)f(bugs)h(or)f(asking)h(for)f (advice.)55 b(\\O\016cially")37 b(allo)m(w)m(ed)174 1835 y(abbreviations)d(are)f(listed)g(in)g(the)g(do)s(cumen)m(t)h(b)s(o)s (dy)-8 b(.)174 2166 y Fn(3)161 b Ff(ip)54 b Fn(|)g(error)f(messages)174 2385 y Fk(ip)33 b Fo(ma)m(y)h(fail)e(for)g(one)h(of)f(the)h(follo)m (wing)g(reasons:)320 2601 y Fe(\017)48 b Fo(A)29 b(syn)m(tax)i(error)e (on)g(the)g(command)h(line:)42 b(an)29 b(unkno)m(wn)i(k)m(eyw)m(ord,)h (incorrectly)e(format-)418 2721 y(ted)38 b(IP)h(address)g Fl(et)h(al)10 b Fo(.)59 b(In)38 b(this)h(case)g Fk(ip)f Fo(prin)m(ts)h(an)f(error)f(message)j(and)e(exits.)60 b(As)39 b(a)418 2841 y(rule,)29 b(the)e(error)g(message)h(will)g(con)m (tain)f(information)g(ab)s(out)f(the)h(reason)g(for)g(the)g(failure.) 418 2962 y(Sometimes)35 b(it)d(also)h(prin)m(ts)g(a)g(help)g(page.)320 3162 y Fe(\017)48 b Fo(The)34 b(argumen)m(ts)f(did)g(not)g(pass)g(v)m (eri\014cation)h(for)e(self-consistency)-8 b(.)320 3362 y Fe(\017)48 b Fk(ip)26 b Fo(failed)g(to)g(compile)g(a)g(k)m(ernel)h (request)h(from)d(the)h(argumen)m(ts)h(b)s(ecause)g(the)f(user)h (didn't)418 3483 y(giv)m(e)34 b(enough)f(information.)320 3683 y Fe(\017)48 b Fo(The)39 b(k)m(ernel)g(returned)g(an)f(error)f(to) h(some)g(syscall.)61 b(In)38 b(this)h(case)f Fk(ip)g Fo(prin)m(ts)h(the)f(error)418 3803 y(message,)30 b(as)e(it)f(is)h (output)g(with)g Fk(perror\(3\))p Fo(,)j(pre\014xed)e(with)f(a)f (commen)m(t)i(and)e(a)h(syscall)418 3924 y(iden)m(ti\014er.)320 4124 y Fe(\017)48 b Fo(The)42 b(k)m(ernel)g(returned)g(an)f(error)g(to) f(some)i(R)-8 b(TNETLINK)42 b(request.)70 b(In)41 b(this)g(case)h Fk(ip)418 4244 y Fo(prin)m(ts)h(the)e(error)h(message,)j(as)c(it)h(is)g (output)f(with)h Fk(perror\(3\))i Fo(pre\014xed)f(with)f(\\R)-8 b(T-)418 4364 y(NETLINK)34 b(answ)m(ers:".)321 4580 y(All)24 b(the)h(op)s(erations)g(are)f(atomic,)j(i.e.)e(if)f(the)h Fk(ip)g Fo(utilit)m(y)g(fails,)i(it)d(do)s(es)h(not)f(c)m(hange)h(an)m (ything)174 4700 y(in)34 b(the)g(system.)49 b(One)34 b(harmful)g(exception)h(is)f Fk(ip)52 b(link)34 b Fo(command)h (\(Sec.4,)f(p.6\),)g(whic)m(h)i(ma)m(y)174 4821 y(c)m(hange)e(only)f (some)g(of)f(the)h(device)i(parameters)e(giv)m(en)h(on)e(command)i (line.)321 4941 y(It)f(is)g(di\016cult)h(to)f(list)g(all)g(the)g(error) g(messages)i(\(esp)s(ecially)f(syn)m(tax)h(errors\).)45 b(Ho)m(w)m(ev)m(er,)35 b(as)174 5062 y(a)e(rule,)g(their)g(meaning)g (is)g(clear)g(from)g(the)g(con)m(text)g(of)f(the)h(command.)321 5182 y(The)g(most)g(common)g(mistak)m(es)i(are:)294 5398 y(1.)48 b(Netlink)34 b(is)f(not)g(con\014gured)g(in)g(the)g(k)m(ernel.) 45 b(The)34 b(message)g(is:)418 5631 y Fk(Cannot)53 b(open)f(netlink)i (socket:)f(Invalid)g(value)p eop end %%Page: 6 6 TeXDict begin 6 5 bop 174 324 a Fo(6)2535 b Fg(IP)33 b(Command)h(Reference)294 631 y Fo(2.)48 b(R)-8 b(TNETLINK)36 b(is)f(not)f(con\014gured)i(in)e(the)h(k)m(ernel.)51 b(In)35 b(this)g(case)g(one)g(of)f(the)h(follo)m(wing)418 751 y(messages)g(ma)m(y)e(b)s(e)g(prin)m(ted,)h(dep)s(ending)f(on)g (the)g(command:)418 1010 y Fk(Cannot)53 b(talk)f(to)g(rtnetlink:)i (Connection)g(refused)418 1131 y(Cannot)f(send)f(dump)h(request:)g (Connection)h(refused)294 1389 y Fo(3.)48 b(The)e Fk (CONFIG_IP_MULTIPLE_TABLE)q(S)51 b Fo(option)45 b(w)m(as)h(not)f (selected)i(when)f(con\014guring)418 1510 y(the)33 b(k)m(ernel.)45 b(In)33 b(this)h(case)f(an)m(y)g(attempt)g(to)f(use)i(the)f Fk(ip)g(rule)h Fo(command)f(will)g(fail,)g(f.e.)418 1769 y Fk(kuznet@kaiser)55 b($)c(ip)h(rule)h(list)418 1889 y(RTNETLINK)h(error:)f(Invalid)g(argument)418 2009 y(dump)g(terminated) 174 2355 y Fn(4)161 b Ff(ip)74 b(link)53 b Fn(|)h(net)l(w)l(ork)d (device)i(con\014guration)174 2579 y Fj(Ob)6 b(ject:)98 b Fo(A)33 b Fk(link)g Fo(is)g(a)e(net)m(w)m(ork)j(device)g(and)e(the)h (corresp)s(onding)g(commands)g(displa)m(y)h(and)174 2699 y(c)m(hange)g(the)f(state)g(of)f(devices.)174 2972 y Fj(Commands:)105 b Fk(set)33 b Fo(and)g Fk(show)h Fo(\(or)e Fk(list)p Fo(\).)174 3274 y Fc(4.1)136 b Fb(ip)60 b(link)g(set)43 b Fc(|)j(c)l(hange)f(device)g(attributes)174 3463 y Fj(Abbreviations:) 104 b Fk(set)p Fo(,)34 b Fk(s)p Fo(.)174 3736 y Fj(Argumen)m(ts:)320 3951 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418 4118 y(|)e Fk(NAME)i Fo(sp)s(eci\014es)h(the)e(net)m(w)m(ork)h(device)g (on)f(whic)m(h)h(to)e(op)s(erate.)320 4332 y Fe(\017)48 b Fk(up)33 b Fo(and)g Fk(down)418 4499 y Fo(|)f(c)m(hange)i(the)f (state)g(of)f(the)h(device)h(to)e Fk(UP)h Fo(or)g Fk(DOWN)p Fo(.)320 4713 y Fe(\017)48 b Fk(arp)k(on)33 b Fo(or)g Fk(arp)52 b(off)418 4881 y Fo(|)32 b(c)m(hange)i(the)f Fk(NOARP)h Fo(\015ag)e(on)g(the)h(device.)654 5051 y Fi(NB.)73 b(This)35 b(op)r(eration)g(is)h Fa(not)h(al)t(lowe)l(d)47 b Fi(if)36 b(the)g(device)g(is)g(in)g(state)g Fd(UP)p Fi(.)f(Though)g(neither)h(the)654 5150 y Fd(ip)d Fi(utilit)n(y)i(nor)e (the)h(k)n(ernel)f(c)n(hec)n(k)f(for)i(this)g(condition.)55 b(Y)-7 b(ou)34 b(can)f(get)g(unpredictable)h(results)654 5250 y(c)n(hanging)27 b(this)h(\015ag)e(while)i(the)g(device)g(is)f (running.)320 5464 y Fe(\017)48 b Fk(multicast)54 b(on)33 b Fo(or)f Fk(multicast)54 b(off)418 5631 y Fo(|)32 b(c)m(hange)i(the)f Fk(MULTICAST)i Fo(\015ag)d(on)g(the)h(device.)p eop end %%Page: 7 7 TeXDict begin 7 6 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654 b Fo(7)320 631 y Fe(\017)48 b Fk(dynamic)53 b(on)33 b Fo(or)g Fk(dynamic)53 b(off)418 792 y Fo(|)32 b(c)m(hange)i(the)f Fk(DYNAMIC)h Fo(\015ag)e(on)h(the)g(device.)320 994 y Fe(\017)48 b Fk(name)53 b(NAME)418 1155 y Fo(|)38 b(c)m(hange)i(the)f (name)g(of)f(the)h(device.)63 b(This)40 b(op)s(eration)e(is)h(not)g (recommended)h(if)f(the)418 1275 y(device)c(is)e(running)g(or)f(has)h (some)g(addresses)i(already)e(con\014gured.)320 1477 y Fe(\017)48 b Fk(txqueuelen)54 b(NUMBER)34 b Fo(or)e Fk(txqlen)53 b(NUMBER)418 1638 y Fo(|)32 b(c)m(hange)i(the)f(transmit)g (queue)h(length)f(of)f(the)h(device.)320 1840 y Fe(\017)48 b Fk(mtu)k(NUMBER)418 2001 y Fo(|)32 b(c)m(hange)i(the)f(MTU)g(of)f (the)h(device.)320 2202 y Fe(\017)48 b Fk(address)53 b(LLADDRESS)418 2363 y Fo(|)32 b(c)m(hange)i(the)f(station)f(address)i (of)e(the)h(in)m(terface.)320 2565 y Fe(\017)48 b Fk(broadcast)54 b(LLADDRESS)p Fo(,)35 b Fk(brd)52 b(LLADDRESS)35 b Fo(or)d Fk(peer)52 b(LLADDRESS)418 2726 y Fo(|)23 b(c)m(hange)h(the)g(link)g (la)m(y)m(er)h(broadcast)e(address)i(or)e(the)h(p)s(eer)f(address)i (when)g(the)e(in)m(terface)418 2846 y(is)33 b Fk(POINTOPOINT)p Fo(.)654 3034 y Fi(NB.)49 b(F)-7 b(or)23 b(most)h(devices)f(\(f.e.)i (for)e(Ethernet\))h(c)n(hanging)f(the)h(link)g(la)n(y)n(er)e(broadcast) h(address)f(will)654 3134 y(break)29 b(net)n(w)n(orking.)41 b(Do)29 b(not)h(use)f(it,)h(if)g(y)n(ou)f(do)g(not)h(understand)f(what) g(this)h(op)r(eration)e(really)654 3233 y(do)r(es.)411 3458 y(NB.)42 b(The)21 b Fd(ip)f Fi(utilit)n(y)h(do)r(es)g(not)g(c)n (hange)e(the)j Fd(PROMISC)c Fi(or)i Fd(ALLMULTI)d Fi(\015ags.)34 b(These)21 b(\015ags)f(are)f(considered)411 3558 y(obsolete)26 b(and)i(should)f(not)h(b)r(e)g(c)n(hanged)e(administrativ)n(ely)-7 b(.)174 3817 y Fj(W)e(arning:)98 b Fo(If)25 b(m)m(ultiple)h(parameter)f (c)m(hanges)h(are)f(requested,)j Fk(ip)e Fo(ab)s(orts)e(immediately)j (after)174 3937 y(an)m(y)37 b(of)e(the)i(c)m(hanges)g(ha)m(v)m(e)g (failed.)54 b(This)38 b(is)e(the)g(only)h(case)g(when)g Fk(ip)f Fo(can)h(mo)m(v)m(e)g(the)f(system)174 4057 y(to)c(an)f (unpredictable)i(state.)44 b(The)32 b(solution)g(is)g(to)f(a)m(v)m(oid) i(c)m(hanging)f(sev)m(eral)h(parameters)g(with)174 4178 y(one)g Fk(ip)52 b(link)g(set)34 b Fo(call.)174 4437 y Fj(Examples:)320 4635 y Fe(\017)48 b Fk(ip)k(link)g(set)g(dummy)h (address)g(00:00:00:00:00:01)418 4796 y Fo(|)32 b(c)m(hange)i(the)f (station)f(address)i(of)e(the)h(in)m(terface)h Fk(dummy)p Fo(.)320 4998 y Fe(\017)48 b Fk(ip)k(link)g(set)g(dummy)h(up)418 5159 y Fo(|)32 b(start)h(the)g(in)m(terface)g Fk(dummy)p Fo(.)174 5447 y Fc(4.2)136 b Fb(ip)60 b(link)g(show)43 b Fc(|)i(displa)l(y)h(device)f(attributes)174 5631 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(lst)p Fo(,)h Fk(sh)p Fo(,)f Fk(ls)p Fo(,)g Fk(l)p Fo(.)p eop end %%Page: 8 8 TeXDict begin 8 7 bop 174 324 a Fo(8)2535 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320 835 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418 997 y(|)k Fk(NAME)i Fo(sp)s(eci\014es)g(the)f(net)m(w)m(ork)i(device)f (to)e(sho)m(w.)62 b(If)39 b(this)g(argumen)m(t)g(is)g(omitted)g(all)418 1117 y(devices)c(are)e(listed.)320 1321 y Fe(\017)48 b Fk(up)418 1483 y Fo(|)32 b(only)h(displa)m(y)h(running)g(in)m (terfaces.)174 1744 y Fj(Output)k(format:)174 1948 y Fk(kuznet@alisa:~)55 b($)d(ip)g(link)g(ls)g(eth0)174 2068 y(3:)g(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52 b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 2189 y(link/ether)h (00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)174 2309 y(kuznet@alisa:~)j($)d(ip)g(link)g(ls)g(sit0)174 2429 y(5:)g(sit0@NONE:)i(<NOARP,UP>)g(mtu)e(1480)g(qdisc)h(noqueue)379 2550 y(link/sit)h(0.0.0.0)f(brd)f(0.0.0.0)174 2670 y(kuznet@alisa:~)j ($)d(ip)g(link)g(ls)g(dummy)174 2790 y(2:)g(dummy:)h(<BROADCAST,NOARP>) j(mtu)c(1500)g(qdisc)h(noop)379 2911 y(link/ether)h(00:00:00:00:00:00)i (brd)c(ff:ff:ff:ff:ff:ff)174 3031 y(kuznet@alisa:~)j($)321 3235 y Fo(The)48 b(n)m(um)m(b)s(er)g(b)s(efore)f(eac)m(h)h(colon)f(is)h (an)f Fl(interfac)-5 b(e)47 b(index)58 b Fo(or)47 b Fl(i\014ndex)12 b Fo(.)86 b(This)48 b(n)m(um)m(b)s(er)174 3355 y(uniquely)36 b(iden)m(ti\014es)g(the)d(in)m(terface.)48 b(This)34 b(is)g(follo)m(w)m(ed)h(b)m(y)f(the)g Fl(interfac)-5 b(e)35 b(name)41 b Fo(\()p Fk(eth0)p Fo(,)34 b Fk(sit0)174 3476 y Fo(etc.\).)66 b(The)41 b(in)m(terface)g(name)f(is)h(also)e (unique)j(at)d(ev)m(ery)j(giv)m(en)f(momen)m(t.)66 b(Ho)m(w)m(ev)m(er,) 44 b(the)d(in-)174 3596 y(terface)j(ma)m(y)g(disapp)s(ear)g(from)f(the) h(list)g(\(f.e.)g(when)g(the)g(corresp)s(onding)g(driv)m(er)h(mo)s (dule)f(is)174 3717 y(unloaded\))35 b(and)f(another)g(one)g(with)h(the) f(same)h(name)f(ma)m(y)h(b)s(e)f(created)h(later.)48 b(Besides)35 b(that,)174 3837 y(the)27 b(administrator)g(ma)m(y)g(c)m (hange)g(the)g(name)g(of)f(an)m(y)h(device)h(with)f Fk(ip)f(link)i(set) f(name)g Fo(to)f(mak)m(e)174 3957 y(it)33 b(more)g(in)m(telligible.)321 4078 y(The)38 b(in)m(terface)h(name)f(ma)m(y)h(ha)m(v)m(e)g(another)f (name)g(or)g Fk(NONE)g Fo(app)s(ended)h(after)f(the)g Fk(@)g Fo(sign.)174 4198 y(This)33 b(means)f(that)f(this)h(device)h(is) f(b)s(ound)f(to)g(some)h(other)f(device,)j(i.e.)e(pac)m(k)m(ets)h(send) f(through)174 4319 y(it)d(are)f(encapsulated)j(and)e(sen)m(t)g(via)g (the)g(\\master")g(device.)44 b(If)29 b(the)g(name)g(is)g Fk(NONE)p Fo(,)h(the)f(master)174 4439 y(is)k(unkno)m(wn.)321 4559 y(Then)41 b(w)m(e)h(see)f(the)g(in)m(terface)g Fl(mtu)48 b Fo(\(\\maximal)41 b(transfer)g(unit"\).)67 b(This)41 b(determines)i(the)174 4680 y(maximal)34 b(size)f(of)g(data)f(whic)m(h) i(can)f(b)s(e)f(sen)m(t)i(as)f(a)f(single)i(pac)m(k)m(et)g(o)m(v)m(er)g (this)f(in)m(terface.)321 4800 y Fl(qdisc)43 b Fo(\(\\queuing)d (discipline"\))h(sho)m(ws)g(the)e(queuing)h(algorithm)f(used)h(on)f (the)g(in)m(terface.)174 4921 y(P)m(articularly)-8 b(,)43 b Fk(noqueue)f Fo(means)f(that)f(this)g(in)m(terface)h(do)s(es)f(not)g (queue)i(an)m(ything)e(and)g Fk(noop)174 5041 y Fo(means)26 b(that)e(the)h(in)m(terface)h(is)f(in)g(blac)m(khole)h(mo)s(de)f(i.e.)g (all)g(pac)m(k)m(ets)h(sen)m(t)g(to)e(it)h(are)f(immediately)174 5161 y(discarded.)42 b Fl(qlen)31 b Fo(is)24 b(the)g(default)g (transmit)g(queue)h(length)f(of)g(the)g(device)h(measured)g(in)f(pac)m (k)m(ets.)321 5282 y(The)33 b(in)m(terface)h(\015ags)f(are)f (summarized)j(in)d(the)h(angle)g(brac)m(k)m(ets.)320 5511 y Fe(\017)48 b Fk(UP)28 b Fo(|)g(the)g(device)h(is)g(turned)f(on.) 42 b(It)28 b(is)g(ready)h(to)e(accept)i(pac)m(k)m(ets)h(for)d (transmission)i(and)418 5631 y(it)i(ma)m(y)h(inject)f(in)m(to)h(the)f (k)m(ernel)i(pac)m(k)m(ets)g(receiv)m(ed)g(from)e(other)g(no)s(des)g (on)g(the)h(net)m(w)m(ork.)p eop end %%Page: 9 9 TeXDict begin 9 8 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654 b Fo(9)320 631 y Fe(\017)48 b Fk(LOOPBACK)41 b Fo(|)d(the)h(in)m (terface)h(do)s(es)f(not)g(comm)m(unicate)i(with)e(other)g(hosts.)63 b(All)39 b(pac)m(k-)418 751 y(ets)h(sen)m(t)g(through)f(it)g(will)h(b)s (e)f(returned)h(and)f(nothing)g(but)h(b)s(ounced)g(pac)m(k)m(ets)h(can) e(b)s(e)418 872 y(receiv)m(ed.)320 1071 y Fe(\017)48 b Fk(BROADCAST)30 b Fo(|)e(the)g(device)i(has)e(the)h(facilit)m(y)g(to) e(send)i(pac)m(k)m(ets)h(to)e(all)g(hosts)h(sharing)f(the)418 1191 y(same)34 b(link.)44 b(A)33 b(t)m(ypical)g(example)h(is)g(an)e (Ethernet)i(link.)320 1390 y Fe(\017)48 b Fk(POINTOPOINT)30 b Fo(|)d(the)g(link)h(has)f(only)h(t)m(w)m(o)f(ends)h(with)g(one)f(no)s (de)g(attac)m(hed)h(to)f(eac)m(h)h(end.)418 1510 y(All)36 b(pac)m(k)m(ets)i(sen)m(t)g(to)d(this)i(link)f(will)h(reac)m(h)g(the)f (p)s(eer)h(and)f(all)g(pac)m(k)m(ets)i(receiv)m(ed)g(b)m(y)f(us)418 1630 y(came)d(from)e(this)h(single)h(p)s(eer.)418 1790 y(If)40 b(neither)g Fk(LOOPBACK)i Fo(nor)d Fk(BROADCAST)j Fo(nor)d Fk(POINTOPOINT)j Fo(are)e(set,)h(the)f(in)m(terface)h(is)418 1910 y(assumed)33 b(to)e(b)s(e)g(NMBA)h(\(Non-Broadcast)f (Multi-Access\).)45 b(This)33 b(is)e(the)h(most)f(generic)418 2031 y(t)m(yp)s(e)40 b(of)e(device)i(and)f(the)f(most)h(complicated)h (one,)h(b)s(ecause)e(the)g(host)g(attac)m(hed)g(to)g(a)418 2151 y(NBMA)i(link)h(has)f(no)f(means)i(to)e(send)i(to)e(an)m(y)m(one)i (without)f(additionally)g(con\014gured)418 2272 y(information.)320 2470 y Fe(\017)48 b Fk(MULTICAST)31 b Fo(|)e(is)g(an)f(advisory)i (\015ag)f(indicating)g(that)g(the)g(in)m(terface)h(is)f(a)m(w)m(are)h (of)e(m)m(ulti-)418 2591 y(casting)f(i.e.)g(sending)h(pac)m(k)m(ets)g (to)e(some)h(subset)h(of)e(neigh)m(b)s(ouring)h(no)s(des.)42 b(Broadcasting)418 2711 y(is)g(a)e(particular)h(case)h(of)e(m)m (ulticasting,)k(where)f(the)e(m)m(ulticast)h(group)f(consists)h(of)e (all)418 2832 y(no)s(des)d(on)f(the)h(link.)56 b(It)36 b(is)h(imp)s(ortan)m(t)f(to)g(emphasize)i(that)e(soft)m(w)m(are)i Fl(must)g(not)46 b Fo(in)m(ter-)418 2952 y(pret)26 b(the)h(absence)g (of)f(this)g(\015ag)g(as)g(the)g(inabilit)m(y)h(to)f(use)h(m)m (ulticasting)g(on)f(this)g(in)m(terface.)418 3072 y(An)m(y)j Fk(POINTOPOINT)i Fo(and)d Fk(BROADCAST)i Fo(link)e(is)g(m)m (ulticasting)i(b)m(y)e(de\014nition,)i(b)s(ecause)f(w)m(e)418 3193 y(ha)m(v)m(e)36 b(direct)g(access)h(to)d(all)h(the)g(neigh)m(b)s (ours)h(and,)g(hence,)h(to)d(an)m(y)i(part)f(of)f(them.)51 b(Cer-)418 3313 y(tainly)-8 b(,)43 b(the)e(use)g(of)f(high)h(bandwidth) g(m)m(ulticast)h(transfers)g(is)e(not)h(recommended)h(on)418 3433 y(broadcast-only)33 b(links)h(b)s(ecause)g(of)e(high)h(exp)s (ense,)i(but)d(it)h(is)g(not)g(strictly)g(prohibited.)320 3632 y Fe(\017)48 b Fk(PROMISC)39 b Fo(|)e(the)g(device)i(listens)f(to) f(and)g(feeds)h(to)f(the)g(k)m(ernel)i(all)e(tra\016c)g(on)g(the)g (link)418 3753 y(ev)m(en)28 b(if)d(it)h(is)h(not)e(destined)j(for)d (us,)j(not)e(broadcasted)h(and)f(not)f(destined)j(for)d(a)h(m)m (ulticast)418 3873 y(group)f(of)f(whic)m(h)i(w)m(e)g(are)f(mem)m(b)s (er.)42 b(Usually)26 b(this)f(mo)s(de)g(exists)i(only)e(on)g(broadcast) g(links)418 3993 y(and)33 b(is)g(used)h(b)m(y)f(bridges)h(and)e(for)g (net)m(w)m(ork)j(monitoring.)320 4192 y Fe(\017)48 b Fk(ALLMULTI)c Fo(|)c(the)i(device)h(receiv)m(es)h(all)e(m)m(ulticast)g (pac)m(k)m(ets)i(w)m(andering)e(on)g(the)f(link.)418 4313 y(This)34 b(mo)s(de)f(is)g(used)h(b)m(y)f(m)m(ulticast)h(routers.) 320 4511 y Fe(\017)48 b Fk(NOARP)42 b Fo(|)e(this)h(\015ag)g(is)g (di\013eren)m(t)g(from)g(the)g(other)f(ones.)69 b(It)40 b(has)h(no)g(in)m(v)-5 b(arian)m(t)41 b(v)-5 b(alue)418 4632 y(and)41 b(its)g(in)m(terpretation)g(dep)s(ends)h(on)e(the)h(net)m (w)m(ork)h(proto)s(cols)f(in)m(v)m(olv)m(ed.)70 b(As)41 b(a)f(rule,)418 4752 y(it)e(indicates)g(that)g(the)f(device)j(needs)f (no)e(address)i(resolution)f(and)f(that)g(the)h(soft)m(w)m(are)418 4873 y(or)d(hardw)m(are)h(kno)m(ws)h(ho)m(w)e(to)g(deliv)m(er)i(pac)m (k)m(ets)g(without)f(an)m(y)g(help)f(from)g(the)h(proto)s(col)418 4993 y(stac)m(ks.)320 5192 y Fe(\017)48 b Fk(DYNAMIC)34 b Fo(|)e(is)g(an)g(advisory)h(\015ag)f(indicating)h(that)e(the)i(in)m (terface)g(is)f(dynamically)i(cre-)418 5312 y(ated)f(and)g(destro)m(y)m (ed.)320 5511 y Fe(\017)48 b Fk(SLAVE)33 b Fo(|)f(this)g(in)m(terface)h (is)g(b)s(onded)f(to)g(some)h(other)f(in)m(terfaces)h(to)f(share)h (link)f(capaci-)418 5631 y(ties.)p eop end %%Page: 10 10 TeXDict begin 10 9 bop 174 324 a Fo(10)2486 b Fg(IP)33 b(Command)h(Reference)411 631 y Fi(NB.)70 b(There)35 b(are)f(other)h(\015ags)f(but)i(they)f(are)f(either)h(obsolete)g(\()p Fd(NOTRAILERS)p Fi(\))c(or)k(not)g(implemen)n(ted)411 731 y(\()p Fd(DEBUG)p Fi(\))e(or)i(sp)r(eci\014c)g(to)g(some)g(devices) g(\()p Fd(MASTER)p Fi(,)e Fd(AUTOMEDIA)e Fi(and)k Fd(PORTSEL)p Fi(\).)e(W)-7 b(e)36 b(do)f(not)g(discuss)411 830 y(them)28 b(here.)411 983 y(NB.)63 b(The)32 b(v)-5 b(alues)31 b(of)h Fd(PROMISC)c Fi(and)k Fd(ALLMULTI)c Fi(\015ags)j(sho)n(wn)g(b)n(y)g (the)h Fd(ifconfig)c Fi(utilit)n(y)k(and)g(b)n(y)f(the)411 1083 y Fd(ip)f Fi(utilit)n(y)h(are)f Fa(di\013er)l(ent)8 b Fi(.)46 b Fd(ip)d(link)f(ls)30 b Fi(sho)n(ws)f(the)i(true)g(device)g (state,)g(while)g Fd(ifconfig)c Fi(sho)n(ws)j(the)411 1182 y(virtual)d(state)g(whic)n(h)h(w)n(as)e(set)i(with)g Fd(ifconfig)c Fi(itself.)321 1332 y Fo(The)36 b(second)g(line)g(con)m (tains)g(information)f(on)g(the)g(link)h(la)m(y)m(er)g(addresses)i (asso)s(ciated)e(with)174 1452 y(the)41 b(device.)67 b(The)41 b(\014rst)g(w)m(ord)f(\()p Fk(ether)p Fo(,)k Fk(sit)p Fo(\))c(de\014nes)i(the)e(in)m(terface)i(hardw)m(are)e(t)m(yp) s(e.)67 b(This)174 1573 y(t)m(yp)s(e)29 b(determines)h(the)e(format)f (and)h(seman)m(tics)i(of)d(the)i(addresses)h(and)d(is)i(logically)f (part)g(of)f(the)174 1693 y(address.)44 b(The)32 b(default)e(format)g (of)g(the)h(station)f(address)i(and)f(the)f(broadcast)h(address)h(\(or) e(the)174 1813 y(p)s(eer)37 b(address)h(for)e(p)s(oin)m(top)s(oin)m(t)h (links\))g(is)g(a)f(sequence)k(of)35 b(hexadecimal)k(b)m(ytes)f (separated)f(b)m(y)174 1934 y(colons,)g(but)e(some)h(link)g(t)m(yp)s (es)h(ma)m(y)f(ha)m(v)m(e)g(their)g(natural)f(address)i(format,)e(f.e.) g(addresses)j(of)174 2054 y(tunnels)c(o)m(v)m(er)g(IP)f(are)g(prin)m (ted)g(as)g(dotted-quad)g(IP)g(addresses.)411 2207 y Fi(NB.)73 b(NBMA)36 b(links)h(ha)n(v)n(e)e(no)h(w)n(ell-de\014ned)g (broadcast)f(or)g(p)r(eer)h(address,)i(ho)n(w)n(ev)n(er)c(this)j (\014eld)f(ma)n(y)411 2307 y(con)n(tain)28 b(useful)i(information,)f (f.e.)h(ab)r(out)f(the)h(address)e(of)h(broadcast)f(rela)n(y)g(or)g(ab) r(out)i(the)f(address)f(of)411 2406 y(the)g(ARP)f(serv)n(er.)411 2559 y(NB.)52 b(Multicast)27 b(addresses)e(are)g(not)h(sho)n(wn)g(b)n (y)g(this)g(command,)g(see)g Fd(ip)43 b(maddr)f(ls)25 b Fi(in)i(Sec.9)f(\(p.40)f(of)411 2658 y(this)i(do)r(cumen)n(t\).)174 2954 y Fj(Statistics:)98 b Fo(With)33 b(the)g Fk(-statistics)i Fo(option,)e Fk(ip)g Fo(also)g(prin)m(ts)g(in)m(terface)h(statistics:) 174 3229 y Fk(kuznet@alisa:~)55 b($)d(ip)g(-s)f(link)i(ls)f(eth0)174 3349 y(3:)g(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52 b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 3470 y(link/ether)h (00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)379 3590 y(RX:)g(bytes)104 b(packets)h(errors)f(dropped)53 b(overrun)g(mcast)379 3710 y(2449949362)h(2786187)105 b(0)359 b(0)g(0)g(0)379 3831 y(TX:)52 b(bytes)104 b(packets)h(errors)f(dropped)53 b(carrier)g(collsns)379 3951 y(178558497)105 b(1783945)g(332)257 b(0)359 b(332)257 b(35172)174 4072 y(kuznet@alisa:~)55 b($)174 4340 y(RX:)34 b Fo(and)e Fk(TX:)i Fo(lines)f(summarize)i (receiv)m(er)f(and)f(transmitter)g(statistics.)45 b(They)34 b(con)m(tain:)320 4573 y Fe(\017)48 b Fk(bytes)42 b Fo(|)e(the)h(total) f(n)m(um)m(b)s(er)i(of)e(b)m(ytes)j(receiv)m(ed)g(or)d(transmitted)i (on)e(the)h(in)m(terface.)418 4693 y(This)36 b(n)m(um)m(b)s(er)h(wraps) e(when)h(the)g(maximal)f(length)h(of)e(the)h(data)g(t)m(yp)s(e)h (natural)f(for)f(the)418 4814 y(arc)m(hitecture)d(is)f(exceeded,)j(so)d (con)m(tin)m(uous)h(monitoring)e(requires)i(a)e(user)i(lev)m(el)g (daemon)418 4934 y(snapping)j(it)e(p)s(erio)s(dically)-8 b(.)320 5166 y Fe(\017)48 b Fk(packets)27 b Fo(|)d(the)h(total)f(n)m (um)m(b)s(er)i(of)e(pac)m(k)m(ets)j(receiv)m(ed)g(or)d(transmitted)i (on)e(the)h(in)m(terface.)320 5399 y Fe(\017)48 b Fk(errors)34 b Fo(|)e(the)h(total)f(n)m(um)m(b)s(er)i(of)f(receiv)m(er)h(or)e (transmitter)i(errors.)320 5631 y Fe(\017)48 b Fk(dropped)35 b Fo(|)d(the)h(total)f(n)m(um)m(b)s(er)i(of)e(pac)m(k)m(ets)i(dropp)s (ed)g(due)f(to)f(lac)m(k)i(of)e(resources.)p eop end %%Page: 11 11 TeXDict begin 11 10 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(11)320 631 y Fe(\017)48 b Fk(overrun)33 b Fo(|)d(the)h(total)f(n)m (um)m(b)s(er)i(of)f(receiv)m(er)i(o)m(v)m(erruns)f(resulting)g(in)f (dropp)s(ed)g(pac)m(k)m(ets.)418 751 y(As)h(a)g(rule,)g(if)f(the)h(in)m (terface)h(is)f(o)m(v)m(errun,)h(it)f(means)g(serious)h(problems)g(in)e (the)h(k)m(ernel)i(or)418 872 y(that)f(y)m(our)g(mac)m(hine)h(is)f(to)s (o)f(slo)m(w)h(for)f(this)i(in)m(terface.)320 1064 y Fe(\017)48 b Fk(mcast)40 b Fo(|)e(the)h(total)f(n)m(um)m(b)s(er)h(of)f (receiv)m(ed)j(m)m(ulticast)f(pac)m(k)m(ets.)63 b(This)40 b(option)e(is)h(only)418 1185 y(supp)s(orted)34 b(b)m(y)f(a)f(few)i (devices.)320 1377 y Fe(\017)48 b Fk(carrier)35 b Fo(|)d(total)g(n)m (um)m(b)s(er)i(of)e(link)h(media)g(failures)h(f.e.)f(b)s(ecause)g(of)g (lost)f(carrier.)320 1570 y Fe(\017)48 b Fk(collsns)39 b Fo(|)e(the)g(total)g(n)m(um)m(b)s(er)i(of)d(collision)i(ev)m(en)m(ts) i(on)d(Ethernet-lik)m(e)i(media.)58 b(This)418 1690 y(n)m(um)m(b)s(er) 34 b(ma)m(y)g(ha)m(v)m(e)f(a)g(di\013eren)m(t)h(sense)g(on)e(other)h (link)g(t)m(yp)s(es.)320 1883 y Fe(\017)48 b Fk(compressed)36 b Fo(|)d(the)h(total)f(n)m(um)m(b)s(er)i(of)e(compressed)j(pac)m(k)m (ets.)48 b(This)35 b(is)f(a)m(v)-5 b(ailable)34 b(only)418 2003 y(for)e(links)i(using)f(VJ)g(header)g(compression.)321 2174 y(If)41 b(the)h Fk(-s)g Fo(option)f(is)h(en)m(tered)h(t)m(wice)g (or)f(more,)i Fk(ip)e Fo(prin)m(ts)g(more)g(detailed)g(statistics)h(on) 174 2294 y(receiv)m(er)35 b(and)e(transmitter)g(errors.)174 2479 y Fk(kuznet@alisa:~)55 b($)d(ip)g(-s)f(-s)h(link)h(ls)e(eth0)174 2600 y(3:)h(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52 b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 2720 y(link/ether)h (00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)379 2840 y(RX:)g(bytes)104 b(packets)h(errors)f(dropped)53 b(overrun)g(mcast)379 2961 y(2449949362)h(2786187)105 b(0)359 b(0)g(0)g(0)379 3081 y(RX)52 b(errors:)h(length)156 b(crc)257 b(frame)155 b(fifo)206 b(missed)943 3201 y(0)411 b(0)359 b(0)g(0)g(0)379 3322 y(TX:)52 b(bytes)104 b(packets)h(errors)f(dropped)53 b(carrier)g(collsns)379 3442 y(178558497)105 b(1783945)g(332)257 b(0)359 b(332)257 b(35172)379 3563 y(TX)52 b(errors:)h(aborted)105 b(fifo)206 b(window)104 b(heartbeat)943 3683 y(0)411 b(0)359 b(0)g(332)174 3803 y(kuznet@alisa:~)55 b($)174 3988 y Fo(These)39 b(error)e(names)g(are)g(pure)h(Ethernetisms.)58 b(Other)38 b(devices)h(ma)m(y)e(ha)m(v)m(e)h(non)f(zero)g(v)-5 b(alues)174 4109 y(in)33 b(these)h(\014elds)g(but)f(they)g(ma)m(y)h(b)s (e)e(in)m(terpreted)j(di\013eren)m(tly)-8 b(.)174 4436 y Fn(5)161 b Ff(ip)74 b(address)52 b Fn(|)j(proto)t(col)d(address)g (managemen)l(t)174 4655 y Fj(Abbreviations:)104 b Fk(address)p Fo(,)35 b Fk(addr)p Fo(,)e Fk(a)p Fo(.)174 4909 y Fj(Ob)6 b(ject:)98 b Fo(The)32 b Fk(address)h Fo(is)e(a)f(proto)s(col)g(\(IP)h (or)g(IPv6\))g(address)h(attac)m(hed)f(to)g(a)f(net)m(w)m(ork)i(de-)174 5029 y(vice.)43 b(Eac)m(h)26 b(device)h(m)m(ust)g(ha)m(v)m(e)g(at)e (least)h(one)g(address)h(to)e(use)h(the)g(corresp)s(onding)h(proto)s (col.)40 b(It)174 5150 y(is)29 b(p)s(ossible)g(to)e(ha)m(v)m(e)j(sev)m (eral)f(di\013eren)m(t)g(addresses)h(attac)m(hed)f(to)f(one)g(device.) 43 b(These)30 b(addresses)174 5270 y(are)37 b(not)g(discriminated,)j (so)e(that)e(the)i(term)f Fl(alias)45 b Fo(is)37 b(not)g(quite)h (appropriate)f(for)f(them)i(and)174 5391 y(w)m(e)c(do)e(not)h(use)g(it) g(in)g(this)g(do)s(cumen)m(t.)321 5511 y(The)47 b Fk(ip)52 b(addr)c Fo(command)g(displa)m(ys)g(addresses)h(and)e(their)g(prop)s (erties,)52 b(adds)47 b(new)h(ad-)174 5631 y(dresses)35 b(and)e(deletes)h(old)f(ones.)p eop end %%Page: 12 12 TeXDict begin 12 11 bop 174 324 a Fo(12)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(delete)p Fo(,)i Fk(flush)e Fo(and)g Fk(show)h Fo(\(or)e Fk(list)p Fo(\).)174 918 y Fc(5.1)136 b Fb(ip)60 b(address)e(add)44 b Fc(|)h(add)g(a)g(new)g(proto)t(col)g(address)174 1103 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p Fo(.)174 1361 y Fj(Argumen)m(ts:)320 1555 y Fe(\017)48 b Fk(dev)k(NAME)418 1715 y Fo(|)32 b(the)h(name)g(of)g(the)g(device)h (to)e(add)h(the)g(address)h(to.)320 1916 y Fe(\017)48 b Fk(local)53 b(ADDRESS)34 b Fo(\(default\))418 2076 y(|)46 b(the)h(address)g(of)f(the)h(in)m(terface.)85 b(The)47 b(format)f(of)g(the)g(address)i(dep)s(ends)g(on)e(the)418 2196 y(proto)s(col.)57 b(It)37 b(is)h(a)f(dotted)g(quad)h(for)f(IP)g (and)h(a)f(sequence)j(of)c(hexadecimal)j(halfw)m(ords)418 2317 y(separated)e(b)m(y)h(colons)f(for)e(IPv6.)56 b(The)37 b Fk(ADDRESS)h Fo(ma)m(y)f(b)s(e)f(follo)m(w)m(ed)i(b)m(y)f(a)f(slash)h (and)g(a)418 2437 y(decimal)d(n)m(um)m(b)s(er)g(whic)m(h)g(enco)s(des)g (the)f(net)m(w)m(ork)h(pre\014x)g(length.)320 2637 y Fe(\017)48 b Fk(peer)53 b(ADDRESS)418 2798 y Fo(|)40 b(the)h(address)h(of)e(the)h(remote)g(endp)s(oin)m(t)h(for)e(p)s(oin)m (top)s(oin)m(t)g(in)m(terfaces.)69 b(Again,)43 b(the)418 2918 y Fk(ADDRESS)37 b Fo(ma)m(y)f(b)s(e)f(follo)m(w)m(ed)h(b)m(y)g(a)f (slash)g(and)h(a)e(decimal)i(n)m(um)m(b)s(er,)h(enco)s(ding)f(the)f (net-)418 3038 y(w)m(ork)e(pre\014x)f(length.)44 b(If)31 b(a)g(p)s(eer)h(address)h(is)f(sp)s(eci\014ed,)i(the)e(lo)s(cal)f (address)i Fl(c)-5 b(annot)40 b Fo(ha)m(v)m(e)418 3159 y(a)28 b(pre\014x)h(length.)42 b(The)29 b(net)m(w)m(ork)h(pre\014x)f (is)f(asso)s(ciated)h(with)g(the)f(p)s(eer)h(rather)f(than)g(with)418 3279 y(the)33 b(lo)s(cal)g(address.)320 3479 y Fe(\017)48 b Fk(broadcast)54 b(ADDRESS)418 3640 y Fo(|)32 b(the)h(broadcast)g (address)h(on)f(the)g(in)m(terface.)418 3800 y(It)j(is)h(p)s(ossible)g (to)f(use)h(the)g(sp)s(ecial)g(sym)m(b)s(ols)h Fk('+')f Fo(and)f Fk('-')h Fo(instead)g(of)e(the)i(broadcast)418 3920 y(address.)48 b(In)35 b(this)f(case,)h(the)f(broadcast)g(address)h (is)f(deriv)m(ed)i(b)m(y)f(setting/resetting)g(the)418 4041 y(host)e(bits)g(of)f(the)h(in)m(terface)h(pre\014x.)654 4227 y Fi(NB.)k(Unlik)n(e)19 b Fd(ifconfig)p Fi(,)f(the)h Fd(ip)f Fi(utilit)n(y)h Fa(do)l(es)k(not)j Fi(set)19 b(an)n(y)f(broadcast)f(address)h(unless)g(explicitly)654 4327 y(requested.)320 4527 y Fe(\017)48 b Fk(label)53 b(NAME)418 4688 y Fo(|)35 b(Eac)m(h)h(address)g(ma)m(y)g(b)s(e)g (tagged)f(with)g(a)g(lab)s(el)h(string.)51 b(In)36 b(order)f(to)g (preserv)m(e)i(com-)418 4808 y(patibilit)m(y)31 b(with)f(Lin)m(ux-2.0)g (net)g(aliases,)h(this)g(string)f(m)m(ust)g(coincide)h(with)g(the)f (name)g(of)418 4928 y(the)j(device)i(or)d(m)m(ust)i(b)s(e)e(pre\014xed) j(with)e(the)g(device)h(name)f(follo)m(w)m(ed)h(b)m(y)f(colon.)320 5129 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VALUE)418 5289 y Fo(|)37 b(the)h(scop)s(e)g(of)g(the)f(area)h(where)h(this)f(address)h (is)f(v)-5 b(alid.)58 b(The)39 b(a)m(v)-5 b(ailable)37 b(scop)s(es)i(are)418 5409 y(listed)34 b(in)f(\014le)g Fk(/etc/iproute2/rt_scopes)p Fo(.)49 b(Prede\014ned)35 b(scop)s(e)e(v)-5 b(alues)34 b(are:)528 5631 y Fj({)49 b Fk(global)34 b Fo(|)e(the)h(address)h(is)f(globally)g(v)-5 b(alid.)p eop end %%Page: 13 13 TeXDict begin 13 12 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(13)528 631 y Fj({)49 b Fk(site)31 b Fo(|)f(\(IPv6)h(only\))g(the)g (address)h(is)f(site)g(lo)s(cal,)g(i.e.)g(it)g(is)g(v)-5 b(alid)30 b(inside)i(this)f(site.)528 795 y Fj({)49 b Fk(link)33 b Fo(|)f(the)h(address)h(is)f(link)h(lo)s(cal,)e(i.e.)h(it)g (is)g(v)-5 b(alid)33 b(only)g(on)f(this)i(device.)528 959 y Fj({)49 b Fk(host)33 b Fo(|)f(the)h(address)h(is)f(v)-5 b(alid)33 b(only)g(inside)h(this)f(host.)418 1195 y(App)s(endix)h(A)f (\(p.48)f(of)g(this)i(do)s(cumen)m(t\))f(con)m(tains)h(more)f(details)g (on)g(address)h(scop)s(es.)174 1461 y Fj(Examples:)320 1669 y Fe(\017)48 b Fk(ip)k(addr)g(add)g(127.0.0.1/8)j(dev)d(lo)f(brd)i (+)e(scope)i(host)418 1834 y Fo(|)32 b(add)h(the)g(usual)g(lo)s(opbac)m (k)g(address)h(to)f(the)g(lo)s(opbac)m(k)g(device.)320 2042 y Fe(\017)48 b Fk(ip)k(addr)g(add)g(10.0.0.1/24)j(brd)d(+)f(dev)h (eth0)h(label)f(eth0:Alias)418 2207 y Fo(|)25 b(add)h(the)g(address)h (10.0.0.1)e(with)h(pre\014x)h(length)f(24)g(\(i.e.)g(netmask)h Fk(255.255.255.0)p Fo(\),)418 2327 y(standard)33 b(broadcast)g(and)g (lab)s(el)g Fk(eth0:Alias)i Fo(to)d(the)h(in)m(terface)h Fk(eth0)p Fo(.)174 2623 y Fc(5.2)136 b Fb(ip)60 b(address)e(delete)42 b Fc(|)k(delete)g(a)f(proto)t(col)h(address)174 2809 y Fj(Abbreviations:)104 b Fk(delete)p Fo(,)34 b Fk(del)p Fo(,)g Fk(d)p Fo(.)174 3076 y Fj(Argumen)m(ts:)98 b Fo(coincide)38 b(with)f(the)f(argumen)m(ts)i(of)d Fk(ip)52 b(addr)h(add)p Fo(.)i(The)37 b(device)h(name)f(is)g(a)174 3196 y(required)29 b(argumen)m(t.)42 b(The)28 b(rest)g(are)f(optional.)41 b(If)27 b(no)g(argumen)m(ts)i(are)e(giv)m(en,)i(the)e(\014rst)h (address)174 3316 y(is)33 b(deleted.)174 3583 y Fj(Examples:)320 3791 y Fe(\017)48 b Fk(ip)k(addr)g(del)g(127.0.0.1/8)j(dev)d(lo)418 3956 y Fo(|)30 b(deletes)h(the)g(lo)s(opbac)m(k)f(address)h(from)f(the) g(lo)s(opbac)m(k)h(device.)44 b(It)30 b(w)m(ould)h(b)s(e)f(b)s(est)g (not)418 4076 y(to)i(rep)s(eat)h(this)g(exp)s(erimen)m(t.)320 4285 y Fe(\017)48 b Fo(Disable)33 b(IP)g(on)g(the)g(in)m(terface)g Fk(eth0)p Fo(:)521 4536 y Fk(while)52 b(ip)g(-f)g(inet)g(addr)h(del)f (dev)g(eth0;)g(do)623 4657 y(:)g(nothing)521 4777 y(done)418 5029 y Fo(Another)43 b(metho)s(d)g(to)f(disable)h(IP)g(on)f(an)h(in)m (terface)g(using)g Fk(ip)52 b(addr)g(flush)44 b Fo(ma)m(y)f(b)s(e)418 5149 y(found)33 b(in)g(sec.5.4,)g(p.15.)174 5444 y Fc(5.3)136 b Fb(ip)60 b(address)e(show)43 b Fc(|)j(displa)l(y)f(proto)t(col)h (addresses)174 5631 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(lst)p Fo(,)h Fk(sh)p Fo(,)f Fk(ls)p Fo(,)g Fk(l)p Fo(.)p eop end %%Page: 14 14 TeXDict begin 14 13 bop 174 324 a Fo(14)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320 794 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418 950 y(|)e(the)h(name)g(of)g(the)g(device.)320 1140 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VAL)418 1295 y Fo(|)32 b(only)h(list)g(addresses)i(with)e(this)h(scop)s(e.)320 1485 y Fe(\017)48 b Fk(to)k(PREFIX)418 1640 y Fo(|)32 b(only)h(list)g(addresses)i(matc)m(hing)f(this)f(pre\014x.)320 1830 y Fe(\017)48 b Fk(label)53 b(PATTERN)418 1985 y Fo(|)42 b(only)h(list)g(addresses)h(with)f(lab)s(els)g(matc)m(hing)h (the)e Fk(PATTERN)p Fo(.)j Fk(PATTERN)f Fo(is)f(a)f(usual)418 2106 y(shell)34 b(st)m(yle)g(pattern.)320 2296 y Fe(\017)48 b Fk(dynamic)35 b Fo(and)d Fk(permanent)418 2451 y Fo(|)24 b(\(IPv6)h(only\))f(only)h(list)g(addresses)h(installed)g(due)f(to)f (stateless)i(address)f(con\014guration)418 2571 y(or)32 b(only)i(list)f(p)s(ermanen)m(t)g(\(not)g(dynamic\))h(addresses.)320 2761 y Fe(\017)48 b Fk(tentative)418 2917 y Fo(|)22 b(\(IPv6)h(only\))f (only)h(list)f(addresses)i(whic)m(h)g(did)f(not)e(pass)i(duplicate)h (address)f(detection.)320 3107 y Fe(\017)48 b Fk(deprecated)418 3262 y Fo(|)32 b(\(IPv6)i(only\))f(only)g(list)g(deprecated)h (addresses.)320 3452 y Fe(\017)48 b Fk(primary)35 b Fo(and)d Fk(secondary)418 3607 y Fo(|)g(only)h(list)g(primary)h(\(or)e (secondary\))i(addresses.)174 3860 y Fj(Output)k(format:)174 4023 y Fk(kuznet@alisa:~)55 b($)d(ip)g(addr)g(ls)g(eth0)174 4144 y(3:)g(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52 b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 4264 y(link/ether)h (00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)379 4385 y(inet)h(193.233.7.90/24)i(brd)d(193.233.7.255)j(scope)d(global)h(eth0) 379 4505 y(inet6)g(3ffe:2400:0:1:2a0:ccff:fe)q(66:1)q(878)q(/64)58 b(scope)52 b(global)h(dynamic)533 4625 y(valid_lft)h(forever)f (preferred_lft)i(604746sec)379 4746 y(inet6)e (fe80::2a0:ccff:fe66:1878/)q(10)k(scope)c(link)174 4866 y(kuznet@alisa:~)i($)321 5029 y Fo(The)49 b(\014rst)g(t)m(w)m(o)g (lines)g(coincide)h(with)e(the)h(output)g(of)e Fk(ip)52 b(link)g(ls)p Fo(.)91 b(It)49 b(is)g(natural)f(to)174 5150 y(in)m(terpret)34 b(link)f(la)m(y)m(er)h(addresses)h(as)e (addresses)i(of)d(the)h(proto)s(col)f(family)h Fk(AF_PACKET)p Fo(.)321 5270 y(Then)27 b(the)h(list)f(of)f(IP)h(and)g(IPv6)g (addresses)i(follo)m(ws,)g(accompanied)f(b)m(y)f(additional)g(address) 174 5391 y(attributes:)45 b(scop)s(e)33 b(v)-5 b(alue)33 b(\(see)h(Sec.5.1,)f(p.12)f(ab)s(o)m(v)m(e\),)i(\015ags)e(and)h(the)g (address)h(lab)s(el.)321 5511 y(Address)f(\015ags)e(are)g(set)h(b)m(y)h (the)e(k)m(ernel)i(and)f(cannot)f(b)s(e)g(c)m(hanged)i(administrativ)m (ely)-8 b(.)45 b(Cur-)174 5631 y(ren)m(tly)-8 b(,)34 b(the)f(follo)m(wing)g(\015ags)g(are)f(de\014ned:)p eop end %%Page: 15 15 TeXDict begin 15 14 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(15)294 631 y(1.)48 b Fk(secondary)418 806 y Fo(|)28 b(the)h(address)g(is)g(not)f(used)h(when)g(selecting)h(the)f(default)f (source)i(address)f(of)f(outgoing)418 926 y(pac)m(k)m(ets)37 b(\(Cf.)d(App)s(endix)i(A,)f(p.48.\).)48 b(An)34 b(IP)h(address)h(b)s (ecomes)f(secondary)h(if)e(another)418 1047 y(address)k(with)f(the)g (same)g(pre\014x)g(bits)g(already)g(exists.)57 b(The)37 b(\014rst)g(address)h(is)f(primary)-8 b(.)418 1167 y(It)43 b(is)h(the)g(leader)f(of)g(the)h(group)f(of)f(all)h(secondary)i (addresses.)77 b(When)44 b(the)g(leader)g(is)418 1288 y(deleted,)34 b(all)f(secondaries)h(are)f(purged)g(to)s(o.)294 1517 y(2.)48 b Fk(dynamic)418 1692 y Fo(|)36 b(the)g(address)i(w)m(as)f (created)g(due)f(to)g(stateless)i(auto)s(con\014guration)d([2].)54 b(In)37 b(this)f(case)418 1813 y(the)h(output)g(also)g(con)m(tains)g (information)g(on)f(times,)j(when)f(the)f(address)h(is)f(still)g(v)-5 b(alid.)418 1933 y(After)47 b Fk(preferred_lft)j Fo(expires)e(the)f (address)h(is)f(mo)m(v)m(ed)h(to)f(the)g(deprecated)h(state.)418 2053 y(After)33 b Fk(valid_lft)i Fo(expires)f(the)f(address)h(is)f (\014nally)h(in)m(v)-5 b(alidated.)294 2283 y(3.)48 b Fk(deprecated)418 2458 y Fo(|)35 b(the)i(address)g(is)f(deprecated,)i (i.e.)f(it)f(is)g(still)g(v)-5 b(alid,)37 b(but)f(cannot)g(b)s(e)g (used)h(b)m(y)g(newly)418 2578 y(created)d(connections.)294 2808 y(4.)48 b Fk(tentative)418 2983 y Fo(|)40 b(the)g(address)i(is)e (not)g(used)h(b)s(ecause)h(duplicate)f(address)g(detection)g([2])f(is)h (still)f(not)418 3103 y(complete)34 b(or)e(failed.)174 3425 y Fc(5.4)136 b Fb(ip)60 b(address)e(flush)43 b Fc(|)i(\015ush)f (proto)t(col)i(addresses)174 3620 y Fj(Abbreviations:)104 b Fk(flush)p Fo(,)34 b Fk(f)p Fo(.)174 3912 y Fj(Description:)98 b Fo(This)32 b(command)f(\015ushes)h(the)f(proto)s(col)f(addresses)i (selected)h(b)m(y)e(some)g(crite-)174 4033 y(ria.)174 4325 y Fj(Argumen)m(ts:)98 b Fo(This)43 b(command)f(has)g(the)f(same)i (argumen)m(ts)f(as)g Fk(show)p Fo(.)70 b(The)43 b(di\013erence)g(is)174 4445 y(that)33 b(it)f(do)s(es)h(not)g(run)g(when)g(no)g(argumen)m(ts)g (are)g(giv)m(en.)174 4737 y Fj(W)-9 b(arning:)98 b Fo(This)37 b(command)g(\(and)e(other)h Fk(flush)h Fo(commands)g(describ)s(ed)h(b)s (elo)m(w\))e(is)g(prett)m(y)174 4858 y(dangerous.)44 b(If)31 b(y)m(ou)h(mak)m(e)g(a)f(mistak)m(e,)i(it)e(will)h(not)f (forgiv)m(e)h(it,)f(but)h(will)g(cruelly)g(purge)g(all)f(the)174 4978 y(addresses.)174 5270 y Fj(Statistics:)98 b Fo(With)25 b(the)g Fk(-statistics)j Fo(option,)e(the)f(command)g(b)s(ecomes)h(v)m (erb)s(ose.)43 b(It)24 b(prin)m(ts)174 5391 y(out)42 b(the)h(n)m(um)m(b)s(er)h(of)d(deleted)j(addresses)g(and)e(the)h(n)m (um)m(b)s(er)h(of)d(rounds)i(made)g(to)f(\015ush)h(the)174 5511 y(address)35 b(list.)46 b(If)34 b(this)g(option)f(is)h(giv)m(en)g (t)m(wice,)h Fk(ip)52 b(addr)g(flush)35 b Fo(also)e(dumps)i(all)e(the)h (deleted)174 5631 y(addresses)h(in)e(the)g(format)f(describ)s(ed)i(in)f (the)g(previous)h(subsection.)p eop end %%Page: 16 16 TeXDict begin 16 15 bop 174 324 a Fo(16)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Example:)99 b Fo(Delete)33 b(all)g(the)g(addresses)i(from)d(the)h(priv)-5 b(ate)33 b(net)m(w)m(ork)h(10.0.0.0/8:)174 811 y Fk(netadm@amber:~)55 b(#)d(ip)g(-s)f(-s)h(a)g(f)f(to)h(10/8)174 931 y(2:)g(dummy)207 b(inet)52 b(10.7.7.7/16)i(brd)e(10.7.255.255)j(scope)d(global)h(dummy) 174 1052 y(3:)f(eth0)206 b(inet)53 b(10.10.7.7/16)h(brd)e (10.10.255.255)j(scope)d(global)h(eth0)174 1172 y(4:)f(eth1)206 b(inet)53 b(10.8.7.7/16)h(brd)e(10.8.255.255)i(scope)f(global)g(eth1) 174 1413 y(***)f(Round)h(1,)f(deleting)h(3)f(addresses)h(***)174 1533 y(***)f(Flush)h(is)f(complete)h(after)g(1)e(round)i(***)174 1654 y(netadm@amber:~)i(#)174 1833 y Fo(Another)33 b(instructiv)m(e)i (example)f(is)f(disabling)h(IP)f(on)f(all)h(the)g(Ethernets:)174 2013 y Fk(netadm@amber:~)55 b(#)d(ip)g(-4)f(addr)i(flush)f(label)h ("eth*")174 2193 y Fo(And)31 b(the)h(last)e(example)j(sho)m(ws)f(ho)m (w)f(to)g(\015ush)g(all)g(the)g(IPv6)g(addresses)i(acquired)f(b)m(y)g (the)f(host)174 2314 y(from)47 b(stateless)h(address)g(auto)s (con\014guration)e(after)g(y)m(ou)h(enabled)h(forw)m(arding)f(or)f (disabled)174 2434 y(auto)s(con\014guration.)174 2614 y Fk(netadm@amber:~)55 b(#)d(ip)g(-6)f(addr)i(flush)f(dynamic)174 2943 y Fn(6)161 b Ff(ip)74 b(neighbour)d Fn(|)h(neigh)l(b)t(our/arp)e (tables)h(manage-)416 3125 y(men)l(t)174 3344 y Fj(Abbreviations:)104 b Fk(neighbour)p Fo(,)35 b Fk(neighbor)p Fo(,)g Fk(neigh)p Fo(,)f Fk(n)p Fo(.)174 3600 y Fj(Ob)6 b(ject:)103 b Fk(neighbour)32 b Fo(ob)5 b(jects)31 b(establish)g(bindings)g(b)s(et)m(w)m(een)h(proto) s(col)d(addresses)j(and)d(link)174 3720 y(la)m(y)m(er)34 b(addresses)g(for)e(hosts)h(sharing)g(the)g(same)g(link.)44 b(Neigh)m(b)s(our)33 b(en)m(tries)h(are)e(organized)h(in)m(to)174 3841 y(tables.)45 b(The)33 b(IPv4)g(neigh)m(b)s(our)h(table)f(is)g(kno) m(wn)h(b)m(y)f(another)g(name)g(|)f(the)h(ARP)g(table.)321 3961 y(The)45 b(corresp)s(onding)f(commands)i(displa)m(y)f(neigh)m(b)s (our)g(bindings)g(and)f(their)g(prop)s(erties,)174 4082 y(add)33 b(new)h(neigh)m(b)s(our)f(en)m(tries)h(and)f(delete)g(old)g (ones.)174 4337 y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(change)p Fo(,)i Fk(replace)p Fo(,)f Fk(delete)p Fo(,)g Fk(flush)g Fo(and)f Fk(show)g Fo(\(or)g Fk(list)p Fo(\).)174 4593 y Fj(See)i(also:)99 b Fo(App)s(endix)31 b(B,)f(p.49)g(describ)s(es)i(ho)m(w)e(to)g(manage)f(pro)m(xy)i (ARP/NDISC)f(with)h(the)174 4713 y Fk(ip)i Fo(utilit)m(y)-8 b(.)174 4998 y Fc(6.1)136 b Fb(ip)60 b(neighbour)d(add)44 b Fc(|)h(add)g(a)g(new)g(neigh)l(b)t(our)g(en)l(try)481 5148 y Fb(ip)60 b(neighbour)d(change)42 b Fc(|)k(c)l(hange)f(an)g (existing)h(en)l(try)481 5297 y Fb(ip)60 b(neighbour)d(replace)52 b Fc(|)k(add)g(a)f(new)h(en)l(try)g(or)f(c)l(hange)h(an)481 5447 y(existing)46 b(one)174 5631 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(change)p Fo(,)j Fk(chg)p Fo(;)e Fk(replace)p Fo(,)h Fk(repl)p Fo(.)p eop end %%Page: 17 17 TeXDict begin 17 16 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(17)174 631 y Fj(Description:)98 b Fo(These)46 b(commands)e(create) h(new)f(neigh)m(b)s(our)g(records)h(or)e(up)s(date)h(existing)174 751 y(ones.)174 1011 y Fj(Argumen)m(ts:)320 1214 y Fe(\017)k Fk(to)k(ADDRESS)34 b Fo(\(default\))418 1376 y(|)e(the)h(proto)s(col)f (address)i(of)e(the)h(neigh)m(b)s(our.)45 b(It)32 b(is)h(either)h(an)e (IPv4)i(or)e(IPv6)h(address.)320 1580 y Fe(\017)48 b Fk(dev)k(NAME)418 1741 y Fo(|)32 b(the)h(in)m(terface)h(to)e(whic)m(h)i (this)f(neigh)m(b)s(our)h(is)f(attac)m(hed.)320 1945 y Fe(\017)48 b Fk(lladdr)53 b(LLADDRESS)418 2107 y Fo(|)32 b(the)h(link)h(la)m(y)m(er)f(address)h(of)e(the)h(neigh)m(b)s(our.)45 b Fk(LLADDRESS)35 b Fo(can)d(also)h(b)s(e)g Fk(null)p Fo(.)320 2310 y Fe(\017)48 b Fk(nud)k(NUD_STATE)418 2472 y Fo(|)45 b(the)g(state)h(of)e(the)i(neigh)m(b)s(our)f(en)m(try)-8 b(.)82 b Fk(nud)46 b Fo(is)g(an)f(abbreviation)g(for)g(\\Neigh)m(b)s (our)418 2592 y(Unreac)m(habilit)m(y)35 b(Detection".)44 b(The)33 b(state)g(can)g(tak)m(e)g(one)g(of)f(the)h(follo)m(wing)g(v)-5 b(alues:)508 2820 y(1.)49 b Fk(permanent)g Fo(|)d(the)h(neigh)m(b)s (our)g(en)m(try)h(is)f(v)-5 b(alid)46 b(forev)m(er)i(and)e(can)h(b)s(e) g(only)g(b)s(e)633 2941 y(remo)m(v)m(ed)34 b(administrativ)m(ely)-8 b(.)508 3103 y(2.)49 b Fk(noarp)34 b Fo(|)f(the)h(neigh)m(b)s(our)f(en) m(try)i(is)e(v)-5 b(alid.)46 b(No)33 b(attempts)h(to)f(v)-5 b(alidate)33 b(this)h(en)m(try)633 3223 y(will)f(b)s(e)g(made)g(but)g (it)f(can)h(b)s(e)g(remo)m(v)m(ed)h(when)g(its)f(lifetime)h(expires.) 508 3385 y(3.)49 b Fk(reachable)40 b Fo(|)c(the)i(neigh)m(b)s(our)g(en) m(try)h(is)f(v)-5 b(alid)38 b(un)m(til)g(the)g(reac)m(habilit)m(y)h (timeout)633 3505 y(expires.)508 3667 y(4.)49 b Fk(stale)i Fo(|)e(the)h(neigh)m(b)s(our)h(en)m(try)g(is)f(v)-5 b(alid)50 b(but)g(suspicious.)98 b(This)51 b(option)f(to)633 3788 y Fk(ip)i(neigh)d Fo(do)s(es)f(not)g(c)m(hange)h(the)g(neigh)m(b)s(our) f(state)h(if)f(it)g(w)m(as)h(v)-5 b(alid)48 b(and)g(the)633 3908 y(address)34 b(is)f(not)f(c)m(hanged)i(b)m(y)f(this)h(command.)174 4168 y Fj(Examples:)320 4371 y Fe(\017)48 b Fk(ip)k(neigh)h(add)f (10.0.0.3)h(lladdr)g(0:0:0:0:0:1)h(dev)e(eth0)h(nud)f(perm)418 4533 y Fo(|)32 b(add)h(a)f(p)s(ermanen)m(t)i(ARP)f(en)m(try)h(for)e (the)h(neigh)m(b)s(our)g(10.0.0.3)e(on)i(the)g(device)h Fk(eth0)p Fo(.)320 4736 y Fe(\017)48 b Fk(ip)k(neigh)h(chg)f(10.0.0.3)h (dev)f(eth0)g(nud)h(reachable)418 4898 y Fo(|)32 b(c)m(hange)i(its)f (state)g(to)f Fk(reachable)p Fo(.)174 5187 y Fc(6.2)136 b Fb(ip)60 b(neighbour)d(delete)42 b Fc(|)k(delete)g(a)f(neigh)l(b)t (our)g(en)l(try)174 5372 y Fj(Abbreviations:)104 b Fk(delete)p Fo(,)34 b Fk(del)p Fo(,)g Fk(d)p Fo(.)174 5631 y Fj(Description:)98 b Fo(This)34 b(command)f(in)m(v)-5 b(alidates)34 b(a)f(neigh)m(b)s(our) g(en)m(try)-8 b(.)p eop end %%Page: 18 18 TeXDict begin 18 17 bop 174 324 a Fo(18)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)98 b Fo(The)53 b(argumen)m(ts)g(are)f(the)h(same)f(as)g(with)h Fk(ip)f(neigh)g(add)p Fo(,)58 b(except)c(that)174 751 y Fk(lladdr)34 b Fo(and)f Fk(nud)g Fo(are)g(ignored.)174 1063 y Fj(Example:)320 1308 y Fe(\017)48 b Fk(ip)k(neigh)h(del)f (10.0.0.3)h(dev)f(eth0)418 1491 y Fo(|)32 b(in)m(v)-5 b(alidate)34 b(an)e(ARP)h(en)m(try)h(for)e(the)h(neigh)m(b)s(our)g (10.0.0.3)f(on)g(the)h(device)h Fk(eth0)p Fo(.)411 1739 y Fi(NB.)58 b(The)29 b(deleted)g(neigh)n(b)r(our)f(en)n(try)h(will)g (not)g(disapp)r(ear)f(from)h(the)g(tables)g(immediately)-7 b(.)41 b(If)30 b(it)f(is)g(in)411 1839 y(use)d(it)g(cannot)g(b)r(e)g (deleted)h(un)n(til)f(the)h(last)e(clien)n(t)i(releases)d(it.)37 b(Otherwise)25 b(it)i(will)f(b)r(e)g(destro)n(y)n(ed)f(during)411 1938 y(the)j(next)f(garbage)f(collection.)174 2250 y Fj(W)-9 b(arning:)98 b Fo(A)m(ttempts)28 b(to)e(delete)h(or)e(man)m (ually)j(c)m(hange)e(a)g Fk(noarp)h Fo(en)m(try)h(created)e(b)m(y)h (the)g(k)m(er-)174 2370 y(nel)i(ma)m(y)g(result)h(in)e(unpredictable)i (b)s(eha)m(viour.)44 b(P)m(articularly)-8 b(,)30 b(the)f(k)m(ernel)h (ma)m(y)f(try)g(to)f(resolv)m(e)174 2491 y(this)34 b(address)f(ev)m(en) i(on)d(a)g Fk(NOARP)i Fo(in)m(terface)g(or)e(if)h(the)g(address)h(is)f (m)m(ulticast)h(or)e(broadcast.)174 2831 y Fc(6.3)136 b Fb(ip)60 b(neighbour)d(show)43 b Fc(|)j(list)g(neigh)l(b)t(our)e(en)l (tries)174 3033 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(.)174 3344 y Fj(Description:)98 b Fo(This)34 b(commands)g(displa)m(ys)h(neigh)m(b) s(our)e(tables.)174 3656 y Fj(Argumen)m(ts:)320 3901 y Fe(\017)48 b Fk(to)k(ADDRESS)34 b Fo(\(default\))418 4084 y(|)e(the)h(pre\014x)h(selecting)g(the)f(neigh)m(b)s(ours)h(to)e (list.)320 4329 y Fe(\017)48 b Fk(dev)k(NAME)418 4512 y Fo(|)32 b(only)h(list)g(the)g(neigh)m(b)s(ours)h(attac)m(hed)g(to)e (this)h(device.)320 4757 y Fe(\017)48 b Fk(unused)418 4940 y Fo(|)32 b(only)h(list)g(neigh)m(b)s(ours)h(whic)m(h)g(are)f(not) f(curren)m(tly)j(in)d(use.)320 5186 y Fe(\017)48 b Fk(nud)k(NUD_STATE) 418 5368 y Fo(|)29 b(only)h(list)f(neigh)m(b)s(our)h(en)m(tries)h(in)e (this)h(state.)43 b Fk(NUD_STATE)32 b Fo(tak)m(es)e(v)-5 b(alues)30 b(listed)g(b)s(elo)m(w)418 5489 y(or)37 b(the)h(sp)s(ecial)h (v)-5 b(alue)37 b Fk(all)i Fo(whic)m(h)f(means)h(all)e(states.)59 b(This)39 b(option)e(ma)m(y)h(o)s(ccur)g(more)418 5609 y(than)25 b(once.)42 b(If)25 b(this)h(option)f(is)h(absen)m(t,)i Fk(ip)d Fo(lists)h(all)f(en)m(tries)i(except)g(for)e Fk(none)h Fo(and)f Fk(noarp)p Fo(.)p eop end %%Page: 19 19 TeXDict begin 19 18 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(19)174 631 y Fj(Output)38 b(format:)174 854 y Fk(kuznet@alisa:~)55 b($)d(ip)g(neigh)g(ls)174 974 y(::)g(dev)g(lo)g(lladdr)h (00:00:00:00:00:00)j(nud)c(noarp)174 1095 y(fe80::200:cff:fe76:3f85)58 b(dev)52 b(eth0)g(lladdr)h(00:00:0c:76:3f:85)j(router)d(\\)379 1215 y(nud)f(stale)174 1336 y(0.0.0.0)h(dev)g(lo)e(lladdr)i (00:00:00:00:00:00)j(nud)c(noarp)174 1456 y(193.233.7.254)j(dev)d(eth0) g(lladdr)h(00:00:0c:76:3f:85)j(nud)c(reachable)174 1576 y(193.233.7.85)j(dev)d(eth0)g(lladdr)h(00:e0:1e:63:39:00)j(nud)c(stale) 174 1697 y(kuznet@alisa:~)j($)321 1916 y Fo(The)42 b(\014rst)f(w)m(ord) h(of)f(eac)m(h)h(line)g(is)g(the)f(proto)s(col)g(address)h(of)f(the)h (neigh)m(b)s(our.)70 b(Then)42 b(the)174 2037 y(device)j(name)f(follo)m (ws.)77 b(The)44 b(rest)g(of)f(the)h(line)g(describ)s(es)h(the)f(con)m (ten)m(ts)h(of)e(the)h(neigh)m(b)s(our)174 2157 y(en)m(try)34 b(iden)m(ti\014ed)g(b)m(y)g(the)f(pair)f(\(device,)j(address\).)321 2281 y Fk(lladdr)f Fo(is)f(the)g(link)g(la)m(y)m(er)h(address)g(of)e (the)h(neigh)m(b)s(our.)321 2405 y Fk(nud)25 b Fo(is)h(the)f(state)h (of)e(the)h(\\neigh)m(b)s(our)h(unreac)m(habilit)m(y)h(detection")f (mac)m(hine)g(for)f(this)g(en)m(try)-8 b(.)174 2525 y(The)34 b(detailed)g(description)h(of)e(the)g(neigh)m(b)s(our)h(state)f(mac)m (hine)i(can)e(b)s(e)h(found)f(in)g([1].)45 b(Here)34 b(is)174 2645 y(the)f(full)g(list)g(of)f(the)h(states)h(with)f(short)g (descriptions:)294 2896 y(1.)48 b Fk(none)34 b Fo(|)e(the)h(state)g(of) f(the)h(neigh)m(b)s(our)g(is)g(v)m(oid.)294 3116 y(2.)48 b Fk(incomplete)35 b Fo(|)d(the)h(neigh)m(b)s(our)h(is)f(in)g(the)g (pro)s(cess)g(of)f(resolution.)294 3336 y(3.)48 b Fk(reachable)35 b Fo(|)d(the)h(neigh)m(b)s(our)g(is)h(v)-5 b(alid)32 b(and)h(apparen)m(tly)h(reac)m(hable.)294 3556 y(4.)48 b Fk(stale)42 b Fo(|)e(the)h(neigh)m(b)s(our)h(is)f(v)-5 b(alid,)43 b(but)e(is)g(probably)g(already)h(unreac)m(hable,)i(so)d (the)418 3676 y(k)m(ernel)34 b(will)g(try)f(to)f(c)m(hec)m(k)j(it)d(at) g(the)h(\014rst)g(transmission.)294 3896 y(5.)48 b Fk(delay)28 b Fo(|)f(a)g(pac)m(k)m(et)h(has)g(b)s(een)f(sen)m(t)i(to)d(the)i(stale) f(neigh)m(b)s(our)h(and)f(the)h(k)m(ernel)g(is)g(w)m(aiting)418 4016 y(for)k(con\014rmation.)294 4236 y(6.)48 b Fk(probe)32 b Fo(|)d(the)i(dela)m(y)g(timer)g(expired)g(but)g(no)f(con\014rmation)g (w)m(as)i(receiv)m(ed.)45 b(The)31 b(k)m(ernel)418 4356 y(has)i(started)g(to)g(prob)s(e)f(the)h(neigh)m(b)s(our)g(with)h (ARP/NDISC)f(messages.)294 4576 y(7.)48 b Fk(failed)34 b Fo(|)e(resolution)i(has)f(failed.)294 4796 y(8.)48 b Fk(noarp)34 b Fo(|)e(the)h(neigh)m(b)s(our)g(is)g(v)-5 b(alid.)44 b(No)32 b(attempts)h(to)f(c)m(hec)m(k)j(the)e(en)m(try)h (will)f(b)s(e)g(made.)294 5016 y(9.)48 b Fk(permanent)38 b Fo(|)d(it)h(is)g(a)f Fk(noarp)i Fo(en)m(try)-8 b(,)37 b(but)f(only)g(the)g(administrator)f(ma)m(y)i(remo)m(v)m(e)g(the)418 5136 y(en)m(try)d(from)e(the)h(neigh)m(b)s(our)g(table.)321 5387 y(The)22 b(link)h(la)m(y)m(er)g(address)g(is)f(v)-5 b(alid)22 b(in)g(all)g(states)g(except)i(for)d Fk(none)p Fo(,)k Fk(failed)e Fo(and)f Fk(incomplete)p Fo(.)321 5511 y(IPv6)28 b(neigh)m(b)s(ours)g(can)f(b)s(e)h(mark)m(ed)g(with)g (the)g(additional)f(\015ag)g Fk(router)i Fo(whic)m(h)f(means)h(that)174 5631 y(the)k(neigh)m(b)s(our)h(in)m(tro)s(duced)f(itself)h(as)e(an)h (IPv6)g(router)g([1].)p eop end %%Page: 20 20 TeXDict begin 20 19 bop 174 324 a Fo(20)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Statistics:)98 b Fo(The)34 b Fk(-statistics)h Fo(option)d(displa)m(ys)j(some)f(usage)f (statistics,)h(f.e.)174 889 y Fk(kuznet@alisa:~)55 b($)d(ip)g(-s)f(n)h (ls)g(193.233.7.254)174 1010 y(193.233.7.254)j(dev)d(eth0)g(lladdr)h (00:00:0c:76:3f:85)j(ref)c(5)g(used)g(12/13/20)h(\\)379 1130 y(nud)f(reachable)174 1250 y(kuznet@alisa:~)j($)321 1505 y Fo(Here)28 b Fk(ref)f Fo(is)h(the)g(n)m(um)m(b)s(er)g(of)f (users)h(of)f(this)h(en)m(try)g(and)f Fk(used)i Fo(is)e(a)g(triplet)h (of)e(time)i(in)m(terv)-5 b(als)174 1626 y(in)33 b(seconds)i(separated) e(b)m(y)h(slashes.)45 b(In)33 b(this)g(case)g(they)h(sho)m(w)g(that:) 294 1880 y(1.)48 b(the)33 b(en)m(try)h(w)m(as)f(used)h(12)e(seconds)j (ago.)294 2102 y(2.)48 b(the)33 b(en)m(try)h(w)m(as)f(con\014rmed)h(13) e(seconds)j(ago.)294 2325 y(3.)48 b(the)33 b(en)m(try)h(w)m(as)f(up)s (dated)h(20)e(seconds)i(ago.)174 2637 y Fc(6.4)136 b Fb(ip)60 b(neighbour)d(flush)43 b Fc(|)i(\015ush)f(neigh)l(b)t(our)h (en)l(tries)174 2829 y Fj(Abbreviations:)104 b Fk(flush)p Fo(,)34 b Fk(f)p Fo(.)174 3112 y Fj(Description:)98 b Fo(This)34 b(command)f(\015ushes)h(neigh)m(b)s(our)f(tables,)g (selecting)h(en)m(tries)f(to)f(\015ush)h(b)m(y)174 3232 y(some)h(criteria.)174 3515 y Fj(Argumen)m(ts:)98 b Fo(This)34 b(command)g(has)f(the)g(same)h(argumen)m(ts)g(as)f Fk(show)p Fo(.)45 b(The)33 b(di\013erences)i(are)174 3636 y(that)k(it)g(do)s(es)g (not)g(run)g(when)h(no)f(argumen)m(ts)h(are)f(giv)m(en,)i(and)e(that)g (the)g(default)h(neigh)m(b)s(our)174 3756 y(states)34 b(to)e(b)s(e)h(\015ushed)h(do)e(not)h(include)h Fk(permanent)h Fo(and)d Fk(noarp)p Fo(.)174 4039 y Fj(Statistics:)98 b Fo(With)25 b(the)g Fk(-statistics)j Fo(option,)e(the)f(command)g(b)s (ecomes)h(v)m(erb)s(ose.)43 b(It)24 b(prin)m(ts)174 4159 y(out)38 b(the)g(n)m(um)m(b)s(er)h(of)e(deleted)i(neigh)m(b)s(ours)g (and)e(the)h(n)m(um)m(b)s(er)h(of)f(rounds)g(made)g(to)f(\015ush)i(the) 174 4280 y(neigh)m(b)s(our)k(table.)71 b(If)42 b(the)g(option)f(is)i (giv)m(en)g(t)m(wice,)i Fk(ip)52 b(neigh)g(flush)43 b Fo(also)f(dumps)h(all)f(the)174 4400 y(deleted)34 b(neigh)m(b)s(ours)g (in)f(the)g(format)f(describ)s(ed)i(in)f(the)g(previous)h(subsection.) 174 4683 y Fj(Example:)174 4909 y Fk(netadm@alisa:~)55 b(#)d(ip)g(-s)f(-s)h(n)g(f)f(193.233.7.254)174 5029 y(193.233.7.254)k (dev)d(eth0)g(lladdr)h(00:00:0c:76:3f:85)j(ref)c(5)g(used)g(12/13/20)h (\\)379 5150 y(nud)f(reachable)174 5391 y(***)g(Round)h(1,)f(deleting)h (1)f(entries)h(***)174 5511 y(***)f(Flush)h(is)f(complete)h(after)g(1)e (round)i(***)174 5631 y(netadm@alisa:~)i(#)p eop end %%Page: 21 21 TeXDict begin 21 20 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(21)174 631 y Fn(7)161 b Ff(ip)74 b(route)53 b Fn(|)h(routing)e (table)h(managemen)l(t)174 850 y Fj(Abbreviations:)104 b Fk(route)p Fo(,)34 b Fk(ro)p Fo(,)f Fk(r)p Fo(.)174 1105 y Fj(Ob)6 b(ject:)103 b Fk(route)31 b Fo(en)m(tries)f(in)f(the)g (k)m(ernel)i(routing)d(tables)i(k)m(eep)g(information)f(ab)s(out)f (paths)i(to)174 1226 y(other)j(net)m(w)m(ork)m(ed)i(no)s(des.)321 1346 y(Eac)m(h)d(route)f(en)m(try)h(has)g(a)f Fl(key)40 b Fo(consisting)32 b(of)f(a)g Fl(pr)-5 b(e\014x)42 b Fo(\(i.e.)32 b(a)f(pair)g(con)m(taining)h(a)f(net)m(w)m(ork)174 1467 y(address)41 b(and)e(the)g(length)h(of)e(its)i(mask\))g(and,)h (optionally)-8 b(,)41 b(the)e(TOS)h(v)-5 b(alue.)63 b(An)39 b(IP)h(pac)m(k)m(et)174 1587 y(matc)m(hes)34 b(the)e(route)g(if)f(the)h (highest)h(bits)f(of)g(its)g(destination)g(address)h(are)f(equal)h(to)e (the)h(route)174 1707 y(pre\014x)i(at)e(least)h(up)g(to)f(the)h (pre\014x)g(length)g(and)g(if)f(the)h(TOS)g(of)f(the)h(route)f(is)h (zero)g(or)f(equal)i(to)174 1828 y(the)f(TOS)g(of)f(the)h(pac)m(k)m (et.)321 1948 y(If)i(sev)m(eral)h(routes)g(matc)m(h)f(the)h(pac)m(k)m (et,)h(the)e(follo)m(wing)h(pruning)f(rules)h(are)f(used)h(to)f(select) 174 2069 y(the)e(b)s(est)h(one)e(\(see)i([3]\):)294 2247 y(1.)48 b(The)34 b(longest)f(matc)m(hing)g(pre\014x)h(is)f(selected.)46 b(All)32 b(shorter)i(ones)f(are)g(dropp)s(ed.)294 2442 y(2.)48 b(If)41 b(the)g(TOS)g(of)f(some)i(route)f(with)g(the)g(longest) g(pre\014x)h(is)f(equal)h(to)e(the)h(TOS)h(of)e(the)418 2562 y(pac)m(k)m(et,)35 b(the)e(routes)g(with)g(di\013eren)m(t)h(TOS)f (are)f(dropp)s(ed.)418 2720 y(If)41 b(no)g(exact)h(TOS)f(matc)m(h)h(w)m (as)f(found)g(and)g(routes)h(with)g(TOS=0)f(exist,)j(the)d(rest)h(of) 418 2840 y(routes)33 b(are)g(pruned.)418 2998 y(Otherwise,)i(the)e (route)f(lo)s(okup)h(fails.)294 3193 y(3.)48 b(If)34 b(sev)m(eral)h(routes)f(remain)g(after)f(the)h(previous)h(steps,)g (then)f(the)g(routes)g(with)g(the)g(b)s(est)418 3314 y(preference)h(v)-5 b(alues)33 b(are)g(selected.)294 3509 y(4.)48 b(If)33 b(w)m(e)g(still)h(ha)m(v)m(e)f(sev)m(eral)i (routes,)e(then)g(the)g Fl(\014rst)42 b Fo(of)32 b(them)i(is)f (selected.)654 3669 y Fi(NB.)77 b(Note)38 b(the)g(am)n(biguit)n(y)f(of) h(the)g(last)g(step.)68 b(Unfortunately)-7 b(,)40 b(Lin)n(ux)e (historically)f(allo)n(ws)654 3769 y(suc)n(h)30 b(a)g(bizarre)f (situation.)45 b(The)30 b(sense)g(of)g(the)h(w)n(ord)e(\\\014rst")g (dep)r(ends)i(on)f(the)h(order)e(of)h(route)654 3868 y(additions)i(and)g(it)h(is)f(practically)f(imp)r(ossible)h(to)h(main)n (tain)e(a)h(bundle)h(of)f(suc)n(h)g(routes)g(in)g(this)654 3968 y(order.)418 4149 y Fo(F)-8 b(or)25 b(simplicit)m(y)i(w)m(e)f (will)g(limit)g(ourselv)m(es)h(to)e(the)g(case)h(where)h(suc)m(h)f(a)f (situation)h(is)f(imp)s(os-)418 4270 y(sible)36 b(and)e(routes)i(are)e (uniquely)j(iden)m(ti\014ed)f(b)m(y)f(the)g(triplet)g Fe(f)p Fo(pre\014x,)h(tos,)g(preference)p Fe(g)p Fo(.)418 4390 y(Actually)-8 b(,)44 b(it)d(is)h(imp)s(ossible)g(to)f(create)g (non-unique)i(routes)e(with)h Fk(ip)f Fo(commands)h(de-)418 4511 y(scrib)s(ed)34 b(in)f(this)g(section.)418 4668 y(One)i(useful)h(exception)g(to)e(this)h(rule)g(is)g(the)g(default)g (route)g(on)f(non-forw)m(arding)g(hosts.)418 4789 y(It)c(is)g (\\o\016cially")h(allo)m(w)m(ed)g(to)e(ha)m(v)m(e)i(sev)m(eral)h (fallbac)m(k)e(routes)h(when)f(sev)m(eral)i(routers)e(are)418 4909 y(presen)m(t)43 b(on)d(directly)j(connected)f(net)m(w)m(orks.)70 b(In)41 b(this)h(case,)i(Lin)m(ux-2.2)d(mak)m(es)h(\\dead)418 5029 y(gatew)m(a)m(y)31 b(detection")g([4])f(con)m(trolled)h(b)m(y)g (neigh)m(b)s(our)g(unreac)m(habilit)m(y)h(detection)f(and)f(b)m(y)418 5150 y(advice)36 b(from)f(transp)s(ort)f(proto)s(cols)h(to)f(select)j (a)d(w)m(orking)i(router,)f(so)g(the)h(order)f(of)f(the)418 5270 y(routes)28 b(is)g(not)f(essen)m(tial.)44 b(Ho)m(w)m(ev)m(er,)31 b(in)d(this)g(case,)h(\014ddling)f(with)g(default)g(routes)g(man)m(u-) 418 5391 y(ally)k(is)g(not)g(recommended.)45 b(Use)33 b(the)f(Router)f(Disco)m(v)m(ery)j(proto)s(col)d(\(see)i(App)s(endix)g (D,)418 5511 y(p.52\))42 b(instead.)73 b(Actually)-8 b(,)45 b(Lin)m(ux-2.2)e(IPv6)f(do)s(es)h(not)f(giv)m(e)h(user)g(lev)m (el)g(applications)418 5631 y(an)m(y)33 b(access)i(to)d(default)h (routes.)p eop end %%Page: 22 22 TeXDict begin 22 21 bop 174 324 a Fo(22)2486 b Fg(IP)33 b(Command)h(Reference)321 631 y Fo(Certainly)-8 b(,)42 b(the)e(steps)h(ab)s(o)m(v)m(e)f(are)f(not)h(p)s(erformed)g(exactly)h (in)e(this)h(sequence.)67 b(Instead,)174 751 y(the)44 b(routing)e(table)i(in)f(the)g(k)m(ernel)h(is)g(k)m(ept)g(in)f(some)h (data)e(structure)i(to)f(ac)m(hiev)m(e)i(the)e(\014nal)174 872 y(result)34 b(with)g(minimal)g(cost.)45 b(Ho)m(w)m(ev)m(er,)36 b(not)c(dep)s(ending)j(on)e(a)f(particular)i(routing)e(algorithm)174 992 y(implemen)m(ted)44 b(in)d(the)h(k)m(ernel,)j(w)m(e)d(can)f (summarize)i(the)e(statemen)m(ts)i(ab)s(o)m(v)m(e)f(as:)61 b(a)41 b(route)g(is)174 1112 y(iden)m(ti\014ed)34 b(b)m(y)f(the)g (triplet)f Fe(f)p Fo(pre\014x,)h(tos,)f(preference)p Fe(g)p Fo(.)45 b(This)34 b Fl(key)40 b Fo(lets)33 b(us)g(lo)s(cate)f (the)g(route)g(in)174 1233 y(the)h(routing)g(table.)174 1499 y Fj(Route)27 b(attributes:)98 b Fo(Eac)m(h)24 b(route)g(k)m(ey)h (refers)f(to)g(a)f(routing)g(information)h(record)g(con)m(taining)174 1619 y(the)34 b(data)g(required)h(to)e(deliv)m(er)j(IP)e(pac)m(k)m(ets) i(\(f.e.)e(output)g(device)h(and)f(next)h(hop)e(router\))h(and)174 1740 y(some)40 b(optional)e(attributes)i(\(f.e.)62 b(the)39 b(path)g(MTU)g(or)g(the)g(preferred)g(source)h(address)g(when)174 1860 y(comm)m(unicating)28 b(with)f(this)f(destination\).)43 b(These)27 b(attributes)g(are)f(describ)s(ed)i(in)f(the)f(follo)m(wing) 174 1980 y(subsection.)174 2246 y Fj(Route)41 b(t)m(yp)s(es:)98 b Fo(It)36 b(is)g(imp)s(ortan)m(t)g(that)f(the)i(set)f(of)f(required)i (and)f(optional)g(attributes)g(de-)174 2367 y(p)s(end)31 b(on)g(the)g(route)f Fl(typ)-5 b(e)7 b Fo(.)44 b(The)31 b(most)g(imp)s(ortan)m(t)g(route)f(t)m(yp)s(e)i(is)f Fk(unicast)p Fo(.)44 b(It)31 b(describ)s(es)h(real)174 2487 y(paths)43 b(to)f(other)g(hosts.)72 b(As)43 b(a)f(rule,)j(common)d (routing)g(tables)h(con)m(tain)g(only)f(suc)m(h)i(routes.)174 2607 y(Ho)m(w)m(ev)m(er,)k(there)43 b(are)f(other)h(t)m(yp)s(es)h(of)e (routes)h(with)g(di\013eren)m(t)g(seman)m(tics.)76 b(The)43 b(full)g(list)g(of)174 2728 y(t)m(yp)s(es)34 b(understo)s(o)s(d)f(b)m (y)h(Lin)m(ux-2.2)f(is:)320 2936 y Fe(\017)48 b Fk(unicast)35 b Fo(|)d(the)h(route)g(en)m(try)h(describ)s(es)h(real)e(paths)h(to)e (the)h(destinations)i(co)m(v)m(ered)f(b)m(y)418 3057 y(the)f(route)g(pre\014x.)320 3265 y Fe(\017)48 b Fk(unreachable)34 b Fo(|)d(these)i(destinations)f(are)g(unreac)m(hable.)44 b(P)m(ac)m(k)m(ets)34 b(are)d(discarded)i(and)418 3385 y(the)46 b(ICMP)g(message)h Fl(host)f(unr)-5 b(e)g(achable)51 b Fo(is)46 b(generated.)82 b(The)46 b(lo)s(cal)e(senders)j(get)e(an)418 3506 y Fk(EHOSTUNREACH)36 b Fo(error.)320 3714 y Fe(\017)48 b Fk(blackhole)26 b Fo(|)d(these)i(destinations)g(are)f(unreac)m (hable.)42 b(P)m(ac)m(k)m(ets)26 b(are)e(discarded)h(silen)m(tly)-8 b(.)418 3835 y(The)34 b(lo)s(cal)e(senders)j(get)d(an)h Fk(EINVAL)h Fo(error.)320 4043 y Fe(\017)48 b Fk(prohibit)32 b Fo(|)e(these)h(destinations)g(are)f(unreac)m(hable.)44 b(P)m(ac)m(k)m(ets)33 b(are)c(discarded)j(and)e(the)418 4163 y(ICMP)45 b(message)g Fl(c)-5 b(ommunic)g(ation)43 b(administr)-5 b(atively)44 b(pr)-5 b(ohibite)g(d)53 b Fo(is)44 b(generated.)76 b(The)418 4284 y(lo)s(cal)33 b(senders)h(get)f(an)f Fk(EACCES)i Fo(error.)320 4492 y Fe(\017)48 b Fk(local)43 b Fo(|)f(the)g(destinations)h(are)f (assigned)h(to)e(this)i(host.)71 b(The)43 b(pac)m(k)m(ets)h(are)e(lo)s (op)s(ed)418 4613 y(bac)m(k)34 b(and)f(deliv)m(ered)h(lo)s(cally)-8 b(.)320 4821 y Fe(\017)48 b Fk(broadcast)41 b Fo(|)c(the)i (destinations)h(are)e(broadcast)g(addresses.)63 b(The)39 b(pac)m(k)m(ets)h(are)e(sen)m(t)418 4941 y(as)33 b(link)g(broadcasts.) 320 5150 y Fe(\017)48 b Fk(throw)27 b Fo(|)d(a)h(sp)s(ecial)h(con)m (trol)g(route)f(used)h(together)g(with)g(p)s(olicy)f(rules)i(\(see)f (sec.8,)h(p.35\).)418 5270 y(If)i(suc)m(h)h(a)f(route)g(is)g(selected,) i(lo)s(okup)e(in)g(this)h(table)f(is)g(terminated)h(pretending)g(that)e (no)418 5391 y(route)35 b(w)m(as)g(found.)50 b(Without)35 b(p)s(olicy)g(routing)f(it)h(is)g(equiv)-5 b(alen)m(t)36 b(to)f(the)g(absence)h(of)e(the)418 5511 y(route)29 b(in)f(the)h (routing)f(table.)43 b(The)29 b(pac)m(k)m(ets)h(are)f(dropp)s(ed)g(and) f(the)h(ICMP)h(message)f Fl(net)418 5631 y(unr)-5 b(e)g(achable)39 b Fo(is)33 b(generated.)45 b(The)33 b(lo)s(cal)f(senders)j(get)d(an)h Fk(ENETUNREACH)i Fo(error.)p eop end %%Page: 23 23 TeXDict begin 23 22 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(23)320 631 y Fe(\017)48 b Fk(nat)25 b Fo(|)e(a)g(sp)s(ecial)i(NA) -8 b(T)24 b(route.)41 b(Destinations)24 b(co)m(v)m(ered)i(b)m(y)e(the)h (pre\014x)f(are)g(considered)i(to)418 751 y(b)s(e)h(dumm)m(y)i(\(or)d (external\))i(addresses)h(whic)m(h)g(require)f(translation)f(to)f(real) h(\(or)g(in)m(ternal\))418 872 y(ones)46 b(b)s(efore)f(forw)m(arding.) 81 b(The)46 b(addresses)h(to)d(translate)i(to)e(are)h(selected)i(with)f (the)418 992 y(attribute)33 b Fk(via)p Fo(.)44 b(More)33 b(ab)s(out)f(NA)-8 b(T)34 b(is)f(in)f(App)s(endix)i(C,)g(p.50.)320 1200 y Fe(\017)48 b Fk(anycast)35 b Fo(|)d(\()p Fl(not)j(implemente)-5 b(d)10 b Fo(\))31 b(the)i(destinations)h(are)f Fl(anyc)-5 b(ast)42 b Fo(addresses)35 b(assigned)418 1320 y(to)41 b(this)g(host.)69 b(They)43 b(are)e(mainly)h(equiv)-5 b(alen)m(t)42 b(to)f Fk(local)h Fo(with)g(one)f(di\013erence:)62 b(suc)m(h)418 1441 y(addresses)35 b(are)e(in)m(v)-5 b(alid)33 b(when)h(used)f(as)g(the)g(source)h(address)g(of)e(an)m(y)h(pac)m(k)m (et.)320 1649 y Fe(\017)48 b Fk(multicast)c Fo(|)e(a)f(sp)s(ecial)i(t)m (yp)s(e)g(used)g(for)e(m)m(ulticast)i(routing.)72 b(It)41 b(is)i(not)f(presen)m(t)h(in)418 1769 y(normal)33 b(routing)f(tables.) 174 2034 y Fj(Route)i(tables:)98 b Fo(Lin)m(ux-2.2)30 b(can)g(pac)m(k)g(routes)g(in)m(to)g(sev)m(eral)h(routing)e(tables)h (iden)m(ti\014ed)h(b)m(y)g(a)174 2155 y(n)m(um)m(b)s(er)23 b(in)f(the)h(range)e(from)h(1)f(to)h(255)f(or)g(b)m(y)i(name)f(from)f (the)i(\014le)f Fk(/etc/iproute2/rt_tables)p Fo(.)174 2275 y(By)32 b(default)f(all)f(normal)h(routes)g(are)g(inserted)h(in)m (to)f(the)g Fk(main)h Fo(table)f(\(ID)f(254\))g(and)h(the)g(k)m(ernel) 174 2396 y(only)i(uses)h(this)g(table)f(when)g(calculating)g(routes.) 321 2517 y(Actually)-8 b(,)26 b(one)e(other)g(table)g(alw)m(a)m(ys)h (exists,)i(whic)m(h)e(is)f(in)m(visible)i(but)e(ev)m(en)h(more)f(imp)s (ortan)m(t.)174 2637 y(It)h(is)h(the)f Fk(local)h Fo(table)f(\(ID)f (255\).)41 b(This)25 b(table)h(consists)g(of)e(routes)i(for)e(lo)s(cal) h(and)g(broadcast)g(ad-)174 2758 y(dresses.)45 b(The)32 b(k)m(ernel)g(main)m(tains)f(this)g(table)f(automatically)h(and)g(the)f (administrator)h(usually)174 2878 y(need)j(not)e(mo)s(dify)h(it)g(or)f (ev)m(en)i(lo)s(ok)f(at)f(it.)321 2999 y(The)d(m)m(ultiple)g(routing)f (tables)h(en)m(ter)g(the)g(game)f(when)h Fl(p)-5 b(olicy)31 b(r)-5 b(outing)36 b Fo(is)29 b(used.)43 b(See)29 b(sec.8,)174 3120 y(p.35.)43 b(In)31 b(this)g(case,)h(the)f(table)g(iden)m(ti\014er) h(e\013ectiv)m(ely)h(b)s(ecomes)f(one)f(more)g(parameter,)h(whic)m(h) 174 3240 y(should)e(b)s(e)f(added)g(to)f(the)h(triplet)g Fe(f)p Fo(pre\014x,)h(tos,)g(preference)p Fe(g)g Fo(to)e(uniquely)j (iden)m(tify)f(the)f(route.)174 3534 y Fc(7.1)136 b Fb(ip)60 b(route)f(add)44 b Fc(|)h(add)g(a)g(new)g(route)481 3684 y Fb(ip)60 b(route)f(change)42 b Fc(|)k(c)l(hange)f(a)g(route)481 3833 y Fb(ip)60 b(route)f(replace)42 b Fc(|)j(c)l(hange)g(a)h(route)f (or)g(add)g(a)g(new)g(one)174 4020 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(change)p Fo(,)j Fk(chg)p Fo(;)e Fk(replace)p Fo(,)h Fk(repl)p Fo(.)174 4285 y Fj(Argumen)m(ts:)320 4493 y Fe(\017)48 b Fk(to)k(PREFIX)34 b Fo(or)e Fk(to)52 b(TYPE)g(PREFIX)35 b Fo(\(default\))418 4657 y(|)45 b(the)g(destination)h(pre\014x)g(of)e(the)h(route.)81 b(If)44 b Fk(TYPE)i Fo(is)g(omitted,)i Fk(ip)e Fo(assumes)g(t)m(yp)s(e) 418 4778 y Fk(unicast)p Fo(.)88 b(Other)47 b(v)-5 b(alues)47 b(of)f Fk(TYPE)i Fo(are)f(listed)h(ab)s(o)m(v)m(e.)86 b Fk(PREFIX)48 b Fo(is)f(an)g(IP)g(or)g(IPv6)418 4898 y(address)30 b(optionally)e(follo)m(w)m(ed)h(b)m(y)g(a)f(slash)h(and)f (the)h(pre\014x)g(length.)42 b(If)28 b(the)h(length)f(of)g(the)418 5019 y(pre\014x)41 b(is)e(missing,)k Fk(ip)d Fo(assumes)h(a)e (full-length)g(host)h(route.)64 b(There)40 b(is)g(also)f(a)g(sp)s (ecial)418 5139 y Fk(PREFIX)34 b Fo(|)e Fk(default)j Fo(|)d(whic)m(h)i(is)f(equiv)-5 b(alen)m(t)34 b(to)f(IP)g Fk(0/0)g Fo(or)f(to)g(IPv6)i Fk(::/0)p Fo(.)320 5347 y Fe(\017)48 b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53 b(TOS)418 5511 y Fo(|)37 b(the)g(T)m(yp)s(e)h(Of)f(Service)h(\(TOS\))g (k)m(ey)-8 b(.)58 b(This)38 b(k)m(ey)g(has)f(no)g(asso)s(ciated)h(mask) g(and)f(the)418 5631 y(longest)k(matc)m(h)g(is)f(understo)s(o)s(d)g (as:)59 b(First,)42 b(compare)f(the)f(TOS)h(of)e(the)i(route)f(and)g (of)p eop end %%Page: 24 24 TeXDict begin 24 23 bop 174 324 a Fo(24)2486 b Fg(IP)33 b(Command)h(Reference)418 631 y Fo(the)e(pac)m(k)m(et.)45 b(If)32 b(they)g(are)g(not)g(equal,)g(then)h(the)f(pac)m(k)m(et)h(ma)m (y)g(still)f(matc)m(h)g(a)g(route)g(with)418 751 y(a)40 b(zero)h(TOS.)g Fk(TOS)g Fo(is)f(either)h(an)g(8)e(bit)i(hexadecimal)h (n)m(um)m(b)s(er)g(or)e(an)g(iden)m(ti\014er)i(from)418 872 y Fk(/etc/iproute2/rt)p 1240 872 31 4 v 41 w(dsfield)p Fo(.)320 1078 y Fe(\017)48 b Fk(metric)53 b(NUMBER)34 b Fo(or)e Fk(preference)54 b(NUMBER)418 1241 y Fo(|)32 b(the)h(preference)i(v)-5 b(alue)33 b(of)f(the)h(route.)43 b Fk(NUMBER)35 b Fo(is)e(an)f(arbitrary)h(32bit)f(n)m(um)m(b)s(er.)320 1447 y Fe(\017)48 b Fk(table)53 b(TABLEID)418 1610 y Fo(|)35 b(the)i(table)f(to)f(add)h(this)g(route)g(to.)52 b Fk(TABLEID)38 b Fo(ma)m(y)e(b)s(e)g(a)g(n)m(um)m(b)s(er)h(or)e(a)g (string)i(from)418 1731 y(the)i(\014le)f Fk(/etc/iproute2/rt_tables)p Fo(.)66 b(If)38 b(this)h(parameter)f(is)h(omitted,)h Fk(ip)e Fo(assumes)418 1851 y(the)32 b Fk(main)h Fo(table,)f(with)g (the)g(exception)i(of)d Fk(local)p Fo(,)i Fk(broadcast)h Fo(and)e Fk(nat)g Fo(routes,)h(whic)m(h)418 1971 y(are)g(put)g(in)m(to) f(the)h Fk(local)h Fo(table)f(b)m(y)h(default.)320 2177 y Fe(\017)48 b Fk(dev)k(NAME)418 2341 y Fo(|)32 b(the)h(output)g (device)h(name.)320 2547 y Fe(\017)48 b Fk(via)k(ADDRESS)418 2710 y Fo(|)34 b(the)i(address)g(of)e(the)h(nexthop)h(router.)50 b(Actually)-8 b(,)37 b(the)e(sense)h(of)f(this)g(\014eld)h(dep)s(ends) 418 2830 y(on)43 b(the)h(route)g(t)m(yp)s(e.)76 b(F)-8 b(or)42 b(normal)i Fk(unicast)h Fo(routes)f(it)f(is)h(either)g(the)g (true)f(nexthop)418 2951 y(router)34 b(or,)g(if)g(it)g(is)h(a)e(direct) i(route)f(installed)i(in)e(BSD)g(compatibilit)m(y)h(mo)s(de,)g(it)f (can)g(b)s(e)418 3071 y(a)39 b(lo)s(cal)g(address)i(of)e(the)h(in)m (terface.)65 b(F)-8 b(or)38 b(NA)-8 b(T)40 b(routes)g(it)g(is)g(the)f (\014rst)h(address)h(of)e(the)418 3191 y(blo)s(c)m(k)34 b(of)e(translated)h(IP)g(destinations.)320 3397 y Fe(\017)48 b Fk(src)k(ADDRESS)418 3561 y Fo(|)29 b(the)g(source)h(address)h(to)e (prefer)g(when)i(sending)f(to)f(the)g(destinations)i(co)m(v)m(ered)g(b) m(y)f(the)418 3681 y(route)j(pre\014x.)320 3887 y Fe(\017)48 b Fk(realm)53 b(REALMID)418 4050 y Fo(|)37 b(the)h(realm)g(to)f(whic)m (h)i(this)f(route)f(is)h(assigned.)60 b Fk(REALMID)39 b Fo(ma)m(y)f(b)s(e)g(a)f(n)m(um)m(b)s(er)i(or)e(a)418 4171 y(string)43 b(from)e(the)i(\014le)g Fk(/etc/iproute2/rt_realms)p Fo(.)78 b(Sec.13)42 b(\(p.46\))g(con)m(tains)h(more)418 4291 y(information)33 b(on)f(realms.)320 4497 y Fe(\017)48 b Fk(mtu)k(MTU)34 b Fo(or)e Fk(mtu)52 b(lock)g(MTU)418 4660 y Fo(|)28 b(the)g(MTU)h(along)e(the)i(path)f(to)f(the)h (destination.)43 b(If)28 b(the)h(mo)s(di\014er)f Fk(lock)h Fo(is)f(not)g(used,)418 4781 y(the)39 b(MTU)g(ma)m(y)h(b)s(e)e(up)s (dated)h(b)m(y)g(the)g(k)m(ernel)h(due)f(to)f(P)m(ath)h(MTU)h(Disco)m (v)m(ery)-8 b(.)63 b(If)38 b(the)418 4901 y(mo)s(di\014er)33 b Fk(lock)g Fo(is)g(used,)g(no)f(path)h(MTU)g(disco)m(v)m(ery)i(will)e (b)s(e)f(tried,)h(all)f(pac)m(k)m(ets)i(will)f(b)s(e)418 5021 y(sen)m(t)h(without)f(the)g(DF)f(bit)h(in)f(IPv4)i(case)f(or)f (fragmen)m(ted)i(to)e(MTU)i(for)e(IPv6.)320 5227 y Fe(\017)48 b Fk(window)53 b(NUMBER)418 5391 y Fo(|)36 b(the)h(maximal)g(windo)m(w) h(for)e(TCP)i(to)e(adv)m(ertise)i(to)e(these)i(destinations,)h (measured)418 5511 y(in)30 b(b)m(ytes.)44 b(It)30 b(limits)h(maximal)f (data)g(bursts)g(that)g(our)f(TCP)i(p)s(eers)g(are)f(allo)m(w)m(ed)h (to)e(send)418 5631 y(to)j(us.)p eop end %%Page: 25 25 TeXDict begin 25 24 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(25)320 631 y Fe(\017)48 b Fk(rtt)k(NUMBER)418 794 y Fo(|)32 b(the)h(initial)g(R)-8 b(TT)33 b(\(\\Round)g(T)-8 b(rip)33 b(Time"\))g(estimate.)320 998 y Fe(\017)48 b Fk(rttvar)53 b(NUMBER)418 1161 y Fo(|)32 b([2.3.15+)g(only])h(the)g (initial)g(R)-8 b(TT)33 b(v)-5 b(ariance)33 b(estimate.)320 1366 y Fe(\017)48 b Fk(ssthresh)54 b(NUMBER)418 1528 y Fo(|)32 b([2.3.15+)g(only])h(an)g(estimate)g(for)f(the)h(initial)g (slo)m(w)h(start)e(threshold.)320 1733 y Fe(\017)48 b Fk(cwnd)53 b(NUMBER)418 1896 y Fo(|)40 b([2.3.15+)f(only])i(the)f (clamp)h(for)e(congestion)i(windo)m(w.)68 b(It)40 b(is)h(ignored)f(if)g (the)g Fk(lock)418 2016 y Fo(\015ag)32 b(is)i(not)e(used.)320 2221 y Fe(\017)48 b Fk(advmss)53 b(NUMBER)418 2383 y Fo(|)47 b([2.3.15+)f(only])i(the)g(MSS)f(\(\\Maximal)h(Segmen)m(t)h (Size"\))e(to)g(adv)m(ertise)i(to)e(these)418 2504 y(destinations)36 b(when)f(establishing)h(TCP)f(connections.)51 b(If)34 b(it)g(is)h(not)f(giv)m(en,)h(Lin)m(ux)h(uses)418 2624 y(a)d(default)f(v)-5 b(alue)33 b(calculated)h(from)e(the)h(\014rst)g (hop)g(device)h(MTU.)654 2790 y Fi(NB.)56 b(If)28 b(the)g(path)g(to)f (these)h(destination)f(is)h(asymmetric,)e(this)i(guess)f(ma)n(y)g(b)r (e)h(wrong.)320 2994 y Fe(\017)48 b Fk(reordering)54 b(NUMBER)418 3157 y Fo(|)26 b([2.3.15+)f(only])h(Maximal)h(reordering)f (on)g(the)g(path)g(to)g(this)g(destination.)42 b(If)26 b(it)g(is)g(not)418 3277 y(giv)m(en,)f(Lin)m(ux)e(uses)g(the)g(v)-5 b(alue)22 b(selected)i(with)e Fk(sysctl)h Fo(v)-5 b(ariable)22 b Fk(net/ipv4/tcp_reordering)p Fo(.)320 3482 y Fe(\017)48 b Fk(nexthop)53 b(NEXTHOP)418 3645 y Fo(|)33 b(the)h(nexthop)g(of)f(a)f (m)m(ultipath)j(route.)45 b Fk(NEXTHOP)35 b Fo(is)f(a)f(complex)i(v)-5 b(alue)33 b(with)h(its)g(o)m(wn)418 3765 y(syn)m(tax)g(similar)g(to)e (the)h(top)f(lev)m(el)j(argumen)m(t)e(lists:)528 3970 y Fj({)49 b Fk(via)j(ADDRESS)34 b Fo(is)f(the)g(nexthop)h(router.)528 4132 y Fj({)49 b Fk(dev)j(NAME)33 b Fo(is)h(the)f(output)f(device.)528 4295 y Fj({)49 b Fk(weight)k(NUMBER)31 b Fo(is)e(a)h(w)m(eigh)m(t)g (for)f(this)h(elemen)m(t)h(of)e(a)g(m)m(ultipath)i(route)e (re\015ecting)633 4415 y(its)k(relativ)m(e)h(bandwidth)f(or)g(qualit)m (y)-8 b(.)320 4620 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VAL)418 4782 y Fo(|)28 b(the)h(scop)s(e)g(of)f(the)h(destinations)g(co)m(v)m (ered)i(b)m(y)e(the)g(route)f(pre\014x.)43 b Fk(SCOPE_VAL)31 b Fo(ma)m(y)e(b)s(e)418 4903 y(a)24 b(n)m(um)m(b)s(er)i(or)e(a)h (string)f(from)h(the)f(\014le)h Fk(/etc/iproute2/rt_scopes)q Fo(.)46 b(If)25 b(this)g(parameter)418 5023 y(is)38 b(omitted,)h Fk(ip)f Fo(assumes)i(scop)s(e)e Fk(global)h Fo(for)d(all)i(gatew)m(a)m (y)m(ed)h Fk(unicast)g Fo(routes,)g(scop)s(e)418 5144 y Fk(link)26 b Fo(for)f(direct)g Fk(unicast)i Fo(and)e Fk(broadcast)j Fo(routes)d(and)g(scop)s(e)h Fk(host)g Fo(for)e Fk(local)j Fo(routes.)320 5348 y Fe(\017)48 b Fk(protocol)54 b(RTPROTO)418 5511 y Fo(|)37 b(the)h(routing)f(proto)s (col)g(iden)m(ti\014er)i(of)e(this)h(route.)59 b Fk(RTPROTO)39 b Fo(ma)m(y)f(b)s(e)g(a)f(n)m(um)m(b)s(er)i(or)418 5631 y(a)32 b(string)h(from)f(the)g(\014le)h Fk(/etc/iproute2/rt_protos)p Fo(.)49 b(If)33 b(the)f(routing)g(proto)s(col)g(ID)g(is)p eop end %%Page: 26 26 TeXDict begin 26 25 bop 174 324 a Fo(26)2486 b Fg(IP)33 b(Command)h(Reference)418 631 y Fo(not)40 b(giv)m(en,)k Fk(ip)d Fo(assumes)h(proto)s(col)e Fk(boot)h Fo(\(i.e.)g(it)f(assumes)i (the)f(route)f(w)m(as)h(added)g(b)m(y)418 751 y(someone)30 b(who)g(do)s(esn't)f(understand)i(what)e(they)h(are)f(doing\).)42 b(Sev)m(eral)31 b(proto)s(col)d(v)-5 b(alues)418 872 y(ha)m(v)m(e)34 b(a)e(\014xed)i(in)m(terpretation.)45 b(Namely:)528 1077 y Fj({)k Fk(redirect)34 b Fo(|)f(the)g(route)f(w)m (as)i(installed)g(due)f(to)f(an)g(ICMP)i(redirect.)528 1239 y Fj({)49 b Fk(kernel)33 b Fo(|)f(the)g(route)g(w)m(as)h (installed)g(b)m(y)g(the)f(k)m(ernel)h(during)g(auto)s (con\014guration.)528 1401 y Fj({)49 b Fk(boot)36 b Fo(|)e(the)h(route) g(w)m(as)g(installed)h(during)f(the)h(b)s(o)s(otup)e(sequence.)52 b(If)35 b(a)f(routing)633 1522 y(daemon)f(starts,)g(it)g(will)g(purge)g (all)f(of)g(them.)528 1684 y Fj({)49 b Fk(static)25 b Fo(|)e(the)i(route)e(w)m(as)i(installed)g(b)m(y)g(the)f(administrator)g (to)g(o)m(v)m(erride)h(dynamic)633 1805 y(routing.)46 b(Routing)33 b(daemon)h(will)g(resp)s(ect)g(them)g(and,)g(probably)-8 b(,)34 b(ev)m(en)h(adv)m(ertise)633 1925 y(them)e(to)f(its)h(p)s(eers.) 528 2087 y Fj({)49 b Fk(ra)33 b Fo(|)f(the)h(route)g(w)m(as)g (installed)h(b)m(y)f(Router)g(Disco)m(v)m(ery)h(proto)s(col.)418 2292 y(The)j(rest)g(of)f(the)g(v)-5 b(alues)37 b(are)f(not)g(reserv)m (ed)j(and)d(the)g(administrator)h(is)f(free)h(to)f(assign)418 2413 y(\(or)d(not)g(to)g(assign\))h(proto)s(col)e(tags.)46 b(A)m(t)33 b(least,)h(routing)f(daemons)h(should)g(tak)m(e)g(care)g(of) 418 2533 y(setting)k(some)g(unique)g(proto)s(col)f(v)-5 b(alues,)39 b(f.e.)e(as)g(they)h(are)f(assigned)h(in)f Fk(rtnetlink.h)418 2653 y Fo(or)32 b(in)h Fk(rt_protos)i Fo(database.)320 2858 y Fe(\017)48 b Fk(onlink)418 3021 y Fo(|)30 b(pretend)h(that)f(the)g(nexthop)h(is)g(directly)g(attac)m (hed)g(to)e(this)i(link,)h(ev)m(en)f(if)f(it)g(do)s(es)g(not)418 3141 y(matc)m(h)j(an)m(y)g(in)m(terface)g(pre\014x.)44 b(One)32 b(application)h(of)e(this)i(option)f(ma)m(y)h(b)s(e)f(found)g (in)g([6].)320 3346 y Fe(\017)48 b Fk(equalize)418 3508 y Fo(|)42 b(allo)m(w)g(pac)m(k)m(et)h(b)m(y)g(pac)m(k)m(et)h (randomization)e(on)g(m)m(ultipath)g(routes.)72 b(Without)43 b(this)418 3629 y(mo)s(di\014er,)31 b(the)e(route)g(will)h(b)s(e)g (frozen)f(to)g(one)g(selected)i(nexthop,)g(so)f(that)f(load)g (splitting)418 3749 y(will)k(only)f(o)s(ccur)h(on)f(p)s(er-\015o)m(w)g (base.)44 b Fk(equalize)34 b Fo(only)f(w)m(orks)g(if)f(the)h(k)m(ernel) g(is)g(patc)m(hed.)411 3957 y Fi(NB.)50 b(Actually)25 b(there)g(are)f(more)g(commands:)35 b Fd(prepend)23 b Fi(do)r(es)h(the)i(same)e(thing)i(as)e(classic)g Fd(route)42 b(add)p Fi(,)411 4056 y(i.e.)33 b(adds)h(a)f(route,)i(ev)n(en)e(if)h (another)f(route)g(to)h(the)g(same)f(destination)h(exists.)54 b(Its)34 b(opp)r(osite)g(case)f(is)411 4156 y Fd(append)p Fi(,)25 b(whic)n(h)i(adds)h(the)g(route)f(to)g(the)h(end)g(of)f(the)h (list.)37 b(Av)n(oid)28 b(these)f(features.)411 4303 y(NB.)61 b(More)29 b(sad)h(news,)h(IPv6)e(only)h(understands)g(the)h Fd(append)d Fi(command)i(correctly)-7 b(.)44 b(All)30 b(the)h(others)411 4403 y(are)26 b(translated)h(in)n(to)g Fd(append)e Fi(commands.)37 b(Certainly)-7 b(,)27 b(this)h(will)f(c)n (hange)g(in)h(the)g(future.)174 4664 y Fj(Examples:)320 4869 y Fe(\017)48 b Fo(add)33 b(a)f(plain)h(route)g(to)f(net)m(w)m(ork) i(10.0.0/24)d(via)i(gatew)m(a)m(y)h(193.233.7.65)521 5116 y Fk(ip)52 b(route)g(add)g(10.0.0/24)i(via)e(193.233.7.65)320 5363 y Fe(\017)c Fo(c)m(hange)34 b(it)e(to)g(a)h(direct)g(route)g(via)g (the)g Fk(dummy)h Fo(device)521 5609 y Fk(ip)52 b(ro)f(chg)h(10.0.0/24) i(dev)e(dummy)p eop end %%Page: 27 27 TeXDict begin 27 26 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(27)320 631 y Fe(\017)48 b Fo(add)33 b(a)f(default)h(m)m(ultipath)h (route)e(splitting)i(the)f(load)f(b)s(et)m(w)m(een)j Fk(ppp0)e Fo(and)g Fk(ppp1)521 858 y(ip)52 b(route)g(add)g(default)h (scope)g(global)g(nexthop)g(dev)f(ppp0)g(\\)2264 978 y(nexthop)h(dev)f(ppp1)418 1205 y Fo(Note)42 b(the)f(scop)s(e)h(v)-5 b(alue.)70 b(It)42 b(is)g(not)f(necessary)i(but)f(it)f(informs)h(the)g (k)m(ernel)h(that)e(this)418 1325 y(route)d(is)h(gatew)m(a)m(y)m(ed)h (rather)e(than)g(direct.)61 b(Actually)-8 b(,)40 b(if)e(y)m(ou)h(kno)m (w)g(the)g(addresses)h(of)418 1446 y(remote)33 b(endp)s(oin)m(ts)h(it)f (w)m(ould)g(b)s(e)g(b)s(etter)g(to)f(use)i(the)f Fk(via)g Fo(parameter.)320 1644 y Fe(\017)48 b Fo(announce)28 b(that)f(the)g(address)h(192.203.80.144)c(is)k(not)e(a)h(real)g(one,)h (but)f(should)h(b)s(e)f(trans-)418 1764 y(lated)33 b(to)f(193.233.7.83) f(b)s(efore)i(forw)m(arding)521 1991 y Fk(ip)52 b(route)g(add)g(nat)g (192.203.80.144)j(via)d(193.233.7.83)418 2218 y Fo(Bac)m(kw)m(ard)24 b(translation)f(is)h(setup)f(with)h(p)s(olicy)f(rules)h(describ)s(ed)g (in)f(the)g(follo)m(wing)g(section)418 2338 y(\(sec.8,)34 b(p.35\).)174 2625 y Fc(7.2)136 b Fb(ip)60 b(route)f(delete)42 b Fc(|)k(delete)g(a)f(route)174 2809 y Fj(Abbreviations:)104 b Fk(delete)p Fo(,)34 b Fk(del)p Fo(,)g Fk(d)p Fo(.)174 3066 y Fj(Argumen)m(ts:)103 b Fk(ip)52 b(route)h(del)38 b Fo(has)g(the)h(same)f(argumen)m(ts)h(as)f Fk(ip)52 b(route)h(add)p Fo(,)40 b(but)e(their)174 3187 y(seman)m(tics)d(are)e (a)f(bit)h(di\013eren)m(t.)321 3307 y(Key)26 b(v)-5 b(alues)26 b(\()p Fk(to)p Fo(,)h Fk(tos)p Fo(,)h Fk(preference)f Fo(and)f Fk(table)p Fo(\))g(select)h(the)f(route)f(to)g(delete.)42 b(If)26 b(optional)174 3427 y(attributes)35 b(are)e(presen)m(t,)j Fk(ip)e Fo(v)m(eri\014es)i(that)d(they)i(coincide)f(with)h(the)f (attributes)g(of)f(the)h(route)174 3548 y(to)40 b(delete.)66 b(If)39 b(no)h(route)g(with)g(the)g(giv)m(en)h(k)m(ey)h(and)d (attributes)i(w)m(as)f(found,)i Fk(ip)52 b(route)h(del)174 3668 y Fo(fails.)411 3792 y Fi(NB.)59 b(Lin)n(ux-2.0)28 b(had)i(the)g(option)f(to)h(delete)g(a)f(route)g(selected)g(only)h(b)n (y)f(pre\014x)g(address,)g(ignoring)f(its)411 3891 y(length)f(\(i.e.)i (netmask\).)37 b(This)27 b(option)h(no)f(longer)g(exists)g(b)r(ecause)g (it)i(w)n(as)d(am)n(biguous.)36 b(Ho)n(w)n(ev)n(er,)26 b(lo)r(ok)411 3991 y(at)h Fd(ip)43 b(route)e(flush)26 b Fi(\(sec.7.4,)h(p.31\))g(whic)n(h)g(pro)n(vides)g(similar)f(and)i(ev) n(en)f(ric)n(her)f(functionalit)n(y)-7 b(.)174 4248 y Fj(Example:)320 4436 y Fe(\017)48 b Fo(delete)34 b(the)f(m)m(ultipath)h (route)e(created)i(b)m(y)f(the)g(command)h(in)e(previous)i(subsection) 521 4663 y Fk(ip)52 b(route)g(del)g(default)h(scope)g(global)g(nexthop) g(dev)f(ppp0)g(\\)2264 4783 y(nexthop)h(dev)f(ppp1)174 5069 y Fc(7.3)136 b Fb(ip)60 b(route)f(show)43 b Fc(|)j(list)g(routes) 174 5254 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)174 5511 y Fj(Description:)98 b Fo(the)22 b(command)h(displa)m(ys) h(the)e(con)m(ten)m(ts)h(of)f(the)g(routing)f(tables)i(or)e(the)i (route\(s\))174 5631 y(selected)35 b(b)m(y)e(some)h(criteria.)p eop end %%Page: 28 28 TeXDict begin 28 27 bop 174 324 a Fo(28)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320 840 y Fe(\017)48 b Fk(to)k(SELECTOR)35 b Fo(\(default\))418 1005 y(|)j(only)h(select)g(routes)g(from)f(the)g(giv)m(en)i(range)e(of) g(destinations.)61 b Fk(SELECTOR)41 b Fo(consists)418 1125 y(of)k(an)g(optional)f(mo)s(di\014er)i(\()p Fk(root)p Fo(,)j Fk(match)d Fo(or)f Fk(exact)p Fo(\))h(and)f(a)g(pre\014x.)81 b Fk(root)53 b(PREFIX)418 1246 y Fo(selects)35 b(routes)f(with)g (pre\014xes)g(not)f(shorter)h(than)f Fk(PREFIX)p Fo(.)i(F.e.)e Fk(root)52 b(0/0)34 b Fo(selects)h(the)418 1366 y(en)m(tire)c(routing)f (table.)43 b Fk(match)52 b(PREFIX)32 b Fo(selects)g(routes)e(with)h (pre\014xes)h(not)d(longer)h(than)418 1486 y Fk(PREFIX)p Fo(.)43 b(F.e.)e Fk(match)52 b(10.0/16)43 b Fo(selects)g Fk(10.0/16)p Fo(,)i Fk(10/8)c Fo(and)g Fk(0/0)p Fo(,)j(but)d(it)g(do)s (es)g(not)418 1607 y(select)k Fk(10.1/16)g Fo(and)e Fk(10.0.0/24)p Fo(.)77 b(And)44 b Fk(exact)52 b(PREFIX)45 b Fo(\(or)d(just)i Fk(PREFIX)p Fo(\))g(selects)418 1727 y(routes)29 b(with)f(this)h(exact) g(pre\014x.)43 b(If)28 b(neither)g(of)g(these)h(options)f(are)g(presen) m(t,)j Fk(ip)d Fo(assumes)418 1848 y Fk(root)53 b(0/0)33 b Fo(i.e.)g(it)g(lists)g(the)g(en)m(tire)h(table.)320 2057 y Fe(\017)48 b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53 b(TOS)418 2221 y Fo(|)32 b(only)h(select)h(routes)g(with)f(the)g(giv)m (en)h(TOS.)320 2431 y Fe(\017)48 b Fk(table)53 b(TABLEID)418 2595 y Fo(|)42 b(sho)m(w)h(the)f(routes)h(from)f(this)h(table\(s\).)72 b(The)43 b(default)g(setting)g(is)f(to)g(sho)m(w)h Fk(table)418 2716 y(main)p Fo(.)h Fk(TABLEID)31 b Fo(ma)m(y)f(either)h(b)s(e)e(the)h (ID)f(of)g(a)h(real)f(table)h(or)f(one)h(of)f(the)h(sp)s(ecial)g(v)-5 b(alues:)528 2925 y Fj({)49 b Fk(all)33 b Fo(|)f(list)h(all)g(of)f(the) h(tables.)528 3089 y Fj({)49 b Fk(cache)34 b Fo(|)e(dump)h(the)g (routing)g(cac)m(he.)654 3301 y Fi(NB.)74 b(IPv6)36 b(has)h(a)f(single) g(table.)65 b(Ho)n(w)n(ev)n(er,)37 b(splitting)g(it)h(in)n(to)e Fd(main)p Fi(,)i Fd(local)d Fi(and)i Fd(cache)e Fi(is)654 3401 y(em)n(ulated)28 b(b)n(y)f(the)h Fd(ip)f Fi(utilit)n(y)-7 b(.)320 3610 y Fe(\017)48 b Fk(cloned)34 b Fo(or)f Fk(cached)418 3775 y Fo(|)26 b(list)h(cloned)g(routes)g(i.e.)f(routes)h(whic)m(h)h(w) m(ere)f(dynamically)h(fork)m(ed)f(from)f(other)h(routes)418 3895 y(b)s(ecause)h(some)f(route)f(attribute)g(\(f.e.)h(MTU\))g(w)m(as) g(up)s(dated.)41 b(Actually)-8 b(,)29 b(it)d(is)h(equiv)-5 b(alen)m(t)418 4015 y(to)32 b Fk(table)53 b(cache)p Fo(.)320 4224 y Fe(\017)48 b Fk(from)53 b(SELECTOR)418 4389 y Fo(|)30 b(the)h(same)g(syn)m(tax)h(as)e(for)g Fk(to)p Fo(,)h(but)g(it)f(binds)h(the)g(source)g(address)h(range)e(rather)g (than)418 4510 y(destinations.)45 b(Note)33 b(that)f(the)h Fk(from)h Fo(option)e(only)h(w)m(orks)h(with)g(cloned)f(routes.)320 4719 y Fe(\017)48 b Fk(protocol)54 b(RTPROTO)418 4884 y Fo(|)32 b(only)h(list)g(routes)h(of)e(this)h(proto)s(col.)320 5093 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VAL)418 5257 y Fo(|)32 b(only)h(list)g(routes)h(with)f(this)g(scop)s(e.)320 5467 y Fe(\017)48 b Fk(type)53 b(TYPE)418 5631 y Fo(|)32 b(only)h(list)g(routes)h(of)e(this)h(t)m(yp)s(e.)p eop end %%Page: 29 29 TeXDict begin 29 28 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(29)320 631 y Fe(\017)48 b Fk(dev)k(NAME)418 803 y Fo(|)32 b(only)h(list)g(routes)h(going)e(via)h(this)g(device.)320 1028 y Fe(\017)48 b Fk(via)k(PREFIX)418 1200 y Fo(|)32 b(only)h(list)g(routes)h(going)e(via)h(the)g(nexthop)g(routers)g (selected)i(b)m(y)f Fk(PREFIX)p Fo(.)320 1425 y Fe(\017)48 b Fk(src)k(PREFIX)418 1597 y Fo(|)32 b(only)h(list)g(routes)h(with)f (preferred)g(source)h(addresses)h(selected)f(b)m(y)g Fk(PREFIX)p Fo(.)320 1822 y Fe(\017)48 b Fk(realm)53 b(REALMID)34 b Fo(or)e Fk(realms)53 b(FROMREALM/TOREALM)418 1994 y Fo(|)32 b(only)h(list)g(routes)h(with)f(these)h(realms.)174 2280 y Fj(Examples:)99 b Fo(Let)33 b(us)g(coun)m(t)h(routes)f(of)f (proto)s(col)g Fk(gated/bgp)j Fo(on)d(a)h(router:)174 2509 y Fk(kuznet@amber:~)55 b($)d(ip)g(ro)f(ls)h(proto)h(gated/bgp)h(|) d(wc)328 2629 y(1413)206 b(9891)g(79010)174 2750 y(kuznet@amber:~)55 b($)174 2974 y Fo(T)-8 b(o)34 b(coun)m(t)g(the)g(size)h(of)e(the)h (routing)g(cac)m(he,)h(w)m(e)g(ha)m(v)m(e)f(to)g(use)g(the)g Fk(-o)g Fo(option)g(b)s(ecause)h(cac)m(hed)174 3094 y(attributes)f(can) f(tak)m(e)g(more)g(than)f(one)h(line)g(of)g(output:)174 3323 y Fk(kuznet@amber:~)55 b($)d(ip)g(-o)f(ro)h(ls)g(cloned)h(|)e(wc) 328 3444 y(159)206 b(2543)g(18707)174 3564 y(kuznet@amber:~)55 b($)174 3850 y Fj(Output)46 b(format:)98 b Fo(The)41 b(output)f(of)g(this)g(command)h(consists)h(of)d(p)s(er)h(route)g (records)h(sep-)174 3970 y(arated)48 b(b)m(y)g(line)g(feeds.)88 b(Ho)m(w)m(ev)m(er,)54 b(some)48 b(records)g(ma)m(y)g(consist)g(of)f (more)h(than)f(one)h(line:)174 4090 y(particularly)-8 b(,)47 b(this)d(is)g(the)g(case)g(when)g(the)g(route)g(is)f(cloned)i (or)e(y)m(ou)h(requested)h(additional)174 4211 y(statistics.)57 b(If)36 b(the)g Fk(-o)h Fo(option)f(w)m(as)i(giv)m(en,)g(then)f(line)g (feeds)g(separating)g(lines)h(inside)f(records)174 4331 y(are)c(replaced)h(with)f(the)g(bac)m(kslash)i(sign.)321 4456 y(The)e(output)f(has)h(the)f(same)i(syn)m(tax)f(as)g(argumen)m(ts) g(giv)m(en)h(to)d Fk(ip)52 b(route)h(add)p Fo(,)33 b(so)f(that)g(it)174 4576 y(can)h(b)s(e)g(understo)s(o)s(d)g(easily)-8 b(.)45 b(F.e.)174 4805 y Fk(kuznet@amber:~)55 b($)d(ip)g(ro)f(ls)h (193.233.7/24)174 4925 y(193.233.7.0/24)j(dev)d(eth0)104 b(proto)53 b(gated/conn)105 b(scope)52 b(link)h(\\)379 5046 y(src)f(193.233.7.65)j(realms)e(inr.ac)174 5166 y(kuznet@amber:~)i($)321 5391 y Fo(If)28 b(y)m(ou)g(list)h(cloned)f(en) m(tries,)j(the)d(output)g(con)m(tains)h(other)f(attributes)h(whic)m(h)h (are)e(ev)-5 b(aluated)174 5511 y(during)25 b(route)g(calculation)h (and)f(up)s(dated)g(during)g(route)g(lifetime.)42 b(An)25 b(example)i(of)d(the)h(output)174 5631 y(is:)p eop end %%Page: 30 30 TeXDict begin 30 29 bop 174 324 a Fo(30)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fk(kuznet@amber:~)55 b($)d(ip)g(ro)f(ls)h(193.233.7.82)j(tab)d(cache)174 751 y(193.233.7.82)j(from)d(193.233.7.82)j(dev)d(eth0)103 b(src)52 b(193.233.7.65)j(\\)277 872 y(realms)e(inr.ac/inr.ac)379 992 y(cache)g(<src-direct,redirect>)108 b(mtu)52 b(1500)h(rtt)f(300)g (iif)g(eth0)174 1112 y(193.233.7.82)j(dev)d(eth0)103 b(src)53 b(193.233.7.65)h(realms)f(inr.ac)379 1233 y(cache)104 b(mtu)52 b(1500)h(rtt)f(300)174 1353 y(kuznet@amber:~)j($)411 1570 y Fi(NB.)84 b(The)42 b(route)f(lo)r(oks)g(a)h(bit)h(strange,)h(do) r(esn't)e(it?)81 b(Did)42 b(y)n(ou)g(notice)f(that)i(it)f(is)g(a)g (path)g(from)411 1670 y(193.233.7.82)29 b(bac)n(k)j(to)h(193.233.82?)50 b(W)-7 b(ell,)35 b(y)n(ou)d(will)h(see)g(in)g(the)h(section)f(on)f Fd(ip)43 b(route)f(get)32 b Fi(\(p.34\))411 1769 y(ho)n(w)27 b(it)h(app)r(eared.)174 1915 y Fo(The)45 b(second)f(line,)j(starting)d (with)g(the)g(w)m(ord)g Fk(cache)p Fo(,)j(sho)m(ws)e(additional)f (attributes)g(whic)m(h)174 2036 y(normal)33 b(routes)g(do)g(not)f(p)s (ossess.)45 b(Cac)m(hed)35 b(\015ags)d(are)h(summarized)h(in)f(angle)g (brac)m(k)m(ets:)320 2250 y Fe(\017)48 b Fk(local)41 b Fo(|)d(pac)m(k)m(ets)k(are)d(deliv)m(ered)j(lo)s(cally)-8 b(.)63 b(It)40 b(stands)g(for)f(lo)s(opbac)m(k)g(unicast)i(routes,)418 2370 y(for)e(broadcast)g(routes)h(and)f(for)g(m)m(ulticast)h(routes,)h (if)e(this)h(host)f(is)h(a)f(mem)m(b)s(er)h(of)f(the)418 2490 y(corresp)s(onding)34 b(group.)320 2704 y Fe(\017)48 b Fk(reject)e Fo(|)e(the)g(path)g(is)h(bad.)78 b(An)m(y)46 b(attempt)e(to)g(use)h(it)f(results)i(in)e(an)g(error.)78 b(See)418 2825 y(attribute)33 b Fk(error)h Fo(b)s(elo)m(w)f(\(p.31\).) 320 3038 y Fe(\017)48 b Fk(mc)33 b Fo(|)f(the)h(destination)h(is)f(m)m (ulticast.)320 3252 y Fe(\017)48 b Fk(brd)34 b Fo(|)e(the)h (destination)g(is)g(broadcast.)320 3466 y Fe(\017)48 b Fk(src-direct)35 b Fo(|)d(the)h(source)h(is)f(on)g(a)f(directly)i (connected)g(in)m(terface.)320 3680 y Fe(\017)48 b Fk(redirected)35 b Fo(|)d(the)h(route)g(w)m(as)h(created)f(b)m(y)h(an)e(ICMP)i (Redirect.)320 3894 y Fe(\017)48 b Fk(redirect)35 b Fo(|)d(pac)m(k)m (ets)j(going)d(via)h(this)g(route)g(will)g(trigger)f(an)h(ICMP)h (redirect.)320 4108 y Fe(\017)48 b Fk(fastroute)35 b Fo(|)d(the)h(route)g(is)g(eligible)h(to)e(b)s(e)h(used)g(for)f (fastroute.)320 4321 y Fe(\017)48 b Fk(equalize)35 b Fo(|)d(mak)m(e)i(pac)m(k)m(et)g(b)m(y)f(pac)m(k)m(et)i(randomization)d (along)h(this)g(path.)320 4535 y Fe(\017)48 b Fk(dst-nat)35 b Fo(|)d(the)h(destination)g(address)h(requires)h(translation.)320 4749 y Fe(\017)48 b Fk(src-nat)35 b Fo(|)d(the)h(source)g(address)h (requires)h(translation.)320 4963 y Fe(\017)48 b Fk(masq)31 b Fo(|)f(the)g(source)i(address)f(requires)h(masquerading.)44 b(This)31 b(feature)g(disapp)s(eared)g(in)418 5083 y(lin)m(ux-2.4.)320 5297 y Fe(\017)48 b Fk(notify)h Fo(|)e(\()p Fl(not)h(implemente)-5 b(d)p Fo(\))46 b(c)m(hange/deletion)j(of)e(this)h(route)g(will)g (trigger)f(R)-8 b(T-)418 5418 y(NETLINK)34 b(noti\014cation.)321 5631 y(Then)f(some)h(optional)e(attributes)i(follo)m(w:)p eop end %%Page: 31 31 TeXDict begin 31 30 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(31)320 631 y Fe(\017)48 b Fk(error)33 b Fo(|)d(on)h Fk(reject)i Fo(routes)f(it)f(is)h(error)f(co)s(de)g(returned)h(to)f(lo) s(cal)g(senders)i(when)f(they)418 751 y(try)j(to)f(use)i(this)f(route.) 50 b(These)36 b(error)e(co)s(des)i(are)e(translated)h(in)m(to)g(ICMP)h (error)e(co)s(des,)418 872 y(sen)m(t)c(to)e(remote)g(senders,)k (according)c(to)g(the)h(rules)g(describ)s(ed)h(ab)s(o)m(v)m(e)f(in)g (the)f(subsection)418 992 y(dev)m(oted)34 b(to)f(route)f(t)m(yp)s(es)i (\(p.22\).)320 1203 y Fe(\017)48 b Fk(expires)35 b Fo(|)d(this)h(en)m (try)h(will)f(expire)h(after)e(this)h(timeout.)320 1414 y Fe(\017)48 b Fk(iif)34 b Fo(|)e(the)h(pac)m(k)m(ets)h(for)e(this)i (path)e(are)h(exp)s(ected)h(to)e(arriv)m(e)i(on)e(this)i(in)m(terface.) 174 1682 y Fj(Statistics:)98 b Fo(With)45 b(the)h Fk(-statistics)i Fo(option,)g(more)d(information)g(ab)s(out)f(this)i(route)f(is)174 1803 y(sho)m(wn:)320 2014 y Fe(\017)j Fk(users)34 b Fo(|)e(the)h(n)m (um)m(b)s(er)h(of)e(users)i(of)e(this)h(en)m(try)-8 b(.)320 2224 y Fe(\017)48 b Fk(age)34 b Fo(|)e(sho)m(ws)i(when)g(this)f(route)f (w)m(as)i(last)f(used.)320 2435 y Fe(\017)48 b Fk(used)34 b Fo(|)e(the)h(n)m(um)m(b)s(er)h(of)e(lo)s(okups)h(of)f(this)h(route)g (since)h(its)f(creation.)174 2733 y Fc(7.4)136 b Fb(ip)60 b(route)f(flush)43 b Fc(|)i(\015ush)f(routing)i(tables)174 2921 y Fj(Abbreviations:)104 b Fk(flush)p Fo(,)34 b Fk(f)p Fo(.)174 3189 y Fj(Description:)98 b Fo(this)34 b(command)f(\015ushes)h (routes)g(selected)g(b)m(y)g(some)f(criteria.)174 3458 y Fj(Argumen)m(ts:)98 b Fo(the)31 b(argumen)m(ts)g(ha)m(v)m(e)h(the)e (same)i(syn)m(tax)f(and)g(seman)m(tics)h(as)e(the)h(argumen)m(ts)174 3579 y(of)i Fk(ip)51 b(route)i(show)p Fo(,)34 b(but)f(routing)g(tables) g(are)g(not)g(listed)h(but)f(purged.)45 b(The)33 b(only)h(di\013erence) 174 3699 y(is)e(the)f(default)g(action:)42 b Fk(show)32 b Fo(dumps)g(all)f(the)g(IP)g(main)g(routing)g(table)g(but)g Fk(flush)h Fo(prin)m(ts)g(the)174 3819 y(help)s(er)f(page.)43 b(The)30 b(reason)h(for)e(this)h(di\013erence)i(do)s(es)e(not)g (require)h(an)m(y)g(explanation,)g(do)s(es)f(it?)174 4088 y Fj(Statistics:)98 b Fo(With)25 b(the)g Fk(-statistics)j Fo(option,)e(the)f(command)g(b)s(ecomes)h(v)m(erb)s(ose.)43 b(It)24 b(prin)m(ts)174 4209 y(out)k(the)g(n)m(um)m(b)s(er)i(of)d (deleted)i(routes)g(and)f(the)g(n)m(um)m(b)s(er)h(of)f(rounds)g(made)h (to)e(\015ush)i(the)f(routing)174 4329 y(table.)43 b(If)29 b(the)g(option)g(is)h(giv)m(en)g(t)m(wice,)h Fk(ip)52 b(route)g(flush)31 b Fo(also)e(dumps)h(all)f(the)g(deleted)i(routes)174 4449 y(in)i(the)g(format)f(describ)s(ed)j(in)d(the)h(previous)h (subsection.)174 4718 y Fj(Examples:)99 b Fo(The)32 b(\014rst)g (example)g(\015ushes)h(all)d(the)i(gatew)m(a)m(y)m(ed)g(routes)g(from)f (the)g(main)g(table)174 4839 y(\(f.e.)i(after)f(a)h(routing)f(daemon)h (crash\).)174 5051 y Fk(netadm@amber:~)55 b(#)d(ip)g(-4)f(ro)h(flush)h (scope)f(global)h(type)g(unicast)174 5262 y Fo(This)34 b(option)f(deserv)m(es)i(to)d(b)s(e)h(put)g(in)m(to)g(a)f(scriptlet)i Fk(routef)p Fo(.)411 5386 y Fi(NB.)44 b(This)22 b(option)g(w)n(as)f (describ)r(ed)h(in)g(the)g Fd(route\(8\))d Fi(man)j(page)f(b)r(orro)n (w)n(ed)f(from)i(BSD,)h(but)f(w)n(as)f(nev)n(er)411 5486 y(implemen)n(ted)28 b(in)g(Lin)n(ux.)321 5631 y Fo(The)33 b(second)h(example)g(\015ushes)h(all)d(IPv6)h(cloned)h(routes:)p eop end %%Page: 32 32 TeXDict begin 32 31 bop 174 324 a Fo(32)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fk(netadm@amber:~)55 b(#)d(ip)g(-6)f(-s)h(-s)g(ro)g(flush)g(cache)174 751 y(3ffe:2400::220:afff:fef4)q(:c5)q(d1)57 b(via)52 b (3ffe:2400::220:afff:fef)q(4:c5)q(d1)57 b(\\)277 872 y(dev)52 b(eth0)104 b(metric)52 b(0)379 992 y(cache)104 b(used)53 b(2)e(age)h(12sec)h(mtu)f(1500)g(rtt)g(300)174 1112 y(3ffe:2400::280:adff:feb7)q(:80)q(34)57 b(via)52 b(3ffe:2400::280:adff:feb)q(7:80)q(34)57 b(\\)277 1233 y(dev)52 b(eth0)104 b(metric)52 b(0)379 1353 y(cache)104 b(used)53 b(2)e(age)h(15sec)h(mtu)f(1500)g(rtt)g(300)174 1474 y(3ffe:2400::280:c8ff:fe59)q(:5b)q(cc)57 b(via)52 b(3ffe:2400::280:c8ff:fe5)q(9:5b)q(cc)57 b(\\)277 1594 y(dev)52 b(eth0)104 b(metric)52 b(0)379 1714 y(cache)104 b(users)53 b(1)e(used)i(1)e(age)h(23sec)h(mtu)f(1500)g(rtt)g(300)174 1835 y(3ffe:2400:0:1:2a0:ccff:f)q(e66)q(:187)q(8)57 b(via)52 b(3ffe:2400:0:1:2a0:ccff:f)q(e66:)q(1878)58 b(\\)277 1955 y(dev)52 b(eth1)104 b(metric)52 b(0)379 2076 y(cache)104 b(used)53 b(2)e(age)h(20sec)h(mtu)f(1500)g(rtt)g(300)174 2196 y(3ffe:2400:0:1:a00:20ff:f)q(e71)q(:fb3)q(0)57 b(via)52 b(3ffe:2400:0:1:a00:20ff:f)q(e71:)q(fb30)58 b(\\)277 2316 y(dev)52 b(eth1)104 b(metric)52 b(0)379 2437 y(cache)104 b(used)53 b(2)e(age)h(33sec)h(mtu)f(1500)g(rtt)g(300)174 2557 y(ff02::1)h(via)g(ff02::1)g(dev)f(eth1)103 b(metric)53 b(0)379 2677 y(cache)104 b(users)53 b(1)e(used)i(1)e(age)h(45sec)h(mtu) f(1500)g(rtt)g(300)174 2918 y(***)g(Round)h(1,)f(deleting)h(6)f (entries)h(***)174 3039 y(***)f(Flush)h(is)f(complete)h(after)g(1)e (round)i(***)174 3159 y(netadm@amber:~)i(#)d(ip)g(-6)f(-s)h(-s)g(ro)g (flush)g(cache)174 3279 y(Nothing)h(to)f(flush.)174 3400 y(netadm@amber:~)j(#)321 3555 y Fo(The)33 b(third)g(example)h (\015ushes)h(BGP)d(routing)g(tables)i(after)e(a)g Fk(gated)i Fo(death.)174 3711 y Fk(netadm@amber:~)55 b(#)d(ip)g(ro)f(ls)h(proto)h (gated/bgp)h(|)d(wc)328 3831 y(1408)206 b(9856)g(78730)174 3951 y(netadm@amber:~)55 b(#)d(ip)g(-s)f(ro)h(f)g(proto)g(gated/bgp)174 4192 y(***)g(Round)h(1,)f(deleting)h(1408)g(entries)g(***)174 4313 y(***)f(Flush)h(is)f(complete)h(after)g(1)e(round)i(***)174 4433 y(netadm@amber:~)i(#)d(ip)g(ro)f(f)h(proto)h(gated/bgp)174 4553 y(Nothing)g(to)f(flush.)174 4674 y(netadm@amber:~)j(#)d(ip)g(ro)f (ls)h(proto)h(gated/bgp)174 4794 y(netadm@amber:~)i(#)174 5075 y Fc(7.5)136 b Fb(ip)60 b(route)f(get)44 b Fc(|)h(get)h(a)f (single)h(route)174 5259 y Fj(Abbreviations:)104 b Fk(get)p Fo(,)34 b Fk(g)p Fo(.)174 5511 y Fj(Description:)98 b Fo(this)31 b(command)h(gets)f(a)f(single)i(route)e(to)g(a)h (destination)g(and)g(prin)m(ts)h(its)f(con-)174 5631 y(ten)m(ts)j(exactly)g(as)f(the)g(k)m(ernel)h(sees)g(it.)p eop end %%Page: 33 33 TeXDict begin 33 32 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(33)174 631 y Fj(Argumen)m(ts:)320 828 y Fe(\017)48 b Fk(to)k(ADDRESS)34 b Fo(\(default\))418 989 y(|)e(the)h(destination)h (address.)320 1190 y Fe(\017)48 b Fk(from)53 b(ADDRESS)418 1351 y Fo(|)32 b(the)h(source)h(address.)320 1552 y Fe(\017)48 b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53 b(TOS)418 1713 y Fo(|)32 b(the)h(T)m(yp)s(e)h(Of)e(Service.)320 1915 y Fe(\017)48 b Fk(iif)k(NAME)418 2075 y Fo(|)32 b(the)h(device)i(from)d (whic)m(h)i(this)f(pac)m(k)m(et)h(is)g(exp)s(ected)g(to)e(arriv)m(e.) 320 2277 y Fe(\017)48 b Fk(oif)k(NAME)418 2438 y Fo(|)32 b(force)h(the)g(output)g(device)h(on)f(whic)m(h)h(this)f(pac)m(k)m(et)h (will)f(b)s(e)g(routed.)320 2639 y Fe(\017)48 b Fk(connected)418 2800 y Fo(|)39 b(if)g(no)g(source)h(address)h(\(option)e Fk(from)p Fo(\))h(w)m(as)g(giv)m(en,)i(relo)s(okup)d(the)h(route)f (with)h(the)418 2920 y(source)46 b(set)g(to)e(the)i(preferred)f (address)i(receiv)m(ed)g(from)e(the)g(\014rst)g(lo)s(okup.)81 b(If)45 b(p)s(olicy)418 3041 y(routing)33 b(is)g(used,)h(it)e(ma)m(y)h (b)s(e)g(a)g(di\013eren)m(t)g(route.)321 3238 y(Note)i(that)h(this)g (op)s(eration)g(is)g(not)f(equiv)-5 b(alen)m(t)38 b(to)d Fk(ip)52 b(route)h(show)p Fo(.)g Fk(show)37 b Fo(sho)m(ws)g(exist-)174 3358 y(ing)i(routes.)61 b Fk(get)39 b Fo(resolv)m(es)i(them)e(and)f (creates)i(new)f(clones)h(if)e(necessary)-8 b(.)63 b(Essen)m(tially)-8 b(,)43 b Fk(get)174 3478 y Fo(is)37 b(equiv)-5 b(alen)m(t)37 b(to)f(sending)h(a)e(pac)m(k)m(et)i(along)f(this)g(path.)53 b(If)36 b(the)g Fk(iif)h Fo(argumen)m(t)f(is)g(not)g(giv)m(en,)174 3599 y(the)d(k)m(ernel)h(creates)g(a)e(route)h(to)f(output)g(pac)m(k)m (ets)j(to)m(w)m(ards)e(the)g(requested)i(destination.)44 b(This)174 3719 y(is)30 b(equiv)-5 b(alen)m(t)30 b(to)f(pinging)g(the)g (destination)g(with)h(a)e(subsequen)m(t)k Fk(ip)52 b(route)g(ls)g (cache)p Fo(,)31 b(ho)m(w-)174 3840 y(ev)m(er,)k(no)f(pac)m(k)m(ets)h (are)e(actually)h(sen)m(t.)47 b(With)34 b(the)g Fk(iif)g Fo(argumen)m(t,)g(the)g(k)m(ernel)h(pretends)g(that)174 3960 y(a)e(pac)m(k)m(et)h(arriv)m(ed)f(from)g(this)g(in)m(terface)h (and)e(searc)m(hes)j(for)d(a)g(path)h(to)f(forw)m(ard)h(the)g(pac)m(k)m (et.)174 4219 y Fj(Output)25 b(format:)99 b Fo(This)23 b(command)f(outputs)g(routes)h(in)f(the)g(same)h(format)e(as)h Fk(ip)51 b(route)i(ls)p Fo(.)174 4477 y Fj(Examples:)320 4675 y Fe(\017)48 b Fo(Find)33 b(a)f(route)h(to)f(output)h(pac)m(k)m (ets)i(to)d(193.233.7.82:)418 4912 y Fk(kuznet@amber:~)55 b($)d(ip)g(route)g(get)g(193.233.7.82)418 5033 y(193.233.7.82)j(dev)d (eth0)103 b(src)52 b(193.233.7.65)j(realms)e(inr.ac)623 5153 y(cache)104 b(mtu)52 b(1500)h(rtt)f(300)418 5273 y(kuznet@amber:~)j($)320 5511 y Fe(\017)48 b Fo(Find)25 b(a)f(route)g(to)h(forw)m(ard)f(pac)m(k)m(ets)j(arriving)d(on)h Fk(eth0)g Fo(from)f(193.233.7.82)f(and)i(destined)418 5631 y(for)32 b(193.233.7.82:)p eop end %%Page: 34 34 TeXDict begin 34 33 bop 174 324 a Fo(34)2486 b Fg(IP)33 b(Command)h(Reference)418 631 y Fk(kuznet@amber:~)55 b($)d(ip)g(r)f(g)h(193.233.7.82)i(from)e(193.233.7.82)j(iif)d(eth0)418 751 y(193.233.7.82)j(from)d(193.233.7.82)i(dev)f(eth0)103 b(src)52 b(193.233.7.65)j(\\)521 872 y(realms)e(inr.ac/inr.ac)623 992 y(cache)g(<src-direct,redirect>)108 b(mtu)52 b(1500)g(rtt)g(300)h (iif)f(eth0)418 1112 y(kuznet@amber:~)j($)654 1363 y Fi(NB.)c(This)24 b(is)h(the)g(command)g(that)g(created)f(the)i(funn)n (y)f(route)f(from)h(193.233.7.82)20 b(lo)r(op)r(ed)25 b(bac)n(k)654 1462 y(to)j(193.233.7.82)23 b(\(cf.)29 b(NB)e(on)h(p.30\).)36 b(Note)28 b(the)g Fd(redirect)c Fi(\015ag)j(on)g(it.)320 1667 y Fe(\017)48 b Fo(Find)g(a)g(m)m (ulticast)h(route)f(for)f(pac)m(k)m(ets)j(arriving)e(on)g Fk(eth0)g Fo(from)g(host)g(193.233.7.82)418 1788 y(and)34 b(destined)i(for)e(m)m(ulticast)h(group)f(224.2.127.254)f(\(it)h(is)g (assumed)i(that)e(a)g(m)m(ulticast)418 1908 y(routing)f(daemon)g(is)g (running.)44 b(In)33 b(this)g(case,)h(it)e(is)h Fk(pimd)p Fo(\))418 2155 y Fk(kuznet@amber:~)55 b($)d(ip)g(r)f(g)h(224.2.127.254) i(from)f(193.233.7.82)h(iif)e(eth0)418 2276 y(multicast)i (224.2.127.254)h(from)d(193.233.7.82)i(dev)e(lo)104 b(\\)521 2396 y(src)52 b(193.233.7.65)i(realms)f(inr.ac/cosmos)623 2516 y(cache)g(<mc>)f(iif)g(eth0)h(Oifs:)f(eth1)h(pimreg)418 2637 y(kuznet@amber:~)i($)418 2884 y Fo(This)38 b(route)f(di\013ers)h (from)f(the)g(ones)g(seen)i(b)s(efore.)56 b(It)37 b(con)m(tains)h(a)e (\\normal")h(part)f(and)418 3004 y(a)h(\\m)m(ulticast")g(part.)56 b(The)38 b(normal)f(part)g(is)g(used)h(to)e(deliv)m(er)j(\(or)d(not)h (to)f(deliv)m(er\))j(the)418 3125 y(pac)m(k)m(et)45 b(to)d(lo)s(cal)h (IP)g(listeners.)76 b(In)43 b(this)g(case)h(the)f(router)g(is)g(not)g (a)f(mem)m(b)s(er)i(of)f(this)418 3245 y(group,)34 b(so)g(that)f(route) g(has)h(no)g Fk(local)g Fo(\015ag)g(and)f(only)h(forw)m(ards)g(pac)m(k) m(ets.)49 b(The)34 b(output)418 3365 y(device)43 b(for)c(suc)m(h)j(en)m (tries)h(is)e(alw)m(a)m(ys)h(lo)s(opbac)m(k.)67 b(The)42 b(m)m(ulticast)g(part)e(consists)i(of)e(an)418 3486 y(additional)33 b Fk(Oifs:)h Fo(list)f(sho)m(wing)h(the)f(output)f(in)m(terfaces.)321 3691 y(It)d(is)h(time)g(for)f(a)g(more)h(complicated)h(example.)44 b(Let)30 b(us)g(add)f(an)h(in)m(v)-5 b(alid)30 b(gatew)m(a)m(y)m(ed)h (route)174 3811 y(for)h(a)h(destination)g(whic)m(h)h(is)f(really)h (directly)g(connected:)174 4017 y Fk(netadm@alisa:~)55 b(#)d(ip)g(route)g(add)g(193.233.7.98)j(via)d(193.233.7.254)174 4137 y(netadm@alisa:~)j(#)d(ip)g(route)g(get)g(193.233.7.98)174 4258 y(193.233.7.98)j(via)d(193.233.7.254)j(dev)d(eth0)103 b(src)52 b(193.233.7.90)379 4378 y(cache)104 b(mtu)52 b(1500)h(rtt)f(3072)174 4498 y(netadm@alisa:~)j(#)174 4704 y Fo(and)33 b(prob)s(e)g(it)f(with)h(ping:)174 4909 y Fk(netadm@alisa:~)55 b(#)d(ping)g(-n)g(193.233.7.98)174 5029 y(PING)h(193.233.7.98)h(\(193.233.7.98\))h(from)d(193.233.7.90)j (:)c(56)h(data)h(bytes)174 5150 y(From)g(193.233.7.254:)i(Redirect)e (Host\(New)g(nexthop:)h(193.233.7.98\))174 5270 y(64)e(bytes)h(from)f (193.233.7.98:)j(icmp_seq=0)f(ttl=255)f(time=3.5)g(ms)174 5391 y(From)g(193.233.7.254:)i(Redirect)e(Host\(New)g(nexthop:)h (193.233.7.98\))174 5511 y(64)e(bytes)h(from)f(193.233.7.98:)j (icmp_seq=1)f(ttl=255)f(time=2.2)g(ms)174 5631 y(64)f(bytes)h(from)f (193.233.7.98:)j(icmp_seq=2)f(ttl=255)f(time=0.4)g(ms)p eop end %%Page: 35 35 TeXDict begin 35 34 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(35)174 631 y Fk(64)52 b(bytes)h(from)f(193.233.7.98:)j(icmp_seq=3) f(ttl=255)f(time=0.4)g(ms)174 751 y(64)f(bytes)h(from)f(193.233.7.98:)j (icmp_seq=4)f(ttl=255)f(time=0.4)g(ms)174 872 y(^C)174 992 y(---)f(193.233.7.98)j(ping)d(statistics)i(---)174 1112 y(5)e(packets)h(transmitted,)h(5)e(packets)h(received,)h(0\045)e (packet)g(loss)174 1233 y(round-trip)i(min/avg/max)g(=)e(0.4/1.3/3.5)i (ms)174 1353 y(netadm@alisa:~)h(#)174 1570 y Fo(What)c(happ)s(ened?)97 b(Router)50 b(193.233.7.254)e(understo)s(o)s(d)j(that)f(w)m(e)h(ha)m(v) m(e)g(a)f(m)m(uc)m(h)i(b)s(etter)174 1690 y(path)f(to)g(the)g (destination)h(and)f(sen)m(t)h(us)f(an)g(ICMP)h(redirect)g(message.)100 b(W)-8 b(e)51 b(ma)m(y)h(retry)174 1811 y Fk(ip)g(route)h(get)33 b Fo(to)f(see)i(what)f(w)m(e)g(ha)m(v)m(e)h(in)f(the)g(routing)g (tables)g(no)m(w:)174 2030 y Fk(netadm@alisa:~)55 b(#)d(ip)g(route)g (get)g(193.233.7.98)174 2150 y(193.233.7.98)j(dev)d(eth0)103 b(src)53 b(193.233.7.90)379 2271 y(cache)g(<redirected>)106 b(mtu)52 b(1500)g(rtt)g(3072)174 2391 y(netadm@alisa:~)j(#)174 2740 y Fn(8)161 b Ff(ip)74 b(rule)47 b Fn(|)h(routing)e(p)t(olicy)h (database)g(managemen)l(t)174 2965 y Fj(Abbreviations:)104 b Fk(rule)p Fo(,)34 b Fk(ru)p Fo(.)174 3241 y Fj(Ob)6 b(ject:)103 b Fk(rule)p Fo(s)30 b(in)e(the)h(routing)f(p)s(olicy)h (database)f(con)m(trol)h(the)f(route)h(selection)g(algorithm.)321 3364 y(Classic)i(routing)f(algorithms)f(used)i(in)f(the)g(In)m(ternet)h (mak)m(e)g(routing)f(decisions)h(based)g(only)174 3484 y(on)f(the)g(destination)g(address)h(of)e(pac)m(k)m(ets)j(\(and)e(in)f (theory)-8 b(,)31 b(but)f(not)f(in)h(practice,)h(on)f(the)g(TOS)174 3605 y(\014eld\).)56 b(The)38 b(seminal)f(review)h(of)e(classic)i (routing)f(algorithms)f(and)h(their)g(mo)s(di\014cations)g(can)174 3725 y(b)s(e)c(found)g(in)g([3)o(].)321 3848 y(In)39 b(some)i(circumstances)h(w)m(e)e(w)m(an)m(t)h(to)e(route)g(pac)m(k)m (ets)j(di\013eren)m(tly)f(dep)s(ending)g(not)e(only)174 3968 y(on)29 b(destination)h(addresses,)i(but)d(also)g(on)g(other)g (pac)m(k)m(et)i(\014elds:)43 b(source)30 b(address,)h(IP)f(proto)s (col,)174 4089 y(transp)s(ort)f(proto)s(col)f(p)s(orts)h(or)g(ev)m(en)h (pac)m(k)m(et)h(pa)m(yload.)43 b(This)30 b(task)f(is)h(called)f(\\p)s (olicy)h(routing".)411 4215 y Fi(NB.)55 b(\\p)r(olicy)27 b(routing")f Fh(6)p Fi(=)i(\\routing)e(p)r(olicy".)411 4317 y(\\p)r(olicy)h(routing")f(=)h(\\cunning)g(routing".)411 4419 y(\\routing)f(p)r(olicy")h(=)g(\\routing)f(tactics")h(or)g (\\routing)f(plan".)321 4566 y Fo(T)-8 b(o)36 b(solv)m(e)j(this)e (task,)h(the)g(con)m(v)m(en)m(tional)g(destination)g(based)g(routing)e (table,)i(ordered)g(ac-)174 4686 y(cording)h(to)e(the)i(longest)g(matc) m(h)f(rule,)j(is)d(replaced)h(with)g(a)f(\\routing)g(p)s(olicy)g (database")h(\(or)174 4807 y(RPDB\),)k(whic)m(h)h(selects)h(routes)f(b) m(y)g(executing)g(some)g(set)g(of)e(rules.)76 b(The)43 b(rules)h(ma)m(y)g(ha)m(v)m(e)174 4927 y(lots)32 b(of)g(k)m(eys)h(of)f (di\013eren)m(t)h(natures)f(and)g(therefore)h(they)f(ha)m(v)m(e)h(no)f (natural)g(ordering,)g(but)g(one)174 5047 y(imp)s(osed)41 b(b)m(y)f(the)g(administrator.)64 b(Lin)m(ux-2.2)39 b(RPDB)g(is)h(a)f (linear)h(list)f(of)g(rules)h(ordered)g(b)m(y)174 5168 y(n)m(umeric)35 b(priorit)m(y)e(v)-5 b(alue.)44 b(RPDB)32 b(explicitly)j(allo)m(ws)e(matc)m(hing)h(a)e(few)h(pac)m(k)m(et)h (\014elds:)320 5415 y Fe(\017)48 b Fo(pac)m(k)m(et)34 b(source)g(address.)320 5631 y Fe(\017)48 b Fo(pac)m(k)m(et)34 b(destination)g(address.)p eop end %%Page: 36 36 TeXDict begin 36 35 bop 174 324 a Fo(36)2486 b Fg(IP)33 b(Command)h(Reference)320 631 y Fe(\017)48 b Fo(TOS.)320 841 y Fe(\017)g Fo(incoming)34 b(in)m(terface)f(\(whic)m(h)h(is)f(pac)m (k)m(et)h(metadata,)f(rather)g(than)f(a)h(pac)m(k)m(et)h(\014eld\).)321 1078 y(Matc)m(hing)22 b(IP)h(proto)s(cols)e(and)h(transp)s(ort)g(p)s (orts)f(is)i(also)e(p)s(ossible,)26 b(indirectly)-8 b(,)25 b(via)d Fk(ipchains)p Fo(,)174 1198 y(b)m(y)38 b(exploiting)f(their)h (abilit)m(y)f(to)f(mark)i(some)f(classes)i(of)d(pac)m(k)m(ets)j(with)e Fk(fwmark)p Fo(.)57 b(Therefore,)174 1319 y Fk(fwmark)34 b Fo(is)g(also)e(included)i(in)f(the)g(set)g(of)g(k)m(eys)h(c)m(hec)m (k)m(ed)i(b)m(y)d(rules.)321 1440 y(Eac)m(h)25 b(p)s(olicy)h(routing)f (rule)g(consists)i(of)d(a)h Fl(sele)-5 b(ctor)35 b Fo(and)25 b(an)g Fl(action)32 b Fo(predicate.)42 b(The)26 b(RPDB)174 1561 y(is)36 b(scanned)g(in)g(the)f(order)g(of)g(increasing)h(priorit)m (y)-8 b(.)52 b(The)36 b(selector)g(of)f(eac)m(h)h(rule)f(is)h(applied)g (to)174 1681 y Fe(f)p Fo(source)45 b(address,)j(destination)d(address,) k(incoming)44 b(in)m(terface,)k(tos,)f(fwmark)p Fe(g)e Fo(and,)i(if)d(the)174 1801 y(selector)50 b(matc)m(hes)g(the)f(pac)m(k) m(et,)54 b(the)49 b(action)g(is)g(p)s(erformed.)92 b(The)49 b(action)g(predicate)h(ma)m(y)174 1922 y(return)36 b(with)f(success.)52 b(In)35 b(this)h(case,)g(it)f(will)g(either)h(giv)m(e)f(a)g(route)g(or) f(failure)h(indication)g(and)174 2042 y(the)41 b(RPDB)f(lo)s(okup)h(is) g(terminated.)67 b(Otherwise,)44 b(the)d(RPDB)f(program)g(con)m(tin)m (ues)j(on)d(the)174 2162 y(next)34 b(rule.)321 2284 y(What)29 b(is)h(the)f(action,)h(seman)m(tically?)45 b(The)30 b(natural)f(action) g(is)h(to)f(select)h(the)g(nexthop)g(and)174 2405 y(the)40 b(output)g(device.)66 b(This)40 b(is)g(what)g(Cisco)h(IOS)e([5])h(do)s (es.)64 b(Let)40 b(us)g(call)g(it)f(\\matc)m(h)h(&)g(set".)174 2525 y(The)33 b(Lin)m(ux-2.2)e(approac)m(h)h(is)g(more)g(\015exible.)44 b(The)33 b(action)e(includes)i(lo)s(okups)f(in)g(destination-)174 2645 y(based)k(routing)f(tables)g(and)g(selecting)h(a)e(route)h(from)g (these)h(tables)f(according)g(to)g(the)g(classic)174 2766 y(longest)41 b(matc)m(h)g(algorithm.)67 b(The)42 b(\\matc)m(h)f(&)f(set")h(approac)m(h)g(is)g(the)f(simplest)j(case)e (of)f(the)174 2886 y(Lin)m(ux)e(one.)54 b(It)36 b(is)g(realized)h(when) g(a)f(second)h(lev)m(el)h(routing)e(table)g(con)m(tains)h(a)f(single)h (default)174 3006 y(route.)67 b(Recall)40 b(that)g(Lin)m(ux-2.2)h(supp) s(orts)g(m)m(ultiple)g(tables)g(managed)g(with)g(the)f Fk(ip)52 b(route)174 3127 y Fo(command,)34 b(describ)s(ed)g(in)f(the)g (previous)h(section.)321 3248 y(A)m(t)e(startup)g(time)g(the)g(k)m (ernel)h(con\014gures)g(the)f(default)g(RPDB)f(consisting)i(of)e(three) h(rules:)294 3486 y(1.)48 b(Priorit)m(y:)f(0,)33 b(Selector:)47 b(matc)m(h)34 b(an)m(ything,)h(Action:)46 b(lo)s(okup)34 b(routing)f(table)h Fk(local)h Fo(\(ID)418 3606 y(255\).)41 b(The)29 b Fk(local)g Fo(table)g(is)f(a)g(sp)s(ecial)h(routing)e(table) i(con)m(taining)f(high)g(priorit)m(y)h(con)m(trol)418 3726 y(routes)k(for)f(lo)s(cal)h(and)f(broadcast)h(addresses.)418 3891 y(Rule)g(0)f(is)i(sp)s(ecial.)44 b(It)33 b(cannot)f(b)s(e)h (deleted)h(or)e(o)m(v)m(erridden.)294 4101 y(2.)48 b(Priorit)m(y:)53 b(32766,)36 b(Selector:)52 b(matc)m(h)38 b(an)m(ything,)g(Action:)52 b(lo)s(okup)37 b(routing)f(table)h Fk(main)418 4221 y Fo(\(ID)c(254\).)43 b(The)34 b Fk(main)g Fo(table)f(is)g(the)g(normal)g (routing)g(table)g(con)m(taining)g(all)g(non-p)s(olicy)418 4342 y(routes.)78 b(This)45 b(rule)f(ma)m(y)h(b)s(e)f(deleted)h(and/or) e(o)m(v)m(erridden)j(with)f(other)f(ones)g(b)m(y)h(the)418 4462 y(administrator.)294 4672 y(3.)j(Priorit)m(y:)39 b(32767,)23 b(Selector:)39 b(matc)m(h)23 b(an)m(ything,)h(Action:)39 b(lo)s(okup)22 b(routing)f(table)h Fk(default)418 4792 y Fo(\(ID)34 b(253\).)49 b(The)35 b Fk(default)h Fo(table)f(is)g(empt)m (y)-8 b(.)51 b(It)34 b(is)h(reserv)m(ed)i(for)d(some)h(p)s(ost-pro)s (cessing)418 4913 y(if)e(no)f(previous)i(default)f(rules)h(selected)g (the)f(pac)m(k)m(et.)45 b(This)34 b(rule)f(ma)m(y)h(also)e(b)s(e)h (deleted.)321 5150 y(Do)22 b(not)h(confuse)h(routing)f(tables)h(with)f (rules:)40 b(rules)24 b(p)s(oin)m(t)f(to)g(routing)g(tables,)j(sev)m (eral)e(rules)174 5270 y(ma)m(y)30 b(refer)f(to)g(one)g(routing)g (table)g(and)g(some)h(routing)f(tables)h(ma)m(y)f(ha)m(v)m(e)i(no)e (rules)g(p)s(oin)m(ting)h(to)174 5391 y(them.)55 b(If)36 b(the)h(administrator)f(deletes)i(all)e(the)h(rules)g(referring)g(to)e (a)h(table,)i(the)e(table)h(is)f(not)174 5511 y(used,)d(but)e(it)g (still)h(exists)g(and)f(will)h(disapp)s(ear)f(only)h(after)e(all)h(the) h(routes)f(con)m(tained)h(in)f(it)g(are)174 5631 y(deleted.)p eop end %%Page: 37 37 TeXDict begin 37 36 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(37)174 631 y Fj(Rule)42 b(attributes:)97 b Fo(Eac)m(h)37 b(RPDB)f(en)m(try)h(has)f(additional)g(attributes.)54 b(F.e.)36 b(eac)m(h)h(rule)f(has)174 751 y(a)45 b(p)s(oin)m(ter)g(to)f (some)i(routing)f(table.)80 b(NA)-8 b(T)45 b(and)g(masquerading)h (rules)g(ha)m(v)m(e)g(an)f(attribute)174 872 y(to)g(select)h(new)g(IP)f (address)h(to)f(translate/masquerade.)82 b(Besides)47 b(that,)h(rules)d(ha)m(v)m(e)h(some)174 992 y(optional)31 b(attributes,)h(whic)m(h)g(routes)f(ha)m(v)m(e,)i(namely)f Fk(realms)p Fo(.)44 b(These)33 b(v)-5 b(alues)31 b(do)g(not)g(o)m(v)m (erride)174 1112 y(those)k(con)m(tained)g(in)f(the)g(routing)g(tables.) 48 b(They)35 b(are)f(only)g(used)h(if)f(the)g(route)g(did)g(not)g (select)174 1233 y(an)m(y)g(attributes.)174 1516 y Fj(Rule)k(t)m(yp)s (es:)98 b Fo(The)33 b(RPDB)g(ma)m(y)g(con)m(tain)g(rules)h(of)e(the)h (follo)m(wing)g(t)m(yp)s(es:)320 1738 y Fe(\017)48 b Fk(unicast)40 b Fo(|)d(the)i(rule)f(prescrib)s(es)i(to)e(return)g(the)h (route)f(found)g(in)g(the)g(routing)g(table)418 1859 y(referenced)d(b)m(y)e(the)g(rule.)320 2081 y Fe(\017)48 b Fk(blackhole)35 b Fo(|)d(the)h(rule)g(prescrib)s(es)i(to)d(silen)m (tly)j(drop)d(the)h(pac)m(k)m(et.)320 2303 y Fe(\017)48 b Fk(unreachable)h Fo(|)c(the)h(rule)g(prescrib)s(es)h(to)e(generate)i (a)e(\\Net)m(w)m(ork)i(is)f(unreac)m(hable")418 2424 y(error.)320 2646 y Fe(\017)i Fk(prohibit)25 b Fo(|)d(the)h(rule)h (prescrib)s(es)h(to)d(generate)h(\\Comm)m(unication)i(is)e (administrativ)m(ely)418 2767 y(prohibited")33 b(error.)320 2989 y Fe(\017)48 b Fk(nat)33 b Fo(|)f(the)h(rule)g(prescrib)s(es)h(to) f(translate)f(the)h(source)h(address)f(of)f(the)h(IP)g(pac)m(k)m(et)h (in)m(to)418 3109 y(some)g(other)e(v)-5 b(alue.)44 b(More)33 b(ab)s(out)f(NA)-8 b(T)33 b(is)h(in)e(App)s(endix)i(C,)f(p.50.)174 3393 y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(delete)i Fo(and)d Fk(show)i Fo(\(or)e Fk(list)p Fo(\).)174 3705 y Fc(8.1)136 b Fb(ip)60 b(rule)g(add)43 b Fc(|)j(insert)f(a)g(new)g (rule)481 3854 y Fb(ip)60 b(rule)g(delete)42 b Fc(|)j(delete)h(a)g (rule)174 4047 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(delete)p Fo(,)j Fk(del)p Fo(,)e Fk(d)p Fo(.)174 4330 y Fj(Argumen)m(ts:)320 4552 y Fe(\017)48 b Fk(type)53 b(TYPE)33 b Fo(\(default\))418 4724 y(|)47 b(the)h(t)m(yp)s(e)h(of)e(this)h(rule.)90 b(The)48 b(list)g(of)g(v)-5 b(alid)47 b(t)m(yp)s(es)j(w)m(as)e(giv)m(en)h(in)f(the)g(previous)418 4844 y(subsection.)320 5066 y Fe(\017)g Fk(from)53 b(PREFIX)418 5238 y Fo(|)32 b(select)i(the)f(source)h(pre\014x)g(to)e(matc)m(h.)320 5460 y Fe(\017)48 b Fk(to)k(PREFIX)418 5631 y Fo(|)32 b(select)i(the)f(destination)h(pre\014x)g(to)e(matc)m(h.)p eop end %%Page: 38 38 TeXDict begin 38 37 bop 174 324 a Fo(38)2486 b Fg(IP)33 b(Command)h(Reference)320 631 y Fe(\017)48 b Fk(iif)k(NAME)418 799 y Fo(|)24 b(select)h(the)f(incoming)h(device)h(to)d(matc)m(h.)42 b(If)24 b(the)g(in)m(terface)h(is)g(lo)s(opbac)m(k,)h(the)e(rule)h (only)418 919 y(matc)m(hes)41 b(pac)m(k)m(ets)h(originating)c(from)i (this)g(host.)64 b(This)40 b(means)g(that)g(y)m(ou)g(ma)m(y)g(create) 418 1040 y(separate)34 b(routing)f(tables)h(for)e(forw)m(arded)i(and)f (lo)s(cal)g(pac)m(k)m(ets)i(and,)f(hence,)g(completely)418 1160 y(segregate)f(them.)320 1375 y Fe(\017)48 b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53 b(TOS)418 1543 y Fo(|)32 b(select)i(the)f(TOS)g (v)-5 b(alue)33 b(to)g(matc)m(h.)320 1758 y Fe(\017)48 b Fk(fwmark)53 b(MARK)418 1926 y Fo(|)32 b(select)i(the)f Fk(fwmark)h Fo(v)-5 b(alue)34 b(to)e(matc)m(h.)320 2141 y Fe(\017)48 b Fk(priority)54 b(PREFERENCE)418 2309 y Fo(|)46 b(the)h(priorit)m(y)h(of)e(this)h(rule.)86 b(Eac)m(h)47 b(rule)h(should)f(ha)m(v)m(e)h(an)e(explicitly)j(set)e Fl(unique)418 2429 y Fo(priorit)m(y)33 b(v)-5 b(alue.)654 2600 y Fi(NB.)60 b(Really)-7 b(,)30 b(for)f(historical)g(reasons)f Fd(ip)43 b(rule)f(add)28 b Fi(do)r(es)i(not)f(require)g(a)h(priorit)n (y)e(v)-5 b(alue)30 b(and)654 2699 y(allo)n(ws)i(them)h(to)f(b)r(e)h (non-unique.)51 b(If)33 b(the)g(user)e(do)r(es)i(not)f(supplied)h(a)f (priorit)n(y)-7 b(,)32 b(it)h(is)g(selected)654 2799 y(b)n(y)e(the)g(k)n(ernel.)45 b(If)31 b(the)g(user)f(creates)g(a)g (rule)g(with)i(a)e(priorit)n(y)f(v)-5 b(alue)31 b(that)g(already)e (exists,)i(the)654 2899 y(k)n(ernel)25 b(do)r(es)g(not)g(reject)h(the)f (request.)36 b(It)26 b(adds)f(the)g(new)h(rule)f(b)r(efore)g(all)g(old) g(rules)g(of)g(the)h(same)654 2998 y(priorit)n(y)-7 b(.)654 3145 y(It)32 b(is)f(mistak)n(e)f(in)h(design,)h(no)e(more.)47 b(And)31 b(it)h(will)f(b)r(e)g(\014xed)g(one)g(da)n(y)-7 b(,)31 b(so)f(do)h(not)g(rely)f(on)h(this)654 3245 y(feature.)37 b(Use)28 b(explicit)f(priorities.)320 3460 y Fe(\017)48 b Fk(table)53 b(TABLEID)418 3628 y Fo(|)32 b(the)h(routing)g(table)g (iden)m(ti\014er)h(to)e(lo)s(okup)h(if)f(the)h(rule)g(selector)h(matc)m (hes.)320 3843 y Fe(\017)48 b Fk(realms)53 b(FROM/TO)418 4011 y Fo(|)28 b(Realms)h(to)f(select)i(if)e(the)h(rule)f(matc)m(hed)i (and)e(the)h(routing)f(table)h(lo)s(okup)f(succeeded.)418 4131 y(Realm)33 b Fk(TO)g Fo(is)g(only)g(used)h(if)e(the)h(route)g(did) g(not)g(select)h(an)m(y)f(realm.)320 4347 y Fe(\017)48 b Fk(nat)k(ADDRESS)418 4514 y Fo(|)39 b(The)i(base)f(of)f(the)h(IP)g (address)h(blo)s(c)m(k)f(to)f(translate)h(\(for)f(source)i (addresses\).)66 b(The)418 4635 y Fk(ADDRESS)44 b Fo(ma)m(y)e(b)s(e)g (either)h(the)f(start)g(of)f(the)h(blo)s(c)m(k)h(of)e(NA)-8 b(T)43 b(addresses)h(\(selected)f(b)m(y)418 4755 y(NA)-8 b(T)44 b(routes\))g(or)f(in)h(lin)m(ux-2.2)g(a)f(lo)s(cal)h(host)g (address)g(\(or)g(ev)m(en)h(zero\).)76 b(In)44 b(the)g(last)418 4875 y(case)39 b(the)g(router)g(do)s(es)g(not)f(translate)h(the)f(pac)m (k)m(ets,)k(but)d(masquerades)i(them)e(to)f(this)418 4996 y(address;)48 b(this)43 b(feature)f(disapp)s(ered)h(in)f(2.4.)71 b(More)42 b(ab)s(out)g(NA)-8 b(T)42 b(is)g(in)g(App)s(endix)i(C,)418 5116 y(p.50.)174 5391 y Fj(W)-9 b(arning:)98 b Fo(Changes)29 b(to)d(the)h(RPDB)g(made)h(with)f(these)h(commands)h(do)d(not)h(b)s (ecome)h(activ)m(e)174 5511 y(immediately)-8 b(.)55 b(It)35 b(is)h(assumed)h(that)f(after)f(a)g(script)i(\014nishes)g(a)f(batc)m(h) g(of)f(up)s(dates,)i(it)e(\015ushes)174 5631 y(the)e(routing)g(cac)m (he)h(with)f Fk(ip)52 b(route)g(flush)h(cache)p Fo(.)p eop end %%Page: 39 39 TeXDict begin 39 38 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(39)174 631 y Fj(Examples:)320 809 y Fe(\017)48 b Fo(Route)39 b(pac)m(k)m(ets)h(with)f(source)g(addresses)i(from)d (192.203.80/24)e(according)i(to)g(routing)418 930 y(table)33 b Fk(inr.ruhep)p Fo(:)418 1145 y Fk(ip)52 b(ru)g(add)g(from)g (192.203.80.0/24)j(table)e(inr.ruhep)h(prio)e(220)320 1361 y Fe(\017)c Fo(T)-8 b(ranslate)40 b(pac)m(k)m(et)i(source)e (address)h(193.233.7.83)c(in)m(to)j(192.203.80.144)d(and)j(route)f(it) 418 1481 y(according)33 b(to)f(table)h(#1)g(\(actually)-8 b(,)33 b(it)g(is)g Fk(inr.ruhep)p Fo(\):)418 1697 y Fk(ip)52 b(ru)g(add)g(from)g(193.233.7.83)j(nat)d(192.203.80.144)j(table)d(1)g (prio)g(320)320 1912 y Fe(\017)c Fo(Delete)33 b(the)g(un)m(used)i (default)e(rule:)418 2128 y Fk(ip)52 b(ru)g(del)g(prio)g(32767)174 2412 y Fc(8.2)136 b Fb(ip)60 b(rule)g(show)43 b Fc(|)i(list)h(rules)174 2597 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)174 2853 y Fj(Argumen)m(ts:)98 b Fo(Go)s(o)s(d)31 b(news,)k(this)e(is)g (one)g(command)g(that)f(has)h(no)g(argumen)m(ts.)174 3108 y Fj(Output)38 b(format:)174 3286 y Fk(kuznet@amber:~)55 b($)d(ip)g(ru)f(ls)174 3407 y(0:)h(from)g(all)h(lookup)f(local)174 3527 y(200:)h(from)f(192.203.80.0/24)j(to)d(193.233.7.0/24)j(lookup)e (main)174 3647 y(210:)g(from)f(192.203.80.0/24)j(to)d(192.203.80.0/24)j (lookup)e(main)174 3768 y(220:)g(from)f(192.203.80.0/24)j(lookup)e (inr.ruhep)h(realms)f(inr.ruhep/radio-msu)174 3888 y(300:)g(from)f (193.233.7.83)i(to)e(193.233.7.0/24)j(lookup)e(main)174 4009 y(310:)g(from)f(193.233.7.83)i(to)e(192.203.80.0/24)k(lookup)c (main)174 4129 y(320:)h(from)f(193.233.7.83)i(lookup)f(inr.ruhep)h (map-to)f(192.203.80.144)174 4249 y(32766:)g(from)g(all)f(lookup)g (main)174 4370 y(kuznet@amber:~)j($)321 4548 y Fo(In)25 b(the)g(\014rst)g(column)h(is)f(the)g(rule)h(priorit)m(y)f(v)-5 b(alue)25 b(follo)m(w)m(ed)h(b)m(y)g(a)e(colon.)41 b(Then)26 b(the)g(selectors)174 4668 y(follo)m(w.)44 b(Eac)m(h)32 b(k)m(ey)i(is)e(pre\014xed)h(with)f(the)h(same)f(k)m(eyw)m(ord)i(that)d (w)m(as)i(used)g(to)e(create)i(the)f(rule.)321 4789 y(The)j(k)m(eyw)m (ord)h Fk(lookup)g Fo(is)f(follo)m(w)m(ed)g(b)m(y)g(a)f(routing)g (table)g(iden)m(ti\014er,)j(as)d(it)g(is)h(recorded)g(in)174 4909 y(the)e(\014le)h Fk(/etc/iproute2/rt_tables)p Fo(.)321 5029 y(If)29 b(the)g(rule)h(do)s(es)g(NA)-8 b(T)29 b(\(f.e.)h(rule)g (#320\),)f(it)g(is)h(sho)m(wn)g(b)m(y)g(the)g(k)m(eyw)m(ord)h Fk(map-to)g Fo(follo)m(w)m(ed)174 5150 y(b)m(y)j(the)f(start)f(of)h (the)g(blo)s(c)m(k)g(of)f(addresses)j(to)d(map.)321 5270 y(The)47 b(sense)g(of)f(this)h(example)g(is)g(prett)m(y)g(simple.)85 b(The)47 b(pre\014xes)h(192.203.80.0/24)43 b(and)174 5391 y(193.233.7.0/24)37 b(form)h(the)h(in)m(ternal)h(net)m(w)m(ork,)i (but)d(they)h(are)e(routed)h(di\013eren)m(tly)i(when)f(the)174 5511 y(pac)m(k)m(ets)35 b(lea)m(v)m(e)g(it.)44 b(Besides)35 b(that,)e(the)h(host)f(193.233.7.83)e(is)i(translated)h(in)m(to)f (another)g(pre\014x)174 5631 y(to)g(lo)s(ok)f(lik)m(e)i(192.203.80.144) c(when)k(talking)f(to)f(the)h(outer)g(w)m(orld.)p eop end %%Page: 40 40 TeXDict begin 40 39 bop 174 324 a Fo(40)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fn(9)161 b Ff(ip)74 b(maddress)44 b Fn(|)i(m)l(ulticast)e(addresses)g(managemen)l(t)174 852 y Fj(Ob)6 b(ject:)103 b Fk(maddress)35 b Fo(ob)5 b(jects)34 b(are)f(m)m(ulticast)g(addresses.)174 1119 y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(delete)p Fo(,)i Fk(show)e Fo(\(or)f Fk(list)p Fo(\).)174 1414 y Fc(9.1)136 b Fb(ip)60 b(maddress)e(show)43 b Fc(|)i(list)h(m)l(ulticast)g (addresses)174 1601 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)174 1867 y Fj(Argumen)m(ts:)320 2076 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418 2240 y(|)e(the)h(device)i (name.)174 2507 y Fj(Output)j(format:)174 2717 y Fk(kuznet@alisa:~)55 b($)d(ip)g(maddr)g(ls)g(dummy)174 2837 y(2:)103 b(dummy)379 2957 y(link)h(33:33:00:00:00:01)379 3078 y(link)g(01:00:5e:00:00:01)379 3198 y(inet)g(224.0.0.1)54 b(users)e(2)379 3319 y(inet6)h(ff02::1)174 3439 y(kuznet@alisa:~)i($)321 3648 y Fo(The)42 b(\014rst)h(line)f(of)g (the)g(output)g(sho)m(ws)h(the)g(in)m(terface)g(index)g(and)f(its)g (name.)72 b(Then)43 b(the)174 3768 y(m)m(ulticast)32 b(address)g(list)f(follo)m(ws.)44 b(Eac)m(h)31 b(line)g(starts)g(with)g (the)g(proto)s(col)f(iden)m(ti\014er.)44 b(The)32 b(w)m(ord)174 3888 y Fk(link)i Fo(denotes)g(a)e(link)h(la)m(y)m(er)h(m)m(ulticast)g (addresses.)321 4010 y(If)c(a)h(m)m(ulticast)h(address)g(has)f(more)g (than)g(one)g(user,)h(the)f(n)m(um)m(b)s(er)h(of)e(users)i(is)g(sho)m (wn)g(after)174 4130 y(the)h Fk(users)h Fo(k)m(eyw)m(ord.)321 4252 y(One)28 b(additional)g(feature)h(not)e(presen)m(t)j(in)e(the)h (example)h(ab)s(o)m(v)m(e)e(is)h(the)f Fk(static)i Fo(\015ag,)f(whic)m (h)174 4372 y(indicates)36 b(that)e(the)h(address)h(w)m(as)f(joined)f (with)h Fk(ip)52 b(maddr)h(add)p Fo(.)c(See)35 b(the)g(follo)m(wing)g (subsec-)174 4492 y(tion.)174 4788 y Fc(9.2)136 b Fb(ip)60 b(maddress)e(add)43 b Fc(|)j(add)e(a)i(m)l(ulticast)g(address)481 4937 y Fb(ip)60 b(maddress)e(delete)42 b Fc(|)j(delete)i(a)e(m)l (ulticast)h(address)174 5124 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(delete)p Fo(,)j Fk(del)p Fo(,)e Fk(d)p Fo(.)174 5391 y Fj(Description:)98 b Fo(these)38 b(commands)f(attac)m(h/detac)m(h)h(a)e(static)h(link)g (la)m(y)m(er)g(m)m(ulticast)h(address)174 5511 y(to)30 b(listen)h(on)e(the)i(in)m(terface.)43 b(Note)30 b(that)g(it)g(is)g (imp)s(ossible)h(to)f(join)f(proto)s(col)h(m)m(ulticast)h(groups)174 5631 y(statically)-8 b(.)45 b(This)33 b(command)h(only)f(manages)g (link)g(la)m(y)m(er)h(addresses.)p eop end %%Page: 41 41 TeXDict begin 41 40 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(41)174 631 y Fj(Argumen)m(ts:)320 838 y Fe(\017)48 b Fk(address)53 b(LLADDRESS)35 b Fo(\(default\))418 1001 y(|)d(the)h(link)h(la)m(y)m(er)f(m)m(ulticast)h(address.)320 1208 y Fe(\017)48 b Fk(dev)k(NAME)418 1371 y Fo(|)32 b(the)h(device)i(to)d(join/lea)m(v)m(e)i(this)f(m)m(ulticast)h (address.)174 1635 y Fj(Example:)99 b Fo(Let)33 b(us)g(con)m(tin)m(ue)h (with)g(the)f(example)h(from)e(the)h(previous)h(subsection.)174 1868 y Fk(netadm@alisa:~)55 b(#)d(ip)g(maddr)g(add)g(33:33:00:00:00:01) k(dev)c(dummy)174 1989 y(netadm@alisa:~)j(#)d(ip)g(-0)f(maddr)i(ls)f (dummy)174 2109 y(2:)103 b(dummy)379 2229 y(link)h(33:33:00:00:00:01)56 b(users)c(2)g(static)379 2350 y(link)104 b(01:00:5e:00:00:01)174 2470 y(netadm@alisa:~)55 b(#)d(ip)g(maddr)g(del)g(33:33:00:00:00:01)k (dev)c(dummy)411 2706 y Fi(NB.)58 b(Neither)29 b Fd(ip)f Fi(nor)g(the)h(k)n(ernel)f(c)n(hec)n(k)g(for)h(m)n(ulticast)f(address)g (v)-5 b(alidit)n(y)e(.)41 b(P)n(articularly)-7 b(,)27 b(this)i(means)411 2805 y(that)h(y)n(ou)g(can)g(try)g(to)h(load)e(a)h (unicast)h(address)e(instead)h(of)g(a)h(m)n(ulticast)f(address.)44 b(Most)30 b(driv)n(ers)f(will)411 2905 y(ignore)37 b(suc)n(h)i (addresses,)h(but)g(sev)n(eral)d(\(f.e.)i(T)-7 b(ulip\))40 b(will)f(in)n(tern)g(it)g(to)g(their)g(on-b)r(oard)e(\014lter.)71 b(The)411 3005 y(e\013ects)29 b(ma)n(y)f(b)r(e)h(strange.)39 b(Namely)-7 b(,)29 b(the)g(addresses)e(b)r(ecome)i(additional)f(lo)r (cal)g(link)h(addresses)e(and,)i(if)411 3104 y(y)n(ou)24 b(loaded)h(the)h(address)e(of)h(another)g(host)g(to)g(the)h(router,)f (w)n(ait)g(for)g(duplicated)h(pac)n(k)n(ets)e(on)h(the)h(wire.)411 3204 y(It)f(is)h(not)f(a)g(bug,)h(but)g(rather)f(a)g(hole)g(in)h(the)g (API)f(and)h(in)n(tra-k)n(ernel)d(in)n(terfaces.)35 b(This)26 b(feature)f(is)g(really)411 3304 y(more)30 b(useful)h(for)g(tra\016c)g (monitoring,)g(but)g(using)g(it)g(with)h(Lin)n(ux-2.2)e(y)n(ou)g Fa(have)k(to)j Fi(b)r(e)31 b(sure)g(that)g(the)411 3403 y(host)25 b(is)g(not)h(a)f(router)f(and,)i(esp)r(ecially)-7 b(,)25 b(that)h(it)g(is)f(not)h(a)f(transparen)n(t)f(pro)n(xy)g(or)h (masquerading)e(agen)n(t.)174 3740 y Fn(10)161 b Ff(ip)74 b(mroute)62 b Fn(|)i(m)l(ulticast)f(routing)f(cac)l(he)g(manage-)497 3923 y(men)l(t)174 4143 y Fj(Abbreviations:)104 b Fk(mroute)p Fo(,)34 b Fk(mr)p Fo(.)174 4407 y Fj(Ob)6 b(ject:)103 b Fk(mroute)35 b Fo(ob)5 b(jects)34 b(are)e(m)m(ulticast)j(routing)d (cac)m(he)i(en)m(tries)g(created)g(b)m(y)g(a)e(user)i(lev)m(el)174 4527 y(mrouting)f(daemon)g(\(f.e.)g Fk(pimd)h Fo(or)e Fk(mrouted)p Fo(\).)321 4648 y(Due)26 b(to)g(the)g(limitations)h(of)f (the)h(curren)m(t)g(in)m(terface)g(to)f(the)h(m)m(ulticast)g(routing)f (engine,)j(it)d(is)174 4768 y(imp)s(ossible)35 b(to)d(c)m(hange)i Fk(mroute)g Fo(ob)5 b(jects)34 b(administrativ)m(ely)-8 b(,)36 b(so)c(w)m(e)i(ma)m(y)g(only)f(displa)m(y)h(them.)174 4889 y(This)g(limitation)f(will)g(b)s(e)g(remo)m(v)m(ed)h(in)f(the)g (future.)174 5153 y Fj(Commands:)105 b Fk(show)34 b Fo(\(or)e Fk(list)p Fo(\).)174 5445 y Fc(10.1)136 b Fb(ip)61 b(mroute)d(show)43 b Fc(|)i(list)h(mroute)g(cac)l(he)f(en)l(tries)174 5631 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)p eop end %%Page: 42 42 TeXDict begin 42 41 bop 174 324 a Fo(42)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320 835 y Fe(\017)48 b Fk(to)k(PREFIX)34 b Fo(\(default\))418 998 y(|)e(the)h(pre\014x)h(selecting)g(the)f(destination)h(m)m (ulticast)g(addresses)g(to)f(list.)320 1202 y Fe(\017)48 b Fk(iif)k(NAME)418 1364 y Fo(|)32 b(the)h(in)m(terface)h(on)e(whic)m (h)i(m)m(ulticast)g(pac)m(k)m(ets)h(are)e(receiv)m(ed.)320 1569 y Fe(\017)48 b Fk(from)53 b(PREFIX)418 1731 y Fo(|)32 b(the)h(pre\014x)h(selecting)g(the)f(IP)g(source)h(addresses)h(of)d (the)h(m)m(ulticast)h(route.)174 1992 y Fj(Output)k(format:)174 2196 y Fk(kuznet@amber:~)55 b($)d(ip)g(mroute)h(ls)174 2317 y(\(193.232.127.6,)j(224.0.1.39\))310 b(Iif:)52 b(unresolved)174 2437 y(\(193.232.244.34,)k(224.0.1.40\))259 b(Iif:)52 b(unresolved)174 2557 y(\(193.233.7.65,)j(224.66.66.66\))260 b(Iif:)52 b(eth0)360 b(Oifs:)53 b(pimreg)174 2678 y(kuznet@amber:~)i($) 321 2882 y Fo(Eac)m(h)41 b(line)f(sho)m(ws)i(one)e(\(S,G\))g(en)m(try)h (in)f(the)h(m)m(ulticast)g(routing)f(cac)m(he,)j(where)e(S)f(is)h(the) 174 3002 y(source)33 b(address)h(and)e(G)f(is)i(the)f(m)m(ulticast)i (group.)43 b Fk(Iif)32 b Fo(is)h(the)f(in)m(terface)h(on)f(whic)m(h)i (m)m(ulticast)174 3123 y(pac)m(k)m(ets)26 b(are)d(exp)s(ected)i(to)e (arriv)m(e.)41 b(If)23 b(the)h(w)m(ord)f Fk(unresolved)j Fo(is)e(there)g(instead)g(of)f(the)g(in)m(terface)174 3243 y(name,)30 b(it)e(means)i(that)e(the)g(routing)g(daemon)h(still)g (hasn't)g(resolv)m(ed)h(this)f(en)m(try)-8 b(.)43 b(The)29 b(k)m(eyw)m(ord)174 3364 y Fk(oifs)42 b Fo(is)f(follo)m(w)m(ed)h(b)m(y) f(a)g(list)g(of)f(output)h(in)m(terfaces,)j(separated)e(b)m(y)g (spaces.)69 b(If)41 b(a)f(m)m(ulticast)174 3484 y(routing)47 b(en)m(try)h(is)f(created)g(with)g(non-trivial)g(TTL)g(scop)s(e,)k (administrativ)m(e)e(distances)f(are)174 3604 y(app)s(ended)34 b(to)e(the)h(device)i(names)e(in)g(the)g Fk(oifs)h Fo(list.)174 3865 y Fj(Statistics:)98 b Fo(The)39 b Fk(-statistics)i Fo(option)d(also)h(prin)m(ts)g(the)g(n)m(um)m(b)s(er)g(of)f(pac)m(k)m (ets)i(and)f(b)m(ytes)174 3986 y(forw)m(arded)46 b(along)f(this)h (route)g(and)f(the)h(n)m(um)m(b)s(er)h(of)d(pac)m(k)m(ets)k(that)d (arriv)m(ed)h(on)f(the)h(wrong)174 4106 y(in)m(terface,)34 b(if)e(this)i(n)m(um)m(b)s(er)g(is)f(not)f(zero.)174 4336 y Fk(kuznet@amber:~)55 b($)d(ip)g(-s)f(mr)h(ls)g(224.66/16)174 4456 y(\(193.233.7.65,)j(224.66.66.66\))260 b(Iif:)52 b(eth0)360 b(Oifs:)53 b(pimreg)277 4576 y(9383)f(packets,)i(300256)e (bytes)174 4697 y(kuznet@amber:~)j($)174 5031 y Fn(11)161 b Ff(ip)74 b(tunnel)52 b Fn(|)j(tunnel)d(con\014guration)174 5250 y Fj(Abbreviations:)104 b Fk(tunnel)p Fo(,)34 b Fk(tunl)p Fo(.)174 5511 y Fj(Ob)6 b(ject:)103 b Fk(tunnel)48 b Fo(ob)5 b(jects)47 b(are)e(tunnels,)51 b(encapsulating)c(pac)m(k)m (ets)h(in)e(IPv4)g(pac)m(k)m(ets)i(and)174 5631 y(then)34 b(sending)f(them)h(o)m(v)m(er)f(the)g(IP)g(infrastructure.)p eop end %%Page: 43 43 TeXDict begin 43 42 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(43)174 631 y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(delete)p Fo(,)i Fk(change)p Fo(,)f Fk(show)f Fo(\(or)g Fk(list)p Fo(\).)174 917 y Fj(See)g(also:)99 b Fo(A)28 b(more)g(informal)g(discussion)i(of)e(tunneling)h(o)m(v)m(er)g(IP)f (and)h(the)f Fk(ip)52 b(tunnel)29 b Fo(com-)174 1037 y(mand)k(can)g(b)s(e)g(found)g(in)f([6].)174 1352 y Fc(11.1)136 b Fb(ip)61 b(tunnel)d(add)44 b Fc(|)h(add)g(a)g(new)g(tunnel)548 1502 y Fb(ip)61 b(tunnel)d(change)42 b Fc(|)j(c)l(hange)h(an)f (existing)h(tunnel)548 1651 y Fb(ip)61 b(tunnel)d(delete)42 b Fc(|)j(destro)l(y)h(a)f(tunnel)174 1844 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(change)p Fo(,)j Fk(chg)p Fo(;)e Fk(delete)p Fo(,)h Fk(del)p Fo(,)g Fk(d)p Fo(.)174 2130 y Fj(Argumen)m(ts:)320 2355 y Fe(\017)48 b Fk(name)53 b(NAME)33 b Fo(\(default\))418 2527 y(|)f(select)i(the)f (tunnel)h(device)g(name.)320 2752 y Fe(\017)48 b Fk(mode)53 b(MODE)418 2924 y Fo(|)38 b(set)i(the)f(tunnel)g(mo)s(de.)62 b(Three)40 b(mo)s(des)f(are)f(curren)m(tly)j(a)m(v)-5 b(ailable:)56 b Fk(ipip)p Fo(,)41 b Fk(sit)e Fo(and)418 3044 y Fk(gre)p Fo(.)320 3269 y Fe(\017)48 b Fk(remote)53 b(ADDRESS)418 3441 y Fo(|)32 b(set)i(the)f(remote)g(endp)s(oin)m(t)g (of)f(the)h(tunnel.)320 3666 y Fe(\017)48 b Fk(local)53 b(ADDRESS)418 3838 y Fo(|)38 b(set)h(the)g(\014xed)g(lo)s(cal)g (address)g(for)f(tunneled)i(pac)m(k)m(ets.)63 b(It)38 b(m)m(ust)i(b)s(e)e(an)h(address)g(on)418 3959 y(another)33 b(in)m(terface)h(of)e(this)h(host.)320 4183 y Fe(\017)48 b Fk(ttl)k(N)418 4356 y Fo(|)37 b(set)h(a)f(\014xed)h(TTL)g Fk(N)f Fo(on)h(tunneled)g(pac)m(k)m(ets.)60 b Fk(N)37 b Fo(is)h(a)f(n)m(um)m(b)s(er)h(in)g(the)f(range)g(1{255.)418 4476 y(0)h(is)g(a)f(sp)s(ecial)i(v)-5 b(alue)38 b(meaning)h(that)e(pac) m(k)m(ets)j(inherit)e(the)g(TTL)h(v)-5 b(alue.)59 b(The)39 b(default)418 4597 y(v)-5 b(alue)33 b(is:)44 b Fk(inherit)p Fo(.)320 4821 y Fe(\017)k Fk(tos)k(T)33 b Fo(or)f Fk(dsfield)53 b(T)418 4994 y Fo(|)32 b(set)i(a)e(\014xed)i(TOS)f Fk(T)f Fo(on)h(tunneled)h(pac)m(k)m(ets.)46 b(The)33 b(default)g(v)-5 b(alue)33 b(is:)44 b Fk(inherit)p Fo(.)320 5218 y Fe(\017)k Fk(dev)k(NAME)418 5391 y Fo(|)42 b(bind)h(the)g(tunnel)g(to)f(the)h (device)h Fk(NAME)f Fo(so)g(that)f(tunneled)i(pac)m(k)m(ets)g(will)f (only)g(b)s(e)418 5511 y(routed)d(via)g(this)g(device)h(and)e(will)h (not)g(b)s(e)f(able)h(to)f(escap)s(e)h(to)g(another)f(device)i(when)418 5631 y(the)33 b(route)g(to)f(endp)s(oin)m(t)i(c)m(hanges.)p eop end %%Page: 44 44 TeXDict begin 44 43 bop 174 324 a Fo(44)2486 b Fg(IP)33 b(Command)h(Reference)320 631 y Fe(\017)48 b Fk(nopmtudisc)418 799 y Fo(|)34 b(disable)g(P)m(ath)h(MTU)g(Disco)m(v)m(ery)g(on)f(this)h (tunnel.)48 b(It)34 b(is)g(enabled)h(b)m(y)g(default.)47 b(Note)418 919 y(that)d(a)f(\014xed)i(ttl)f(is)g(incompatible)i(with)e (this)h(option:)65 b(tunnelling)45 b(with)g(a)e(\014xed)i(ttl)418 1039 y(alw)m(a)m(ys)34 b(mak)m(es)h(pm)m(tu)e(disco)m(v)m(ery)-8 b(.)320 1254 y Fe(\017)48 b Fk(key)k(K)p Fo(,)33 b Fk(ikey)52 b(K)p Fo(,)33 b Fk(okey)53 b(K)418 1422 y Fo(|)34 b(\(only)i(GRE)e (tunnels\))i(use)g(k)m(ey)m(ed)h(GRE)d(with)h(k)m(ey)i Fk(K)p Fo(.)e Fk(K)g Fo(is)g(either)g(a)g(n)m(um)m(b)s(er)h(or)e(an)418 1543 y(IP)41 b(address-lik)m(e)i(dotted)e(quad.)68 b(The)42 b Fk(key)f Fo(parameter)g(sets)h(the)f(k)m(ey)h(to)e(use)i(in)f(b)s (oth)418 1663 y(directions.)88 b(The)48 b Fk(ikey)f Fo(and)g Fk(okey)h Fo(parameters)g(set)g(di\013eren)m(t)g(k)m(eys)h(for)d(input) h(and)418 1783 y(output.)320 1998 y Fe(\017)h Fk(csum)p Fo(,)34 b Fk(icsum)p Fo(,)g Fk(ocsum)418 2166 y Fo(|)i(\(only)g(GRE)f (tunnels\))j(generate/require)f(c)m(hec)m(ksums)j(for)35 b(tunneled)j(pac)m(k)m(ets.)55 b(The)418 2286 y Fk(ocsum)36 b Fo(\015ag)e(calculates)i(c)m(hec)m(ksums)i(for)c(outgoing)g(pac)m(k)m (ets.)51 b(The)36 b Fk(icsum)f Fo(\015ag)g(requires)418 2407 y(that)i(all)g(input)g(pac)m(k)m(ets)i(ha)m(v)m(e)f(the)g(correct) f(c)m(hec)m(ksum.)60 b(The)38 b Fk(csum)g Fo(\015ag)e(is)i(equiv)-5 b(alen)m(t)418 2527 y(to)32 b(the)h(com)m(bination)h(\\)p Fk(icsum)g(ocsum)p Fo(".)320 2742 y Fe(\017)48 b Fk(seq)p Fo(,)34 b Fk(iseq)p Fo(,)f Fk(oseq)418 2910 y Fo(|)k(\(only)h(GRE)f (tunnels\))h(serialize)h(pac)m(k)m(ets.)60 b(The)38 b Fk(oseq)g Fo(\015ag)f(enables)i(sequencing)h(of)418 3030 y(outgoing)c(pac)m(k)m(ets.)58 b(The)37 b Fk(iseq)h Fo(\015ag)e (requires)i(that)f(all)f(input)h(pac)m(k)m(ets)i(are)e(serialized.)418 3151 y(The)d Fk(seq)f Fo(\015ag)f(is)h(equiv)-5 b(alen)m(t)35 b(to)d(the)h(com)m(bination)g(\\)p Fk(iseq)h(oseq)p Fo(".)654 3321 y Fi(NB.)50 b(I)25 b(think)h(this)f(option)f(do)r(es)h(not)g(w)n (ork.)34 b(A)n(t)25 b(least,)g(I)g(did)h(not)e(test)i(it,)g(did)f(not)g (debug)f(it)i(and)654 3421 y(do)g(not)g(ev)n(en)f(understand)h(ho)n(w)f (it)i(is)e(supp)r(osed)h(to)g(w)n(ork)f(or)g(for)g(what)h(purp)r(ose)f (Cisco)g(planned)654 3520 y(to)j(use)f(it.)38 b(Do)27 b(not)h(use)f(it.)174 3795 y Fj(Example:)99 b Fo(Create)33 b(a)g(p)s(oin)m(top)s(oin)m(t)f(IPv6)i(tunnel)f(with)g(maximal)h(TTL)f (of)f(32.)174 4012 y Fk(netadm@amber:~)55 b(#)d(ip)g(tunl)g(add)g (Cisco)h(mode)f(sit)g(remote)h(192.31.7.104)h(\\)379 4132 y(local)f(192.203.80.142)i(ttl)d(32)174 4436 y Fc(11.2)136 b Fb(ip)61 b(tunnel)d(show)43 b Fc(|)i(list)h(tunnels)174 4625 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)174 4899 y Fj(Argumen)m(ts:)98 b Fo(None.)174 5173 y Fj(Output)38 b(format:)174 5391 y Fk(kuznet@amber:~)55 b($)d(ip)g(tunl)g(ls)g(Cisco) 174 5511 y(Cisco:)h(ipv6/ip)105 b(remote)52 b(192.31.7.104)106 b(local)53 b(192.203.80.142)106 b(ttl)52 b(32)174 5631 y(kuznet@amber:~)j($)p eop end %%Page: 45 45 TeXDict begin 45 44 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(45)174 631 y(The)41 b(line)f(starts)h(with)f(the)g(tunnel)h (device)g(name)f(follo)m(w)m(ed)h(b)m(y)g(a)e(colon.)65 b(Then)41 b(the)f(tunnel)174 751 y(mo)s(de)35 b(follo)m(ws.)51 b(The)35 b(parameters)h(of)e(the)h(tunnel)h(are)f(listed)g(with)h(the)f (same)g(k)m(eyw)m(ords)j(that)174 872 y(w)m(ere)c(used)g(when)g (creating)f(the)g(tunnel.)174 1163 y Fj(Statistics:)174 1397 y Fk(kuznet@amber:~)55 b($)d(ip)g(-s)f(tunl)i(ls)f(Cisco)174 1517 y(Cisco:)h(ipv6/ip)105 b(remote)52 b(192.31.7.104)106 b(local)53 b(192.203.80.142)106 b(ttl)52 b(32)174 1637 y(RX:)g(Packets)207 b(Bytes)412 b(Errors)53 b(CsumErrs)g(OutOfSeq)g (Mcasts)379 1758 y(12566)309 b(1707516)h(0)e(0)410 b(0)g(0)174 1878 y(TX:)52 b(Packets)207 b(Bytes)412 b(Errors)53 b(DeadLoop)g (NoRoute)104 b(NoBufs)379 1999 y(13445)309 b(1879677)h(0)e(0)410 b(0)g(0)174 2119 y(kuznet@amber:~)55 b($)174 2348 y Fo(Essen)m(tially) -8 b(,)49 b(these)44 b(n)m(um)m(b)s(ers)h(are)e(the)g(same)h(as)f(the)h (n)m(um)m(b)s(ers)h(prin)m(ted)f(with)g Fk(ip)51 b(-s)h(link)174 2468 y(show)34 b Fo(\(sec.4.2,)f(p.7\))g(but)g(the)g(tags)f(are)h (di\013eren)m(t)h(to)e(re\015ect)h(that)g(they)g(are)g(tunnel)g(sp)s (eci\014c.)320 2697 y Fe(\017)48 b Fk(CsumErrs)33 b Fo(|)c(the)i(total) f(n)m(um)m(b)s(er)h(of)f(pac)m(k)m(ets)i(dropp)s(ed)f(b)s(ecause)g(of)f (c)m(hec)m(ksum)k(failures)418 2817 y(for)e(a)h(GRE)f(tunnel)h(with)g (c)m(hec)m(ksumming)k(enabled.)320 3046 y Fe(\017)48 b Fk(OutOfSeq)37 b Fo(|)d(the)i(total)e(n)m(um)m(b)s(er)i(of)e(pac)m(k) m(ets)j(dropp)s(ed)e(b)s(ecause)i(they)e(arriv)m(ed)h(out)f(of)418 3167 y(sequence)h(for)c(a)g(GRE)g(tunnel)i(with)f(serialization)g (enabled.)320 3395 y Fe(\017)48 b Fk(Mcasts)34 b Fo(|)e(the)h(total)f (n)m(um)m(b)s(er)i(of)d(m)m(ulticast)j(pac)m(k)m(ets)h(receiv)m(ed)f (on)f(a)f(broadcast)h(GRE)418 3516 y(tunnel.)320 3745 y Fe(\017)48 b Fk(DeadLoop)38 b Fo(|)d(the)h(total)f(n)m(um)m(b)s(er)i (of)f(pac)m(k)m(ets)h(whic)m(h)h(w)m(ere)f(not)e(transmitted)i(b)s (ecause)418 3865 y(the)c(tunnel)h(is)f(lo)s(op)s(ed)f(bac)m(k)i(to)e (itself.)320 4094 y Fe(\017)48 b Fk(NoRoute)42 b Fo(|)e(the)h(total)f (n)m(um)m(b)s(er)h(of)f(pac)m(k)m(ets)j(whic)m(h)f(w)m(ere)f(not)g (transmitted)g(b)s(ecause)418 4214 y(there)34 b(is)f(no)f(IP)h(route)g (to)f(the)h(remote)g(endp)s(oin)m(t.)320 4443 y Fe(\017)48 b Fk(NoBufs)32 b Fo(|)d(the)i(total)e(n)m(um)m(b)s(er)i(of)f(pac)m(k)m (ets)i(whic)m(h)f(w)m(ere)h(not)e(transmitted)h(b)s(ecause)g(the)418 4563 y(k)m(ernel)j(failed)f(to)g(allo)s(cate)f(a)g(bu\013er.)174 4927 y Fn(12)161 b Ff(ip)74 b(monitor)52 b Fn(and)i Ff(rtmon)f Fn(|)h(state)f(monitoring)174 5157 y Fo(The)40 b Fk(ip)g Fo(utilit)m(y)g(can)f(monitor)g(the)h(state)f(of)g(devices,)k (addresses)e(and)e(routes)h(con)m(tin)m(uously)-8 b(.)174 5277 y(This)43 b(option)e(has)g(a)g(sligh)m(tly)i(di\013eren)m(t)f (format.)69 b(Namely)-8 b(,)45 b(the)c Fk(monitor)i Fo(command)f(is)g (the)174 5397 y(\014rst)33 b(in)g(the)g(command)h(line)f(and)g(then)g (the)g(ob)5 b(ject)33 b(list)g(follo)m(ws:)277 5631 y Fk(ip)52 b(monitor)h([)e(file)i(FILE)f(])g([)f(all)h(|)g(OBJECT-LIST)i (])p eop end %%Page: 46 46 TeXDict begin 46 45 bop 174 324 a Fo(46)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fk(OBJECT-LIST)29 b Fo(is)d(the)f(list) h(of)f(ob)5 b(ject)27 b(t)m(yp)s(es)f(that)g(w)m(e)g(w)m(an)m(t)g(to)f (monitor.)41 b(It)26 b(ma)m(y)g(con)m(tain)g Fk(link)p Fo(,)174 751 y Fk(address)40 b Fo(and)f Fk(route)p Fo(.)62 b(If)38 b(no)g Fk(file)h Fo(argumen)m(t)g(is)g(giv)m(en,)i Fk(ip)d Fo(op)s(ens)h(R)-8 b(TNETLINK,)40 b(listens)174 872 y(on)33 b(it)f(and)h(dumps)h(state)f(c)m(hanges)h(in)f(the)g (format)f(describ)s(ed)i(in)f(previous)h(sections.)321 992 y(If)45 b(a)g(\014le)h(name)g(is)g(giv)m(en,)k(it)45 b(do)s(es)h(not)g(listen)g(on)f(R)-8 b(TNETLINK,)47 b(but)f(op)s(ens)g (the)g(\014le)174 1112 y(con)m(taining)41 b(R)-8 b(TNETLINK)42 b(messages)h(sa)m(v)m(ed)f(in)f(binary)g(format)f(and)g(dumps)i(them.) 68 b(Suc)m(h)174 1233 y(a)38 b(history)i(\014le)f(can)f(b)s(e)h (generated)g(with)g(the)g Fk(rtmon)h Fo(utilit)m(y)-8 b(.)62 b(This)39 b(utilit)m(y)h(has)e(a)g(command)174 1353 y(line)f(syn)m(tax)h(similar)f(to)f Fk(ip)51 b(monitor)p Fo(.)56 b(Ideally)-8 b(,)39 b Fk(rtmon)e Fo(should)g(b)s(e)f(started)h (b)s(efore)f(the)h(\014rst)174 1474 y(net)m(w)m(ork)e(con\014guration)d (command)i(is)f(issued.)45 b(F.e.)33 b(if)f(y)m(ou)h(insert:)277 1662 y Fk(rtmon)52 b(file)h(/var/log/rtmon.log)174 1850 y Fo(in)33 b(a)f(startup)h(script,)h(y)m(ou)f(will)h(b)s(e)e(able)h(to) f(view)i(the)f(full)g(history)h(later.)321 1970 y(Certainly)-8 b(,)36 b(it)e(is)h(p)s(ossible)h(to)e(start)g Fk(rtmon)i Fo(at)e(an)m(y)h(time.)49 b(It)35 b(prep)s(ends)h(the)e(history)i(with) 174 2091 y(the)d(state)g(snapshot)h(dump)s(ed)g(at)e(the)h(momen)m(t)g (of)g(starting.)174 2421 y Fn(13)161 b(Route)53 b(realms)h(and)f(p)t (olicy)h(propagation,)e Ff(rtacct)174 2640 y Fo(On)31 b(routers)f(using)h(OSPF)f(ASE)h(or,)g(esp)s(ecially)-8 b(,)32 b(the)f(BGP)f(proto)s(col,)g(routing)g(tables)h(ma)m(y)g(b)s(e) 174 2760 y(h)m(uge.)51 b(If)35 b(w)m(e)h(w)m(an)m(t)g(to)e(classify)i (or)f(to)f(accoun)m(t)i(for)e(the)i(pac)m(k)m(ets)h(p)s(er)d(route,)i (w)m(e)g(will)f(ha)m(v)m(e)i(to)174 2880 y(k)m(eep)f(lots)e(of)f (information.)48 b(Ev)m(en)35 b(w)m(orse,)h(if)e(w)m(e)h(w)m(an)m(t)f (to)g(distinguish)i(the)e(pac)m(k)m(ets)i(not)e(only)174 3001 y(b)m(y)d(their)f(destination,)h(but)f(also)g(b)m(y)h(their)f (source,)h(the)f(task)h(gets)f(quadratic)g(complexit)m(y)i(and)174 3121 y(its)h(solution)g(is)h(ph)m(ysically)h(imp)s(ossible.)321 3242 y(One)30 b(approac)m(h)h(to)f(propagating)g(the)h(p)s(olicy)g (from)f(routing)h(proto)s(cols)f(to)g(the)h(forw)m(arding)174 3362 y(engine)49 b(has)f(b)s(een)g(prop)s(osed)h(in)f([8)o(].)89 b(Essen)m(tially)-8 b(,)54 b(Cisco)49 b(P)m(olicy)g(Propagation)e(via)h (BGP)174 3482 y(is)41 b(based)g(on)f(the)h(fact)f(that)g(dedicated)h (routers)g(all)f(ha)m(v)m(e)i(the)e(RIB)h(\(Routing)e(Information)174 3603 y(Base\))d(close)h(to)e(the)h(forw)m(arding)g(engine,)h(so)e(p)s (olicy)i(routing)e(rules)h(can)g(c)m(hec)m(k)i(all)d(the)h(route)174 3723 y(attributes,)e(including)g(ASP)-8 b(A)g(TH)33 b(information)g (and)f(comm)m(unit)m(y)j(strings.)321 3844 y(The)25 b(Lin)m(ux)g(arc)m (hitecture,)i(splitting)e(the)f(RIB)g(\(main)m(tained)i(b)m(y)e(a)g (user)h(lev)m(el)h(daemon\))e(and)174 3964 y(the)39 b(k)m(ernel)h (based)f(FIB)f(\(F)-8 b(orw)m(arding)38 b(Information)g(Base\),)j(do)s (es)d(not)h(allo)m(w)f(suc)m(h)i(a)e(simple)174 4084 y(approac)m(h.)321 4205 y(It)46 b(is)h(to)f(our)h(fortune)f(b)s(ecause) i(there)f(is)g(another)g(solution)g(whic)m(h)h(allo)m(ws)f(ev)m(en)h (more)174 4325 y(\015exible)35 b(p)s(olicy)e(and)g(ric)m(her)g(seman)m (tics.)321 4445 y(Namely)-8 b(,)32 b(routes)g(can)f(b)s(e)g(clustered)i (together)e(in)h(user)f(space,)i(based)f(on)f(their)g(attributes.)174 4566 y(F.e.)f(a)g(BGP)g(router)g(kno)m(ws)i(route)e(ASP)-8 b(A)g(TH,)31 b(its)f(comm)m(unit)m(y;)j(an)d(OSPF)g(router)g(kno)m(ws)i (the)174 4686 y(route)38 b(tag)e(or)h(its)h(area.)57 b(The)38 b(administrator,)h(when)f(adding)f(routes)h(man)m(ually)-8 b(,)39 b(also)f(kno)m(ws)174 4807 y(their)j(nature.)66 b(Pro)m(viding)42 b(that)d(the)i(n)m(um)m(b)s(er)h(of)d(suc)m(h)j (aggregates)e(\(w)m(e)h(call)f(them)h Fl(r)-5 b(e)g(alms)8 b Fo(\))174 4927 y(is)42 b(lo)m(w,)h(the)e(task)h(of)e(full)h (classi\014cation)h(b)s(oth)f(b)m(y)h(source)f(and)g(destination)h(b)s (ecomes)g(quite)174 5047 y(manageable.)321 5168 y(So)35 b(eac)m(h)i(route)f(ma)m(y)h(b)s(e)f(assigned)h(to)f(a)f(realm.)54 b(It)36 b(is)g(assumed)i(that)d(this)i(iden)m(ti\014cation)174 5288 y(is)h(made)g(b)m(y)g(a)f(routing)g(daemon,)i(but)f(static)g (routes)g(can)f(also)h(b)s(e)f(handled)h(man)m(ually)h(with)174 5408 y Fk(ip)52 b(route)34 b Fo(\(see)g(sec.7,)f(p.21\).)411 5532 y Fi(NB.)56 b(There)28 b(is)g(a)f(patc)n(h)h(to)g Fd(gated)p Fi(,)f(allo)n(wing)f(classi\014cation)h(of)h(routes)f(to)h (realms)f(with)i(all)f(the)g(set)g(of)411 5631 y(p)r(olicy)f(rules)g (implemen)n(ted)h(in)g Fd(gated)p Fi(:)35 b(b)n(y)27 b(pre\014x,)h(b)n(y)f(ASP)-7 b(A)g(TH,)28 b(b)n(y)f(origin,)g(b)n(y)g (tag)g(etc.)p eop end %%Page: 47 47 TeXDict begin 47 46 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(47)321 631 y(T)-8 b(o)45 b(facilitate)g(the)h(construction)g (\(f.e.)f(in)g(case)h(the)g(routing)f(daemon)g(is)h(not)f(a)m(w)m(are)h (of)174 751 y(realms\),)33 b(missing)g(realms)g(ma)m(y)f(b)s(e)g (completed)i(with)e(routing)f(p)s(olicy)i(rules,)g(see)g(sec.)g(8,)e (p.35.)321 881 y(F)-8 b(or)29 b(eac)m(h)i(pac)m(k)m(et)g(the)g(k)m (ernel)h(calculates)f(a)f(tuple)h(of)e(realms:)43 b(source)31 b(realm)g(and)f(destina-)174 1001 y(tion)j(realm,)g(using)g(the)g (follo)m(wing)g(algorithm:)294 1291 y(1.)48 b(If)33 b(the)g(route)f (has)h(a)g(realm,)g(the)g(destination)g(realm)g(of)f(the)h(pac)m(k)m (et)i(is)e(set)g(to)f(it.)294 1539 y(2.)48 b(If)32 b(the)g(rule)g(has)g (a)f(source)i(realm,)f(the)g(source)g(realm)g(of)f(the)h(pac)m(k)m(et)i (is)e(set)g(to)f(it.)43 b(If)32 b(the)418 1659 y(destination)24 b(realm)f(w)m(as)h(not)f(inherited)h(from)f(the)g(route)g(and)h(the)f (rule)g(has)h(a)e(destination)418 1780 y(realm,)33 b(it)g(is)g(also)g (set.)294 2027 y(3.)48 b(If)30 b(at)f(least)g(one)h(of)f(the)h(realms)g (is)g(still)g(unkno)m(wn,)i(the)d(k)m(ernel)i(\014nds)g(the)e(rev)m (ersed)j(route)418 2148 y(to)g(the)h(source)h(of)e(the)h(pac)m(k)m(et.) 294 2396 y(4.)48 b(If)33 b(the)g(source)g(realm)g(is)g(still)h(unkno)m (wn,)g(get)f(it)f(from)g(the)h(rev)m(ersed)i(route.)294 2643 y(5.)48 b(If)40 b(one)f(of)g(the)h(realms)h(is)e(still)i(unkno)m (wn,)i(sw)m(ap)d(the)g(realms)g(of)f(rev)m(ersed)j(routes)e(and)418 2764 y(apply)33 b(step)h(2)e(again.)321 3054 y(After)39 b(this)g(pro)s(cedure)h(is)g(completed)g(w)m(e)g(kno)m(w)g(what)f (realm)h(the)f(pac)m(k)m(et)i(arriv)m(ed)f(from)174 3174 y(and)33 b(the)g(realm)f(where)i(it)e(is)h(going)f(to)g(propagate)g (to.)44 b(If)32 b(some)h(of)f(the)h(realms)g(are)f(unkno)m(wn,)174 3295 y(they)i(are)e(initialized)i(to)e(zero)h(\(or)g(realm)g Fk(unknown)p Fo(\).)321 3424 y(The)46 b(main)g(application)g(of)f (realms)h(is)g(the)g(TC)g Fk(route)h Fo(classi\014er)g([7],)i(where)e (they)f(are)174 3544 y(used)41 b(to)e(help)i(assign)f(pac)m(k)m(ets)i (to)d(tra\016c)h(classes,)j(to)c(accoun)m(t,)k(p)s(olice)d(and)g(sc)m (hedule)i(them)174 3665 y(according)33 b(to)g(this)g(classi\014cation.) 321 3794 y(A)c(m)m(uc)m(h)i(simpler)g(but)f(still)h(v)m(ery)g(useful)f (application)g(is)g(incoming)h(pac)m(k)m(et)g(accoun)m(ting)f(b)m(y)174 3914 y(realms.)66 b(The)41 b(k)m(ernel)h(gathers)e(a)f(pac)m(k)m(et)j (statistics)f(summary)g(whic)m(h)h(can)e(b)s(e)g(view)m(ed)i(with)174 4035 y(the)33 b Fk(rtacct)h Fo(utilit)m(y)-8 b(.)174 4291 y Fk(kuznet@amber:~)55 b($)d(rtacct)h(russia)174 4412 y(Realm)309 b(BytesTo)207 b(PktsTo)258 b(BytesFrom)105 b(PktsFrom)174 4532 y(russia)258 b(20576778)156 b(169176)258 b(47080168)156 b(153805)174 4652 y(kuznet@amber:~)55 b($)174 4900 y Fo(This)50 b(sho)m(ws)g(that)f(this)g(router)g(receiv)m (ed)i(153805)c(pac)m(k)m(ets)k(from)d(the)h(realm)g Fk(russia)h Fo(and)174 5021 y(forw)m(arded)35 b(169176)e(pac)m(k)m(ets)j(to)d Fk(russia)p Fo(.)50 b(The)35 b(realm)f Fk(russia)i Fo(consists)g(of)d (routes)i(with)g(AS-)174 5141 y(P)-8 b(A)g(THs)34 b(not)f(lea)m(ving)g (Russia.)321 5270 y(Note)25 b(that)g(lo)s(cally)g(originating)g(pac)m (k)m(ets)i(are)f(not)f(accoun)m(ted)h(here,)i Fk(rtacct)e Fo(sho)m(ws)h(incom-)174 5391 y(ing)35 b(pac)m(k)m(ets)h(only)-8 b(.)50 b(Using)35 b(the)g Fk(route)g Fo(classi\014er)i(\(see)e([7]\))f (y)m(ou)h(can)g(get)g(ev)m(en)h(more)e(detailed)174 5511 y(accoun)m(ting)43 b(information)e(ab)s(out)g(outgoing)g(pac)m(k)m (ets,)46 b(optionally)c(summarizing)h(tra\016c)e(not)174 5631 y(only)33 b(b)m(y)h(source)g(or)e(destination,)h(but)g(b)m(y)h(an) m(y)f(pair)f(of)h(source)g(and)g(destination)g(realms.)p eop end %%Page: 48 48 TeXDict begin 48 47 bop 174 324 a Fo(48)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fn(References)223 853 y Fo([1])49 b(T.)44 b(Narten,)j(E.)d(Nordmark,)i(W.)e(Simpson.)h (\\Neigh)m(b)s(or)f(Disco)m(v)m(ery)h(for)e(IP)h(V)-8 b(ersion)45 b(6)375 974 y(\(IPv6\)",)33 b(RF)m(C-2461.)223 1185 y([2])49 b(S.)26 b(Thomson,)i(T.)e(Narten.)g(\\IPv6)g(Stateless)h (Address)g(Auto)s(con\014guration",)f(RF)m(C-2462.)223 1396 y([3])49 b(F.)32 b(Bak)m(er.)i(\\Requiremen)m(ts)h(for)d(IP)h(V)-8 b(ersion)33 b(4)f(Routers",)h(RF)m(C-1812.)223 1607 y([4])49 b(R.)26 b(T.)h(Braden.)g(\\Requiremen)m(ts)h(for)e(In)m(ternet)i(hosts) f(|)f(comm)m(unication)i(la)m(y)m(ers",)h(RF)m(C-)375 1727 y(1122.)223 1938 y([5])49 b(\\Cisco)40 b(IOS)f(Release)h(12.0)e (Net)m(w)m(ork)j(Proto)s(cols)e(Command)h(Reference,)i(P)m(art)d(1")f (and)375 2059 y(\\Cisco)30 b(IOS)f(Release)i(12.0)d(Qualit)m(y)i(of)f (Service)i(Solutions)f(Con\014guration)f(Guide:)42 b(Con-)375 2179 y(\014guring)33 b(P)m(olicy-Based)h(Routing",)375 2300 y(h)m(ttp://www.cisco.com/univ)m(ercd/cc/td/do)s(c/pro)s (duct/soft)m(w)m(are/ios120.)223 2511 y([6])49 b(A.)33 b(N.)f(Kuznetso)m(v.)j(\\T)-8 b(unnels)34 b(o)m(v)m(er)g(IP)f(in)g(Lin) m(ux-2.2",)375 2631 y(In:)44 b Fk(ftp://ftp.inr.ac.ru/ip-rou)q(ting)q (/ipr)q(out)q(e2-c)q(urre)q(nt.t)q(ar.)q(gz)p Fo(.)223 2842 y([7])49 b(A.)33 b(N.)f(Kuznetso)m(v.)j(\\TC)e(Command)h (Reference",)375 2963 y(In:)44 b Fk(ftp://ftp.inr.ac.ru/ip-rou)q(ting)q (/ipr)q(out)q(e2-c)q(urre)q(nt.t)q(ar.)q(gz)p Fo(.)223 3174 y([8])49 b(\\Cisco)30 b(IOS)f(Release)i(12.0)d(Qualit)m(y)i(of)f (Service)i(Solutions)f(Con\014guration)f(Guide:)42 b(Con-)375 3294 y(\014guring)33 b(QoS)f(P)m(olicy)i(Propagation)e(via)h(Border)g (Gatew)m(a)m(y)g(Proto)s(col",)375 3414 y(h)m(ttp://www.cisco.com/univ) m(ercd/cc/td/do)s(c/pro)s(duct/soft)m(w)m(are/ios120.)223 3626 y([9])49 b(R.)32 b(Droms.)h(\\Dynamic)g(Host)g(Con\014guration)g (Proto)s(col.",)f(RF)m(C-2131)174 4085 y Fn(A)162 b(Source)52 b(address)g(selection)174 4307 y Fo(When)29 b(a)f(host)h(creates)g(an)f (IP)g(pac)m(k)m(et,)j(it)d(m)m(ust)h(select)h(some)f(source)g(address.) 43 b(Correct)29 b(source)174 4428 y(address)k(selection)g(is)f(a)f (critical)g(pro)s(cedure,)i(b)s(ecause)g(it)e(giv)m(es)i(the)e(receiv)m (er)j(the)d(information)174 4548 y(needed)51 b(to)d(deliv)m(er)i(a)f (reply)-8 b(.)92 b(If)49 b(the)g(source)h(is)f(selected)i(incorrectly) -8 b(,)54 b(in)49 b(the)g(b)s(est)g(case,)174 4668 y(the)d(bac)m(kw)m (ard)h(path)f(ma)m(y)g(app)s(ear)f(di\013eren)m(t)i(to)e(the)g(forw)m (ard)h(one)f(whic)m(h)i(is)f(harmful)g(for)174 4789 y(p)s(erformance.)e (In)33 b(the)g(w)m(orst)g(case,)g(when)h(the)f(addresses)h(are)f (administrativ)m(ely)h(scop)s(ed,)g(the)174 4909 y(reply)g(ma)m(y)f(b)s (e)g(lost)g(en)m(tirely)-8 b(.)321 5031 y(Lin)m(ux-2.2)33 b(selects)h(source)g(addresses)h(using)e(the)g(follo)m(wing)g (algorithm:)320 5270 y Fe(\017)48 b Fo(The)f(application)g(ma)m(y)g (select)g(a)f(source)h(address)h(explicitly)g(with)f Fk(bind\(2\))h Fo(syscall)418 5391 y(or)c(supplying)i(it)e(to)g Fk(sendmsg\(2\))i Fo(via)f(the)g(ancillary)f(data)g(ob)5 b(ject)45 b Fk(IP_PKTINFO)p Fo(.)i(In)418 5511 y(this)40 b(case)g(the)f(k)m(ernel)i(only)f(c)m(hec)m(ks)h(the)f(v)-5 b(alidit)m(y)40 b(of)e(the)i(address)g(and)f(nev)m(er)i(tries)f(to)418 5631 y(\\impro)m(v)m(e")34 b(an)e(incorrect)i(user)f(c)m(hoice,)h (generating)f(an)g(error)f(instead.)p eop end %%Page: 49 49 TeXDict begin 49 48 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(49)654 631 y Fi(NB.)49 b(Nev)n(er)23 b(sa)n(y)g(\\Nev)n(er".)34 b(The)24 b(sysctl)g(option)g Fd(ip_dynaddr)c Fi(breaks)j(this)h(axiom.) 35 b(It)24 b(has)g(b)r(een)654 731 y(made)31 b(delib)r(erately)g(with)g (the)h(purp)r(ose)e(of)h(automatically)f(reselecting)g(the)h(address)f (on)h(hosts)654 830 y(with)26 b(dynamic)e(dial-out)g(in)n(terfaces.)35 b(Ho)n(w)n(ev)n(er,)23 b(this)i(hac)n(k)f Fa(must)i(not)32 b Fi(b)r(e)25 b(used)g(on)f(m)n(ultihomed)654 930 y(hosts)k(and)f(esp)r (ecially)g(on)g(routers:)36 b(it)28 b(w)n(ould)f(break)g(them.)320 1152 y Fe(\017)48 b Fo(Otherwise,)31 b(IP)e(routing)f(tables)i(can)e (con)m(tain)h(an)g(explicit)g(source)h(address)g(hin)m(t)f(for)f(this) 418 1272 y(destination.)43 b(The)29 b(hin)m(t)g(is)f(set)h(with)g(the)f Fk(src)h Fo(parameter)f(to)g(the)g Fk(ip)52 b(route)29 b Fo(command,)418 1392 y(sec.7,)34 b(p.21.)320 1614 y Fe(\017)48 b Fo(Otherwise,)i(the)c(k)m(ernel)h(searc)m(hes)g(through)e (the)h(list)f(of)g(addresses)i(attac)m(hed)f(to)f(the)418 1735 y(in)m(terface)40 b(through)e(whic)m(h)i(the)f(pac)m(k)m(ets)h (will)f(b)s(e)g(routed.)61 b(The)39 b(searc)m(h)h(strategies)f(are)418 1855 y(di\013eren)m(t)34 b(for)e(IP)h(and)g(IPv6.)44 b(Namely:)528 2109 y Fj({)49 b Fo(IPv6)c(searc)m(hes)h(for)e(the)h (\014rst)g(v)-5 b(alid,)47 b(not)d(deprecated)i(address)g(with)f(the)f (same)633 2230 y(scop)s(e)33 b(as)g(the)g(destination.)528 2399 y Fj({)49 b Fo(IP)38 b(searc)m(hes)i(for)e(the)g(\014rst)g(v)-5 b(alid)38 b(address)i(with)e(a)g(scop)s(e)g(wider)h(than)f(the)g(scop)s (e)633 2519 y(of)g(the)i(destination)f(but)h(it)e(prefers)i(addresses)h (whic)m(h)g(fall)d(to)h(the)g(same)h(subnet)633 2640 y(as)32 b(the)h(nexthop)h(of)e(the)g(route)h(to)f(the)h(destination.)44 b(Unlik)m(e)34 b(IPv6,)f(the)g(scop)s(es)h(of)633 2760 y(IPv4)39 b(destinations)h(are)f(not)g(enco)s(ded)g(in)g(their)g (addresses)i(but)e(are)g(supplied)h(in)633 2880 y(routing)e(tables)h (instead)g(\(the)g Fk(scope)h Fo(parameter)e(to)g(the)h Fk(ip)52 b(route)39 b Fo(command,)633 3001 y(sec.7,)34 b(p.21\).)320 3255 y Fe(\017)48 b Fo(Otherwise,)40 b(if)d(the)g(scop)s (e)h(of)f(the)g(destination)h(is)g Fk(link)g Fo(or)f Fk(host)p Fo(,)i(the)e(algorithm)g(fails)418 3375 y(and)c(returns)g(a)g (zero)g(source)g(address.)320 3597 y Fe(\017)48 b Fo(Otherwise,)32 b(all)e(in)m(terfaces)h(are)f(scanned)h(to)e(searc)m(h)i(for)e(an)h (address)h(with)f(an)g(appropri-)418 3718 y(ate)j(scop)s(e.)46 b(The)33 b(lo)s(opbac)m(k)h(device)h Fk(lo)e Fo(is)h(alw)m(a)m(ys)g (the)f(\014rst)h(in)f(the)g(searc)m(h)i(list,)e(so)h(that)418 3838 y(if)f(an)h(address)g(with)g(global)g(scop)s(e)g(\(not)f (127.0.0.1!\))45 b(is)34 b(con\014gured)g(on)f(lo)s(opbac)m(k,)h(it)g (is)418 3958 y(alw)m(a)m(ys)g(preferred.)174 4314 y Fn(B)161 b(Pro)l(xy)54 b(ARP/NDISC)174 4541 y Fo(Routers)29 b(ma)m(y)g(answ)m (er)h(ARP/NDISC)f(solicitations)g(on)g(b)s(ehalf)f(of)g(other)g(hosts.) 43 b(In)29 b(Lin)m(ux-2.2)174 4661 y(pro)m(xy)44 b(ARP)f(on)f(an)h(in)m (terface)g(ma)m(y)h(b)s(e)e(enabled)i(b)m(y)g(setting)f(the)g(k)m (ernel)h Fk(sysctl)g Fo(v)-5 b(ariable)174 4781 y Fk (/proc/sys/net/ipv4/conf/)q(<de)q(v>/p)q(roxy)q(_arp)43 b Fo(to)36 b(1.)54 b(After)37 b(this,)h(the)e(router)h(starts)g(to)174 4902 y(answ)m(er)45 b(ARP)e(requests)i(on)d(the)h(in)m(terface)h Fk(<dev>)p Fo(,)j(pro)m(vided)d(the)f(route)g(to)g(the)g(requested)174 5022 y(destination)34 b(do)s(es)f Fl(not)42 b Fo(go)32 b(bac)m(k)i(via)e(the)h(same)h(device.)321 5146 y(The)e(v)-5 b(ariable)33 b Fk(/proc/sys/net/ipv4/conf/all)q(/pr)q(oxy_)q(arp)38 b Fo(enables)33 b(pro)m(xy)g(ARP)f(on)174 5267 y(all)h(the)g(IP)g (devices.)321 5391 y(Ho)m(w)m(ev)m(er,)h(this)f(approac)m(h)g(fails)f (in)h(the)f(case)h(of)f(IPv6)h(b)s(ecause)h(the)e(router)h(m)m(ust)g (join)f(the)174 5511 y(solicited)43 b(no)s(de)e(m)m(ulticast)h(address) g(to)e(listen)i(for)f(the)g(corresp)s(onding)h(NDISC)f(queries.)70 b(It)174 5631 y(means)34 b(that)e(pro)m(xy)i(NDISC)f(is)g(p)s(ossible)h (only)f(on)g(a)f(p)s(er)h(destination)g(basis.)p eop end %%Page: 50 50 TeXDict begin 50 49 bop 174 324 a Fo(50)2486 b Fg(IP)33 b(Command)h(Reference)321 631 y Fo(Logically)-8 b(,)35 b(pro)m(xy)h(ARP/NDISC)e(is)h(not)g(a)f(k)m(ernel)i(task.)50 b(It)35 b(can)f(easily)i(b)s(e)f(implemen)m(ted)174 751 y(in)47 b(user)h(space.)87 b(Ho)m(w)m(ev)m(er,)53 b(similar)47 b(functionalit)m(y)h(w)m(as)g(presen)m(t)g(in)f(BSD)f(k)m(ernels)j(and) e(in)174 872 y(Lin)m(ux-2.0,)f(so)d(w)m(e)h(ha)m(v)m(e)g(to)e(preserv)m (e)j(it)e(at)f(least)h(to)g(the)g(exten)m(t)h(that)f(is)g(standardized) h(in)174 992 y(BSD.)411 1115 y Fi(NB.)66 b(Lin)n(ux-2.0)31 b(ARP)i(had)g(a)f(feature)h(called)f Fa(subnet)40 b Fi(pro)n(xy)32 b(ARP)-7 b(.)33 b(It)g(is)g(replaced)f(with)h(the)h(sysctl)411 1215 y(\015ag)26 b(in)i(Lin)n(ux-2.2.)321 1359 y Fo(The)34 b Fk(ip)g Fo(utilit)m(y)g(pro)m(vides)i(a)d(w)m(a)m(y)h(to)f(manage)h (pro)m(xy)g(ARP/NDISC)g(with)g(the)g Fk(ip)52 b(neigh)174 1479 y Fo(command,)34 b(namely:)277 1668 y Fk(ip)52 b(neigh)g(add)g (proxy)h(ADDRESS)g([)f(dev)g(NAME)g(])174 1858 y Fo(adds)34 b(a)e(new)h(pro)m(xy)h(ARP/NDISC)f(record)g(and)277 2047 y Fk(ip)52 b(neigh)g(del)g(proxy)h(ADDRESS)g([)f(dev)g(NAME)g(])174 2236 y Fo(deletes)35 b(it.)321 2356 y(If)45 b(the)g(name)h(of)e(the)i (device)h(is)e(not)g(giv)m(en,)50 b(the)45 b(router)g(will)h(answ)m(er) h(solicitations)f(for)174 2476 y(address)36 b Fk(ADDRESS)g Fo(on)e(all)g(devices,)j(otherwise)f(it)f(will)f(only)h(serv)m(e)h(the) f(device)h Fk(NAME)p Fo(.)g(Ev)m(en)f(if)174 2597 y(the)i(pro)m(xy)f (en)m(try)h(is)g(created)f(with)g Fk(ip)52 b(neigh)p Fo(,)38 b(the)e(router)g Fl(wil)5 b(l)37 b(not)46 b Fo(answ)m(er)37 b(a)e(query)i(if)f(the)174 2717 y(route)h(to)g(the)g(destination)h(go)s (es)f(bac)m(k)h(via)f(the)h(in)m(terface)f(from)g(whic)m(h)i(the)e (solicitation)g(w)m(as)174 2838 y(receiv)m(ed.)321 2958 y(It)i(is)h(imp)s(ortan)m(t)g(to)f(emphasize)j(that)d(pro)m(xy)i(en)m (tries)g(ha)m(v)m(e)g Fl(no)k Fo(parameters)c(other)e(than)174 3078 y(these)g(\(IP/IPv6)f(address)g(and)f(optional)g(device\).)59 b(P)m(articularly)-8 b(,)40 b(the)d(en)m(try)h(do)s(es)g(not)f(store) 174 3199 y(an)m(y)k(link)g(la)m(y)m(er)g(address.)68 b(It)40 b(alw)m(a)m(ys)i(adv)m(ertises)h(the)d(station)g(address)i(of)e (the)g(in)m(terface)h(on)174 3319 y(whic)m(h)34 b(it)f(sends)h(adv)m (ertisemen)m(ts)i(\(i.e.)44 b(it's)33 b(o)m(wn)g(station)g(address\).) 174 3649 y Fn(C)161 b(Route)53 b(NA)-13 b(T)54 b(status)174 3868 y Fo(NA)-8 b(T)31 b(\(or)e(\\Net)m(w)m(ork)i(Address)g(T)-8 b(ranslation"\))30 b(remaps)h(some)g(parts)f(of)f(the)h(IP)g(address)h (space)174 3989 y(in)m(to)46 b(other)f(ones.)82 b(Lin)m(ux-2.2)46 b(route)f(NA)-8 b(T)46 b(is)g(supp)s(osed)h(to)d(b)s(e)i(used)g(to)f (facilitate)h(p)s(olicy)174 4109 y(routing)28 b(b)m(y)g(rewriting)g (addresses)h(to)e(other)h(routing)f(domains)h(or)f(to)g(help)h(while)h (ren)m(um)m(b)s(ering)174 4230 y(sites)34 b(to)e(another)h(pre\014x.) 174 4487 y Fj(What)46 b(it)g(is)g(not:)98 b Fo(It)40 b(is)h(necessary)h(to)e(emphasize)i(that)e Fl(it)i(is)f(not)h(supp)-5 b(ose)g(d)49 b Fo(to)40 b(b)s(e)g(used)174 4607 y(to)f(compress)i (address)g(space)f(or)f(to)g(split)h(load.)64 b(This)40 b(is)g(not)f(missing)i(functionalit)m(y)f(but)g(a)174 4728 y(design)31 b(principle.)43 b(Route)30 b(NA)-8 b(T)29 b(is)h Fl(stateless)8 b Fo(.)42 b(It)29 b(do)s(es)h(not)f(hold)g(an)m (y)h(state)g(ab)s(out)f(translated)174 4848 y(sessions.)63 b(This)39 b(means)h(that)e(it)g(handles)h(an)m(y)g(n)m(um)m(b)s(er)h (of)d(sessions)k(\015a)m(wlessly)-8 b(.)63 b(But)38 b(it)g(also)174 4968 y(means)c(that)e(it)h(is)f Fl(static)6 b Fo(.)44 b(It)32 b(cannot)h(detect)g(the)g(momen)m(t)h(when)g(the)e(last)h(TCP)h (clien)m(t)f(stops)174 5089 y(using)i(an)f(address.)50 b(F)-8 b(or)33 b(the)h(same)h(reason,)g(it)f(will)h(not)f(help)h(to)f (split)h(load)e(b)s(et)m(w)m(een)k(sev)m(eral)174 5209 y(serv)m(ers.)411 5332 y Fi(NB.)53 b(It)27 b(is)g(a)f(prett)n(y)g (commonly)g(held)h(b)r(elief)g(that)g(it)g(is)g(useful)g(to)f(split)h (load)f(b)r(et)n(w)n(een)h(sev)n(eral)e(serv)n(ers)411 5432 y(with)31 b(NA)-7 b(T.)31 b(This)f(is)h(a)f(mistak)n(e.)45 b(All)31 b(y)n(ou)f(get)g(from)g(this)h(is)f(the)h(requiremen)n(t)f (that)h(the)f(router)g(k)n(eep)411 5532 y(the)22 b(state)h(of)f(all)h (the)g(TCP)f(connections)f(going)h(via)g(it.)35 b(W)-7 b(ell,)24 b(if)g(the)e(router)g(is)g(so)g(p)r(o)n(w)n(erful,)h(run)g (apac)n(he)411 5631 y(on)k(it.)37 b(8\))p eop end %%Page: 51 51 TeXDict begin 51 50 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(51)321 631 y(The)34 b(second)g(feature:)45 b(it)33 b(do)s(es)h(not)f(touc)m(h)h(pac)m(k)m(et)g(pa)m(yload,)g(do)s(es)g (not)f(try)g(to)g(\\impro)m(v)m(e")174 751 y(brok)m(en)45 b(proto)s(cols)e(b)m(y)h(lo)s(oking)f(through)g(its)g(data)g(and)h (mangling)f(it.)75 b(It)43 b(mangles)h(IP)g(ad-)174 872 y(dresses,)g(only)c(IP)g(addresses)i(and)d(nothing)h(but)g(IP)g (addresses.)66 b(This)41 b(also,)h(is)e(not)f(missing)174 992 y(an)m(y)34 b(functionalit)m(y)-8 b(.)321 1112 y(T)g(o)44 b(resume:)69 b(if)45 b(y)m(ou)g(need)h(to)e(compress)j(address)e(space) h(or)e(k)m(eep)j(activ)m(e)f(FTP)f(clien)m(ts)174 1233 y(happ)m(y)-8 b(,)33 b(y)m(our)f(c)m(hoice)h(is)e(not)h(route)f(NA)-8 b(T)32 b(but)f(masquerading,)j(p)s(ort)c(forw)m(arding,)i(NAPT)h(etc.) 411 1356 y Fi(NB.)k(By)18 b(the)g(w)n(a)n(y)-7 b(,)20 b(y)n(ou)d(ma)n(y)h(also)f(w)n(an)n(t)h(to)g(lo)r(ok)g(at)g(h)n (ttp://www.suse.com/)12 b(~)-55 b(mha/Hyp)r(erNews/get/lin)n(ux-)411 1456 y(ip-nat.h)n(tml)174 1714 y Fj(Ho)m(w)45 b(it)g(w)m(orks.)97 b Fo(Some)40 b(part)f(of)g(the)g(address)i(space)f(is)g(reserv)m(ed)i (for)c(dumm)m(y)j(addresses)174 1835 y(whic)m(h)g(will)f(lo)s(ok)g(for) e(all)i(the)g(w)m(orld)g(lik)m(e)g(some)h(host)e(addresses)j(inside)f (y)m(our)f(net)m(w)m(ork.)65 b(No)174 1955 y(other)29 b(hosts)h(ma)m(y)f(use)h(these)g(addresses,)i(ho)m(w)m(ev)m(er)f(other) e(routers)g(ma)m(y)g(also)g(b)s(e)g(con\014gured)h(to)174 2076 y(translate)j(them.)411 2199 y Fi(NB.)59 b(A)30 b(great)f(adv)-5 b(an)n(tage)28 b(of)h(route)g(NA)-7 b(T)31 b(is)e(that)h(it)g(ma)n(y)f(b)r(e)h(used)g(not)g(only)f(in)h (stub)g(net)n(w)n(orks)e(but)411 2298 y(in)f(en)n(vironmen)n(ts)g(with) h(arbitrarily)e(complicated)h(structure.)36 b(It)28 b(do)r(es)f(not)h (\014rew)n(all,)f(it)h Fa(forwar)l(ds.)321 2442 y Fo(These)34 b(addresses)h(are)d(selected)j(b)m(y)e(the)h Fk(ip)51 b(route)34 b Fo(command)g(\(sec.7.1,)f(p.23\).)43 b(F.e.)277 2639 y Fk(ip)52 b(route)g(add)g(nat)g(192.203.80.144)j(via)d (193.233.7.83)174 2836 y Fo(states)38 b(that)f(the)h(single)g(address)h (192.203.80.144)c(is)i(a)g(dumm)m(y)i(NA)-8 b(T)38 b(address.)58 b(F)-8 b(or)37 b(all)g(the)174 2957 y(w)m(orld)43 b(it)e(lo)s(oks)h (lik)m(e)h(a)f(host)g(address)h(inside)g(our)f(net)m(w)m(ork.)72 b(F)-8 b(or)41 b(neigh)m(b)s(ouring)i(hosts)f(and)174 3077 y(routers)c(it)f(lo)s(oks)h(lik)m(e)h(the)e(lo)s(cal)g(address)i (of)e(the)h(translating)f(router.)58 b(The)38 b(router)f(answ)m(ers)174 3197 y(ARP)f(for)e(it,)i(adv)m(ertises)h(this)f(address)g(as)f(routed)g (via)h(it,)f Fl(et)j(al)10 b Fo(.)50 b(When)36 b(the)g(router)f(receiv) m(es)174 3318 y(a)30 b(pac)m(k)m(et)i(destined)g(for)e(192.203.80.144,) e(it)i(replaces)i(this)f(address)h(with)e(193.233.7.83)f(whic)m(h)174 3438 y(is)h(the)f(address)h(of)e(some)i(real)e(host)h(and)g(forw)m (ards)h(the)f(pac)m(k)m(et.)44 b(If)28 b(y)m(ou)i(need)f(to)g(remap)g (blo)s(c)m(ks)174 3558 y(of)j(addresses,)j(y)m(ou)f(ma)m(y)f(use)g(a)g (command)g(lik)m(e:)277 3755 y Fk(ip)52 b(route)g(add)g(nat)g (192.203.80.192/26)k(via)c(193.233.7.64)174 3952 y Fo(This)36 b(command)f(will)g(map)g(a)f(blo)s(c)m(k)i(of)e(63)g(addresses)i (192.203.80.192-255)31 b(to)k(193.233.7.64-)174 4072 y(127.)321 4193 y(When)40 b(an)g(in)m(ternal)g(host)g(\(193.233.7.83)e (in)i(the)g(example)h(ab)s(o)m(v)m(e\))g(sends)g(something)g(to)174 4313 y(the)g(outer)f(w)m(orld)g(and)g(these)h(pac)m(k)m(ets)h(are)e (forw)m(arded)h(b)m(y)g(our)e(router,)j(it)e(should)h(translate)174 4434 y(the)35 b(source)g(address)g(193.233.7.83)d(in)m(to)i (192.203.80.144.)46 b(This)35 b(task)f(is)h(solv)m(ed)g(b)m(y)g (setting)g(a)174 4554 y(sp)s(ecial)f(p)s(olicy)f(rule)g(\(sec.8.1,)h (p.37\):)277 4751 y Fk(ip)52 b(rule)g(add)g(prio)g(320)g(from)h (193.233.7.83)h(nat)e(192.203.80.144)174 4948 y Fo(This)23 b(rule)g(sa)m(ys)g(that)e(the)h(source)h(address)g(193.233.7.83)d (should)j(b)s(e)f(translated)g(in)m(to)g(192.203.80.144)174 5068 y(b)s(efore)40 b(forw)m(arding.)66 b(It)40 b(is)h(imp)s(ortan)m(t) f(that)f(the)i(address)g(after)f(the)g Fk(nat)h Fo(k)m(eyw)m(ord)h(is)e (some)174 5188 y(NA)-8 b(T)45 b(address,)j(declared)e(b)m(y)f Fk(ip)52 b(route)g(add)g(nat)p Fo(.)79 b(If)44 b(it)g(is)h(just)f(a)g (random)g(address)i(the)174 5309 y(router)33 b(will)g(not)g(map)f(to)h (it.)411 5432 y Fi(NB.)75 b(The)37 b(exception)h(is)f(when)h(the)g (address)e(is)h(a)h(lo)r(cal)f(address)f(of)h(this)h(router)f(\(or)f (0.0.0.0\))h(and)411 5532 y(masquerading)30 b(is)j(con\014gured)e(in)i (the)g(lin)n(ux-2.2)e(k)n(ernel.)51 b(In)32 b(this)h(case)f(the)h (router)e(will)i(masquerade)411 5631 y(the)25 b(pac)n(k)n(ets)f(as)h (this)g(address.)35 b(If)26 b(0.0.0.0)d(is)j(selected,)f(the)h(result)f (is)g(equiv)-5 b(alen)n(t)25 b(to)g(one)g(obtained)g(with)p eop end %%Page: 52 52 TeXDict begin 52 51 bop 174 324 a Fo(52)2486 b Fg(IP)33 b(Command)h(Reference)411 631 y Fi(\014rew)n(alling)f(rules.)56 b(Otherwise,)35 b(y)n(ou)f(ha)n(v)n(e)f(the)i(w)n(a)n(y)e(to)h(order)f (Lin)n(ux)h(to)h(masquerade)d(to)j(this)f(\014xed)411 731 y(address.)43 b(NA)-7 b(T)31 b(mec)n(hanism)e(used)h(in)h(lin)n (ux-2.4)d(is)i(more)g(\015exible)g(than)g(masquerading,)f(so)h(that)g (this)411 830 y(feature)d(has)g(lost)g(meaning)g(and)h(disabled.)321 974 y Fo(If)38 b(the)h(net)m(w)m(ork)h(has)f(non-trivial)f(in)m(ternal) h(structure,)j(it)c(is)h(useful)g(and)g(ev)m(en)h(necessary)174 1095 y(to)33 b(add)g(rules)h(disabling)g(translation)f(when)i(a)d(pac)m (k)m(et)j(do)s(es)f(not)e(lea)m(v)m(e)j(this)f(net)m(w)m(ork.)46 b(Let)34 b(us)174 1215 y(return)f(to)g(the)g(example)h(from)e(sec.8.2)h (\(p.39\).)174 1398 y Fk(300:)53 b(from)f(193.233.7.83)i(to)e (193.233.7.0/24)j(lookup)e(main)174 1518 y(310:)g(from)f(193.233.7.83)i (to)e(192.203.80.0/24)k(lookup)c(main)174 1638 y(320:)h(from)f (193.233.7.83)i(lookup)f(inr.ruhep)h(map-to)f(192.203.80.144)174 1821 y Fo(This)34 b(blo)s(c)m(k)f(of)f(rules)i(causes)g(normal)e(forw)m (arding)h(when)h(pac)m(k)m(ets)g(from)e(193.233.7.83)f(do)h(not)174 1941 y(lea)m(v)m(e)42 b(net)m(w)m(orks)h(193.233.7/24)38 b(and)i(192.203.80/24.)64 b(Also,)43 b(if)d(the)h Fk(inr.ruhep)h Fo(table)f(do)s(es)174 2062 y(not)31 b(con)m(tain)f(a)g(route)h(to)f (the)h(destination)g(\(whic)m(h)h(means)f(that)f(the)h(routing)f (domain)h(o)m(wning)174 2182 y(addresses)50 b(from)d(192.203.80/24)d (is)k(dead\),)j(no)d(translation)f(will)h(o)s(ccur.)87 b(Otherwise,)53 b(the)174 2302 y(pac)m(k)m(ets)35 b(are)e(translated.) 174 2559 y Fj(Ho)m(w)46 b(to)g(only)h(translate)h(selected)e(p)s(orts:) 98 b Fo(If)41 b(y)m(ou)g(only)g(w)m(an)m(t)g(to)f(translate)h(selected) 174 2679 y(p)s(orts)30 b(\(f.e.)f(h)m(ttp\))h(and)f(lea)m(v)m(e)i(the)f (rest)g(in)m(tact,)g(y)m(ou)g(ma)m(y)g(use)g Fk(ipchains)i Fo(to)d Fk(fwmark)h Fo(a)f(class)i(of)174 2799 y(pac)m(k)m(ets.)49 b(Supp)s(ose)35 b(y)m(ou)f(did)g(and)g(all)f(the)h(pac)m(k)m(ets)i (from)d(193.233.7.83)f(destined)k(for)d(p)s(ort)g(80)174 2920 y(are)i(mark)m(ed)h(with)g(mark)m(er)f(0x1234)g(in)g(input)g(fw)m (c)m(hain.)52 b(In)35 b(this)g(case)h(y)m(ou)f(ma)m(y)h(replace)g(rule) 174 3040 y(#320)c(with:)174 3223 y Fk(320:)53 b(from)f(193.233.7.83)i (fwmark)f(1234)g(lookup)g(main)f(map-to)h(192.203.80.144)174 3405 y Fo(and)33 b(translation)g(will)g(only)g(b)s(e)g(enabled)h(for)e (outgoing)g(h)m(ttp)h(requests.)174 3734 y Fn(D)161 b(Example:)72 b(minimal)55 b(host)d(setup)174 3953 y Fo(The)39 b(follo)m(wing)g (script)g(giv)m(es)h(an)e(example)h(of)f(a)g(fault)g(safe)g(setup)i(of) d(IP)i(\(and)f(IPv6,)j(if)d(it)g(is)174 4074 y(compiled)28 b(in)m(to)f(the)g(k)m(ernel\))h(in)e(the)h(common)g(case)g(of)f(a)h(no) s(de)f(attac)m(hed)h(to)f(a)h(single)g(broadcast)174 4194 y(net)m(w)m(ork.)44 b(A)30 b(more)f(adv)-5 b(anced)30 b(script,)h(whic)m(h)g(ma)m(y)f(b)s(e)f(used)h(b)s(oth)f(on)g(m)m (ultihomed)i(hosts)f(and)174 4315 y(on)j(routers,)g(is)g(describ)s(ed)i (in)d(the)h(follo)m(wing)g(section.)321 4435 y(The)24 b(utilities)h(used)g(in)f(the)g(script)h(ma)m(y)g(b)s(e)f(found)g(in)g (the)g(directory)g(ftp://ftp.inr.ac.ru/ip-)174 4555 y(routing/:)294 4738 y(1.)48 b Fk(ip)33 b Fo(|)f(pac)m(k)-5 b(age)33 b Fk(iproute2)p Fo(.)294 4934 y(2.)48 b Fk(arping)34 b Fo(|)e(pac)m(k)-5 b(age)34 b Fk(iputils)p Fo(.)294 5131 y(3.)48 b Fk(rdisc)34 b Fo(|)e(pac)m(k)-5 b(age)33 b Fk(iputils)p Fo(.)411 5316 y Fi(NB.)65 b(It)33 b(also)f(refers)g(to)g (a)h(DHCP)g(clien)n(t,)h Fd(dhcpcd)p Fi(.)50 b(I)32 b(should)h(refrain) f(from)g(recommending)g(a)g(go)r(o)r(d)411 5416 y(DHCP)f(clien)n(t)g (to)f(use.)47 b(All)31 b(that)g(I)g(can)g(sa)n(y)e(is)i(that)g(ISC)g Fd(dhcp-2.0b1pl6)26 b Fi(patc)n(hed)k(with)h(the)h(patc)n(h)411 5516 y(that)g(can)f(b)r(e)i(found)f(in)g(the)h Fd(dhcp.bootp.rarp)26 b Fi(sub)r(directory)31 b(of)h(the)g(same)f(ftp)i(site)f Fa(do)l(es)40 b Fi(w)n(ork,)32 b(at)411 5615 y(least)27 b(on)g(Ethernet)g(and)h(T)-7 b(ok)n(en)27 b(Ring.)p eop end %%Page: 53 53 TeXDict begin 53 52 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(53)174 631 y Fk(#!)52 b(/bin/bash)174 855 y Fo(#)33 b Fj(Usage:)51 b Fk(ifone)i(ADDRESS[/PREFIX-LENGTH])k([DEVICE])174 975 y Fo(#)33 b Fj(P)m(arameters:)174 1096 y Fo(#)g($1)f(|)g(Static)h (IP)g(address,)h(optionally)f(follo)m(w)m(ed)h(b)m(y)f(pre\014x)h (length.)174 1216 y(#)f($2)f(|)g(Device)i(name.)44 b(If)33 b(it)f(is)h(missing,)h Fk(eth0)g Fo(is)f(asssumed.)174 1336 y(#)g(F.e.)44 b Fk(ifone)52 b(193.233.7.90)174 1560 y(dev=$2)174 1681 y(:)g(${dev:=eth0})174 1801 y(ipaddr=)174 2025 y Fo(#)33 b(P)m(arse)h(IP)f(address,)h(splitting)f(pre\014x)h (length.)174 2225 y Fk(if)52 b([)g("$1")g(!=)g("")g(];)f(then)277 2345 y(ipaddr=${1\045/*})277 2466 y(if)h([)f("$1")i(!=)e("$ipaddr")j (];)e(then)379 2586 y(pfxlen=${1#*/})277 2706 y(fi)277 2827 y(:)f(${pfxlen:=24})174 2947 y(fi)174 3068 y (pfx="${ipaddr}/${pfxlen})q(")174 3291 y Fo(#)33 b Fj(Step)38 b(0)32 b Fo(|)g(enable)i(lo)s(opbac)m(k.)174 3412 y(#)174 3532 y(#)f(This)h(step)f(is)g(necessary)i(on)e(an)m(y)g(net)m(w)m(ork)m (ed)i(b)s(o)m(x)e(b)s(efore)g(attempt)174 3653 y(#)g(to)f(con\014gure)i (an)m(y)f(other)g(device.)174 3876 y Fk(ip)52 b(link)g(set)h(up)e(dev)h (lo)174 3997 y(ip)g(addr)g(add)h(127.0.0.1/8)h(dev)e(lo)g(brd)g(+)f (scope)i(host)174 4221 y Fo(#)33 b(IPv6)g(auto)s(con\014gure)g (themself)h(on)f(lo)s(opbac)m(k.)174 4341 y(#)174 4461 y(#)g(If)g(user)g(ga)m(v)m(e)h(lo)s(opbac)m(k)f(as)g(device,)h(w)m(e)g (add)e(the)h(address)h(as)f(alias)g(and)f(exit.)174 4685 y Fk(if)52 b([)g("$dev")h(=)e("lo")h(];)g(then)277 4806 y(if)g([)f("$ipaddr")j(!=)e("")f(-a)104 b("$ipaddr")53 b(!=)f("127.0.0.1")i(];)e(then)379 4926 y(ip)g(address)h(add)f($ipaddr) i(dev)e($dev)379 5046 y(exit)h($?)277 5167 y(fi)277 5287 y(exit)f(0)174 5407 y(fi)174 5631 y Fo(#)33 b Fj(Step)38 b(1)32 b Fo(|)g(enable)i(device)g Fk($dev)p eop end %%Page: 54 54 TeXDict begin 54 53 bop 174 324 a Fo(54)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fk(if)52 b(!)g(ip)f(link)i(set)f(up)g (dev)g($dev)g(;)g(then)277 751 y(echo)g("Cannot)h(enable)g(interface)h ($dev.)e(Aborting.")i(1>&2)277 872 y(exit)e(1)174 992 y(fi)174 1242 y Fo(#)33 b(The)h(in)m(terface)f(is)g Fk(UP)p Fo(.)h(IPv6)f(started)g(stateless)h(auto)s(con\014guration)f(itself,) 174 1362 y(#)g(and)g(its)g(con\014guration)g(\014nishes)h(here.)44 b(Ho)m(w)m(ev)m(er,)174 1483 y(#)33 b(IP)g(still)g(needs)i(some)e (static)g(precon\014gured)h(address.)174 1733 y Fk(if)52 b([)g("$ipaddr")h(=)f("")g(];)f(then)277 1853 y(echo)h("No)g(address)h (for)f($dev)h(is)f(configured,)i(trying)f(DHCP...")g(1>&2)277 1974 y(dhcpcd)277 2094 y(exit)f($?)174 2214 y(fi)174 2464 y Fo(#)33 b Fj(Step)38 b(2)32 b Fo(|)g(IP)h(Duplicate)g(Address)i (Detection)e([9].)174 2585 y(#)g(Send)h(t)m(w)m(o)f(prob)s(es)g(and)g (w)m(ait)g(for)f(result)h(for)f(3)h(seconds.)174 2705 y(#)g(If)g(the)g(in)m(terface)g(op)s(ens)h(slo)m(w)m(er)g(f.e.)f(due)g (to)f(long)g(media)i(detection,)174 2825 y(#)f(y)m(ou)g(w)m(an)m(t)h (to)e(increase)i(the)f(timeout.)174 3072 y Fk(if)52 b(!)g(arping)h(-q)e (-c)h(2)g(-w)f(3)h(-D)g(-I)g($dev)g($ipaddr)h(;)f(then)277 3193 y(echo)g("Address)i($ipaddr)f(is)f(busy,)g(trying)h(DHCP...")g (1>&2)277 3313 y(dhcpcd)277 3433 y(exit)f($?)174 3554 y(fi)174 3804 y Fo(#)33 b(OK,)f(the)h(address)h(is)f(unique,)i(w)m(e)e (ma)m(y)h(add)e(it)h(on)f(the)h(in)m(terface.)174 3924 y(#)174 4045 y(#)g Fj(Step)38 b(3)32 b Fo(|)g(Con\014gure)i(the)f (address)h(on)e(the)h(in)m(terface.)174 4295 y Fk(if)52 b(!)g(ip)f(address)j(add)e($pfx)g(brd)g(+)g(dev)g($dev;)g(then)277 4415 y(echo)g("Failed)h(to)f(add)g($pfx)h(on)e($dev,)i(trying)g (DHCP...")g(1>&2)277 4535 y(dhcpcd)277 4656 y(exit)f($?)174 4776 y(fi)174 5026 y Fo(#)33 b Fj(Step)38 b(4)32 b Fo(|)g(Announce)i (our)f(presence)h(on)f(the)g(link.)174 5248 y Fk(arping)53 b(-A)f(-c)g(1)f(-I)h($dev)g($ipaddr)174 5368 y(noarp=$?)174 5489 y(\()g(sleep)g(2;)277 5609 y(arping)h(-U)f(-c)f(1)h(-I)g($dev)g ($ipaddr)h(\))f(>&)f(/dev/null)j(</dev/null)g(&)p eop end %%Page: 55 55 TeXDict begin 55 54 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(55)174 631 y(#)33 b Fj(Step)38 b(5)32 b Fo(\(optional\))h(|)f(Add) h(some)g(con)m(trol)g(routes.)174 751 y(#)174 872 y(#)g(1.)43 b(Prohibit)33 b(link)h(lo)s(cal)e(m)m(ulticast)i(addresses.)174 992 y(#)f(2.)43 b(Prohibit)33 b(link)h(lo)s(cal)e(\(alias,)h(limited\)) h(broadcast.)174 1112 y(#)f(3.)43 b(Add)33 b(default)g(m)m(ulticast)h (route.)174 1373 y Fk(ip)52 b(route)h(add)f(unreachable)i(224.0.0.0/24) 174 1493 y(ip)e(route)h(add)f(unreachable)i(255.255.255.255)174 1614 y(if)e([)g(`ip)g(link)g(ls)g($dev)g(|)g(grep)g(-c)g(MULTICAST`)i (-ge)e(1)f(];)h(then)277 1734 y(ip)g(route)g(add)g(224.0.0.0/4)j(dev)d ($dev)g(scope)h(global)174 1854 y(fi)174 2115 y Fo(#)33 b Fj(Step)38 b(6)32 b Fo(|)g(Add)h(fallbac)m(k)h(default)f(route)f (with)i(h)m(uge)f(metric.)174 2235 y(#)g(If)g(a)f(pro)m(xy)i(ARP)e (serv)m(er)j(is)e(presen)m(t)h(on)f(the)g(in)m(terface,)g(w)m(e)h(will) f(b)s(e)174 2356 y(#)g(able)g(to)f(talk)h(to)f(all)h(the)g(In)m(ternet) h(without)f(further)g(con\014guration.)174 2476 y(#)g(It)g(is)g(not)f (so)h(c)m(heap)h(though)e(and)h(w)m(e)h(still)f(hop)s(e)g(that)f(this)h (route)174 2596 y(#)g(will)g(b)s(e)g(o)m(v)m(erridden)i(b)m(y)e(more)g (correct)g(one)g(b)m(y)h(rdisc.)174 2717 y(#)f(Do)f(not)g(mak)m(e)i (this)f(step)h(if)e(the)h(device)i(is)e(not)f(ARP)m(able,)174 2837 y(#)h(b)s(ecause)h(dead)f(nexthop)h(detection)f(do)s(es)h(not)e(w) m(ork)h(on)g(them.)174 3098 y Fk(if)52 b([)g("$noarp")h(=)f("0")g(];)f (then)277 3218 y(ip)h(ro)f(add)i(default)g(dev)f($dev)g(metric)h(30000) g(scope)f(global)174 3338 y(fi)174 3599 y Fo(#)33 b Fj(Step)38 b(7)32 b Fo(|)g(Restart)h(router)g(disco)m(v)m(ery)i(and)e(exit.)174 3859 y Fk(killall)53 b(-HUP)g(rdisc)f(||)g(rdisc)h(-fs)174 3979 y(exit)g(0)174 4341 y Fn(E)162 b(Example:)118 b Ff(ifcfg)76 b Fn(|)h(in)l(terface)f(address)f(manage-)442 4523 y(men)l(t)174 4752 y Fo(This)30 b(is)g(a)f(simplistic)i(script)f (replacing)f(one)h(option)f(of)f Fk(ifconfig)p Fo(,)k(namely)-8 b(,)31 b(IP)e(address)i(man-)174 4872 y(agemen)m(t.)81 b(It)45 b(not)g(only)g(adds)g(addresses,)50 b(but)45 b(also)g(carries)h(out)e(Duplicate)i(Address)g(De-)174 4992 y(tection)c([9],)h(sends)f(unsolicited)h(ARP)e(to)f(up)s(date)h (the)g(cac)m(hes)i(of)d(other)h(hosts)h(sharing)f(the)174 5113 y(in)m(terface,)g(adds)d(some)h(con)m(trol)f(routes)h(and)f (restarts)g(Router)g(Disco)m(v)m(ery)i(when)f(it)f(is)g(neces-)174 5233 y(sary)-8 b(.)321 5358 y(I)31 b(strongly)g(recommend)h(using)g(it) e Fl(inste)-5 b(ad)41 b Fo(of)30 b Fk(ifconfig)j Fo(b)s(oth)d(on)h (hosts)g(and)g(on)g(routers.)174 5623 y Fk(#!)52 b(/bin/bash)p eop end %%Page: 56 56 TeXDict begin 56 55 bop 174 324 a Fo(56)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fo(#)f Fj(Usage:)51 b Fk(ifcfg)i(DEVICE[:ALIAS])i([add|del])e(ADDRESS[/LENGTH])j([PEER])174 751 y Fo(#)33 b Fj(P)m(arameters:)174 872 y Fo(#)g(|Device)g(name.)44 b(It)33 b(ma)m(y)g(ha)m(v)m(e)h(alias)f(su\016x,)h(separated)g(b)m(y)f (colon.)174 992 y(#)g(|Command:)44 b(add,)33 b(delete)h(or)e(stop.)174 1112 y(#)h(|IP)g(address,)h(optionally)f(follo)m(w)m(ed)g(b)m(y)h (pre\014x)g(length.)174 1233 y(#)f(|Optional)f(p)s(eer)h(address)h(for) e(p)s(oin)m(top)s(oin)m(t)h(in)m(terfaces.)174 1353 y(#)g(F.e.)44 b Fk(ifcfg)52 b(eth0)h(193.233.7.90/24)174 1474 y Fo(#)33 b(This)h(function)f(determines,)i(whether)f(it)e(is)h(router)g(or)f (host.)174 1594 y(#)h(It)g(returns)g(0,)g(if)f(the)h(host)g(is)g (apparen)m(tly)h(not)e(router.)174 1785 y Fk(CheckForwarding)56 b(\(\))51 b({)277 1906 y(local)h(sbase)h(fwd)277 2026 y(sbase=/proc/sys/net/ipv4/)q(conf)277 2147 y(fwd=0)277 2267 y(if)f([)f(-d)h($sbase)h(];)f(then)379 2387 y(for)g(dir)h(in)e ($sbase/*/forwarding;)57 b(do)482 2508 y(fwd=$[$fwd)d(+)d(`cat)i ($dir`])379 2628 y(done)277 2748 y(else)379 2869 y(fwd=2)277 2989 y(fi)277 3110 y(return)g($fwd)174 3230 y(})174 3421 y Fo(#)33 b(This)h(function)f(restarts)g(Router)g(Disco)m(v)m(ery)-8 b(.)174 3613 y Fk(RestartRDISC)55 b(\(\))d({)277 3733 y(killall)h(-HUP)f(rdisc)h(||)f(rdisc)g(-fs)174 3853 y(})174 4045 y Fo(#)33 b(Calculate)h(ABC)f("natural")f(mask)h(length) 174 4165 y(#)g(Arg:)43 b($1)33 b(=)f(dotquad)h(address)174 4357 y Fk(ABCMaskLen)54 b(\(\))e({)277 4477 y(local)g(class;)277 4597 y(class=${1\045\045.*})277 4718 y(if)g([)f($class)i(-eq)f(0)g(-o)f ($class)i(-ge)f(224)g(];)g(then)h(return)f(0)277 4838 y(elif)g([)g($class)h(-ge)f(192)g(];)g(then)g(return)h(24)277 4958 y(elif)f([)g($class)h(-ge)f(128)g(];)g(then)g(return)h(16)277 5079 y(else)103 b(return)53 b(8)f(;)f(fi)174 5199 y(})174 5391 y Fo(#)33 b Fj(MAIN\(\))174 5511 y Fo(#)174 5631 y(#)g(Strip)g(alias)g(su\016x)h(separated)f(b)m(y)h(colon.)p eop end %%Page: 57 57 TeXDict begin 57 56 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(57)174 631 y Fk(label="label)55 b($1")174 751 y(ldev=$1)174 872 y(dev=${1\045:*})174 992 y(if)d([)g("$dev")h(=)e("")h(-o)g("$1")g (=)g("help")g(];)g(then)277 1112 y(echo)g("Usage:)h(ifcfg)g(DEV)f ([[add|del)i([ADDR[/LEN]])g([PEER])f(|)f(stop]")g(1>&2)277 1233 y(echo)g(")359 b(add)52 b(-)g(add)g(new)g(address")h(1>&2)277 1353 y(echo)f(")359 b(del)52 b(-)g(delete)h(address")g(1>&2)277 1474 y(echo)f(")359 b(stop)53 b(-)e(completely)j(disable)f(IP")f(1>&2) 277 1594 y(exit)g(1)174 1714 y(fi)174 1835 y(shift)174 2076 y(CheckForwarding)174 2196 y(fwd=$?)174 2423 y Fo(#)33 b(P)m(arse)h(command.)44 b(If)33 b(it)f(is)h(\\stop",)g(\015ush)g(and)g (exit.)174 2650 y Fk(deleting=0)174 2770 y(case)53 b("$1")f(in)174 2890 y(add\))h(shift)f(;;)174 3011 y(stop\))277 3131 y(if)g([)f("$ldev")i(!=)f("$dev")h(];)f(then)379 3252 y(echo)h("Cannot)g(stop)f(alias)h($ldev")g(1>&2)379 3372 y(exit)g(1;)277 3492 y(fi)277 3613 y(ip)f(-4)f(addr)i(flush)f(dev)g ($dev)h($label)g(||)e(exit)i(1)277 3733 y(if)f([)f($fwd)i(-eq)f(0)f(];) h(then)g(RestartRDISC;)j(fi)277 3853 y(exit)d(0)g(;;)174 3974 y(del*\))277 4094 y(deleting=1;)i(shift)f(;;)174 4215 y(*\))174 4335 y(esac)174 4562 y Fo(#)33 b(P)m(arse)h(pre\014x,)g (split)f(pre\014x)h(length,)f(separated)g(b)m(y)h(slash.)174 4789 y Fk(ipaddr=)174 4909 y(pfxlen=)174 5029 y(if)52 b([)g("$1")g(!=)g("")g(];)f(then)277 5150 y(ipaddr=${1\045/*})277 5270 y(if)h([)f("$1")i(!=)e("$ipaddr")j(];)e(then)379 5391 y(pfxlen=${1#*/})277 5511 y(fi)277 5631 y(if)g([)f("$ipaddr")j(=)d ("")h(];)g(then)p eop end %%Page: 58 58 TeXDict begin 58 57 bop 174 324 a Fo(58)2486 b Fg(IP)33 b(Command)h(Reference)379 631 y Fk(echo)53 b("$1)f(is)g(bad)g(IP)f (address.")j(1>&2)379 751 y(exit)f(1)277 872 y(fi)174 992 y(fi)174 1112 y(shift)174 1324 y Fo(#)33 b(If)g(p)s(eer)g(address)h (is)f(presen)m(t,)h(pre\014x)g(length)f(is)g(32.)174 1444 y(#)g(Otherwise,)h(if)f(pre\014x)h(length)f(w)m(as)g(not)g(giv)m (en,)g(guess)h(it.)174 1656 y Fk(peer=$1)174 1776 y(if)52 b([)g("$peer")h(!=)f("")f(];)h(then)277 1896 y(if)g([)f("$pfxlen")j(!=) e("")f(-a)h("$pfxlen")i(!=)e("32")g(];)g(then)379 2017 y(echo)h("Peer)f(address)h(with)g(non-trivial)h(netmask.")g(1>&2)379 2137 y(exit)f(1)277 2258 y(fi)277 2378 y(pfx="$ipaddr)h(peer)f($peer") 174 2498 y(else)277 2619 y(if)f([)f("$pfxlen")j(=)d("")h(];)g(then)379 2739 y(ABCMaskLen)i($ipaddr)379 2860 y(pfxlen=$?)277 2980 y(fi)277 3100 y(pfx="$ipaddr/$pfxlen")174 3221 y(fi)174 3341 y(if)e([)g("$ldev")h(=)e("$dev")i(-a)f("$ipaddr")i(!=)d("")h(];)g (then)277 3461 y(label=)174 3582 y(fi)174 3793 y Fo(#)33 b(If)g(deletion)g(w)m(as)h(requested,)h(delete)e(the)g(address)h(and)f (restart)g(RDISC)174 4005 y Fk(if)52 b([)g($deleting)h(-ne)f(0)g(];)g (then)277 4125 y(ip)g(addr)g(del)g($pfx)g(dev)g($dev)h($label)g(||)e (exit)i(1)277 4245 y(if)f([)f($fwd)i(-eq)f(0)f(];)h(then)g (RestartRDISC;)j(fi)277 4366 y(exit)d(0)174 4486 y(fi)174 4698 y Fo(#)33 b(Start)f(in)m(terface)i(initialization.)174 4818 y(#)174 4938 y(#)f Fj(Step)38 b(0)32 b Fo(|)g(enable)i(device)g Fk($dev)174 5150 y(if)52 b(!)g(ip)f(link)i(set)f(up)g(dev)g($dev)g(;)g (then)277 5270 y(echo)g("Error:)h(cannot)g(enable)g(interface)h($dev.") f(1>&2)277 5391 y(exit)f(1)174 5511 y(fi)174 5631 y(if)g([)g("$ipaddr") h(=)f("")g(];)f(then)i(exit)f(0;)g(fi)p eop end %%Page: 59 59 TeXDict begin 59 58 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605 b Fo(59)174 631 y(#)33 b Fj(Step)38 b(1)32 b Fo(|)g(IP)h(Duplicate)g (Address)i(Detection)e([9].)174 751 y(#)g(Send)h(t)m(w)m(o)f(prob)s(es) g(and)g(w)m(ait)g(for)f(result)h(for)f(3)h(seconds.)174 872 y(#)g(If)g(the)g(in)m(terface)g(op)s(ens)h(slo)m(w)m(er)g(f.e.)f (due)g(to)f(long)g(media)i(detection,)174 992 y(#)f(y)m(ou)g(w)m(an)m (t)h(to)e(increase)i(the)f(timeout.)174 1226 y Fk(if)52 b(!)g(arping)h(-q)e(-c)h(2)g(-w)f(3)h(-D)g(-I)g($dev)g($ipaddr)h(;)f (then)277 1346 y(echo)g("Error:)h(some)g(host)f(already)h(uses)f (address)i($ipaddr)f(on)f($dev.")g(1>&2)277 1467 y(exit)g(1)174 1587 y(fi)174 1822 y Fo(#)33 b(OK,)f(the)h(address)h(is)f(unique.)45 b(W)-8 b(e)33 b(ma)m(y)h(add)e(it)h(to)f(the)h(in)m(terface.)174 1942 y(#)174 2062 y(#)g Fj(Step)38 b(2)32 b Fo(|)g(Con\014gure)i(the)f (address)h(on)e(the)h(in)m(terface.)174 2297 y Fk(if)52 b(!)g(ip)f(address)j(add)e($pfx)g(brd)g(+)g(dev)g($dev)g($label;)h (then)277 2417 y(echo)f("Error:)h(failed)g(to)f(add)g($pfx)g(on)g ($dev.")h(1>&2)277 2538 y(exit)f(1)174 2658 y(fi)174 2893 y Fo(#)33 b Fj(Step)38 b(3)32 b Fo(|)g(Announce)i(our)f(presence)h (on)f(the)g(link)174 3102 y Fk(arping)53 b(-q)f(-A)g(-c)g(1)f(-I)h ($dev)g($ipaddr)174 3222 y(noarp=$?)174 3342 y(\()g(sleep)g(2)g(;)277 3463 y(arping)h(-q)f(-U)f(-c)h(1)g(-I)f($dev)i($ipaddr)g(\))e(>&)h (/dev/null)i(</dev/null)g(&)174 3698 y Fo(#)33 b Fj(Step)38 b(4)32 b Fo(\(optional\))h(|)f(Add)h(some)g(con)m(trol)g(routes.)174 3819 y(#)174 3939 y(#)g(1.)43 b(Prohibit)33 b(link)h(lo)s(cal)e(m)m (ulticast)i(addresses.)174 4059 y(#)f(2.)43 b(Prohibit)33 b(link)h(lo)s(cal)e(\(alias,)h(limited\))h(broadcast.)174 4180 y(#)f(3.)43 b(Add)33 b(default)g(m)m(ulticast)h(route.)174 4414 y Fk(ip)52 b(route)h(add)f(unreachable)i(224.0.0.0/24)g(>&)e (/dev/null)174 4535 y(ip)g(route)h(add)f(unreachable)i(255.255.255.255) h(>&)d(/dev/null)174 4655 y(if)g([)g(`ip)g(link)g(ls)g($dev)g(|)g(grep) g(-c)g(MULTICAST`)i(-ge)e(1)f(];)h(then)277 4775 y(ip)g(route)g(add)g (224.0.0.0/4)j(dev)d($dev)g(scope)h(global)f(>&)g(/dev/null)174 4896 y(fi)174 5130 y Fo(#)33 b Fj(Step)38 b(5)32 b Fo(|)g(Add)h (fallbac)m(k)h(default)f(route)f(with)i(h)m(uge)f(metric.)174 5251 y(#)g(If)g(a)f(pro)m(xy)i(ARP)e(serv)m(er)j(is)e(presen)m(t)h(on)f (the)g(in)m(terface,)g(w)m(e)h(will)f(b)s(e)174 5371 y(#)g(able)g(to)f(talk)h(to)f(all)h(the)g(In)m(ternet)h(without)f (further)g(con\014guration.)174 5492 y(#)g(Do)f(not)g(mak)m(e)i(this)f (step)h(on)e(router)h(or)f(if)h(the)g(device)h(is)f(not)f(ARP)m(able.) 174 5612 y(#)h(b)s(ecause)h(dead)f(nexthop)h(detection)f(do)s(es)h(not) e(w)m(ork)h(on)g(them.)p eop end %%Page: 60 60 TeXDict begin 60 59 bop 174 324 a Fo(60)2486 b Fg(IP)33 b(Command)h(Reference)174 631 y Fk(if)52 b([)g($fwd)g(-eq)g(0)g(];)f (then)277 751 y(if)h([)f($noarp)i(-eq)f(0)g(];)f(then)379 872 y(ip)h(ro)g(append)h(default)g(dev)f($dev)g(metric)h(30000)g(scope) f(global)277 992 y(elif)g([)g("$peer")h(!=)f("")f(];)h(then)379 1112 y(if)g(ping)h(-q)e(-c)h(2)g(-w)f(4)h($peer)h(;)e(then)482 1233 y(ip)h(ro)g(append)g(default)i(via)e($peer)g(dev)g($dev)h(metric)f (30001)379 1353 y(fi)277 1474 y(fi)277 1594 y(RestartRDISC)174 1714 y(fi)174 1955 y(exit)h(0)174 2183 y Fo(#)33 b(End)g(of)g Fj(MAIN\(\))p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF