%!PS-Adobe-2.0 %%BeginResource: font lsunr00 %!PS-AdobeFont-1.1: LucidaSansUnicode00 0.9 %%CreationDate: 1994 Jun 04 09:53:35 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((C) 1991, 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((C) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 00) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode00 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 100 /0064 put dup 101 /0065 put dup 102 /0066 put dup 103 /0067 put dup 104 /0068 put dup 105 /0069 put dup 106 /006a put dup 107 /006b put dup 108 /006c put dup 109 /006d put dup 110 /006e put dup 111 /006f put dup 112 /0070 put dup 113 /0071 put dup 114 /0072 put dup 115 /0073 put dup 116 /0074 put dup 117 /0075 put dup 118 /0076 put dup 119 /0077 put dup 120 /0078 put dup 121 /0079 put dup 122 /007a put dup 123 /007b put dup 124 /007c put dup 125 /007d put dup 126 /007e put dup 163 /00a3 put dup 167 /00a7 put dup 169 /00a9 put dup 173 /00ad put dup 174 /00ae put dup 176 /00b0 put dup 177 /00b1 put dup 180 /00b4 put dup 181 /00b5 put dup 182 /00b6 put dup 185 /00b9 put dup 186 /00ba put dup 188 /00bc put dup 189 /00bd put dup 191 /00bf put dup 198 /00c6 put dup 215 /00d7 put dup 223 /00df put dup 231 /00e7 put dup 233 /00e9 put dup 237 /00ed put dup 239 /00ef put dup 241 /00f1 put dup 247 /00f7 put dup 252 /00fc put dup 32 /0020 put dup 33 /0021 put dup 34 /0022 put dup 35 /0023 put dup 36 /0024 put dup 37 /0025 put dup 38 /0026 put dup 40 /0028 put dup 41 /0029 put dup 42 /002a put dup 43 /002b put dup 44 /002c put dup 45 /002d put dup 46 /002e put dup 47 /002f put dup 48 /0030 put dup 49 /0031 put dup 50 /0032 put dup 51 /0033 put dup 52 /0034 put dup 53 /0035 put dup 54 /0036 put dup 55 /0037 put dup 56 /0038 put dup 57 /0039 put dup 58 /003a put dup 59 /003b put dup 60 /003c put dup 61 /003d put dup 62 /003e put dup 63 /003f put dup 65 /0041 put dup 66 /0042 put dup 67 /0043 put dup 68 /0044 put dup 69 /0045 put dup 70 /0046 put dup 71 /0047 put dup 72 /0048 put dup 73 /0049 put dup 74 /004a put dup 75 /004b put dup 76 /004c put dup 77 /004d put dup 78 /004e put dup 79 /004f put dup 80 /0050 put dup 81 /0051 put dup 82 /0052 put dup 83 /0053 put dup 84 /0054 put dup 85 /0055 put dup 86 /0056 put dup 87 /0057 put dup 88 /0058 put dup 89 /0059 put dup 90 /005a put dup 91 /005b put dup 92 /005c put dup 93 /005d put dup 95 /005f put dup 96 /0060 put dup 97 /0061 put dup 98 /0062 put dup 99 /0063 put readonly def /FontBBox{-90 -211 977 1005}readonly def %/UniqueID 5054500 def currentdict end currentfile eexec AF9D569DD6A39B9A08931526FD86DA1F3D52F6A6E9A3C2A341616BA8AD4A6BBA6A84F4F691C60D 64B463C6D1B3A432634AAC416FAE1067039D940A82A692DB189D5719DA649D309E36853E1F767A 0DF1C424DA3E9D8E6B45B659E31B0A03BB7747FB2945268D0805A130347C7455FA73121BA001A8 5BFFF1847B8FBAE1B61BA76AB61D750F7BCDB1EE8E4B4E95657E783B2230A68A5A62E9E39EA352 7B3E832C6BF769697C2B18F29596B8A56AC9532224A452AE7A77A33DC5D437BAD5B4C1B9DD7680 FE4456B59A798F584F7913B3A790F3E5F9559505B80A36CDE0A4D46A595E942D798E6F6311B3E3 613059010E0C594BA804C9FA8EED254427D021628C6A59FA5C10314D3143AA329B9E1E767CADFB B864C70BE2EB0FA96FBDCC2EB1B44783431EE1CDCADC68DF65C29B4AB7C198BAA625A3736F6240 46E72FAE8F379B391393A007E9F796065FC622322C782111E2EE7B73FC09C5852F35A75CA296FB ADBC77E83C2378DAE017DC93437EDA4E1473D256C7AA433FAFF90BFF104C39847FB6076D559B8A 4D05AC2A35837CF7949567F37638F1FF869CA022F28979DC7AA611BCACFFE95AA23CBFB86C9719 BBD5738FB6D86326F1B0A84EFA79C80BDC618F42DFAB8B232211332E1D793A6C4CA71DE2D7DBE1 5806FB210EA36FCE5FA253B9C507225A5581765AA21DB9E1739AA6063F3F7F11D72E65C3F9A83E 71C8DFC9B9E13C0CCA25836D4233D10595ED053201C745C989878BC0457410C29FED3273550E0E C93F30B6E5994D0DE950C82E70299AB82D97B0EC11EE5CFD3A5311B0B9623C7CF73BCCE4D33436 655812E9BC69045B581B2BACE84DEBD480A8652676ABDB2976168954DCD745B42F92F25CC2A4B0 58AF8D1F0BFFC280B7FECF0593655FEDBE41135D72874467035351F424E92C9E4F628501066322 AE5896C2CC8C5AD9EE9C4E2076DF548DEF8A6ADAAEC8F05CBBB8882BE5DEBB3976FDD20539F0ED C5F331CADFFF8B1E1ACC3E0DE2DE0628766105E7EE97E55E66E2585DD7412749CCA828C3CB355F 716E5F447857D298C1383EDD389C2C09F3094A09F90652D5913EEBBFB16547FF31DBB8C0F43480 6C96524DB4F2D96F6A32856DC62FB350D208B4462521EA9578695E7F8A31FDAFC065535AB32B28 4F808767213AD4B89C02E59E3F2BD114BC411E4A9B58F97102E7ACB9310EE2AD2EAEE87E1702E4 3E00854C35156E731478402285AB23B0049A74381C2355F35511C7D966B2EE653CD8A3D7D6505E 80A4BD2C96B451354DD9323C30C9894A60CE614D0B091D3A03A5EDA4BB127F255FF706AD6E6827 9123CEF7396D89B5E5A968B4A4C0F4B0C227D1EE676801922A3CE24F2602569AF11ED43F17E2F4 6669AEBD1F6B9E53C76043E1CD9DACDBB3B6B87F949372C03E9A5C80FABBF2E7767880B7064D05 AE2D717B6A189D0C9F8DBC981EBEFD9A031C7592EFA0C08FD8BCD2FA1210881D95D6ECD9E72096 5ACE2A9462EB9C3504315CFE8C6B5362B833CE52BC726DCB3450CEB73E42E667B9D86D0F985A35 CAFF807F4DFAF156AFDCB999DBA61476BF4CCE49C6D8A8B7D2A3FC07EE8346E30F68FEF7774273 6E55BA23311F85C7FAD9D9AA1EB17E14C45033BEE8D3093AEE9E706133FA94413F30F723568255 498A071D76C10D12536425A7185DB60BDECAF6BFD0BE58F418D0E62FDA7B846BDD490EA7CEAD05 E1BB9A4DF66E13758858B80F6C7216D8D606E92BC93576A1FB3604D9FBD78656FDF64328AD9466 3CFABAB19A0636518FF61E62591661FBFD264B90156E24941177A42A0E5315F6168A93B96E27DF 2E7451F382C2C83241AC2B5F52A2C9453D3E207EBBEB3881FF237E9135E1D9191E1FBE5E606C60 43726A6783CD4414D26F8F95B260FAE60262DE148545079C80C962D5D7BDE2A77A814CDD4ED901 D28D4D5C4324DF7F7AA6B832B6F5E0E129F471A12373F0D97037FD695F921E0CAD8963372E8DC7 F3AA5E004E1F5980BA9825774BB2DD511B6A9D5A0C7E7885E39E3B5497EF466C52B7DD4CF4AD74 6E62FE4B1E082811AA45D6483725D0EE18C9C6BB988C036913682EAC4645EF90AD5FC24BC78778 DDDD48EC8F1E64525AB9B1EFE0CDFABCC6A17BDACC1B3B1929FB2FA1DB85991FFE1B92B7999C99 1BD3AC17B8A44E11DD954BEBFF002A0562EEDBC507DD0FF13ABADBC8E5676F5F951D1B32B725DE FB33219FF4DAE8298887E415434BE4012D1A294F807CF53248AA137591B532B573F41732216B12 685CB4B612B782E010644CB813A31AC4A25038A17FA0872E515BB2C119DEE59829927FBE20902D 18CF2F33E18DC0AC2108789FA1D1F61553184FC185A3BC3BA6985449149A08E4484F33EA950C18 B0148B6DA2EF0E2F1BE218CBEDFD4A4E9A53235840A8E8DD1A757D8F48DE07C687E5F35EF237DB EA582FFC92EAC5A8E4D9C1F048B037FDE46770B073B161333AD5E0DC09187DD0D9FF2CAFEFDCBD 00F3FF4642B63703F6B4CA2A479BE5145E3EA90359F4BE67F1EF0EC07F997A7A63797EAC98E3D0 C64F1EBEC99C7C436EF655ACF76DE5201A5B3F5CF58F0116008DF241D370E616E8FF10BC551606 F041FF641B4C8FA9274BC3FDE69602B2BD58D1428B119607AB28B30393C0BE4E33E5EE1059C9BC 1AC92B4AD1C7D1C71FB44429D8F8042F0A7ADEDE040F13D0C13F9BD92D3BE4E77E446DC8D57FCF C704F6EB8D438EFA72F74835DC24E853B3B1178904F0484AED543B57FC8ABFFF4253AFA2C93C66 C2144FF1777A1E3A40D1D023BCBE24557DAE5D76DAE6FC7063E11A5DD52B0060501E84AE0E66ED 7522828C15045CE72B548B59A3D7DFC3CF6779B4A6D4891B95CD4C6613C9390DD953FA58FE97D8 A545177EC9EDB59770B4B67111A1FEA9E74A61B360D9C19100440F8A69386EC3878C732DA58580 3A177AEFF85BFB5D112C37ADF7604BAB387F08243B2FEC24DAF9F95BB75A678DAA7AB277D933AC 0362E4DD5E6E4194DE873932EC10013B68CD0D1CF5298816E6B195372FAE49A5F9F722C30EDDBB 088E0F1F7D8A5D6386B8E3219125A8ED2A4D534761DEC9DA916FF875E13E309F2F2C925F28ED5E B792A290F05B7732D217A1CF9577C0107889C456924AB91BFB728E4C4A0E70412DA721CA4B1A30 189BE4414AEE3AB1943C0349ED437C91796EB8616D3CCBE148CD21B0DF7ED5720F18496100119C 2995490D7B60C994E93D874AB352A813604AA9A83D9388F758B7F479F9F6EFDBA983FA6DA07E7D 4F80E64E68634D9D811F3A0088BA46040577B89C7E147CF96C4A999CA1899799FA56F401645A97 DFF68155332EE3F23F3865B6DE715F1AB687A696878C9821E029E3D867BDC50322A0C90081E3B4 3BA1E889C277DEDA5ECB0CBE16F8FD562B82F22DA851CA5AC51EF3051382E9706A2F6F14CE6897 4292ECA605ACCBAB5071ED68BB05BDDE20C04E0007A8EF46D69FA79540C53E34C29F3CB68E9329 8472F6D89EF77A28A18B334278836F65E88255F1FD3A3D031A22BBC607E7BDEB1D00AF60D5E024 7E971B8965728CB1CAD6B5853F4F66448031312AFF8E56B01BB8D50F3A1060A18ADB1FA8F84C69 399BE117B98430CF63288BA1950ABE0CEC051B66A7EBCC7A3FC793589A4C52EDBD1A71ABE49916 10496FC6C346C376D3B061B00BE7B4A659D21A2C0FFD3FBEE485EDB7BEE599E5248DC5FCD89632 61BE192134BFF9C9709E76A567A0F7B5773870EEBE07E3630175BFD8C5520B2AAF6DD2D7C3FAEF 2E3F52318A7AD6E05847D76ED22D021BFDAAB041B16F2AE08FF86DE08FD998D61DE2D0EA477E46 6E963EE5EB69F69E30113F0D65683C37CDA865CF92EC5FFA54DBB6798738D38DD7898BC7C26AF6 939EFF47B1A3DEE6B5E38505EE05A0F671EF8917A434D92EBDD8F6820ED3A2F24199D47745D393 9259A5D856E1AA9EBA0292EEFAFF75F709ADCDA0D6453C3550DB28BFA22549BD2A282E8B9F2367 FCF20AACF9E7B725D0ED0498695F3A2DD76389BE8A99B603CFB0FEE3C5642BD02670108226BA9B A90B90B1D660C552307E3D388661A20C5F42C3CFF5D0E0F6DA69792E8FB4C83AB821D0F7D80F23 93BCAACBBE56E8095466F7BF8B0504B72734DEF119DC32DD63F1BCA3A66A5F6DB5BC221F4927C2 B08601F89D71E754481CD1B3B8E5EC8E9A22F5AD8CF45039FB8912A2E4EBC638743D7614BCB41A 49D162291E70BD656EF7F54BCA72BFC633984F1B15B4145F13D08B255B77A357C15B8A5DB04C3A 95827DAD0B0A302577C12F66389E4E40040EB52AD36552A592C47614A9035E7CDC4BDA55645F8F 72F10287EB7682F17034B836B44F111B786B8A6A47023EC1C950A4B0636C28E1753781C9C0B206 5DE58A47D2E7B1AD71D8DBD36E72DE625B5F52B9DB0F9679FC4B61005A112E9AA717504C71CC0F F50CE8E96DFE3AF6613CD4A3B4645ECC5F495E3DFBC1EC17575457EF39A0D4709221F2F1E14FAD ACF7FA5CCF662DD341477170FB291B706D76CE78C3CC90CD36A45BD04704DFB2B251CD9B1B69E6 B9DB3E9739DE8B2CD9DE63E61ABCB8581AD13493468EE995EE668DBE6AF6809F9529595D67DA56 DC7335876F36499EBB7226FDB9876A7D0D43159E77F0AE36B55033A11156C3F757FBBA38177D24 88EFD1BD9D8F69ABDD365989CEFD521F60BC9005D8C40942B43FC6DB8088842BE8A7B567420A80 9AC76E7BA77D5EFC8D9A2FCDD1A565EB580207A250621E27E51685A0C650323B4D2101810F6C89 E5D312BAEDAD3097F87C6064BA138681D3192C219ADA66AD2B0C679C8B00078597B2DE46F5A040 91F8C34813C07AC64B2F5FBF0EF52B16AA1EE9B9ADE71108DC9D47D587585A933CAA161CE586AC E30BA582A5CE8728991B10AE2012C2291B7DCEAF72E0299FF49F5ED495773656908F04F697ADF9 32AA61E6D90A87BB0F0311AF737E9F72C501CF1AB4DDF4392FB9F3E71F859D45F32EDF329F4856 C12ED2DB6FA3631B3731D5FB2DB79E193BB8BE75B85722E6CD85C35C05C2998BC6B854BFF76A39 B1A51ABD3304ED453AA413E6F6329B651FD13C0751886DE4553E0B79441FFECB81839626868715 0DF0FBBD53F7861647CAC9C633B9FF63BCB644D124F2420A7FE6EE7EFED293C9D53983617F2500 6CDF86C74694A20569BBC5DE7616333432C0FD525029E612858F5BF27D1FE06931A5AD37675162 2AE14BA10E2702CB896CC5A5164A287AE3771036AB2EC7F50B20576E73C151580E0D0884277FBE 9D2FBC52DDC0EC22A07138C692108A6C637ACA40D1881027E23BECFF6C54A50DAF7A79B5CB4BDF AE35CD587F46B14B3A89A50487F8A6E20EE48099B44F459E48D65FB393D2874E4BF7544FC325F5 B04FDFC0ABF2D6B8B6870A617D344AE093C4412007061670E6913B5581A0EE53B3D8C2D75E9560 101D4C217EC44BE71F866F0F40D1DC7296ED313ECBFF60CA3A05D45E51E32D9E75ED31F1905DC0 4F4AF2A29600172249D0B8B5B42D99A546A9C45704A35711637ABD7A64BF4D417564ED0BBBC7F2 093F6C7F87A770F6B6A655DCBC13FB4CC24FAEC848549CE2415301BF6BF234405946330E2964AF A37702223D1466A780720F39FE966AC1023866246F7E25BE2A1E0C009708DB2724E13770A8817D 6F27A095BED4C33648173F0DD8C627F405ABD3CA636EF8A9E77CC67D20E51721CA655704BFEC27 564A69E6193E5E3AB1814FBD3BE29D72836BF85C85F4555FDF3908E6BED58E0927BA45AD4434F8 D15C510FA5CD1311F7DBB20CAACE0D88535C58309CC82CA5E6ABA2E0DCC4503149E52572A0F8C6 7ECE6B8145C85E5F211F341AC1450EEF4D1102CA184DABD5CF00049F7BE76FA793893F2873A237 FEFE245F059AC85956B5A603DB8871BCF4DF3665364525E7B539A6A4F2C59473908121FEA5DA8F F5E4A4FBAE0C602130400E1D9D1185703F20895806C2DFE6E47408347CAEF151C730783FB6BA38 9EDEA18F865240ED604D0B6F5850CD18FEB63AD0A3ED46A933DE64C9571C7F15393AA81577A0BA 6A227ACA16DB43307E76C10FC630E6550079E7E5609FACF8DD84376AC186DE2E1CF84847C4E2D8 C58385EFCA099E81B6435D8DFA6775BFD76C527DA6CE32B6326944FB6970D2787190CB0572AB6C 531EA63DD1F6BD5F7732CC7BC7751DB30874EBD006978CBDE960BFBBD8C2D115C26E7CCBA2C802 131AAABC284699B18989BE8D548F30389BB0DED8FC122A1433EA61D074415882143D865E28A9D7 8E59E47EC5EF1E2C5151279BFF1D77ACAB907F7DE9514A71B21C129480FE708B9AEA442EB1DDC5 59574095F57BB3750DA4521BD298A19CBABAC650FEA7D9DDD40DFA7999D0CC79DCACD517E391E9 2EC65FE3A64CB5BDE1A203E53D73C994D53215EDA4EF8BD06658AA94EDE4DB65719A0903035679 B7E08BFA7C40E9AFC3ECC0A243C79D920B2F87C75430F2490362FAF9FF23E3880E7ADA9F3DB155 6E00470C2FBB131F539600D21238CACD785964F533C80A39605C9AAFA6438B11F72D9148455E9D 88A43178089337070A47297BE223B93CA175DAC0EA3CACA4A9BB07954449A1F9A8F5DC084602A6 2DB0D098D3EB9D967CEC1B247134B47DC120C03B66FD26FE2647C48433BB994310137C95B02FD9 54B450FF00B194F0C5A0A8623B1101B5F32589CE81BB1EE3045F4C78AD26A9C5868AFF70DF6179 F2A72599892518A45C54689AFDD92A5E21F47CFF3AA8636F82B33D9716DE11C3297C403B5E2708 D9AAA7DADDB484F6719DB1A07F42C0BF6532352BBB529478F0F08AA86E554A2C8ACB4D261C0358 CDC56FB9FB160F9CE9C7DDD0CDEAACD1FC38D9066AA1B50E26079452FA515EBB70F3F5EFE3DBE9 791161BC643D1BB3147C9A0B0563EA94F930201780DC3E97164C369C62D75F4BA3FCB116215771 0C7B87C4A42BAD8EE7AD49877F9AB41BBE69730A4FA1F83F4DF48F40AA6E8891D61F1E2F5B5AB7 6E85BCDB7DB8A8D7F3E1C5628A51246896D923DE53B1B297CC8E37E0C46A6B42F616CFCF17B74E DDA896D6075C4D60166F05F30DE0CF48A3BA092A0D2A694D01457C46089B7F573CA6A7499BDE06 098699CF1F28CF849D2716140669C98949A551A227BDDB5594F205BFB0F0379CCDC1B53472C335 7834C37292EF98DF1A5B42F2E8EC82381AEBFF1CD435499D35A59EB295CF563A574FEB6F8CFD09 D9C2E2138F486226EF089654BA218706E643BCA601DA71B7A2670A15B25523D7925D1E7BEC264B 9D5D47F30A9D36CEE25E5CBE2DB3D6E1566AE8067DA2718ACC991B618578F490DFB3B2F9F2E482 3CC80AB2B8BF562A6E5212A2A2F2604C0894D1DBE14FE9D7222E7F3AFD49D5B2344BB34CCB0007 0246A8A3A04DB4866BD9823E0C21C8C226BCBAEB92372AB547B8FCFAAF03AEDD70D2207840D6DD 0F833F8C19DB2CA2BA4F271712E2C617E84F34CC15078F9A8972E17B8CDDB1D059C53F7E34F975 1DD035E00F744D2EE8178B33B6E684E6D55186C9F2FE95F9964FB13CB7D83968F06BA14A62BB43 18A5830514BC532CE55995E1CD3C939ABAB0D211B1BFA806A353E325A73BF75601E817265F6B08 A43BCD7AE47648436A1B5285823F234601924C473B761B1C057D4C174BA653D5B0E7186B99577C 2F353E7AF1CC395EAE45B1595CA37FF9328AC2EFA8560952054F76A72D7CD91AA018B85EE553AA 532C2BCBCD412F349DFF5C37A1339AAD0F4957DCD5EC6833060E93914447483B2A2D9041621980 83838093C798878E5D558F7B51A9626F982115EEDC2039E3C583F264EAB8321AB228868F221E8F 4F9EFE1E760903FE51F98AB321D1347CFF719F4EC83B91E010961CA4F26B7BB7D4C769FD636A4A 1931EBB2668FD9FD1DADBDB6DC61AAD03C0077AAA035608BB2F6855593CDD133AC28523C100D99 C98A26C29C0A610AA270C03375AC0B9E7F7F265612B34C4DA3EE925B6BC8A98257986AD2AB4BAB B31D5E387984D102043BCD2F908573DF0D5BA1C1A59FBF2411A820DA0A6E69D1C19096580701B6 D8E814BFFC91F8068DE5D1A8C601010A53393AE554E003AE1592FA5FE0609961DCEF7D944F5857 64F66C20281424DC4BDED24291DEB386AE9C3DB43133E91401F528017AFAA530EB2736D3B6CE7B CB1E0C5A6DD5690AEF3465BA0836D2A68D6F3C5958843F4299B8B2728116952F62815C71B483F7 631338CE3FD626CC22C9256AC95D88B2F4659864B022A0BA75127BD9F4876E0251A2E707FA37E4 D5D5AEAA0EEDB18F5584B9FFDC9386C46D1D19B0419EDD812FB9FD83D531248CD1F6A4DB702135 9C13D1629EB05CEB121CDA5944020CAF186AF94EEE6EFF48023EDFE205E749942482DE061BC86F 58FB8289435ECE461AB84B09D342138561C2B4B2496022DD57C8253CE557FCEE1905C16A01F5B8 BA4E7F7D5006D434CF962ECE76E5C269A7243C826C0B7CCB5CB36088AA99BF3F3A7377A76779B6 9ECEA4A83BD4713D12BF424373B399EC0A99CF5D8AF7D5A86A390A80AEA33CBBB202E0A8BBB72B 1D685B2ED32EBA11840D0C9CE80F61BF2228924DC196B9C40F81D124044BE6DF12564AA1EBF652 41AF0DAEA563735BA4E8151F3C9820273E79DD4E10E5989BD0F291DA773C3DAC91FDBBFF6EDE1A 5D5FAC03DBABB5C2E97BFEECC08B2701C72ED14C9CA5040B9FC61A08800C5137DC617398405004 BC3FE46672BBE3342CEB1F9750CD7F4E057E098ACFA0A441C460886FD630EBF90A327DCC2E2635 9DF000FD24E56CC30E31BBAF1391B89504712D09C867D7E68A965E57F854507D7294C9671F38FA 9B768EAAD52137CEA03A35C82BCCFAE056DFC1214ED21EC9F5DD4555C642C2FF167EEA4EA07CF6 A97BB9042097B1AFBFB6FE69E09C2C419E6AC38372B92590ACD39A83C84EF9AA7DF861950F5354 046E90AF64F28B6D38CE89D602CEF86B1A47DE38E31AB242864D7BAC0EE07878CC2F30A23FFE05 B055E4EB475BE2035B6F3FE1573FFDE9A7960CE3180AD3FBDA2BA62215BD4C964DF7FA9B7D8A0F B32A8C36B1678E7297212BA6B5B72B1B0B9ED8C5F9390984240B3C77A137D4EE6ABFD66FD2BDFD 57CD46185487419C70C2754008A24C064D506D8FEE86DC8FA6B5AED30C3662766B8E4C7A0E205B EF87BFB1DDF81B236AD601F4C1B25DB98B211C1BD85BB8026F6EF5EB14901240787EB10779A7DF C70E02E2066E516BE60C726BA4E0CAE1C327A762BD30800C7F584E2796AB6A0E80AC5500498962 52B1AE178A2FD57E0A72758E794E455E1C78696634C09077DBE2233BB4FE9FD3C428506105F32A 68A9DE914C10D7D3562F0E70C12963E7FA5EAA2AC08A384995139D4EFF7AC6A1425929DA25DA7E 11E40FA431C268CC157D3A2E7420923D546B22C8CA59ACE87633D5D6FB804A1569BAE93C004668 A1EEE0DE42DD0A78FEA435A7D9C84A95952F78E626AABCCFF3752171730177C9AC44378EA69012 2F1364640C4F200D885A85737080FB67E7D1BE9614D4A5A2F538C137E92FFD914CF587F03084ED 745B868102E34FB9BC2380012264F1DE610B218B84448BCDAEA37C9627A6F8B94406D069BDE191 1E23A4AF49D64233A965F0253ED2071E61FD937A1B1B501A43021C580EDF1A1E92D27ACE0605D7 3A868177423EBB55F178963EA9A4FF3F9F11DC1F4F938E36B04DBEC953F585A9180DF530906CDD 046D5758F792BF3AEC670EFC402596BAF8F4A3052B9C586A3E17302922D66E6FFD813480D83D4F 7245224718D31E2006A72DBBB1CE84901F69F07C5EF3554CB22A979BEDDA37E0B2E635707937F4 526896CA654964ADFE8CEAEB0DC5AC4A039B7C4C641CE8C8D9908E9BE1BD78C77E272F9811895E 4F8DCF94CBC0B826AFE5C1692937737713CA4F7A5FB901FD7DB797B0DD9C6EA4F82FEE8E843C0D 799B552E44193298AFEE0BBBE7CA2F6759C891331B5C97AD2DFB0E2CC1BF99589B7E4619A715F8 AB5C88BDAA1032D90B4CC5A2B4CEE7470E56E86D4B58F74CBF8D519739BE55381B75B3C8FF1F39 45D5669B0C9F068551C7CF0F5C227F4401EB8FDC9105233154943A10C479AC9826D6366B03A775 2CA00488AA04CDAF8B1E0DF8CBACB678A26415414D1F15D0F46FDC5A379D5EFC53DB57CD66AC73 D274626739D9260F078EAA529693B112392FC5DC3F025DCCE34858856D61A86355F8A74427B073 3B6AC1C2A32B1D3FFD6402798AA093391253CC3D65595148994485CD6A74271FE71093552BD0E0 6E4BD8A55685FF784C530D186B923AEFE16250F3330789BF632F9A1AE789ECD4F8DD6055C3E7E5 40F0193CA768EE69C37B8E51C4CEC1D1A7B12ECF6F65DA9EADC0B3B77D22084CA3E48CF0BB2E48 37DA5D58F4F2795BFF4F62C2F520AE173A098E6F1E5ADCBD2BB3A1D26363F8F645B809A8AD40B7 EA90DE4A9A26BE11FA203A55B144161881665D6D1D74263AB371C31FC70F9D8AFD287C0B87BD65 DE2B3DA8E13669ABF4501ACE58D9CA150F30B23388AE9BFD053976B223E9B37D226200AF4D7697 840FFA9EBC087A72EBB45D3D1FB5EA3E3E882BEB4F9B702DCF69DA879D72BEF2377FAB6094314A 0673364D4165950458321F9190989C00595C4AB4AE76C246D26B088F29965200103D17C6104BB6 E95802B4068C0D24F610532AAA2267D6A36183A5CDAB42140ECE4E0A8EDAFAB4BDF8EC6D706CE0 562235124F1564DF380549FD931F3FF4616F24E9FEDFB3C757570E60D56D1F3568E575A35A9E5A F59CA70D9D0CF142A3F50A396807EBCD83E58AF06A4EA165730CDDA6E363B2B1F0B060645782F3 70E717D38A3BF1552AB327AE0F9A155E15925A64D0AE25D00C5FF977BF824955926D8CD2072C8E 41591597E6907300DEB999F06449CF393A8C0A04EC6A9430BDA18F680E6B9CE7A438320224C47C FF64783FFF47F55CFD836B93163BE2C4D9E16C0D38E0249FB1AF2E6D951C89302C7163031AB84A F4A2ABD01EF9AE342F5284390AE12EEB1FFFD93B281162F01AC4C4FE90A4E5A53D27802A647496 94138C6D66079312FC04FCA387A5939556C12130FB04FB892EEC36C7470EEEC2739378F96B6392 2668A33A7F868518F380DC0E91CE2C90484DA50B6954FD6AE5B7A10578932220D075042D762CEE 4AEEE034A4637CDBF7298069DD2FE8D74265ABD5E4BCEAB81425516A38442053CD3AF67E80A50A E9213D7B4AC2C62E22A73DF69F8BD5E0C6AC8C688DA644EF6E20210919ADD9D69FDB4D5DA26B06 10E8DB9748BA445FF931E3146E5937EBADE4C7FC61303004AC549C1900F5CF8E1AB0D63F13CD7C 5EB22E21E9FFC31AEDDCEAEB76CB869253111EF1CFB6D8162DA3E59D77F44000B96386C046861D B1FA14BCB2C07B5B373312468AD8D73BB483429A22A27BBB62FD087A0F8FBBE23CE21F3F49EDE5 F0A329993AD337C393F1332BD534750579A3E72D194B04EBC430594D4E181AF8FA60618E1502F9 3172E26B55E5AAE989BBCC48374E8C6906A34BFCE114C2B2B4ACEF9BD7F8CD81A44F855F15CA88 BE8A56AD1BF77EFAA5BC81C97B8F29F878F9091D651D5903E3F60D25EA1D97B6025FDBE181246F 05262E430FD57ADE69286353EDCB572069E25BCA99F3FE8744ED8297D933BD7B5F5687BC5DF1FB 584B8207EEDB38FC95BC6036342B012CDBDCE4F565B6D6DAE2EDA1B4F40B054DE50043D7AC9C3A C0DD32F1AC2D38D0230231C17D2EA583F5740A47CCFD0FAB920FE1A49914C663D8CCAA9B1C0672 055483B762DFF0493E0D46643BA4458DAF364512A3C72ED1AF38DD00FFE18592E96DF318B7C96A 2FE3543688CF50562159576FC9D051B6BFCD32A80FDD537F2A88DD9061CCBF832819F09570308A 10065010DB72AE096D02A61092961094C1E383712FBBB58FB322ABCD0CFE77B98D9C584AD5C9DF 53EDB81949D310679E2D28A2D8B347434BF71445EB9F9F1A2C61B6BC16EEC4C1522AE46C5E9984 1206FFEBC27388D4952FE629644F6AB7733C457CF939C324DF0C4FFBC5E7BECF655B1F09670D17 421CFE6C9A0FF4C4D7342E8CA177A602E7FB93DCD456151A8208C332541869298A0EA29A787931 906B0EF099CA32F975496AB342130F34C92CC5A863029E030B66D3626C88F4887CF5A8A92AA750 E5660AD03EA55D69EDF466D4AEE45067D5496FF91F26BCDA766476CFDE111F227FC7ACF6FBE1F3 22038A92031650E9B813AF16A37B4095F039DF57791D3F8242C2C409B37D045001C74BB740E2BA 0D29CE658C65510AFB0D899C651DFC01752F9425D5B152436B04D5DF36DF03F11E141FE994BB0C B0B7E37D5ED5981FF91DC25335A480ACDB25C48C20EE40F66F5B482A626A4D0DD2689D862F302C E5421DED7429235723092734BC73D00F56419927120414CF8659CD1F964128BB6FC105A7E090F1 A2093CDB77BD1C04C723E0F1C5F60BE70AAE29BF0713F86C58DE426819D22390DC1D985F2FF86C 08EF83F2E9AFB3A62EF4958945FE270950418D0B26206545CCD081E4DD18C9661BC8CBB4C2AD15 1F71D6BDFD16F8FC0E239DA5D19E8C2DC980C367B7EA589A5278901D913600A2AE6728589CA00C 44957816D98775D86D9F11C086A95601730EC4DAB3306ACAA840599A785E4AEC4C0B45D14800C8 0EA12E04F69836CA05D79543A7D7043DDE89BD573A8A937E27DDB89267C30731E20402901F9042 675860C2C1EEA408F35561E73301F5DD52591A59FFC7684A1FB9228A3CCD6D321FBAFD05718411 DCDC2ABB7A588C8FB14D916993B5FBC01409652E5818F2211C86FC21FE154B464206B642B12564 A6F4A8F4FD5ABB6F48E959FD1BDB8C413B2D6E12EE5286A805117A97E3829DC83F431AAE03A6A9 3C97DD6640E4EAE56AFB44C1892D3E531FBBC7C1ECEE90583A72F6CFD618CC01E0DE8733D38568 2600AF19FA2E08FF0C29EAFBE912C289E57F0C315AE24445F1A5AB2F492FA7A38A4886FC0035A2 7E793BEA877210F272D16771C90B5BD86267F889D3A25546DA863A100005511CED9C95A1E2AACE E762E6501DF03F146719D3581365260811105609E56239B54D7AD1F0AAB6C7C168C7DCCF3CB30D 06080F32E815CFE2784FAAC58AEAE4F22D72CFCA289BE03F9B2DFD27FB1E2D27572A7400303398 47AD06137695C113E8C2DFC0BAB9A3ACD2A856D9E7927FEAAE009B6F0CB84F76A488CFD5205AF1 DC4313B6E4179B1370695509FEE3E64A9AC425A043E434ADED0E5985B293669D09968D0AA231E1 B2F617CDE5DF2A681B2054EC1FE239E95EE1A11823F73713F9CD4AF03E13A78C2442B6AF16360B 01E8CE7DAD91717567BEAC799962F00A3509E24E4C4882124006B252F9A4C88071629A9C2B7104 6483958A3D0FEC7F0A48FFD5E98F3C49B0FF8BFDF5824DA3605980B4D72A8902ABB0E0F52636A1 06605CB90404E57B49596690E4B0591751D5630148B140AD0D2EA236764B131CE42AC418D3EA2E 2DFD09FF17D979E54C6194DEE059501718A14F86ADE2E231842ABAB8A6634C0C31C3C125048D6A 0E96A2BD785D51591B79E2022D49F2EC9BD874FC2FD52A7DCF644F124215C7B9D3DBE9919BF9D2 138F0C75AC93F48C7F125973BBC8EEEE34502A62986FB8CAAA8242E499A85E43387264D3982838 791590583BC2D74F1D1E3A4F4723457077D8E538BEB749D35F44F37B86A26C90951CD56A0E5086 74E42A1EC33FA88A47C248B2D9783D4D788082B89368D73F2EA3131A0C78DF9CB707A0F65F3AC9 3CC6E81866BBA0D87902E04CB3DDE252CF76344C2A2EE70C9260BA8C4DEA508D5B267A9E852C75 79C062478C9F224D6CD544047E6643753F6B9D387EFF69E37E8EB61E6C50BF6CC93845070FAA36 72EFFDF8F0EFC7EEE9D42594D1786BC7F3280FCADE5027ABFDB83E6E8A72C457BD6B2739D263F3 27C5E0BD130514D98A5FC840558E85017D289816B13C0BA1FCC6ACEB5DDCA6B7F4EE30D1D7E617 3D9B14A16F330E9D32BE3CE1B92F18D2878A2C3CCD52B2103B082454C60724EC75B08D187E01D9 EE3286D69B9EAD4D8D35AA8BAE3639B7E36556E1BC86143C1BABD3D05B4CFBD918C4171B3CDA77 A1C49679016AB674530416738945967896E405A3A7A451F43B14E7BB3BED0CE014188779610F21 E869A79245AEEDF2D01CFBEA80B9295AF35A7085E4019F499820420BC15E5D3D8450AC979E4499 A894699D154648A74C6443EA53C851E67F80721930FE61C346207F2715F3E20418A9F58E4C12CE 9ADFE14DE865DB21085783B011BF1CCB2C3335A55B61DF50486A9465BA7BA85373E10F7AC3202C 15806C98F7A8215A89DA4424D4B16A5E352AFFA05A58E5A6B0ACED834D87E7EACDEDD65CBF741C 9EBEFDB86AC1975BB61AE096239597DD08156D26E218A61C1B69C71953447BB7CA6C055F2637E0 B2E320C1EDD20B7B4E43DEB395DA221CC17F237B81098232567F591977CBAC8678870E1A1850D5 C019E56069F11037B2C983E61BDB9778C50BBC9FFC6CC1CACAEB4FD3B4CC131BEEDB3C486D68E0 69303A06E1653DF35D6421F93F05DFE32BB953E0EF723CAFBED7DD829B2D469CDC9F6FC1FB6F89 4BBD9785FB48F1A89DC2E1208192BB44E7F3DE2D632830894A57B950C7112D76AE978454E0D666 3F97E8FC2225293977FB65D46A5A64B2BD75DD681D4B5AA39202CE5E6846B872482765F1086FE4 6200918A34A9C0375CA555FF25C70F075530965858942F0BEBC9CCDFA2515D198479BCE058BC5A 98E014F017D5239CFA21C5801B13619642DB5DD9A2A16FAF1C7348135BC59E31450FE5824201C3 99E397C49DFAF1E8ED16054FE187A136E5A838976A48A1AD1AFF50776E953287C5C026CF2070AB 8DF13E926E668353197C0DAAFB3BCD64D391E8DA10AA80C798A914D219D0AC05A00D4FED72885F 408293D9E9D952E47CB8CA81F3797350D50EC0B74E526825DABD3D7DBDFBAF7AF4781D11C82D54 05AA18F1BD75F7FC6C2B135F34EB3B29599B7600912F23680F5190B6D9B06D619B26F1D086D122 51305AABC2BF2282FAEE69718201523BC2877A640EF5FE8A68E1358BC8C0A185C304D9986A6E31 FFFCCB726D2BA189FBCA9C699994DC51F65653BBFBE170C39203C4BCEA90E07FC0F45D0E788D45 09948A4AEF90C62CB4D5126AA30D655A817288039460D3E8A0450B6F3860727224957DEACEBA94 86994D34743A32EBDD7D0E20A3E318F5288B5AE38428D3071D5DA2D3D612F23617AC4CD5EE84BC 8BCF391C4AA0B721FA25AFE0705091FDC0ED96094B19CE0C8716F70EEC15579C95E4754C394895 EBD7D83FA8B9DD8B7134E6989D3B51C47600F053EBC134795BAB7C2B7121698284E9313C442E65 C1821476436FED31A80A8220F02B781A3D19BE6E483699F7E809B1AAA0FA13DABDE873C7DA491C 02499F9275DE49A900DC3D624FD28F4F1F88654CECDE505D7E3E449DABB1417FC03F3E0EF42F71 0F952C7DA729B45BDAC3F766F512984FF02A178D289954D7FEEFDFD6571A8A36EC673504F0D737 FD41CD8384B06842BC686EC6B4F3B47E4BA7532649FD57373EBA8FFAC961981C381F2B1C731709 A9F210E7928F13185B3D0195965330D0F4DD1CD09E008DA25C067735261E4CC2C66D3FB1822E44 7C2E3C15E815DEB88D2DE9390B179D4EDFEA55E78AB2B0CF12FEB75967D857A604075FD20ADDF2 8BCF12C46347463A7BCFF3ED8ADF441ECB3F17F799B3ACDE848CCA5B920A2087EAED1302C2F000 CB9396EB83598F891ACD25763F567BA9E5F3C4916C62D8DC5FB3EE188F40EABA66F51AD59F7256 DC4977C9408808781A5B790AA26FE9E3EB1118D535A76E6445DC5EC4554A4C1A06FD082C8C1D4D 29B3CD4F77CFA9356E7F055EA5062151B272CB8A036DD5F891E4DE82FBC877D9816F4AC9EA007E D58201808D17C5B7C0780161607EE88B6640780D23870D34892956B561B0C1910F3B1CC8261FC4 17C49A520D7AEB3239B7DB86BC800FD1014AAAAE84DA78F2FABDA841E82F102913C89687FB94D4 3112FFCFAD37D49D2532F9DC3506F54CEBF3D3D5AB4F32D96A801CDCEDC7D9002019EC48DFEFFD 62F7879D0C9FB2CEF3BFF219A397877377AA2B970ACAB8361CDDBC1F38C5F7D9397E2272751DA2 CD98CC97479CEC135A2496048FD8050FFA680BAE058CA5264E738D1699826FB12A96A6D328CC03 19F501CF5AAC51A62E6F587FB2DD98881D69FED686B64D92FFC5B1AC2C957EE5F86CC9E5BFAE3E 73E6507C5809A576A59268341EB5E3F863A69F0C805A98696A5D764E714C478B544F0095BCB352 7D00C34A67EFE6D156EBA4AF22AD493F7EE841A8489818047663C145DC04BEE4F472544C9A2018 2147E184BFC894362E366A757B586FCF92248DDF8B29BEE94B4444400B1764EAEF6CC8110F1371 D34CC38A939748CBE0226C110DB1C67EC241F07953B61C683642706930266E07309655962648F2 5E981598930F3EE4EC0F75614F777742D6CC0AEE86D7D5111D11D5077297B5358425E660A296D8 3832D37985D710E0F9EDA67875EDA4B75457A9573E3DFFE441029ABE0494EBCDC90C789186F0B2 97F90ACA2D3BE84610AF07E347FB7694FA4E216A2386CBD1EBE70967A82014E8503E2E97AAC71D 60DAE00B786A95B8428F7726BA74BB3752F56894D4813D0434D0026F1703DCB3631D69082B5D74 46AF8B5660688DD97DDB83540E2A69D4F994FD94413CA5AB52325439224E0906128187180E42E9 7324CC2AEB60E5B327CA998AFA49854A59841C5C50E4159242BEC79D2E5BDF9373CCC510B3FC38 204BB02BF88DF702FE5F2CD11123C390C6EEA79F7F1C4A294A9137926957D70C47D7EED1047079 ECCD09C2BDB154A95A4F5BFC6CB708409E3E1A0DDB421F3E26BDBC0126212425D68F3218DA415C 0B03792A561B6B6E02D84C83534866A8B4397D485FA947E66839BA118BE6475A8EF384E597B99A C24B83ABC9890BDBC7946F07C43535A9C0C53C6BBEBD25E85D7DBF87394FDAE324BD1CB4288B89 31D3BF747EB89B356B3A11F07585EFA4E4349A40B409AE651D68E611122D21D9DE3425EA845568 43A0E9D638B1C24E55992D6EB5D7A36A8035B9AAF0D8D71FAB9A3C20BFE5FC381E6E353C8529AD 44920C2B8A1D4DCC09FA6DDAC7C540D24FB55D8EB38C883431FF49DC1DA22445A6CB438E6DED85 699290D3EEF81BCBA53D977C0B32B2E478CEEB7126FA359D4EA3C8EF1D0F6C3AF075B2E94FCD5A ACD0531FF179735D94672A55C1D1FFC3842BB13CCC3E4C81B706A6830A1E502E954BA2F6D57CB7 777CAE7EBE73ED1FEFB88F4E27DE15A052185CF9DEEEE665F38703AA7AF90B0971628BDF8BB1FB 21A30C3CAF7495425150F6E53A58F11BB6CDF949066CAC1352B7460D33FDB76287A7C55C9123AE 5A2773E720509A9F3D391553BED505C28E8A68EAB0C4231BA858934FDD38C725D340F21FE656D0 002F6571A99FCD9AF5150DA9B55D796F9F30F4D10A7E82DF3B55462BE4EEE3F22D484275D60F04 D3B1C83AAC019C0C46B68A1A3357A65A22A36CF319F53637DA1AEC7C0AA003E75491C0CA77BB7A DD734E0BB7AA3A30ED0E228080FF71B952DD328D938638738697F06831826400DB73D6E2B260FF 00EB6130B3868D3C204EFB65A2F00CF5BB2CE4B464E5EED55E7CE33A1702D272069C2B291212AE 0F7A0D3BB7B82DC5FF2565E40B0963FFB9ABDE6DFE0A5EE3BBA96A3CD74D4E9035849C7ED677F6 84319FBEBA5A5B1B2B9230994B2EB643B9F395096B46A7BDE84230662B72077FC96409F1B237BE CF8CD53F27F690B101799B9FEC896A52609FB368DDEDF466AB17CED2E756D2A9026D4D26E303A2 CA619F746C281A9A6AEA0E08CD0D1A7AD1F9CF7C6EC91A35AFCD6A1F59815A702558305398B0A1 4A5AD71B085B9B10325C732D229A9C98D8AB35E99B31CCC4DB44852E5BA6DCBE8F759F54B3C10C BC761C1E576A38A788BF5CF46D68F8427E2ADB16E23A8744039F78F637BEC3D8F6D239185E9381 82475AC85FB8112CA4806D13455EE4A903CE5C7C7D5A8BF0949D70740ED6EFD38866D4645028C0 5F16836C9EE77E775626BD67AD61EF9F6D7B72680564715641E460E09A741F30777FF1CAFC8B43 664F96D15E4F218B04D462C8D8AA91B55765927B41CCF8B79F89D4C95FE5A6B55E943516C8C674 0F43D3681FF8962A0ABC7BAC47B06DA27FE8B1FBA3039595F52CA33845C1A7966308C006D6F828 108603B42229012F5366B77C654AA8CF6980FAA68A1796A1C9DD3C8C01D144CE40C669634B2FF2 946907DF407A2C5F577D3785623CAEA75F5D18E2B3B91D595CE8BAC2EC742ED54F17D4F912E115 4A6866A5E3DD49EE48B407FAF34441502C6AAEE95DC123EA266C27F6924A44263AD1238FBC0C88 22114FFD6FC5A178F22D993639DFDE16B1652881F7A015AC88722193BFDF10DC1C372916234F11 591016A8B5C2055934EF10C079DC83BBCF396DD19C7E9E112F94A871ACCE631683A8C886E4E10F 218A7AD93B0F4F83B8418C0984EC0EFC3ACE47E7583F801D1B514FE3FCB6D4ABE5B6C3783F3026 502212E265243963F6F57656ED205CEC6A8881F37B1FCFD2BBFC09D1608CA43EEE74229369A215 1A916D40B2650E823BFAFFB9338BB43369CD38F0A351E320DB42BD62A6B1A53E0AF4E0BA92DA1B D5DCE62194D041500173E02835DC3C5A43467258A4340C1B6DB48B612D54110D70FBC038E947F1 80ECCB983D2204567BC2E256C6AE46CE9C13E6B576E2C9FA5A00840A61D078C80C1C7405A6CB66 BC23CBAF1C5CDDE62CD32A84D587BB2B3828B088C56831E6C073AA50AB4CF27FC74547554C491C DAC152BF20AE1E14E31A7EB4C45A11DFBA32CC6B4D47488B950A43B12AB7DF7BFF07005FB64503 D00EBB085706EF3AA04110C671306F763273E16BC75323AEE529DF5EED8CD07BED8A635376AA88 602674B619B086C8B46339FCC077399CDE9F054D50AB2EDC80BC73DE4332CA8F8FF3D4A2B2D461 3BD0B29C7DF001FD3B7CBB4666DA2175252E7E55910DFE6706CF744CB7C24CCE4CFD4F35D0E0DB FA1C336240743562FD040687693DC43397B012390833FF786416BE97C2B8E16897C3EF5765C988 7CA6DD1A3A5B2CD07507AD852A7D694F2FB9E1B8EF8D0581EE6C80094FFD048A1623048C4D4DAC AEC1303516A43F08736C003246885184E73D8C0312242C33F33C5FDD86B4B952F86B8008FAB05B 38C697BAD2F87115E88C90B3F70E53BF6CF95E50A39FB028681746DA3431DA246E7423E8F400E5 659141F09EA274219F1D99EEDC203B1D8B9696F66EE89643B6412ED2C3F41CB9385C30EA9332A4 5CB359E2739612D7FCECA55C2BFDC4230E5CF89E7021F4220C22B6913F69ACC5F65D7374214EB5 1EB691C53D0B1F590F458A4D4A385D7826659C77EA21504A7EFB22758ECA0497D059437D70CD94 05DE2EA6BC506686D07434C6024273B49C009169E31F4B719429CBABC11473EB70F07DC2372D11 BB2C146DFA378825C0F2857BBE54EFFFB74FEACEAF15ED6DA597FFDE9377697C0E472B7500B9C1 6097BC50F38651D40CE96C50C9A6236860A8BF8F469F83162324B5296C50D430BD211D8BD0E4EF 0101D6F67DA8C348861E85B35A2A4992D6A4930AD1D26C6BC5CBB999F83C727D5CE551B98C9043 D10A648D8FCD959C9D1F83812CDA60FFA8F8C3F88FE8536CC3FABAF59C5C174580B98D38971623 6284CB20F900D8B793D37EF566A87963445862BA4EFA880102C87F608F0CE734212B0324FB2D2A 083AFC582CA20B744DC01BE3862057D746811E95687D06388705421C1B8DB69218A2A706D3CBA7 8A449B344AF0F64DEBB4FEEAAD2C873A42B2A934F93C0BEF487B33DB2570723194651C204F1201 56E09CEA13151E7E49703A3124DF500E780CBC62DF36502D2E6F5C57CFD1210850A2D35AA40A55 603D3E56591E33E7722A282D6A8E1674495E12E348954B7CD0F4A4E4DAC080824795188D8A478B 243EC611CE5901A9BBEB76EB041AD162619EDF1D3D83ED07F1152401D2D5A03E6C784D6514EB89 6ABA990FFAE09BF057B912A27DD2092CBF5157C904DA4B566114A37A7D9AD0C0D717EFB6C4AECF EDA8D6971897E7D0FB1E685AE00CFA46F11B4820B31EE99098EAA2505E531BD1B07F41D550FEE1 16F49073A12E482E9194C3C5D914AA944EB0A857AE2B5647A2C9519AABEE5ED6F356852C5F14DD 0852271FDDAA5F229AA7151D9ECFBC4861D5E89AB66747272FB6B8D49ED0709EEE054CD07BB917 606BB005B6B2FA4B114536EB0708C08B5D7CCF46EC19038D93EC063DC3DBF39B25EB301B4CAED5 05AC18AE74A0AE4494AE38736B19FC4E6B10227CB30940BF72A4704066D1D02626EF650C112A7F 8B8EF4074748BC08CB9DF80A0393793BED309D6DF2DE1F3D8765D992044122AB317749A3F96D1C E8CC520555B4C2352A4FC4D92947B60F13B9D5B7A5B47AEF0363A31CD9D35DC0F34A051E369400 D2AB68DA7BE1F1A374084B5522A6BF862579AC6F9F45D1F29E7CED5041DF262CEC4D529CCDF8A8 3A18572D65E59582F8D75236897347892D9FD0DEA75BABD0C31AF5D690394B228E835EBC6A5F05 AF40BBC6B35F8EB3C9F76AE440CB1A2E88A4F27510F67CBFC15DC29D82BF07796F6D8F793C34B5 D308D8764E9EED3EDF5D328FB1955CDD0719BEC23077A5080A88E9C95C705AFCF13C85DC533B77 6A15AE7DBC452BD2A75451CD7FE36C2B24B9044DFD9784D6B55D79BD164EDBDF735E6C486C9C9F C5A3462212B66C2E8B3C1DC01357B02DFCB8AC883E7EC27F519001E5E8397D81BE41EBA7BEB413 5A36C4E9DDD08D27C9A5B9AEF67090AC69F122DA5DF10A086ED8EA0C0A8D8060ABC76E7878AFD4 7444B134EDA8D78E2271374C7510658B16A9C5C4833581BB7EF970F9A6A4F09B238EFE5A8B433E A5162C9851F74F75EEBB1A4D57B0EA29FABFAF4D2D7D8AA8BC4132BCFC9F0EC7E841288BD234E0 6F910BCB4456C7ADE4182C459D3D366E2CF72BC6A633E830DFD85900C3696A11D2C6B79A822880 F3560DF7B51A37FC186C48BB55F1B91DFC8622D193C48438CADD95022B3269A389C2E60C9C2800 82C096FDDA6DA3FE1BF8369F4FBB5AF739485B83BA055AEC9DB88C23DB6C5F751966D482434721 91E85857517308281CB32C386755A1159B1ADD7181405CA3D686ACF18566BBE1860CC3D4DD979A D6125C6A796D9C5B9B19D03E01DC7C0502F8F7E330A87F8AB8DCA128F914DBE36434DCA8B164DE 558C9F3A7B39C07135CDBAF5C6A6AA5B21972EE56521C7C21456BF9D462BD8EC6F838A006ED0A2 84EB344C819791B014BCE095A6558B5294506EEFE6D51C935165FA4D0344498941A5E42116BD4E C9B9F72F4AA2FF794981FA5C9F5FDE59F62427BF17BB7F0B2AE94786CA197383A6965214895558 6540A4DC1071767E23310C3BD9877835098912B16EC2AC50EADF2035EB7A4BA2F48F028414ECBE 0352BD409792DC1B9780A10BEF8357130C201917FF4956437DCD2E35CD0B5629AA37EF7DBD6E9D 057CBE21442DB22F3B9CE9064289CC8A3882A6934C1C7C3542739E1D56848CDD2D03701578FEA9 AE283D393AAFB58D5A93A16B5FEF33772AA47EBCD4A33B06A2CEC3B45C553B5A63B1A33EC16FEA A152B1D248C207924A12FD27D871175591D93E23EF5108534FC75C455311EE8E3F2AB408A2FAAD 738DAB33BF98A3396CC6D5C3816B65E58D8EDC18C72CDB15540F6D62926F496FF4107A52154233 FD73427D3C00C4455A67705300681ACD21931C665E9462BCC800D25A31A6BE61519FA3487E6721 6BB21B579396CEB620B65FEE8FDC9CAB02CC5D5C8CFF9A284274A26F7C5BCEEC6834176F63A1A2 7A674025A61FDA661584C04D5C80F4DAF73A5362F67FB8064D5079406EC0D115A79F292C893EC6 0BC24FF533153275E178AEEE1D0C2C84D28D23DF028FD364FB2F9C13141098CAFF49C322A9D8AE D0E5F195FDB307B0D27D89EA917346AA73BCC436120E711FD36092AD7CBBFEFEA3C6F371D0D29E AA047229A12836CC4F3E1FE539338D4FA9E15E2CA242B768FB35A7E76756DC1EF247E49FD40438 19F917F93DA4D40156E3AB93E5580B56BEBBC1899C2E3BB68CDC5B70642788FA475E1F0C71A532 739F4EB3C85FFDAE230FE92143B8FF8DFC928F9F72B97701C2A5844BEA5D263FF3DFB11AF92B65 E5846A68EC81F9EF7DDEE362121AAC5DF1B0C29C6C32247ECB52A9725F65BDCCFFD0EE535C8C77 A02E44E274988827C05FF6C78112BA5AE29DD7AF086ACDEF0372B198E0303A257386315392DEC5 7C0BBF78A04AA1FF28F927FF6B0AC8A76A22B56CA963B779E2081CF3925391C9027AB0C5533EAE 1B22843F0AC72C2964456B56D8BEED6A3C76D6A675488C43471401ED4502351451C1CA0A46E380 D41E370D2BC703ED34B8682FAD0E9EA71E4A5CEF5890795E2B5B09FECC763FBB40B6B2E8D07383 CDD0B084612AD2266A4083DCC3A159426D3420B81B1041C5EE4120C925C1A952EE6DFD759908E8 E1CC882C12DEC431C4F66EC3B5F3CCAC728208F1F841E477A276ACA2F42AB5399F762B9C70E728 39D284531908AC8EE939BD049BBBA6BAF1C536E40DDA2412FD9A6EECAC2600C49E10092E73B91B 670AE675217BA39A808ABB34E535F5CF9A202417CA625121DFD6F4434155BA437EA16D0B6B05CC BB3B161785B3856136A5288C4D14F406361CEB32410BBC3252ED6497690D49A3A89C40A16F66AC 8F9D80411BCE174F5D57BC07968164BCA4AFF626B6F675BE9F438B461D2A35EE1C1F559096BB04 2E174AACC03CE5C68667F8A59D2B2B7DEA85040EDF8F3175A14BA3596064EDC67058EAE7F60BEE 1759694129264973E259053A70FDFC27E708A8A1D40B451061101C6DEA814F7C9318067E561132 B57DCB9C67F7DAB6C5FAFB9DF7B6B53D45B8D43F66469DE6831A40A5DA32A33D5FDF9A3F266A34 6E4A2E9D52F68599DB0138C3B08436C0DBA0A553F6133672860345B77353BF9EFA3FCC80E49D8D F84F85F1A99F23BF470A9314DA381370BEC348A37EE4517D3372D33E528F137A787CA9956E9BBC C8446E71CFBDC6D92B241AEA8A62B77F40A630F5E72F623C18C9B499DCF511FF19C40E53768925 8C9C933CACD974680F6E443BBF3CF00356A498C63A56F68843FE5BEF635A4A671874A33133D525 E632A10F62A36120E5BB9C2216FE80DDAE94CB7540669FD0BC404D361BFD34EA879E50A44D4071 949AFC3CB4A4E4181CC30DF9DF63A6A30B38EAFDF30158A1CB45F2E433FA4DC62763B6CEB411E2 442124F95DF503C4FBAEEBAE7681532B9E5936716F6D585F51B9871321D5B7FA5BF4704B0A536E 78D00372CADBFA191E5E3CE0AEEACE1D6586E9D11A0FE37C9824977FF1E6F95019930510137ADC C4A4F4C4ABDF76CBD32FB977534DB8F49EF673AC29C1A559A1EEC69F0EE5A42A24D20327CFCD0A BC278473031C3F2CBB34BA6E424D990AEC6C756293821C5D439D4C8F54319C4BEF22EE740DE2E9 3BDF51B15FAC6E469A01C1B5C5690D16F9754A8A3094E751FCE11000F991C566C7C1B8CBE772EC 80B2A751F829A4058A28110013AF4A3DF7DD7124DFF0F728A25EF78F78EF33A97373DE68D38DCF D1E29CBF549011A71ED451B1E7EDA255A14975FF44F1CB448B71B09E82E8DD5EF75716A6E32620 658D229108B8209287C2CAD6346F0E8BBF1EB99BFE8952C4080AFCB21F58DCDE2E73B02428D2DF 7B29C43DC1DF324A73F480685198F8006C996958AFFF6A55B459DB50FF2A33EF43E31923518FEC 28598D092D8205300026E04907332830823CDE60D062E0BA04CE7C801775012B4835AEA56FBA80 21097BA760632CF097A0D4B94B5BDCBC2E61EFAECC791FD7202B00E678D6B76F891B918F63D494 72BC7C5EEF4BAA30ECC71B5DF6315A71095F9E769DD0887C4314AEA236A8EADD9DB780411C0733 7E337744BDA802DE4906C3F98E644C638E4C86D5F2A7B2C17DACB10DEFBEDF030A580AC847C0AA 56D4D4B30B513BBDC1105978412EC2C36DA5E4F1EACDAE3426DD48898DF1DF0B0BB91C3343B487 14EDAC8BAA025AFD729DEB9FC96432DDC0D782D226726368B516E8F266855D7D02472D605AB245 084B55FA61A0CAD04FCFA9623DDCBE109B2AFBB69955809E2989B5453793032D1EF7D7D8BD4E10 1456DE181A8D7DA06EFE2644F184928270400D29EA969154136D1E810386835E2A3161A3074BDA 1DDA9B028910927B84B44C52DA2E3F0CC9033A1ED31743FF1D04D281DF1D62735083E0AABED00D C0090B1453FA60E5D16AFB16A02DC028A418F357951710B45948D06CE7BDD0BECBF3BC2B9CE44B 6E47DE415A655F6D78DFC36995DF01D28BB52F750FE557FD2A82E36C7B6D9CEE9DE4326D69E261 74FCF2D3F78C7F68EED0374D80929FBB08419C9D2D7F55D1AF8C3639DCADA1C7DFEFB7CC17D807 3614A1084659277FF822BA6DABC3371D600A14120DADCE7A1F29257ADEA32DE6186D1E2FB54ED4 B9BEC1F268B90656B224757015C35355841698967587305949A7158490FCE4F1BCCC2A83DA26D0 F1D7A9912F8462722A58F5D0A7A4DB48F527B1AC5763E6B45A41830E1ADCB09E0F336CB97CF239 9513DFE02BA8334B6A7EC74C0F3B0BCC61382B69D062304DF98B09F1E13291C97274CA134CFF86 CC2A823BB8A1BEA31B8A25F843B15273D0F1BEB8C18B3A2E2027334A27B5EFC4CB0068C79E5CFB AEE391D8BE2C4CA0F8A630710AB09C18C0DFEDE175ECAF12063631E9B25C6C9FBC3D49873002DE 6262BCEE73E4716DC30D610EE5402597F514903E5EEDD8A75E5A6FA117A21144AB5B338C1D4B35 9210169EA0726B14D99E48834DB5D15691FD9095FBE699C46C7E6EF3790F6005C05561E053800A B8E261C17CDF355646A1BF29414D666FAA5C1EC43903DD04678CD1B5097513C0C69EDCFA5D71F1 D3E540EDD11D4B72ECA6C590A57A41EF5CDBB09DEB1FDD6C823E10EAB9E6B9EF02F4045696D615 AF4E01796C2856F376F42940CFE098D303C741D0257EC3CBD7FF2D33ABAFE8DCEBFAE575ADDE66 CAE813A0451E5825AD0234D045630711BBC3853D130544E0B0E787218107450078D6F380303DA4 DE2A39A9A689AC4337D255477A7D0ECFB746E129F779D1F45F86F7F0E141923AD062E6FFC4134B 6B15B2811DDE5902AD397044466318B4356DACB9C6DF0CA786D3D81EAB52975D5C6E34D32B28CB 608D91A4833D5D35A777AB115290A4BFC8EBD24846736B0997FF9D5DC471AC673984AC8E8BA510 95442EF37C5791C650C3A50A2907E0447A6513359D001FBF3EEB4720167AE69D2A6E2F8D068DCA BDCF141A61A956AF4BE6DF3EA929843344F2E38951B9EE4D38D2E51A195842E61436C77E7D953C AB3FB8144AFDC371B0DDE968AB88493C15585570F7DE881A1724C0CB6E8A3433E6E85320ADC362 734A1C81C1EF9CEF1B863A803F96B5F1F61A05D61B9992E99BE5A52A58 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr03 %!PS-AdobeFont-1.1: LucidaSansUnicode03 0.9 %%CreationDate: 1994 Jun 04 09:58:17 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 03) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode03 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 148 /0394 put dup 154 /039a put dup 166 /03a6 put dup 173 /03ad put dup 177 /03b1 put dup 178 /03b2 put dup 180 /03b4 put dup 181 /03b5 put dup 183 /03b7 put dup 186 /03ba put dup 187 /03bb put dup 188 /03bc put dup 192 /03c0 put dup 193 /03c1 put dup 195 /03c3 put dup 196 /03c4 put dup 199 /03c7 put dup 204 /03cc put readonly def /FontBBox{-615 -440 726 1024}readonly def %/UniqueID 5054503 def currentdict end currentfile eexec E98AC76D0B9811AF896A7D2786CFE5F8CE68EC0023DC2681A7AF04C897A42BE5FCFE91943239A1 3AEB5296C6852464267094E08A45F9BE1C443CDAE11667C6CF7AB42711A6CCF9077E8A2D8CBC30 9D38A0BE6B8A865AA6D108DC56579ABCEA85FD25326DB34A8A3B77A5424AE4100C2EB6804EA369 AE0896E47334E66BEF4DCFA3CE9DCF8BA26773A39C77A33652D76918EA4BC304D746DEA74382B2 CD2A6283142BD4605E129465DA84867CDB60E18F858C99578A3DD3BACCE03A8A6990C27D045C3F D9C8550A2552A64F9F431169CC4AC1B9B275DD9E6D5F3DF5C70E8F657DA036CF63E714A17DA9FA AF96888F242FF964672AB6D9CC68989DB538723337304795EE327BAB72CEBBFAB6A376093EC250 7E6CC4E11275DB4AD7283811195AE1AF7C8235D220FAB9F10C43D291F873D989F30F3E2BD37AFF E5D4DB432C168C065D446F0B3D58981E981E9FE5CB773EE40AB01241EA403188FEF5B1AAE43FAE 7DFBDE6A367FC7D6F418E569D7CC7B3D20FCBF2687397122164A647041D12714798560ABEB8867 B266991761555A15A26569EB0FBD0137EAA54C1EE6010F0793B0896AE1CDCAFDA76DFFD032108D FBE81D02FF87E094C0012FDF048557854A7951C19C117397A81FD4C8F2D32D5AD9EB1E49580125 3BB1516DFADDB20EB7142443A1A133A5474EC8EA29103BE5554C41ECAFF76786FCD0FEE4971FCB 646F02BC421A7E4D1E5E0010A9079D17364753074ACD18630A5C6ECA43EC7C53C4B1A5DD0BEE88 9201FC8DFD39CD0C81863BD765FE7C8CA2A69D992034D8B8B9C3486D26DA6AADB594B6EE99959A 445C809D1D3EBA95FF9429FB957EAF9B9C7E3D814B25CAC10658218FE2993828ABD4C0A7650362 981E23E95B851A8CFA68B80D4DF911F9BF21343BD3E61DCFA86F20E96219FA1B9713677BE05602 A6EF36F450877DABB0E42F2DC22538C31B680915A634C6D34464C3EFFCD75E60B73428ABA3832A F9426BDC82D30589727058692220D02B5D64DA3F8F06BB80D08B77A455702FA9F2A3822698E02C DBAB8BF4E63E39D377C60853E3B8F7B12AF04BEB45AB27036BBDCF6C58A80E3B3A61563E026C72 4CD6E7C407B7404F301E7B1AB0EB210E41CD5148396089023AE9401C80831E627EDABFD4E30E18 EAE2DE1884D7A3813D343CD12F9B13D935199CD744F53273DE6FCF7B0F6105BEA2176D26B9E3BE 794AB2120BF13BDA3E056EF6D06F8E219B54E3FED9A7CD767C428375E40351E73663A739B3E77D FA3F36125473E7FA6FBF4A99A69AE1DBB03CFC5C71D2D941A15C1DA9C399EC307DA5D75C8B02FB 448BA23DB70233E83964B29CDD5101B404F505D6C8462A37DC5DA7AFF8145444ACD627E8933F24 7EE0163AB6CF596E882A8B123A102953DB3D0394840A2977DE544DA405D8299B2AD3253C188EEA F07D57FCA1FB375B9BBD397E1A500DB415964E518B2E2FF27A3480B58E320EE8AD0B76BAA2635F 3632B6AFC2358A3A332B773848742A11E957ABB886B3CFFA93999A478821EDA9FDD823EC8818B7 2BC26EF0ECDD2EE498D92638D2BC8E19A283C571CA8C886A8F8E647DEC4D6424FE9CCA8308390F 78F361486C56B9C039B14F76EC5BCD8472F4E6FF566368D5FB7A55FA0E887E9CADC5044391FFA2 21C598CC9E2CED7907F736F0EB8F12348D64EBCA0672BB8F1E651BBE785A09A34223663975B48F 90481DBA40982C8857DA5EFF13E9F5BCFADE13F02C4C5D4308CB09D6588A7BA7A2E1A4774701CD 65C7274D0E2F92AA0CA4A2FFE596733E61BD589D9B5E84835254D8F22DABCCCCE8D4760E13BC4D 6E85BCE03DFE296055EAC95B3523018DF17E8166ED03A23E1A7EEA0AF8C65F219A8F5D7C6F3253 7160E12174798BFB8AF179C70A8E43C167E1DDF34E47F46543CCB7991B65A2FFC11F4917964CDD C539C2E51E503998401540F23FD6A52F81F6792F2B97EABE2A74B9F58FF2C891E320DEE3ABD153 FA43F9B456414F8207600AE3DB5283BA7A0F18FC16C58766C58EC1AD813E77BEBAF90FD8D6F55B 25615FE74761320733B58B545D584826E81F2849E1875490F15B774A3A863A20BE5A2EFEEC6F9D 337E5133329C0D4E8FB4758FF97DF0C97127FBB5F4C768439C8B9F7DF2BF3EA516C268FDA3A305 BC2485ADB785E24A4BEE9AA3E7C82D3994C19249A3AD713FDC5B5C981A18E3D35AF4CE2A349C22 E8923619B85E3D3E4B314A1BA051A506824368F4CAAE420FCF9CBAD8B9AB38463229750C31FD8E B4042D8174F9C94830855B547B95210E59A601A076BEDBF121DFCF34440F65E46365871F3BDDFF 74232CA8267CE9864E4C4CF8D3A0AE94E57FBB2335AA4EF757CE11F554D8BE69EAD58004BE02A3 B6B8CE3F5C5CD23013BD57D15D447512FF69A9CD5914A73144D71F06550E93695F0F6CDE77C1F2 59AB5BCAE03478C9B172B792B16EBAC0F44F97C39FBA333F9BAC6123506028FA93F2ED96F88F81 8A3EAD11809C5A5F4FBBB62C25C9C5B68B82C1C9734DF1989B00553BBCDED535F6224E2F74E18A 29CE4568C3A6B0CF980AA1F7CA1F396D2DF27D4A6C8B9E104B5CEE96CC4CB4399EB2D17269B64B F50A3A0576EA17F41207717A2367094EC5D35DFEBA9D1E0AEEE710FA0E2297C91AD8D002E6C0A6 FD46D5D123BA55B2595D9AE0C0C730966B1BBE3F464379167D8A7B817782DA4EAD919BE0BD1D8C 61FDA8124098009B17BD4F4A0C189ED085CED24F05A10ECB9D96F2CDED8B5D8F10A4BA62D33F94 FF1FEBC20C9E64A7DB41218FEDFBCF94DA4F16CFAAAC9ADB9D24DC1958BA67D52F9625126D3F34 4C7AE7634B21608049D7D30D302E95726FA7CC91B445FCFE464D6E1D79389404F0A28F8DF0D27B AEA1C69B435B2CBC979580A2175B43F0CB739E86D778EFFB25D9C316903B82274ED9AB9E1ECBD4 03EA7EE377A11A8EC6A8F9599879878C704B25D4A5523F759D09FE3655FEFAFD834F9AA8C75C07 4697A890A38839FFBD754AD936EF8088D20629BCC0A9DDAFD5400D0C596391640FCF4A8F5A1155 A383F32ADB70FD8E5AFA66484B1B6895B6F2A7859537C2088DEFF14169DAFFDF1E0ABDDC646682 324828259958699EB1B21B7638E3CBFECDB9544F3BE2F00636906BC83568FE854E62D5BD752A38 084421CEC5E659D7A9BDE211E643950843A0159D6834A2258933F8C001C67B073E9C9BF7D8EB68 BF061B1966866465C8F7E1D2DC98F39F3A9A0096D62314636CED9B4E2E09225760A78B1C58A1C8 2BF342F7940F6FC838F4618898C313CCE6311DAFBA75B344143736C7EAE29D4DBAA4B56BB3781D D2DCC86BE5A4C4DE100BA03E4B133A239B7F6C3ACD1C4B4FC59CACE546E74591C12BF7497F908E BBFE7160563BB47FEEB502E3B5B21EF579E375BF8B29ED72640EEBD2BB10FA2B1C30ED5EB0A089 46EDCDDD233DBB94E95FB0012CF8BF944B683DBB52C90A08E5D53B2197FD4FBE9AEEF3245D6B9A 295445C148C20C597CB2F705512F3EBE2CA9A63E1B479A49DF54AA5F052283ED369865676C7470 1D7F3D4745944506AB5B2FB450300BC1AE7B0F9B0A3F1BC5499A53962C4143455DB5B3C554FADB AA6FE569A1321DC010E5484EFEC85CD8CE23C89C87D1AA2982880C56109F596DCA8258FFE48384 1B2672711BA606DA73552081C55D0DCA31460F3C81D4A8EBC7C55A487F2C08A986403E209E52B1 A38AB94F399D667720959DC10F9675BBBCA8BE368C3DBE8A3C82224DA3B977B0ECC13EA85F775C 1BAA1EDCD9E1C52E2169A10098B56C74E2597E5BBCDC693E27BD947033700DFFBA4D2BE22C8C0A CB0D4CB909EBFBEFD2F66FD53157E4BD02E8D027A060BFB1452FCDF79ED71245F021D29A21D16A 8D8F2D0B53DE50B6E98715D2042E2C46B7C3D77640170993596EB481FE6A6DCFB6FF046147C68E 241E62DD123B598D408FDA25A5FF8553B44FF1620FABA4610F905C7EEB946CD6A09D5EA961FDB7 9AD3EBF9836DEB52B4E93C4F1A1C89140272C4955908203C803C5803161AFB2C9B3510CE607F9E 2BB8AF8BD19B38D38F7942446DA9A92770333F8FDEA61394C4C1110CD91E95D3C4FAA33841D79D F1CA42B0115ECDED6CFDD92D36A2EEC3A2904C354206B987EBA4AD69DD6B5C7A45B96106593C15 F89796CB639575DAD7D277E09D347A4159EC19A8D881E6EE3E9093B51E9D9B1CAA1F0809EDC2EE 206F733C1B11C4292F75D0F37B25706AAE5E7900726478DAE756A7F59B4D0580D2FBC839D6F31E 086CF751F1017CD84AEFDA2D318835DFB74C02B01FB151D72C4A84D0BB976A2C35ECEC00CFB83D EBD59C29F54F229E087C1C6E6D7F72F32685E2AF4D4353499C399F2438D18FF0E011A0532CE68F F5B644C3D68754CA5BA2D48E0E23C80EC34F43468281AA347664D916F56E97B9F0E17A894DE514 9800C5C7B78EDE6A882D5180EF9F51ADA5E3B511B07A89CE1680963DC3848182BDFAF361D9A893 830547B3FCD4E412838E214A872EEA88FDE6298B15BB69FF9627EB37C27F89071F9DA74F4D6C06 37669C6C09BB543518AF798DC1B1A10E2D53D24C3A5B1A485D6B8179DDDEDC7B82D610766BC80F A1B2C3D3A4FEA53933A6FF83E85DBABA6F5EB94FC23EE28BA710427842803E0F375331FA1EC106 8C396CCE31A8D68B1A7A0EC87CC082A501F711E93B9FE3DFFDD8906566B7B25A260D1C64D6746F 80A2D323058BDA6BD4122F0C04B39A4FA271E7B75A1D8FF82782540193902C88CBD99E55B33245 069BDA735E4991447209892CA9BCF5802D44A09BE99EA64ED4EA1FA39B7AE10D8B47ECEDA33D80 F8BB0684F289746D5D2DCCCE59D4E6F48D8F7EAA81129BC47BAD6E74F4ED9B3032156B302AD7E5 C2F79E5A0A9DC77FB986BB46F4039152EF22331FB70C5AC047EC864F5EA5EBFDE11B5EC4081CD5 FCDAF37B47C5CC8AEC7CBF21939F89C998AD080B530E969D39607B30B5E4474206902CDED411E1 261FA85AA8CADAAFE9C8D0CA713066ACBCF385F4CD377194D26BBD5918096A3ED2C287A058725D BCEF5D6D2A0EA6300BEEF77AE3C6CC068649D077A38CA6884BA08B9523E51DBE0DE61CF651B7F1 27C93CF9A756A521276CDF6ED0FA7F4F559BEC19DD8252CB5409CD25F20D73D53375CA25DE2CAE C1D980C6C0B99D20E3713741A86003237A291A0815FA13865649B802C08B28312C61A95910F8EE BB51351AD5D919FB238D9BCB5C0653A14258C6899E22FF0FAE8B81804F3112C598D1C2F8860063 C751F39CF1B7ACF3DE9E9B6F6FCFA55A59D5516C173C90B491ABBC65EB3D93B416597F22825D32 22D9E6F5F7B993127288D3ABB7E966C9F2FA0E0A7A5B794D72FCEB0CCBE9A201041FE2338BF9BE 6241012E1E255327CCDF5FD1B0AF10626DC35C269A6E5EBCC697761374898384AF1B00BDF33A88 E7B9628C9A44435BCA110B57227D9BC9D8BF6C2F205A62E189E683E50EFD1F09C38E62B4B12426 2982074470A4CE35EA939B558BFD24593996AB198A669393B749AED33991D833F85DA040A04379 57CE47FE19E30AD150D7EBF3D9FB521ECB0D3C1DD75D45C180619E0131BF9636AD108C6F7F0F73 0937E3C8A4F788EE09F3E4A23078A79F386A7F638286AC0045F9D52E8D5AAFB1D4EE7BAE0B27EB 6FEBE7D6336241930DC406A45F261FBACAF975B7C4EA25E3751FD1806332CEA37442F99EB2BF69 C87C649F93C5EF9DB13584690078CF7BCA17543DA5F867C550FB219C8581F3DA4DB0BE951C4932 D3B65056CFC178183EA34389B3D28661979F1328A326783AC6CD34144EBB33CDDD58EE8A9A7DAC E4AC91FE1532310F9B36B17F3CC79E6878488AB43045BC5B95397CE872D1429ACCCA5D99953C63 028959839EFEC3F0A8E3052E4EB41E673F0FA73B9F82261CB6965C621ADD6DD858D7B2A8415C11 BD9C51FF31D1F90332E076977C6461288A644D66ABD8E295AECEA2F37DAFC4F096FC0AF34938A9 2C1E5D94A438319FEC694EE5E4ED1AE5C1FA82DDDA55C394C73CE39F18137370ADE011C4FF7213 95A444A57EFCBA18 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr04 %!PS-AdobeFont-1.1: LucidaSansUnicode04 0.9 %%CreationDate: 1994 Jun 04 09:58:28 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 04) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode04 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 57 /0439 put dup 74 /044a put dup 76 /044c put dup 79 /044f put dup 81 /0451 put readonly def /FontBBox{-90 -211 1024 940}readonly def %/UniqueID 5054504 def currentdict end currentfile eexec B947A691BCC86A8714868C4E8EAA6693E50213672FA40A24C1BFEB6B454C65D97FE3C8875CB7FF DB41FCDA8653D373718784E1CA8C2E52026C505028CDB223EDE069E4FBEE2F9866016FCF3C439B BB0802FAB586D7AFD17C75C2C867DC859619612A4199CCFFD6C8BFADBAAD892A6C666D828BC33F 4F4247E844052898BE31C94D164ED8D032C6F943D6ED98C08911A23F5A44886EF9C56C418B6902 CF632ABE9998ED7354C01793652E9AFF38B16675570C3F14DD18F4E0EA8F81EBA3B5A2EA1A6A75 2852B45D9DA70764044BA4537DB8B3E88BFED459F70BDD5F881C906573D7E01AA459D103FD3D95 D2C0D6CFC9AA56C9706482A513FCF9B41E612B7F6A70EB084A6F9D7BA73BC196B39EAC357B521B E3232A0CEC9DDF61F6A57661275C3E20359577BC2124313A4BD33BB79B2760F11A0CA7BF9AA8E6 83EC1146B0B2074D70789306AFDE9BC65D8998C6C6B28D89E7CF52E057C9E40738983F55D859CD 0D719713B944F82DB6F8364CE44A194C0B4E6E987C2A392DAAC78285ED9C29C1DF8F23842C6AD7 F2C362923E2E3C896F4759020EEE519DD5BE0603F7ADE8A7908B806799345CC450EF767993D072 238A614D5DBE33015C181CD4377871A633824D0DEABDA62756476A2E12BAF3A891001FFB69FEFB D921533AE16743B926BDDFF77BEE342CD2AE8AEDCBCA8F90A10779CC9BF24974B4956DA4895299 542E68FD9F5134EB2855709D7F684998BF878869A32DB0C6BBBE28B5AF1C1007AD68807513BDC5 583819F8A5C8FA338B6CEE5D696B0BE6AD4C132E8CD0F3A0FA8DBB22BEB7F21AC6EA9D2CE4BA7E F4A1D55FA87B7A57DF56D478B444FA969F3CA003267F1B45E69BE9210906D363A62731EEF97540 E5372A27983ADC774AD984B795695D3B164AC04CDF48FDD5697A3F855E53189B795887549A79DC 69AE4EE9B7DFC5732BEE8F9FDAD6008C6EC06BA5695492152EFB8C2A2BAD3D44EEC08617AE17EC B22CEFB1122BF202A212F998882C2F653D56F2D0737FFCF84E0D52DE3CFA539954AE718331109A 30267B8CF12669EB05BA116D01F8F01472F466D26400B7CC841BBE94EFF2C95B36C695AA91FE51 E2B1DD43A459E31E01017DB6D44ABA40FDECBA6FAAFF5D2E83219DEA8777A845F6E4F586E73B42 FB7116974F95E2BC2FDF85FD5C561AC5582BE899C9E85FDA05D02898659522A38B4F497F16F534 CB8E4EED100844CF77E70A0C9C6C18C99124155AF1BC7F67952DADF6FB324B9F70859BBFA5D191 D51D024897422139DD5CB41591085BCB8A9655A43A7BDD93D78C55859F075E58B5DCAC83BB00CB 815BE032EE24398C06F8F578B49CD897740A4DA7E6DA7DD7508EDEBBE1CC0AAFBE06F570987512 0A1B016A82C5E1C27E48B4CDD5F2884A5AC18AB5536A145A7A83EB4AAA9971865EB69EFAE5EA41 5A9CEBF4DD21A7C173D5BC38DB8E5C2A6EE01B504A3FA492A889B67F9E27298149153FE446F040 B7E2C781059C65967C51E23B261136557B76D675A79A006AD83F9E0A531C6EC6BAFFF9B02788A8 35AD5EA6C7F8CC684C252AA2E7CD05C0ED81B8BCA7D4C9A0485DE412915310EF3F8303F5F4E222 769DABE6CC59CBA5036F3B6B1881971217CBDAEB1ADDA602EECECA4EEC033A1485FC32A9F34C57 994BE283205ECFE0B241FC56D225AC40984DEA53961B7D43BC47F7D4011AEDB3E3D824881173B0 6107D6C34915364BA13D09B64F088504766072E48BECB0258F002BCB476AF40B5565393CEA08D8 0B86330541D0015DCFF19A3FF11DD0DEA1E164295C22677DCCA2E69987C4DB4273ACD833F1E8A2 90C7C7E83154E97FBDB5B28103DD17BC8187A0F82B0BEE9031F45A869161510B16EC14EEE4A90E 4B0CFF0722D40B3A54EB15AA16C4A9EB4747B76F3EB24093BCD34AB43651603328086709CAB4CA DC987A0F15AEE2EB086532438092DA0DB860C994D5E3892618A1D6D536BD6E1267C1B79D2B038E C3EAC72BF37A07F8338FF4ED00A2C096F2C6DB26E71F13E023D25D3F3E547AB07E837DE246E0FA 73356D30EB9E8C83D2A08745B3A238D1FB9F18CA32E2CDC93884D4B1F87854BBE7593C45B8F7AE BC916EC39500AAC2522595A0593F2B95ACE4EFD4A016D6D6D1172AC47EA3C92AE915608F20F0BE A10E875F9DDF6E0EFA32C3EE7965F34AB6CB670453DFE936D4D1CD77E44A1E01B81749EE49A4FC 7759CB1E0D30CC814E6AB9B51FF675A22577A3DD8025E04CCEA149E717FBCC8C424196B35D1924 3C562D1FAE2E2DF182ADD0AA15FBABCAE89D91A363D3691CD9E2C6EC022C34C1D5A6F0EDD6189B 59561647A60F07E60202401959224E551F14C940667AE193924A0A83F4F85D071AF94C79056CAA B4BF0453F2EFE718C7925B7D150F810156BC31CDBD19548B4365E214CC8DE2357368A8429A9D80 6C2CF8AB10BB393455B8EC83DAD41021DD2C3C8BBD19F7F086C7D4AB0E773F9624CDFA6FE0BCA5 1A581C845241710AE04EA754034710C1ACE81F3693F17A4144C886ACAA69D797DC781402C297AB 5D83D4CF37794E7186404A8597FA96FF43DDA263AE1E5BB13132DBC7A899B7E29136D8ADA59BE2 F9FF6DB733B428A2D4BC94024D03210C67A9DD92FFFCF7DD20DE16564FFD28F5BBAD8FC6FFB08B 8EA5C8183331931769777C502E4DD4348DBF937560C37168C6FB31D04483E204D23C51F74BA204 8409709D3B387CF7ADC611C68BB8DCC51ABAF46F4557D9A7D39472775F17F7D57FE5BE656B7178 54306B9D35A6ADBEA90A4CB0B4196045B01BCC454395C6DCCD91DF342E853E390D0A060A587673 6A7713D1BBB7EBF6BD15680DBD6996E69BE0A25DE4358BAA6FFFF20AB9FAAD1F62A773A51FBB25 9DCD63271013026CC59090452EFD867D24C4B87B30C8B338408836B68D9F5BA5444C5AB5075D38 1A8FE2FC68F3E307710A68163554EBE7002D15D5E5A8DD662195CFF998B7826FB58345A0C932B5 E3505C5A7174A649668910C3493DC2BDD0635275431DDD1304699B371FE983FAB90976279ACA40 6777877762511873E042A65E5F0D3CD63B692D22364A208B555EA28963348D2C2DE3BD025E54DF 656FC7749C9406325C809B36EF3CF9BFE641783D6B82DCFCF63482D2E82BB4DB6599D1771B6DF4 FCFB7803B5853A371CAFF56A1A6F7060AAED31347807AC7D0114BD90CFBDF64C0A0BE6D2A18883 CB9577A8480062E6849942CFAF4290F2BEFCD4B7A212F88B6ED02A82F4134C66609096E11258E4 6E9EC209B58597889F3B86F66D5678CD1F0A0260BA8305EE6B038842FC4244767E615E15626773 1006379D908D8048E94ADB70CEB5E6762763E8744D8CBE771B01BF51EAEEF378EFC38233FCE953 1ACC4F8FEB18E3164C7C834F7A253C0EA5CDD0A541A0E8A263EC6CE7810D311D45C018CF88579A 60864FAB0D4D6E8DE5D2D77639AA944DF27C99067D4FBAA626BD61B36F4DC0CFEFC52DD1EE665E FD87E73F791D95BF9368072D720A8E7069C9C9FA65D22B0C401115D19458883F4B37E631D6B532 8C7E5A10B6E3F9407FB6AB8DB7D25BD0D682B197EE8C55663AA50B6B20DA99B489F8BF5F091949 16DDF7781E5E437C208BD4C68F2DA4B4913C69DE358E9E8750F8AE45D8F0958F30FB7AC997B253 C255CDB46054EE7CE90EE8C3B0379EDE79009F6952DD0C29A682813B283A18E11ABA75DDB8985F F81377EF1420C3F93832DA217576D9871815CF0FAAD815FAA4B8D93862E0F7FE9424A40186E933 81DE8FAC067BFED22ED9A8D6794FD76B97270E30ECECB34C4CCEC5C8681BDD66DE14679A85468D 2C7952A33C265FB2650B1D8DC32E867A98354E21F5E644688285315034BEA5C8981C9B36502C87 4A3F87B5BF5BD1E3241B4056D848F46BE457752DAB938CBA20A7A8643C99E8A0719D9FF7422FC9 1F25BDC284D1F0664C6EA1900938848BCCFEBF2BC4A0E37DE2DB48C5311F7BB5FCE22C3948F8C1 AB83B98945A1FD7F8812CBCF8852F20D26B70D94D04E4C3B3593BE0716B016630E43C349B56F9F C17A9D19172C4E1220F97A7B350DD592CE9E8DD5481A3A0733B95C58241B333586198F375F1F7A FCB84E33878056472D0153459A5AAEB4F264AE38CEF24CEBA2A32970E642820E9708B137180739 0755DB1F6E830A73DF803365B93F815A330E307828F3FFE89B1051EF80466E3F2BC7C5D703D5AB 10F0411C20E72745A13167759657C8F68457BE6C9EAEFAF4C689839179432E36200EC7C492EF2F 76AF90BBF8333DE26D91EC67F32425B3655D2AB080D6F62AE8CF99002BDA6D369529CA0110265A E93FAA293D3E5CE6121C899FA575DAFAA8293DD6BEB7F8F5356B7076B38EF4E4DB70F004EB1FCF F2501A24FC75A3BAACA7E6D0706FDEB788C4FDFCA642536036F90E65F6BD876DB2519DF5085C17 E5474B454FECA74BF0F3684698585397E3E04847A1700307B25D00A2543C5F5AC662798C2BCEA5 1A56A0D92E1D376E01898FAF604AE6C3861592CE3CCAD063C628E15C2F459A6399556F582DB160 0C8C1C55FA94E64AE5754715B007AFE6E024AD0E96218E777E90794820DCE4FF8C0F936EDF0C55 2808CB0DFDA4EAD0F1FB144651891982DF671D9EDF47798A24AA5F0B33E9CF63AD8AD4F3440CE3 76B4C47499FC93F8277F3D22457B98F956C39C53D177F0CCBBB529A36055AA4EEC626A7EEED64D 646ED1FD0C3685CF4E2DE42693E7E212343B83FD75AC33DEFB9D16A1771D6D3622998E556C0AB7 F2D811339E89330348FBA8AE94EAD8B18BAE18CA3683225EBED1A4DF9EDD2FCCC34E74822966D1 D5F71D2346AB76CC3D0AAFFA3E3D57CEC007C9D892C5A82809976719F964186D3279D79B4B5AC1 F0333EBB8742D25644A962D02EC011FDFD7455120BF41418D4FD6313066DBFE5A0BEEDC59ECA8F 8D1FEE9199848433A584EB5347173D726A521859A91EDA4E2D73EE7E8C51339B86305C63E35E86 B4FF303B8B1075999B68513497249C62ECA2736FF6958EC66FB78AFA10532913ED98C1E13420FE 18C9884E3DA3ADAEBEB2AFFC5800668A2AE2752BD30945BD58C75EB522F869CD640B1BBD982833 F92EE830EBB96507F4762E3138243417FD2C4738FFB542D1B2A29CDBCCF9F3CEDF879CEA7CAAC2 570C352F4E4CF19D069FBE80F9AB796AF8F419EFAB203B930625C4FA2435D0760067D328A5641D 834A56E35ACDB03751B97727E4553057FBD08C1236E45C424368A7B1550A4ED7A5E6270190C60D F2E025A2E24392AC419DD2FCC5D85696A0B2468E1995C3AFDAE38058FA85E54DCFFCF687707847 39FC137FDF9D6BDB97E38642A6E6DBAE8B2E599069634AFA5FCB9DFD01A00F7174EBEACA58E0A3 29B88239CD746022D2B10A8BC3CC15CE973353C01D98D8B2D5AC9253CA5ACA59AF6324B5C69A7D A13E28170A4077709CE7B4B77B407898085D371E0F9207BB42ED043D8579D57F81156EE847D962 FBD8412ABEEA9B941AFC7B39A51391D02695C8FA95C775F8CA84DD46B2A28D1735C2C5228FF7B9 29AE385AA61818C2E9568A4F23F8E890583E7DDAAC4F48875429CAC2D54714D179355590FA42D8 160CEBDCF44BC348271FBDD219EB95D1153075C82383339334D05F741D7CF5F12F85DCE3A25BAD 6D518F3B13A0DEE4DB2CDEE3D284A8DF2F7B1C9D07E8D7F9D47D6BD6088591A9E089EA2BEF5B83 CAAB3EC766B469DF9640DFBB4C32E505EE2A01EBF2E7155729D1B9E205711A74010C6BAC48F73A 4CCDB21FD55BBA48ACF5E5126CE38ADAAD6DBF3EA6297C56EC9CCB98766DA4C76DD8542BDD1596 BBD288C262E48A15C27690644918944E039E9012C08E62A63495BC5C6E82285885A2E830DE725F A7C746BCD0F333AA0DACB4D044CF8DA68EB5A1DD7B657715562D0D3F3F94F0B642C06BAF360191 193F6ED4ED5F781AA5AE2DC7E9A6B73B182092BD5ABA6AF79E638152F7747E5938ED28D9C7D894 A5762C519DD6620CECC58B2D583D38B63584172CCE9E4D5B3737422ABB778B2B85E9F6C80D3CF5 FCBEE03C2C66613A8C5FFD6E5C2A4377472AAB0F1B93E7564657CEF1BA61C10849686BA4176116 FEA3C5F3F89C492C1CEAA310E9A8578B7C5439355A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr20 %!PS-AdobeFont-1.1: LucidaSansUnicode20 0.9 %%CreationDate: 1994 Jun 04 10:00:12 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 20) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode20 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 19 /2013 put dup 20 /2014 put dup 24 /2018 put dup 25 /2019 put dup 32 /2020 put dup 33 /2021 put dup 34 /2022 put readonly def /FontBBox{-615 -440 726 1024}readonly def %/UniqueID 5054520 def currentdict end currentfile eexec B43A59C23D31312E42BFF7A8FFD888C8118609E66724952B45D5A38971EEAF7AEAD27731404947 E5D485EF2185B7B28FEE76585E49D85250EB800DB5DBEF09999B470F9167BB8A81B88DCF399612 0C5E5C13C786349E7F44E018DDA185A7327A13F55575F00A7B68BA5390314FFC1BE676564A478B 1A253C30B407F07FEC8E3E3C46BC787775A409E084B26786F0856006E38AEB9E71FD27672DD999 15E5FF51153CD2575D5A841791BBB0DAC82FC347B4323CDA6FA02627CF6F313D71FC7B56A6F4AB 9D45D4EBBA4FF9F13323865378F1240393DF17083189EA6A560B78F670F31187E21DD2282A40C4 EC215B6E053C952A419363825F8074AA1F2791D599B236931ECA38548DF42AF21A0B93299C7A6B CD562A5D47894A3F2BB10DE3513E0101686157DCCFE12025B2F62AB48BC56966D41430446797CB 34EAD92D70125D12FD83DD10713076729FC32F58FCE51BAAA5865AD74B16825913B821284679E5 9C71C2DAF711C0E0D4E82BD5FCAD13D14E69C0C9E8DCE7F05D2A5B1F4B724498D405664EDC7CCB CCDA84490522BB752CB6BB095A3AFA53A75A04E8B6446C38CE1F543231B8E7A462CC128403A30A 1553F8AD4952935A99E6781121623F4DCA70C680758A89F19FA860DDB7A02B71B4265E4EFE5CFF F0871888F3C17034282B2250FA41A8529AD3CB49FC2F94FEDDFBED06ADB863F82168180A185578 755D4D43CBDF4D1FA47B05871CDF84694574CB0634E35C47C9B4BF695B573F8DE08A555F0A2DF2 2774590AA572463F9E2FB1510BBCA5E8F6ADC8217855D4F1D5C837C3CDBC31E1CB6F52CC6D0D65 05E59AD73924E4EB1B37E9C433BF0ADAC35CE1832DACF7FE538E921DA937CE895F565305535EB8 17575E443932C9896F7D11431F8ED21EEED56E490E157FF33BAD34EEBF76042168A86077AAF03B A2173A795A37E0BCE53179C645E8C12C0FCBE7C33CC1AF08C58567B83B602E468A8E635F0811B7 6F8E4318EAF2CC3C5DF01FD2A95662F00029F54AC7C8FC2B999CB46D6AE8D3FB1DC657C6E961C9 F870BC5692211F2C244EF9CCF84C65D013425D119F60FD2131271C5FC6CBFFCAE54064DE267BBF 3E03F44C47BD24364273AE3D94C9C818825440FEA0E06CCCAB1CE6C411628FD565E8C78B039371 F4F6618EDF8BBB15197285A8379DD1DE9B0AE8C580C44EC9A7A74DC4A4496A4868355BD28FD537 38C81C8060FC059EBABC9B8F14F65C347E47EBB861DFED01318BF955010A0ED66DAC569E6794F4 3425476951FA9D84A48D7F9075B0A197936EBABE6B9D3513B542E1646A0D32995AAE08FD77921C 79F575F40B8E813B330F1AA029FE6439D7505B9DC9210D43BA9CE32E3A14EF467C870B182ED37C 654DAEF47A595E363AD0BB939085DCEC7155829BBE1E1A47F1F2A4F3432E34EC91C1C85514D35E ACE265943CD46A79D4226BAB3BF354A04F0E182B759835B9FE8F76F505057869CAE56BA3350712 EB5103078544D804DFEA9DDAB528DD4939273645933425C0F64F7AC4E5D3B01D5D76CD95C65756 B48FF39634475BA737AFADF17FBF3CD5AD0E88F6356CF06EED43EFEF9B5433EB1600D38D203D51 A1099E2E20641DBAEC087D771323611E50B960C1B20EC7B1BC71697768A088D806400AB4CECC04 67AEE799328421391BA370FF34C617F15105260632A8C0F4B22E792247E390B1F564C6FE227B85 5A962A6E06E6F565D8D54F9887042237617FB78CCE75B0AEE938B1FF3F0362D6BC139C871D1BFF B8AA0877F9D3F0DB55ECEE0AFE6871E01F204332718A0EFC66EF197523FCAF46898F32C1B324C6 DFF22FD9BDB4DA9D95D5D2208CA9D67C6C13B3A3BCAE8AABF40EB224AB9CBA55204458FC526DD3 8380F3F432EE69266C02ED0086DC8D6053AB3D3330D436B04DBAD95818B0A5025CEF13C378A9D7 2B6C775ACB4833AD3570D1E76BD359A5A8EC9C4F0938F7240A1B663AA366A4FCF3C102DFB0FC07 994E668F503A0E28CBD1CFC49041562DA2249B608712EFC10C9A35E0FD9B346864E6AF644F07BE 325FC4E08F81E9E8A6DE438D3ED64F05A57D3693F770C2E139ACEAB73366F56A94422EB50F6670 9032FAB1F7ED83D150A8D26B45D8B59BF720D04C4E283A647065EC0CC0D55D9FD7C6502EE3DBE3 E785F49966E1099CE4596EA2F1CAFD038E882F05CD9628F74A9A09A5DE677704A12CD82A95BF7F 01A5147536FFC7EEABA0D288DF1A9C9B639350A266C42500696B7E925174AE15CDD011119E8288 7EDF23F0AC7EEA78E38104C00BACCED03A7785D88FEA2B4A3EC5DA4ED2D0357EEB43C4278CAEAB 5BE44EC6C777B67FF30140A391A66CF1B47778BC0D9BF6804E78DAEAFCF1C3F67760C94ACDC930 94E68CC33121CAB7A1FA79E8E14276CC001A8D31333FC78721C8368034B418756A9EB23D1F7104 43326DF928CFB2E1F9246CCF09F5D21537213B798D2B72893A8285EDCD48509C022EDB3E0943A8 AAE2FF11AD8B6EC442F30DE19215EC6BCED82C345467DF50276F8123BC061EB2ADAFA6CDECD1C5 5C529BD9B1ECE353EE7A58BDFFEA47EC30FF94FDEB0E465B7A45EC795797DE00F78E180B73B3A6 F5B3F35BD80882003053F618940DB675D846095F63E90CC77B5022E963CC39915CF3B95F8F5A45 4419ABFDAE6087C4EAB799A8A5F1CD7A234A2407A2C08DF813227CCE6DA56F6D1B081278C6E046 96CD90F917C7AEEEA3032A1A13993079F3C41DCA1FF2B300BEE78A8D9512736DE4DF75CEBDDC58 33F8D1555590AC92FBA63E2D59B80EE8DEC88CF78435CB4CA57D702DD144893C3279DADF5C6164 70EA7FFF87FE66F510ADE5B32019709CE6D9BBEA02F2BA243975E7800839D904DC09C2306A292B B812F8CC973D40810ECA109BDE38961FC2678BC1CD377E2FEEB43E2072B38621801D5ADA0A92A6 5F37C7FA277ABBBF372D08B834C737DDFD16B51190DD3043040B9C060A1828742BCF814CA98EA3 77DB2DAA1B027BDE291293D8CFC3DC73A75BBB4BDE3CD80FDA05E46A2CE0B003663A2003FAE55B 0535A681672F7D8FC966834DEC4DFE56D3286FF86C10630F9EB91BB731A9C2AFDDD4F1554C4728 4D68FE4A486EEDE086A565929B97FF763B31B5CE48678860215F768CEE265E157F1A44C3092FD0 48239B140F2F8801D05B76FC9EB969BB6EBA6D472F1C016B94012127975E20FE911529090CCCEF 4C980611502E8641568824AA0F18FC3CBC5C2C46DF4A310A1961427A7785EDC75D0DC93FD03C26 43FFE864A91F4F285FFFB5C74803081A71AD441522F4C5DDDEB96BF5A7080BDB57A22AE8DD9310 02D940551006B0863C4274D0090A9C2EA9516F291F4A833772CE2F0CCF7A92AE08BC02CDA5B434 3D8E61C1F1ED39A3614BFE3BBD2BE7C9C3A64F1F7FFDAFF51D3FA0357F672316BA9810A620911C 06393D472F8BFAEF9AC09A031C3A1A33816A77A6C5EA88AF4D4303EC449982D05ACA3481807F2F 0775C87DA047792078D7FD735623D86C37274CB49235A22D01AF43791078E4AE92AADB3EF71EBB 7C96F303E70F1E3F7569471C6A0FC9B9C59E4DC141FBE2752F6717F4A7C8CB5D47EDE806D835D2 8F48927CA3A3C38B1E5310A47943668646946991FD87BDF723BA535A587EC98F9CC86A15F3AF79 625C5E9A1570412BD515DBC288A9DC3E4194A2031707D47E54A1FFB73099356BBF4C67A22A71BE AB39619759800E4F9F4B558457CFD32E456D546BD2542B3F493A2FEB432FC1511587E4F5C0BCE6 3BD4CA268846F13233A6D3E22CD92BD8E19627B71EAC34CB56125C86CB4168194ED4E45FC6B759 5887FCEA79676EADACAC6F0A35B30B63E61C51DC92E4FD960EAA2105ADE6C4E551FB59E0381ED8 90AD55857073689ADAAFFD1D27AF7E9BCCD8078D62E2299E35EE4255817A3E7CBF4C142AC2F10F A5486FCB20EA7E6281F6FB7F91DF0A48B0547EE2133AC09C1E0700039CDA77281121975D84864B FB24A6F6E05F5E801FF02B04A8FAE6F682E7C9A705B0A6CAFD3A84698528921856038137A3D111 30602F28D61D26533FAC142D5A6F0D7C918D16BF3C1CA65109ABBED3BD897C8BFA4490545552D4 B15F6264FFF4B02CD60970D6D8F35A18295A2AEBAC056F768F29526958DC1E717FD5D6504E303D 1C36802BFAEC578F5E3F0D1BE9FF5B65B3AF6DD63FBE07432BD1EE72BD24C27C5CCAC3B95FECA0 AEDCB55933140D1041DE9F2AFA2ED9F3D4BE5D7D0C7F325AE26CB1FECC40CCD6A4085515A11F62 26 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr21 %!PS-AdobeFont-1.1: LucidaSansUnicode21 0.9 %%CreationDate: 1994 Jun 04 10:04:24 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 21) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode21 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 144 /2190 put dup 145 /2191 put dup 146 /2192 put dup 147 /2193 put dup 34 /2122 put dup 49 /2131 put readonly def /FontBBox{-30 -325 1384 883}readonly def %/UniqueID 5054521 def currentdict end currentfile eexec 8CECFA711B4939E41CA045BB7E8765272CCE317ABEAF2B07E70D992D651C41DC23B029563922C0 95FE85170451329EEA8C7BF7A2726EDA9D9C6D097F0F7FB11AE93E80BF8DFEB2012E3B9F49A227 13E573A8BAB0BD7AA774AFAA41B97C6C70A3BF84A0B468C41B70D35F1310A4BCF2B97287E2FBF9 4A30663A4DBB485672BB54D8FEAEFDE594B3B73220D0C873C546C40B5138841E9803A47402513E 8FF4F9343A0E92A13A04C27921E3EAAB23C355AB06A42C0BC5CEF70BAF6D687B5C79B5360DD42D B2C878AC8DF4228BB74DD81C6FEFF53A36279510E983BDCD1A8145830308160030F770C3DE994A 4DE01ACD31F1D76E3094B43F3316267B62B6D653546469CBD35DC8B1541372AACED3750E498938 970666D8B36D41627069EF1511128034B8A364FACEF8068FB8A2F7F3209E5A769AF14C3E7F044F 6892F9009EEACF40CA1AEC6F322861CD38A8CE6A110A5C348EC2CB376E5110065918A03C02835B E3E89B986010D70284A334D6725965CD86C1F4937315B5BFA1D7E584988077138480F1B72F2870 2477850CB729C71006FBA750B4989EC757A808D51431556B673A084E350A74279AB2E9C638F7D5 B6BE1D50118747D01A6F3250CB9F204E3B03CC46DEC9821867B2334D2593522BE05CD30CA6B75D DE85222B64269B1DA310838E5962A391BC8197808B9D11B877A50D431C25870F7043983E965CF5 0F5BA07DA4DD39F97069868D506F035C0DE343F7F5C12587B2B05CE2ADE6822C6C0739A54D5DAC 415135137E8341C4D37F7D4534BD8FCE1DEBBAA3C378C9C9CC083F3A892EB7E44144F118680E0B 2A94BE914FAED74B80747D013961C682A0C3A3F55AE7496F7A15786BB0AEA5B1079668EAED2527 9F744F8FD112A6C33DF4E1500520910769D69C8F4D659322035993A3CD70CAA65F9DAF1485DA40 CBD374802317B409FB464C03C8A46831DE7B04E924B9D8F5C5239CF99DFB7176B2A01C1A31AF6A D7EE0115C6CF9EB2AEC83901795A91D4563F32399E1AEB65ADE7B8248571668410AC1D86F71918 70B0FF9C844CB7E6352B01A2C169E37513CF7C37D131B042AE6584F1ECC680AF5AEFC74D2C3309 12C36CBA7D88E4D44C77EBD7377674DBCD9FADA92577843CB5B1C0CCCA0A9CC3BE2A8F4CFEE1DD ECA543A7967806B9F65C5337403864168AD5EED97FF91EA2A00BC4480D96D09080029CF4BE6975 B34B40182DA9DE77D82BBAE0007448F08DD19A443C3EDB130AA1E36D2DE61D809BB3508EB12237 E460F68508290E1DF4E45B652B0A2EA82DED7F3A5A05E9F6FE3CD1E8FE988B7258E81A243DA0A9 B677C368D33AA67DCD8BED50A86331179CD2A6AF65E164A925258D5DD67704B2F3D7B3A9797DB4 E5092122646EF94DE3FDB3548D60702ECE17FCEFAA298D9825EFB4CB96C20E5AE933A4F9E7FD4A D8BB4FFA426366AA9EC6DD84689F24BD858212C0D745D674D513DC4C07C37D9733ECE1D7F7059B EEEFBEA12DB1F8F21F6DB88EA763511B1CB80089383350F0EEF474F70276C7B44D075B21862115 1C4C8CE0303FDC81D848F74CFA94CB2D2F61FB99B92DFBC6CECC15955A790C62B3DA7654CB95FC 9EB2544F05AB69475FC405C3F0F1E80EEA5F82EE0B3E47937556C7E14CFEF5A58ECD7B975E519F CA80763297F483FE24B96F09BB0C6ACE0753EF674B62B6F7C2A301BC1F8C7D2A84CB9DBC68AFF0 7ED80EDB570861D23430D1A30653E5580B9B9902AAD063F04A700E801964927CF9943A074D8FAE A48CB417EF69C589EF625E46A55472A0A2B3CF9C7CAC86764E06ADFDBA7AC08812B171C4ED089F 3FD3086F97D6B96299E47EC1BC98C8320ADF7DAA7D384A128693DEC73675CD0C185BB260668E38 9A35204FA0838F70D1AE5DC74957D9EA2E2C3088D660580C20D51B212B6CC83D9003260FA4873E 0B88A4DA8EEC5AF1DBAE1C0D1454746F9014753E3CAA9C8AF20D97E949D8685D5D9130BF1A9F79 57569B17DBAB5AF2F08737E9A046C0BBAA1238D2A72504B9131401B96606AC9230CACF736151D7 E1F79E7E4F42F625AB66F02FDA6C31C497B1C2A2A0C4DAA420B59D647495B306723195DBF74F72 FEA3B0BD8C2A16E95B442FDF0B39CF601FAE4BB5AC9C85C1042A6C54C44B60B3A44D741E788165 2126A8235FB58650ADCBB265C349F5A93543A4F765C97225C9566D7C4DCCC6779E05D9827F8C00 D78D582BBC77E25C3A170C469A268B483BC3153D851FFED8A1911B6864655255515363D8DBFFB8 0C02180CB399D92C242F0F450766B5D7D29F59B5D7B47633C87A1B46EB3322715BE04BDB99E126 650DF431A9E8DF486C8C63F5F0D26DC24B9DED300D3107A814E4A01BE93CCB3694A99887C4F1A3 46DFEE064D27CA5D5899AD2F8B3915E304C8A4121A26C1B7B8B81B9841982F6ACCD03F249A138E 0F836D0F533153FCC8B3B4CEF39802D66A0EF0CE76F8E2C03D880FC4F44C1FDEDF0C50971507C0 7202C26CB4C0C1EBAE4AF043F2893D4B15B183B5B60DA901252BC6DE8D8DBCD54B418C088D7D07 3084C0809EA621F31EC5DE23374C5A4AFC2AAABE30A0CD14CF07914839804BC88A7340BED9C24E 48B93770745A08B2FD64AF52D5194D57FDCFF6ADCCB3A553343FFB2F82212E5152EC91D9F19F93 7839782E3A8FEED1128568C5D39AEF3638592F8321A7513B6C361D56EAD81E2ADC3DACE11B7B50 73EA40B36A9E042BDFE78E30EC5059549BF9D1BD29722E6FE3E3CDF81029F81E66C887B55A6E3A 96826166A1FD6D27B7B3B5D72046373492434088F7634CB45301F885909D249C2680E5B1AF7F1A 5C1A7997730E94D8A0C643937B284C0FE0EA447965A8942E882C20833C9EEA28D063C6B5C52F06 D9580E5387B9C87945B1990EF0537A00BDE28C42C08321C0730A04AB9A0DB8435F250E10FBD8F1 B70FF91E4B795BB353AB3DA14F7FD8B61AD2AF4CEF5775B16BEFF8E3198558F77036CEE8F21556 BB24BB44437966855114167168A2F45CB4CE1CC31FA04E39FE5F4F07A21D878DD4D833F2905E4A 541F26B1599463BAE2BACEDDA6A25569E27003BD478232E627892502ACAAEF3E61B56139542D1C 6D6A6B3873EEC2EF0BA2CB21AA0148F449697C43D3CE159B01827618C1E9A835186C2EEEFF0EBD C22D9250307D280706754476A9B24E141B88294CC88634E1690C5482E5232EC7F174256999DF02 FE1FAFA59C4369C41B8E9BA66699575035718309DC3409EF68CF0768E8A2AE0E5BBA760F3EB926 DD09D37641808114AA91761DBDF3D2BC64A42DABD5010465BD47597A69B1F88DB579B7A47563B4 9BA22E69D7294A81042FC2A57781D8FBB5E87E77539498BEFAFD98E3C1C761EE5E7B635AE93BCD E9479904AB3B3BB64EDB0C80CC2B04BD9295E208340BF65D55353BF8472EBC77 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr22 %!PS-AdobeFont-1.1: LucidaSansUnicode22 0.9 %%CreationDate: 1994 Jun 04 10:23:13 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 22) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode22 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 100 /2264 put dup 102 /2266 put dup 103 /2267 put dup 130 /2282 put dup 131 /2283 put dup 134 /2286 put dup 135 /2287 put dup 41 /2229 put dup 42 /222a put dup 43 /222b put dup 67 /2243 put dup 96 /2260 put dup 97 /2261 put dup 23 /2217 put dup 25 /2219 put dup 26 /221a put dup 29 /221d put dup 30 /221e put dup 2 /2202 put dup 5 /2205 put dup 7 /2207 put readonly def /FontBBox{84 -166 1060 898}readonly def %/UniqueID 5054522 def currentdict end currentfile eexec EC18885AF58F29AEFACAEEA59037C942D5A3FAB833BA43EA181148D28AB4B88B44CA4ACA1F92DC 003EAE53A624731252861B743FB223E6A26B5EA4CA4237504F6A6CCA326B9405AB85D95ADAAE82 22B5F340DF4D35E0A2CB80190E539D9C09EC6DE84EDF6E6DC6E40089958D58B17EC7357C0EB84A 61C5A04AB034973BD320598296F9A79CA937F8946E59DDE543CC946C528E3106DEBF61B81D7A8A 69AC62FC23908A8A656B8518CB8FDAF8A2B57C3C7D4B644754586A739AFE94AAA7B685E0B09EF2 C30BFEE0F183A420766F0BE21197DEF2C56A4BA47A2AC88C0687DCBA5494D19D543C8D7F43E8F8 67EF76E2E818ED425C61EB7D3EB50B1174995ACA71352D8218D3734BDE02F4A95E232BD4AD9845 09AAC48D0F388BD9ED89E3DB5276D12DB11621AD67DEB0F7CF2046A95D6147BD77893BD999663C 6BB6206F86C9E5BF1B7296EA35C677788DD9627D6385B6903C83B27CB461AB230B86435838C33F A32A0B5DF678E7A5414A11E4BCFF1098BA6A3A6C70AEC03193BF8E08C1F703E2B0470B171CC9C9 CFBBC16B532F551E32A6EBB545F8F16B4DFD5945ABF67BAD9AED02092F99DABD828C674A246A3B 50B6CFEC2542399D397121C09D60CD1F679CB805E385F3D63FCEC624B93BDA066709C669C50BD3 261D4A143B81F83AC3AD4052FA424782F1C8985A783C1BDAB4303948E6BA2C6F1645D1AAEF161F AA605149EBCE77F37B904041DCA83C92CC102FEA932313FCF28C23DA1D3F876F612EA30006CC36 B9376696E6D3C74AC6D5E39653C03434CEB58C958FFE72BE74DCFD7921BD8D29CB9B5D9462CB1E 6CA793A7E2A7F1ABA296877AD19BAB0AA44F0916866DAAEEB3DD86474882FD901F4FE785121720 80BB24A21D83C909FFD3ACBED7C3F97E8D434B4B3DBCC83A954037319D24198CC1B14695178CFB 18CC1F530CAEF7C5C845403B52E2A5CE0B7F158B8C4904B2EAEC08C9BA7AD693405E918356E7D5 1E87E2857B18EABB71256596245BFB5D3F3E547AB1355106CD33AEADDCC870BEEC170FAED7884C 82DB23EB4B99C4E856B81773093BF2B625D38475AFDCFCD02468EB11B035E4950C2E909EF0AC96 2C6C41D25D43C5653AE66D718013E922561CB88101CCA5E70905BC6D48B80C177F552BDC9BB31E D51DED3C0D40BC161A86C06F8FADC8449AA647EA6A83D9A5AB66E8CC4B5C705375CFE9AA94C1C5 6AC04BE22C68860DC51566D69AA649F97B43E557EE45E73B23EE06F851860CE6C29CFFFC95F561 165AFF73E18A9DE0A1660754A311DAF53146BBB751053D424E32E8600B50303AD1A7D9E663580A BB54114C9BF9E2850BCF12B5428A4CB8E458B16BEB43751E68BE952B34A8064CEF61452FF56537 EF56D18A3A3A3081029B7027600A1DC1199772F97102E7FB28DBF3A941729599B0F24A565C1BCB 62FEC5ED752428920BC1C60C08ECD8EB86AEF841364B00168456006B406FE14F1D4F338B142CFC 42BA7DDCCC92233212EC5B35E205372291B4FCA126E5FE8F6D4C8A37017DE0463D7261E98813E5 8B1FBF38993879ED183A30C569DB75D9644B0C6D237F76D760C3D77C7569FF8A1CCD752AD9FC87 3078022F6A3B1D749DB363097597C2CEF08CF19BBBBA4DC2AEEAC4312E9851639DF6FA9E2893B4 3366E631AC15951644702A58B7FF164C8D4137052A3CE699438B9B5FE2228DFD6B0931C6149B18 6B9F57F9D780BAA7835331B10EC5D837B9257044B3CCF8AE4590B23796C7A712C6F188E20DFA22 1ADDDC895EBEF28DDC6FE7C1086AB26B878DA3A1ABEF1E7EAD344CD7CBFA752F7C274E8E9C970D 744186961EE5717BD0F50B67144FD576F6B668CA608436053ECBE116CDE462509A48DA90D66105 ADE07641CCE083FDD6F161CDD59145E8514CC0BF34FB77B657A287EFF963E63DE600FB15BA6A17 87E63D3208F5BB859E650092902715185D69A11C6F73DE088D60DBBB98E70ED4B7C5D4CA9B2AAB BA91E81E20CBF4716D603416B399B856C46729D4AA83330CB528859DC68CD028CAEBF9FBBCCB5D 50CCF2D3323000855669842544A61CA55FC4209AF3D6187100C47F2681D3BB823F09D3DEDDFD89 C87B17BE0B0A0D14E75370C6D2CAB809BBE932E6718945D6933EBB8A24FD507906BC651216119E CEC5B916BCA6459AED96417AEEEFEBC4E71D76DC5B17A37B8945A83946E64B21AF0D42282B0E25 A3DDC555E709C80C5C8CDC5E1AD62B89A7CC1E1AEC962FEED653010E2FEF56EB5A14F810AEFE27 16F0A27E7EDC63A7D2E1C6AD410E22E35C8C923EFC2554355092DDA8113F6D9D5B5BEF54C824A5 1D7F5CA2CCD4321F9C3A6EC8320F9A577610C902B70B6B0EE5BD381D9A7C6B722BB55EA06DFB77 DCFE84A0397C8FB3BA4917521A88B43F9F12F81571C39ABE049D54405B96D0BBFFFDEDD0E90C3D D6B26D82D797C6B31B7FEC4BB0B51B2E8357C5CA8A6181536CC13498F7EF383B98281756F3D25D 6961D477191F00452FE9EBAB94EFCE0C958A415B7A8B0AEF3F072A3DAC3B6F1BC974CE0DC92A08 00EF65EDABF91DDCE2931A6B6CDB9B46E106EEBB1017E487E4AC078243A8441422FD61BE99A8F1 022CA7C9B86AC24E4101F46614E20749FA065C9F9EF8AB8D45DCB5632F7E5579A4EB5C44588E0E AB91E0FA25868A585ED5364804118B2EEADD52301644AB6AF821BD6E5A78E3BD4701D7211B4929 1EB22DA0301F61F69379F1319ECF14C6ADCF574657B6BA459E6FE012A1C6CF198250A7A9BBA055 06215E6558DEC8CFAF5F342975B444F98782CC674EF5E03DFDF803C5645F303E229448E57E3891 37A4703A784AE802B6D730C82E7A5981DC29B586174FB22E854CBBE4C359D27BEAAA684866AECC 6F33F9C1E0CDB2F97E32F7DE1C74CBE941D21EBB079CCAD9F45BB6C976331CCB1AE84BD12DDD0C 0245E24C556BD9DF805DDEAB76BB5B82A148CDFB8C17F97B70114107A41812EE10D16366444BFF E6EC7BB9FE286ACF78FC1C50369FA2E0E9BB26BEBD3112F8715651DDC05482809C0348B8834AD5 F8594197582B9FA1318E4908A108A08BF0163B419D0B20BEC4402E2B1E96F18552DD6FE45B9759 FCB8EE6A64B9D901173B3BB5D36EA3074C8065D37A7B0E01884A59841C5C208D924D8436AE36B5 F7EE7EBBD690EAB5AE9897B43B6F46549B6B41CFC6A5EFEB53A6E1EF8D9DF28E78D3186158D4D6 1C10AAB0C85FB5A9CC43535D2E458090AA80AA75F39B0AD1C02E3C103269E8A40E60832AA2B160 B78BF08BF2DB06C8D55C768055DB5F52D1F24A2599EF1F412DB23121BC8BABC1933CD43B0A5908 77246FD36AB18D0F0452325E5F1FD495499C754D3EFD68D948DE856774E476660F91577FA68756 CF17936C23246504495C072341C8AF8E7E4BAA8A5D7CAD373D9599F52A4D88C2F5DEB65A2B9C5B 6914C569F8CFF9164725C261EEC2AAE3C88A26BFE1B6327DF1EEF827562BBF37E8106729B5CCCF C0F1011864574E4D0E5B3CEA70B562F03BDDA49B107521F192D36ABC6ADA755456175EC9ABBBE1 E550C412239EC97662338E92253BBFC7D142570A6F22E212C8DECAC66B4AAAD9DF4BB681BCA16B 29B7FA623C47FF37905F923C0143AE479FADC0E27E8FA15B461509D847F02876975C6B3B33F490 A4820F9C43D3F0115C6157211CFF4B13696BE005FD45481C9E496B078389E01815B78C9402841C 45B721355653E4B64C5F226D114DC02ACCDE11E588DF5A7889B8670F1C9F40A5DB89A7C8E901A2 8EBFD43B24A5DB9B2F864C6A45F9DD7DA926DA86DBE5E2EC9FA04004862A5903F6A5F372303738 B42D7FC4A35941157DB85F26C8D11099545E57B0AAA49DE793C778B8E75F45CF566B54BD1DDD7D 17E3621418F09A96A4EA2D20AE83D88E45C0B083E0CB9F3D5FB7D704581BE82E3D242B3EA6A7A9 29B3B8AF7F5D20CD8303E7EE1CDD637E3DBDFA0B876A2E7B7106AB66779F1ECE9AB75E4C2083C7 C97B246EF9B67937CFE4DA2FD95A5E12D019AEB10A8B1F609F2426F53CE3A6573B8A13392D762B B2A97FF2B9ACD94ACBEA9A46D6F0F2C464145BC6AC740A19DCE03904FB928F29053493D4CA10E1 351458BCE3B003C4BD38C891559E363DB4F6189F4925E314F77E7900DB5285C87EF4E2C55B9A12 CBDA6762604F98B6D2209BC928DDDA85C5B5AB12876AE7D6864E8A242EB1251D6FD05F8F088A80 FCF304F598F9FB6AD997C8A5481BF577FA4F61B2B742FAF0BC932E886A961B060E6320C3D49D62 7C04EB0295A7DF9F8AF5F2BA6FB64AB76F685781460B35B7C510E3867DC0DC41179A1E8BC5BDB9 5DC54721AA06B8C2119A8617674BD10F0687B07D56DFD63AAD41DF660F600DFCD91DC80645C4F1 3FAA4A6C4B240863F6508A81EDF8B867C948EB7D3A7753A4731AF75F0C05DE4680CE216E04C8FC 49BC1CF193589EA6A33C25BC5B7155D4E34A43B49A8C37733AFDD714774E9E70FC22B40D6C9192 D073E2E9731FA2B80ADE7D40ADC5FE1ACC52952159137FA5B30A7EA95C39A5B6CA9F6F1B3598B2 90EC820457E11DB827E3D458C2E682BC1FB6B5E74817246B4FB47DF7DE1CDB835A849078BF71A9 7711EB1F74791E797B3E73FCDAB725C5898D5188BAE77432AC20087EF62211EAFBA46B91B295E0 8FD9D4C98C1331E4A1D7206A60F03EFD2E8925ACD1082FDDA8B2B6980B960C9D03BC754AB0FFF3 EB6E92F8A6D41954CCC7A6598CCA897057141F0ADDFED6F802994D00EFC0771E4B5CC79CED9844 E2CF890AC9F70AA4567102ABCC67C084AB818076D3134089E623CDB5CEF16E6AC89A1EC34BBC2D ACF87E3D7EDBC5A2FE1774FE6B5BB78FC53425D364919E8F086D07ED1ECA919F003A1C5C05B914 02086AC63F3546A34F2F99C88140F4C51096B72169B413043C366BA7BA2E5D1DE570FC1EC6CBDF 03658EE0AB3C1144FE15F8E89FF354E00261483F366BBA154DAF5E6D910F1D40F7DB4BBCF8D82F 4BEAB925EA8B0F5761B1517A2BFDD400E6B6B9605034688A7148596AA8F25B97772979B49AF56D 28B10146125B19AFC56881CA4BD579D649D104CF443E94B186FBFA0F29538D8AAC4EA3C1774A7A 64226D033869F1D821E98B9C9C1393FF35EC9A962BB8BFD3D8D062C086234D6F14D9AE028C2957 5114905FA35B368C44BFA14DE4E73A4D6C1A119B79A6E3EBB915C9D48D3FAEC3EF31B7AE39217A 21B66FBA853E750000D395A9BE87E78CD91F390C5919766CF31E45EFE678577ADB5931CF5553AF 54F9A0E9BE0428EACD715F7D20C3D75D20810C4C0D96BB10C14B557C201B954841501341827C1A 30DA27C34A5A4CAEAFF4A3ABA566249EB82BFB367EF41635B2E27133C0BC4BF6EE280401B00B48 87EE78B50E524A9526E442E2EB566F3ACABF1C60C65F60075C434367C67DA4AE42B1462BBB0AE3 9C83123BEB32327FA66C18409CAEA447B8F504FBFB2CA2EB0448691CBC3C1826AD55697611E310 BA84B3133D1240BA430B08010BBB0DD02A84FECA352324CBCC9AE188CD9213C2D513745D868C4A 6A0C995D7B455034DDC41A8ED06752805DE487375C69DD746D7F8940101EA49871A4B28AD792A5 69E76930C32568A9ECA82892B44E111ED0806BDFFF59EDD79B5BB11F82CB7EA201524E6D6D8343 C3EF568F33A450F8A25128218CEB810B4D4566547F2F0A0640D7F4C8623945E5755BB7B6B48272 96AF202D9F4B17A2B4CD03D961B5728C04E275E037E49FE8A29A89972D0061055357A40DFB5019 D0959C44E231D6AB8C6FCC8E24F5291E4B9C082AB5F7D58CCF25 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr25 %!PS-AdobeFont-1.1: LucidaSansUnicode25 0.9 %%CreationDate: 1994 Jun 04 10:42:59 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 25) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode25 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 161 /25a1 put dup 202 /25ca put dup 203 /25cb put dup 230 /25e6 put readonly def /FontBBox{-26 -236 1026 815}readonly def %/UniqueID 5054525 def currentdict end currentfile eexec 8A630409A330FC5FE1ED7CD3C975467DE475D113569CAA8B923FA3C5A4A5DBA1B426534896777D FEC0CD780FDE4F4A4B37CBF69BAFE9D7B1674F09E7B60ECB1F741B6EDD9AF78B9450C77EB98488 7838A9B1EFEC7714CB963DC0D2D7FC90DF439E7B2FD67B771E742DC7E7DB927415569E8F7DC363 784A57FC7AC7182B65E2B2B985E0344DA414383767D69F0072B82FF65429A625F418B9554E3934 A06F03727E3C9839A4E576E2351D0253B74FAC9084AF6E67133A5537926A8C80589A37F8ADA04B 5C2AC1126AA5CCBF23226508D011D14D13C6FFAC13BC42FFC82A696C06889B21F1453BDA33C3AC FF81DDCE02738FAE387DF215DFF6FF74471B4EB78EA8C9F24AD655490C27E6059414A56A52A9FA E82AC778F1210142A0F9051E5AE4B9E361B1FB91CA17F95CE918651919C7A235BECD1E676D582D 643C13D5912E896FAC77994450E36EB321BDB157BC6DB7FBD0EE4B0C1A420C2645ED9595D2D21E F387557875DF6A9D774DAF42CA703FAA6377C62B435A83666621A7C4E578421D8C68899952954B E992C6F613EC3AF8C2F4EC93A4AC5D7860448117BA2B6A968239B7DCC4036B4B1FBAECC17CAB89 BAAAC5D4362C3CE32E00409A6AB9B231767C1A27514E9AAD74C32EB9F6C0DBB6F839A28BCBF862 D183D1247828DA457DAC59A0CC0CA4153457F0DF3B5D6FCC06BCBB0B5919DA74CEB11DDF706F15 B342B26D610DA0137ADF11F3BDDB3189C9DA0F0E870986F86C61CCE3AE60F771B65DD2E920BD6A 5094FD2A12AB3A59052BAF45248C006D431F5B04C9071F925A7F52C1271E7FD3A7F9B60FAFAD56 8D8CEA6BE39066D98313C932A77140F1658FAD3B32F7418CA0FDF48BDF17F3AE6F095D34C707C4 9F50C3DFC3148BEB942A63A5619B94218BA5C1F63F66ADE29E1396CCF7CF7CA97788D73D4671D7 BB0CAE1B8E13CE410F2172B2445CFEC734F53A6EF3D3412C37908D22E3E80C817EAC0955CE2752 E9B2327A08895A254ED18976E194E85CFF852770A56665EBAC4EAF1F6808F6288AA2776F813D6D F089F25B21698D10A5C00522210F606F890760441B0871F31A4C0718527B68541A0314D67354BB 834F4FCD365DB2379468671DF697122B66E999BBA6B2A5A6D95E26FEB0E6AA3B4590D5B0C8F4F7 AF1CB7FDB904F10E8817F7045238C813053CB2096EE5DAC923CC9AB2DB9FAE17B2BA08CA49DB7D 71ED0072A402793C51EE08DC09FC9C27F2E15254CCF9FEDB998F0E3B12C60BAE7CBC550A59BEF7 CDE1159E1D6FA72E0026BE03299D851776F57069E9178CA0C53CBF939792BCA7CE52A3A90CA729 91180F917F1E21FFDC2E306595ECD95BE6323E539FC73511C7FE237C873A60B4B4E06C49C39C1C D1CEB9EDAB2891F30BBE64EE95C27487325C07F8F83B2C0CF8B394C3D0ADA55E4B4541A917B23C 6181480F95544F2DBCE9F22F40DC467F300234CCBFD55A919A7B4D7EF74D0C60E83F2627BD5471 97A31EF7AB8E8C27A2EC8CC90B846212BB79CFBA9DD702DD627CFB9FABF73790BBF5AA82450017 4E144A95706851EA88D454A80554853D7EDA089C97BD99805AD58EA333836351E1A6FFBF3F270E E36B9A8A5C98FB53B9B77AF49F3330416708C3F8C9623899CAA72E8812C963AFB98FBDB4596F18 32EE5FF6F6AC53B618EFDA664A090C1778C5D340CC2425184EF1AF9C6A7BC52167584CF057F737 006496131A33D19C40B00B4A728904CCF6669F1AC17E354B71B9D6BFB322CFC1DD2E3D66C97FA5 7886ED6A5455AB1AE8D51393C52D017C5586EB16FAD517AA4F76B7F0E3913C235A5986A767FDBD BF04B397E7150F9CB9EE84BC53E65CEF2E4CF91C0C819D7A4860E35092E3EBF647B323331C5497 A980FA0E95D21A0AB2D89ABF677FBBBE1811983D6BE163609EFA447878A6B9ED22479CEF8C9D19 E8683D22DDA81461371B0D4A2F993B9ED149E14BBACAD0AED92C0B180E46DBB02F8F658A470ABB 3688C09C52006DE3A6264E0F33E92B1C6F69FE0148CB284DF2283638D396E5F8C8C7FB2A531350 F49ED6E90498D2C30B6D48BE680B04C6CBAF4B2F92347AE886270B5753D12FE54A8CB0EA003022 0143DA37757BCB85E0664D61384FAB84DDDA0468702C397BA2A52098181BCC26ECF597DE542CB8 B1A0F199032BA329EF8185D97C9B536BEBDB7A9588D9EE830804F0245FF142D4BCBFA74E1D2AC6 BFB24ADE82B947BFCF2AE083638301E0D52D0838548B9B935B52BC5F3B2FD8AEDA7AC6A0F44803 0CB7E258BDA85320A3D6D3EACB188956D3FC231708134DE6EBE2A296EB0F07AF58E5FC366472B5 03FA40D0156FCA4320BC906DB75250AF4C55B9DF5410EF3ED0DE8A7DAA82A8762F456BBF97BC78 3849A1C9E1E9A7EF154084EDFB53FAB120D5F4A68AD4D83442E7F6ED51F251793E1F5D7504C874 388E61CA7F9120C55228EBE6EE837BA371361407776E82796F5CAE390FB05E2FF92984F15170EB 89296050D3B5CA30D0ADCD59B9D666643FB69C43B2818F03F0BF529A5E68FD043DB7DEE7EA3C34 0FDAF3598037C8C0F8657F16EAD01930DFB8A633572D6DAC96CC22EABF4361A4EA443E55102E45 C2A7443BC2DB4883B1BFAA58343FAAA48E347109B9F5D306E450E0423320763CAC8F4B48177C85 11F6703A383803215E520AF7CA6C449C4906FCE3695117888844DEA4A505372010A0E130FDF705 A37E1DBC59691D785D37D40E737AC708881A603BC0D97730526138BF428D951AA75579D159E612 F847418C23DD120FBAB2CBBFEDF9BC3B972CD59132C313D84F5CE45B0740BA7ED8086165203068 689FE81C9CB701D205C815A8E4BF2C341D264017ED02602ACD5F6576CA7606E51B3EB22CF7AFCC 3C466B69801149AF48A8E012CC75559041B984640EC5F8043A14D70ED3AF1AF7395213E13AA79E A3BFE238CDA1C40BCD49A006252ABC5B19EFDD78BCDB02987FAE 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsi %!PS-AdobeFont-1.1: LucidaSans-Italic 1.001 %%CreationDate: 1993 Aug 11 21:10:09 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1992 Bigelow & Holmes Inc. Pat. Des. 289,421. All rights reserved.) readonly def /Notice ((c) 1992 by Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Sans Italic) readonly def /FamilyName (LucidaSans) readonly def /Weight (Normal) readonly def /ItalicAngle -11.3 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSans-Italic 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 54 /Aditi put dup 39 /Alessio put dup 41 /Ali put dup 43 /Alois put dup 173 /Ammar put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 33 /Arne put dup 59 /Art put dup 61 /Ayman put dup 63 /Barry put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 96 /Curt put dup 89 /Cyrus put dup 234 /Glen put dup 189 /Heinz put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 60 /Jason put dup 32 /Jeff put dup 62 /Jerzy put dup 34 /Jim put dup 64 /Jiri put dup 36 /Joe put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 42 /Jonas put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 88 /Kettleson put dup 90 /Kieran put dup 92 /Koen put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 126 /Michael put dup 177 /Murad put dup 91 /Robert put dup 93 /Robin put dup 95 /Rod put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put dup 121 /Sebastian put dup 215 /Wilfred put dup 45 /Will put readonly def /FontBBox{-250 -211 1099 967}readonly def %/UniqueID 5029007 def currentdict end currentfile eexec AE40F8585C2492B57FC8C19373E315912C0135F3613C38B98FEFD06419749A2EF936D049568E91 2C3B4814601E6F1C68E63168C5EFE4A12F1C972A88E59D27C31A2A9C0BA365B6FE3266DE7CD0F1 1D5F0698C11E8C1D4F1056410F924EFF7F265CD09F63373FFF21407562BFA055B1BFA359C5890A 384338F55437BCB13EF47EA2FEB34874DAE99A2A8CDF087F076588CEF4F5F52D27F99CA2FCACC3 B00B2DAB26EBD6CCED97C1076E2E38C1C7179AF884D34E5981F3B13BFBED7B35D318515DCB2A38 02E5402628ABCA3D4BC1F4808D32312ACCEBEC95EEAC23DBDFC3788D91B5D781933BA1E7A9E7BF 693D5DA7A9281F1C6A7C34E8D6A8145895DE4B6AFA59BC2F66198E226DC29A066BA02F4739FEF4 FC344E81EDB55226B5E16AF7282FAE761F3D9F253D76D6442D5CC7CA3043F7B37D5A34A905ADAF 242097EEDA53782431445078C0B35090520B01B437F01D891573DF402A427CECEC5386F1603BEF 05EEB7DD5FB545BE8042FDC2656F47C7ABD12DF9DBA59693E4F9A554FE067AD8157D2BF1EFB7B9 1C54F92B27DB8FE4AF1572A8E3131A5FC251FC8F3D5918C30B18337CF3CEB9AAC264E467F9C4E1 3BDF64763DF9650B0F6A3FF6092F2241B1DD69076E3878B875564E5EA253BBA208DEAF32B48D82 CA70B0D8FE5181B29362D1603FCD82116B2FCC77931D0E121CDC23CA762E8C9EF47EF6780EC5AB D9CB39BF6BA8F4D191F9AAB5965691C4346624EF1559E151378A8EC69A126FE29F5BFEF6162653 B55AA546E4779E7E60288C059D2DD6FAE507F6E01DB910D52D10EEA2762D59A01C2F1FA458466C 07AA5A0980968990E18D71F0AA71BBD17CEEAFF025A16913D1BA4D5974D6258BA0D1F934656B65 19A3AD2375DA469B27BC108F919BE01C833BB6CC59AFFA34F976382579EC5253B4610F9143318C 050160C7002E29656B29874C5BC27700C912C7B00C1F62458775BEAF10C5A2858456FD04C5B6E5 B790085D9F584195CC9BE74E7DEBDC57D5084C3CF8168D7B194D57EED9F72AFE24EB78A7CED489 AB96EE6F2CE148C3C8CBC466AA2B35B36842CB48476D303A7717C4369F803A4FF311D53F1A0044 B5A3B423AB2D6F361D233CED47B79D579DC4BBF97AE7E6849CE72B35CA881B4680F073C4942FB1 04B110CD36C12B7FAFB9F8F03EF419A1A5CFAD1D28F13EF057C795F53737018583F52474008775 5141099E0C46D3A7F65540A05DEFF5A0A1C68096CC39FA13354863897E93F98B98E2C53A693C2D 57AF95936FA23B61A55E26214D5B2337C4488BD6DC93DDA298FD77A80625C917D9D432EC1AE92F DF42E184BCC2400C51465244F338DAD00BF384DC5910AE26F964CBB75F091609E73A3A96D8D07D BBC4DB58148E2064C50B5EBDA56DFDA7679C10EDC505D6816B86241997582D77385E0AFD164AE4 5333A18BC4FB8CF818CEF97158CED9628B78B6C28BE08E747739F924A7CC9C9EC72FD12FD5BCF3 2D200E0FAF7D7C8F007C84EB868C2118F0A159DF0435C4F9E432F5F7DB3766CEB23939415E3709 B1E5E14996C0B7123EC993739ACBCF6B28BE7628D11843B2AAD85AED50C9D82B5151EABE73505F 3A1C103B7F02C0429A32F3376C13863C347BC07472F6CB82B39EA37525A46B95F9387E654F8076 EEFDB79193E97C16A69EF102ED96F180F44586ECB46F45611BB4FA173B4C8DE27E2C4AC2BD3E91 8441E44FF42D13F9C119778806FFE56B8ACBDD4537C981571639C5D9D5522C822DE5F29B426B83 74E02DE01D2A2B30281676D4593C5356214C5C6D3FC679395E0A838A447B2BC803218F97AA6C92 EE62D3600680CC93187A2D8DC3D7616F4928CBC3E8C42BC5536D00A0F1D3FB114EEB9DA1B5FD89 50EF78BB34E7AAAAC3AD105D960B3AA743CB487AE7D000E14C5BD14A2250AF406174ADF67A0BE6 7D62771A8D6283F574F314FCE1FB41B80275B825066BF711A982E58E8F34657DB15E29B20B5EEF 6EE8ED0BAB63458DAAB556CFFE712851DA37303784F656309ECAAA93185643264ED4B7B6E05829 67E94B9311A2636F0D6F18BF83E5FE28C81DADA7046E5D485B6A9754F679F2851C5C3F4071153F C25F09DB849C09E9CC34A96E0DDE7BF692895D4B6678A1FBA8DF90522086D5C64715DE5FC26F16 B954EDB7C3A0A72F1278341A1018286562228E2EEA26EE8EE340CB332B43CA68C65A2D57FEB45D 0BF8EC6092219E7EF9CC649834D297EAF3B5FB00F2F83399311AC5FABC8761A13575B0C4D917BA 0AA75C78AC3AB78AFC746CFD5FEB2B91073F2FD8D4C2A3A490C94BED5131622DA474A860B312AC 4675661BDF91D076228D148270253325F12147C5A7FB25FAD15732E43004A70F095EE3AD448D9E 336CF44C4D55CFC772C92E15CEEC2F56A002A6E1670ABBB074DBE0CA55BE5D1FE65F5A9FF90E1A F4A4B5455B9F3A82502C4D860468B7E7E91A77FC043C44E19211A96D8EDDEDE29FAAF156AF6C71 CA2D0D26A7AA68A2A0864BC236E3B410485D7CF2A51C3FD22A147E3E44E723CCE629A3E67F5321 6BF328C2BE130CF9C05260E4E5FBE73D9C2032BEA5AEE7B0ABCFD2F6D9874B77D3B61AFDB4B300 55A0033C9EC86962E50CEF67EDEEA31C093B3A429D9AC37D58056FB739B64FD22BEAF7955D1A12 4E1F5F81C2FCDD89432C15ED61285B1D300C10714167D1D4DF9C7B0646BD825805B7E6F21ED4A2 06974B556EE6306C84FCB475F4F242C440A41B67B543BFCC178DEF4E58B739ADF0E14D4D0137B4 F48BC39918599A70DF1F0DE49F6527D25ED35B5901B2EACB584E8F29DE5CCE15AC1E31D4A14F43 CB2BE1150D22AD419EED486AABCEAC25F01BFDFDBAE2E3E4C899B3291897A638B4420960CF7AC2 F08236D1D7747AF87A207081CACBF00A0994C2F98EB90AA3F4211EEED6A0425C6BC0CA31DBC6C9 DE03E02A5AA192F0187C822AE022AB776CB891E95BB90BB89C07D34A38911A34BA591D78B7DE83 6BDC01BA45F0A66D735E317B06AF7EE6E817E98FB776EBEAEE6B8AD56FF5DE1134B7EF55D87F21 057F1248CD06932F6DC349D2E9B1DE0B81E300625E370770C548B89FDA0AA4F8B7373426A4C8BC 200F54CF2A587DD11ECF76E2E324591FCA3817DAA9B3FE117C826F5B53F24C722F766F73903C58 A81A2067F7A3E8544B64E26BFBAA0AF6FB10EE8D4E99C49CAB1B397E0AFFA566B007330EE54DAB AF0C044E8FF8CBCFBD70A372C5050F02AAEE6E2A648771A199A8290BAF6ED4AD485DACFA5A4937 CCCA8B4D03FE96D7CBC7C60E6E95B53BDA2597C66168D3564D1BC6617033688510AAE0F6DBB16E 192CBE34F5E0364233AD2A2D0043703A48EE02E2B4576645BEAF3D44622983407461F2E700F3DD 51DD10BF742D645F22700223960637361E88D79EA8EC0084F5F20D0BA3EB94A7B5EEDDE499A39C 1D621945DFB5937A31BEEDB0E2DE8395EAEEEC4A912825EE2D30E06A351862C9F02711D38F63C7 4BAD03D267BCA956F029F2BD396A577000AAB31B00B004D7DD5F6102D7FE0BB8443AD768BD6051 CBB0F6C74FE866A2628789EB0E2044F2EA6F0D1686BCF0BB7F245AA757A20EFD93268FC1E140DA 35E759443BFEB681CA8B10244B4E395F3E9A151A5A3D74293E5EC0A2C2D2DF37132705FED78742 8C5E876F567D1CB77F7338F70B3FE5AD1F7D9D6AE6AEDED983B638C5B1F6284BBB8911387C2CBE 51B92657EC57F3F28F9F71BFE582DE883F2F24A3E1BE90D5DB001E7B69968AA2B8564940A2B3C8 3EECE73D1DF1A51672429FC169488D329D8AE41E0D7E557F6678C6E36EB1877DA3B7AAB89EDDF1 54AF743BB2FB8F4EA0AF7E8761F3EEF6794FE66A5494E74F7428EC2D47149F05B8E3CC934C46B3 8739D1BEA64A39C4AF8CC42187FAE682546468FE3C68521D074555FE83FB96B018489EB12C7437 9EB97E53BE86318E53494DA7F214B9EEF02B1843DEE3D3B7FD4F94986F310FAAD236BF55E7137F 8B35712AD6C103FFC59F05AC12629D2CB39940395C9683B49D80D0548A17D45A422F9BC0F02112 DE3AB03E5CC55DF670637BE7E4F0ECEC9B324CC26C16DA89550D80C609134B14E9C5575662A309 783794C673B64C3C62932C64D9D9F560CCBDB7BB6DDB1A0D67A6C1D09AB7BD60348F91107F65A1 3EC3149656CDA201356CC2AEB313A97E203C8037C9D5C5A70A50DBEB91E8E4B54EF9BF8DCCC033 23F8AAE82CB2B60737C52832DA384B02AD2A1D80EEB88AB6ACED1B44AE582B9CAB881E44AF4392 D29F81A30B430463A0D48D26ADD6D7896EADE1C0E82DA83E28F414BB24086566EBA2BAFF475CFA 123D905A8A307E135DAAC8735B833005EE356EE627C6B3544DFED3D62F25E88429C244288ECB83 6733096E71F85E602FB5A77E7807381D0F3805E29716B21D21AFA3BDE43C3EAE43D33082F2F14F 72CABDFA02022D3146A2AB88719998C6EF1984A5891EA63E47C995F5C484D8F3854A79AF856F57 54E9DBBE35668176F67FB1ACB5238423D2E1396E7A4241574033C78F342D11F97D8CA238312129 0D467F2A371BA35E52024740F82CD91A23525EF0597B06A1CE57C7D568B25A96EA0E62756F5E07 1A63F9D2C22E1C3806B2F150A57E5ECAF61A999E3573E613F94591FC4B0B8F4BDBC7D2619E800D A2CD525EA0B722CC25C26C740265774CAB6C3CF110C6A1C7BB9F0A2EA2D03CC8C483DFBBEEE0AE 831A31706F790C0F695B926C89081ED62B5D5E1F02F405DC455751D87BF06CC05147D56CDB03E2 16E4EF39CA3E976F786DEDB9CB0FFC98E3B115E4BFF4BD63C2BF6D577971ED3FD5525448558DCF C4D40E681C9FBBD650712C69FA78EEDFF970ABA0BDB69E33A8DDF3A08BC0E4DB8909A2DDB35096 4FA94F03284532ACE8C62E8E0C5FC06EF66266944FBE4C6C239CB66A4445BF6E50E1221F8C9BA3 2F11E198D306F31DFF8C9CAA5AEEAAB08B30F0ECBCE3CC3329AA58B1F165F151362BE3646EF3BE 6120E2B618135127192D4CBC77CBD03A83F6717133B61DA06E2118AEF126FCEDA71A426B6801C6 C70AE8192EA70C6276EE360B9D89388C37D075644A5009E4450B3E6F88697DE0C0A2E6A1FE58A0 72422BD671FA241FE11788AE83F63AF4114D06702D251FEC634E562CE367948521FBA53344D5D6 18B0A9A2C5E013F8C790BD5DE8AD289DE859768CB488D06F45DB114FE12B2BA3FCD88099F955CE 2A3ED377192307CECB2E7227DB751776DAA54BA17F5E7137E1AA1F1B6DFFE782F715FF29E0C370 76BFF950438DC7B7222A67238157D769C27F48CD9E39AFC1B0AAE6E670E20E982506FA564ACD52 9D108F72E9A615C61907F00F6DC9B3FED3D99380B99242A53027A154891DB04C3ED328DC4B188D 9080BDB06D9513098D1C8A69D844320CD494DA7DCA8FE6B008D0DF6B3121599E951AE22A9EE37F DEA7A4092509F1743505DAD2B07E1DAB21D84038115C10B5EACCC9C96C62A111AEA09B3259BDA6 20202DED8FC1BBE20A8CB09E7C77055A9D0BD7D5F39B8F065B290900603EA23896CE2E7438E6CF 63BB8435EFA37FA35A2588519FC79533D3A1C1B376EC7BBE92388C3F3248C5239C4D21730DBAD6 65A7785867BB355EDAC969FED613A52354E97501D56909BAFA0F87258B068CAF0907464B498861 1D3E7E80E645F7AEA5DCBA04CE122C7A47007A73E725DE31C475A57988CE41BE7D1FE972A589F8 D9CDE0977492E07457698B8E9E184A70EE761583058AC50884A880936F001D53D182CF9605E588 92910AB45E3C752B6D266CAF22397BAFF1591976B6DEA208495EF675876E92ACFBEC1887245048 30F05659B2E73E8E049647F4F28F529684085CB30EE66FA5929774E49C15875493F661B77F0C4D 6391EFE5A0D384BFCB2FC1820130E2E519C3715CFF2AC4B8A74E81C368C55FB5782ADB9BF9644E 2FD416320DD3C6CBEC64A992B3FB79991E62F129D5187763E7C7D8473F963F43F0D70A8EB508B4 970A1572835201AE91F48B7FC35D0D12E7015CBD6DE0677D715E0BF94F1F9D3242F8600EB2B4A9 590BA94CE6D342D9342057E69E0B71175B475F9F9FC8CDF962690867B6B962989D94B7CE670CFE 23D28E1197AD6C118DAE3CA2BF62FFBF5A6D03C7E1D85199908F9DAB1709E1A3FA4C1D18535AE9 5306E0641C9C328886C72C91B49B498202C8B72EDD5C7F5DDF178584A24E6A89DC9EF5437EBED1 CFD46ACFAB9678F27F4BB80279CDB62D9A23761E70ACF40ABEB38BB3242FBC012B8AD563073BC3 240C6AE167A56B084DABE9096EF07C38BA3E6D380E2A1D1CDED670305CF0EA1D070E5FB8574D30 8598EEBFB0C6FC907E25108902BBAD331F177EC95717078B97EDFF258F55793FAB9EDDC508FFC4 719F491D791F5D8487FD5A31992A1E6E4DF7C82AA1BEF383C2F74ED7163AB6DE334D48A11520BE 2B47FA5C0B07FCEE735F63CCAA25507A78971012EC943DC2D1607B3F44DE13882DF23070BC066F F74646DF196E1688D7350D7672F93691FD5950AD7ECE2FBD6D4B1CD777C88DFFCB90B57F9C829B A0C9F061F7DCC650CEA49D70B440B84276E432FE47D7D4D67C241F8097469638E4F5076A65FF5A 15FBE8690B4F6788E843753F6D961043BD8C7908EC2A2EB795AD2955DDB8CD9B6A8BCB3C2BC673 0A24CBCC79F15D44A6AD0CA0856E661EB07890BD79E93FCAF93AF80BD1BDF915B799C9118DE981 496A963B4A9498E11893F19446FD9AAE7E4B4FACA51601F5C54D46E7DA49750FE88F420E9D7325 DEB5A6B091469240AD0DB4537A46E71595FF598BDE54972860305F59F593CBCB7B0B26130CCE19 E0B553E8D52B1953AA0E463D49A01B3B2B588044D423418A58665DC05B5AAFC47E264985934F03 C358035E5E4DADDE030060BC07E7F0526FBEEE7FBD26CA50111E8BE27FC021214AA7BC8518E51D 93934E23270DBEED1246F623EF50C9B12A3A79FD2425DDAA17B4375FBC51A1FD8A7A456441C5F5 C8DCE1A112C00058434E3250B841ACCFFFE4EE5CE4E8DCAD1DA76C39CA24EEF79A2297B70D6AEC 75B3179FBFA7A4D90B4522A0F4243D14FFBD028961211739790B55947C4DC63F0DB959A3AFC7C5 65D672D80422330AAB64D51993BCD2A34FDD8B1848F5C400BF5236188C683BCFE47412108B59EF 41B7465B020FFA6A9BE53269B4F8AB5FE2A9373C3AC12A740EFD72228AC156A999C6079687FE52 19BA162C917DE80869339BC76A9D7DEF6224AAB13F1E17BB4FBE9722B94DC84256529932A33391 D085A85A4DECAB06978B9166F075B51DACD371F172D428081AE1826645F9A461C257A46BAEC29D D6848025FB7C6F027D67A89EB217AA9879DCE693729D36171F815C3C6967F8DDD4A0EBDCDABA1B AE3C7901A071501004DAA11EBF4E6B20242EB6C4932403A6FBC9C190C8BB789CB3C3F2DB0CEC69 1FA2A1632F625FC6A1E91CDD863CE75338CE56B6F8863D77FC57B211D413F75B2F7C16F5392015 C33B55B49BA91C9EBDD5AECBF97D80FFF1B84488FB259623C858B14BB3D78215185A866576F34A 0E259D58C750992B67B0900001AE2CB8184419C9BEEA52ED099057805F53B7FBAFE7BF2FFCB3F9 7571A88C794B5AF35DF67BCB66CC21536AD69F860DA40C66AA8F6DC6E52A9C0CF052BAB6708EA0 0ACEBE8A2D3FDD21CEE891EE4B905F72845B3BAE8591A20D99EC177C44528F56A09111A498160D 9EFF65D62BDFD201B608B578E9E052EC257CBE33662040ADF68209F5E7876E1BFB861E21405F5D 5D3A2F684C07F20223E26B289CC7256B10D699637E5A15F409ADE71779032310DB5FB5C98CE037 89EAFF598241368500C76315D8E3FBE028F587237B1A4E71BF0B52C181AAE9B88754ABBE054185 A035D118630FF66EB5A48C47949779276B5AC20699F3A33ACB5F9510263670B25A7E3E92666F3C 0EE6AFF2CCC733780A0D98569B4E08254D9D88DEDAC4F50EB1FE9CBF8588E301FED58E36336167 7F47386A37B86186D0A0A4627C2BD0C956DF9C0C9209F3275BCD65869D14B94943DCB3A2FA8B5B D7434CC1265F7CDA7D86300A5E033AD24468ACC1809460A8DC4231B5409909F865C6CAF7A2D998 3BC3ED0BD15585A43C6598D8D3103547170067B51D0638150669DB52C1E371B6391D2311E5265C 6FDF27951111A7524A304E865898634CB768EE72B812A99DFDEBA1C284A0FC95442921B8DC7280 2EF144335923FE114747EB3CF24FC652DA97A25C2C92ACCFDD15E82144500A6BC1B2F79FF4F722 E06450D2E6335839962111DCBDB1094FA2D3E817EABAD4DB131F01E453ED5CCB794316E5D259E2 7A0625D1B5827706503B0F67BF168DEA99FFC9AD1C6CBBBAC271BF0B92745C422F9BA22A2D2F36 A0964C052062EC7AF373244D8A49F60EB8C2881906FCC197BC9510125DC61628C8C1B29BBE00DD 343075F33AD0AEF24F32B0F2EDF873401A60CE8A8B6176ACB9C1A395C8861BA36322DC7DC85796 6C8C77F815477C820716F965B1E1F0AE5129A01DF4507E0E04B5168FA3566AF291F084CB65D0FC E86EDE9EC19EFA7CF75C9749CF4B5BE79083E8FB7508A51C5800D546FB14D4D8B5191C598BA5B4 82E8A0C17F77CE96EDA3179A4A5613C9235758699EF8E2B4682F920A70CEF54FDF59101C5135EC 3FEC9998660F8D9620B755F45A6A9FF807519A5548EE4BB55CBA5FE6D407499AD47707606DDDE6 32D7AD1A58FC63F97357F4F5C63E4622BF4017B0CD757D554390F27123D17494630A756CA2F1A1 A872F8C09BA62F76E5910578DCD4AB4B0DF33F6BF4DB1237EF65E5FA97C593C90728B12FB17407 FD681A44EF78E14918E7B0530705A1B8F27495B3029252DA7A3934F7209D8BA8442FAC0EA0C03D 08623347C4B17B249B91E3FB30FF88DFB190AA14276D7A878D6711BB273FD611E15D13541CEB1B B6B059985449B7A63C8C425A57AF00293AE85AB3FCA9B709FA60C55EB6AAA639EBCEF4847DA4EB F28A235000471D355202F948B24C9283FD0C9C9E3AAF88735E3769B7D60A9410B61C9D62AA5425 9E43AAC9208A794D56886F983EB006ECB5084CDC8295D1EC0F52B12AD4BDDC14E672450D2BB481 420AF2E5836683F31FB7ABEEB5FFE9D5E1AE551D3A6E123ABBB141BF313E5D4ECAF00A12C441AF E36DE60877FDAE8D255DD1F8BB0C0DEBAF10EDAB4CD2C79B4ED1CDE61E57D12B389C541A8A1823 53637D9C1A48CE343C88CB15AC45CC54EE6895C685F89691D09AC4216FDDAD8549D164E8BCF101 1C2D97B3F1DEA3D7C0EE3049860A949D8A558553D5E8FB358C8D2F31A1DF90BAC093E7AB45DCAB 9E9D4A36B5ADE3C696921C3545E6BD29587068B57A79DACD07C50610EEF8D16BF0CDDB6CB0F459 8EE921AE8764247A771F63A3E8F39B072DF066C1229948CCD60B26C2FA9FC8467F09762BCD38BC 3C5A17EBF085DF652CDBC0386E5F8F908C6EEB9E8B35FCF8BF69177FE9002592F93733D3502725 1035E29E2E4A2C17FF86B5E884ECF851CE8D1CF2E667D9F9FA62EA5C29858EE46647F77FEBD6B6 071C827470A97888B53EDF69920EE368044F9DCDEAD7D40D21D44A90C44CEBA90B64D800B6F083 5EB84A3D66BE4F6B1B173B8AF1D0CFE9D11FA65CA2AE847EFEF063BC4400D508C49C220BE19F9B 14A6E76E2D65E54DE811D104FBC001508ED53A71E6965FEB07423F4846BA0F0C70518D2D9377C6 FAB46993572179E9A0D75EA6F67C5B7FEDF1B756C882DF1010549DA4B6519E9CA28C56053BAD1A 9EF5D0428F2CF9355320B70ECFEE125C9B752E2D30C6E259F9A44FD44BB45CE8F66C3AB6C27DC6 E2A8919A2214220E0E5ADCF6C885966647797B9AEDFDDDDA5726F45F407034327F70C388B6EBA3 5227ED48CC572516A3FF067B4F7707DB59CAE2B37663CFBA1E7128B43A2F1BBC209BBA10D71D53 14A31B03E68F68A9A97F32C14205D4E998359039CD08D21B0B4A01FA2CB7FA8B28DB40F23B1301 2D1664F42D084CD6D49588BF294EECB7C2CF18B65106BC49DA160DB79A63A9A7194C9F2F79F2A4 F97EFA10698F291334E8B4F74C9D948F557C25C4FBC798ADA8A53B9B0E6DD4BA50968F5A5707A3 A6428BC7CC56704534463F5031272BB5C08DD6F4033FD1B5E1A395316AD330599EDC4E021EB125 7BF081AC55857A913DFCAF39F66A1ED2289A57AB6CDE8A2F56D11157569484BF6EF26B04C7CA9F C821FC46B9F13CA07AC0D90FAD8AC2866BA8DA0D67B908A01387E54F9F9DDEF25F50A1DD65717A 3533023CE04038271DAC6CB401D3F692266712D3E380970368A34962C60646B12D129745C961F1 F6E17FA854630F7FFA9E030A0C2D6001692E71495AD7492FD65912BBE636050F85DE19D51F2722 E8FEA3C931541C9C370626163C528C1A3C0E587C7275806D08892C2618D0CB66B6AB37EB96EE34 26274E9E4A036C57AE33B1C7D50BC5E2BA42BE0F14D32F02F77375087BEA2D3D44366E13F9CDB2 096459878D802A151789E54C21E09FDC98C6A3567B7F6EF03E7E67228998E1F893ADCD0EE49F95 22FFBA193A8BC1D5A2A43FA75300C4C72A1E388A792586B3716979DB9679BD3779EC4D9F427F18 E4017D87C0B8C44460FE64C1A591875E589CB9A4818341FE9FF1E515F6D510685338514684D90B A40FD68AA77BE2F5D5536772A6232B386CEE391C88D1796CD076A2133474F9B1506B446F61D138 E5CE584D113BDE06EAE89D82F1AF25B78891766CB386332EFC60A57352BC96B42905C0072DDC23 61F20E89BA1DF2EFC1C18FB071CF04396A45293E44FE656A19F3AE3A5635560763D03B6039EAC4 605AC30D4E3B1A68AC6CD68B00D694399B9527F13D81099DA664919A3D15C3E6DEF460134A1736 B1FD53DDBD20C248D0832074C2A22802B7405EB6D33D864D97B78252BEAE3BF9BA5DDFC4CA077D 806289B7ACCCA239E6603C7D2BA41B7DC820F86D1F8530604D7E3F8A1239081D7FBF9FF9C2D9ED 4D672417853364CAF9F010CF08E4E060038A67E70EC743AB7FD3BFD62E7C209B0281F592700E1E CD0B18F65DF4947D24B2D9FA6C645348495864F66008BFE85089E6442856D0DFF9B27648A793B2 22E98EF332692C08FFB08A7AFCF9EE4DC33343F8FC0B2BF5F59EA5FF484EEC4D0903A7DE30447B F6159C922C3691A97C2308CC2B32683A72B3CB14023E76410345781F0949E918D47481630EB60F 891D13EA3AA81DA60DA50E67D0DD63E6823DC1375FC60738B633996A10B16BAC8CBF574732679C B238B9BB0C1507515558A5E1419A17DAF43BEA11E31A9F10AA8DF17DD9BD9EFEC13EF6F6D1B47E CE37F8D45D2817B5CAECBE38D45BDE09604146FDA57CC7E0814AC69558F170A7AC2F8DA6A5C7DF 485C1E16BB96C3E1DA2EBC5D76630A99A007AEB8F680F2A10182EE55A0ECBD17267F6A0E4AB5D5 4E062DDDA4DEE9506528043578853DE1CE8ACDE68938EFFE8283419D9A779BBC39221379BA2767 DE78BFECCEA814269A456AEC28CADA35B7A1F5DF89D57F9FE64B2818EFEDB506B1CBDE22F9E706 54A84DF0C0124124646EBAF633E054D704305B2723EE6848011985DCC11CB1DA81ABEB7CD5450E 31C218B45C3556B7D1DCD47D4BEA4E3FFC5930037B2664ECCFAD1204D8CDD7289BFA1B2F4BC59E B586883A9E8757EBB0525A53EB83996963ED8DF4760CC16B542BB7C60FE6C0F3A18E18B26EFFC6 CB96792CF2C2113E04C8E64335082EDB3FBD78DE0F1D61B55EBABDFD44786416F0AF593379728C FF15973618B201D872628100BA908908A978EF091A126505221F6C52E7096CFCF13710DA707347 308943095A0222411C858DC7BAA314EC1107CF9C7C699EE623981946E79B70177FE70BEEC2624A 928FBAF73B1CC7D65A6E76387EF3812177BA0914BAEBCC99564A2A26710129E23899D8822DF447 06AFECAAD63168BC96BB879D418D3A26C214E4F26E186ED9B645F9023013086767A5276DCE1B81 031D6F08055D5898C6C1DF53CF9695F0B1DDAAB78BB824B2EDCB8D726B2F477289C16AB9E85013 1E1E23221929D95E17F4011D2126D783C1363403D650D426D642AF6928AC7A017E2D36A60CE6E9 7EC189432627B4BB14B94E2F46D4ADA823DFD6093F9ECC8F01FE148E59C11AAA4417EBC801B0C8 D8B380A4922D9AA366BA64BEAC25DE3BB50E5EEFC4E0AA8E8D6E7D664FE249F01058D5CAAA8C3C AAC732A1507B9F84AE531A3F5A6CA32C812EC23E31F3F491F21835F655ADFD42E6387D03C500B1 D924D99572BC8F362BDB56FB6962800DDEBA947659674DB719E4CA9CA2CA8BB36E28CBECFB9EF8 16EC9B0AB6B464B959DFFD30F564E6C7480B72A5BE58B2B1527BF6967F08F929D98378B2D18AB6 2A73010C9FF49CAEF7C76CAA65695F1FEDFCE05A487CBE6CA689F4B095BDBA432E349816190CE4 BD03D7246F73B5A6BCA12E262BCCBA77E25C3A19241202EF50A600D21D16E8CFFA05EBB85E65B0 E3AE69730D4D3EF79A0525BFAD3659DDEC3F536BFF0EEA6693A683BF9259E098B1CB8EC38B1DC6 AD3B20DDBB88E1863ED1DF64A2452977A1C70CFAE0AC206977526D2EF4885561EDE9C0642D6524 12A2BCFF8B37DBA2D31079C4AC6B9CF26518BABF3639D9169FACEC29E42DA1F0AE2EE290FC0F35 149E0EC8807C70C4EBAFB12CA44B7DE7D95608DDBAFAEB476E98836E317187715C1F07C3719EB2 0560EB5B241932106C464D074EBF0B4B6EC4E86CAB3C00357D406EA833652D729D32069140817E F7F906E8650CAE88FABE5545CFE266F4966FCFD8F83DEED5C086876952F0D024108B42E06D4DB0 89EF77802BB2DEC90966D331F6E34D92675DAB18FA3334DF9918806BE5058BA582F35B2D742EDC F4FF8BA830F0C86148C235788EFC15400E08ADC57D6ECE093E1F7711590DA9D30017B730774052 6937D9A8A4756ACCB0A6BD2888CE2295658A9B534B88EE43DF464BA3AF64CE2504814D2B065B85 0DC705049E0B346D007B43AFC18028D4E9539EBC7CD14737CC1B7F10F2CB000A7F219DF60B449A 12D21E16E8789B7B8F67C354574B6CB5E0B6B612D9C5D5B0AE7D87342AB404E967494718582FA7 D32CE4D6A81A1C9EAF3EAB6060DFBA250685BABE46B4FF3BCC701AFA8A868F7029B38F3568834A 8C34EB0E6DF3D67334FD0E4838075286331AB693179C65BA5087988383D3D5EC5E0AE7BDC99BFB C358BA2AA274A4521E286CC6052A5C477696C5578D5608267CCB164694974BE93AE7E35F389F2B AC6B7980E61C29B1DD2D15B42195E795B00D2B89E6C4BEC4379413B11B939A1528C56006ECC994 7E4F14E3D60F7400FEE32D77798FF6383B3319C6F92E494BF73A90083F986CE5F2105C0E801027 57AFBBFFAF368A20EBBCC6516B79682D8B70A23D8DF3A2BBE4EE081D4ADF70847F95DDAEC10B35 13B069B9A6E50FDE25E3458050F568625F680D3DAB2FCD3B7007109358EF6428756F742C90118F E443EFD7E6D879CD082F73B0B95E230C06C67DA5CC8DB4792EB274FD596DCE8C966F84B54FCB14 8B57141947461BCC69A012B50DE3667F6DD9F0FC7706525BF5EABB07164BB07B9C973B5D31D0A2 2CC99E37697A6D14B6F4EE4745329EAC6A5DE7BCEF1B10DEEB46DA4AE14BB82CBABC31040987E1 74EA49EE6F543DBDA0063B6C1042EB379F610DB5C0D4263CFC08A9C5604B7FE2345E775EFF6BC3 5C581500BCFFD98E23665B2115CFE33A184BBE1DB4EF955F409074512F61A37827DB751757E284 A23C89932BA251ECCEE545B6DDC98246970B17C12FC7F9237E6D00E8187F7F45E048307688EE64 2FA6CABEA56C1D8C1FB31E0B0B95D7DAFC1BE2E90F933A44AF03E94BA2DCE76D358C2D7A2216C5 E95788A6BDC9350135621D59F52FC74BC96D94F93E6E63123B4F56326413974495E822DE96FC05 315EFDDFEB919FB2A36BFD8580D6A21D11515EC7835082359F3D0B2F79901FD6CC2AC41E2D7B9C 412A49C9D7B8FD6EFA11517821643349EE9FDD5A6F4D55F440CB7284726C6DD45E84049F8931CD 570388CDD6DD5F7AA0323533EEA3DA70FF0AA8BC42F3B129D0AFEDFD840FBAF2CBC35FF45B8656 BDDAC912ADA0A3C2EE447684AD4A0DADF205A419E583D57D352B30356D611E5E8B67538E2AB612 787177B8C8CAE9A3F63E58913E026E2BDBCD9CDF272AB9B181BE3CD650AFAF3FB9D6E07D32F915 4852862C3F7DB6748FC834C868619A4E7823733CA044DBE48F642944A087FAC70432D01392A52A 3FA0D1C54EBA4662AC8DE38827B17CF644C2987ED7E57D436E4A88B29A1C91F454A4637CA5424D 11B82D1137D58867A9BA363CA0E07C005DFEB038136D4FDFD5AF85F48E58E50D2AAEDC886A4B22 CE2DBFBFD24F4A05A3A9FCA87A95A871BF8D6237C8C63E618FA4DBC9E15ABB677EB7F1706B1C9B 125D4F5E39A168A989FC53D34F45C24A52292627E11F64A7BE21E5A61D4D8F8C9F7DC3B0E139FA 1E7EACB8BE224E679A29DD3B44FB9B29220EDEE3FF41E88D15C914E9E2EA6FBD1D409753D69FB3 ABF266FA7991E82B74C7C73BA7DEA82B0A0CFBD6291B4DFFA1D68306D24B50906A3EE87A0C3A17 3ED5A1F983138E7BD4381E1B21AEC00F72873F4EA6C622118F37619F6A451DBC52D2BA704DA804 17298BB1CD70A5FE38163F83ED96C2D5EC1CF2DC8CFDC9C1A8C2EC735ABBC1851C1A3270714B88 ED8E2FB5A0469A18EB27C0B191169E37D71D62D6FE06E23B18B4DFC93F8E220DFEC3B57F34657B 0BCEB41F10C0DECED95960DD664C499BC607614D97C60CD7794807F2D509B6589EE4241E4349C9 33A94C3F1E58FC40D320CFC31153BCB12F7CAE903D829E8B2300F41DE6D21B5BCED26673042B60 3403B1918E2A57662FA77A21D16EAB58C3C81243EBC05D6922C843EAADC9DA99B83AE09FA329F6 A6F0B5BA44AB4C1FE88B63BFA4D629EE411CB1EF26ABAA16264204637182774F1AB200C7E20057 17E5168F766E790C248C4A38B93F5F9B5C07E612D72077C36688A597DAE740D04171E33FF960E4 4C1E795C1C813E39BE2C0365341D1EC946BD30DC8BCBED7F9B4AFED3283B263155414CAF138365 2C1935E75541A553121B7FEE8293ACCAC906EBABB343B875E4774387FD8DE4557830B2A8CFA3C8 4B734F4AD5094754B96AB12E977DDC29F8E43697F737E52A6D9DD9A2D8840906B4ABE9C246F684 10C38B404FA6251A2E8A31E2126D11929B73ABBC01ACE04A84FF25A8F7F1AE3A9C8FC04C2FF867 5A41EB0453373722415563EC07A9DF738F7E8E9423DB8A09DC6714472982ED98165984C99F885C 9E9941F2A64D10BF1936C749019845FE5C5DEDF1C057837AE0C6BEE3072C0ECC044B5A33D4AEF5 3506438F750804B696AAD17897036057E77A0BD7E02F2918CE13A48FED56C55FA447B0F32F47C5 2AA0F53F03F6334E6C484AF42F265EAD25088232BC109B4AA86A475BC11FB22FEE50F92FB4C4B5 01DBBE211228D5C14ABA48B56E59A34C813016D43817AF1B707D09BBCA2B20F3B3C90058EF7E56 DDD4004F8754EBF0A16DBA018F8195FFBFD5668D4D21E7B6AF279A08A17D081811D2C34DA41E91 3399F6F3B4BE23879972BBA56C65F6612606DD000A6C857F8F283E6008281E5D18828EBC6BCA53 29977E4C792E468DEDA9BC087DD8B4FCC6D9279BCC069B5B7544585FB305EA3516268FFE6A3F91 CB25909A61EF71B0016EF040365D193CCA29409EAD1AF569DC290514A10980B94D6E8C609728B4 A35E97299E3DD1EC28764A71AEDD26C6D76F5276139EF13F052403F529713702E5B1089BAA4390 78F4D5B1B2FA80FE3CB11B14BC466434BA54F839B8A9C887B769FB59463D0D50DAF8C71FA0A9F4 0E73AF18FB6C7312FD51D0EB70027ED4A546232410E7D29A156A2291E29F6137FB42525BEFC6DB 3049AFAF2357A8ED9CED95CF7E33FE3845883E35632507F3BEE56533E42DF08FA0183CDCCE22CA 7E06D568D08D161560D106E22E9C9576ABE08ECA90A62510C2811D7CC28730D2BE9A1642052647 394F4CD2A4A93ACC984C954F0E8C57670C08CF0D21D46E08925ACE4665D9D724EDC75EE0392322 E9381632D8C287BCEF09E84D42E3BC345DEB24C2AD0C68FF094E07D32685866270DC457391BF08 15A73D64540C28A7BC178F9A8EEBFF4C4478924B72FE21D51ACE32EF43C0D3628AE353B74FC36A 7267FC679DCB875BDFC77821233B30F41A6E1EFDBCAEE3B4319BBE29D253624E48201DD2EA2498 34F67D2F111BF268942F6842939365C8E2BC3330F0243CD1AC7C5B62B7F0A2FBFCD0965AA10627 73634020A2C7C364CDC14EA24B500CBF4A8C79B01D6DF55DB738CBE3B978111D65DB99A78CD0AE 43619F2E28BD444DEB85A7B585B19C594940C45870E21D4B1B110028A4F3A60C951A0884D57E28 D5E26E0E928619000D5CFF442D019097C45DB01BE693F6528A00120A14845923BCB81F27BBEEBC 15A9FF9124371E485BF4AA8B51B2DA49DE8C2E5F4F1D909B2731B2B14B287D921949115891AFDC 2E9424E11D6A6E01800002B41B60F7AF908FFA016E775C82582A4C15F47F941ABA8889891F9441 F2C850A29185D4B2B68CCF46C38ADFBF046CB7BCF9B610379E95CD8D2F68ACB47107225ACDC6B1 2DD0A72F291E27199399F916370B1F7D6F4EC7D0109EEABE3191393C7D6446F86F10EEAD7F9D79 B5AB0C053768EDBE0E0F211F306507510E589686D29D226E55D9F07696A144BB4A6400647A8743 ED136D3C5DA6B183D0AF2B565D9D9C345EAE5B63BABA6867BED519CFD46CE594AF18AB49DA423F 0C781EAC2BFCA83F4B11B431C1DFF69E12287098A487BA099786DE0906EB2806278912B958D9D0 CC168D6246251F550445413478B8A460A24FA8D80A0924253985753DA56A30920BB237E4521C2A 78B4E79A256EB66A4B2061F4B71B421D85223FCC8DB4FED0C3A4C4918FDEDC558C57850A62917A 0E57EA5C771D64A137E17D12F1C5EC08FDB94D1232B090127259DF02581C2584754EEA872D88EE 7E583D13C54D278DCB5D6AAC44F68E76186133A3EAC6AC3D22FFDE29D0EE251495A96DD973AA89 867C6BF4A1B71B0956F32CA07D796A19A2B64CAEAC3B04AEE03E943B6FE66EE9840DDC086E8C80 A0849F14992530B74EE8C58CA3F4E765A7A097D98D45DC90C48A3F6262E9999BC34EBF07D5DBE8 7185B7CC1BE34DB8D09856E84A5B9B30C01CAD5E72034433045BBC57DE1DB1186BA78C08B6B224 07FA803CFFF1CAB082856810D5639AF9E8653470B3FC95E1CF8FD80DBBB597FEA6A4E3CF584AFB 4A88D02C1EA61B65FB0CC7A96EF09AD692D035EEF27EB3BF2967364A42DF2D7565C61400B0E338 168B81E69C07FCD2CE5B20526A707F36786C0C6D53B7E4567D41DF6435B4DCF13256B7E802441E 4C86A0A329EA7293B1A5FA8D532FD0F529A2CA7CBF0F667C784826A1891E8FB93564158B14EB52 7AFD02156785CB4089DCAA8056EC101F85FCA80333A89AD17EB94C100BDD0552006139C9496EDD FFE06E4D10C1258BC6912C5889D3D9108622BE978F52E855729C691DAFCB358169154A78659CEE C855C995B334280BF279955835BD13DF6AD0066702C7B2A7804A223947A5F8528F0E2A962F76FF 2B41655FCEFD02F3F6F8D848D60B65399746806A9A4E671F62FD3A46A8766E6F94422B84E9E3CC 3F1ECFF2C86FD88EAB7C5665743F5F7E26F34864C701B57625A79CDCD1BAA2A43F482FAE42F9B9 4BDBAA91ADCE7780AD209D2C19994574B9BBB132169B488E6BA22ED05C971D2CC5A9A0262844B2 1698BA297412019CD7F6C796944202C89B7D7B188DCEB11C91F90F0A338F62F636B759924BD999 B488C61DDAECC4B68E0104D51C9B8E38354AAA61EBB5B53A10F5798C3E755662C2F92523CE4710 14B322D56181A39DB9073EF5CF6C99028C66A48DCD259DA4A9CA17375AC33C1AA56235BF1A57E7 B3872799CCF1AE0534C5EC3AAA96128DAC5592C6A3AEF6AC4EC77F1CBFE1F7CBEAED6935913164 C7CBAAE272A953ECFD2F9B95E63968190066A66DE5F87CDBB126AB5B806DB3E8F0665952D051A3 DF91F4BBC261BAB836F921DFB0E6132283C40B9BE25DBA4DB5E9561658D735F4E7C635BA312C55 A499A10352BAEA349607623649CBBD0AEEF6DFD9F436CA20A9A887A13C8B1E40064BC2B5E8F788 887C4D1B853C40D74E4E759D417421FFFF7B2ABFF74E70FF8446E268C784BE7BF93CF20D3B085B B4136068A30E1471895FD2345E05BB57D5C32F1EE6C3A288D1BFECA8276D35139876240E36DAA2 99C18AB7A45DEEBC470F8DAFCE5884FA632F11845C1B28A3B39D820CD09B24ABE6BDF342A90D1B E453764A959A0766C1F1B6F72579977F6BAF22C2620C22D16E52C78220AED5E5B0F977E69BB95C A44F67FCFBA74F292773BBF4590773FAFC9632855223B640F8B5F3B991685215F92F1751EBA738 5C09B7CAA12A617A4BA5497747AF13918DDD1AD89085AA3510443E8CD9B799F325AE43863E7F02 CBEEC80A79A785DA41FAD2572E57A19F9A8DDBD1A12004F41158077B0B9D67E9CC4F9F10C29502 50C74CEDA126664FC366E6C8E5D6C8DA0E935D68DAC7BEFFB648FC6215145ABA587DCC95F2A0BC 5E187C70FB879E6F75FEFB9FF1A09D4BE80EB65AF18BD7CF9ECA28F44E49BE391D4A95633B1329 06A003D3879D1DA13717502851178B791137E3B8D7954BFB34E55B27FB430027D6A836C5773184 C9384BC708991D81665F7D94803EE28BA76CD43DA908B279C772A4249E88DFC85A10849607DF1B CA4D481614518C59017B1079ABDD1FF4A5FDAF8053A6225CED3FBE6F61A3404C797A61DD6845B4 261B7BADCD7FBA647562514F72C0B2EF4077DA86BA5A71E192B2F4E7D9CDFDC1BC990F4A295CED BE13590B98608C1B1A5F8E2A1690A4153B9304F5A32C764E0B05BA8CFE4907E39E33D69C4C424E 6BE32F2C298286EC2C7EE5D6C1B825DE78BA87F2E4FD59985FEFA23933832A4E61A21617B519B2 9360D57CCC21A685DD415048A06C2C8F34A3C98498CF74CDEFD3E5A595140F52F02B47A34202E9 2C07EF8E790186E56920F5967BFDE5DD6E2462DDCE6ADB38FCC059E189F8DA70A8687940CF9D80 98FFAD9D7929487A9191C250ECFF0A90012E0FE9F902F78A2C146ED6E5420C00DD89F7415F2573 3B5146D271A89598EEA4005DB32FD27DFA0E293423E4D433DD78A31910988D75F2726B3B8A7719 EBD40A889AB7E38216F1301D6FB53363240E1A07C2ADE47B26D4B6B438FA69786A582C72855A76 77E6C51555F39F3EFB53C79905BCDB3CD88D3A5801F971BC8809BF73D384B53C1E03D65CC34039 2A7A564270526CBD6F9FBA7871BDDE6D9BE23C38D5E53B51CFE4EF588E519148ECA0649AAC1E1A 2606EFFB8EC97C9E64D46E9BB5DAE9BB73CFA6A9CCA578DB26ACEEB662D020F9D2F163B877AE89 746A4B63040082385DF1C5BEC77350F9F5EA41F5941C90EAB5700820C0C29AB8371180F30BF009 5D7CEF5446D549D0931961B246DA8F1C3535F8967D64FD070B625904D7D7DD6E31B9E410CF3D5B DBB7B6D6473771B85F8E2924CA2F4D8DDFB2DB3D3E4CD46FC27C65F7058E8F908DAFA540BF2726 A5A1A66DE298D6EB770FDD4C2EB07F3C81F190712C2C5253379D518A931097A96866C1D73AF6D3 587202857D0A83D2A526D281B42AD8A29E5084228C527AAC631E85E9FBE26AB60F14D94FEF2E3B 9A24EFF6DB66998C5E2D36966A11AF147CD293723A5F2F34625F6AC2C4FB51D0F851AA5B4B54CA E1C8002ECE653890BBC684E4D4EF528BF815BA9B3DAC3A6EF34EE74BCEBD75F35F370363879C6A F67E849750D4953A880081DA1B64582E8D790C288B65DC1B69BBCB0630C77ABFDE5A40E0630D90 F542F09AAAAFD8BFC57BCB9BBED422602DE45CB377C2E634B47AA83CFAAA35E3C869C0819E6E0E 1CA918941B15F66E9552672110FACBB538E8FB8A7CE8AEB2FF61EA94E098B89062FE76EF53C6E8 2CCDA0E8A19BCA2B33F4671BD38C0DE622522CE84ACC4114473F10554F8B13AF6E50A8F7443EFD AFEF23430F4C2AFC9188ED069E25647C5D89D657E5C570A27A4EE5981E1D9D317CC90F5B25695E 9E1B914773FD447A91E76E5E87E6613127CA54E8AFA17052094F6467438B369C8549E5A0A59B04 D32B5A0B02FAB315F25CD4C7E16FCFF78544D88D983EF7C49AE1DDD72275759ADAFF6F206B563A 5912AA256CFCB35CE30CAFCFA481301F6A25F673A8B90E9795B2981601BA88400DD247AF468011 8C698A366B875A8631AF3A5B4CEA30F1B98870C096B0285AD22D2AE0C3E7C2600BBE9DB96A9A40 96BCB3275481F63EC41789444E088A98C3564F22C7CC1D5D343EE6E3494E46C99B1546AD0FC7A6 561C239B5D233450A80A13F4DB163FED87BFD98FAEBA9178CFABD4B5828EE864403949429940E9 BF97455B4B10F6FD8720930BE10E639F7173B460F56701B5D4AC799A794C9CA075D34829B98461 0FA438749B33EB9FEC2BBC2A2D354DCAED8F46CDB103EF0F64670EB7FE92FFFD4734BCC9F5B68E CBCB0BFF982FC7558774F9814B00802B4147A50F96E52FD1E107E1BBC7CD878D9BB194A3280DE8 0D3BEF8FD0CE0FBEE8919B8E6A9C8A45FA2DD71197AB8F15E122B6D96347181D1363A190CAC8FD 84EDEBE0752BD3EB0312C7EC7864E68CD0962B3AC5B919CA24A3F3B75729AC6578254974D749E0 9E460263EFF0F666129514DA59329972C02FBC41C2965D3F2C7AD1B834D210EAAB5FE5B50DF9C6 E16A3DD52EB2A3E703364958B977060CCEF91334232C9E71E27C03A1DE128CFB721881902A1C27 5FF14F0FD65AEA05A3A58241E874E6222596AB117144C5255EA57322E49F07A7DE465C39DF690A 6A9836B10E035928E05AD103954B6BAFCEC520D364A7E4FFA27EDB5299F47ADD3009FF45463D38 8A3C8571B21DC64DD8CF7028BDFEB4F66D105BACD33DB5E8A00363B47B9D348AA1611C059205EA 3B5897658160F069213875205D4979EA1A1F93F196A322B6ACFA8545EBA221B363A4F6C32C5FC5 FCB4E4DB0E2D103AAE01AC84FF8B1BF81D05CEDCA5A356981AED6A5F4A5978ED737CEE2B686275 2612B63BB055641ADE4F9DFCE2BE94F9B593BA495A1351626702E648B62E781885ED4770A45940 FB25E5C4DCF2CA34BCE72693C063D1F130D728D7D04729E8005CB872D264AB8EE6D125962DD6BD 27C0BD80247AE1DF710BFA28C8A5E32CD34E45D60AF37EACBF49682A1A76B15ED787E1E6371B5D D56DB046DC21B5DD9463996A4D805135A4971B8C187AAD32C422087D8FB8B46B5B472BDAA9AAE6 85C6C08431BE762313E443A37812D19F535AA285DBA7041997EA73498D5630D24F727335289DAC BDAB419E8B044E45D08B45B24134B5BAC9CF14D48DE6AB4705607E8B7ACFA9772C1F4E86A35383 FC11C4AA84A7C734915A2A5EE0C630268C6DC794DD6164C9D28C33E6208266D51ECD5FAC58C455 ABE4DD2E28AE428BBA827C18F347127E07E9E14BDF6FF4555E4E6C79697073F5D01927422FB534 7E854223D6932003F6F7F2B6BE4FBBAA65F2AF984012ADBDFE1DD4AEA80E3CD859BBF018084B8C 0E6D3E4B81B9F2023F818BFCAB27AB55D3930F03EDDF80D2274FB6BDCBD888ABEE7B9C3AACA6A7 70FEB66CF346D7545537531AC4FA6DE2AE0B5F0751CB10EDCC047527117F0974A8E0E48413155F B8E15D487942B6AEB71989CD74C88AC77809E1415C14A5BD4776A2593692BAFB9D3F8B398D9C0E 1DF346BB9A75915575B2ED1F1EAE8BA4DE510ED7F5E795314D5E5FEA572DDE48FC742F6318CD26 4DEF0C83C92032465C5209ACC826D2CC9507097A18679C44329E25C87D98AC7A007B4795FA3F14 E93993E927358E2E5142E7FB9CB2E62C0AA0C494768014DC0FCF8BFA1B299CB788B74A660CC404 F661DCF070C900E4E418C0ECEF6BB7A7572C2A632A9FB4F18C963FAD73B5A0C863ACF3203489D1 EDE5AFF38D67FEDE75F17AFE06F9130700BD092A55129DA2CED26CF10C5C088FCF82B192AF54FB BE884D701A15D71F21099303F9204D0CEE6CE1CD4491FB5B0285EC589C17079AA6599ED30377F6 7538636C92BD6D49B53C1671DDA036FB4A9251BDDDF41383F818F332AED33E010C642605051FB6 5F1E68DDB634644026B08ECE7608AF5AD2F648E32B6DC1ED202F02E12B31E008790FF62B097F9C C871A36A23737F8DB0EACCC75740CEDD89EBF1D1619BC558D35FC49FACF0C4696F577674879B35 DA2342F894FBC85F7EE7F4796B680D12ECD8E344D5FBA7F5E56FE4D5C138309CABC4871D81134E C07D9825556F78F74C9239BAC7365767761577FDF31609C5C884CD95571410856CB2A87CE42BD8 9F92B8AFADFEB5BA618BA10396AC6B31A4E87C2B89B521FA100D8622F39C80190749C5E9C26F9D 1040F6B90D2D380BED092EEA62D6BBD648B1021719799FCF210C5EF3BAE4D44C4D798D6529238B 5BA06D3C9F9AE5367CBB81993C19F9286E690DE1345FFDDAFF9FE36E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsd %!PS-AdobeFont-1.1: LucidaSans-Demi 1.001 %%CreationDate: 1993 Aug 11 21:10:03 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1992 Bigelow & Holmes Inc. All rights reserved. ) readonly def /Notice ((c) 1992 by Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Sans Demibold) readonly def /FamilyName (LucidaSans) readonly def /Weight (Demibold) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSans-Demi 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 54 /Aditi put dup 39 /Alessio put dup 41 /Ali put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 89 /Cyrus put dup 189 /Heinz put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 32 /Jeff put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 88 /Kettleson put dup 90 /Kieran put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 121 /Sebastian put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 45 /Will put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put readonly def /FontBBox{-309 -205 1151 967}readonly def %/UniqueID 5029006 def currentdict end currentfile eexec AE40F8585C2492B57FC8C19373E315912C02C4E404DE7D857CFC574863562CE335405BDCD8F11F 96FF6E8F1C7B7081B95AEE4E19EF19E210EB377985E3A9C4049662C57E12D3250AA62F97535698 C97032B09BB86FAED093CD2338831E8859F00CB0C108EB8E6EF582C1A64E00289B62C4DD3C7ABE 9D68E37629997DAA1BD0F494A609A153E01C0FC558EC2510717C5F3C0D1704E13894839A500B55 234B67E33C3EE5A6E7E905C23EECF0D7320E431F93A893DD533D15A7D941B043EA7698B0BAAC30 D437917A0AB35CB6E43354D38151D2BCAB7D2B5C7EB260C888CD713A2960FB2E510299FADCF020 C4A535A0791F9B9DA4A3D25C989EB20DD198AAF09029DE3109374D40071EB6255A9B872322B00C EE340A09F572634C77960BD50BFCC684BA77A4D15CEB51519C9728E8A3D90555B3EAF8C342A020 6282A97EDAA25BB74F1AE6F862477A7AEAF1A2743843460B3EA6653A0E7348D33FEEDBDED3D45D 85CF2AA51168B0647C1DE8B3C9A78C2EA43726659F3E8EDBC6A899F644DC2932A855CF3F64B115 B46D556E5D9985D389F7F250B017F690E2D057D6C651FD591D0186F44E4E72137572BB6C02B816 DD19473CAF196D22DD8C2CDC3EAB84CAA908B1895059B7CF29D716DE195A6561EDE1D69FBB65D7 CC82A9A4661DF15F693EE6E383D7B8204B693A7B0660686A66F634FB881D0DCB0309DCC421EFC2 F0AEACC7EBDC0D36B4B23BE86EC1BF92CA08E7F7FE75A9573149F4DF5B0FF2E3F1B7152EE18AA4 4C79B6B5B8ADF21B9D463241D00B8D0B1E4C53E374EAECD2370C762B7B6BEFF36ADA6C616B9395 16561AB36577ED5709D2AB556D6828CFE3312375F8352709005A1AB5889D6EE142AFA34C135FF6 A16327F64BA637F66BBEA267A0CF74E93C5FA0BC0025041987825AFB1AE5BBA228C40BC35EAE0B 620B9E90510DBD9762195207113830727F293787D784CC8B3096AAE08DAA086D3F2D02742EACB3 7D210FD447B489559EF0641DAD182D275B4CFA7311FA695AFBC9B689CBE20DEC441EBD2D6CA829 F3C9D7A5F0BD06082A0348E70A97A463340BFE7B8A183D6E01735C49361731501A6BE18C334DED 5FDD2E20E0DC11010983CA608F9A6AF1E2C5887707CD4E1EB02F38BDE030DD8E0DB7D9B39470D9 993CB97420EED3C2238E2D9C5558794D1EA89D7DD24C8E426BA238743695FA0908AFB11012C071 2ECFD83A269452B1DBE37E142A6A45E05E4D3FBFEDA1B8D3B3A8D165F24B8ECC37EAF5F56DAAF2 2FB1E178D15C742CB146B41265017FD85A6EB653C0F69DE9EE0D5C488D1E9FCD5516F6B8721DCB DF10E9A94F678124D6668A291B25A3E898923040749ED3458B9DDD204B196470F18DB90B3B0B0B 62F4979942FAA9F1FC00D98E345560CEA1D8C89CF7BC141ED12696AB78BC44B2483E3B5FDD8F8A 257B81175F5ECADB194647FD147826560D21CC2C1E619079C5E03D47E85014CE98E7AA57F32B97 0F7211D7FA44C26FC12A0BD6F12604B8F3EEBD1DCB0E8959857A5EB5FBAEF277ECD1AC6B564658 A547C9306B51C96E76D46D4878C5B0CA4ED3EA9800F9797A4B5D18D91244C74DAC07C659F3656D 2C2D9B3CC8B2F6FAFA22E74782D61492462936DCABA1363C51EBF7EEE92BA72A7A8E27C733D488 C9363C086AAA51C07577851640AA5232FD80E70934CEF2CE74F5158DA22C7411989672133BEE50 558A852537938BED9A34115416DB0E62A0CF53C5857C7280605EDB2DFAFE3B15A82F64A2C541BF 83903E3381468B8EB372547B548AE62E16131D0E4ACBF1575E3F609835D9DF46FED02D58C0C3E1 804DA0DFB55F6335B910691A3F5E3709B83F3B9FA35771DA4266BD8ABA9FE7F42F5A877D6A4457 BFC547DB8988CA6E77E04FF7845E90E7B72CCADE8A5A14E594E27BBB993E4F73FF91CFE0306C23 A8E6B352A0DFFCBFF83E4D9E6F7C0F05EC7EEE1DA737E4E1B5B70243083FF2EAE5F5F88AE7F040 E7D8CF58D7AD5A2B25B626B4B5525377CA40EA542236128AA40E592421D0D871A37C34FB45DBD6 A45451B15298530EA0E1DC851C212BA010685A92B1F805547CC57D62DD2D7CD4156C420D073AEB CF0CDBFECAA3AFFCA3F1B1B4F817DE41535B77504E891DF0CB42AEE39CA3E37E1B5F787D467CB7 306304950015AA42A53A340AD1D7CD32F2C0D2A7EA8A7297BD0FAB1B2FD027D0FCEF35DC8A32BC DEDCA3F3702008ABC82389A0F12F70859E5F4126A88CA4FAC548C2515A46A3FCFC3E958575CCF2 30858E0465CF6D43D41973057077BF986E4DCB3078CC14096CE6279C919082DC237A9610589B29 E9DC232CA680CC17DB5C545BE9418CBF16AE837E02681BFC873CF630D9044524A9F4373DF78A7E EC5881CECB664A92123639D62758235DF94C854A740A4D38859C9386E1431C5152331D71AE0812 CB23884FAEFD580C53552DB1D51BE03559E7129A8642AA14132AED38CC4357259257698DD96624 76589CD1AF7D72A53A8BA78A6E2737AADE9D3D880140C3907D1C20F6819A0F6465686B6D30A4F5 04E0488F5C8CE701D2096B45BF447743BB1D981E52C65BF78CB8F4D4BB5E1E4B0E3F48CFB19D29 9A4210F36A2FD8557AE2AA0477683FDAC64590A3E6ADEB3E3C24DEE4ED90D8A3EFBC3ADB61346B 6E167CD20F60FD028CF251CBEAF221F423505126973808297125312ADE2F0337C0079BA876BE4F 94D9F38EE5165BA3BF025C012EF13CC89451C63D943AA2D0C40083036AAE18197E87AEAA4E6A4C 678BD07DC68D87C2B18A5BF0B371789D216183C02DCAE89A8BF26C15B6A3ACB23F406D77AD9869 B02E9DA376F0F2299767CAB7DCD0D8330D96A43A1D70EEBD80362872616E3176C3B6CA44B5A8BC 9C0171B08FDCC575ED942B90C55470C69C3DDB7FC6CDBDCE4911418054C7C723F1CAC9646CACCD 23F594B344129B30F7569104989A986099901CB110CC535E57D6AA8CA80FE75C4A208A7B5E39F4 019D8D8A515C0AAF8AEC711A55C6C0DAA0F17C34C3066683AD4AA6A7D3EC57F20D32E15EDCA57D 61FCC7C8F8AD61260B574593CDDC128AD465C59A785983857898D437017360192FF44E19998358 6453672475B760A3F8F6003D3EFA6D22505EE7A12ACBDBEA47B63E5E3540968AEE5B6E7FA8774F B5410F44F9090E880D2B6E7E7E6A7D1D4D717B144D8A7E4DB66CDD5998BE26621B9F4D7C719223 B7A5AF8EB116AA03C6AF30FE61E32A62B4969B4429D0D101889F1BDE8EEF0662FC4D64C06665DB D474E811F87D31BF576271A7A3E52F7990BD79E96C3B4A936E2B1FBFFD2D31509CF7F5BC739F4B 7C0216B5AE0FD8AD25FCE86B33A4D22B2D616C96AE155DBDCD095A77AF84EDC4B7979B078C563F 8588CD016B3C08695D31C8EAF1D497C01A9737F6C1AA4626BA952175B6B898FA389E9493A8DF87 8D4A1C38C0CAEA89B225567AABA00DAA5B6F3E038C0F3198E8B5CCA6302646EB464F062D4BBC8F A8446418626319018C9C8CA08B1C42D0714AE74E49CB33A09CCFCF7A208D1B7212C255AE7701E4 E01D7E5EDACC772C8DE238B4DCE0C3D6A1C7D55FA9819A3570718A6732AD4746A71DACEF94E459 0269025736DB98D2F053305C27D30D50DBACD697EA875932778F2A544C9460A942DE2DDA61AAB2 109FF6363A5EE7E6E336394B882557F7E13F3D740ABFB291290AA5585922FDC27873A8B29525DB ECFE5A994BCC926A5A4B34C49210279F8763281A5D91816D974BC5F22847D68DCB911D265F7B02 FBAADB2E96FB0E46DBA70031B7D7A4BB32711C127FEB546F52C1FA36C7993D40EE93C0D4915B12 FEB19EA6972A3651FDD1DB039B1507600477877D43AF8F23B4D41284F50621DE3902A3BFE3BDAE B057C127605869A6FF573334D00AC079DECA898EC5E7C28CB76B23A617DCA022313B449518FA4E 3556B2335E4A45A8C61121293C3BAA23BE8ACFC53658B3617458168B3F5FDC321715AF886021E4 AF9187E2FF6CCC09AF7FDD019556DF58061AC74581BADCA856650460E5B45C9DCCE4B4CCD18DE6 5AE71D2B3D4F472FD56B46DE9126E08DA99B91A758BD9A94E28A8D951262F220111C3301972A7F 49CA8615AA7E7BA61171300F8E66A9BA949FAC666EAA23720CA825DE4D0F6A9ABFFF233187791C E57E3EFC5FDE95D277D13CA6112D5934D6E27C07B614971D3AD7FD74CF08B4CAC94F1DE512019B CF2400998F207B27277C42562C7EAADE4D090D8261C818DDDC65F65CC793E5A479F1E03E3942DE EEDBEA85B103FE2BC309C6B16D87804C85900E39F51E96276D9BC9F62825D42D1EAEE49694D61F AD59AD71A3EA6E53CB0C06E7916F0FA7A3BC0DA39E224ADF4F23EF2A15A4E0A56D9E38D4D7454E CDF3E8D010A6950975E1967E54F4C63018731DDCCF5F6DA12B4D2AD4A228473E49F6EC799D1967 B7F333ABB650B2B573F24B755BB71607D20FE142C5653358714EDEEB94D1862B435C877C80C1DF 7B02B148E8800CA3A1957207854011A7EA1AE2B831F2ACE4D56F9A2CECCAA4BDA65C6CF8CA936A 05FB76383900D5CF4CF85DA2F2D4E0E10C43B2FE280CC15C75349B170E87909E7113C3AE32E62B 584D7D350D1097EB7161C2DDA01D1CE66B622D041228C3A93F6FD48048ED070EAA88B5AE5751B1 9034DB79FBD58D16639930CDC92B93F439EF6E900FCEDE677D1CA321B93FEC8C22B6563A069710 54DBF7D60967EEF580203D0D4294A16C912B06252B97ADBBEA61CC04F9305A249E88B95ECD4AF7 1F6331BB6DDBB4608CA1548E270CB79FD972293B9EF8DB393898198E0ECAE14C92293506C39170 5CB3B0526B95E3BE6B8D3323D30D1A8933CC0C558C70D22736BEDDEFD0E5DE972D2BF42EE9E340 0F64CA97D4AF620384797F9E17BB831776A38A03E6C719917AAD65B3FE3850EAE611B9ABF47678 D750C0E55CDFCF90E7902A8AD5F0CFBA8125F9C35A49BF4332CC5BB1AF7E6601046E9DB0AFB3B0 F047A17F1E3346F5B3C4E4817A6E75753A3A66FF2F6226B57788DC7C5FE3352A6DE50E7E44723E B4268EB179EB916BCB57F3C7330323B554C5DF750B5B84563DB7248137E312AF17D2BFCFED3E7F 09323553E04E4049B05E4F8C546D198FCF51CAF6D3ED424FC973C3391D9B190E1ECAFF617B6E26 B1F2638FB32391EC52B27D0C353B9E7085B810276FA4728E699E50BB54274130A2B290F8B2E49F 5DCDF560B56DE2A43B41ECB94FD8F4238771D8B55712DD101FAB9A58E4319E58200776583C35D6 0EF2D7181170411BD45A5C2967D7F19487E8C2B17A5483E90316EE7F6ADE0C11AB7355BC66E021 2BCD832EE4AD4DDDC4AD33DB5358CA406876B077CD8D4CB77D1DDFEED860DA562615F51A54F596 C474DF3C2D253EEB1E9B85352211F2F627927893E9F59E70CD59B2163E35D0C72AEB17EE83CF1E F47FD6ACCAC3667E5E297DEE0E7F88644054E99E90DAFF89448641620EB4D165D629A9B59A0561 A144A1CDA31FA7C64E9003B9F66C880793D1A968FDA68159508B61D90C52DA56A5EFBB937D03EC C3F56B7C4E58CC65ABA31D9EFA6F49D3739ED898D2B2FD941180BAB89F6BEBFA09F2AAA3F543B8 447C15E372EC5683C81B987D492F6FEE10317F2C5FD884F813C4E281B5A7D120C24D1C7844CDAA 5CFA497E5760A150E0D22A548AAB3DDFD13429A2CE12526162A66C45B38824E56D4CD47B6FBBD3 3D66795ACC5DCCD1AB9BA0C3D6E2AC6A8E0D14DBB9F693CAC9F3FF65BCB714253A607DC2B25B15 1A7B07690DEB14C2829AE2D043812BDB6881EDBF658C21FBB5DAC05326BD8683B2506ACF3B637E 055E94B6141C24EA1BD6CD7437CB2713700EE829254EF783A926E2768B06545FE263663F79CA3F D4E9C750BA92F6CB2CC44B03D679750FD68524246F4C63CAA44F8C0976EC39F782131014D136FB 96E441F9DF8DA9BE84D7A59497AF90656B9F308BE1B909E51AFE8396CD977B2BD9D6B1D248C594 4B3F0DF9042614F333B91C3511DCBFBD6DEB5D5F323B7F021DB863F63DE2DC9A1774CB6598DF80 011AEBDEAC09EFA9E1644FA39165747C88C8EA6B4AF1897B34E805BE0F0F89FE2B9F71F4236058 E5FEA48B32CECA6C5C4DABD7A2EDE43E477CB3760628DCD2B64E03ECBD3D28D9A13445ACC39C3E 540D0185230D1E89750D1C3DFB6DE4DC9A258156FB559870A29F057121419228AC452A0907E683 74F58C6DAB6DFD46FD4B7B7417A3539F5F2DD26F8FDD1723B6C4030D86C352190716EB980791CF 2426A868B756255AC3CE719D37C81D8BEECC143B623880C1AC8530698369322B6309C672FAF6F6 0C8BB5E787447A61E79877B8405C652A5A71F85B222F724EB406A8E5451B8AB3448121430B4ED3 34299EBF820709C1519E35803396B3DC845302F716DECFF7B34E53E60EEB0C30AFD9862749DA7C 335475A5D432D4161BEEA5D72A3772B499539CB672E9ECB32CE919DB201E20EFF2555B71B569BF CF8B902564763EE7D559D5AA9870837679E4718BE751759A9BACCC51A9061196BE327510BA4865 ECD5B2A3593234E0E6D198DB19D2EA74A437BA555CD8FE70BA380B852858881E83A44FDC32FCEC 52BE9A0EE93ED500F8BD0C660D0894034FAA09B92BA8517CD3D294D16EA7F0D038BFF2B744FFE1 2817B83C7F0DE337F0527433A982B6B43569C18D8D882BC722603FD1A9BABDB464230FA2B0C9E9 13A47D30EDF69AEB8D6737658718321A34A8D5CD33FDABDBE65A9E9DEDCA6F80ECF455DFC6A80E 28687F23D4ECD8D8FF396567EFA09929F748CE124D08360CE3637BCDD08D1A9D54EFA80EE56CA6 43360FEFA5E987845150CCDBC23E5EFE2E3E2F571C1CD5F838EB1884BC39387CF19A0B4CAB69F6 829987C0FB8634BF8F8424E649F9CFCD769E96A040B1CC46EBBA3B17886302C2C98D02ACF9ECC2 0D6495C1A80E2018B1267BDE4D82C9AEC7E284BB825E6E500F85E5554E9E55E7657947879BD719 81582946A1D6F0D70B878B5E280E49C23D3C5F176E43E1878F82210FD465F347B37041FA8FC749 20A45B3D73E71EF44F50CECFA9590BA94CE6D34CCD4FC878DCBCAF0CF713F4AF5F54FBFF508C42 DC97117CC92442E180E4B2307A2FF364E89BC538501A2E3526C77EC08E8B211DDF42042633C978 8EDD3A24389AA1690ED0715F531173163A95E36E87554924FCE4879941C50214A485A26C04960D FBD7A03B9AFCE70866723375086C6DDCB249AE3EEA17CB1BCEA611FF44364DAE6371AC79652C50 0EDC774B75B790B204C9479F3CE3030F6288D1E2C2F9F083F990F217DD42AEB8A95933E7A318D7 CF6656D9C57DEBDEAFF6D532CF206F4BFBA0EC53913CE7D9E2BC72F5BECDC0CCB313131688D769 12FE09419536C188F34C840608A17BA22DC57A7DE9B758E05C3800A8BCA77F95C0842094377A16 B80DACDAD77A3B65651CDF7F7C4550F1214DC47D6E88C006AC5D5066C3AEB2012F2E0C39A055FB BF174FAAC6A9A28D2434E03874446E15DCE7ACE5D7BE7050390186125F0435D4024DF4B5C25B16 719B3240ECE2B00C53EF9091E1043313BC83FB1128F19DD592BDC748E1172069E61AE8A05B6FA2 73CD67F68AA8F783E90D042C630811A8A71C0E22A6142B17D6C2F443F27ACF59C6F4474014DCC7 FE9257ECA7B4C46470DAC7540C34A03B7FC1AA96D6B48179D28A0BFDDC35BBAF155BBB5DD8D40C 2F3CFA7719E0BC7832EED6A37702223D1466A8B4FAB31D2D91AFEA30194B9DC756EA0931A28D92 8B68C0E09F7940A1BFB8817CEBBB0A5A4E65CD9170014C9577F321AD444420BC7522D91672DD1E E7517AB30B7DFF7436C75999DBAB0F7B3A7D452173F9FC066EA136998AB8D3A46AF5CB99ADE3EF F0213AD487A7C50A07E25B5363F2C3E47B79961BC58B4FBC206F8C17D4897A26101714848ECF2C D7219D372F38188AE6657CA5A9D5140B832533226677A992CBD205BD8A7EEB8618B6D2DCE91AF1 8401EBF19DB900BCAB2C7146A0832A3AED3755B8906C9A0AC65CE2FE44E3DF2F68A75FD285A1DE 60FC073205DE3B4BA9ACB0E06C29D5818F55A9DD737F2069BAABC52FD9B3F386127B9DC32B24FE 9F39921778FFFC702300C1FC92E3809379FAD3189B34D98EC371F9FAD6763C81B424B0E8339934 9282C1204BA70499E24CE718B2010FC17458D8208492EE56F9DE924FD848705969B622BB0F2481 6BD0FF48BF235DD71BD6F61C38B6294AEE8676AFCD9B8564E36EA6A95C4876872B94C615DC0994 D522CEEC5B7CA9ECFE9DA4A70613537A1FFDDCB26A909A0C8512796F70FCE357472476F30C9D7C AA718917065C69D2EC1EA9620982EB4B869035E7183A71A910212F18BBCEB054B9BC7419E45ECF 2E0C600F865B44538AEA23950B5E4010BD45921CA12C0C1968C65EB900ECE26C5AF8D29D31346E A2CA571A9E40938D85D4483DD894907ACD68738986D864190CE11362E7C50346473639BF4BEF9B 81160FDEEA602FCE03FA4ED3FC5CEEBD50F3576CDCD4F21408A2D80E265D5D607CF00CF15388F2 C6EC9A1B47C77DCAE2E4F2F978508923FB4AF9CE6C8BD1941F66866465D9826879918CD49BBB89 9A0B12CDA6A069B9944666479515F2B7E39F94202D4B369FAA1887EF5BF5304E8C2B2BF291D6B1 4E656EEBD98A422438DC43124E73DED0C86F71F98AC1DEC79E65C71AE390A9D7BA0A2A5AE8EDD5 5D22DF7FEC889A8953ABC0B0BB9898FAC1CD7B25263F7AB9DE276B20203ED2F2F43E7D52E442EA 02EA9BD77721C48D819AF6A522481180B75C940780AEF72D451D556A9B6781C45369984390B393 A873A2E0ABAA5D91DF10A1A29E7AF13F74FC678716FAAD7523B721B2B9C0C46C358887D0A7F655 40E317B0F9B6359CB0C7FD951F28FD77D33160CF072D79559B31687A19AE294FE3CE1E9D30B083 F955672E43D601A8FED9C7FB8C735C681B612B327D3806794D061C3C95AF819B08515A2D60E536 D3DAB7BF64E37758CC9209777C62677547E065E20B74175EA87DD3836D107D867805AA0D7A913C E8201BF1BB8AA51657E08999788761B3C5747F40511D58798397D64512FFC2BE814C776B9EBB54 9E4F5A3CBE75D920B2BE77CC141D1D26ACDD762BAD54CA7C37EA9BB718059948E6DD2C404BA4F5 08AB7634D7F7CD84A3C6A1881026AF15EE46DCB249436A9EC02E96D88AB19180FC2D01742ED7F0 2D7684B698AD17273CFA4164688C5B411D9E43DCA5806223040AF23ED0534A1E9D922380EEA882 A5B861CADBE7637EFD6064E56107BD6237EBEEB8DA25B11BDF0A02569374B70F09818E9A8A0F6E F9267967EB87CFB403D57215869D265E58194178AD151C0F774C726A2619B08515D3FF9D9ECDF1 4A7A40F43A154D499086B62D82BA643A2742C2F9420D73D7137C20C5C9F9CBAB60278E6909F8C9 AD368E6CA36624FDDE2E1F9DC3A76681FDC202A09CCD9FA7904BD49F29C645AE4B4BDE9433D44A D304FA982F5BD914F42A77EE7C4338435F8312EBDE34BF5F8D805ED362C6A99440A641DDB01CB0 CAB5E911A0E5A2935F340AE81B91592BED1B4272CC03247B1F27AB2E9B23CF77D3DD021B907460 F8A877545C42AC468B68586F0066342AC40F497397DE037EC5F5C517146A72CFEFEC3675C88146 52AA1A648DD3194BE106291289E0A0170FE7C1F0616A12E78E8FE112B7B2F60A623F49836F3FC8 CFE47E820E9911C19AB297882D2311F41D76452CC9DD6F6F95B0520BA3EB394C15189F9DE9573B 85C09AF740EA834A5EEE27A0400F1E3A6B5F86D0C69F8FA26C7BDE10DABAAB8F7B3EB7071A72D0 A21D82F17485DA6AD12BE8668D39CE0B6A4BC7B59A9D8D6A47A15F62D2B41283E9F23C35D2865E 10BFB2603A607E5246775F67A41E2EEC5683A709D02C92F4D021E07649C4C60A5F0E98D44CD83E A34297942AEC4D397C4672E5ED5E1FB1CC51F3B6CC7E8FD0128D7935B05872A6B8D76F5154BB3F 17A4EB5BA0437DF785A63009C1D8084FAA7EB5145E5BDD31E9984DCC2ED1711A2FCA3725445AE8 C78BB1C692F2FCAD9556C68E7C9196541B9A4F2465D16B4205E345D096E8E5B172CDB1E784B228 0D22A28813998F653A4D47B5346C636D7C22CEBF2DBF433A8790FAE8989A18C674BDB566FFAA7A CCDF631AE4B1B2C876E45B911CF9F4B9D7BFCDD2684553B1CC0F3BEC3624E44F023BA223E83EF1 40D0E6D506E11ADB79C0DCDEED41894073B75A931D0DF6AA89078910D35E6F65B956AD74F939A4 B30DA755CC42918F3E6B748F066E891F0A158DDB4FFDEAACC6E71A9AE04DDBAF899F796A80F6DC 02703C64BC7E021BC292A9684305D59CEB84F579B0BDB215E4FE8399DD885C8337A6ED127AB50F E2B562EAFD20C841E7E5DD1DF6993F4E60B59C6FB2B8660ED942D360C5DC9D48A9ED8D9A08BB4B 8F7D51AA81D0F6B5C63E3633EB4A8DD8EE07E99ED5A455B6D5021D91C154AA57807357D477BF2D 626D54E365DED3AA67230CD8FE70C51E3EBBEF88FC014AD287EE77170EA9E47828271235BAA930 087CD8749F3528C7C60AF3EFA55DA68C6D3B166ECC7B0A88E4077EB2C93BC5894EF84D9BACB493 203015DA8CD9EF106CFD123E8057AEEA2454C9651D312E4F6CB7CD12BDC1DBB475A1DC725A21DB FB24F55AC85BA2F07531B23ECC411FB2B0DA6B7379F3BDED7DF2F412A016E9905865ABA4274EE3 1D932014FFD8836B8CD636568CF0BD2A7B7D4F51D716BCDC50D56936A297C0E7807674BCDA480A 1DD90412EDFEB4F18016E5A5EBEF885D3D33E2D925831343B0CDD184AD9D9779F0F50805894776 3DBFE9EED1AFE3FF0DE7D8691104B4155821FCEFF8D0BA9F35DE1C39B063394E2F76B0245555AD 78965B301411E1D93B5D7C2284848B3CA29776059D9AA4CD2AEE88CC0007376C6EDEADA2DD1CA3 F5293EE8E2C9B0F1A8F5EE9D009C63589CD0A7003B7911C254B780C8545203165601845624AA95 2519CB7F1A1CC004B84458A19C7EE68FB249930A268BA05F34C08FA72BA4E4E6919EE667DC762D F206E8BD03D6A1996887DE81640A2BCEA4052FCAECEA52900A9296A4A399F7ED0C3D7D3852A897 9F339D42D32911E6E119BCA337B7F09F2BC74BDE2B71113C439397481A8A5AB3EEE1EF9A2DD798 E9CA52E836034C536C07CD377259B9B72FE7FE68A1FCB8D4707B223AA693CCEED0AB7D97FDF90D 84DEE522697C071AE0EF306ACBC192AB9A9FA397E6CCB97F42FBA37818A844FA045AD2BCE7AD5F 0731590C7A26AB951EF94059198AEEDBDD869096FEDF9EA55D22C23EB6E4ABDD469B3155CB9451 04C51EA9717EC395B7BB64E2E4AF5D31AB85876028BC78E0CD3BDBDE214CE56F5687B3009DAB8B 0AC6D75B13752782F56C590AC4FAAEB6DA1462988BD69173190F7A486077BB49CBF5FFF612B0C9 57474F5401B8B1E8F240EC3F20808DCA2F9F2D810A07498297DA66D9AF329991DAC432BAB46C01 F1B17BF8DC6FFF54F40397026ED09977520A41BEB1411F9334E8CAA93E5CBEE598A88A01B25601 8E529F173153A67AACDE4A8296BFCC5B88E6E20B29D083889C18B4D38418B12F8F3514FC95130C 58A0891AAF8A9C4457603EC6FFD26F0E1B957E783D4F309F4B654980C22D29CB8646C104621282 BB301829676E5F3D07F090E172F9A74E9E36103D3E7FD4D7AF0F6AFABCB9A21250BD6E07A1AB03 66719B2AE6B8B98B6782AC722DCCD0DDE69FE9E39293130A206E9CFD64184A589C4893C03375B7 D7094CAA426EB2DA5FF79C2DE45F5893EE2AEA388A2AADBAE87FF70B629F304AB0D81D41F44352 1FC0BCB558119C9FECF5C9EA1A876A0A06610CCD279BCCF198AA606A2F4554880BB1BE38A91B55 48D503EE76A3ADA011EF1B31F25B3A6FFC1A6C6544431CD1E1DCC06789C88584FD1878D3F5F565 3B6FBB4B5B4795779F976252E9F3F09A482F9C8DF00B5EDAD6F0BDCB811E622A4FAC70FC0D6F6E 37625FC077D143C6AF7E76280B45F241C2FB62951447F84012AD8401C0BB7B794709B48BA3FEA5 D85AB7D9875320A13BE8934E8FBC8B353DCE93A16979FE3A97D0E9A8B5D1F7DF52C6C18F60AC87 C8B17DC80235023652ECA4275A901D9468AA7766128FA157DD051060A62CA5EE8235E79CD8D5D2 B651066E2D8481A717EC08FF985BCC2B4B5D4BAD6408B0557285903F26BB6698710CEF6102230D 042EEFD6069623A5003CCBB8B71F6FCA85A88347DD13459AEB84EB4802ED2ED98D02494CC9CEE7 FF5FF87319C591C72CBC3F43DC7DEE2BCD0E96DF6EE42949CAC9A7B7CFEAB55D3473DFC3724105 81D8C7CE893A1C374D933FC9CFDF462481D98FCA27085AFDCE8CF359E127DCC1EED7B558FC6980 813EFE260620D7A7BAD331651C09B2C7F5EA13A7D095368B1453C7E14E6F6F4C99CEA3F3F51256 77A448D040F2D496616C86D2F6774F2307163FF9C0AB8AC88B20A6023E60A2C8B63E1BCB6F59A4 2D24C107DEF5875E7EA1062646DAC43CCE029F56E91A49B0BC6873D1796DDF7A0117ECC41DD4DC 792B5B97077E2AB5492876A547074A73D404CBA4B5C0FA1938349B7C156FEA5952AF7DAB0002CF 84A92D63E38C0ECAF31FAA2B2A033A3D382C3A4416F554E4E00100D122B2D75AF0BE42C42C7B1B 4E515B81F4EE8D3F9C39796A63506223415C2A55FFA26EB9E28ED5EBCDC5D2E83A3B27DFC8B6BA 8DE74DAEC630AE7BB6DDB12A42C1F666A05EB18665EFC68FCE7DE3820485FE9159E35EB35E2932 62FCF5712BFFEDBC974E5990BAD0D64D820564F54324323B31ACF948B3A27F4AC397A958864268 5F86D44EA685BE3CBF1DC01C293397B8E3E457F619D8B6A85E75D838219CCBABADF23C0E4434A7 787DC52DB315BAE832819F2973F11C045A4662F51256BE3967C3231CF42AC7DD045786B27E377A A42DAA473A697EFE962CEBF368F10E0F3AC73EBDDBA259ED770D8E43F8B39175BCFACFD1E31DB3 88950902A66926774EFA8EDF9649BD8AAC64702EA9ACF5717B5C91B4C150EA2A98CD128235B6D2 645FED4EB709C91D4F71F2E3B6B971A378A7B3499773293D47B59AE87AA1F3220CCC3022066508 5965385DE8031B42CBB2A2A0FCB9A038AE2BB898991A476373CE559ADF3263F47D6C103112A5CC E3EDA9EEE4C24079F0EC6F88E9AD54D1629606C97F6EF26ED0225718AFAEAF1A21C712315C03C6 9B019D238C17AB4FDD0A52E840E28C6D83D6DBC7F04051CD5F8A61654B3037FDD8388C222A55EA 4A423F99635EBE452DB660388127204288A88BA9E08B6C31F92960CB9B7557CD754A3400D48F1F 33EB9C6E820BA19A66FAD15A086EEDCEC0386DDE30E8FD98B3A63EAD8AA52656EAEBF9D3995C08 083CB2901C8C04E8CDDFA28F89FA371822652E71531782D1388AE97BC059278DCB3DF5D175DB21 FC34D07B6D3DD38F44E6BA13133D6E2D54033C4A77F0A4B282069477761F5DE689F4EA7F734BB4 5C0C3AD0198A5C9F9AB087A38A0F47BB85CFCA1DA6E818ACB5B1D9B322EA1A67681427A2E92A5A 72E27208D406D2F24CD583EB914DB7615EA17B0F471DE94AB404502DA4CC394ECE88024B6AE998 CC7FF2D1383E183DD4562ED30BCC8BB6ECE442449BBD57E546AE5E6993E2993A9E0E49784366D2 6A0D3A301F81AD2413F564C4F36F7F8CB3F01E1BC0609F9B6CA4051E30485865768C9CDFFCBC7E 8E5A91904F43024638C4D70994F32D75845F9F865E9037491E7AA0877ACEDA00AED81E74122F94 BB270ADAB594F5055D2B856F9615F1EDF02AE54BEFF75D33F53589F82AA67139C454ECD8077C8F 53509A3151A7EF94E80BF03F881A0553D321B41CEF83350CE9B40F8CD187D37F9B0C0D7537D498 BBF7ECE55A8F58FBECCCD0A67EB9D86889EAC4E61CD90C40992344C0D79FD1C8ED6D7272B48406 81B99C5A06266FD81B0904D89F1CE6CD26D9844358263E5385CAD345FFD28000BD449B1391BEAF FEB2E5EE56A63637690F48105EE0102E398868DE9D2CB1246234605FB2A5165085370E4EF4481A DD0BC5214BAB5055AEF44E54A56E884F96CD9DEB53F44D2BB3D29839F3780655909B8F5968B491 83E5D0978A1D3EF4A15D97EA1D3F1B16FFCEAE52E18F34BA676F2D478A5CE9EF0EBFFA5E0E8DBA AF563359E5B0E1FA0A861DAF2F664F78B338999DE20CBA9DD87A91C7FD06E12F3FDDA8EA27F945 DEA14960910D04FDE66293A8BFDECBCA8F5D1267CCD28B5161C89CEAFCE617CE08496BB3DE963D 34AF77B9BF7533C46F910A673D6DBC905C11D166B26809AF418B3A8CC243E92F7680B1B02A56F3 355FB37EBD6F1CF721BB8B55199F04707C9947CF0747A124D6136C18091F700C1DAD3F30CADD8C AB54C79ACFDFD261A443C3221174F869DC157F61E198A69E6267C9B48E78E907CE5FE7FD4B53EB 9189094E0EC33829F7C27C6AE1CC732C3D191D522CDFAAD023A181FD7B5694F0A65FCC20F51570 95EA8DB3323E2DD26FC06CDCE01EB98A5ABCF0DF84F3A14DD67EDC748193627EB51C8F6692D45D C830F3EF7C823BE662184B79F6B523D75ABB3E83F0BD78369669A26728BE6B6709A835C3299A54 25D05DDCA7CB954F4B325CB2E5E6C28C50C59EB0163915521956EED1A2B2DB82B22F7A1B9E9CC9 F40044CED31C72E9E85B0244EAEE92EE90CBB3A8620A53F805E9A20A6A0FBD52DE2E75ADDBEB97 3C3A794EF204C634F464E0725FD33E8146D31A976D305EEFEEF70DACCA2BE227A1689BF53D61AB CA013B235A2E921FAE0BE489107B223E99209B7CAC5355A33F2F8C04996D075E18007DAA3C1319 EA66E669C4198838FAAC9903B074510749D671308C9BCE1D173D6C296AF100581E501106717F9C 59E3A29537A16D376D9BA8DA51C3FCAB70B0D0F61445AC05758F1B579DCF0B5CAC6738FC4C47E3 6F5A3A27AC9F19045BE6B3D5482E2D30962C3141E12AC96D59E6D43448F85D1999A39827C3DF8A 933571A6585DB257603471CE0C77950F8A7D3C25FD60888A26F6CD77281BFC5F4A72394ACCB7C6 A9894B6015226109D1B043004363DCB6CBE56449917861747F1828E6DB19F835E328524A69464B 60DE76F08CA1FEBA7DD75D78778CF64F0050E225DB6A44C785592459BF38CC075ED97583AF0E17 EC67B74D752E580533F98000A39CAA0A3DEEA46B89D864E22115A084F97B5B0D3A050AB3ADD338 080096BE5A156EA956947EA2B1BE6C357BB1901DE7FCDF02D78B647E1FEC144FF3C8A7711A894A 1E7D849A60E0860EBB256E15C5C995951308CF30F1A87E8D3E678421B7537199E27270B4755DB5 536CACC90C4772CE0CAAE1780BC54ABE0C3BF2627B64451DEEB875362F3B47E95577A80CEA03B3 C6284BD3623306A66907C6EE6F4E16617783DDFE3AB55448F80A97E8D5CE6B73493B8426DD163B 96978D8052FFCFF0B0CD91F1D366FFF67514F92F6B1FEE64C3C023EF905C2830BA7BB7CDDD8532 F18CD1BC5EEDD4E57FCF043625483C58AFFFE5EE5159F1707BA49760CF3D6900B2A6C9B64EED82 ADA8F0B96D7BD624A1AD4B3DF0118E86B98B46D72A0744FC895ED2248618E6A349C51A44A89C6C BEC27E525FEA388BF4A52D963AD520CF9A768B8E1BC6345EB434013BD9FCF6FC5A309CF7953DF4 E6A92DF3FBEF92FB1A4A7FC4AACA0B95F070E908AAAF4738227375A3FEA047E3B4823BA8FA26A1 F497936F94ACBF1920E2C18099F154F2D74E50A5FA623B2048920B7E0AF9446EED9C8D4B737AAD 85515672B6AF1543E5AF733C178FF90B89B6EB1E92162EAA240B158A78652680F3509F9C1BB21D EE46DD3B39A2D17029BC29E260AB570B29B02624F152F6D56DD4F2FE3DBB352A3CFC4AC0534F45 E31ABEB8C099BC8B7B829F6C7D2DA0C2B9D58E22A8A8BF73D9EB1CA278086FC1FAF212EFA755D2 96C938CB7EE5AA4E007EADC88E7205FA0874D44B769CA1E0D757968A39FCF4F553C14DCD9B34FC 5246D3595625943439F4F876FB6A52EBFA06056850F5C92D434FE017FB3D4B0E9022B2CD28C3EB 95F084EE99911CE955B5B93196BCBB65C2699A0C942A998F785A59B43C8F8DD87BBA6107854FDD 70B3763161AC79C7CFF4FA36EACDDABEA6F5CE84567AF95E389F9C2CE9E972B540391F167369AB CECA3C3D9967D41DDE6F455445D686B3B8223C6E8727BE334A73EFD62477DA3D89DE65F3EBF81C 4DACFC5CB89587AC9267B8670AAEC340FBD51971A3323B17978E110745B84C5E6FCD74E132BFE2 19BA1D812A645002FE8827DDEE54546099B47E82F3935006F0B44E174B675CAF24A8FA4CE10017 0F34E1914F3222DD851F0A874650A14866DD1EFEC6A2D97969F4E3DAB9D449AC50B5E4524BB5AB 96932237FA7896A5284F85E592B01D20C761D35BA83B4945F5608F30A77A84D918B6847516F96C F351874BF52EFFF38ACCE88174634AB0338A377E99BC3136A0600362EDFF0E1D42F8C5F984ADF4 AEA2463EC1B3DAE2A6CF86CCC2AA846C7EF31653605619C7D0573D27F914DBE344E5C11B697154 347E09F54C4108A1D71FA878E4B07D35FE056DFBA2D7B99C8F01134CEEAD849AAD3AF0CB60505D 519AFC82A4BF5B342575B774D88173F1BCF2D914026D3413FF187F9C8FCE3709CF0F7E9A793483 876A4FD3F0A29DD8DB7F470E88DFEC249A91BACCAA65AE26EFBC9CBD550A935741A5501021B9AE 064596C775BE5967FDFD3FC595EC5CEC2F185EDCF11492E76C8EB22CF5C91BB63E9AE2649D8A5B CC7A47943E40E3B473EB5E792919F03F09688B71ABC0B0E2CF64E1DD286236360F7EC828CECDE7 64CBEDB243828139AC4C72378B3EAE67D43CDCFB95DFE17DDEB6C2354FB8C52ADC0A666C40E2A0 4FBCD8C01936F04F1A983B68462205765CC6E782A2F459C040958CD16D8AACA06E1A7BF14BA6FF D570675A54E431B2D2CE78D008F082693123D18E1C3D27171DE5940F63C3FA5480E80B5727F684 EBC48DEF479E345D2C9003481AE5A7FE20A1EB0CB422FD2BA07A3208901CA8D782DA95F0A6DE2C CA3DE689C498A10CB8E5AF0A2203C5C147BC17BA14B4C59A34B9351321EFB281494423D0B784E1 622E2F3EE7591A23113B3B90D34D824549B3A0B513B8BFBAADA9E1C4879251BCA93E6C40A8731D 19B411F1FA3C3F3BCEB63F5B9B8E868D4F0B966AA867EB2D4C301FE6A1D35159B4B7BAF8227D6F F7A86BBD70178E4EF798799F4B43E296A889120BE0828EC211A38BF5A5AAC3C00494B0AEE6ADC1 B8FF56733A3FAF015E6BA38FA59DB63FB3C9BA355E5F2A555903E4A22F2D1F26AA89C21A623DC0 F0D8AD654C3FBC752FF21C16321F5027B4353F6C12FD340D272C2D4F30ECC9B58DC4A42F71B954 B2764E077E0CEF1FDEBA5A6A8FE14F3AF0122C0918DAF87B157BE507BBB50DA1F208534607D906 D45CA3444CE68FCCE04739262BA5B3B0DC0FAEADD86FC94FF14548C98592F91F89948A173B76B0 8D2F3F845DD251F09AFE656F69D115157309D537E4F663CAFFDA726A5C62DF8EDE1EEC7916F86E CEF600BA02901BC5A56086478A867024C58A4D8A631736FEA04F09C9DCB4B3EEF89A0C5767B3EB 8B0C2E5D08974638E79EB2CFDB509E0948BC42E1A9A29DDB09BD44BF28186C3C5AD4629D7B1396 610782E464BC4EC12B2C484F01250BCBBECCEE474F25DA98AC82583467B62D51689EE98AD2FCB1 AA13D44BC1CEE4CFEF34D37FB8789AF5BFA59D05D15449332B46347A7CD1F0791D48BD563BA6A0 876C8B00496E3947C0ECF78782945109BD9306030CBF511C2B4FC1E28868EED9E2039002C98F20 43828EBEC486919082BE71A7CA278361D0EB9DD7E21AE9CA80EFA147DCE160ACCD39924F45A821 D89721CEAC542ECD09E76ADD11FB1710804C63B1268FBC89CEFD28314D9D3AFC26FAA897B3B7E8 C882C4125D3DF9A67E2DE27A0245D4FD9075DE5D7FCBC8E48125D8BEC3972FFE5F8ADEFF1258C7 5506691E5DA81359C24A978EAE086E7E885D8151A515F15A475FDB038946F7D369644279C2186D ACD69FFD922EEB5397F5C3196548CE35D6E35C4DE6D95BE566665E4E0EE11EA43CFB9D0133B5E9 D2A6656AE1861C158AAA97C48DD426205842BBDFAA90DA4D5EB11EF29C24898D9FE9B29B2AB913 2A774418F0190C3D0FA29755168BFB149E0066DFD3BAD7FC405B28A27B2DFB2A356CF6F86ABFC2 18C7E164F6F0D6D4CBE011E77EE8A045A1D1134E115D730D944CF34248C1020E15955661DFB6A1 687CB54FAD1AD759B7EB209E6A78B4F3B4F049258E799B6FF7243B26B573D2B26AFCBC36324E2E 9AAF7206D3680EFE913A6E9F4CC8CC7FE5FDBE60D262D378A123D8BA928CDD6651999854F3ACF5 126C00179347DBDB34954378AE5A08A690A98413115809C95A6142A662DDB89BA25B6026064A6B A7D85963FB4D10C0BA1BCF3E73CD597D99C4CA47CEF4692A0EA5DC89C2A92DE5630EF15819840F 10FD394BA987AE798BE15A61AC464345E203B06A3ADD25E1607F9C750887F5E7ED7F2A12109914 542CD396392738C7B7A7DAF58A7823414D648CDA083CAF2133CBC0318CB11464411F85B8FC813B 4D07757D3989E1E5E063F2D8E07E50BCF85811766CD79210C6AAFAF085C74BFA3DA37B45386A6D C83DDCFE3DDBA6B3F999F91406D35374E60CF88F2920208C1D2A162CCA6B27984D905F3C271524 1FBA18949B6684E3433019D3C8B45E454C18485E54A74D196AAF9636E85D179E1B5F0544D09BE1 8855F32091CFE26A425F114C556B995935F821D811E0E5CCF779764DE6EC47256481B25EDCB409 E7A1FD2D72D6B5DD56EC9D4474CD5A9660972D366649D840986AACAA04765435F4EFA7C513A10B 1B67FBB112BBD10490B0BDCF5E5BD4F80787E43895D4EAFC807CF18103A4EE315EC4B71BBB6022 FEB88DE20D8C7E0244B95015DDD03CB93417A691CED38B37C27BD1C510EC50E2D82C5ABD32D24C 29C30888A2E889D0EFC93945681CA613478CBBB222810C4E4478915E598628BAD3A8E31402C1F3 4653671CAFFAA244053AB7174E8576085F90019E0DE486014A115F88DD9DB9B10E91F129DD5A6D 00AA208459CFC5A7A2BD1095DF24BE5DCBCDE96D79E90871084AE04C1DA8DC2459FA0E191FBFFD EA46B20240E40B6467A2455C72427B119BBB07C5725B823C112E734A09D07970748F0D0D969B75 1BAF2451D346FC2C56122EDDB88287B1042B9F24C933F541492D0683DE0B0325AAE667521F66A3 27C863F4AF7F4A937F7BEA60B5299FA5D170F9413A2E6EF5EF70484C0D861EE719126A942E0262 52279876430581F0AF1841719DA6E4D8C3B932837FBDAA3FE08C18E1C89AF300E3AD7DF34FB439 9BE9A757C830E18699450B98B49EED738C09084CA5E06DEF86BC58359DD0D203FFB11EFEB043E3 7B184DA9B71C1AB17A9709FFD273432A34B3D924CB2F29BF5DF84596AD447A049E3A451131D660 57FA9D4C24BF824D43DADBA7D1B2926C9CA62D8AA8C29FB2D00B0EAB7322873FA5F9E2963EF721 6BEDB2D97548F6C40E233B25CB3785258D0E7FC096ACBC0FABACC39DE29BC0E770474A541D87AF 69D3B8E9BFF00AF11DAF9DE908EF674079C7975D7443F30FE21E02B73FF15FD44C619EAA8B9BAA 889266458C136A3A92E7979EB53A04EB00 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lbtr %!PS-AdobeFont-1.1: LucidaTypewriter 1.001 %%CreationDate: 1994 Nov 12 10:47:10 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1993, 1994 Bigelow & Homes Inc. Pat. Des. 289,422. All Rights Reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Typewriter) readonly def /FamilyName (LucidaTypewriter) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaTypewriter 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 54 /Aditi put dup 35 /Ahmed put dup 37 /Alasdair put dup 39 /Alessio put dup 41 /Ali put dup 43 /Alois put dup 173 /Ammar put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 33 /Arne put dup 59 /Art put dup 61 /Ayman put dup 63 /Barry put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 96 /Curt put dup 89 /Cyrus put dup 187 /Don put dup 255 /George put dup 189 /Heinz put dup 179 /Hong put dup 178 /Ivan put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 60 /Jason put dup 32 /Jeff put dup 62 /Jerzy put dup 34 /Jim put dup 64 /Jiri put dup 36 /Joe put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 42 /Jonas put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 252 /Kendall put dup 88 /Kettleson put dup 90 /Kieran put dup 92 /Koen put dup 94 /Kristian put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 124 /Max put dup 126 /Michael put dup 177 /Murad put dup 91 /Robert put dup 93 /Robin put dup 95 /Rod put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put dup 121 /Sebastian put dup 123 /Shuichi put dup 125 /Stan put dup 163 /Stefan put dup 171 /Surendar put dup 188 /Vladimir put dup 45 /Will put dup 247 /Waldo put dup 215 /Wilfred put readonly def /FontBBox{0 -211 743 940}readonly def %/UniqueID 5054489 def currentdict end currentfile eexec AD776B2EBF901A49F071BF30E3DCFAC47FA0F916EC503FFC9EFF58A2E5E6ABC78B442C3E49096A 372F9AAE7622C3ECBD02783028DD91D32C0749B44F46D712056235A4901EE1E3989B3DC1451624 40AF8B496D8B010216C5D0E3D6D7F34AED88500CEE93E2A4889C2FC011056B0222BA09F5697B86 A1350BEA78ACFDFDB589C8D82923F5F8AD8C1480A7D7EE8ABF2004A86A75BE914F200B220B02DC E0C7FDAF4B89502B119D1FBD3035453DDB3DC564DD8289E85D637884AFEAAF7C6FF38A32C70EF5 C1B638CB40003001895712A251C27020F3B8D9166E77E2A69E1FF83886E0BE4327AC9142301CA3 F4DB60613570C39367B465BD2E11A593DC63EDCC1810C1F5EDBF099DE46A7BC166F52311BE4A2C DFFAB7110560972AD364AE5170A11FEF4E1FC57E896F7B0FE2389F3BE19EB48DB67AC766314064 174EF2E1412F25E41CF45CB6990732C755064FABE454F1B1D5EA703331A09A7A9AF323557024F3 7B24CB30C52216514E014870A174249B7B1C05638083915C9B633E3FA00DBA2DCCAD433B078A91 E405EFD2CF75CEB10E524FD95A2BBFF9EEDDFE3016F6C2D3E901B81B723E4F422A0B1442A0E63C CC52A0E72EDB5035D945A2FA1441886E56D2B10A7B5950BAB79A9653CD37F0AF255B3850E1ADE0 9CFF282133A2E30770C76618F58007FC51C72485EA377798C5C8A00DAB46815939973C8FDEBBC3 7B5C966BEFCE797755B7E73A5E55CC69BDAB56C7E658C86B8FF147630B6D222993D3AC6AD4542C 078835BECCF377ECA61A10F66C41ED8379C2FCC2A5380AC1CCA64D05CB08109D76CB1901D00BD5 4761978C3481B305877CEBCD436944FB66AF914A1C8D2D125DB01ACAFDA9A8F71BA3CC83FB11B1 6ACFFDE43513DF984167288E886247E02501210DD81ED939D5D18EE3EB3644D5EF61D2BE58B7C8 106045C8A3684AABBF8EA6EEE01208F99F865E297A03B426EB16D44B34467735A1FECECEA719CB F2E24F2A15395A18EC4F6A3990D9EAC78BF523D5911AF11C3EAC620D859B0B642984658A94897D 4BA3F1F622F2DFB6861BC85CEED6172393058E882721A9B3D2E00437CF7FB8DA4D1EC8CB1217E1 697149B23FB1BAE92A7E0FEDA0374AF59FF5CD141426C498D2749C85FA6E6E2DD07EE3FFDCEE86 DC3F0225A5EF81DAB98FA26C89B1B020F884D485893B5EFD6019A149D82925F3DD9694A1058065 EE57C94BD63E5DCEF57F5C3C850419EAC7C4BC2FB81A7D0BC322CB0F88943A6F507A2FE460EEEF A17DBA7B0E7493890299AE86ACE258EE4C7EBC2C9713406E365A5B30FB045AE0163723667C9322 B05319D528C8C67AAEF79A6C34459311764B75BC63AB5165F831F1857F6B1D6801E39931FAD9F8 8B61B304696763D30C0B58313D31CC287EED59C97397E8C0A748426DB6C0B7C4CA57A43E7E27A9 A123734DC7EA137F307B9C9074B908E53E60F99E98CA0DE14A5D61967727709E1CB009EC9CD98E 9D796CF35B7B1FF2536FF8CD9E1C24B7CDC0E89DC29BEB398CB420DEC645001D90D59C7A5B5E33 20425FCCFAA23ED880C41BB82A8CADDCB8B5BDB1D57F414F380BBC00B6A8B9591B25AEEEC69B64 D671A078F39369EDA9E5C9FED9D179AC25F37A4E4D1E438B180B24D851812E407B242F932D9D07 EE2E42BAF2FE9EFD338345C15F1C8329E91644DB1EA96E6F45871D8EAFF292286D7A70281381F5 82CF13F5F987F423463C2DB96A23D3D9CEF5B4636A092BA8FC7C97AB42BADB4DE493C0B0A54C81 82650C094D0B4591A2891949270492240334842911DFD640AEB2B5CB036BEEF59CEAAE37AEEB4F 4CB45AAEDEBE062358058A0D697972BB11E9F30ECBEAE599E404C7BC4C93FC3C2A604CF7F9183A 96962D3D0F03FEBF8D7A171E9537EDB0F8769AD1A442BBEE6F003B87F9EC0C4DCAB4C1BE74EF54 73FAD92638E347980505361CA70D6A28EB18E83ACCBC73C481D4B81F62EC2FB250696E436A8788 2728E8E960E09A330121492079CD349F5C8FDF0CE6824495FB17A3A97D7C031F9E8B50D10234D3 C02792AF0C0BBAB393968B49EDF5BD4F84D83DDB9500A9EAE7EEDDA7CEDFC2A6B3B71F885487B3 31028361BDA2334E83820C7E73A67B200F8E08B742DC3BFFF6E363AA1EA72DB7CEA77826A5D024 68C8B19EFF5F8ADEFF5235AE6AA50F43C5F2EB56AFA58470FB2CE038D35DF1FDB5135B8CAA9F3E F27BACD9D828623636044D161009F558132A6B6DF4AE9CA3EA9DCF94D961D7CB962C4EA67E887F B9D7A3C5F91166D41C8427A1E0C8BA49C21E968D52B92BD7E7B1F5B1800A27F3F7321E3D200B77 98D3F4B0AC1A396BE11D0C919F55CD8AF1406321E8EEF169B785AB38BA5AA61A5EB09A9F312697 92D98DE98AE49A1308A5706738125DE51C98AA3AFBBB10124FFCE47F72BA6A1E5D96FB5BD8F989 D1AB41DA7C2C71FD1C02CE697C81A0512182ECA66EC14CC8E473378FA9EB3927BC9EA91B1BBA8E 0C70BA78B1F7DB3124246AA9E4E349421623DC408D756578B11218BE2D6B613186D1D094179200 8960A7F1B266D7C4DABF9081725EF2E5806AE27E5D8E81CC7B98C9CDF8D319208DD7A75C2B0B1A 7C13DE5CA9912EF40371D9F415840ED99AC446E1EC958001243B0C39641846EE67E79217DC6AF3 02891C024119B55AE58D14B28B68225733BFDA7BC4D54EC2EC58AEF027BD34EDDDE2336EA8B34C 63EAACC4D255340CEB8166FBDA86587E207C06C6F804C366822435388ADD4BDCA7E345DA3C3912 16C19BD9F424C5C5596E3D1BF1C6601D5967942070320981295BECA7EACAA9017B29EE70538768 5DAA8B31D815A53E446EEEB107B369B824C97D5730A4D28ADDB131FA243225A69DB5CC61C9CB21 018510F1930F3AF2AE3987D5110BED80CD8B6BF24998AC07DFB9C648B0BDE300DA8853FCBC3C4E C47181B1665670E4809D03B0FEC298D1E22937C45159BF0E1C3278D727E40CD00A3DAB814D16C0 453C20F343C8767778E20C3E12A9C0F30CF38F782C91B678FA8B73FAF9AB8337EBC636E05518DA 74C57B6696BAF384BC34CF1F50DC361C2E745A9906DD87BB93310DAEA23BCD0AA967E8C062EE03 F573B67C6DBA52C3C78E4A6BC9A879A97924F26EA053CB90F1AE4968BEB209B7496B99E7102390 4591EA1246F12A2B401C36C3D585A3C3E42E95316D7B3BB95509256DBECBFCFA8182EE874AA624 B74C146E164A7509867514349FC6ED41A0EA7375C81E58CAE6AFC5524E4506458FDFF6B6F94A50 18BB41CB3BFFA90AC6A605B372714552AC2CABD4BBB9400485A50E1122F69011BEFD2EA53EF4B5 4DF3481CDB4F97F8BBB549612C3EEF4E860143EB2FAD42E5B9D5913E53DAE0B3468B191C8ED4E2 4B5E8CED287E7012FA0D16B8019EB890D9A8BAA01629B0CEA69402973EFDC1618CA995505606DE DD18D0474B4E08F7FFE947C323A138F944A950734A4586FE82A08B7C2967E67BC975B875A2AAE5 05935906A0484CC6C2478EF1EC03E885D86CEBBE5101101C11B7B8165E132D2B427B8583BCFC89 85A7BBD5B56D12F8C11796232B430613A8B4540BF45C97B6067A74BBFBF64851305257D1BEC901 238A7303E12BA887117301DF80559342A4B551F8189E9DDBC5251D2D384831269A092ED1971292 2396105767405896450A1F07F6B660F4BFD98369836EC514D418E4ACD93095A6AA2C44D0912217 F48B92A5D7CA170A6293B0A4139BBBB39131E2B6F5CCFACB550AD74DCD4D466AD9AF69A409D09F 5ACE8C98851C20E19E4D44B1DB30905B9BE08AC52E0A1548793C591CE0E29DD2B102756822B36C 6E4BC505003DEE549BBAA843BA5EFF252F0A5E4CF14D1EA86F46ADDB6EF52427E0B6E2861583D0 885196B68E53D9B72793100CBAF160F7ABAD3A8E2887D078E7F78FDB1437F0A58A20C7E300ABA8 031E30B35D34628DF6E8A9689F2C5A779D51D6B673F38730E2C28CD4822168D037138B5DFA7A66 4318B681D41864AF487BDAC6E635996D21C5EF1D16BE5CAF809C6E34AA787121164292ACFFA289 15A115A11700B26B0BECD9B05A4CE538438BF67209443B4ADAB5BBC40F9F354A90CE53F0C24AC1 F2C37FBB9022B23FC9111E292ABA30410005355D49B56D38F4C33C37F8A891A88B2F51957420EA E5D22618FEFFB7C1A6436E75E4E6F4F8B3B847D4CA12D3D925A3F1F66EB6D87B19A53042FC860D 2A57D2B2967F001F6B56DABED79E82D33107FAD1F46172D4EF1A52FFBAB95A33180B0AEBECB34B BFA4DD57AD85FCC81833CECA2A9D4667923A57CF8CEA991565051E3BD29DC4CAAF8B8DFBF3A76C 8EDAD02C5F5EEEC19D462EB48758B2440329F43A38CC21D68D26FC54179ECF102F15AD9AB1DA75 046419CD4B0FE0BB79C77A72CB9583EB321C978C8F68A3568C52CF0A85C938A8065D18DFAC5C2B FDC4659C10A237F09B924DDE6B6E09EFB77C158F9DC22E6310ACAB98218FFB6D547ED3D5590541 AD5862078A9CB34C2BB08B4C3E620E0802E99DD0572B36E7B7B9DB269FBAD73F7A49F711E2F790 2C0F15494D642FD63010E3F1B5240ED79B617A655D5FBBB5EACD66B85F02C54023640DF5150BF9 88B62D82E068EA4E35824FA098321F86B68DFDEEB8F575B85AA76ACFD6FE55B40D2B141DCC1B65 DDDAAA3E790F6B0B491E80DE0277D25D48DEAB2D8E48A004C36665468CBE3BA496C57596AB679D C80E9F744FBE8041D3AD6F077CF65B0612F180E8403CB8D58BDF46FA5615F5BAE1AFE3959FD4A3 EB1743ACC7DE83ABB701E949613BA573A67B4E9C816348078B2F857609582E5F144BE599EE4B15 85A08F81174FFDBCD8AC2258B7FF161EB3A1849054B66934DD76DE536680E3AA92EAF1985D5B56 C68B693A3EC10AB0FFB2B88609E8870670D2AACBA8B20E9FC5ECA607D3D90167453BB172484A55 141AD585EF5173AEF115B5BD89B653246AF9C2FE922A8F56B78E797C497318FCACD97E8F33627F 579C8D1254166906EB06F96DD5003DB43878316E2EC4109E8FCBFA4B978AA15701BB16D633C2B6 502F6566AA3869B9C94AB303617C3787C7CC6CBA808FE9C4E67725672D654E075657CD646E26A5 82C68B47CE90C154A51CA289747585668A5A2D4D73D97E730FDA8F9B648B685B409A742AEAFAA2 A818D0897970766B186FAB6836899A1091CD3B9503533334293ED15CF42143C13CE2D05A6EAA2E D1D12A3DAF28F9178B9448E4EC2A8FF6CADBFBEEE028AEC622D3CBA1118E92C98C4B303F8588A2 3012067D2E1481E68B4ADCD6594737FB2206763B5023A0148BA31A165DE5384C63480CAF82E59C 28A133A775A6E7E3A5A17CB8D9D6A3C9F3E638F67CE5D58926932DA3A9DEA6ED2CB7B5BBF07C6E CA417769D07B64A534906E5CB96DEC73E8093209CD2A85120F6E3216B5171B4BA67F2538785907 BF3B8A912CD7E6362E528AC47FC14F2832924FB512259CCE6B650AC1730C5E531AA826D86CB8A9 D9AD673294D4F1D3CFDF738BE5BC6C9401A164C6E7850794ED6587D592F44D409855639AB72C01 6C55878BCBE20DEC3D4C15B0C0D47EEE44D6A4E91AA1C297D25A44378636BE4EB6517BD486DE12 950F53AF60D94F28419AE67BC2316E26BA82ADA180577C6CE2A56FDF0C1EA9B9CA2EF55A95125F D667870226ED5D780A34EB34F468460EBFB8152024F200E40C6D42D5C5513E163C02B82C42FBF2 E4433B60344D3EBEA637C78F734FF3321E743437F5AD1B92429B46ABBDE8E115AEE2904B3F3FE2 369679466A59EC0433FDB261E8B2F227CEA66E4C57DF67F92284F0332A4F4E46431F282EF59975 C430121C5E833A8174095118BCF0CEC899EBA8313C3690E85225F5212ECE4BB82902B0C662D78C 37747BE77B81F47C24F088F5F94A18BA923E54DDF65B9DDF5E9D64E4D8B086BB808CA791A0E8DC 2DBBA31CD58D21489EB64B11560AF93796A8E1E206DC7C15F4310FE985E47A929F76A6BC154FF4 2C07B6F96E03F1D6BEB10A0E053C8C7DF0692929D1B62A3074DCAC64B1A6821FD25F6B434BB016 E3CB58286848D04B8E743C400D477FA5F2130352AB8932CBFDFB9FB5C6C6A6EE9DDBA6DC41589A 89D5F223DEBECC40BBFE5CB5E5DA18A511450C6A679D10FBF99F6A391B11189B921246FDF6F552 5083A1361F6B232E1F5A25F5E1D0DFDB1B812BA87143407C8ECABC78E5C7AA0531293AC7909A8F 7E27C5A87099723739C93CC4F955995D664D4D043D5F4B27028D336A03313A6BFD8A4E1F4023DE 1AA5A0F7EFAAC52FF9378BB890ED9B29F50DBBB920676A54FDAD07963E2846D3733B7417BA5334 5F57F1372E89F4020DC6A0AB9035328B0DF0DF71110C2A452D2702488A229B54FEE6845814C21F 764007C8E119CF84454F608C91E1797DB85D9B8210BA1F7A7CD12B2A8AD55DAA18CF2042F4857E D37C2ACDB63984DABCCC6BDF6A119C464C7D6EC30CB2E4620948B1B7BEA3A2DD88B15EFA953B3B 69C2A624A0CAEAEF17915ED4389D1217080B7F7D91887E055A86A6B287490DAD12D6165A0243A7 A64587BD329E130F8E522D6570E59A33595672C7110FA2B8DDA2EC48F45671492804DAE5DB40A5 42E21C27D2A5F2C37F00E871C3087613F11C6249EB926A0463D0486C5D5919A0A6A556D27A6AC6 0E6065AE76BCCFCC3525732DF91F7C0F24A09A8C2053C231348BAEEB93395AD4DF4AF7A99DB0CA 9CB512D3D71496A74CD776A68E38B90673300A297F6A244CCD0341112F42CB9955DA3980C15BD9 68A2B0DDACE0A835ECCEF41E8CF4EDCB493B59882F812BC4D85694E508FC0CAA2AFDE8C0B21F2E A861F1620F6D01DFAF25B3ED11A7753395F97FBCBBD1E3AECC00B5940A6651BBFAB3556F720081 8AB5744975F71644FD46B060CF74147238B6ADC1E9FAFCBB3C2D2A3F92FD4C141C520978A992EF 90B23EE6178602D2ADCD143E49C6BD72D24C3581F7F1A76E9122B4D8C9DFA3FA94D3CABE5F84DC BDD90ED86A2E6D8C63EF7177AE85AEDE1A594DBC3C249A7B108AFCC6C75A502EE3CA0E733808AE ED05CD0B95431DF8AFCBE86D9EA04971A1ADC6558B5B82E5BC3F98AF6DC4401B04A4D39335C7D8 13DA80152ACDBF6498B99B3E314D18981340A1117D206368E4F2BE11F46911B33BD6FE35B0109E 5B294F59D3F025FEA5C2834ACFF2BE105AB95BAF201BC50A4D98B85C970AF3E39E0B05D15DF28D 0A18E82FCC16D85BAC813A9501A10F4CDFD022905FA5B10C8763361BFC4CB0FCE8654062C0002D AADE193096D10973533795666EEE0AE8B7BC76D60B1713769DAB8AEAFE36A6E6786DCF15A1A890 7C4DF6D252A5CCE68B28B6F564060A53FCC5E39E97FF61DCDA09DB31BAC530C8F5B999B1FC4E36 A2906088897488081D74802A693DED16DCF651F62C15EDD2BC721619F848EBDCF226DFC535A526 C3247E225CB344AAAFE6A954E89B8330A9F5B05961B5A7D362CCD2268D993EDCEBFD46C2944C91 7F004CD27CAC0F142366D8F2419CA77C36770355CAB1C3BBAEDBD7F4D0150C4BEA551AAE4CF898 E5962B6579F5B13A3CAD2EC25AD7AA6015D07028BE165BD40F27A9B33FD805B8F42326CF94589B 29249E4859A8D0F306E3BCB3A7EC3298904B0CC87E913B90149C765A43CC39144D523D6B26A509 E00236093EE99B3513AC69DC5A2941F1E48A71B213559621E5BE6A641D943FE3A13FFD796F2BB1 A6C452A24E4B9864FBD9A9B5331DFBC5DCAAFF5EC6232F15E9412BC2230E8394F5C0F92244FE91 8043D83E3790475F6B35673F695244CB303D708E8E92731C657D81C7A28EB491FD849179BD0886 E72E47F1B4C34B465B4B0A212D57DD804C7CDF5814B1E6B87C9ACB9C74E1EAD3C4B8889EA4F25A 0CE27AF6F91593F0DA3F55C15C9EC3CDA8D6BEB60FA0D8CFDD2C34C1B0143C36A80B3F77E9E4CA CD42068746943063788129B9B10DD969706035C3FB7971E9A56EF6FB3A0B4ADD1D977E014E1417 ED81B819435C8D8002AF809C6A252FCF5F17BFBC747BB7E604C9328F353016B85A69F468164401 67563700E8EF94313BBFCEC58B3FA6C89C0F79AAA61537DCE0B489ADF40540989FB040E2FFC535 0B85D9C011A94B7A806482E02C1038F47D392BE62F7A192CA4659D8F0A17F1D53DBE33A6749125 CB64549F2DF8FC0283E48713E166A6401D1DB6193DA6F4DFA2AA7430EBFDE3DB993A6C8B58132F 3D57AB5E466566ABB13D5C29BA2262F3F6F574D275CDCD653E1F8F824F516B1C688CE97C14FF3E BAB81F8FBF0A6F64648BBE7F5AD5C331614E5CFF13CEA871D865F4F788E4ADE8984BD939AB33E5 17121276461DD3125F3B56CA87900CB449B6497FA6D4F5FB859038374D5BE0AD2A34B1ACC9479D 5530AE8EF469891C174F8860837F7A22F72590CB8309079CDE324BC60787EC690F901A69FAE187 2B6D4D4576F06F5CC37495D0C72A45AD47D2F6CD216FAE7981E4859B5845FBCFCB61829A6BC8A8 E7A9A0F53C020767B5AABE20CFBF2504BE5BC7D32DE9B56BB1F0C48330635D3E72E4913CB1BE01 28C6BD47FEBED891A3FAD8BBD5F916B466E974F9CB2B3129B29DF1F5FBC7B2BF2AB8B2769C12E0 435ED3208EB20E9657200806391492BB1E5899EE594DDAD170A0A61BB6A1D0581D685C80CC2F9C 5E5AF62ADFAB656A33D22F7A572FD25DEBBFEC4B36242F8D77D18A0CBDE2FA03CB8E9394B9CD88 D63CAB57E79081650E58E4BCD0E5A878CE4621251A287C64035BBEAA80881D504C75032F89280B FBFC4991241167BEBA653AF5EAE9B1A3280A58B9C4C59B2FC47659FD1F42D37DB5470E46D2ACB5 62A1D0DA3F4EC9DBEC40635018A141152BDC88F33E79C6DA6DD616BF689E052C0464B62A1E61A3 E58CC805DEE666FE4B4F0096D6D682384A2E95FFD0B542AEF848E1B54056BAEECE36F0C62099F0 4E0AEBC007352614E0349A18A2614FD3998C9907BBDB681C74DC3A24E5C002EB64AEFF55CB6EDB 44CA80E99DF02F8A7B1016824AD38FE7264BDAC41E848CC7B7B38B0C50FE417455BE9AE00F0F8F 79B0A5F492C89CDD1D18F6FAC750437A96608C131AAF7A9C5BC0D3110CCBC25B19C7F1E3906C27 8935A398909D2EE97723CE0207E9CB29807CB9F8ADFA813900D190DD0CC8E3CA457E8CD392441B B800B2B30D034ED66518D487F4F3C33DE3FAC0F88D9A6A597379C2500A6954EF80302912AC116A 74A520C2E40AAC299B78F63879F31E2A8429B13DAF83428B12DB5AEEE33E1150A0FF4174DCCBF3 9610D0BB68DDEE4AC044123B208F3D37A5CA6A646DBB821975DA03DEDBC42714949104033A4C31 0FE6BF0B70F922EFF8C51CA42B1CE7FC496B43E2DDB4B20AE6373972105DFA5843E9A64F63342E 36B154E1575BA26998878A96CBC9A34B2E07188D6E1E8E69FA557DB604BCFFAE3675E237D97F5D EF4C8D2257AD409B239F1D9519F9B718C27B998D69EC2B5321F97AFEDD8F7466E64F45A0843594 7B35221BDF77146E4E33F08935C37F0FFD44D506D8382536365FB3972C455A6EAF0761A03A85EC EC2E8D0FD1FBF0BD829F18874C7C25D8F0ED087F9859136919DD52AC3AE08A7D848E5EB11CEB54 2BF71B537DFA59D6E081574AF536813DF6D9B8B31B83BFD52DDEC2D7D833621EE2608619F0A61F CAFF7EC32F2B0727B24937644F40DE81F6D86FC17A3417392B04448A5EC54C0B0BB1B60F38767A 508ECB5B30113246F3A3066310BE7A115CD9D35EF4133A4110B10D62EF3077CBBC8A3C64E5566C 19BBA49AD10E1D5D11BD5A31DC8ED59EE62CC19143533502D580237950FE90B7ED3803F662A522 A3DF2BD026CEAE7D614EB0EB2D29681934DCF9AB2E6124A18FEFA62F2F478B87E2764C59C2EFF8 946D326860363543F0392CB582F6AB173AF2FF031E77C939597381F724D242E49D323CF0BD1023 74B67D028C331B64DB4642946C72E82092A4890A5491130E312ED47DCB238161CFCF412BF7738E 81B3AABB3CA492B716F92BC684615519BB513526C06FD5BAB6F196807D675DA47A7AD0216B7BB1 35C9EFBA46313A9A7D3E40A5B7E6436114846D1032A163305534DDD10DFBBABB912B1E18882A47 5154FD2A0FB33F1E4AA97827FAAD01CD51F62E492AFCF3B870B5B90AF7CE345F99D07F134A790D 312A7FF00B01DF37741A5E2B98DC2CCEE6BAB34978374CF1CE2F83F03ABA437790E0BA33A0124C 2C8F4A13F3F0D00383141A952242B2129A0B96A45B1CC13255B3118991293700BDDB4E29BC913D 0A3B44D9E5F7FCE6D153EF4FF3824FA229F841EF6DE46E113C9B602A298868AFDD1825CEB017DD D59F67ABD724D8ECC9261BF90C413BB4818D060CE5FE0B0EA9CBB65850E5FA181E9713FDA06800 FFE7C53D9EB62B222ABD8E12EB6E149CCA7713C5639ED530A30DD12D69E271782458E53CC14DB7 5B053E7D61DE9E231A78C2391DC18EE092A5F76CD61AE5B7894B78CD378E0FBF8056701D4990DE 1EF0F36E918D98CD907F624E654836F18A579C7BFB23DE3AA9D59229C3FB1A4B857D9EFBD289AD 0FFC27B6EB42148E7AF8A802C99B14ACE59B52A111DBEC97EC5BFB0F970C9B27AD6231D66F1744 74207E935CD40B5D3787D85B46D4C33AFF9DD5029A0172118C624DA5307F9FA33C256FDA460479 205650A52F5591A14027695126E5AE946A7BAF34835CAC37560EA030B3DD2B06A6DFFA0D02F634 E344CDB5260D84FC6338DAD799DAF44C46E4C4DA1854160E76FBCC0916A3EBDE474E358E9E8B32 8F1223DF95A0F1F8CCF619FBA607F0276C5373C293BC4C4D653893B83F3583D9BA549F8D229DB9 44D7B4B835F97197608BEB526AFD58416980C3C8ACA1080C09797DA0A24B185C793636A15FB82C E003906B613CA3D16DF1D7C51033480123FCED0205AE45BE3DBD332DB88D0BDCBB4DB845AC13A4 215B94ECFFA4D4E88B4BC5093770D5DB8FD7B87E8E4FA0E58F651270701EE92A3B287644F56B40 97237BAD7453C25D29B293ACDD4A295284480A3E19DD134E77498E16512ECB44D77EB24D6C35EC 4586D9B73B2F60FA1F758FA86378485C37D595ECE1B0FD80D64CEE30B7F5A51A724E72E18A9B22 AECA8129067304660294A309E9797F8BBE2402581F43D8636648EE6675C4D30A8B50DFE587FC41 E5C04B4430C58AD44F57C8F6AAFD4750AEAE51BD4715838D8BFE522C6F17ACAE809C3C39F50D72 CBADA2547CD9D0DE80980C53D9ED68E73214037B8A8E365BB3DDF7350A2D1B9AF3ED802436D1EC 75C60C3617995E3AB7B8469915D80285E99BEAB6BB88A9B5A388D7D7CB950E7DBC168885FC5173 4FAD3CABD91109104F52525316943C6E16ACD17CAE128D81C0D98357B0B806ACB460A5E7F5F7B2 385060402CAE0CDAF70188977249C809CD4C6B133ED8447B926E1A30D4FCD0968FD3FD45B50F6E BA94E72E87D4BC7ADA4DCC3D6DA0F31517EA9DD89F6751F707980CA84CF406F7A786AD8E4377D7 5506A96F7293999800C1A59CD813F18398A4094D7426E250BD21F87DC58C094BC00A567541BDE3 D17E1BB01C4AAD986D1E79CC4B29234A28A6A323C0FB98B530012E523AFDA4915851952149B238 CCA18B8F974BAF6CCB738D05B6BB1FCB0825FC1920C4E3AE8A1DB3B7C02991A543AFC9D38DDC1A 563793DEC85BF313F6CC40A1C8BBC09580E54EA3CF1E399F8EDB969290A3203D86D67327E567F8 ED390542AABB07A0DA177C3C6B44F5BFBEFB181DBCD1753C6712A6D7835A64B36922173FEEAE67 735FB82A09CBF309246D104DF7B14AD6A6A87DF431004EE72FE7887929F4DB593B0A113F176409 E69892A4EC6CF250F984F2CC2904C788FC7FB9B164B7C3AAF3B9BF5EB17108C52EED49E5E43D16 F94ABBF85F784008958557FF8DA38DC55BB43D6F8671BD2764A9F276C2A039FE5179D23455BD55 539DEA38921C66C7E19EE407CFA868E9CEC0694D756EBD5B9EBDFE6D18D5E9E33433C886B24CA0 B0F131746FA8FFD23D427828A4998D0776549AB2B4F5B610F07AED694655A7152740A275DE60AC BD7811F31203F32D071761E74D0B34BBD8158DC1282ED895F803B7FD689D429C9A2C32B30E098A A790D6247386B89F03310DE4665C3AE77665D885E456B655846956CA33E3A702F79A9695CE7510 329536FB24143DB109D0E858CB20B3056078F0C151419BF06BBB871F925ECC7B4131E54A935645 D4E00EF0EA720ED493E6731508EFF11B81D9A4DDDBBAC935DFDD1B798BA0E34B0D5695233933E7 8C0C9C1DAB44C7BEE45543C3C310C452FCE97964D2B635C5433318FA367D20DDB9DC8CDCEFE0B1 1DDBBA2D7A7010375EE581C7FFE97F89BB91E3FF1624F0EF5FE27CF9A027BC8D1939F91D88A873 5861127EB0CFD88300D3B821DDE0B54B62762466790A949B2DB6372C75732E87F54CE4F05325D2 0643A2F8388DE10E1C4CBFDA85A70F7551CC8A8F088FD46483446E0BE03BDE1B5F2B23D9B99EEF D4641BD0EE2AE3310B0CC0AE418D0C6797840CC5BFC4F54F0D6AF8DC1AAF3DF297D3955ABAC771 214ED10BC9E88A4CEFBE6E07EDF9F7A2F52C144086C13071F24CE826D468098707090EBC28BBCE 12E0AED14488B547A70EB783D97C98CEBF55858B924F0DB6754B3CF833EBB5EC487046A6C3BAE3 AF59F61B699782A6109E0D7544846F4383C849A917ED1750A8F5813F552C231A3E5954F57C8EF4 D02BC790A6DC865F77B78D920D274C2276F9DE3887540C460B1A6029419B9EE6B88FE29204CD4F 62321824A8B72FEF463400CA6A83C2CF8E161C76058CEBB021216ED92B4D889A9CEAE5619E0CE7 DE0B6927577AF0DC385FDD45EB6F116778E91BC1EBB2B6027FC5D39F8A233D27BF581DB38D31F4 20AF47E77AFC2D67A7FE90A10F0D6AF0816BEB7CE905FF00E5C2DA7CEC75EFC3A170495999AFCB 7A9781375C03C495FC9CDD90F9783CFF0926D795F155CE64AF0817726FCBE7BFF6566FA1A1DED6 D4D6C2395E7DC3DDE9484A2FFFE1C67EDD9D8741E17D526079ADA966C5F17105235C7A5E09B82D 1752B97568029925A6E25DD461063227613F02B66AC5DDE9B4018E253263CFB3EEB717BCE0F8FD 36B0EDF5D82D2DB2DF28F72B13D148F741379D7C31443DD9C452B3F5A8889C93F15957064DA4C8 BD8D3032D94A3133695934D299CA4303797B6A49932A1B672A72DDE67106E2BE984CE7E6BAAD36 396AE3EBAFBC268105DCC191E2773ACCBD92A3D32EAF57721C0EF3E34744AE1ADFD9C56669A08C C7E95C1908D43B569D82CFD4CBD7A41D841D10C107E00CE93F033C7449B78660FBF82D157601F6 A9C721C3FC1264A86363B5A151F63C8B646E2D7E5D44C3DD46CBAE571FF53A9F4064540768148C B69B9752D1E99EACDE8BD201373708BF20C689BDE479A0D11DEDA4243E6D0ECD265294C079C7BF 427F12C737CE72238894FAF3571DC588143F2C86EABF4512C63672D5211514D72120ED97AE70E2 FE4291903259BA3521EF94C9D13C5A614AAC9BF14514761F5D3678F4F96DD8B0A20AC00EBB9A43 235A571280B34341E5761EEA38808C7485C6B9D15B72BA4A0281A517FD2E5E660EF9EB5BEEBD43 2D537F8E3E2FD2BC8D221CB3C6E578B1627EF869CAE922CC154B38D2239A7FBC8D85727C1D533D C71E873CF062F0DB2AD29763A482B6A601EFCC9BF9214E9B270BD9633BAD41C2308A02B94E860E 9B74808796488497C3658F3F33CC29EB099CE42B134AB7A5E168013C64F056375DC95FFFCE9AAA 7813C498FF43DDA22D5186F6E7B3AAEA39A72A5C0EEB95A0CB79539FF14FD409F7D357FB06629C D99C5F277996778C7FD19E776CDC015FB37A29AABFF21ACF0BB36A0F8F7D6758F4AFA31FE61F95 10905BE91866BCF1B92CC5638BF90CEDE72FB7F46FB1892F4F4E965DE76D6162C515195A39FBF5 1A7299F01D20021720B8046FF10A5D5185B217BE8B62874281AF2007EAEA8C41911DB195B8C3E1 BF0E466CE3F398A111A03958BAF0707BBF153C1E4F966E4645795126C6912828923BB3952C5099 C0FF6855AFAB944B776511C96B77A9E0459FC52749F0AD982077A227792126507426736F2965AC BEDCD7938A0E27351E5CBBEC3E331BC2568679E1823DBDCFDE6E46E999604924084D583696F05E D161CF7CAE7A56A31A7EB0BDF8F5883A5825597227619EE45655F15CADDD3100604877F7221866 A27520BA9F4C72A5B7A1B45549C599BECDA8D24BF7504ED6032981AD5EB25E7DCEF6B0E7295F01 0C881F0B0B28C39CBF0708B8F96AFF3A0193AED2DFD8AC7E6F4D85F2EE21971A670C010857737D 4D3C1CC4D1EA8FEEA7756D34FA95B2BE2A27E5864A4183F75861F2EA00D050F04D6C48113EDD40 75A78C5C64E41B437AB8FD6E12C5A25ECA76816702CEEC2B3FE8DE398A130CC49330BDEFB0D76D 047E035448A59484D48D18EFC534328A8556858D4B45CC05377B8140598AFA383939E4A7F73561 68C7B016D012C37B405D4523A1DB884F005A2572A039847C7C065B8B92DDC9BC1E803692A39CC0 0A49CDF0AD24168154D03BFD56E1EADFE29E556B52FD11CF838378E4E4FEAD5243456648DBED06 2A47FA57542E137A9E035569D068F08E43DC4031D85925DEC164FF91F8C207692E8DADBAED305D D38FB4952C61F50F9E4E4CBDE408A16801732F3EFD6F2D600CFAD6F691BD36279AD251D991F24D 18DA3168749E8469A9A39F2106B98701956F265C3DA4081278A3366118DAC644DD5B4B5DBCF7B6 EF6AB84D9C41350B18320C0FFEE0B5C26AEAE1A6028093337FDB82EC40105175175CC19A7884A0 B07DC34C349177DD4BCDC16323E36197073F1D6447BAA0A45F0DE7453E6891AF0FE2D21C26D9BE 37454F2F83F6E974DFBB014511275360A9FDBF6CB77510C92A45C0C1FF6A004F854FDD323CA4EA 45EF334B4BD189F1131FFA7B4C7FBE315DD788FF2D89DC3804ACC9D689816A22E39BA45AA98AAD 6971FFD22B5CF38794385EA00AE18FEA562E0AD2688CF6176E1FF4CF8910ABE1C4E98F59750C26 9858AD2B32E717C29D97878953F729AE13B3403F997593542639DEEACE7BB88D45B6C4FCDBBAFA 3B18BC0F085B25A87B16BBD084EE088FDBF6D62F4E65052E374F2DC012DF690E23C6A00A5E8760 B2B2A213FA8D0B31E08070741FD2D8752274CD71B1CF566890113EA34518457B1778DC1CA38345 78502A62CF4CF563252B3ECF554D477283CBE6AA7A434A279AB71B2CF20765F5B197592C681FE4 6ABC6115B49D776B1CD457A3335FB3B61B4258EB77327688686072B7906B2D8016C5FB12A626D7 E8B2590CDF574F3A410D75FDECE4BE7DDBAD69EDA08F44B73D6F7C92B97C67201FA2AD698D058C EB7AE6C88B699207669D68FAEBAC5E75905B9688707B199F516E944056C2CBE773CC95BCE59D82 AA93DF52227D477CC2345EA8F1A2CB96A00D186F3A02C30FC0330EDACC404ABCCE86F0462784B9 7C1F55A03C4ED89C79C0BD3A0AF3B19259963CE966F654D7D4EF9B9093B27526E5C09A084F3C9F DDF3C8F261A5720DFEE14B6B198D8F0CEA0CCCC7B70CE185F0B65B0B4E5CE79898A8E3DBEBF65E A2A7F82EFD92AA7EB65AABAC5A3CEE49070E78D5C591409756EB4A706DE5192D13083C4A10BBCE 3A818990406945A4036CAB65E3F53A54E6992866E130F01DBADC1F15751256DFCB408DCC671CA0 731A01A6457CB40B4A04BBB0BF77C8B655ABD484705AD31CBB88CDDC3C599B35B86D3C4BB8B8E6 7751A095E43C9B9228C58A920E48D679DEAA88DEEC58F7B5573DE4D7C7288BA9F0A5899D1E6588 557ECAA123CF7D504406BB03F580FE02A2E88FA32F9A824B5A895CE8EB1BC271FF2702FA463454 717D37672DF5C7F78561F889EB0E57984A96E1430B26E27BAEFFA17AAB5FB94A890AF8FB57AEF2 4FE880121E0B31708F1AE9B09DBE64B26A5EBFBE42A4BBC0C3ADEC0A14CF7496AA53263D4889B0 929645EC2B8C5144A4D76FDEDE6345B1407F990C5D7644B21C0D827AEA7D4E8D4D17311099A703 689B2F68A9EFE15696C589BC02FAC8F5CD6FF68964EB222EE012E28A490614BA93405E4F2798EA 0E8A8B5EED8D7C554737ECD26CCFF16F50C8AF2373E8688DCC297269C2836E4FED50EABA465EF6 908DF9F55DA80A501E0165DBEE8E3F9FCE4F6B9C31AD5505E71AD3D7FFE6EAA9D764B965FC163A B0ABF7DFEE391546EB78C79466886C7393D4036FA247E9C4DEC84FE72D4B5AFC6D7FE58714C70A AC3799C4B419D3701267915677FBD571073B70D68F141651A59ABF8B6483E216F90117879A34CA 43BFA857B831DFE321C2FAFB887131B607D2B9AE7F0290705C254716161DB40AA383006A8B74A5 767DEDEF5D60711B5A9E45D63A6EBDB15740AA04BAAE078FAD7FDCB9D26AE3DBB66ECBD9D7E641 D064B881BF5190FB31EECBF3659036FC145D8BF0DFB325A78F0B3723ED8DD2A967BF916A90A92C 32292F3330D3F1FA1F31CD6AF9373D12A1EDFA00EE7A4859BB6F6D4D6F6F7F944ACDE744E3D6DD CD646F83539F983B1C70BD94E1FF6CD3E072F06DF4193676388C95A3E4E3D07ECD40FB6928AC52 CBCCF63B71B47DF4567E19E0840D6452494EC3883F6144E5791853B0EBF93D6DDDF15B3C8AA14D 8A20E191DE9ABEB1ADF7B19B3B688961F0B86E215451E4DD52BA655B00D1495BF08660AA5CE7F7 134698F4C73B97103D1074220946455466FDC08FFC63A1C97D60E0B931E94A6A559BAF54574696 D5F5460FB18B3213144F42F1AA8D5FEC8361A6E401A82454C897403E82DEED2B65E6E50CC603DC 34BEF5E2EF0F2FC24421E5DF012640D1C6E5C87F2CC8A3997362E27463CE29C903A5B32863321C 55B8540DC3DDAB6892FF114F3EF72647A3525119AED1A65DBC779358C5AF9F3AEDB5AE85085CF8 9F55C71EE44D229C122DE658C83290BD82FC39F044163EB56F841A9E568D50493B535837415A12 7D618BE80156E1AF95AC39BE234ACA11CFE3744A8AF714724C04359EC8729BBEA07EB8908FC41D 4E5D045D2261A9E20C66A161F98584A2FD1AA56473A0287082ABF956B6F34C0AC3D6139C00020C A13C7CDC60F1F1778CAB99930BF104139967B728C75120BB7FC3625513C7F992CAE757EEAC275B 7172522F0E178F4EB6F862080D0494FCC5F159DA45FEDD5C7A19064BF1EC59531E973A9846C5A2 F8BD12B34B0152021D6C41F7226BE7DD8876AEFE003A4DD181EC983284F8855F9535318246A668 196BACDC3A71CCBB1BDA4547168F0624CB896CF96E7629EC8D1BD11530E5E8D5568D77D9DCAC00 ADB7021BD4BF6FC3E1F178C51E67781337D7D3AC1A09ECA650B8278FF569501CBB021B2C8C9ED1 C9A23380D3CA67ED0E27A41929FD835DB776103C8CBE4498470C2ADA09AAD19EA5D781C3D5132E 8C343AFC91E36ABD78327AF6A4F589F146E702BBF6A6C3EA6F720B5052FA18E4BCCDD1A7B8C7A0 E654A9883396E6442EDCF3ECB05C55B0895C130ECD3B9544A3FAEB5ADA3F5CE8C5FF342D2DA291 2E9FA59276DB5418BC5B065FCE1ABD42FF3238894BF00C86C52030258449D995943259F600B1BB 8F63809E2D84425DB00AF60E9E8AE791E5ACB6D3E5C7FC9023144DF022F86FFFB37D30899ED2D9 FA1A5CA5E442170A2BF817985767EEA87C4F57B8E19681F607EBAA22860C8C549738FE95D85F4D 2027CF0F99F31985FC568EAF856FFFC056B118EAAF09E8982C0DFE550FDD8652F3D94CA70DE411 00C17F820E4A7A2217619B20FC0303AF62BFF042764382147169272BE9769043C3D41F9A246A01 C4C63FC7DC2FD62306EE813196D620F584B007BCA0286A39E296B210F64F684CFB2F9CCCA5B74E 950D35A1F18B19A26940674DF66392255091A6A6ECE640DD8142F5CBEF4A7810FD8175C9833539 A34A911E0BDF64DBFFC534EE22CA6229D62B7A95DCACC46D3989BCC85749B248523AD44ABFE05B E796126E6745E1DD1653FB938612FCF0C877566CA9F686823F4D069234EC7E3826D0080C32615A 88423A09651A9F3EE6A9DCC95646FB0E7E24C7C3372C6D6CDF1375CB4EB1440FE95C5C7FE435B7 290E78ABCC143A9C015B410A8555271833A466D49AC0611340731580BD29F73A2DCDBCBAA6E07B 643DCF9B18613A6652B655A2167CBB1CCB0FA71534BB0759873FF5B4CDEE677AFA1059E1F4519E EFC1BEF079A9C04D13842F516B096D3D281533502C4023E13C25C59C662340A45B6874B5C9F08A 08BE03B7C35FE00ED31BBFC5119463F2FB1165D22F117A04F27FCB5F0949BFAD0E882703755454 B629821B7EB4B048FBBC21E1390620EDFDE83B894FFB434632EB7B4B21647D4C9660E7213902E3 E2B6AF6181D797F2551513F3529E6C7679712CBF72F2437CD4685E117AD8C2D61A28132170427D 398392C7A27EBA6C244C6BD7700969004D52395FFCE11000B07A7093714F781E353BBC152F2EA5 B275818DA2E9FD5C04F63B23EF722257EAB81FB2AB97C5B8BF455B2AFE648C895A6D38BE154683 831704144F5D8FD68BBC0A96165E27F262804140E34A7C7361CDCDD5F14BA4A45EB7BDFFFF91BD 7429BFC9775BAD532BD4DAB6F7FFE85CBD60FA6D0B138CE116058504803D0F449ACA8C380A7829 A0ED3623A5EE64BB34A345A8720C7B57B1A7C18560A5E56A5DC8C553B58A73762FB04036217CD6 081F8227F61556BE59FF02C0DEA3639D44A6C3C97F921CA96752FB9B9D28597873AE2AE2C38D46 A2AF40DBC3DB23A297503A5579998B0DB6B93D1AA1ED3BF5BCC480D0CD9688135FDD40A3E487B9 A4005AAED374C2E9E036BAAB288AC862726F3FAB60D38B5BB135799A3BE5F4470903445D3A66C8 24256158426369C70439148F4701DDC2F6F6F77559DE968F0305C42B43E665F7E8DCC6D72F055F 038616F9C030A9AF1A06E6036E72640D11962CD4A622A9DCD07C8EBAF060BEB846F25C1ED28835 C28059C5C1FD4987CDBAC09780B5AC782964DBBEC7F776B5DB51B44E3817BFF658D2DC37C4291F E1778D7B964E22AFC5EDDBB03538567378B7F62E806422EAD35C9F6F82046E7E79BFD6FAF3E7E0 A52C63DD5E8C0A838B3969022987DCB7377E15BAC7B1525EA24C666E0C69508881C204BB515233 C9B6FFB3F0B4EE37D12EDE6E192B1A17A7F6699FD6C1E87F03C2D8AC0B9DEC767234A2E7C32016 D3AD9A8015F489BEDA95EC6400EA9DB2CB8626FA253A718FF13FF0E013A172E06C3E5591C15715 C60C30795CAAAB098B52CE441EB71F2063ABBE3DD3558B7F07DB17F49C24A7861589ECD8E825EC 797ABE3521B5924F53045230CF94C34F5BD6F197E008F3BC38401B3AA6BAA7EFF54F1F926677CC FC0E77D5EA05B218213737DB84C21AA724E05F37896667FA8EF4E3899727DDD936BE2F8E64ADBA CA74032C2FF23805D1E6029E7B305F0CD7259865D7271444A5886B5C76CE0DF62429164E844F2E 95880B6BECDBB0BD005229964442A20AE582DF5F3735885E217E4C399535B965047A892BE0985F 6C1EA35B95457414038746316BC93CF4C776AA50650E617A6F0DCC586D3F4CBC19F6043DD04915 F0CE9EA31EFF2F8D36268A044EF15BCA63FC5AE91D7DB0879FE5AA9A3D51BDA3160658ECEFC447 CD2C9A848D1DB4BB48D277EC154B52297EBD188B2B7ABA0E4B840831E1B9B647AF654E1BB08D0A 64446A3BB49FB7F19E8FD8E9084C8B8C93924EFDFD9A9458A4F3B4F1D948B123681DEE542CA97D 6A5857A3E47622A6C6B2EC09768705223894BD7867242D819277C5DB24DCCE8DA6062199482923 4F17F56BB1A0C2A2E099BEAA6D94942AF9706FA6A1D0C67560BD1E3861F8FFD465CE6C48AEC2C1 F762BFD3D4A68B8B25D0FFAE02376B34DC1BAD9B39DAD6FAB6491002A1E6796BE978DC1DC62EA3 9D708671DC9CFE4F757CCCE4DD7F1B0ED59EBF5EF3DCE61C4AA16DD6411B68E8A9CE4FF6AD85E6 F98CE16CE25A8405801669678204CDB7305BD7A29469C539BE2348B8AC412DC95EACA3012D3D96 A3BA334FF4E16EDB9115B83AFD66192142423BDA32D8A76277A763C373217BE75370C5813FD53D E7DCE0807C087DDE87E029F0211CA9F1B1A67E72D7922388A6C84B3C6E3D44B192B0B7588A7DED 100C04F87780F070DDFEF41C90EFC0E0BB8F3692F7D360BA180E1D4579FC1AC671454E413A8613 F40F9CDA8AEFEC06CE40F1DF6FAEBFAEB57AAF73898F869C6BD165B9A3A60C5942A48292B5805E 01897F3DC17253668A774D13E23C5D5D90BB6B8F60E89875B353A8FE0D03ECEC140EBB2B3BE613 907F32DE8F445CFDC60272E5EBC753BC2ED4CBEC34588879870277190FCFBEAAA6D81759C2CE36 6CE0EED2B8915F93BD1ABBA0613DD9E2EE93633EF81F4B36C29F4A24847104ACEC56CA46416884 462AE9C21D1A21D20125B71DC52D38989FBAF0A0A6EC1068E7C963B2B6894326A5E70AE420214F EDAB638988110066D741B301760451CEA275988C2270532D4A78712F28922011D564F12928B4BB 9484657DC0F2378F07A139C75843624CE599A261AFC6192D58F89F36556AFE32531138FA46B505 54898E65B82883BE97CC02B92B7C7D1979F799720345EE930BE3CBC3BA01CDC2311147AA768202 A59BD84F601A5FBF6F882DA51E7644D7B734D89555FFDECED4BD2B14DB3D3C57E0403680796446 3DC5C9D6427B591A00A82E2EE4DB81D533D52857A250E579F9C9D45109F06862E64564B5E18615 4B6AFF5AA065792AAD0D38340C26A0B7C7E4DC7F054A850C0BA6EC8F66535E5CE1758160CF83B3 CD1D0F7EFDA4B0D11E679C74386C2234505F7FB083578BE4D43C4922330EEFE114DAF7C58C0AB8 7E4F6C6511A1B311FB9FC645FD7199015B5491584D2E135C573206A96EC49B6F0BD7428755A69C 9D1DAE3978F70CF6F2B518C74B81908258509FC96282AAB0DEE885CD5D66B5A91BBBF74B08142A 827DA25A4F0FBC4E1BDB4952556B04F32DB3A8CE6873DA2EE081E81DC1D3C429BD76E62986CCBE D21F956E4F45F869E0E00FBFD1B17011439E6E0196C8A7726A96186634E51951B5DC1CC4F96850 9AF5DB930D892EA290C70EDCC65DD905D6AF9221AF3C6EE64E01FC3A37EB358A759DDE53CDDC74 B6937F1DA36B00174481A40AD8B6E9BA2F9BA1A15D80C560BF4A3CAB972DD12B2890C3BDEB06EB FE05BAB7E2BCDAFC641643B67D553AD78D5CC498B43A458C06E9A428307498EB76BD7096F2DEBD 2905AB09BC0E748239D90663C26A3FAA9347C32D44BEEA2DDECCA24825DD2A154E8A82282F4122 96D11C6E0CA8F28CCD52A3E0A9B442838BD6FE90A931C8A462A97759CC9EE21B47C44B2032E5B4 083750CA3483E688F67FBE91EAC9199D49963060712314618A725457FB71945C535BCD330A9D8D 850EA0EB723BE0A00F2C3A8E6C80660F59A84DE34A52F00725C945521ACFFFCE8FA1CBC2CA9F9C C98AB2987C636CFB83DB46B4B3A7F1CF4EECF6E08A3B94229B54CB34272829C4BC264E303DFA2B 170D5E7A66A7EE3C463502D5425AB0739F1DFF5FE9B751975E4379569580B641C7296DFEA54E7A 99A9478583A0D8DE565575DB2CD00B35D2BF82A5597F4134CD3F7A201C80DA9AF49EB8D9D049C2 5869843331F140753DAAF303592715A35751B4597F458F5BD9A894D8E2173E03C85853515E3D71 CDB51E7000279E462386A1DBAC817073DDD29CB89F211CD5FCEB9657C107041E605DDBBB7275F8 B084FBB48A233D826F9D3079F56BEA088092B8156B4C38ECCBAE22EDF9135E5E2DE147EAF1D562 2735F9FC9C5124149AEE31FD4B35CBBD848E81605EF9B89C0E116E4394195122D3F5D28A60CCD3 19A85D7EF24CFEA5AA946B8EE737786DFD5A6B2C1100F3F2DCABDEBC012CBC19AD314198536720 37233DA6D3B6AB83458179190D11FC866BD3343C9CB85381BBFE2226D612BCE91D13226F4AA348 C48D5F05D927518E5587BF7EEAE0B2E40F6D2F5847B25832970681DCDDE5A3DAB4E305DC7CCF1D 817F07975F4575D97355347E3AA2DA7A8B230B81673ABF1052EEE2F524D5330975E811FC32AF0F E8538EF37B67EDE2F2D521F45AEE885D379835E820C8EFFDDD7E3E381BF267E32E9E6DC40A1D36 D0068A698B970C492B79D5AE4C645286631FF56704053F81474FD546FC9498CDE9176F7483F9F1 7FF8654B0EAFC6352FF7070D969C8F7005389B7F465EF1B6C0A1329A2B18F577586CF4B9427D48 886B0AC61575474C87A37340B7EFC0090F3E489505EF51BA12B1394144F3895AABC6916DFA5C6A 4E8D07D3E351853A2E0370688E5E6000F5B751AFB8821C4C25DE80A9640ECC48B99E05C94E4932 D120A4893E85CC91CDFB5A7218C972A482914E5401ACFE7BFF59B4D8D5E5F563AEAE5E34B052A7 2ED5ED7854C32C20C933D68992DEAAD311F6DE5C03DD24B878F536560A2F43E5FC70452A39C7B0 AE56A0A559607EDC991BE7F571857A7F55FEDC84C679B9BE89401F504805BDDCC9CAA625B2111B C4815AC79A78AAEA643466199721879697A341639ED003B5FA52331D3A2AE25D8F20EACCBAF791 D62421A00937BFDDF444EB59D2F460AAFDF8BE9F82D5FD1D48F6712B908E5FA81345A567C18705 6944C722C55A0D418ABB1BC622EEC5D416F6F52BC188DD51405215AD6B75B04DBF4BC6D85F0618 FA111126E41351C3F7B0667F8FC08ED06342B2DB6201A1A63AB018B2FE5FD760366A9A420F56A6 C61B835F9AB9F385A81430F867146C8B01784534CC959126389D1CAFE10E3AF40DBE594B6B9219 8F50D9759E60519DE8AB4CC0224ED624A3AA9FC95AAFD676706448A9F05BF008095121314FD044 A3A350ABFD1CCCD5EB18DBD2EA71C3DB2F37066021E39F4E77CB1B155D05CE1FA00C8A59FF39A3 A16891235A599F95F9A62E6EE47839135A0750A2CB528F11EC47F0D4D3BA828501C9B76FDFE178 21F11814DEFDE3AB561ADA314060D7112BC8BF02E92793A3D864B83AEA78F8D49DF9AB07AC0762 229534C0288FBC00662E53035A037B1C9745195CFAB54D22032A16E7AE0B971CAC5A67FF0EDE11 E265B88805314BC7563CF177BABB367618A27734611D7B662DA407911EF2FEC47D74C482F7DF82 3960081466CECBF4BA94FC5AC8C9F91AC151FB1ECB78BA5D5607A1D59D34C18C83000F8507AB1F 1C44347FCA2BC27087A28F0F3B24BDD8E7A0DDCF782CBCED5DDA4565308E10062145895A9C437C CAED86458890311EDCDE2109233BF9ABCEF0535080D7C5A76D6E3BCE8210C7E89FB95E63CD8A76 FEA978AF5000DFE7C0E659B902503758736C6DB295B9368EE50F5F8CF3E200456B5B2087219150 294871F7B980800E59A5DE5973AB9ED52F7DBC7C433FD0E099D3E3EEF6DF7D77E40D1C8B34C117 588ADBBD7A29AB4805A87C13CE93A65854DFDA87321ECF7D34E72C193365B632B455F8A2916BD1 E63441A633D144C254E3FD89FE2884840146B4C992A07BE6A0FCEEB6AE9B0234D234645D73C064 EAFEDA1EB7A9DE6661D31226A6F54BC9510DF6F64F7200CEC5EAF90357716E7C246D47C04E0906 98C5F6AC446DC6107E6342FE8B746C0FFA058FBBCA0730CFB20A367ED10661670C1618A4D467DC 2A7E87894DE0D5392B3F0DE6582901693C28568D2253D514A3FACD1B063B02A5F8A19C1D6DFBAE CC79435F694E914014DEFC5553A5984993154997E63768DD7BC462BDF6D1A8B28DF568B22FF460 087163AEEC37F0BDDBBA4C30322AD71922AC802DD491207E6A6C255F50EEB0C492EC86AFED9040 B068671FE4A1E66AF15D3D976C7267F3EEE19462487772087ABF36700B4821D2DB5193BBEFCE82 BF67F7034972A708E93C55E0F7A52EAEE47E68FDC6F1BC49B9370F28DAE122D13CB2CBCB55933F A27291003E862FB0C7E20A0F979DFD8BA918322F6CD597809F9E05DD210F7996F314B65F54FD7B F453F15CCBEB2CD5E53535261E696EB73F2698D1159076D0EAE35FFB1FB53F98808ED2325B2CC7 9D90772C15273EE50294AC931626EC573BED7CCE2D713328962528EE0F00FADB1C1ED8B302F24A 40F9A22D1D6411EC669670ADF93C4C67D8520109FDE9F64CB0382842C88845267528F57AB7E408 9EDE614E79799D08D3D01378AE9D42D7601D821C9C5BFB77EEFF37B634D2698BDC11CB60192B6B 4FFDEE834EDEA99CCCB760D3E7548E6810FE300596C246AE56DCC6BA8132AE3779ECD5ECFA6963 F9B5C4B9AD8B6C480BB184FE31EF0F8DD3ADAA96AFBFA250FCBFEB529239AD2A524B3C8AA1C2C2 7ED016E8EE24B355BA84D1D0AC6AF00B0A230578609A3F09639D2CA7175710FE9D455A58A6982B 7B7FCA52BB5490FBAA064D1C506C9598D88B5CB330C97F434BD1EF060ADC21B9F6ED9FB7A7E604 20FA1B481881C73B1DEEDA0A7E197B8D38EEE68CD8D442D083772FE2BA1F1C07A57D5B67BD8230 80BF438089A4D6C311D421F5F16C35B3207649CC0433AEE4987E3AB5698D55309B5F5C8B95332C 77157E3309EDB4954613428AE9DA6686799ABCE483FCFA8C060F0614995E01FD14A6189AB61A0F 7AC9465BE297F053E85AAD0EFD921502269D01FA6D5ADAD672F3D48C5D4EDEEA65E53E03A24AA9 E78660AFF7942E7F23E3754582CB2976FB65997FF35582FF83FE9BF43CE5CA20AE5EB62CA819D9 B63ABE39EA3A13AC163F64A55B4E840B12FEED5BF447E3CA1FD61E6FB51D6F7B3176F697491217 306EC21CC462AEFA069C9432AFAFDE4D586D5EF8DD4E49882CD701C4F4FBDBF42E370AE7F332AB E22DDB2FA70D17B0E053BD6332A1B51840A6C18760A46EDB9C8933039C8B724FBA4C4D62B98876 71F94505D1242067281063F91A7DE032FCE95DA4B54C32B46B762CC927667306101A7186DA78BB BFF306C62708B92D76D2225B1FACC18157268623387B5D80FF9E394E3DB68D5404AE3CAF3A8654 7704EEE75E7BCBC9A96610D96E96C0CEC85785FC7D54BF035D0E03E6B1ACE9691D7DD71B607B9D C37DC020E9B5D4216AA991C5022AC52A4637FCA79DC21DC1FCBD5BA4B28B591F69CEFD0D99E35F C568550A5E11B32BD59BE83149B82FC840C99267AA84AF41FC56D1C4F7F6365B65DBED15163D55 9A95630AF5005C7FEF23EE87208AAE88AB3CA22FEAF682088FB1F2F78027FDED141D161183FD67 5E16ECE34A9664C1373C2793C35080519D0BBE2D9B98BEF67D2716B4036A25274B4370AD209164 BEAC0BFFBCC3F6B2956AEF76143644485280FD50462B63F324A992F3A5B187321107BEC7A301C0 4338312EA32DCABA2C13A6ADA387B668A45743B4D7C02F2BFFC69F49AFB429434EA529B04EB8B7 4596D90FE74AE32F57CEC0433922B00236C189FFCD8A1FDD896CCC957DFA2EEABB23BD8E5A428F FDC06F4F75C3222DC161472687547B173F632D15BACE92A07A0A71DCCE2B8EB739EFFEA173E57C 4DF651FA936221DABBDB3B8AE5C30D595C33DCFC485EF2721743A6957E26A79A97EFD24BE5AC7F D6792166AD1F09A8590F5871E74B2215E9012BF05DC89BEF6A2FFBA06BC619A08B14D6679877A1 10165E943223B0DDC672C591F26D6C865B78B59703C3C977FFD605CB241C35FA1FD928A4A4F11C 052EA00B2FC0CEAD4BD9041899EE135DE98A260518AC927508ADD78D7A6D8049C88B42241D25CA 5DF0550706C3671B2DB3D848C3B94CC77D7FC2D157E37B8D4780B6B7F3B04502F3167D8D5B99A4 6B63151FA7FC1FE52BD66ACF20DB58A7A092623E63FF6F7C7D0001AB09059A5CB6D79504900589 A349E8D19E76F6FBEA194D18CB6526691C7B66E219092FCB73A4F7807E6BFD82510687A50BFA3C EEB4F8818B11A8B9F7B71676C5B44078996994DA808DC39D3CB6A66B476FA2ED6390B7181A591D 171DE548152A5CC5B71F5F9DCED5B648AEF57E2B3644909577EA607E49C8D0105DB7FC57FA1A2D E0105EADBF35AA385C972F9CF07D379454FBFB1EAC4B573498C10B2E98C3FB6F1483A123237B96 0BAA3A3CDC0E9327F0FCABF72E8AC7DB04E22CDAA0F6EE108564565AEAC4A4DA8328F30AA878DD B35D6AB16FC49D928066ED24C583434447AFBE2E4D22848A516862207480EAF650624943925E0C 351A6407ABE0BF04E36C87BE715B11FE53B8A13AB4669B7B2238D0B295D60028D1111A5AFE23AC E77C59415C466042B93790A8055FD8C39B262848BBCEE84DA425462871EA73BFC927DC4DAF9336 E13B1BC99887E8C1D8721311B5396209A634F3A1F91D51EB7B28F0A827A50688ED60370F6BF3EC A867BB995B125BAB4203DE9E26DFC0D3D8E91D3E749AA0407C6A74C86E98FDF8A314B201E1EE0C 98015360074379F70367DE7CEE75864C9789533ECEBE1323C12261A8622C5666C932177CFDCACD 2D494F1741EC983E51CE4E3A63AE6FD282DA64A32CC3B2F55549080C7A190BFDD2C2393C675DE4 90C79A325DCC04D14E0445C218AAFA0E54A305A889DBE613D4F28FB08253892A0D673908479B87 E9D8E13F467B7F9EBCD8E5E16D7CD3358C71CECCD08C6B8ACA8525657D37560BF2221F91258EF4 E6B70118BD1CB1F4EB421C4C32C76437340EA398E22351CEA31D250E46F946D44D97C2B3DE06F8 D8003381600E2E2C28AFBADC25DC94224AFAD0D7D951609BB2478C476085C01AA601F3AFFED544 F251D5A49BD263D64F4FEFB0803F162BD5FE1082FA2949BA8987AFFA1D9A7A4EF28BFCAFFD3311 0E1A1A2A22C76734DF6CC30E3C4662DFAFB32DF55DB12D138148435A6F7ADB4ACC4F4124EF772A A63D5F65490E9763FFD66C6153F5B0FEF1A307D6A9753102CE51DA88E2EF7275FFFD2A7B4F81E9 DF549938193AB7A58D5C237D669ACF27DFA35744F7622F8D54B5B54AA31D9403841D4C5D193D87 E60622E18C2D7E333AD4CB2DB27DEE813D9902D17DD0F2D3BDC8B340DFE9C8D34B993CC2CC91BD 47B4861809902E11197967922FC625989AC6F4BA0D48166F3F4B6C6C47D3B9A932F3D47A8613F3 6329406BF5ADEE519002394FB288D3A8AC3DCD5C37270AC7F5C5CDE46BE5C2A103FD468FEBC0F5 180143DB4312076FB062CE88DC373B5F120C591B9C09B9E3E1B26F52A48339AE70F729BA02977A B60666637D9FF9287DB4CC52BD5C7B2D4F038E5C927B97B54F611396E2211514A8684A02D5DB1F DE728DB58AE1BB7253740349771118D2D33211D2ED7BBEB97BB4776666F6A2AC7B54A1E2DB79D2 A9DE31745745CB39BDEE3E7CF425C27F86CFA89F825A09F9C7027E8DF7A773497690F328D22FF5 A5CB2821623A570C29D03081E9DCE770F3E7F5B7377A1BC3F52B383EA0CB1C1BDC00E67AE90F72 9DC77450407C0A9D0ECB2CE16C91CC3C7D487457800654F86BA7A8E26A25B78204CC7F58BBF69C 5C406BA012563A4379506C28A39538F9A5D57BD197443A02A9D3C67149D654FF12FC6E05612981 7F7236BF90FA626FB91D49C48D824248EABD764EB3C20634D56BDC2E170A814567D278F7AFB96B F6AEF216C0B42AAF85AE299752C50E6D2963FA5DB384FD110868D43DA804FDB9D0CA26BBC8CD72 EFAC451FBAF4BB0B44C675DD4E0B4AD8D6149DAE44DC4EC36942CE1876C8602E3F97CD6E18BD0B 5BCCF7B1773619FC8AC3B3D4958F71E5D2C631C6B17EEE7ADCBA30CA0E30B538249113223FA987 4D4B294563B9F42D9D259374F28A8D8A654F26D7BFD8667CCBC43F75B61C2F5CF8D7E06642E93D 76554642B7666B7905D6859F79DC080CB5574D03A072DB0D47AB82461DF6638C77234A3F97428F D2FC973687786BCF1D2F65AABAF55C257914247AEA0B3AF17A867C0CF1E5A6883D68680343CC5F 3604DC8E1E7A9DAB9CFA316A14D4CF7A3A60CA56E947AE632762B2303C0EDAF9B3AA206191730D 18B522FCD29D036AA4E6540F6A0DA836638A2EACE334B232199F61B357B10F4322A1F58F249101 CB1399E5E60483F12A6008F8FFB52709F34136D93902FE367A01419F79A4D4DEDBBAE63741526D 3D9EB7BFB4332C1775E2F0A05A4D7B203C2816F30081A67440D09D1FF94DDB3B7BB91B63703581 A696ECEB393963FA9199AB61A3F449061E048FA2C1F91897C5A60A4D30D0C276DE88EA143BA4FC 545FFC8F0B0950A38AAD126D73DA6BBDBDB480C3AFF4D2C7657A33652D5728E1866DB82B8F1A8A 72235DAB477C38ECFCCD0CDBB77D30A0436FDDC1D70426C0C5B408A4ADD039CC2B5750B7BB5E07 CC56039DB7FF3298151718E167CD482E88AE498B2D89C79C572FCE5ECEA3BBFE5603FD7AF6F4DF 2C06BD8EF8501B52E8CBFB5481CA45CBAE44D87D455DFB6F030FBC0938EDFF80592B68390452F2 42584D9C529BBAA2615F9A493BDB3C4BCD99422B69FB658ADA813AE39E447151F9312A005AB210 D9FFB508C7A036BFA34C7264CFC1B92929C7CD892CD8BE48D388545B8CE7A79F70D0F1B852625D F331D75342E9EC57219DE4E61BFFEB066D82DC6256892E89B25BCE034F7F6FF09D7DC8ABBC8739 3B70FDAB372D2FDFC51902A6E7FBE5DF3F41A91DAFA35D9A99A18DCD9E9D9050CA9D6FD417C9B8 DE3C0648F8458BA2E0ABCEE10E759C97F019D1A1C8E1CC9EC8A6680C2566F42E478EB1F5706435 16EBAF85E4F9E972BA3FA6D20B8BD1734229563A1ADA6D4D1857257EB760050F4FD997090653CA 7771430101EEE3BCA1EA8E5F230F1B54E25A50458A1F7EBC35AEC36A88E4E345EF4CD9F97978EC E8F3C53ABD56FD3DB6C71206DEB0058509F24D0EB4C68BCFAD5A773EFD04F5472984000960F67E 261B9152A176B230EB447633653ED0CBD3F50B214773DB454E89625BE27B7B75C93330E1F782BE EA101988B04AEF3601BA7FE868F614035647349D97F9F1AA598FD808885D91F5E24FE348015E46 D80FCC9E62 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %!PS-Adobe-2.0 %%Version: 0.1 %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def %%Patch from lp %%EndPatch from lp setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /LucidaSans-Demi f (Using) 2558 1230 w 11 /LucidaSans-Demi f (SPIN) 2951 1230 w 10 /LucidaSans-Italic f (Gerard J. Holzmann) 2395 1470 w (gerard@plan9.bell-labs.com) 2183 1590 w (ABSTRACT) 2626 2030 w 9 /LucidaSansUnicode00 f (SPIN) 1330 2290 w 10 /LucidaSansUnicode00 f (can) 1558 2290 w (be) 1762 2290 w (used) 1917 2290 w (for) 2185 2290 w (proving) 2360 2290 w (or) 2766 2290 w (disproving) 2904 2290 w (logical) 3453 2290 w (properties) 3805 2290 w (of) 4339 2290 w (con\255) 4473 2290 w (current) 1080 2410 w (systems.) 1467 2410 w (To) 1959 2410 w (render) 2120 2410 w (the) 2476 2410 w (proofs,) 2668 2410 w (a) 3051 2410 w (concurrent) 3143 2410 w (system) 3704 2410 w (is) 4081 2410 w (first) 4198 2410 w (mod\255) 4430 2410 w (eled) 1080 2530 w (in) 1339 2530 w (a) 1485 2530 w (formal) 1595 2530 w (specification) 1966 2530 w (language) 2632 2530 w (called) 3130 2530 w 9 /LucidaSansUnicode00 f (PROMELA) 3468 2530 w 10 /LucidaSansUnicode00 f (.) 3881 2530 w (The) 4000 2530 w (language) 4237 2530 w (allows) 1080 2650 w (one) 1442 2650 w (to) 1681 2650 w (specify) 1838 2650 w (the) 2236 2650 w (behaviors) 2450 2650 w (of) 2979 2650 w (asynchronously) 3136 2650 w (executing) 3947 2650 w (pro\255) 4482 2650 w (cesses) 1080 2770 w (that) 1436 2770 w (may) 1667 2770 w (interact) 1907 2770 w (through) 2316 2770 w (synchronous) 2744 2770 w (or) 3401 2770 w (asynchronous) 3544 2770 w (message) 4256 2770 w (passing, or through direct access to shared variables.) 1080 2890 w (System) 1080 3046 w (models) 1467 3046 w (specified) 1864 3046 w (in) 2343 3046 w (this) 2478 3046 w (way) 2701 3046 w (can) 2930 3046 w (be) 3143 3046 w (verified) 3307 3046 w (for) 3715 3046 w (both) 3899 3046 w (safety) 4167 3046 w (and) 4500 3046 w (liveness) 1080 3166 w (properties.) 1506 3166 w (The) 2076 3166 w (specification) 2297 3166 w (of) 2948 3166 w (general) 3086 3166 w (properties) 3487 3166 w (in) 4024 3166 w (linear) 4154 3166 w (time) 4465 3166 w (temporal logic is also supported.) 1080 3286 w (The) 1080 3442 w (first) 1296 3442 w (part) 1526 3442 w (of) 1757 3442 w (this) 1890 3442 w (manual) 2104 3442 w (discusses) 2495 3442 w (the) 2995 3442 w (basic) 3185 3442 w (features) 3469 3442 w (of) 3900 3442 w (the) 4034 3442 w (specifica\255) 4225 3442 w (tion language) 1080 3562 w 9 /LucidaSansUnicode00 f (PROMELA) 1776 3562 w 10 /LucidaSansUnicode00 f (.) 2189 3562 w (The second part describes the verifier) 2285 3562 w 9 /LucidaSansUnicode00 f (SPIN) 4155 3562 w 10 /LucidaSansUnicode00 f (.) 4347 3562 w 10 /LucidaSans-Demi f (1.) 720 3922 w (The Language) 873 3922 w 9 /LucidaSans-Demi f (PROMELA) 1630 3922 w 9 /LucidaSansUnicode00 f (PROMELA) 720 4078 w 10 /LucidaSansUnicode00 f (is) 1173 4078 w (short) 1293 4078 w (for) 1585 4078 w (Protocol) 1764 4078 w (Meta) 2200 4078 w (Language) 2474 4078 w ([Ho91].) 2982 4078 w 9 /LucidaSansUnicode00 f (PROMELA) 3408 4078 w 10 /LucidaSansUnicode00 f (is) 3862 4078 w (a) 3983 4078 w 10 /LucidaSans-Italic f (modeling) 4079 4078 w 10 /LucidaSansUnicode00 f (language,) 4565 4078 w (not) 720 4198 w (a) 931 4198 w (programming) 1037 4198 w (language.) 1750 4198 w (A) 2308 4198 w (formal) 2428 4198 w (model) 2795 4198 w (differs) 3148 4198 w (in) 3513 4198 w (two) 3655 4198 w (essential) 3880 4198 w (ways) 4356 4198 w (from) 4641 4198 w (an) 4923 4198 w (implementation.) 720 4318 w (First,) 1585 4318 w (a) 1869 4318 w (model) 1964 4318 w (is) 2306 4318 w (meant) 2426 4318 w (to) 2769 4318 w (be) 2907 4318 w (an) 3066 4318 w (abstraction) 3223 4318 w (of) 3805 4318 w (a) 3943 4318 w (design) 4038 4318 w (that) 4401 4318 w (contains) 4632 4318 w (only) 720 4438 w (those) 961 4438 w (aspects) 1265 4438 w (of) 1666 4438 w (the) 1801 4438 w (design) 1993 4438 w (that) 2353 4438 w (are) 2581 4438 w (directly) 2770 4438 w (relevant) 3165 4438 w (to) 3590 4438 w (the) 3725 4438 w (properties) 3917 4438 w (one) 4451 4438 w (is) 4666 4438 w (inter\255) 4782 4438 w (ested) 720 4558 w (in) 1017 4558 w (proving.) 1142 4558 w (Second,) 1610 4558 w (a) 2023 4558 w (formal) 2112 4558 w (model) 2462 4558 w (must) 2798 4558 w (contain) 3075 4558 w (things) 3466 4558 w (that) 3804 4558 w (are) 4030 4558 w (typically) 4217 4558 w (not) 4649 4558 w (part) 4844 4558 w (of) 720 4678 w (an) 859 4678 w (implementation,) 1017 4678 w (such) 1852 4678 w (as) 2119 4678 w (worst-case) 2266 4678 w (assumptions) 2845 4678 w (about) 3501 4678 w (the) 3820 4678 w (behavior) 4016 4678 w (of) 4475 4678 w (the) 4613 4678 w (envi\255) 4808 4678 w (ronment) 720 4798 w (that) 1167 4798 w (may) 1393 4798 w (interact) 1628 4798 w (with) 2031 4798 w (the) 2271 4798 w (system) 2461 4798 w (being) 2836 4798 w (studied,) 3143 4798 w (and) 3571 4798 w (a) 3786 4798 w (formal) 3876 4798 w (statement) 4227 4798 w (of) 4747 4798 w (rel\255) 4881 4798 w (evant) 720 4918 w (correctness) 1018 4918 w (properties.) 1611 4918 w (It) 2176 4918 w (is) 2277 4918 w (possible) 2392 4918 w (to) 2830 4918 w (mechanically) 2963 4918 w (extract) 3622 4918 w (abstract) 3995 4918 w (models) 4420 4918 w (from) 4808 4918 w (implementation level code, as discussed, for instance in [HS99].) 720 5038 w (Verification) 720 5194 w (with) 1318 5194 w 9 /LucidaSansUnicode00 f (SPIN) 1569 5194 w 10 /LucidaSansUnicode00 f (is) 1807 5194 w (often) 1933 5194 w (performed) 2232 5194 w (in) 2789 5194 w (a) 2926 5194 w (series) 3027 5194 w (of) 3357 5194 w (steps,) 3501 5194 w (with) 3837 5194 w (the) 4088 5194 w (construction) 4290 5194 w (of) 4942 5194 w (increasingly) 720 5314 w (detailed) 1363 5314 w (models.) 1815 5314 w (Each) 2296 5314 w (model) 2582 5314 w (can) 2948 5314 w (be) 3180 5314 w (verified) 3363 5314 w (under) 3790 5314 w (different) 4138 5314 w (types) 4620 5314 w (of) 4942 5314 w (assumptions) 720 5434 w (about) 1369 5434 w (the) 1681 5434 w (environment) 1870 5434 w (and) 2515 5434 w (for) 2730 5434 w (different) 2904 5434 w (types) 3357 5434 w (of) 3651 5434 w (correctness) 3784 5434 w (properties.) 4377 5434 w (If) 4974 5434 w (a) 720 5554 w (property) 810 5554 w (is) 1259 5554 w (not) 1374 5554 w (valid) 1569 5554 w (for) 1831 5554 w (the) 2004 5554 w (given) 2193 5554 w (assumptions) 2488 5554 w (about) 3137 5554 w (system) 3449 5554 w (behavior,) 3823 5554 w (the) 4308 5554 w (verifier) 4497 5554 w (can) 4872 5554 w (produce) 720 5674 w (a) 1160 5674 w (counter-example) 1258 5674 w (that) 2142 5674 w (demonstrates) 2376 5674 w (how) 3082 5674 w (the) 3325 5674 w (property) 3523 5674 w (may) 3980 5674 w (be) 4223 5674 w (violated.) 4385 5674 w (If) 4875 5674 w (a) 4985 5674 w (property) 720 5794 w (is) 1170 5794 w (valid,) 1286 5794 w (it) 1582 5794 w (may) 1684 5794 w (be) 1920 5794 w (possible) 2075 5794 w (to) 2514 5794 w (simplify) 2648 5794 w (the) 3067 5794 w (model) 3258 5794 w (based) 3596 5794 w (on) 3920 5794 w (that) 4079 5794 w (fact,) 4305 5794 w (and) 4552 5794 w (prove) 4767 5794 w (still other properties.) 720 5914 w (Section) 720 6070 w (1.1) 1104 6070 w (covers) 1296 6070 w (the) 1642 6070 w (basic) 1831 6070 w (building) 2114 6070 w (blocks) 2547 6070 w (of) 2894 6070 w (the) 3027 6070 w (language.) 3217 6070 w (Section) 3759 6070 w (1.2) 4144 6070 w (introduces) 4337 6070 w (the) 4885 6070 w (control) 720 6190 w (flow) 1106 6190 w (structures.) 1354 6190 w (Section) 1950 6190 w (1.3) 2343 6190 w (explains) 2544 6190 w (how) 2993 6190 w (correctness) 3236 6190 w (properties) 3837 6190 w (are) 4378 6190 w (specified.) 4573 6190 w (Section) 720 6310 w (1.4) 1103 6310 w (concludes) 1295 6310 w (the) 1815 6310 w (first) 2004 6310 w (part) 2233 6310 w (with) 2463 6310 w (a) 2702 6310 w (discussion) 2791 6310 w (of) 3335 6310 w (special) 3467 6310 w (predefined) 3835 6310 w (variables) 4395 6310 w (and) 4860 6310 w (functions that can be used to express some correctness properties.) 720 6430 w (Up) 720 6586 w (to) 984 6586 w (date) 1214 6586 w (manual) 1557 6586 w (pages) 2045 6586 w (for) 2464 6586 w 9 /LucidaSansUnicode00 f (SPIN) 2736 6586 w 10 /LucidaSansUnicode00 f (can) 3061 6586 w (always) 3362 6586 w (be) 3814 6586 w (found) 4066 6586 w (online) 4484 6586 w (at:) 4916 6586 w 10 /LucidaTypewriter f (http://cm.bell-labs.com/cm/cs/what/spin/Man/) 720 6706 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /LucidaSansUnicode00 f (\255 2 \255) 2783 480 w 10 /LucidaSans-Demi f (1.1.) 720 840 w (Basics) 962 840 w 10 /LucidaSansUnicode00 f (A) 720 996 w 9 /LucidaSansUnicode00 f (PROMELA) 821 996 w 10 /LucidaSansUnicode00 f (model can contain three different types of objects:) 1266 996 w 10 /LucidaSansUnicode22 f (\031) 970 1152 w 10 /LucidaSansUnicode00 f (Processes \(section 1.1.1\),) 1058 1152 w 10 /LucidaSansUnicode22 f (\031) 970 1272 w 10 /LucidaSansUnicode00 f (Variables \(section 1.1.2\),) 1058 1272 w 10 /LucidaSansUnicode22 f (\031) 970 1392 w 10 /LucidaSansUnicode00 f (Message channels \(section 1.1.3\).) 1058 1392 w (All) 720 1548 w (processes) 881 1548 w (are) 1396 1548 w (global) 1582 1548 w (objects.) 1915 1548 w (For) 2362 1548 w (obvious) 2552 1548 w (reasons,) 2965 1548 w (a) 3408 1548 w 9 /LucidaSansUnicode00 f (PROMELA) 3497 1548 w 10 /LucidaSansUnicode00 f (model) 3944 1548 w (must) 4280 1548 w (contain) 4557 1548 w (at) 4948 1548 w (least) 720 1668 w (one) 986 1668 w (process) 1203 1668 w (to) 1614 1668 w (be) 1749 1668 w (meaningful.) 1905 1668 w (Since) 2553 1668 w 9 /LucidaSansUnicode00 f (SPIN) 2842 1668 w 10 /LucidaSansUnicode00 f (is) 3071 1668 w (specifically) 3188 1668 w (meant) 3757 1668 w (to) 4097 1668 w (prove) 4232 1668 w (properties) 4542 1668 w (of concurrent systems, a model typically contains more than one process.) 720 1788 w (Message) 720 1944 w (channels) 1183 1944 w (and) 1657 1944 w (variables,) 1883 1944 w (the) 2392 1944 w (two) 2593 1944 w (basic) 2814 1944 w (types) 3109 1944 w (of) 3415 1944 w (data) 3560 1944 w (objects,) 3817 1944 w (can) 4245 1944 w (be) 4460 1944 w (declared) 4626 1944 w (with) 720 2064 w (either) 977 2064 w (a) 1310 2064 w (global) 1417 2064 w (scope) 1768 2064 w (or) 2101 2064 w (a) 2254 2064 w (local) 2360 2064 w (scope.) 2636 2064 w (A) 3033 2064 w (data) 3153 2064 w (object) 3414 2064 w (with) 3763 2064 w (global) 4019 2064 w (scope) 4369 2064 w (can) 4702 2064 w (be) 4921 2064 w (referred to by all processes.) 720 2184 w (A data) 2142 2184 w (object) 2486 2184 w (with) 2817 2184 w (a) 3055 2184 w (local) 3143 2184 w (scope) 3401 2184 w (can) 3716 2184 w (be) 3917 2184 w (referred) 4069 2184 w (to) 4493 2184 w (by) 4624 2184 w (just) 4772 2184 w (a) 4985 2184 w (single) 720 2304 w (process:) 1070 2304 w (the) 1536 2304 w (process) 1751 2304 w (that) 2185 2304 w (declares) 2436 2304 w (and) 2898 2304 w (instantiates) 3138 2304 w (the) 3759 2304 w (object.) 3974 2304 w (As) 4396 2304 w (usual,) 4576 2304 w (all) 4927 2304 w (objects must be declared in the specification before they are referenced.) 720 2424 w 10 /LucidaSans-Demi f (1.1.1.) 720 2664 w (Processes) 1051 2664 w 10 /LucidaSansUnicode00 f (Here is a simple process that does nothing except print a line of text:) 720 2820 w 9 /LucidaTypewriter f (init) 1008 2990 w ({) 1333 2990 w (printf\("it) 1528 3100 w (works\\n"\)) 2243 3100 w (}) 1008 3210 w 10 /LucidaSansUnicode00 f (There) 720 3390 w (are) 1042 3390 w (a) 1238 3390 w (few) 1337 3390 w (things) 1551 3390 w (to) 1898 3390 w (note.) 2040 3390 w 10 /LucidaTypewriter f (Init) 2364 3390 w 10 /LucidaSansUnicode00 f (is) 2696 3390 w (a) 2821 3390 w (predefined) 2921 3390 w (keyword) 3492 3390 w (from) 3945 3390 w (the) 4222 3390 w (language.) 4422 3390 w (It) 4974 3390 w (can) 720 3510 w (be) 921 3510 w (used) 1073 3510 w (to) 1338 3510 w (declare) 1469 3510 w (and) 1853 3510 w (instantiate) 2066 3510 w (a) 2609 3510 w (single) 2697 3510 w (initial) 3019 3510 w (process) 3322 3510 w (in) 3729 3510 w (the) 3853 3510 w (model.) 4041 3510 w (\(It) 4440 3510 w (is compa\255) 4572 3510 w (rable) 720 3630 w (to) 1004 3630 w (the) 1142 3630 w 10 /LucidaTypewriter f (main) 1338 3630 w 10 /LucidaSansUnicode00 f (procedure) 1667 3630 w (of) 2202 3630 w (a) 2341 3630 w (C) 2437 3630 w (program.\)) 2547 3630 w (The) 3101 3630 w 10 /LucidaTypewriter f (init) 3323 3630 w 10 /LucidaSansUnicode00 f (process) 3652 3630 w (does) 4067 3630 w (not) 4339 3630 w (take) 4540 3630 w (argu\255) 4787 3630 w (ments,) 720 3750 w (but) 1085 3750 w (it) 1281 3750 w (can) 1381 3750 w (start) 1583 3750 w (up) 1838 3750 w (\(instantiate\)) 1997 3750 w (other) 2607 3750 w (processes) 2898 3750 w (that) 3413 3750 w (do.) 3638 3750 w 10 /LucidaTypewriter f (Printf) 3860 3750 w 10 /LucidaSansUnicode00 f (is) 4326 3750 w (one) 4439 3750 w (of) 4651 3750 w (a) 4782 3750 w (few) 4870 3750 w (built-in procedures in the language.) 720 3870 w (It behaves the same as the C) 2547 3870 w (version.) 3973 3870 w (Note,) 4422 3870 w (finally,) 4715 3870 w (that) 720 3990 w (no) 970 3990 w (semicolon) 1152 3990 w (follows) 1704 3990 w (the) 2108 3990 w (single) 2322 3990 w 10 /LucidaTypewriter f (printf) 2670 3990 w 10 /LucidaSansUnicode00 f (statement) 3161 3990 w (in) 3704 3990 w (the) 3854 3990 w (above) 4068 3990 w (example.) 4414 3990 w (In) 4949 3990 w 9 /LucidaSansUnicode00 f (PROMELA) 720 4110 w 10 /LucidaSansUnicode00 f (, semicolons) 1133 4110 w (are) 1774 4110 w (used) 1959 4110 w (as) 2224 4110 w (statement) 2363 4110 w (separators,) 2880 4110 w (not) 3456 4110 w (statement) 3649 4110 w (terminators.) 4166 4110 w (\(The) 4826 4110 w 9 /LucidaSansUnicode00 f (SPIN) 720 4230 w 10 /LucidaSansUnicode00 f (parser, however, is lenient on this issue.\)) 944 4230 w (Any) 720 4386 w (process) 948 4386 w (can) 1367 4386 w (start) 1580 4386 w (new) 1847 4386 w (processes) 2088 4386 w (by) 2615 4386 w (using) 2776 4386 w (another) 3088 4386 w (built-in) 3508 4386 w (procedure) 3923 4386 w (called) 4463 4386 w 10 /LucidaTypewriter f (run) 4792 4386 w 10 /LucidaSansUnicode00 f (.) 5008 4386 w (For example,) 720 4506 w 9 /LucidaTypewriter f (proctype) 1008 4676 w (you_run\(byte) 1593 4676 w (x\)) 2438 4676 w ({) 1008 4786 w (printf\("my) 1528 4896 w (x) 2243 4896 w (is:) 2373 4896 w (%d\\n",) 2633 4896 w (x\)) 3088 4896 w (}) 1008 5006 w (init) 1008 5236 w ({) 1333 5236 w (run) 1528 5346 w (you_run\(1\);) 1788 5346 w (run) 1528 5456 w (you_run\(2\)) 1788 5456 w (}) 1008 5566 w 10 /LucidaSansUnicode00 f (The) 720 5746 w (word) 941 5746 w 10 /LucidaTypewriter f (proctype) 1223 5746 w 10 /LucidaSansUnicode00 f (is) 1839 5746 w (again) 1959 5746 w (a) 2262 5746 w (keyword) 2357 5746 w (that) 2805 5746 w (introduces) 3036 5746 w (the) 3589 5746 w (declaration) 3784 5746 w (of) 4363 5746 w (a) 4501 5746 w (new) 4596 5746 w (type) 4832 5746 w (of) 720 5866 w (process.) 874 5866 w (In) 1368 5866 w (this) 1515 5866 w (case,) 1750 5866 w (we) 2051 5866 w (have) 2240 5866 w (named) 2521 5866 w (that) 2906 5866 w (type) 3153 5866 w 10 /LucidaTypewriter f (you_run) 3417 5866 w 10 /LucidaSansUnicode00 f (and) 3977 5866 w (declared) 4212 5866 w (that) 4681 5866 w (all) 4927 5866 w (instantiations) 720 5986 w (of) 1423 5986 w (processes) 1567 5986 w (of) 2094 5986 w (this) 2238 5986 w (type) 2463 5986 w (will) 2717 5986 w (take) 2927 5986 w (one) 3179 5986 w (argument:) 3404 5986 w (a) 3983 5986 w (data) 4085 5986 w (object) 4342 5986 w (of) 4687 5986 w (type) 4832 5986 w 10 /LucidaTypewriter f (byte) 720 6106 w 10 /LucidaSansUnicode00 f (,) 1008 6106 w (that) 1101 6106 w (can) 1353 6106 w (be) 1582 6106 w (referred) 1762 6106 w (to) 2214 6106 w (within) 2372 6106 w (this) 2728 6106 w (process) 2967 6106 w (by) 3401 6106 w (the) 3576 6106 w (name) 3791 6106 w 10 /LucidaTypewriter f (x) 4117 6106 w 10 /LucidaSansUnicode00 f (.) 4189 6106 w (Instances) 4313 6106 w (of) 4827 6106 w (a) 4985 6106 w 10 /LucidaTypewriter f (proctype) 720 6226 w 10 /LucidaSansUnicode00 f (can) 1335 6226 w (be) 1542 6226 w (created) 1700 6226 w (with) 2098 6226 w (the) 2342 6226 w (predefined) 2536 6226 w (procedure) 3101 6226 w 10 /LucidaTypewriter f (run) 3634 6226 w 10 /LucidaSansUnicode00 f (,) 3850 6226 w (as) 3921 6226 w (shown) 4066 6226 w (in) 4418 6226 w (the) 4548 6226 w (exam\255) 4742 6226 w (ple.) 720 6346 w (When) 975 6346 w (the) 1284 6346 w 10 /LucidaTypewriter f (run) 1482 6346 w 10 /LucidaSansUnicode00 f (statement) 1741 6346 w (completes,) 2267 6346 w (a) 2838 6346 w (copy) 2935 6346 w (of) 3204 6346 w (the) 3344 6346 w (process) 3541 6346 w (has) 3957 6346 w (been) 4167 6346 w (started,) 4446 6346 w (and) 4860 6346 w (all) 720 6466 w (its) 872 6466 w (arguments) 1028 6466 w (have) 1586 6466 w (been) 1850 6466 w (initialized) 2127 6466 w (with) 2642 6466 w (the) 2887 6466 w (arguments) 3082 6466 w (provided.) 3641 6466 w (The) 4173 6466 w (process) 4394 6466 w (may,) 4808 6466 w (but) 720 6586 w (need) 922 6586 w (not,) 1199 6586 w (have) 1430 6586 w (performed) 1694 6586 w (any) 2244 6586 w (statement) 2452 6586 w (executions) 2975 6586 w (at) 3540 6586 w (this) 3671 6586 w (point.) 3889 6586 w (It) 4244 6586 w (is) 4349 6586 w (now) 4468 6586 w (part) 4707 6586 w (of) 4942 6586 w (the) 720 6706 w (concurrent) 911 6706 w (system,) 1471 6706 w (and) 1879 6706 w (its) 2095 6706 w (execution) 2249 6706 w (can) 2761 6706 w (be) 2966 6706 w (interleaved) 3122 6706 w (arbitrarily) 3695 6706 w (with) 4204 6706 w (those) 4446 6706 w (of) 4750 6706 w (the) 4885 6706 w (other,) 720 6826 w (already) 1064 6826 w (executing) 1470 6826 w (processes.) 2001 6826 w (\(More) 2601 6826 w (about) 2933 6826 w (the) 3266 6826 w (semantics) 3475 6826 w (of) 4014 6826 w (execution) 4166 6826 w (follows) 4695 6826 w (shortly.\)) 720 6946 w (In) 720 7102 w (many) 848 7102 w (cases,) 1147 7102 w (we) 1480 7102 w (are) 1650 7102 w (only) 1839 7102 w (interested) 2080 7102 w (in) 2605 7102 w (creating) 2733 7102 w (a) 3163 7102 w (single) 3255 7102 w (instance) 3581 7102 w (of) 4022 7102 w (each) 4158 7102 w (process) 4420 7102 w (type) 4832 7102 w (that) 720 7222 w (is) 975 7222 w (declared,) 1119 7222 w (and) 1629 7222 w (the) 1873 7222 w (processes) 2092 7222 w (require) 2637 7222 w (no) 3049 7222 w (arguments.) 3235 7222 w (We) 3881 7222 w (can) 4086 7222 w (define) 4317 7222 w (this) 4683 7222 w (by) 4925 7222 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /LucidaSansUnicode00 f (\255 3 \255) 2783 480 w (prefixing) 720 840 w (the) 1202 840 w (keyword) 1399 840 w 10 /LucidaTypewriter f (proctype) 1849 840 w 10 /LucidaSansUnicode00 f (from) 2467 840 w (the) 2741 840 w (process) 2938 840 w (declaration) 3354 840 w (with) 3935 840 w (another) 4183 840 w (keyword:) 4600 840 w 10 /LucidaTypewriter f (active) 720 960 w 10 /LucidaSansUnicode00 f (.) 1152 960 w (Instances) 1256 960 w (of) 1750 960 w (all) 1888 960 w (active) 2041 960 w (proctypes) 2361 960 w (are) 2876 960 w (created) 3068 960 w (when) 3467 960 w (the) 3764 960 w (system) 3959 960 w (itself) 4339 960 w (is) 4618 960 w (initial\255) 4737 960 w (ized.) 720 1080 w (We) 1040 1080 w (could,) 1233 1080 w (for) 1582 1080 w (instance,) 1772 1080 w (have) 2258 1080 w (avoided) 2534 1080 w (the) 2965 1080 w (use) 3172 1080 w (of) 3393 1080 w 10 /LucidaTypewriter f (init) 3543 1080 w 10 /LucidaSansUnicode00 f (by) 3883 1080 w (declaring) 4050 1080 w (the) 4550 1080 w (corre\255) 4757 1080 w (sponding process in the last example as follows:) 720 1200 w 9 /LucidaTypewriter f (active) 1008 1370 w (proctype) 1463 1370 w (main\(\)) 2048 1370 w ({) 2503 1370 w (run) 1528 1480 w (you_run\(1\);) 1788 1480 w (run) 1528 1590 w (you_run\(2\)) 1788 1590 w (}) 1008 1700 w 10 /LucidaSansUnicode00 f (Note) 720 1880 w (that) 990 1880 w (there) 1223 1880 w (are) 1517 1880 w (no) 1711 1880 w (parameters) 1876 1880 w (to) 2466 1880 w (instantiate) 2606 1880 w (in) 3158 1880 w (this) 3291 1880 w (case.) 3512 1880 w (Had) 3831 1880 w (they) 4065 1880 w (been) 4314 1880 w (declared,) 4594 1880 w (they) 720 2000 w (would) 965 2000 w (default) 1295 2000 w (to) 1672 2000 w (a) 1808 2000 w (zero) 1901 2000 w (value,) 2154 2000 w (just) 2478 2000 w (like) 2696 2000 w (all) 2906 2000 w (other) 3057 2000 w (data) 3352 2000 w (objects) 3600 2000 w (that) 3987 2000 w (are) 4216 2000 w (not) 4406 2000 w (explicitly) 4604 2000 w (instantiated.) 720 2120 w (Multiple copies of a process type can also be created in this way.) 720 2276 w (For example:) 3933 2276 w 9 /LucidaTypewriter f (active) 1008 2446 w ([4]) 1463 2446 w (proctype) 1723 2446 w (try_me\(\)) 2308 2446 w ({) 2893 2446 w (printf\("hi,) 1528 2556 w (i) 2308 2556 w (am) 2438 2556 w (process) 2633 2556 w (%d\\n",) 3153 2556 w (_pid\)) 3608 2556 w (}) 1008 2666 w 10 /LucidaSansUnicode00 f (creates) 720 2846 w (four) 1113 2846 w (processes.) 1360 2846 w (A) 1951 2846 w (predefined) 2066 2846 w (variable) 2638 2846 w 10 /LucidaTypewriter f (_pid) 3064 2846 w 10 /LucidaSansUnicode00 f (is) 3398 2846 w (assigned) 3524 2846 w (to) 3999 2846 w (each) 4144 2846 w (running) 4415 2846 w (pro\255) 4842 2846 w (cess,) 720 2966 w (and) 998 2966 w (holds) 1215 2966 w (its) 1518 2966 w (unique) 1672 2966 w (process) 2043 2966 w (instantiation) 2454 2966 w (number.) 3097 2966 w (In) 3575 2966 w (some) 3703 2966 w (cases,) 4000 2966 w (this) 4332 2966 w (number) 4547 2966 w (is) 4960 2966 w (needed when a reference has to be made to a specific process.) 720 3086 w (Summarizing:) 720 3242 w (process) 1457 3242 w (behavior) 1867 3242 w (is) 2322 3242 w (declared) 2438 3242 w (in) 2888 3242 w 10 /LucidaTypewriter f (proctype) 3015 3242 w 10 /LucidaSansUnicode00 f (definitions,) 3627 3242 w (and) 4211 3242 w (it) 4427 3242 w (is) 4529 3242 w (instanti\255) 4645 3242 w (ated) 720 3362 w (with) 967 3362 w (either) 1208 3362 w 10 /LucidaTypewriter f (run) 1525 3362 w 10 /LucidaSansUnicode00 f (statements) 1777 3362 w (or) 2348 3362 w (with) 2485 3362 w (the) 2725 3362 w (prefix) 2915 3362 w 10 /LucidaTypewriter f (active) 3237 3362 w 10 /LucidaSansUnicode00 f (.) 3669 3362 w (Within) 3768 3362 w (a) 4108 3362 w (proctype) 4198 3362 w (declara\255) 4657 3362 w (tion, statements are separated) 720 3482 w (\(not) 2234 3482 w (terminated\)) 2460 3482 w (by) 3055 3482 w (semicolons.) 3203 3482 w (As) 3844 3482 w (we) 3997 3482 w (shall) 4163 3482 w (see) 4422 3482 w (in) 4618 3482 w (exam\255) 4742 3482 w (ples) 720 3602 w (that) 955 3602 w (follow,) 1182 3602 w (instead) 1544 3602 w (of) 1932 3602 w (the) 2065 3602 w (semicolon,) 2255 3602 w (one) 2815 3602 w (can) 3029 3602 w (also) 3232 3602 w (use) 3463 3602 w (the) 3667 3602 w (alternative) 3857 3602 w (separator) 4401 3602 w 10 /LucidaTypewriter f (->) 4896 3602 w 10 /LucidaSansUnicode00 f (\(arrow\), wherever that may help to clarify the structure of a) 720 3722 w 9 /LucidaSansUnicode00 f (PROMELA) 3625 3722 w 10 /LucidaSansUnicode00 f (model.) 4070 3722 w 10 /LucidaSans-Demi f (Semantics of Execution) 720 3962 w 10 /LucidaSansUnicode00 f (In) 720 4118 w 9 /LucidaSansUnicode00 f (PROMELA) 855 4118 w 10 /LucidaSansUnicode00 f (there) 1312 4118 w (is) 1608 4118 w (no) 1732 4118 w (difference) 1899 4118 w (between) 2431 4118 w (a) 2882 4118 w (condition) 2981 4118 w (or) 3480 4118 w (expression) 3626 4118 w (and) 4201 4118 w (a) 4425 4118 w (statement.) 4524 4118 w (Fundamental) 720 4238 w (to) 1383 4238 w (the) 1516 4238 w (semantics) 1706 4238 w (of) 2225 4238 w (the) 2357 4238 w (language) 2546 4238 w (is) 3023 4238 w (the) 3137 4238 w (notion) 3326 4238 w (of) 3672 4238 w (the) 3804 4238 w 10 /LucidaSans-Italic f (executability) 3993 4238 w 10 /LucidaSansUnicode00 f (of) 4639 4238 w (state\255) 4771 4238 w (ments.) 720 4358 w (Statements) 1116 4358 w (are) 1687 4358 w (either) 1872 4358 w (executable) 2186 4358 w (or) 2745 4358 w (blocked.) 2880 4358 w (Executability) 3358 4358 w (is) 4006 4358 w (the) 4119 4358 w (basic) 4308 4358 w (means) 4591 4358 w (of) 4942 4358 w (enforcing synchronization between the processes in a distributed system.) 720 4478 w (A process can) 4365 4478 w (wait) 720 4598 w (for) 973 4598 w (an) 1167 4598 w (event) 1339 4598 w (to) 1657 4598 w (happen) 1810 4598 w (by) 2226 4598 w (waiting) 2396 4598 w (for) 2802 4598 w (a) 2997 4598 w (statement) 3108 4598 w (to) 3648 4598 w (become) 3802 4598 w (executable.) 4238 4598 w (For) 4884 4598 w (instance, instead of writing a busy wait loop:) 720 4718 w 9 /LucidaTypewriter f (while) 1008 4888 w (\(a) 1398 4888 w (!=) 1593 4888 w (b\)) 1788 4888 w (/*) 2048 4888 w (not) 2243 4888 w (valid) 2503 4888 w (Promela) 2893 4888 w (syntax) 3413 4888 w (*/) 3868 4888 w (skip;) 1528 4998 w (/*) 2048 4998 w (wait) 2243 4998 w (for) 2568 4998 w (a==b) 2828 4998 w (*/) 3153 4998 w (...) 1008 5108 w 10 /LucidaSansUnicode00 f (we achieve the same effect in) 720 5288 w 9 /LucidaSansUnicode00 f (PROMELA) 2181 5288 w 10 /LucidaSansUnicode00 f (with the statement) 2626 5288 w 9 /LucidaTypewriter f (\(a) 1008 5458 w (==) 1203 5458 w (b\);) 1398 5458 w (...) 1008 5568 w 10 /LucidaSansUnicode00 f (Often) 720 5748 w (we) 1036 5748 w (indicate) 1216 5748 w (that) 1645 5748 w (the) 1883 5748 w (continuation) 2085 5748 w (of) 2740 5748 w (an) 2885 5748 w (execution) 3049 5748 w (is) 3571 5748 w (conditional) 3698 5748 w (on) 4284 5748 w (the) 4454 5748 w (truth) 4656 5748 w (of) 4942 5748 w (some expression by using the alternate statement separator:) 720 5868 w 9 /LucidaTypewriter f (\(a) 1008 6038 w (==) 1203 6038 w (b\)) 1398 6038 w (->) 1593 6038 w (...) 1788 6038 w 10 /LucidaSansUnicode00 f (Assignments) 720 6218 w (and) 1385 6218 w 10 /LucidaTypewriter f (printf) 1608 6218 w 10 /LucidaSansUnicode00 f (statements) 2083 6218 w (are) 2661 6218 w (always) 2856 6218 w (executable) 3218 6218 w (in) 3787 6218 w 9 /LucidaSansUnicode00 f (PROMELA) 3921 6218 w 10 /LucidaSansUnicode00 f (.) 4334 6218 w (A) 4441 6218 w (condition,) 4553 6218 w (however,) 720 6338 w (can) 1199 6338 w (only) 1409 6338 w (be) 1655 6338 w (executed) 1816 6338 w (\(passed\)) 2299 6338 w (when) 2745 6338 w (it) 3043 6338 w (holds.) 3150 6338 w (If) 3521 6338 w (the) 3628 6338 w (condition) 3824 6338 w (does) 4320 6338 w (not) 4592 6338 w (hold,) 4793 6338 w (execution) 720 6458 w (blocks) 1232 6458 w (until) 1583 6458 w (it) 1840 6458 w (does.) 1944 6458 w (There) 2277 6458 w (are) 2593 6458 w (similar) 2783 6458 w (rules) 3148 6458 w (for) 3425 6458 w (determining) 3602 6458 w (the) 4230 6458 w (executability) 4423 6458 w (of) 720 6578 w (all) 853 6578 w (other) 1001 6578 w (primitive) 1293 6578 w (and) 1757 6578 w (compound) 1972 6578 w (statements) 2523 6578 w (in) 3093 6578 w (the) 3219 6578 w (language.) 3409 6578 w (The) 3950 6578 w (semantics) 4165 6578 w (of) 4684 6578 w (each) 4816 6578 w (statement) 720 6698 w (is) 1250 6698 w (defined) 1376 6698 w (in) 1788 6698 w (terms) 1925 6698 w (of) 2249 6698 w (rules) 2393 6698 w (for) 2678 6698 w (executability) 2863 6698 w (and) 3526 6698 w (effect.) 3752 6698 w (The) 4136 6698 w (rules) 4363 6698 w (for) 4648 6698 w (exe\255) 4834 6698 w (cutability) 720 6818 w (set) 1199 6818 w (a) 1378 6818 w (precondition) 1468 6818 w (on) 2118 6818 w (the) 2276 6818 w (state) 2466 6818 w (of) 2737 6818 w (the) 2869 6818 w (system) 3058 6818 w (in) 3432 6818 w (which) 3557 6818 w (a) 3872 6818 w (statement) 3961 6818 w (can) 4479 6818 w (be) 4681 6818 w (exe\255) 4834 6818 w (cuted.) 720 6938 w (The effect defines how a statement will alter a system state when executed.) 1085 6938 w 9 /LucidaSansUnicode00 f (PROMELA) 720 7094 w 10 /LucidaSansUnicode00 f (assumes) 1182 7094 w (that) 1651 7094 w (all) 1892 7094 w (individual) 2055 7094 w (statements) 2578 7094 w (are) 3163 7094 w (executed) 3365 7094 w (atomically:) 3857 7094 w (that) 4430 7094 w (is,) 4671 7094 w (they) 4833 7094 w (model) 720 7214 w (the) 1064 7214 w (smallest) 1261 7214 w (meaningful) 1704 7214 w (entities) 2293 7214 w (of) 2692 7214 w (execution) 2831 7214 w (in) 3347 7214 w (the) 3479 7214 w (system) 3675 7214 w (being) 4056 7214 w (studied.) 4369 7214 w (This) 4835 7214 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /LucidaSansUnicode00 f (\255 4 \255) 2783 480 w (means) 720 840 w (that) 1087 840 w 9 /LucidaSansUnicode00 f (PROMELA) 1328 840 w 10 /LucidaSansUnicode00 f (defines) 1791 840 w (the) 2195 840 w (standard) 2400 840 w (asynchronous) 2877 840 w (interleaving) 3598 840 w (model) 4219 840 w (of) 4572 840 w (execu\255) 4721 840 w (tion,) 720 960 w (where) 974 960 w (a) 1299 960 w (supposed) 1387 960 w (scheduler) 1890 960 w (is) 2394 960 w (free) 2507 960 w (at) 2730 960 w (each) 2855 960 w (point) 3112 960 w (in) 3397 960 w (the) 3521 960 w (execution) 3709 960 w (to) 4217 960 w (select any one) 4348 960 w (of) 720 1080 w (the) 855 1080 w (processes) 1047 1080 w (to) 1565 1080 w (proceed) 1700 1080 w (by) 2128 1080 w (executing) 2280 1080 w (a) 2793 1080 w (single) 2885 1080 w (primitive) 3212 1080 w (statement.) 3679 1080 w (Synchronization) 4265 1080 w (constraints) 720 1200 w (can) 1306 1200 w (be) 1523 1200 w (used) 1691 1200 w (to) 1972 1200 w (influence) 2119 1200 w (the) 2612 1200 w (interleaving) 2816 1200 w (patterns.) 3435 1200 w (It) 3949 1200 w (is) 4063 1200 w (the) 4191 1200 w (purpose) 4394 1200 w (of) 4839 1200 w (a) 4985 1200 w (concurrent) 720 1320 w (system) 1289 1320 w 10 /LucidaSansUnicode20 f (\031) 1629 1320 w 10 /LucidaSansUnicode00 f (s) 1661 1320 w (design) 1757 1320 w (to) 2125 1320 w (constrain) 2268 1320 w (those) 2762 1320 w (patterns) 3075 1320 w (in) 3523 1320 w (such) 3660 1320 w (a) 3932 1320 w (way) 4033 1320 w (that) 4263 1320 w (no) 4500 1320 w (correct\255) 4669 1320 w (ness) 720 1440 w (requirements) 981 1440 w (can) 1669 1440 w (be) 1878 1440 w (violated,) 2038 1440 w (and) 2493 1440 w (all) 2714 1440 w (service) 2868 1440 w (requirements) 3245 1440 w (are) 3933 1440 w (met.) 4126 1440 w (It) 4417 1440 w (is) 4524 1440 w (the) 4645 1440 w (pur\255) 4841 1440 w (pose) 720 1560 w (of) 989 1560 w (the) 1125 1560 w (verifier) 1318 1560 w (either) 1698 1560 w (to) 2018 1560 w (find) 2155 1560 w (counter-examples) 2385 1560 w (to) 3316 1560 w (a) 3453 1560 w (designer) 3547 1560 w 10 /LucidaSansUnicode20 f (\031) 3967 1560 w 10 /LucidaSansUnicode00 f (s) 3999 1560 w (claim) 4089 1560 w (that) 4385 1560 w (this) 4615 1560 w (goal) 4833 1560 w (has been met, or to demonstrate that the claim is indeed valid.) 720 1680 w 10 /LucidaSans-Demi f (1.1.2.) 720 1920 w (Variables) 1051 1920 w 10 /LucidaSansUnicode00 f (The) 720 2076 w (table) 945 2076 w (summarizes) 1229 2076 w (the) 1862 2076 w (five) 2062 2076 w (basic) 2281 2076 w (data) 2575 2076 w (types) 2830 2076 w (used) 3134 2076 w (in) 3411 2076 w 9 /LucidaSansUnicode00 f (PROMELA) 3547 2076 w 10 /LucidaSansUnicode00 f (.) 3960 2076 w 10 /LucidaTypewriter f (Bit) 4069 2076 w 10 /LucidaSansUnicode00 f (and) 4330 2076 w 10 /LucidaTypewriter f (bool) 4555 2076 w 10 /LucidaSansUnicode00 f (are) 4888 2076 w (synonyms) 720 2196 w (for) 1243 2196 w (a) 1421 2196 w (single) 1515 2196 w (bit) 1843 2196 w (of) 2011 2196 w (information.) 2148 2196 w (The) 2818 2196 w (first) 3038 2196 w (three) 3272 2196 w (types) 3563 2196 w (can) 3861 2196 w (store) 4067 2196 w (only) 4351 2196 w (unsigned) 4593 2196 w (quantities.) 720 2316 w (The) 1306 2316 w (last) 1528 2316 w (two) 1741 2316 w (can) 1958 2316 w (hold) 2168 2316 w (either) 2425 2316 w (positive) 2748 2316 w (or) 3168 2316 w (negative) 3312 2316 w (values.) 3763 2316 w (The) 4174 2316 w (precise) 4397 2316 w (value) 4786 2316 w (ranges) 720 2436 w (of) 1089 2436 w (variables) 1229 2436 w (of) 1702 2436 w (types) 1842 2436 w 10 /LucidaTypewriter f (short) 2142 2436 w 10 /LucidaSansUnicode00 f (and) 2543 2436 w 10 /LucidaTypewriter f (int) 2764 2436 w 10 /LucidaSansUnicode00 f (is) 3021 2436 w (implementation) 3142 2436 w (dependent,) 3945 2436 w (and) 4536 2436 w (corre\255) 4757 2436 w (sponds) 720 2556 w (to) 1109 2556 w (those) 1245 2556 w (of) 1550 2556 w (the) 1686 2556 w (same) 1879 2556 w (types) 2173 2556 w (in) 2471 2556 w (C) 2601 2556 w (programs) 2709 2556 w (that) 3215 2556 w (are) 3445 2556 w (compiled) 3636 2556 w (for) 4120 2556 w (the) 4298 2556 w (same) 4492 2556 w (hard\255) 4786 2556 w (ware.) 720 2676 w (The values given in the table are most common.) 1045 2676 w 10 /S f (_________________________) 2255 2746 w (_________________________) 2255 2766 w 10 /LucidaSans-Demi f (Type) 2255 2876 w (Range) 2905 2876 w 10 /S f (_________________________) 2255 2896 w 10 /LucidaSansUnicode00 f (bit) 2255 3016 w (0..1) 2905 3016 w (bool) 2255 3136 w (0..1) 2905 3136 w (byte) 2255 3256 w (0..255) 2905 3256 w (short) 2255 3376 w 10 /S f (-) 2851 3376 w 10 /LucidaSansUnicode00 f (2) 2922 3376 w 7 /LucidaSansUnicode00 f (15) 2990 3336 w 10 /LucidaSansUnicode00 f (.. 2) 3118 3376 w 7 /LucidaSansUnicode00 f (15) 3282 3336 w 10 /S f (-) 3394 3376 w 10 /LucidaSansUnicode00 f (1) 3465 3376 w (int) 2255 3496 w 10 /S f (-) 2851 3496 w 10 /LucidaSansUnicode00 f (2) 2922 3496 w 7 /LucidaSansUnicode00 f (31) 2990 3456 w 10 /LucidaSansUnicode00 f (.. 2) 3118 3496 w 7 /LucidaSansUnicode00 f (31) 3282 3456 w 10 /S f (-) 3394 3496 w 10 /LucidaSansUnicode00 f (1) 3465 3496 w 10 /S f (_________________________) 2255 3516 w 10 /LucidaSansUnicode00 f (The) 720 3732 w (following) 945 3732 w (example) 1436 3732 w (program) 1893 3732 w (declares) 2353 3732 w (a) 2799 3732 w (array) 2898 3732 w (of) 3186 3732 w (two) 3328 3732 w (elements) 3547 3732 w (of) 4031 3732 w (type) 4174 3732 w 10 /LucidaTypewriter f (bool) 4427 3732 w 10 /LucidaSansUnicode00 f (and) 4760 3732 w (a) 4985 3732 w (scalar) 720 3852 w (variable) 1049 3852 w 10 /LucidaTypewriter f (turn) 1476 3852 w 10 /LucidaSansUnicode00 f (of) 1810 3852 w (the) 1954 3852 w (same) 2155 3852 w (type.) 2456 3852 w (Note) 2774 3852 w (that) 3048 3852 w (the) 3285 3852 w (example) 3486 3852 w (relies) 3945 3852 w (on) 4253 3852 w (the) 4422 3852 w (fact) 4623 3852 w (that) 4849 3852 w 10 /LucidaTypewriter f (_pid) 720 3972 w 10 /LucidaSansUnicode00 f (is either 0 or 1 here.) 1040 3972 w 9 /LucidaTypewriter f (/*) 1008 4142 w (*) 1073 4252 w (Peterson's) 1203 4252 w (algorithm) 1918 4252 w (for) 2568 4252 w (enforcing) 2828 4252 w (*) 1073 4362 w (mutual) 1203 4362 w (exclusion) 1658 4362 w (between) 2308 4362 w (two) 2828 4362 w (processes) 3088 4362 w (*) 1073 4472 w (competing) 1203 4472 w (for) 1853 4472 w (access) 2113 4472 w (to) 2568 4472 w (a) 2763 4472 w (critical) 2893 4472 w (section) 3478 4472 w (*/) 1073 4582 w (bool) 1008 4692 w (turn,) 1333 4692 w (want[2];) 1723 4692 w (active) 1008 4912 w ([2]) 1463 4912 w (proctype) 1723 4912 w (user\(\)) 2308 4912 w ({) 1008 5022 w (again:) 1008 5132 w (want[_pid]) 1528 5242 w (=) 2243 5242 w (1;) 2373 5242 w (turn) 2568 5242 w (=) 2893 5242 w (_pid;) 3023 5242 w (/*) 1528 5462 w (wait) 1723 5462 w (until) 2048 5462 w (this) 2438 5462 w (condition) 2763 5462 w (holds:) 3413 5462 w (*/) 3868 5462 w (\(want[1) 1528 5572 w (-) 2048 5572 w (_pid]) 2178 5572 w (==) 2568 5572 w (0) 2763 5572 w (||) 2893 5572 w (turn) 3088 5572 w (==) 3413 5572 w (1) 3608 5572 w (-) 3738 5572 w (_pid\);) 3868 5572 w (/*) 1528 5792 w (enter) 1723 5792 w (*/) 2113 5792 w (critical:) 1008 5902 w (skip;) 2048 5902 w (/*) 1528 6012 w (leave) 1723 6012 w (*/) 2113 6012 w (want[_pid]) 1528 6232 w (=) 2243 6232 w (0;) 2373 6232 w (goto) 1528 6342 w (again) 1853 6342 w (}) 1008 6452 w 10 /LucidaSansUnicode00 f (In) 720 6632 w (the) 850 6632 w (above) 1044 6632 w (case,) 1370 6632 w (all) 1654 6632 w (variables) 1806 6632 w (are) 2276 6632 w (initialized) 2467 6632 w (to) 2981 6632 w (zero.) 3118 6632 w (The) 3436 6632 w (general) 3656 6632 w (syntax) 4056 6632 w (for) 4413 6632 w (declaring) 4592 6632 w (and instantiating a variable, respectively for scalar and array variables, is:) 720 6752 w 9 /LucidaTypewriter f (type) 1008 6922 w (name) 1333 6922 w (=) 1658 6922 w (expression;) 1788 6922 w (type) 1008 7032 w (name[constant]) 1333 7032 w (=) 2308 7032 w (expression) 2438 7032 w 10 /LucidaSansUnicode00 f (In) 720 7212 w (the) 846 7212 w (latter) 1036 7212 w (case,) 1327 7212 w (all) 1608 7212 w (elements) 1757 7212 w (of) 2233 7212 w (the) 2367 7212 w (array) 2558 7212 w (are) 2838 7212 w (initialized) 3026 7212 w (to) 3537 7212 w (the) 3671 7212 w (value) 3862 7212 w (of) 4152 7212 w (the) 4286 7212 w (expression.) 4477 7212 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /LucidaSansUnicode00 f (\255 5 \255) 2783 480 w (A) 720 840 w (missing) 824 840 w (initializer) 1236 840 w (fields) 1724 840 w (defaults) 2024 840 w (to) 2449 840 w (the) 2582 840 w (value) 2772 840 w (zero.) 3061 840 w (As) 3375 840 w (usual,) 3530 840 w (multiple) 3856 840 w (variables) 4288 840 w (of) 4753 840 w (the) 4885 840 w (same type can be grouped behind a single type name, as in:) 720 960 w 9 /LucidaTypewriter f (byte) 1008 1130 w (a,) 1333 1130 w (b[3],) 1528 1130 w (c) 1918 1130 w (=) 2048 1130 w (4) 2178 1130 w 10 /LucidaSansUnicode00 f (In) 720 1310 w (this) 849 1310 w (example,) 1066 1310 w (the) 1549 1310 w (variable) 1742 1310 w 10 /LucidaTypewriter f (c) 2160 1310 w 10 /LucidaSansUnicode00 f (is) 2270 1310 w (initialized) 2388 1310 w (to) 2901 1310 w (the) 3037 1310 w (value) 3230 1310 w (4;) 3523 1310 w (variable) 3657 1310 w 10 /LucidaTypewriter f (a) 4076 1310 w 10 /LucidaSansUnicode00 f (and) 4187 1310 w (the) 4406 1310 w (elements) 4600 1310 w (of array) 720 1430 w 10 /LucidaTypewriter f (b) 1126 1430 w 10 /LucidaSansUnicode00 f (are all initialized to zero.) 1230 1430 w (Variables can also be declared as structures.) 720 1586 w (For example:) 2944 1586 w 9 /LucidaTypewriter f (typedef) 1008 1756 w (Field) 1528 1756 w ({) 1918 1756 w (short) 1528 1866 w (f) 1918 1866 w (=) 2048 1866 w (3;) 2178 1866 w (byte) 1528 1976 w (g) 1918 1976 w (};) 1008 2086 w (typedef) 1008 2306 w (Msg) 1528 2306 w ({) 1788 2306 w (byte) 1528 2416 w (a[3];) 1853 2416 w (int) 1528 2526 w (fld1;) 1788 2526 w (Field) 1528 2636 w (fld2;) 1918 2636 w (chan) 1528 2746 w (p[3];) 1853 2746 w (bit) 1528 2856 w (b) 1788 2856 w (};) 1008 2966 w (Msg) 1008 3186 w (foo;) 1268 3186 w 10 /LucidaSansUnicode00 f (introduces) 720 3366 w (two) 1270 3366 w (user-defined) 1482 3366 w (data) 2153 3366 w (types,) 2400 3366 w (the) 2728 3366 w (first) 2920 3366 w (named) 3153 3366 w 10 /LucidaTypewriter f (Field) 3520 3366 w 10 /LucidaSansUnicode00 f (and) 3918 3366 w (the) 4136 3366 w (second) 4329 3366 w (named) 4711 3366 w 10 /LucidaTypewriter f (Msg) 720 3486 w 10 /LucidaSansUnicode00 f (.) 936 3486 w (A) 1040 3486 w (single) 1149 3486 w (variable) 1478 3486 w (named) 1898 3486 w 10 /LucidaTypewriter f (foo) 2266 3486 w 10 /LucidaSansUnicode00 f (of) 2521 3486 w (type) 2658 3486 w 10 /LucidaTypewriter f (Msg) 2905 3486 w 10 /LucidaSansUnicode00 f (is) 3160 3486 w (declared.) 3279 3486 w (All) 3796 3486 w (fields) 3962 3486 w (of) 4266 3486 w 10 /LucidaTypewriter f (foo) 4403 3486 w 10 /LucidaSansUnicode00 f (that) 4658 3486 w (are) 4888 3486 w (not) 720 3606 w (explicitly) 920 3606 w (initialized) 1396 3606 w (\(in) 1911 3606 w (the) 2075 3606 w (example,) 2270 3606 w (all) 2755 3606 w (fields) 2908 3606 w (except) 3213 3606 w 10 /LucidaTypewriter f (foo.fld2.f) 3578 3606 w 10 /LucidaSansUnicode00 f (\)) 4298 3606 w (are) 4372 3606 w (initialized) 4565 3606 w (to zero.) 720 3726 w (References to the elements of a structure are written as:) 1161 3726 w 9 /LucidaTypewriter f (foo.a[2]) 1008 3896 w (=) 1593 3896 w (foo.fld2.f) 1723 3896 w (+) 2438 3896 w (12) 2568 3896 w 10 /LucidaSansUnicode00 f (A) 720 4076 w (variable) 827 4076 w (of) 1245 4076 w (a) 1381 4076 w (user-defined) 1474 4076 w (type) 2146 4076 w (can) 2392 4076 w (be) 2598 4076 w (passed) 2755 4076 w (as) 3132 4076 w (a) 3276 4076 w (single) 3369 4076 w (argument) 3696 4076 w (to) 4202 4076 w (a) 4338 4076 w (new) 4432 4076 w (process) 4666 4076 w (in) 720 4196 w 10 /LucidaTypewriter f (run) 843 4196 w 10 /LucidaSansUnicode00 f (statements.) 1091 4196 w (For instance,) 1722 4196 w 9 /LucidaTypewriter f (proctype) 1008 4366 w (me\(Msg) 1593 4366 w (z\)) 2048 4366 w ({) 2243 4366 w (z.a[2]) 1528 4476 w (=) 1983 4476 w (12) 2113 4476 w (}) 1008 4586 w (init) 1008 4696 w ({) 1333 4696 w (Msg) 1528 4806 w (foo;) 1788 4806 w (run) 1528 4916 w (me\(foo\)) 1788 4916 w (}) 1008 5026 w 10 /LucidaSansUnicode00 f (Note) 720 5242 w (that) 1032 5242 w (even) 1307 5242 w (though) 1617 5242 w 9 /LucidaSansUnicode00 f (PROMELA) 2047 5242 w 10 /LucidaSansUnicode00 f (supports) 2544 5242 w (only) 3057 5242 w (one-dimensional) 3345 5242 w (arrays,) 4256 5242 w (a) 4667 5242 w (two-) 4807 5242 w (dimensional) 720 5362 w (array) 1345 5362 w (can) 1624 5362 w (be) 1827 5362 w (created) 1981 5362 w (indirectly) 2375 5362 w (with) 2859 5362 w (user-defined) 3099 5362 w (structures,) 3768 5362 w (for) 4324 5362 w (instance) 4497 5362 w (as) 4934 5362 w (follows:) 720 5482 w 9 /LucidaTypewriter f (typedef) 1008 5652 w (Array) 1528 5652 w ({) 1918 5652 w (byte) 1528 5762 w (el[4]) 1853 5762 w (};) 1008 5872 w (Array) 1008 6092 w (a[4];) 1398 6092 w 10 /LucidaSansUnicode00 f (This) 720 6272 w (creates) 974 6272 w (a) 1370 6272 w (data) 1474 6272 w (structure) 1733 6272 w (of) 2220 6272 w (16) 2367 6272 w (elements) 2542 6272 w (that) 3031 6272 w (can) 3272 6272 w (be) 3490 6272 w (referenced,) 3659 6272 w (for) 4260 6272 w (instance,) 4449 6272 w (as) 4934 6272 w 10 /LucidaTypewriter f (a[i].el[j]) 720 6392 w 10 /LucidaSansUnicode00 f (.) 1440 6392 w (As in C, the indices of an array of) 720 6548 w 10 /LucidaTypewriter f (N) 2373 6548 w 10 /LucidaSansUnicode00 f (elements range from 0 to) 2477 6548 w 10 /LucidaTypewriter f (N-1) 3746 6548 w 10 /LucidaSansUnicode00 f (.) 3962 6548 w 10 /LucidaSans-Demi f (Expressions) 720 6788 w 10 /LucidaSansUnicode00 f (Expressions) 720 6944 w (must) 1365 6944 w (be) 1673 6944 w (side-effect) 1857 6944 w (free) 2453 6944 w (in) 2708 6944 w 9 /LucidaSansUnicode00 f (PROMELA) 2864 6944 w 10 /LucidaSansUnicode00 f (.) 3277 6944 w (Specifically,) 3406 6944 w (this) 4038 6944 w (means) 4283 6944 w (that) 4666 6944 w (an) 4923 6944 w (expression) 720 7064 w (cannot) 1306 7064 w (contain) 1689 7064 w (assignments,) 2101 7064 w (or) 2797 7064 w (send) 2954 7064 w (and) 3241 7064 w (receive) 3476 7064 w (operations) 3872 7064 w (\(see) 4443 7064 w (section) 4693 7064 w (1.1.3\).) 720 7184 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 10 /LucidaSansUnicode00 f (\255 6 \255) 2783 480 w 9 /LucidaTypewriter f (c) 1008 830 w (=) 1138 830 w (c) 1268 830 w (+) 1398 830 w (1;) 1528 830 w (c) 1723 830 w (=) 1853 830 w (c) 1983 830 w (-) 2113 830 w (1) 2243 830 w 10 /LucidaSansUnicode00 f (and) 720 1010 w 9 /LucidaTypewriter f (c++;) 1008 1180 w (c--) 1333 1180 w 10 /LucidaSansUnicode00 f (are assignments in) 720 1360 w 9 /LucidaSansUnicode00 f (PROMELA) 1668 1360 w 10 /LucidaSansUnicode00 f (, with the same effects.) 2081 1360 w (But, unlike in C,) 3277 1360 w 9 /LucidaTypewriter f (b) 1008 1530 w (=) 1138 1530 w (c++) 1268 1530 w 10 /LucidaSansUnicode00 f (is) 720 1710 w (not) 833 1710 w (a) 1026 1710 w (valid) 1114 1710 w (assignment,) 1376 1710 w (because) 2000 1710 w (the) 2428 1710 w (right-hand) 2617 1710 w (side) 3182 1710 w (operand) 3415 1710 w (is) 3850 1710 w (not) 3964 1710 w (a) 4158 1710 w (valid) 4247 1710 w (expression) 4509 1710 w (in) 720 1830 w 9 /LucidaSansUnicode00 f (PROMELA) 843 1830 w 10 /LucidaSansUnicode00 f (\(it is not side-effect free\).) 1288 1830 w (It) 720 1986 w (is) 828 1986 w (also) 950 1986 w (possible) 1188 1986 w (to) 1633 1986 w (write) 1773 1986 w (a) 2055 1986 w (side-effect) 2152 1986 w (free) 2726 1986 w (conditional) 2959 1986 w (expression,) 3541 1986 w (with) 4147 1986 w (the) 4395 1986 w (following) 4593 1986 w (syntax:) 720 2106 w 9 /LucidaTypewriter f (\(expr1) 1008 2276 w (->) 1463 2276 w (expr2) 1658 2276 w (:) 2048 2276 w (expr3\)) 2178 2276 w 10 /LucidaSansUnicode00 f (The) 720 2456 w (parentheses) 938 2456 w (around) 1565 2456 w (the) 1946 2456 w (conditional) 2138 2456 w (expression) 2715 2456 w (are) 3284 2456 w (required) 3474 2456 w (to) 3923 2456 w (avoid) 4059 2456 w (misinterpreta\255) 4357 2456 w (tion) 720 2576 w (of) 943 2576 w (the) 1075 2576 w (arrow.) 1264 2576 w (The) 1637 2576 w (example) 1852 2576 w (expression) 2299 2576 w (has) 2864 2576 w (the) 3066 2576 w (value) 3255 2576 w (of) 3543 2576 w 10 /LucidaTypewriter f (expr2) 3675 2576 w 10 /LucidaSansUnicode00 f (when) 4069 2576 w 10 /LucidaTypewriter f (expr1) 4360 2576 w 10 /LucidaSansUnicode00 f (evalu\255) 4753 2576 w (ates to a non-zero value, and the value of) 720 2696 w 10 /LucidaTypewriter f (expr3) 2791 2696 w 10 /LucidaSansUnicode00 f (otherwise.) 3183 2696 w (In assignments like) 720 2852 w 9 /LucidaTypewriter f (variable) 1008 3022 w (=) 1593 3022 w (expression) 1723 3022 w 10 /LucidaSansUnicode00 f (the) 720 3202 w (values) 920 3202 w (of) 1270 3202 w (all) 1413 3202 w (operands) 1571 3202 w (used) 2068 3202 w (inside) 2345 3202 w (the) 2680 3202 w (expression) 2880 3202 w (are) 3456 3202 w (first) 3653 3202 w (cast) 3893 3202 w (to) 4133 3202 w (signed) 4277 3202 w (integers) 4646 3202 w (before) 720 3322 w (the) 1073 3322 w (operands) 1267 3322 w (are) 1758 3322 w (applied.) 1949 3322 w (After) 2410 3322 w (the) 2689 3322 w (evaluation) 2883 3322 w (of) 3420 3322 w (the) 3556 3322 w (expression) 3749 3322 w (completes,) 4318 3322 w (the) 4885 3322 w (value) 720 3442 w (produced) 1021 3442 w (is) 1528 3442 w (cast) 1655 3442 w (to) 1896 3442 w (the) 2041 3442 w (type) 2243 3442 w (of) 2499 3442 w (the) 2645 3442 w (target) 2848 3442 w (variable) 3184 3442 w (before) 3612 3442 w (the) 3974 3442 w (assignment) 4177 3442 w (takes) 4783 3442 w (place.) 720 3562 w 10 /LucidaSans-Demi f (1.1.3.) 720 3802 w (Message Channels) 1051 3802 w 10 /LucidaSansUnicode00 f (Message) 720 3958 w (channels) 1176 3958 w (are) 1643 3958 w (used) 1834 3958 w (to) 2105 3958 w (model) 2242 3958 w (the) 2583 3958 w (transfer) 2777 3958 w (of) 3196 3958 w (data) 3333 3958 w (between) 3583 3958 w (processes.) 4030 3958 w (They) 4615 3958 w (are) 4888 3958 w (declared either locally or globally, for instance as follows:) 720 4078 w 9 /LucidaTypewriter f (chan) 1008 4248 w (qname) 1333 4248 w (=) 1723 4248 w ([16]) 1853 4248 w (of) 2178 4248 w ({) 2373 4248 w (short,) 2503 4248 w (byte) 2958 4248 w (}) 3283 4248 w 10 /LucidaSansUnicode00 f (The) 720 4428 w (keyword) 934 4428 w 10 /LucidaTypewriter f (chan) 1375 4428 w 10 /LucidaSansUnicode00 f (introduces) 1696 4428 w (a) 2243 4428 w (channel) 2332 4428 w (declaration.) 2743 4428 w (In) 3380 4428 w (this) 3505 4428 w (case,) 3718 4428 w (the) 3997 4428 w (channel) 4186 4428 w (is) 4597 4428 w (named) 4711 4428 w 10 /LucidaTypewriter f (qname) 720 4548 w 10 /LucidaSansUnicode00 f (,) 1080 4548 w (and) 1154 4548 w (it) 1376 4548 w (is) 1484 4548 w (declared) 1606 4548 w (to) 2062 4548 w (be) 2202 4548 w (capable) 2363 4548 w (of) 2777 4548 w (storing) 2917 4548 w (up) 3301 4548 w (to) 3467 4548 w (16) 3606 4548 w (messages.) 3773 4548 w (Each) 4353 4548 w (message) 4616 4548 w (stored) 720 4668 w (in) 1069 4668 w (the) 1200 4668 w (channel) 1395 4668 w (is) 1812 4668 w (declared) 1932 4668 w (here) 2386 4668 w (to) 2641 4668 w (consist) 2779 4668 w (of) 3161 4668 w (two) 3299 4668 w (fields:) 3514 4668 w (one) 3851 4668 w (of) 4071 4668 w (type) 4210 4668 w 10 /LucidaTypewriter f (short) 4459 4668 w 10 /LucidaSansUnicode00 f (and) 4860 4668 w (one) 720 4788 w (of) 947 4788 w (type) 1093 4788 w 10 /LucidaTypewriter f (byte) 1349 4788 w 10 /LucidaSansUnicode00 f (.) 1637 4788 w (The) 1749 4788 w (fields) 1978 4788 w (of) 2291 4788 w (a) 2437 4788 w (message) 2540 4788 w (can) 3012 4788 w (be) 3228 4788 w (any) 3395 4788 w (one) 3612 4788 w (of) 3839 4788 w (the) 3985 4788 w (basic) 4188 4788 w (types) 4485 4788 w 10 /LucidaTypewriter f (bit) 4792 4788 w 10 /LucidaSansUnicode00 f (,) 5008 4788 w 10 /LucidaTypewriter f (bool) 720 4908 w 10 /LucidaSansUnicode00 f (,) 1008 4908 w 10 /LucidaTypewriter f (byte) 1080 4908 w 10 /LucidaSansUnicode00 f (,) 1368 4908 w 10 /LucidaTypewriter f (short) 1440 4908 w 10 /LucidaSansUnicode00 f (,) 1800 4908 w 10 /LucidaTypewriter f (int) 1872 4908 w 10 /LucidaSansUnicode00 f (,) 2088 4908 w (and) 2160 4908 w 10 /LucidaTypewriter f (chan) 2380 4908 w 10 /LucidaSansUnicode00 f (,) 2668 4908 w (or) 2740 4908 w (any) 2882 4908 w (user-defined) 3091 4908 w (type.) 3765 4908 w (Message) 4077 4908 w (fields) 4534 4908 w (can\255) 4839 4908 w (not be declared as arrays.) 720 5028 w (A) 720 5184 w (message) 826 5184 w (field) 1287 5184 w (of) 1539 5184 w (type) 1675 5184 w 10 /LucidaTypewriter f (chan) 1921 5184 w 10 /LucidaSansUnicode00 f (can) 2247 5184 w (be) 2453 5184 w (used) 2610 5184 w (to) 2880 5184 w (pass) 3016 5184 w (a) 3274 5184 w (channel) 3367 5184 w (identifier) 3782 5184 w (through) 4259 5184 w (a) 4684 5184 w (chan\255) 4777 5184 w (nel from one process to another.) 720 5304 w (The statement) 720 5460 w 9 /LucidaTypewriter f (qname!expr1,expr2) 1008 5630 w 10 /LucidaSansUnicode00 f (sends) 720 5810 w (the) 1036 5810 w (values) 1224 5810 w (of) 1562 5810 w (expressions) 1693 5810 w 10 /LucidaTypewriter f (expr1) 2309 5810 w 10 /LucidaSansUnicode00 f (and) 2703 5810 w 10 /LucidaTypewriter f (expr2) 2917 5810 w 10 /LucidaSansUnicode00 f (to) 3311 5810 w (the) 3443 5810 w (channel) 3632 5810 w (that) 4043 5810 w (we) 4268 5810 w (just) 4435 5810 w (created.) 4649 5810 w (It) 720 5930 w (appends) 819 5930 w (the message field created from the values of the two expressions \(and cast to) 1265 5930 w (the) 720 6050 w (appropriate) 912 6050 w (types) 1513 6050 w (of) 1809 6050 w (the) 1944 6050 w (message) 2136 6050 w (fields) 2598 6050 w (declared) 2901 6050 w (for) 3353 6050 w 10 /LucidaTypewriter f (qname) 3530 6050 w 10 /LucidaSansUnicode00 f (\)) 3890 6050 w (to) 3961 6050 w (the) 4097 6050 w (tail) 4290 6050 w (of) 4478 6050 w (the) 4614 6050 w (mes\255) 4807 6050 w (sage) 720 6170 w (buffer) 984 6170 w (of) 1320 6170 w (16) 1458 6170 w (slots) 1624 6170 w (that) 1893 6170 w (belongs) 2124 6170 w (to) 2548 6170 w (channel) 2685 6170 w 10 /LucidaTypewriter f (qname) 3101 6170 w 10 /LucidaSansUnicode00 f (.) 3461 6170 w (By) 3564 6170 w (default) 3713 6170 w (the) 4091 6170 w (send) 4285 6170 w (statement) 4556 6170 w (is) 720 6290 w (only) 856 6290 w (executable) 1116 6290 w (if) 1698 6290 w (the) 1820 6290 w (target) 2031 6290 w (channel) 2375 6290 w (is) 2808 6290 w (non-full.) 2944 6290 w (\(This) 3464 6290 w (default) 3758 6290 w (semantics) 4154 6290 w (can) 4696 6290 w (be) 4921 6290 w (changed) 720 6410 w (in) 1168 6410 w (the) 1296 6410 w (verifier) 1488 6410 w (into) 1866 6410 w (one) 2092 6410 w (where) 2308 6410 w (the) 2637 6410 w (send) 2829 6410 w (statement) 3098 6410 w (is) 3619 6410 w (always) 3736 6410 w (executable,) 4092 6410 w (but) 4687 6410 w (the) 4885 6410 w (message will be lost when an attempt is made to append it to a full channel.\)) 720 6530 w (The statement) 720 6686 w 9 /LucidaTypewriter f (qname?var1,var2) 1008 6856 w 10 /LucidaSansUnicode00 f (retrieves a message from the head of the same buffer, and stores the) 720 7036 w (two) 4126 7036 w (expressions) 4334 7036 w (in) 4949 7036 w (variables) 720 7156 w 10 /LucidaTypewriter f (var1) 1183 7156 w 10 /LucidaSansUnicode00 f (and) 1503 7156 w 10 /LucidaTypewriter f (var2) 1715 7156 w 10 /LucidaSansUnicode00 f (.) 2003 7156 w (The receive statement is executable only if the source channel is non-empty.) 720 7312 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Page: 7 7 /saveobj save def mark 7 pagesetup 10 /LucidaSansUnicode00 f (\255 7 \255) 2783 480 w (If) 720 840 w (more) 826 840 w (parameters) 1117 840 w (are) 1705 840 w (sent) 1897 840 w (per) 2143 840 w (message) 2343 840 w (than) 2807 840 w (were) 3064 840 w (declared) 3335 840 w (for) 3790 840 w (the) 3970 840 w (message) 4166 840 w (channel,) 4631 840 w (the) 720 960 w (redundant) 931 960 w (parameters) 1488 960 w (are) 2092 960 w (lost.) 2300 960 w (If) 2598 960 w (fewer) 2720 960 w (parameters) 3042 960 w (are) 3645 960 w (sent) 3852 960 w (than) 4113 960 w (declared,) 4384 960 w (the) 4885 960 w (value) 720 1080 w (of) 1012 1080 w (the) 1148 1080 w (remaining) 1341 1080 w (parameters) 1868 1080 w (is) 2454 1080 w (undefined.) 2572 1080 w (Similarly,) 3164 1080 w (if) 3645 1080 w (the) 3749 1080 w (receive) 3942 1080 w (operation) 4322 1080 w (tries) 4826 1080 w (to) 720 1200 w (retrieve) 862 1200 w (more) 1274 1200 w (parameters) 1569 1200 w (than) 2161 1200 w (available,) 2421 1200 w (the) 2920 1200 w (value) 3119 1200 w (of) 3417 1200 w (the) 3559 1200 w (extra) 3757 1200 w (parameters) 4050 1200 w (is) 4641 1200 w (unde\255) 4764 1200 w (fined;) 720 1320 w (if) 1039 1320 w (it) 1145 1320 w (receives) 1251 1320 w (fewer) 1683 1320 w (than) 1990 1320 w (the) 2246 1320 w (number) 2441 1320 w (of) 2858 1320 w (parameters) 2997 1320 w (sent,) 3586 1320 w (the) 3865 1320 w (extra) 4061 1320 w (information) 4352 1320 w (is) 4960 1320 w (lost.) 720 1440 w (An) 720 1596 w (alternative,) 890 1596 w (and) 1470 1596 w (equivalent,) 1689 1596 w (notation) 2261 1596 w (for) 2704 1596 w (the) 2883 1596 w (send) 3078 1596 w (and) 3350 1596 w (receive) 3570 1596 w (operations) 3951 1596 w (is) 4507 1596 w (to) 4627 1596 w (struc\255) 4765 1596 w (ture the message fields with parentheses, as follows:) 720 1716 w 9 /LucidaTypewriter f (qname!expr1\(expr2,expr3\)) 1008 1886 w (qname?var1\(var2,var3\)) 1008 1996 w 10 /LucidaSansUnicode00 f (In) 720 2176 w (the) 847 2176 w (above) 1038 2176 w (case,) 1361 2176 w (we) 1642 2176 w (assume) 1811 2176 w (that) 2215 2176 w 10 /LucidaTypewriter f (qname) 2443 2176 w 10 /LucidaSansUnicode00 f (was) 2840 2176 w (declared) 3060 2176 w (to) 3511 2176 w (hold) 3646 2176 w (messages) 3898 2176 w (consisting) 4410 2176 w (of) 4942 2176 w (three fields.) 720 2296 w (Some) 970 2452 w (or) 1279 2452 w (all) 1426 2452 w (of) 1584 2452 w (the) 1727 2452 w (arguments) 1927 2452 w (of) 2492 2452 w (the) 2636 2452 w (receive) 2837 2452 w (operation) 3224 2452 w (can) 3735 2452 w (be) 3949 2452 w (given) 4114 2452 w (as) 4421 2452 w (constants) 4573 2452 w (instead of as variables:) 720 2572 w 9 /LucidaTypewriter f (qname?cons1,var2,cons2) 1008 2742 w 10 /LucidaSansUnicode00 f (In) 720 2922 w (this) 851 2922 w (case,) 1070 2922 w (an) 1355 2922 w (extra) 1512 2922 w (condition) 1802 2922 w (on) 2297 2922 w (the) 2460 2922 w (executability) 2655 2922 w (of) 3312 2922 w (the) 3450 2922 w (receive) 3645 2922 w (operation) 4026 2922 w (is) 4532 2922 w (that) 4653 2922 w (the) 4885 2922 w (value) 720 3042 w (of) 1013 3042 w (all) 1149 3042 w (message) 1300 3042 w (fields) 1762 3042 w (specified) 2065 3042 w (as) 2538 3042 w (constants) 2682 3042 w (match) 3187 3042 w (the) 3523 3042 w (value) 3716 3042 w (of) 4008 3042 w (the) 4144 3042 w (corresponding) 4337 3042 w (fields in the message that is to be received.) 720 3162 w (Here is an example that uses some of the mechanisms introduced so far.) 720 3318 w 9 /LucidaTypewriter f (proctype) 1008 3488 w (A\(chan) 1593 3488 w (q1\)) 2048 3488 w ({) 1008 3598 w (chan) 1528 3598 w (q2;) 1853 3598 w (q1?q2;) 1528 3708 w (q2!123) 1528 3818 w (}) 1008 3928 w (proctype) 1008 4158 w (B\(chan) 1593 4158 w (qforb\)) 2048 4158 w ({) 1008 4268 w (int) 1528 4268 w (x;) 1788 4268 w (qforb?x;) 1528 4378 w (printf\("x) 1528 4488 w (=) 2178 4488 w (%d\\n",) 2308 4488 w (x\)) 2763 4488 w (}) 1008 4598 w (init) 1008 4828 w ({) 1333 4828 w (chan) 1528 4938 w (qname) 1853 4938 w (=) 2243 4938 w ([1]) 2373 4938 w (of) 2633 4938 w ({) 2828 4938 w (chan) 2958 4938 w (};) 3283 4938 w (chan) 1528 5048 w (qforb) 1853 5048 w (=) 2243 5048 w ([1]) 2373 5048 w (of) 2633 5048 w ({) 2828 5048 w (int) 2958 5048 w (};) 3218 5048 w (run) 1528 5158 w (A\(qname\);) 1788 5158 w (run) 1528 5268 w (B\(qforb\);) 1788 5268 w (qname!qforb) 1528 5378 w (}) 1008 5488 w 10 /LucidaSansUnicode00 f (The value printed by the process of type) 720 5668 w 10 /LucidaTypewriter f (B) 2712 5668 w 10 /LucidaSansUnicode00 f (will be) 2816 5668 w 10 /LucidaTypewriter f (123) 3163 5668 w 10 /LucidaSansUnicode00 f (.) 3379 5668 w (A) 720 5824 w (predefined) 829 5824 w (function) 1396 5824 w 10 /LucidaTypewriter f (len\(qname\)) 1838 5824 w 10 /LucidaSansUnicode00 f (returns) 2599 5824 w (the) 2990 5824 w (number) 3186 5824 w (of) 3604 5824 w (messages) 3743 5824 w (currently) 4259 5824 w (stored) 4731 5824 w (in) 720 5944 w (channel) 863 5944 w 10 /LucidaTypewriter f (qname) 1292 5944 w 10 /LucidaSansUnicode00 f (.) 1652 5944 w (Two) 1768 5944 w (shorthands) 2021 5944 w (for) 2618 5944 w (the) 2809 5944 w (most) 3016 5944 w (common) 3310 5944 w (uses) 3783 5944 w (of) 4055 5944 w (this) 4205 5944 w (function) 4436 5944 w (are) 4888 5944 w 10 /LucidaTypewriter f (empty\(qname\)) 720 6064 w 10 /LucidaSansUnicode00 f (and) 1616 6064 w 10 /LucidaTypewriter f (full\(qname\)) 1828 6064 w 10 /LucidaSansUnicode00 f (, with the obvious connotations.) 2620 6064 w (Since all expressions must be side-effect free, it is not valid to say:) 720 6220 w 9 /LucidaTypewriter f (\(qname?var) 1008 6390 w (==) 1723 6390 w (0\)) 1918 6390 w 10 /LucidaSansUnicode00 f (or) 720 6570 w 9 /LucidaTypewriter f (\(a) 1008 6740 w (>) 1203 6740 w (b) 1333 6740 w (&&) 1463 6740 w (qname!123\)) 1658 6740 w 10 /LucidaSansUnicode00 f (We could rewrite the second) 720 6920 w (example) 2125 6920 w (\(using) 2571 6920 w (an) 2903 6920 w (atomic) 3053 6920 w (sequence,) 3412 6920 w (as) 3934 6920 w (explained) 4073 6920 w (further) 4580 6920 w (in) 4949 6920 w (section 1.2.1\):) 720 7040 w cleartomark showpage saveobj restore %%EndPage: 7 7 %%Page: 8 8 /saveobj save def mark 8 pagesetup 10 /LucidaSansUnicode00 f (\255 8 \255) 2783 480 w 9 /LucidaTypewriter f (atomic) 1008 830 w ({) 1463 830 w (\(a) 1593 830 w (>) 1788 830 w (b) 1918 830 w (&&) 2048 830 w (!full\(qname\)\)) 2243 830 w (->) 3153 830 w (qname!123) 3348 830 w (}) 3998 830 w 10 /LucidaSansUnicode00 f (The) 720 1010 w (meaning) 939 1010 w (of) 1396 1010 w (the) 1532 1010 w (first) 1725 1010 w (example) 1958 1010 w (is) 2409 1010 w (ambiguous.) 2527 1010 w (It) 3167 1010 w (could) 3271 1010 w (mean) 3575 1010 w (that) 3879 1010 w (we) 4108 1010 w (want) 4279 1010 w (the) 4548 1010 w (condi\255) 4741 1010 w (tion) 720 1130 w (to) 951 1130 w (be) 1091 1130 w (true) 1252 1130 w (if) 1490 1130 w (the) 1598 1130 w (receive) 1795 1130 w (operation) 2178 1130 w (is) 2685 1130 w (unexecutable.) 2807 1130 w (In) 3563 1130 w (that) 3695 1130 w (case,) 3927 1130 w (we) 4213 1130 w (can) 4387 1130 w (rewrite) 4596 1130 w (it) 4974 1130 w (without side-effects as:) 720 1250 w 9 /LucidaTypewriter f (empty\(qname\)) 1008 1420 w 10 /LucidaSansUnicode00 f (It) 720 1600 w (could) 821 1600 w (also) 1122 1600 w (mean) 1353 1600 w (that) 1654 1600 w (we) 1880 1600 w (want) 2049 1600 w (the) 2316 1600 w (condition) 2507 1600 w (to) 2998 1600 w (be) 3132 1600 w (true) 3287 1600 w (when) 3519 1600 w (the) 3812 1600 w (channel) 4003 1600 w (does) 4416 1600 w (contain) 4683 1600 w (a message with value zero.) 720 1720 w (We can specify that as follows:) 2097 1720 w 9 /LucidaTypewriter f (atomic) 1008 1890 w ({) 1463 1890 w (qname?[0]) 1593 1890 w (->) 2243 1890 w (qname?var) 2438 1890 w (}) 3088 1890 w 10 /LucidaSansUnicode00 f (The) 720 2070 w (first) 945 2070 w (statement) 1184 2070 w (of) 1712 2070 w (this) 1854 2070 w (atomic) 2077 2070 w (sequence) 2447 2070 w (is) 2949 2070 w (an) 3074 2070 w (expression) 3236 2070 w (without) 3812 2070 w (side-effects) 4222 2070 w (that) 4849 2070 w (evaluates to a non-zero value only if the receive operation) 720 2190 w 9 /LucidaTypewriter f (qname?0) 1008 2360 w 10 /LucidaSansUnicode00 f (would) 720 2540 w (have) 1061 2540 w (been) 1335 2540 w (executable) 1621 2540 w (at) 2197 2540 w (that) 2339 2540 w (point) 2580 2540 w (\(i.e.,) 2882 2540 w (channel) 3146 2540 w 10 /LucidaTypewriter f (qname) 3573 2540 w 10 /LucidaSansUnicode00 f (contains) 3983 2540 w (at) 4441 2540 w (least) 4583 2540 w (one) 4861 2540 w (message) 720 2660 w (and) 1189 2660 w (the) 1414 2660 w (oldest) 1614 2660 w (message) 1956 2660 w (stored) 2425 2660 w (consists) 2779 2660 w (of) 3217 2660 w (one) 3360 2660 w (message) 3583 2660 w (field) 4051 2660 w (equal) 4309 2660 w (to) 4618 2660 w (zero\).) 4760 2660 w (Any) 720 2780 w (receive) 964 2780 w (statement) 1366 2780 w (can) 1912 2780 w (be) 2142 2780 w (turned) 2323 2780 w (into) 2706 2780 w (a) 2957 2780 w (side-effect) 3074 2780 w (free) 3667 2780 w (expression) 3919 2780 w (by) 4512 2780 w (placing) 4689 2780 w (square) 720 2900 w (brackets) 1113 2900 w (around) 1590 2900 w (the) 1999 2900 w (list) 2219 2900 w (of) 2430 2900 w (all) 2593 2900 w (message) 2771 2900 w (parameters.) 3260 2900 w (The) 3937 2900 w (channel) 4182 2900 w (contents) 4623 2900 w (remain undisturbed by the evaluation of such expressions.) 720 3020 w (Note carefully, however, that in non-atomic sequences of two statements such as) 720 3176 w 9 /LucidaTypewriter f (!full\(qname\)) 1008 3346 w (->) 1853 3346 w (qname!msgtype) 2048 3346 w 10 /LucidaSansUnicode00 f (and) 720 3526 w 9 /LucidaTypewriter f (qname?[msgtype]) 1008 3696 w (->) 2048 3696 w (qname?msgtype) 2243 3696 w 10 /LucidaSansUnicode00 f (the) 720 3876 w (second) 926 3876 w (statement) 1321 3876 w (is) 1856 3876 w (not) 1987 3876 w (necessarily) 2199 3876 w (executable) 2784 3876 w (after) 3362 3876 w (the) 3640 3876 w (first) 3847 3876 w (one) 4094 3876 w (has) 4325 3876 w (been) 4545 3876 w (exe\255) 4834 3876 w (cuted.) 720 3996 w (There) 1101 3996 w (may) 1427 3996 w (be) 1674 3996 w (race) 1840 3996 w (conditions) 2090 3996 w (when) 2643 3996 w (access) 2947 3996 w (to) 3309 3996 w (the) 3454 3996 w (channels) 3656 3996 w (is) 4131 3996 w (shared) 4258 3996 w (between) 4633 3996 w (several) 720 4116 w (processes.) 1104 4116 w (Another) 1693 4116 w (process) 2125 4116 w (can) 2543 4116 w (send) 2755 4116 w (a) 3031 4116 w (message) 3131 4116 w (to) 3600 4116 w (the) 3743 4116 w (channel) 3943 4116 w (just) 4365 4116 w (after) 4590 4116 w (this) 4861 4116 w (process) 720 4236 w (determined) 1133 4236 w (that) 1728 4236 w (it) 1958 4236 w (was) 2063 4236 w (not) 2285 4236 w (full,) 2483 4236 w (or) 2710 4236 w (another) 2850 4236 w (process) 3262 4236 w (can) 3674 4236 w (steal) 3880 4236 w (away) 4146 4236 w (the) 4423 4236 w (message) 4616 4236 w (just after our process determined its presence.) 720 4356 w (Two) 720 4512 w (other) 965 4512 w (types) 1266 4512 w (of) 1569 4512 w (send) 1711 4512 w (and) 1987 4512 w (receive) 2211 4512 w (statements) 2596 4512 w (are) 3176 4512 w (used) 3373 4512 w (less) 3650 4512 w (frequently:) 3882 4512 w (sorted) 4454 4512 w (send) 4808 4512 w (and) 720 4632 w (random) 937 4632 w (receive.) 1349 4632 w (A) 1791 4632 w (sorted) 1896 4632 w (send) 2241 4632 w (operation) 2509 4632 w (is) 3010 4632 w (written) 3126 4632 w (with) 3501 4632 w (two,) 3742 4632 w (instead) 3985 4632 w (of) 4374 4632 w (one,) 4508 4632 w (excla\255) 4755 4632 w (mation marks, as follows:) 720 4752 w 9 /LucidaTypewriter f (qname!!msg) 1008 4922 w 10 /LucidaSansUnicode00 f (A) 720 5102 w (sorted) 839 5102 w (send) 1198 5102 w (operation) 1480 5102 w (will) 1995 5102 w (insert) 2209 5102 w (a) 2535 5102 w (message) 2641 5102 w (into) 3116 5102 w (the) 3356 5102 w (channel) 3562 5102 w 10 /LucidaSansUnicode20 f (\031) 3939 5102 w 10 /LucidaSansUnicode00 f (s) 3971 5102 w (buffer) 4073 5102 w (in) 4420 5102 w (numerical) 4562 5102 w (order,) 720 5222 w (instead) 1057 5222 w (of) 1453 5222 w (in) 1594 5222 w (FIFO) 1728 5222 w (order.) 1986 5222 w (The) 2355 5222 w (channel) 2579 5222 w (contents) 2999 5222 w (are) 3459 5222 w (scanned) 3654 5222 w (from) 4097 5222 w (the) 4372 5222 w (first) 4570 5222 w (mes\255) 4807 5222 w (sage) 720 5342 w (towards) 977 5342 w (the) 1395 5342 w (last,) 1583 5342 w (and) 1820 5342 w (the) 2034 5342 w (message) 2223 5342 w (is) 2681 5342 w (inserted) 2795 5342 w (immediately) 3224 5342 w (before) 3850 5342 w (the) 4198 5342 w (first) 4387 5342 w (message) 4616 5342 w (that) 720 5462 w (follows) 948 5462 w (it) 1330 5462 w (in) 1433 5462 w (numerical) 1561 5462 w (order.) 2076 5462 w (To) 2439 5462 w (determine) 2600 5462 w (the) 3130 5462 w (numerical) 3322 5462 w (order,) 3836 5462 w (all) 4166 5462 w (message) 4315 5462 w (fields) 4775 5462 w (are taken into account.) 720 5582 w (The) 720 5738 w (logical) 936 5738 w (counterpart) 1287 5738 w (of) 1888 5738 w (the) 2021 5738 w (sorted) 2211 5738 w (send) 2555 5738 w (operation) 2823 5738 w (is) 3324 5738 w (the) 3440 5738 w (random) 3631 5738 w (receive.) 4042 5738 w (It) 4483 5738 w (is) 4585 5738 w (written) 4701 5738 w (with two, instead of one, question marks:) 720 5858 w 9 /LucidaTypewriter f (qname??msg) 1008 6028 w 10 /LucidaSansUnicode00 f (A) 720 6208 w (random) 824 6208 w (receive) 1234 6208 w (operation) 1610 6208 w (is) 2110 6208 w (executable) 2225 6208 w (if) 2786 6208 w (it) 2887 6208 w (is) 2988 6208 w (executable) 3103 6208 w (for) 3664 6208 w 10 /LucidaSans-Italic f (any) 3838 6208 w 10 /LucidaSansUnicode00 f (message) 4051 6208 w (that) 4510 6208 w (is) 4737 6208 w (cur\255) 4853 6208 w (rently) 720 6328 w (buffered) 1036 6328 w (in) 1489 6328 w (a) 1618 6328 w (message) 1711 6328 w (channel) 2173 6328 w (\(instead) 2588 6328 w (of) 3012 6328 w (only) 3148 6328 w (for) 3390 6328 w (the) 3567 6328 w (first) 3760 6328 w (message) 3993 6328 w (in) 4455 6328 w (the) 4584 6328 w (chan\255) 4777 6328 w (nel\).) 720 6448 w (Normal) 1001 6448 w (send) 1391 6448 w (and) 1661 6448 w (receive) 1879 6448 w (operations) 2258 6448 w (can) 2812 6448 w (freely) 3018 6448 w (be) 3327 6448 w (combined) 3484 6448 w (with) 4000 6448 w (sorted) 4243 6448 w (send) 4590 6448 w (and) 4860 6448 w (random receive operations.) 720 6568 w 10 /LucidaSans-Demi f (Rendezvous Communication) 720 6808 w 10 /LucidaSansUnicode00 f (So) 720 6964 w (far) 877 6964 w (we) 1052 6964 w (have) 1227 6964 w (talked) 1494 6964 w (about) 1834 6964 w (asynchronous) 2154 6964 w (communication) 2867 6964 w (between) 3655 6964 w (processes) 4104 6964 w (via) 4628 6964 w (mes\255) 4807 6964 w (sage channels, declared in statements such as) 720 7084 w cleartomark showpage saveobj restore %%EndPage: 8 8 %%Page: 9 9 /saveobj save def mark 9 pagesetup 10 /LucidaSansUnicode00 f (\255 9 \255) 2783 480 w 9 /LucidaTypewriter f (chan) 1008 830 w (qname) 1333 830 w (=) 1723 830 w ([N]) 1853 830 w (of) 2113 830 w ({) 2308 830 w (byte) 2438 830 w (}) 2763 830 w 10 /LucidaSansUnicode00 f (where) 720 1010 w 10 /LucidaTypewriter f (N) 1061 1010 w 10 /LucidaSansUnicode00 f (is) 1182 1010 w (a) 1311 1010 w (positive) 1415 1010 w (constant) 1842 1010 w (that) 2307 1010 w (defines) 2547 1010 w (the) 2950 1010 w (buffer) 3154 1010 w (size.) 3499 1010 w (A) 3805 1010 w (logical) 3923 1010 w (extension) 4288 1010 w (is) 4812 1010 w (to) 4942 1010 w (allow for the declaration) 720 1130 w 9 /LucidaTypewriter f (chan) 1008 1300 w (port) 1333 1300 w (=) 1658 1300 w ([0]) 1788 1300 w (of) 2048 1300 w ({) 2243 1300 w (byte) 2373 1300 w (}) 2698 1300 w 10 /LucidaSansUnicode00 f (to) 720 1480 w (define) 862 1480 w (a) 1209 1480 w (rendezvous) 1308 1480 w (port.) 1913 1480 w (The) 2223 1480 w (channel) 2448 1480 w (size) 2869 1480 w (is) 3107 1480 w (zero,) 3232 1480 w (that) 3524 1480 w (is,) 3760 1480 w (the) 3917 1480 w (channel) 4117 1480 w 10 /LucidaTypewriter f (port) 4539 1480 w 10 /LucidaSansUnicode00 f (can) 4872 1480 w (pass,) 720 1600 w (but) 1013 1600 w (cannot) 1216 1600 w (store,) 1585 1600 w (messages.) 1904 1600 w (Message) 2484 1600 w (interactions) 2941 1600 w (via) 3552 1600 w (such) 3728 1600 w (rendezvous) 3994 1600 w (ports) 4595 1600 w (are) 4888 1600 w (by definition synchronous.) 720 1720 w (Consider the following example:) 2076 1720 w 9 /LucidaTypewriter f (#define) 1008 1890 w (msgtype) 1528 1890 w (33) 2048 1890 w (chan) 1008 2110 w (name) 1333 2110 w (=) 1658 2110 w ([0]) 1788 2110 w (of) 2048 2110 w ({) 2243 2110 w (byte,) 2373 2110 w (byte) 2763 2110 w (};) 3088 2110 w (active) 1008 2330 w (proctype) 1463 2330 w (A\(\)) 2048 2330 w ({) 1008 2440 w (name!msgtype\(124\);) 1528 2440 w (name!msgtype\(121\)) 1528 2550 w (}) 1008 2660 w (active) 1008 2890 w (proctype) 1463 2890 w (B\(\)) 2048 2890 w ({) 1008 3000 w (byte) 1528 3000 w (state;) 1853 3000 w (name?msgtype\(state\)) 1528 3110 w (}) 1008 3220 w 10 /LucidaSansUnicode00 f (Channel) 720 3400 w 10 /LucidaTypewriter f (name) 1154 3400 w 10 /LucidaSansUnicode00 f (is) 1481 3400 w (a) 1600 3400 w (global) 1694 3400 w (rendezvous) 2032 3400 w (port.) 2632 3400 w (The) 2937 3400 w (two) 3157 3400 w (processes) 3372 3400 w (will) 3893 3400 w (synchronously) 4097 3400 w (exe\255) 4834 3400 w (cute) 720 3520 w (their) 979 3520 w (first) 1257 3520 w (statement:) 1505 3520 w (a) 2074 3520 w (handshake) 2181 3520 w (on) 2757 3520 w (message) 2932 3520 w 10 /LucidaTypewriter f (msgtype) 3408 3520 w 10 /LucidaSansUnicode00 f (and) 3964 3520 w (a) 4196 3520 w (transfer) 4303 3520 w (of) 4735 3520 w (the) 4885 3520 w (value) 720 3640 w (124) 1016 3640 w (to) 1247 3640 w (local) 1387 3640 w (variable) 1654 3640 w 10 /LucidaTypewriter f (state) 2076 3640 w 10 /LucidaSansUnicode00 f (.) 2436 3640 w (The) 2542 3640 w (second) 2765 3640 w (statement) 3151 3640 w (in) 3677 3640 w (process) 3810 3640 w 10 /LucidaTypewriter f (A) 4226 3640 w 10 /LucidaSansUnicode00 f (will) 4341 3640 w (be) 4548 3640 w (unexe\255) 4710 3640 w (cutable, because there is no matching receive operation in process) 720 3760 w 10 /LucidaTypewriter f (B) 3996 3760 w 10 /LucidaSansUnicode00 f (.) 4068 3760 w (If) 720 3916 w (the) 826 3916 w (channel) 1021 3916 w 10 /LucidaTypewriter f (name) 1438 3916 w 10 /LucidaSansUnicode00 f (is) 1766 3916 w (defined) 1886 3916 w (with) 2324 3916 w (a) 2569 3916 w (non-zero) 2665 3916 w (buffer) 3164 3916 w (capacity,) 3501 3916 w (the) 3967 3916 w (behavior) 4163 3916 w (is) 4623 3916 w (differ\255) 4744 3916 w (ent.) 720 4036 w (If) 984 4036 w (the) 1095 4036 w (buffer) 1295 4036 w (size) 1635 4036 w (is) 1872 4036 w (at) 1996 4036 w (least) 2132 4036 w (2,) 2404 4036 w (the) 2543 4036 w (process) 2742 4036 w (of) 3160 4036 w (type) 3302 4036 w 10 /LucidaTypewriter f (A) 3554 4036 w 10 /LucidaSansUnicode00 f (can) 3670 4036 w (complete) 3882 4036 w (its) 4372 4036 w (execution,) 4533 4036 w (before) 720 4156 w (its) 1071 4156 w (peer) 1225 4156 w (even) 1478 4156 w (starts.) 1741 4156 w (If) 2114 4156 w (the) 2217 4156 w (buffer) 2409 4156 w (size) 2743 4156 w (is) 2974 4156 w (1,) 3092 4156 w (the) 3225 4156 w (sequence) 3418 4156 w (of) 3913 4156 w (events) 4049 4156 w (is) 4401 4156 w (as) 4519 4156 w (follows.) 4663 4156 w (The) 720 4276 w (process) 946 4276 w (of) 1365 4276 w (type) 1508 4276 w 10 /LucidaTypewriter f (A) 1760 4276 w 10 /LucidaSansUnicode00 f (can) 1876 4276 w (complete) 2088 4276 w (its) 2578 4276 w (first) 2739 4276 w (send) 2978 4276 w (action,) 3254 4276 w (but) 3625 4276 w (it) 3831 4276 w (blocks) 3941 4276 w (on) 4298 4276 w (the) 4465 4276 w (second,) 4664 4276 w (because) 720 4396 w (the) 1156 4396 w (channel) 1353 4396 w (is) 1772 4396 w (now) 1894 4396 w (filled) 2136 4396 w (to) 2421 4396 w (capacity.) 2561 4396 w (The) 3060 4396 w (process) 3283 4396 w (of) 3699 4396 w (type) 3839 4396 w 10 /LucidaTypewriter f (B) 4089 4396 w 10 /LucidaSansUnicode00 f (can) 4203 4396 w (then) 4413 4396 w (retrieve) 4672 4396 w (the) 720 4516 w (first) 922 4516 w (message) 1164 4516 w (and) 1635 4516 w (complete.) 1862 4516 w (At) 2419 4516 w (this) 2572 4516 w (point) 2798 4516 w 10 /LucidaTypewriter f (A) 3097 4516 w 10 /LucidaSansUnicode00 f (becomes) 3216 4516 w (executable) 3694 4516 w (again) 4267 4516 w (and) 4576 4516 w (com\255) 4802 4516 w (pletes, leaving its last message as a residual in the channel.) 720 4636 w (Rendezvous) 720 4792 w (communication) 1343 4792 w (is) 2129 4792 w (binary:) 2249 4792 w (only) 2623 4792 w (two) 2867 4792 w (processes,) 3082 4792 w (a) 3635 4792 w (sender) 3730 4792 w (and) 4100 4792 w (a) 4321 4792 w (receiver,) 4417 4792 w (can) 4872 4792 w (be synchronized in a rendezvous handshake.) 720 4912 w (As) 720 5068 w (the) 890 5068 w (example) 1095 5068 w (shows,) 1558 5068 w (symbolic) 1942 5068 w (constants) 2421 5068 w (can) 2939 5068 w (be) 3158 5068 w (defined) 3328 5068 w (with) 3745 5068 w (preprocessor) 4001 5068 w (macros) 4688 5068 w (using) 720 5188 w 10 /LucidaTypewriter f (#define) 1029 5188 w 10 /LucidaSansUnicode00 f (.) 1533 5188 w (The) 1640 5188 w (source) 1864 5188 w (text) 2229 5188 w (of) 2462 5188 w (a) 2602 5188 w 9 /LucidaSansUnicode00 f (PROMELA) 2699 5188 w 10 /LucidaSansUnicode00 f (model) 3154 5188 w (is) 3498 5188 w (translated) 3620 5188 w (by) 4148 5188 w (the) 4305 5188 w (standard) 4502 5188 w (C) 4971 5188 w (preprocessor.) 720 5308 w (The) 1470 5308 w (disadvantage) 1701 5308 w (of) 2391 5308 w (defining) 2539 5308 w (symbolic) 2989 5308 w (names) 3468 5308 w (in) 3835 5308 w (this) 3976 5308 w (way) 4205 5308 w (is,) 4440 5308 w (however,) 4603 5308 w (that) 720 5428 w (the) 954 5428 w 9 /LucidaSansUnicode00 f (PROMELA) 1152 5428 w 10 /LucidaSansUnicode00 f (parser) 1608 5428 w (will) 1958 5428 w (only) 2165 5428 w (see) 2412 5428 w (the) 2618 5428 w (expanded) 2816 5428 w (text,) 3338 5428 w (and) 3604 5428 w (cannot) 3827 5428 w (refer) 4198 5428 w (to) 4472 5428 w (the) 4613 5428 w (sym\255) 4811 5428 w (bolic) 720 5548 w (names) 990 5548 w (themselves.) 1344 5548 w (To) 1988 5548 w (prevent) 2149 5548 w (that,) 2554 5548 w 9 /LucidaSansUnicode00 f (PROMELA) 2815 5548 w 10 /LucidaSansUnicode00 f (also) 3266 5548 w (supports) 3500 5548 w (another) 3967 5548 w (way) 4379 5548 w (to) 4601 5548 w (define) 4737 5548 w (symbolic) 720 5668 w (names,) 1197 5668 w (which) 1594 5668 w (are) 1923 5668 w (preserved) 2123 5668 w (in) 2650 5668 w (error) 2789 5668 w (reports.) 3077 5668 w (For) 3539 5668 w (instance,) 3743 5668 w (by) 4226 5668 w (including) 4389 5668 w (the) 4885 5668 w (declaration) 720 5788 w 9 /LucidaTypewriter f (mtype) 1008 5958 w (=) 1398 5958 w ({) 1528 5958 w (ack,) 1658 5958 w (msg,) 1983 5958 w (error,) 2308 5958 w (data) 2763 5958 w (};) 3088 5958 w 10 /LucidaSansUnicode00 f (at) 720 6138 w (the) 845 6138 w (top) 1033 6138 w (of) 1227 6138 w (a) 1358 6138 w 9 /LucidaSansUnicode00 f (PROMELA) 1446 6138 w 10 /LucidaSansUnicode00 f (model,) 1892 6138 w (the) 2259 6138 w (names) 2447 6138 w (provided) 2797 6138 w (between) 3258 6138 w (the) 3698 6138 w (curly) 3886 6138 w (braces) 4154 6138 w (are) 4504 6138 w (equiva\255) 4690 6138 w (lent) 720 6258 w (to) 937 6258 w (integers) 1068 6258 w (of) 1495 6258 w (type) 1626 6258 w 10 /LucidaTypewriter f (byte) 1867 6258 w 10 /LucidaSansUnicode00 f (,) 2155 6258 w (but known by their symbolic names to the) 2220 6258 w 9 /LucidaSansUnicode00 f (SPIN) 4297 6258 w 10 /LucidaSansUnicode00 f (parser and) 4521 6258 w (the) 720 6378 w (verifiers) 911 6378 w (it) 1339 6378 w (generates.) 1441 6378 w (The) 2017 6378 w (constant) 2234 6378 w (values) 2686 6378 w (assigned) 3027 6378 w (start) 3492 6378 w (at) 3749 6378 w (1,) 3877 6378 w (and) 4009 6378 w (count) 4226 6378 w (up.) 4536 6378 w (There) 4762 6378 w (can be only one) 720 6498 w 10 /LucidaTypewriter f (mtype) 1518 6498 w 10 /LucidaSansUnicode00 f (declaration per model.) 1910 6498 w 10 /LucidaSans-Demi f (1.2.) 720 6738 w (Control Flow) 962 6738 w 10 /LucidaSansUnicode00 f (So) 720 6894 w (far,) 885 6894 w (we) 1100 6894 w (have) 1283 6894 w (seen) 1558 6894 w (only) 1833 6894 w (some) 2087 6894 w (of) 2398 6894 w (the) 2546 6894 w (basic) 2751 6894 w (statements) 3050 6894 w (of) 3635 6894 w 9 /LucidaSansUnicode00 f (PROMELA) 3783 6894 w 10 /LucidaSansUnicode00 f (,) 4196 6894 w (and) 4278 6894 w (the) 4508 6894 w (way) 4714 6894 w (in) 4949 6894 w (which) 720 7014 w (they) 1041 7014 w (can) 1288 7014 w (be) 1496 7014 w (combined) 1655 7014 w (to) 2173 7014 w (model) 2310 7014 w (process) 2651 7014 w (behaviors.) 3064 7014 w (The) 3637 7014 w (five) 3857 7014 w (types) 4070 7014 w (of) 4368 7014 w (statements) 4505 7014 w (we have mentioned are:) 720 7134 w 10 /LucidaTypewriter f (printf) 1909 7134 w 10 /LucidaSansUnicode00 f (,) 2341 7134 w 10 /LucidaTypewriter f (assignment) 2405 7134 w 10 /LucidaSansUnicode00 f (,) 3125 7134 w 10 /LucidaTypewriter f (condition) 3189 7134 w 10 /LucidaSansUnicode00 f (,) 3837 7134 w 10 /LucidaTypewriter f (send) 3901 7134 w 10 /LucidaSansUnicode00 f (, and) 4189 7134 w 10 /LucidaTypewriter f (receive) 4465 7134 w 10 /LucidaSansUnicode00 f (.) 4969 7134 w (The) 720 7290 w (pseudo-statement) 984 7290 w 10 /LucidaTypewriter f (skip) 1965 7290 w 10 /LucidaSansUnicode00 f (is) 2336 7290 w (syntactically) 2499 7290 w (and) 3172 7290 w (semantically) 3435 7290 w (equivalent) 4118 7290 w (to) 4703 7290 w (the) 4885 7290 w cleartomark showpage saveobj restore %%EndPage: 9 9 %%Page: 10 10 /saveobj save def mark 10 pagesetup 10 /LucidaSansUnicode00 f (\255 10 \255) 2752 480 w (condition) 720 840 w 10 /LucidaTypewriter f (\(1\)) 1217 840 w 10 /LucidaSansUnicode00 f (\(i.e.,) 1475 840 w (to) 1731 840 w (true\),) 1870 840 w (and) 2172 840 w (is) 2393 840 w (in) 2514 840 w (fact) 2646 840 w (quietly) 2867 840 w (replaced) 3236 840 w (with) 3691 840 w (this) 3937 840 w (expression) 4157 840 w (by) 4729 840 w (the) 4885 840 w (lexical analyzer of) 720 960 w 9 /LucidaSansUnicode00 f (SPIN) 1631 960 w 10 /LucidaSansUnicode00 f (.) 1823 960 w (There are also five types of compound statements.) 720 1116 w 10 /LucidaSansUnicode22 f (\031) 970 1272 w 10 /LucidaSansUnicode00 f (Atomic sequences \(section 1.2.1\),) 1058 1272 w 10 /LucidaSansUnicode22 f (\031) 970 1392 w 10 /LucidaSansUnicode00 f (Deterministic steps \(section 1.2.2\),) 1058 1392 w 10 /LucidaSansUnicode22 f (\031) 970 1512 w 10 /LucidaSansUnicode00 f (Selections \(section 1.2.3\),) 1058 1512 w 10 /LucidaSansUnicode22 f (\031) 970 1632 w 10 /LucidaSansUnicode00 f (Repetitions \(section 1.2.4\),) 1058 1632 w 10 /LucidaSansUnicode22 f (\031) 970 1752 w 10 /LucidaSansUnicode00 f (Escape sequences \(section 1.2.5\).) 1058 1752 w 10 /LucidaSans-Demi f (1.2.1.) 720 2028 w (Atomic Sequences) 1051 2028 w 10 /LucidaSansUnicode00 f (The simplest compound statement is the) 720 2184 w 10 /LucidaTypewriter f (atomic) 2737 2184 w 10 /LucidaSansUnicode00 f (sequence:) 3201 2184 w 9 /LucidaTypewriter f (atomic) 1008 2354 w ({) 1463 2354 w (/*) 2048 2354 w (swap) 2243 2354 w (the) 2568 2354 w (values) 2828 2354 w (of) 3283 2354 w (a) 3478 2354 w (and) 3608 2354 w (b) 3868 2354 w (*/) 3998 2354 w (tmp) 1528 2464 w (=) 1788 2464 w (b;) 1918 2464 w (b) 1528 2574 w (=) 1658 2574 w (a;) 1788 2574 w (a) 1528 2684 w (=) 1658 2684 w (tmp) 1788 2684 w (}) 1008 2794 w 10 /LucidaSansUnicode00 f (In) 720 2974 w (the) 845 2974 w (example,) 1034 2974 w (the) 1513 2974 w (values) 1702 2974 w (of) 2042 2974 w (two) 2175 2974 w (variables) 2385 2974 w 10 /LucidaTypewriter f (a) 2851 2974 w 10 /LucidaSansUnicode00 f (and) 2958 2974 w 10 /LucidaTypewriter f (b) 3173 2974 w 10 /LucidaSansUnicode00 f (are) 3280 2974 w (swapped) 3467 2974 w (in) 3930 2974 w (a) 4056 2974 w (sequence) 4146 2974 w (of) 4638 2974 w (state\255) 4771 2974 w (ment) 720 3094 w (executions) 1017 3094 w (that) 1592 3094 w (is) 1832 3094 w (defined) 1961 3094 w (to) 2376 3094 w (be) 2523 3094 w (uninterruptable.) 2690 3094 w (That) 3557 3094 w (is,) 3822 3094 w (in) 3982 3094 w (the) 4121 3094 w (interleaving) 4324 3094 w (of) 4942 3094 w (process) 720 3214 w (executions,) 1128 3214 w (no) 1720 3214 w (other) 1877 3214 w (process) 2169 3214 w (can) 2578 3214 w (execute) 2781 3214 w (statements) 3195 3214 w (from) 3765 3214 w (the) 4032 3214 w (moment) 4222 3214 w (that) 4659 3214 w (the) 4885 3214 w (first statement of this sequence begins to execute until the last one has completed.) 720 3334 w (It) 720 3490 w (is) 822 3490 w (often) 938 3490 w (useful) 1227 3490 w (to) 1560 3490 w (use) 1694 3490 w 10 /LucidaTypewriter f (atomic) 1900 3490 w 10 /LucidaSansUnicode00 f (sequences) 2369 3490 w (to) 2914 3490 w (start) 3049 3490 w (a) 3307 3490 w (series) 3399 3490 w (of) 3720 3490 w (processes) 3855 3490 w (in) 4373 3490 w (such) 4501 3490 w (a) 4764 3490 w (way) 4856 3490 w (that none of them can start executing statements until all of them have been initialized:) 720 3610 w 9 /LucidaTypewriter f (init) 1008 3780 w ({) 1333 3780 w (atomic) 1528 3890 w ({) 1983 3890 w (run) 2048 4000 w (A\(1,2\);) 2308 4000 w (run) 2048 4110 w (B\(2,3\);) 2308 4110 w (run) 2048 4220 w (C\(3,1\)) 2308 4220 w (}) 1528 4330 w (}) 1008 4440 w 10 /LucidaTypewriter f (Atomic) 720 4620 w 10 /LucidaSansUnicode00 f (sequences) 1208 4620 w (may) 1772 4620 w (be) 2028 4620 w (non-deterministic.) 2203 4620 w (If) 3200 4620 w (any) 3322 4620 w (statement) 3547 4620 w (inside) 4087 4620 w (an) 4434 4620 w 10 /LucidaTypewriter f (atomic) 4608 4620 w 10 /LucidaSansUnicode00 f (sequence) 720 4740 w (is) 1243 4740 w (found) 1389 4740 w (to) 1740 4740 w (be) 1904 4740 w (unexecutable,) 2089 4740 w (however,) 2837 4740 w (the) 3340 4740 w (atomic) 3561 4740 w (chain) 3953 4740 w (is) 4277 4740 w (broken,) 4422 4740 w (and) 4860 4740 w (another) 720 4860 w (process) 1150 4860 w (can) 1580 4860 w (take) 1805 4860 w (over) 2068 4860 w (control.) 2335 4860 w (When) 2798 4860 w (the) 3121 4860 w (blocking) 3333 4860 w (statement) 3805 4860 w (becomes) 4346 4860 w (exe\255) 4834 4860 w (cutable) 720 4980 w (later,) 1123 4980 w (control) 1423 4980 w (can) 1815 4980 w (non-deterministically) 2033 4980 w (return) 3125 4980 w (to) 3474 4980 w (the) 3622 4980 w (process,) 3826 4980 w (and) 4281 4980 w (the) 4510 4980 w (atomic) 4714 4980 w (execution of the sequence resumes as if it had not been interrupted.) 720 5100 w 10 /LucidaSans-Demi f (1.2.2.) 720 5340 w (Deterministic Steps) 1051 5340 w 10 /LucidaSansUnicode00 f (Another) 720 5496 w (way) 1153 5496 w (to) 1382 5496 w (define) 1525 5496 w (an) 1873 5496 w (indivisible) 2035 5496 w (sequence) 2572 5496 w (of) 3074 5496 w (actions) 3217 5496 w (is) 3608 5496 w (to) 3733 5496 w (use) 3877 5496 w (the) 4092 5496 w 10 /LucidaTypewriter f (d_step) 4293 5496 w 10 /LucidaSansUnicode00 f (state\255) 4771 5496 w (ment.) 720 5616 w (In the above case, for instance, we could also have written:) 1064 5616 w 9 /LucidaTypewriter f (d_step) 1008 5786 w ({) 1463 5786 w (/*) 2048 5786 w (swap) 2243 5786 w (the) 2568 5786 w (values) 2828 5786 w (of) 3283 5786 w (a) 3478 5786 w (and) 3608 5786 w (b) 3868 5786 w (*/) 3998 5786 w (tmp) 1528 5896 w (=) 1788 5896 w (b;) 1918 5896 w (b) 1528 6006 w (=) 1658 6006 w (a;) 1788 6006 w (a) 1528 6116 w (=) 1658 6116 w (tmp) 1788 6116 w (}) 1008 6226 w 10 /LucidaSansUnicode00 f (The difference between a) 720 6406 w 10 /LucidaTypewriter f (d_step) 1979 6406 w 10 /LucidaSansUnicode00 f (sequence and an) 2443 6406 w 10 /LucidaTypewriter f (atomic) 3293 6406 w 10 /LucidaSansUnicode00 f (sequence are:) 3757 6406 w 10 /LucidaSansUnicode22 f (\031) 720 6562 w 10 /LucidaSansUnicode00 f (A) 970 6562 w 10 /LucidaTypewriter f (d_step) 1093 6562 w 10 /LucidaSansUnicode00 f (sequence) 1579 6562 w (must) 2091 6562 w (be) 2389 6562 w (completely) 2563 6562 w (deterministic.) 3145 6562 w (\(If) 3898 6562 w (non-determinism) 4052 6562 w (is) 4960 6562 w (nonetheless) 970 6682 w (encountered,) 1604 6682 w (it) 2294 6682 w (is) 2410 6682 w (always) 2540 6682 w (resolved) 2909 6682 w (in) 3368 6682 w (a) 3509 6682 w (fixed) 3614 6682 w (and) 3910 6682 w (deterministic) 4140 6682 w (way:) 4824 6682 w (i.e., the first true guard in selection or repetition structures is always selected.\)) 970 6802 w 10 /LucidaSansUnicode22 f (\031) 720 6958 w 10 /LucidaSansUnicode00 f (No) 970 6958 w 10 /LucidaTypewriter f (goto) 1137 6958 w 10 /LucidaSansUnicode00 f (jumps into or out of a) 1457 6958 w 10 /LucidaTypewriter f (d_step) 2552 6958 w 10 /LucidaSansUnicode00 f (sequence are permitted.) 3016 6958 w 10 /LucidaSansUnicode22 f (\031) 720 7114 w 10 /LucidaSansUnicode00 f (The) 970 7114 w (execution) 1210 7114 w (of) 1744 7114 w (a) 1901 7114 w 10 /LucidaTypewriter f (d_step) 2015 7114 w 10 /LucidaSansUnicode00 f (sequence) 2506 7114 w (cannot) 3022 7114 w (be) 3409 7114 w (interrupted) 3587 7114 w (when) 4193 7114 w (a) 4510 7114 w (blocking) 4625 7114 w (statement) 970 7234 w (is) 1489 7234 w (encountered.) 1604 7234 w (It) 2310 7234 w (is) 2411 7234 w (an) 2526 7234 w (error) 2678 7234 w (if) 2953 7234 w (any) 3054 7234 w (statement) 3258 7234 w (other) 3777 7234 w (than) 4068 7234 w (the) 4318 7234 w (first) 4507 7234 w (one) 4736 7234 w (in) 4949 7234 w cleartomark showpage saveobj restore %%EndPage: 10 10 %%Page: 11 11 /saveobj save def mark 11 pagesetup 10 /LucidaSansUnicode00 f (\255 11 \255) 2752 480 w (a) 970 840 w 10 /LucidaTypewriter f (d_step) 1057 840 w 10 /LucidaSansUnicode00 f (sequence is found to be unexecutable.) 1521 840 w 10 /LucidaSansUnicode22 f (\031) 720 996 w 10 /LucidaSansUnicode00 f (A) 970 996 w 10 /LucidaTypewriter f (d_step) 1076 996 w 10 /LucidaSansUnicode00 f (sequence) 1545 996 w (is) 2039 996 w (executed) 2156 996 w (as) 2635 996 w (one) 2778 996 w (single) 2994 996 w (statement.) 3320 996 w (In) 3905 996 w (a) 4033 996 w (way,) 4125 996 w (it) 4378 996 w (is) 4481 996 w (a) 4598 996 w (mecha\255) 4690 996 w (nism for adding new types of statements to the language.) 970 1116 w (None) 720 1272 w (of) 1013 1272 w (the) 1151 1272 w (items) 1346 1272 w (listed) 1652 1272 w (above) 1957 1272 w (apply) 2284 1272 w (to) 2586 1272 w 10 /LucidaTypewriter f (atomic) 2724 1272 w 10 /LucidaSansUnicode00 f (sequences.) 3196 1272 w (This) 3809 1272 w (means) 4055 1272 w (that) 4413 1272 w (the) 4645 1272 w (key\255) 4841 1272 w (word) 720 1392 w 10 /LucidaTypewriter f (d_step) 997 1392 w 10 /LucidaSansUnicode00 f (can) 1464 1392 w (always) 1667 1392 w (be) 2021 1392 w (replaced) 2175 1392 w (with) 2624 1392 w (the) 2864 1392 w (keyword) 3054 1392 w 10 /LucidaTypewriter f (atomic) 3496 1392 w 10 /LucidaSansUnicode00 f (,) 3928 1392 w (but) 3994 1392 w (the) 4190 1392 w (reverse) 4379 1392 w (is) 4766 1392 w (not) 4880 1392 w (true.) 720 1512 w (\(The) 1022 1512 w (main,) 1278 1512 w (perhaps) 1591 1512 w (the) 2024 1512 w (only,) 2221 1512 w (reason) 2499 1512 w (for) 2867 1512 w (using) 3048 1512 w 10 /LucidaTypewriter f (d_step) 3356 1512 w 10 /LucidaSansUnicode00 f (sequences) 3830 1512 w (is) 4381 1512 w (to) 4504 1512 w (improve) 4645 1512 w (the efficiency of verifications.\)) 720 1632 w 10 /LucidaSans-Demi f (1.2.3.) 720 1872 w (Selection Structures) 1051 1872 w 10 /LucidaSansUnicode00 f (A) 720 2028 w (more) 827 2028 w (interesting) 1116 2028 w (construct) 1676 2028 w (is) 2167 2028 w (the) 2285 2028 w (selection) 2478 2028 w (structure.) 2948 2028 w (Using) 3488 2028 w (the) 3799 2028 w (relative) 3992 2028 w (values) 4385 2028 w (of) 4728 2028 w (two) 4865 2028 w (variables) 720 2148 w 10 /LucidaTypewriter f (a) 1183 2148 w 10 /LucidaSansUnicode00 f (and) 1287 2148 w 10 /LucidaTypewriter f (b) 1499 2148 w 10 /LucidaSansUnicode00 f (to choose between two options, for instance, we can write:) 1603 2148 w 9 /LucidaTypewriter f (if) 1008 2318 w (::) 1008 2428 w (\(a) 1203 2428 w (!=) 1398 2428 w (b\)) 1593 2428 w (->) 1788 2428 w (option1) 1983 2428 w (::) 1008 2538 w (\(a) 1203 2538 w (==) 1398 2538 w (b\)) 1593 2538 w (->) 1788 2538 w (option2) 1983 2538 w (fi) 1008 2648 w 10 /LucidaSansUnicode00 f (The) 720 2828 w (selection) 950 2828 w (structure) 1431 2828 w (above) 1918 2828 w (contains) 2254 2828 w (two) 2711 2828 w (execution) 2935 2828 w (sequences,) 3459 2828 w (each) 4048 2828 w (preceded) 4321 2828 w (by) 4820 2828 w (a) 4985 2828 w (double) 720 2948 w (colon.) 1102 2948 w (Only) 1478 2948 w (one) 1747 2948 w (sequence) 1974 2948 w (from) 2479 2948 w (the) 2759 2948 w (list) 2962 2948 w (will) 3156 2948 w (be) 3367 2948 w (executed.) 3533 2948 w (A) 4086 2948 w (sequence) 4202 2948 w (can) 4706 2948 w (be) 4921 2948 w (selected only if) 720 3068 w (its) 1486 3068 w (first) 1636 3068 w (statement) 1864 3068 w (is) 2381 3068 w (executable.) 2494 3068 w (The) 3117 3068 w (first) 3331 3068 w (statement) 3559 3068 w (is) 4076 3068 w (therefore) 4189 3068 w (called) 4669 3068 w (a) 4985 3068 w 10 /LucidaSans-Italic f (guard) 720 3188 w 10 /LucidaSansUnicode00 f (.) 1013 3188 w (In) 720 3344 w (the) 848 3344 w (above) 1041 3344 w (example) 1366 3344 w (the) 1817 3344 w (guards) 2010 3344 w (are) 2382 3344 w (mutually) 2572 3344 w (exclusive,) 3029 3344 w (but) 3546 3344 w (they) 3746 3344 w (need) 3991 3344 w (not) 4266 3344 w (be.) 4464 3344 w (If) 4685 3344 w (more) 4789 3344 w (than) 720 3464 w (one) 971 3464 w (guard) 1185 3464 w (is) 1503 3464 w (executable,) 1617 3464 w (one) 2209 3464 w (of) 2422 3464 w (the) 2554 3464 w (corresponding) 2743 3464 w (sequences) 3480 3464 w (is) 4022 3464 w (selected) 4136 3464 w (nondeter\255) 4569 3464 w (ministically.) 720 3584 w (If) 1374 3584 w (all) 1484 3584 w (guards) 1641 3584 w (are) 2019 3584 w (unexecutable) 2215 3584 w (the) 2909 3584 w (process) 3109 3584 w (will) 3528 3584 w (block) 3737 3584 w (until) 4044 3584 w (at) 4308 3584 w (least) 4445 3584 w (one) 4718 3584 w (of) 4942 3584 w (them) 720 3704 w (can) 1001 3704 w (be) 1202 3704 w (selected.) 1354 3704 w (There) 1850 3704 w (is no restriction on the type of statements that can be used) 2161 3704 w (as) 720 3824 w (a) 872 3824 w (guard:) 973 3824 w (it) 1334 3824 w (may) 1446 3824 w (include) 1692 3824 w (sends) 2090 3824 w (or) 2419 3824 w (receives,) 2567 3824 w (assignments,) 3038 3824 w 10 /LucidaTypewriter f (printf) 3726 3824 w 10 /LucidaSansUnicode00 f (,) 4158 3824 w 10 /LucidaTypewriter f (skip) 4237 3824 w 10 /LucidaSansUnicode00 f (,) 4525 3824 w (etc.) 4604 3824 w (The) 4859 3824 w (rules) 720 3944 w (of) 998 3944 w (executability) 1135 3944 w (determine) 1791 3944 w (in) 2323 3944 w (each) 2453 3944 w (case) 2715 3944 w (what) 2966 3944 w (the) 3235 3944 w (semantics) 3428 3944 w (of) 3951 3944 w (the) 4087 3944 w (complete) 4280 3944 w (selec\255) 4764 3944 w (tion) 720 4064 w (structure) 950 4064 w (will) 1429 4064 w (be.) 1634 4064 w (The) 1858 4064 w (following) 2080 4064 w (example,) 2568 4064 w (for) 3054 4064 w (instance,) 3235 4064 w (uses) 3712 4064 w (receive) 3974 4064 w (statements) 4357 4064 w (as) 4934 4064 w (guards in a selection.) 720 4184 w 9 /LucidaTypewriter f (mtype) 1008 4354 w (=) 1398 4354 w ({) 1528 4354 w (a,) 1658 4354 w (b) 1853 4354 w (};) 1983 4354 w (chan) 1008 4574 w (ch) 1333 4574 w (=) 1528 4574 w ([1]) 1658 4574 w (of) 1918 4574 w ({) 2113 4574 w (byte) 2243 4574 w (};) 2568 4574 w (active) 1008 4794 w (proctype) 1463 4794 w (A\(\)) 2048 4794 w ({) 1008 4904 w (ch!a) 1528 4904 w (}) 1008 5014 w (active) 1008 5244 w (proctype) 1463 5244 w (B\(\)) 2048 5244 w ({) 1008 5354 w (ch!b) 1528 5354 w (}) 1008 5464 w (active) 1008 5694 w (proctype) 1463 5694 w (C\(\)) 2048 5694 w ({) 1008 5804 w (if) 1528 5804 w (::) 1528 5914 w (ch?a) 1723 5914 w (::) 1528 6024 w (ch?b) 1723 6024 w (fi) 1528 6134 w (}) 1008 6244 w 10 /LucidaSansUnicode00 f (The) 720 6424 w (example) 937 6424 w (defines) 1386 6424 w (three) 1776 6424 w (processes) 2064 6424 w (and) 2581 6424 w (one) 2797 6424 w (channel.) 3012 6424 w (The) 3489 6424 w (first) 3706 6424 w (option) 3938 6424 w (in) 4288 6424 w (the) 4416 6424 w (selection) 4608 6424 w (structure) 720 6544 w (of) 1215 6544 w (the) 1370 6544 w (process) 1581 6544 w (of) 2011 6544 w (type) 2165 6544 w 10 /LucidaTypewriter f (C) 2429 6544 w 10 /LucidaSansUnicode00 f (is) 2557 6544 w (executable) 2693 6544 w (if) 3275 6544 w (the) 3397 6544 w (channel) 3608 6544 w (contains) 4041 6544 w (a) 4505 6544 w (message) 4616 6544 w (named) 720 6664 w 10 /LucidaTypewriter f (a) 1086 6664 w 10 /LucidaSansUnicode00 f (,) 1158 6664 w (where) 1227 6664 w 10 /LucidaTypewriter f (a) 1556 6664 w 10 /LucidaSansUnicode00 f (is) 1665 6664 w (a) 1782 6664 w (symbolic) 1874 6664 w (constant) 2341 6664 w (defined) 2795 6664 w (in) 3199 6664 w (the) 3328 6664 w 10 /LucidaTypewriter f (mtype) 3521 6664 w 10 /LucidaSansUnicode00 f (declaration) 3919 6664 w (at) 4496 6664 w (the) 4626 6664 w (start) 4819 6664 w (of) 720 6784 w (the) 851 6784 w (program.) 1039 6784 w (The) 1552 6784 w (second) 1766 6784 w (option) 2143 6784 w (is) 2489 6784 w (executable) 2602 6784 w (if) 3161 6784 w (it) 3260 6784 w (contains a message) 3359 6784 w 10 /LucidaTypewriter f (b) 4342 6784 w 10 /LucidaSansUnicode00 f (, where, sim\255) 4414 6784 w (ilarly,) 720 6904 w 10 /LucidaTypewriter f (b) 1050 6904 w 10 /LucidaSansUnicode00 f (is) 1185 6904 w (a) 1328 6904 w (symbolic) 1446 6904 w (constant.) 1938 6904 w (Which) 2481 6904 w (message) 2834 6904 w (will) 3322 6904 w (be) 3550 6904 w (available) 3733 6904 w (depends) 4220 6904 w (on) 4698 6904 w (the) 4885 6904 w (unknown relative speeds of the processes.) 720 7024 w (A) 720 7180 w (process) 827 7180 w (of) 1239 7180 w (the) 1375 7180 w (following) 1568 7180 w (type) 2053 7180 w (will) 2299 7180 w (either) 2501 7180 w (increment) 2820 7180 w (or) 3345 7180 w (decrement) 3485 7180 w (the) 4038 7180 w (value) 4231 7180 w (of) 4523 7180 w (variable) 4660 7180 w 10 /LucidaTypewriter f (count) 720 7300 w 10 /LucidaSansUnicode00 f (once.) 1112 7300 w cleartomark showpage saveobj restore %%EndPage: 11 11 %%Page: 12 12 /saveobj save def mark 12 pagesetup 10 /LucidaSansUnicode00 f (\255 12 \255) 2752 480 w 9 /LucidaTypewriter f (byte) 1008 830 w (count;) 1333 830 w (active) 1008 1050 w (proctype) 1463 1050 w (counter\(\)) 2048 1050 w ({) 1008 1160 w (if) 1528 1270 w (::) 1528 1380 w (count++) 1723 1380 w (::) 1528 1490 w (count--) 1723 1490 w (fi) 1528 1600 w (}) 1008 1710 w 10 /LucidaSansUnicode00 f (Assignments) 720 1890 w (are) 1427 1890 w (always) 1663 1890 w (executable,) 2066 1890 w (so) 2708 1890 w (the) 2904 1890 w (choice) 3143 1890 w (made) 3537 1890 w (here) 3888 1890 w (is) 4187 1890 w (truly) 4351 1890 w (a) 4657 1890 w (non-) 4797 1890 w (deterministic) 720 2010 w (one) 1404 2010 w (that) 1633 2010 w (is) 1874 2010 w (independent) 2004 2010 w (of) 2663 2010 w (the) 2811 2010 w (initial) 3016 2010 w (value) 3336 2010 w (of) 3640 2010 w (the) 3788 2010 w (variable) 3993 2010 w (\(zero) 4423 2010 w (in) 4721 2010 w (this) 4861 2010 w (case\).) 720 2130 w 10 /LucidaSans-Demi f (1.2.4.) 720 2370 w (Repetition Structures) 1051 2370 w 10 /LucidaSansUnicode00 f (We) 720 2526 w (can) 901 2526 w (modify) 1108 2526 w (the) 1482 2526 w (above) 1676 2526 w (program) 2002 2526 w (as) 2457 2526 w (follows,) 2602 2526 w (to) 3018 2526 w (obtain) 3155 2526 w (a) 3501 2526 w (cyclic) 3595 2526 w (program) 3897 2526 w (that) 4353 2526 w (randomly) 4584 2526 w (changes) 720 2646 w (the) 1153 2646 w (value) 1342 2646 w (of) 1630 2646 w (the) 1762 2646 w (variable) 1951 2646 w (up) 2365 2646 w (or) 2524 2646 w (down,) 2660 2646 w (by) 2989 2646 w (replacing) 3138 2646 w (the) 3620 2646 w (selection) 3809 2646 w (structure) 4275 2646 w (with) 4747 2646 w (a) 4985 2646 w (repetition.) 720 2766 w 9 /LucidaTypewriter f (byte) 1008 2936 w (count;) 1333 2936 w (active) 1008 3156 w (proctype) 1463 3156 w (counter\(\)) 2048 3156 w ({) 1008 3266 w (do) 1528 3376 w (::) 1528 3486 w (count++) 1723 3486 w (::) 1528 3596 w (count--) 1723 3596 w (::) 1528 3706 w (\(count) 1723 3706 w (==) 2178 3706 w (0\)) 2373 3706 w (->) 2568 3706 w (break) 2763 3706 w (od) 1528 3816 w (}) 1008 3926 w 10 /LucidaSansUnicode00 f (Only one option can be selected for) 720 4106 w (execution) 2483 4106 w (at) 2991 4106 w (a) 3116 4106 w (time.) 3204 4106 w (After) 3516 4106 w (the) 3789 4106 w (option) 3977 4106 w (completes,) 4323 4106 w (the) 4885 4106 w (execution) 720 4226 w (of) 1253 4226 w (the) 1409 4226 w (structure) 1622 4226 w (is) 2117 4226 w (repeated.) 2254 4226 w (The) 2802 4226 w (normal) 3040 4226 w (way) 3438 4226 w (to) 3679 4226 w (terminate) 3834 4226 w (the) 4357 4226 w (repetition) 4569 4226 w (structure is with a) 720 4346 w 10 /LucidaTypewriter f (break) 1626 4346 w 10 /LucidaSansUnicode00 f (statement.) 2018 4346 w (In the example, the loop) 2598 4346 w (can) 3819 4346 w (be) 4020 4346 w (broken) 4172 4346 w (only) 4546 4346 w (when) 4783 4346 w (the) 720 4466 w (count) 917 4466 w (reaches) 1232 4466 w (zero.) 1646 4466 w (Note,) 1967 4466 w (however,) 2269 4466 w (that) 2748 4466 w (it) 2981 4466 w (need) 3089 4466 w (not) 3368 4466 w (terminate) 3570 4466 w (since) 4078 4466 w (the) 4369 4466 w (other) 4566 4466 w (two) 4865 4466 w (options) 720 4586 w (remain) 1127 4586 w (executable.) 1507 4586 w (To) 2141 4586 w (force) 2309 4586 w (termination) 2599 4586 w (we) 3205 4586 w (could) 3382 4586 w (modify) 3692 4586 w (the) 4071 4586 w (program) 4270 4586 w (as) 4730 4586 w (fol\255) 4880 4586 w (lows.) 720 4706 w 9 /LucidaTypewriter f (active) 1008 4876 w (proctype) 1463 4876 w (counter\(\)) 2048 4876 w ({) 1008 4986 w (do) 1528 5096 w (::) 1528 5206 w (\(count) 1723 5206 w (!=) 2178 5206 w (0\)) 2373 5206 w (->) 2568 5206 w (if) 2048 5316 w (::) 2048 5426 w (count++) 2243 5426 w (::) 2048 5536 w (count--) 2243 5536 w (fi) 2048 5646 w (::) 1528 5756 w (\(count) 1723 5756 w (==) 2178 5756 w (0\)) 2373 5756 w (->) 2568 5756 w (break) 2763 5756 w (od) 1528 5866 w (}) 1008 5976 w 10 /LucidaSansUnicode00 f (A) 720 6156 w (special) 836 6156 w (type) 1217 6156 w (of) 1472 6156 w (statement) 1617 6156 w (that) 2148 6156 w (is) 2386 6156 w (useful) 2513 6156 w (in) 2857 6156 w (selection) 2995 6156 w (and) 3474 6156 w (repetition) 3701 6156 w (structures) 4220 6156 w (is) 4757 6156 w (the) 4885 6156 w 10 /LucidaTypewriter f (else) 720 6276 w 10 /LucidaSansUnicode00 f (statement.) 1053 6276 w (An) 1646 6276 w 10 /LucidaTypewriter f (else) 1822 6276 w 10 /LucidaSansUnicode00 f (statement) 2155 6276 w (becomes) 2684 6276 w (executable) 3160 6276 w (only) 3730 6276 w (if) 3978 6276 w (no) 4088 6276 w (other) 4255 6276 w (statement) 4556 6276 w (within) 720 6396 w (the) 1052 6396 w (same) 1243 6396 w (process,) 1534 6396 w (at) 1976 6396 w (the) 2104 6396 w (same) 2295 6396 w (control-flow) 2587 6396 w (point,) 3228 6396 w (is) 3549 6396 w (executable.) 3666 6396 w (We) 4293 6396 w (could) 4472 6396 w (try) 4775 6396 w (to) 4942 6396 w (use it in two places in the above example:) 720 6516 w cleartomark showpage saveobj restore %%EndPage: 12 12 %%Page: 13 13 /saveobj save def mark 13 pagesetup 10 /LucidaSansUnicode00 f (\255 13 \255) 2752 480 w 9 /LucidaTypewriter f (active) 1008 830 w (proctype) 1463 830 w (counter\(\)) 2048 830 w ({) 1008 940 w (do) 1528 1050 w (::) 1528 1160 w (\(count) 1723 1160 w (!=) 2178 1160 w (0\)) 2373 1160 w (->) 2568 1160 w (if) 2048 1270 w (::) 2048 1380 w (count++) 2243 1380 w (::) 2048 1490 w (count--) 2243 1490 w (::) 2048 1600 w (else) 2243 1600 w (fi) 2048 1710 w (::) 1528 1820 w (else) 1723 1820 w (->) 2048 1820 w (break) 2243 1820 w (od) 1528 1930 w (}) 1008 2040 w 10 /LucidaSansUnicode00 f (The) 720 2220 w (first) 956 2220 w 10 /LucidaTypewriter f (else) 1206 2220 w 10 /LucidaSansUnicode00 f (,) 1494 2220 w (inside) 1581 2220 w (the) 1926 2220 w (nested) 2136 2220 w (selection) 2517 2220 w (structure,) 3005 2220 w (can) 3531 2220 w (never) 3755 2220 w (become) 4078 2220 w (executable) 4514 2220 w (though,) 720 2340 w (and) 1136 2340 w (is) 1354 2340 w (therefore) 1472 2340 w (redundant) 1957 2340 w (\(both) 2496 2340 w (alternative) 2790 2340 w (guards) 3337 2340 w (of) 3709 2340 w (the) 3845 2340 w (selection) 4038 2340 w (are) 4508 2340 w (assign\255) 4697 2340 w (ments,) 720 2460 w (which) 1123 2460 w (are) 1476 2460 w (always) 1700 2460 w (executable\).) 2091 2460 w (The) 2786 2460 w (second) 3039 2460 w (usage) 3455 2460 w (of) 3813 2460 w (the) 3983 2460 w 10 /LucidaTypewriter f (else) 4210 2460 w 10 /LucidaSansUnicode00 f (,) 4498 2460 w (however,) 4603 2460 w (becomes) 720 2580 w (executable) 1210 2580 w (exactly) 1795 2580 w (when) 2195 2580 w 10 /LucidaTypewriter f (!\(count) 2510 2580 w (!=) 3112 2580 w (0\)) 3354 2580 w 10 /LucidaSansUnicode00 f (or) 3556 2580 w 10 /LucidaTypewriter f (\(count) 3716 2580 w (==) 4246 2580 w (0\)) 4488 2580 w 10 /LucidaSansUnicode00 f (,) 4632 2580 w (and) 4722 2580 w (is) 4960 2580 w (therefore equivalent to the latter to break from the loop.) 720 2700 w (There) 720 2856 w (is) 1035 2856 w (also) 1152 2856 w (an) 1386 2856 w (alternative) 1541 2856 w (way) 2088 2856 w (to) 2310 2856 w (exit) 2446 2856 w (the) 2667 2856 w (do-loop,) 2860 2856 w (without) 3326 2856 w (using) 3729 2856 w (a) 4033 2856 w 10 /LucidaTypewriter f (break) 4126 2856 w 10 /LucidaSansUnicode00 f (statement:) 4524 2856 w (the) 720 2976 w (infamous) 911 2976 w 10 /LucidaTypewriter f (goto) 1397 2976 w 10 /LucidaSansUnicode00 f (.) 1685 2976 w (This) 1785 2976 w (is) 2026 2976 w (illustrated) 2142 2976 w (in) 2666 2976 w (the) 2792 2976 w (following) 2982 2976 w (implementation) 3464 2976 w (of) 4261 2976 w (Euclid) 4394 2976 w 10 /LucidaSansUnicode20 f (\031) 4682 2976 w 10 /LucidaSansUnicode00 f (s) 4714 2976 w (algo\255) 4800 2976 w (rithm for finding the greatest common divisor of two non-zero, positive numbers:) 720 3096 w 9 /LucidaTypewriter f (proctype) 1008 3266 w (Euclid\(int) 1593 3266 w (x,) 2308 3266 w (y\)) 2503 3266 w ({) 1008 3376 w (do) 1528 3486 w (::) 1528 3596 w (\(x) 1723 3596 w (>) 1918 3596 w (y\)) 2113 3596 w (->) 2308 3596 w (x) 2503 3596 w (=) 2633 3596 w (x) 2763 3596 w (-) 2893 3596 w (y) 3023 3596 w (::) 1528 3706 w (\(x) 1723 3706 w (<) 1918 3706 w (y\)) 2113 3706 w (->) 2308 3706 w (y) 2503 3706 w (=) 2633 3706 w (y) 2763 3706 w (-) 2893 3706 w (x) 3023 3706 w (::) 1528 3816 w (\(x) 1723 3816 w (==) 1918 3816 w (y\)) 2113 3816 w (->) 2308 3816 w (goto) 2503 3816 w (done) 2828 3816 w (od;) 1528 3926 w (done:) 1008 4036 w (skip) 1528 4146 w (}) 1008 4256 w (init) 1008 4486 w ({) 1333 4486 w (run) 1463 4486 w (Euclid\(36,) 1723 4486 w (12\)) 2438 4486 w (}) 2698 4486 w 10 /LucidaSansUnicode00 f (The) 720 4666 w 10 /LucidaTypewriter f (goto) 935 4666 w 10 /LucidaSansUnicode00 f (in) 1258 4666 w (this) 1384 4666 w (example) 1598 4666 w (jumps) 2046 4666 w (to) 2380 4666 w (a) 2513 4666 w (label) 2603 4666 w (named) 2870 4666 w 10 /LucidaTypewriter f (done) 3234 4666 w 10 /LucidaSansUnicode00 f (.) 3522 4666 w (Since) 3621 4666 w (a) 3908 4666 w (label) 3998 4666 w (can) 4265 4666 w (only) 4468 4666 w (appear) 4707 4666 w (before) 720 4786 w (a) 1071 4786 w (statement,) 1163 4786 w (we) 1716 4786 w (have) 1886 4786 w (added) 2148 4786 w (the) 2484 4786 w (dummy) 2675 4786 w (statement) 3074 4786 w 10 /LucidaTypewriter f (skip) 3594 4786 w 10 /LucidaSansUnicode00 f (.) 3882 4786 w (Like) 3982 4786 w (a) 4214 4786 w 10 /LucidaTypewriter f (skip) 4305 4786 w 10 /LucidaSansUnicode00 f (,) 4593 4786 w (a) 4661 4786 w 10 /LucidaTypewriter f (goto) 4752 4786 w 10 /LucidaSansUnicode00 f (statement) 720 4906 w (is) 1241 4906 w (always) 1358 4906 w (executable) 1714 4906 w (and) 2277 4906 w (has) 2494 4906 w (no) 2699 4906 w (other) 2860 4906 w (effect) 3155 4906 w (than) 3467 4906 w (to) 3721 4906 w (change) 3857 4906 w (the) 4243 4906 w (control-flow) 4436 4906 w (point of the process that executes it.) 720 5026 w (As) 720 5182 w (a) 895 5182 w (final) 1005 5182 w (example,) 1272 5182 w (consider) 1772 5182 w (the) 2241 5182 w (following) 2452 5182 w (implementation) 2955 5182 w (of) 3773 5182 w (a) 3927 5182 w (Dijkstra) 4038 5182 w (semaphore,) 4470 5182 w (which is implemented with the help of a synchronous channel.) 720 5302 w 9 /LucidaTypewriter f (#define) 1008 5472 w (p) 1528 5472 w (0) 2048 5472 w (#define) 1008 5582 w (v) 1528 5582 w (1) 2048 5582 w (chan) 1008 5802 w (sema) 1333 5802 w (=) 1658 5802 w ([0]) 1788 5802 w (of) 2048 5802 w ({) 2243 5802 w (bit) 2373 5802 w (};) 2633 5802 w (active) 1008 6032 w (proctype) 1463 6032 w (Dijkstra\(\)) 2048 6032 w ({) 1008 6142 w (byte) 1528 6142 w (count) 1853 6142 w (=) 2243 6142 w (1;) 2373 6142 w (do) 1528 6362 w (::) 1528 6472 w (\(count) 1723 6472 w (==) 2178 6472 w (1\)) 2373 6472 w (->) 2568 6472 w (sema!p;) 2048 6582 w (count) 2568 6582 w (=) 2958 6582 w (0) 3088 6582 w (::) 1528 6692 w (\(count) 1723 6692 w (==) 2178 6692 w (0\)) 2373 6692 w (->) 2568 6692 w (sema?v;) 2048 6802 w (count) 2568 6802 w (=) 2958 6802 w (1) 3088 6802 w (od) 1528 6912 w (}) 1008 7022 w cleartomark showpage saveobj restore %%EndPage: 13 13 %%Page: 14 14 /saveobj save def mark 14 pagesetup 10 /LucidaSansUnicode00 f (\255 14 \255) 2752 480 w 9 /LucidaTypewriter f (active) 1008 830 w ([3]) 1463 830 w (proctype) 1723 830 w (user\(\)) 2308 830 w ({) 1008 940 w (do) 1528 940 w (::) 1528 1050 w (sema?p;) 1723 1050 w (/*) 1723 1160 w (critical) 1918 1160 w (section) 2503 1160 w (*/) 3023 1160 w (sema!v;) 1723 1270 w (/*) 1723 1380 w (non-critical) 1918 1380 w (section) 2763 1380 w (*/) 3283 1380 w (od) 1528 1490 w (}) 1008 1600 w 10 /LucidaSansUnicode00 f (The) 720 1780 w (semaphore) 939 1780 w (guarantees) 1515 1780 w (that) 2090 1780 w (only) 2319 1780 w (one) 2561 1780 w (of) 2778 1780 w (the) 2914 1780 w (three) 3107 1780 w (user) 3397 1780 w (processes) 3646 1780 w (can) 4166 1780 w (enter) 4373 1780 w (its) 4664 1780 w (criti\255) 4820 1780 w (cal) 720 1900 w (section) 896 1900 w (at) 1284 1900 w (a) 1417 1900 w (time.) 1513 1900 w (It) 1833 1900 w (does) 1940 1900 w (not) 2212 1900 w (necessarily) 2413 1900 w (prevent) 2987 1900 w (the) 3395 1900 w (monopolization) 3591 1900 w (of) 4392 1900 w (the) 4530 1900 w (access) 4725 1900 w (to the critical section by one of the processes.) 720 2020 w 9 /LucidaSansUnicode00 f (PROMELA) 720 2176 w 10 /LucidaSansUnicode00 f (does) 1172 2176 w (not) 1443 2176 w (have) 1643 2176 w (a) 1908 2176 w (mechanism) 2003 2176 w (for) 2595 2176 w (defining) 2774 2176 w (functions) 3214 2176 w (or) 3706 2176 w (procedures.) 3848 2176 w (Where) 4497 2176 w (nec\255) 4838 2176 w (essary,) 720 2296 w (though,) 1091 2296 w (these) 1502 2296 w (may) 1797 2296 w (be) 2030 2296 w (modeled) 2182 2296 w (with) 2636 2296 w (the) 2874 2296 w (help) 3062 2296 w (of) 3305 2296 w (additional processes.) 3436 2296 w (The return) 4528 2296 w (value) 720 2416 w (of) 1018 2416 w (a) 1161 2416 w (function,) 1261 2416 w (for) 1739 2416 w (instance,) 1923 2416 w (can) 2403 2416 w (be) 2616 2416 w (passed) 2780 2416 w (back) 3164 2416 w (to) 3436 2416 w (the) 3579 2416 w (calling) 3779 2416 w (process) 4141 2416 w (via) 4560 2416 w (global) 4741 2416 w (variables) 720 2536 w (or) 1191 2536 w (messages.) 1332 2536 w (The) 1910 2536 w (following) 2130 2536 w (program) 2616 2536 w (illustrates) 3071 2536 w (this) 3587 2536 w (by) 3805 2536 w (recursively) 3959 2536 w (calculating) 4518 2536 w (the factorial of a number) 720 2656 w 10 /LucidaTypewriter f (n) 1960 2656 w 10 /LucidaSansUnicode00 f (.) 2032 2656 w 9 /LucidaTypewriter f (proctype) 1008 2826 w (fact\(int) 1593 2826 w (n;) 2178 2826 w (chan) 2373 2826 w (p\)) 2698 2826 w ({) 1008 2936 w (chan) 1528 2936 w (child) 1853 2936 w (=) 2243 2936 w ([1]) 2373 2936 w (of) 2633 2936 w ({) 2828 2936 w (int) 2958 2936 w (};) 3218 2936 w (int) 1528 3046 w (result;) 1788 3046 w (if) 1528 3266 w (::) 1528 3376 w (\(n) 1723 3376 w (<=) 1918 3376 w (1\)) 2113 3376 w (->) 2308 3376 w (p!1) 2503 3376 w (::) 1528 3486 w (\(n) 1723 3486 w (>=) 1918 3486 w (2\)) 2113 3486 w (->) 2308 3486 w (run) 2048 3596 w (fact\(n-1,) 2308 3596 w (child\);) 2958 3596 w (child?result;) 2048 3706 w (p!n*result) 2048 3816 w (fi) 1528 3926 w (}) 1008 4036 w (init) 1008 4266 w ({) 1008 4376 w (chan) 1528 4376 w (child) 1853 4376 w (=) 2243 4376 w ([1]) 2373 4376 w (of) 2633 4376 w ({) 2828 4376 w (int) 2958 4376 w (};) 3218 4376 w (int) 1528 4486 w (result;) 1788 4486 w (run) 1528 4706 w (fact\(7,) 1788 4706 w (child\);) 2308 4706 w (child?result;) 1528 4816 w (printf\("result:) 1528 4926 w (%d\\n",) 2568 4926 w (result\)) 3023 4926 w (}) 1008 5036 w 10 /LucidaSansUnicode00 f (Each) 720 5216 w (process) 1003 5216 w (creates) 1438 5216 w (a) 1846 5216 w (private) 1962 5216 w (channel) 2356 5216 w (and) 2794 5216 w (uses) 3035 5216 w (it) 3317 5216 w (to) 3445 5216 w (communicate) 3605 5216 w (with) 4317 5216 w (its) 4584 5216 w (direct) 4763 5216 w (descendant.) 720 5336 w (There are no input statements in) 1373 5336 w 9 /LucidaSansUnicode00 f (PROMELA) 2997 5336 w 10 /LucidaSansUnicode00 f (.) 3410 5336 w (The reason is that models must) 3506 5336 w (always) 720 5456 w (be) 1080 5456 w (complete) 1240 5456 w (to) 1728 5456 w (allow) 1868 5456 w (for) 2161 5456 w (logical) 2342 5456 w (verifications,) 2700 5456 w (and) 3364 5456 w (input) 3586 5456 w (statements) 3881 5456 w (would) 4458 5456 w (leave) 4792 5456 w (at) 720 5576 w (least) 848 5576 w (the) 1112 5576 w (source) 1303 5576 w (of) 1661 5576 w (some) 1794 5576 w (information) 2090 5576 w (unspecified.) 2692 5576 w (A) 3350 5576 w (way) 3454 5576 w (to) 3673 5576 w (read) 3806 5576 w (input) 4056 5576 w (would) 4344 5576 w (presup\255) 4671 5576 w (pose a source of information that is not part of the model.) 720 5696 w (We) 720 5852 w (have) 899 5852 w (already) 1161 5852 w (discussed) 1549 5852 w (a) 2063 5852 w (few) 2155 5852 w (special) 2362 5852 w (types) 2733 5852 w (of) 3029 5852 w (statement:) 3164 5852 w 10 /LucidaTypewriter f (skip) 3717 5852 w 10 /LucidaSansUnicode00 f (,) 4005 5852 w 10 /LucidaTypewriter f (break) 4074 5852 w 10 /LucidaSansUnicode00 f (,) 4434 5852 w (and) 4503 5852 w 10 /LucidaTypewriter f (else) 4720 5852 w 10 /LucidaSansUnicode00 f (.) 5008 5852 w (Another) 720 5972 w (statement) 1142 5972 w (in) 1660 5972 w (this) 1785 5972 w (class) 1998 5972 w (is) 2268 5972 w (the) 2381 5972 w 10 /LucidaTypewriter f (timeout) 2569 5972 w 10 /LucidaSansUnicode00 f (.) 3073 5972 w (The) 3170 5972 w 10 /LucidaTypewriter f (timeout) 3384 5972 w 10 /LucidaSansUnicode00 f (is) 3921 5972 w (comparable) 4034 5972 w (to) 4634 5972 w (a) 4765 5972 w (sys\255) 4853 5972 w (tem) 720 6092 w (level) 949 6092 w 10 /LucidaTypewriter f (else) 1214 6092 w 10 /LucidaSansUnicode00 f (statement:) 1546 6092 w (it) 2106 6092 w (becomes) 2216 6092 w (executable) 2691 6092 w (if) 3261 6092 w (and) 3371 6092 w (only) 3595 6092 w (if) 3843 6092 w (no) 3953 6092 w (other) 4120 6092 w (statement) 4421 6092 w (in) 4949 6092 w (any) 720 6212 w (of) 933 6212 w (the) 1075 6212 w (processes) 1274 6212 w (is) 1799 6212 w (executable.) 1922 6212 w 10 /LucidaTypewriter f (Timeout) 2555 6212 w 10 /LucidaSansUnicode00 f (is) 3102 6212 w (a) 3225 6212 w (modeling) 3323 6212 w (feature) 3821 6212 w (that) 4208 6212 w (provides) 4442 6212 w (for) 4901 6212 w (an) 720 6332 w (escape) 907 6332 w (from) 1309 6332 w (a) 1611 6332 w (potential) 1736 6332 w (deadlock) 2235 6332 w (state.) 2741 6332 w (The) 3111 6332 w 10 /LucidaTypewriter f (timeout) 3363 6332 w 10 /LucidaSansUnicode00 f (takes) 3938 6332 w (no) 4266 6332 w (parameters,) 4460 6332 w (because) 720 6452 w (the) 1147 6452 w (types) 1335 6452 w (of properties we would like to prove for) 1627 6452 w 9 /LucidaSansUnicode00 f (PROMELA) 3586 6452 w 10 /LucidaSansUnicode00 f (models must be pro\255) 4031 6452 w (ven) 720 6572 w (independent) 923 6572 w (of) 1565 6572 w (all) 1696 6572 w (absolute) 1842 6572 w (and) 2289 6572 w (relative) 2502 6572 w (timing) 2890 6572 w (considerations.) 3235 6572 w (In) 4041 6572 w (particular,) 4165 6572 w (the) 4693 6572 w (rel\255) 4881 6572 w (ative speeds of processes can never be known with certainty in an asynchronous system.) 720 6692 w cleartomark showpage saveobj restore %%EndPage: 14 14 %%Page: 15 15 /saveobj save def mark 15 pagesetup 10 /LucidaSansUnicode00 f (\255 15 \255) 2752 480 w 10 /LucidaSans-Demi f (1.2.5.) 720 840 w (Escape Sequences) 1051 840 w 10 /LucidaSansUnicode00 f (The) 720 996 w (last) 947 996 w (type) 1165 996 w (of) 1419 996 w (compound) 1563 996 w (structure) 2125 996 w (to) 2609 996 w (be) 2754 996 w (discussed) 2920 996 w (is) 3444 996 w (the) 3571 996 w 10 /LucidaTypewriter f (unless) 3773 996 w 10 /LucidaSansUnicode00 f (statement.) 4252 996 w (It) 4847 996 w (is) 4960 996 w (used as follows:) 720 1116 w 9 /LucidaTypewriter f ({) 1008 1286 w (P) 1138 1286 w (}) 1268 1286 w (unless) 1398 1286 w ({) 1853 1286 w (E) 1983 1286 w (}) 2113 1286 w 10 /LucidaSansUnicode00 f (where) 720 1466 w (the) 1067 1466 w (letters) 1277 1466 w 10 /LucidaTypewriter f (P) 1639 1466 w 10 /LucidaSansUnicode00 f (and) 1766 1466 w 10 /LucidaTypewriter f (E) 2002 1466 w 10 /LucidaSansUnicode00 f (represent) 2130 1466 w (arbitrary) 2649 1466 w 9 /LucidaSansUnicode00 f (PROMELA) 3119 1466 w 10 /LucidaSansUnicode00 f (fragments.) 3588 1466 w (Execution) 4202 1466 w (of) 4731 1466 w (the) 4885 1466 w 10 /LucidaTypewriter f (unless) 720 1586 w 10 /LucidaSansUnicode00 f (statement) 1189 1586 w (begins) 1710 1586 w (with) 2070 1586 w (the) 2312 1586 w (execution) 2504 1586 w (of) 3016 1586 w (statements) 3151 1586 w (from) 3723 1586 w 10 /LucidaTypewriter f (P) 3992 1586 w 10 /LucidaSansUnicode00 f (.) 4064 1586 w (Before) 4165 1586 w (each) 4511 1586 w (state\255) 4771 1586 w (ment) 720 1706 w (execution) 1010 1706 w (in) 1527 1706 w 10 /LucidaTypewriter f (P) 1660 1706 w 10 /LucidaSansUnicode00 f (the) 1774 1706 w (executability) 1971 1706 w (of) 2630 1706 w (the) 2770 1706 w (first) 2967 1706 w (statement) 3204 1706 w (of) 3730 1706 w 10 /LucidaTypewriter f (E) 3870 1706 w 10 /LucidaSansUnicode00 f (is) 3984 1706 w (checked,) 4106 1706 w (using) 4577 1706 w (the) 4885 1706 w (normal) 720 1826 w 9 /LucidaSansUnicode00 f (PROMELA) 1106 1826 w 10 /LucidaSansUnicode00 f (semantics) 1564 1826 w (of) 2094 1826 w (executability.) 2237 1826 w (Execution) 2963 1826 w (of) 3481 1826 w (statements) 3624 1826 w (from) 4204 1826 w 10 /LucidaTypewriter f (P) 4481 1826 w 10 /LucidaSansUnicode00 f (proceeds) 4598 1826 w (only) 720 1946 w (while) 958 1946 w (the) 1245 1946 w (first) 1434 1946 w (statement) 1663 1946 w (of) 2181 1946 w 10 /LucidaTypewriter f (E) 2313 1946 w 10 /LucidaSansUnicode00 f (remains) 2419 1946 w (unexecutable.) 2840 1946 w (The) 3589 1946 w (first) 3805 1946 w (time) 4035 1946 w (that) 4285 1946 w (this) 4511 1946 w 10 /LucidaSansUnicode20 f (\030) 4725 1946 w 10 /LucidaSansUnicode00 f (guard) 4757 1946 w (of) 720 2066 w (the) 855 2066 w (escape) 1047 2066 w (sequence) 1416 2066 w 10 /LucidaSansUnicode20 f (\031) 1873 2066 w 10 /LucidaSansUnicode00 f (is) 1942 2066 w (found) 2059 2066 w (to) 2381 2066 w (be) 2516 2066 w (executable,) 2672 2066 w (control) 3267 2066 w (changes) 3646 2066 w (to) 4081 2066 w (it,) 4215 2066 w (and) 4349 2066 w (execution) 4565 2066 w (continues) 720 2186 w (as) 1231 2186 w (defined) 1377 2186 w (for) 1783 2186 w 10 /LucidaTypewriter f (E) 1962 2186 w 10 /LucidaSansUnicode00 f (.) 2034 2186 w (Individual) 2138 2186 w (statement) 2651 2186 w (executions) 3175 2186 w (remain) 3741 2186 w (indivisible,) 4117 2186 w (so) 4681 2186 w (con\255) 4833 2186 w (trol) 720 2306 w (can) 922 2306 w (only) 1124 2306 w (change) 1362 2306 w (from) 1744 2306 w (inside) 2010 2306 w 10 /LucidaTypewriter f (P) 2333 2306 w 10 /LucidaSansUnicode00 f (to) 2438 2306 w (the) 2569 2306 w (start) 2757 2306 w (of) 3011 2306 w 10 /LucidaTypewriter f (E) 3142 2306 w 10 /LucidaSansUnicode00 f (in) 3247 2306 w (between) 3371 2306 w (individual) 3811 2306 w (statement) 4317 2306 w (exe\255) 4834 2306 w (cutions.) 720 2426 w (If) 1182 2426 w (the) 1293 2426 w (guard) 1493 2426 w (of) 1821 2426 w (the) 1964 2426 w (escape) 2164 2426 w (sequence) 2541 2426 w (does) 3043 2426 w (not) 3319 2426 w (become) 3524 2426 w (executable) 3949 2426 w (during) 4520 2426 w (the) 4885 2426 w (execution of) 720 2546 w 10 /LucidaTypewriter f (P) 1357 2546 w 10 /LucidaSansUnicode00 f (, then it is skipped entirely when) 1429 2546 w 10 /LucidaTypewriter f (P) 3050 2546 w 10 /LucidaSansUnicode00 f (terminates.) 3154 2546 w (An example of the use of escape sequences is:) 720 2702 w 9 /LucidaTypewriter f (A;) 1008 2872 w (do) 1008 2982 w (::) 1008 3092 w (b1) 1203 3092 w (->) 1398 3092 w (B1) 1593 3092 w (::) 1008 3202 w (b2) 1203 3202 w (->) 1398 3202 w (B2) 1593 3202 w (...) 1008 3312 w (od) 1008 3422 w (unless) 1008 3532 w ({) 1463 3532 w (c) 1593 3532 w (->) 1723 3532 w (C) 1918 3532 w (};) 2048 3532 w (D) 1008 3642 w 10 /LucidaSansUnicode00 f (As) 720 3822 w (shown) 888 3822 w (in) 1249 3822 w (the) 1388 3822 w (example,) 1591 3822 w (the) 2084 3822 w (curly) 2287 3822 w (braces) 2570 3822 w (around) 2935 3822 w (the) 3327 3822 w (main) 3530 3822 w (sequence) 3817 3822 w (\(or) 4322 3822 w (the) 4505 3822 w (escape) 4708 3822 w (sequence\)) 720 3942 w (can) 1243 3942 w (be) 1444 3942 w (deleted) 1596 3942 w (if) 1989 3942 w (there) 2088 3942 w (can be no confusion about which statements belong to) 2373 3942 w (those) 720 4062 w (sequences.) 1021 4062 w (In) 1627 4062 w (the) 1752 4062 w (example,) 1941 4062 w (condition) 2420 4062 w 10 /LucidaTypewriter f (c) 2909 4062 w 10 /LucidaSansUnicode00 f (acts) 3016 4062 w (as) 3245 4062 w (a) 3386 4062 w (watchdog) 3476 4062 w (on) 3979 4062 w (the) 4137 4062 w (repetition) 4327 4062 w (con\255) 4833 4062 w (struct) 720 4182 w (from) 1040 4182 w (the) 1313 4182 w (main) 1508 4182 w (sequence.) 1787 4182 w (Note) 2348 4182 w (that) 2616 4182 w (this) 2847 4182 w (is) 3066 4182 w (not) 3186 4182 w (necessarily) 3386 4182 w (equivalent) 3959 4182 w (to) 4500 4182 w (the) 4638 4182 w (con\255) 4833 4182 w (struct) 720 4302 w 9 /LucidaTypewriter f (A;) 1008 4472 w (do) 1008 4582 w (::) 1008 4692 w (b1) 1203 4692 w (->) 1398 4692 w (B1) 1593 4692 w (::) 1008 4802 w (b2) 1203 4802 w (->) 1398 4802 w (B2) 1593 4802 w (...) 1008 4912 w (::) 1008 5022 w (c) 1203 5022 w (->) 1333 5022 w (break) 1528 5022 w (od;) 1008 5132 w (C;) 1008 5242 w (D) 1203 5242 w 10 /LucidaSansUnicode00 f (if) 720 5422 w 10 /LucidaTypewriter f (B1) 825 5422 w 10 /LucidaSansUnicode00 f (or) 1008 5422 w 10 /LucidaTypewriter f (B2) 1149 5422 w 10 /LucidaSansUnicode00 f (are) 1332 5422 w (non-empty.) 1523 5422 w (In) 2170 5422 w (the) 2301 5422 w (first) 2496 5422 w (version) 2731 5422 w (of) 3123 5422 w (the) 3261 5422 w (example,) 3456 5422 w (execution) 3941 5422 w (of) 4456 5422 w (the) 4594 5422 w (itera\255) 4789 5422 w (tion) 720 5542 w (can) 942 5542 w (be) 1143 5542 w (interrupted) 1295 5542 w (at) 1875 5542 w 10 /LucidaSans-Italic f (any) 2000 5542 w 10 /LucidaSansUnicode00 f (point inside each option sequence.) 2210 5542 w (In the second version,) 3970 5542 w (execution can only be interrupted at the start of the option sequences.) 720 5662 w 10 /LucidaSans-Demi f (1.3.) 720 5902 w (Correctness Properties) 962 5902 w 10 /LucidaSansUnicode00 f (There are three ways to express correctness properties in) 720 6058 w 9 /LucidaSansUnicode00 f (PROMELA) 3549 6058 w 10 /LucidaSansUnicode00 f (, using:) 3962 6058 w 10 /LucidaSansUnicode22 f (\031) 970 6214 w 10 /LucidaSansUnicode00 f (Assertions \(section 1.3.1\),) 1058 6214 w 10 /LucidaSansUnicode22 f (\031) 970 6334 w 10 /LucidaSansUnicode00 f (Special labels \(section 1.3.2\),) 1058 6334 w 10 /LucidaSansUnicode22 f (\031) 970 6454 w 10 /LucidaTypewriter f (Never) 1058 6454 w 10 /LucidaSansUnicode00 f (claims \(section 1.3.3\).) 1450 6454 w 10 /LucidaSans-Demi f (1.3.1.) 720 6730 w (Assertions) 1051 6730 w 10 /LucidaSansUnicode00 f (Statements of the form) 720 6886 w 9 /LucidaTypewriter f (assert\(expression\)) 1008 7056 w 10 /LucidaSansUnicode00 f (are) 720 7236 w (always) 940 7236 w (executable.) 1327 7236 w (If) 1985 7236 w (the) 2119 7236 w (expression) 2342 7236 w (evaluates) 2941 7236 w (to) 3462 7236 w (a) 3628 7236 w (non-zero) 3752 7236 w (value) 4279 7236 w (\(i.e.,) 4602 7236 w (the) 4885 7236 w cleartomark showpage saveobj restore %%EndPage: 15 15 %%Page: 16 16 /saveobj save def mark 16 pagesetup 10 /LucidaSansUnicode00 f (\255 16 \255) 2752 480 w (corresponding) 720 840 w (condition) 1469 840 w (holds\),) 1970 840 w (the) 2346 840 w (statement) 2546 840 w (has) 3075 840 w (no) 3288 840 w (effect) 3456 840 w (when) 3775 840 w (executed.) 4077 840 w (The) 4628 840 w (cor\255) 4854 840 w (rectness) 720 960 w (property) 1158 960 w (expressed,) 1606 960 w (though,) 2170 960 w (is) 2582 960 w (that) 2696 960 w (it) 2921 960 w (is) 3021 960 w (impossible) 3135 960 w (for) 3694 960 w (the) 3867 960 w (expression) 4056 960 w (to) 4621 960 w (evalu\255) 4753 960 w (ate) 720 1080 w (to) 901 1080 w (zero) 1032 1080 w (\(i.e.,) 1280 1080 w (for) 1527 1080 w (the) 1699 1080 w (condition) 1887 1080 w (to) 2375 1080 w (be) 2506 1080 w (false\).) 2658 1080 w (A) 3016 1080 w (failing) 3118 1080 w (assertion) 3454 1080 w (will) 3930 1080 w (cause) 4127 1080 w (execution to) 4435 1080 w (be aborted.) 720 1200 w 10 /LucidaSans-Demi f (1.3.2.) 720 1440 w (Special Labels) 1051 1440 w 10 /LucidaSansUnicode00 f (Labels) 720 1596 w (in) 1080 1596 w (a) 1224 1596 w 9 /LucidaSansUnicode00 f (PROMELA) 1332 1596 w 10 /LucidaSansUnicode00 f (specification) 1798 1596 w (ordinarily) 2463 1596 w (serve) 2979 1596 w (as) 3289 1596 w (targets) 3449 1596 w (for) 3842 1596 w (unconditional) 4035 1596 w 10 /LucidaTypewriter f (goto) 4752 1596 w 10 /LucidaSansUnicode00 f (jumps,) 720 1716 w (as) 1106 1716 w (usual.) 1267 1716 w (There) 1645 1716 w (are,) 1978 1716 w (however,) 2217 1716 w (also) 2709 1716 w (three) 2960 1716 w (types) 3267 1716 w (of) 3581 1716 w (labels) 3734 1716 w (that) 4072 1716 w (have) 4318 1716 w (a) 4597 1716 w (special) 4706 1716 w (meaning to the verifier.) 720 1836 w (We discuss them in the next three subsections.) 1925 1836 w 10 /LucidaSans-Demi f (1.3.2.1.) 720 2076 w (End-State Labels) 1140 2076 w 10 /LucidaSansUnicode00 f (When) 720 2232 w (a) 1023 2232 w 9 /LucidaSansUnicode00 f (PROMELA) 1115 2232 w 10 /LucidaSansUnicode00 f (model) 1565 2232 w (is) 1904 2232 w (checked) 2021 2232 w (for) 2455 2232 w (reachable) 2631 2232 w (deadlock) 3137 2232 w (states) 3611 2232 w (by) 3936 2232 w (the) 4089 2232 w (verifier,) 4282 2232 w (it) 4693 2232 w (must) 4797 2232 w (be) 720 2352 w (able) 878 2352 w (to) 1120 2352 w (distinguish) 1257 2352 w (valid) 1833 2352 w 10 /LucidaSans-Italic f (end) 2100 2352 w (state) 2314 2352 w 10 /LucidaSansUnicode00 f (s) 2553 2352 w (from) 2642 2352 w (invalid) 2912 2352 w (ones.) 3269 2352 w (By) 3601 2352 w (default,) 3749 2352 w (the) 4158 2352 w (only) 4351 2352 w (valid) 4593 2352 w (end) 4859 2352 w (states) 720 2472 w (are) 1048 2472 w (those) 1241 2472 w (in) 1550 2472 w (which) 1683 2472 w (every) 2006 2472 w 9 /LucidaSansUnicode00 f (PROMELA) 2305 2472 w 10 /LucidaSansUnicode00 f (process) 2760 2472 w (that) 3176 2472 w (was) 3409 2472 w (instantiated) 3634 2472 w (has) 4249 2472 w (reached) 4459 2472 w (the) 4885 2472 w (end) 720 2592 w (of) 950 2592 w (its) 1097 2592 w (code.) 1263 2592 w (Not) 1607 2592 w (all) 1828 2592 w 9 /LucidaSansUnicode00 f (PROMELA) 1990 2592 w 10 /LucidaSansUnicode00 f (processes,) 2452 2592 w (however,) 3014 2592 w (are) 3500 2592 w (meant) 3700 2592 w (to) 4051 2592 w (reach) 4197 2592 w (the) 4510 2592 w (end) 4713 2592 w (of) 4942 2592 w (their) 720 2712 w (code.) 980 2712 w (Some) 1310 2712 w (may) 1609 2712 w (very) 1844 2712 w (well) 2080 2712 w (linger) 2306 2712 w (in) 2620 2712 w (a) 2746 2712 w (known) 2836 2712 w (wait) 3191 2712 w (state,) 3424 2712 w (or) 3727 2712 w (they) 3864 2712 w (may) 4106 2712 w (sit) 4341 2712 w (patiently) 4493 2712 w (in) 4949 2712 w (a loop ready to spring into action when new input arrives.) 720 2832 w (To) 720 2988 w (make) 893 2988 w (it) 1204 2988 w (clear) 1319 2988 w (to) 1600 2988 w (the) 1747 2988 w (verifier) 1951 2988 w (that) 2341 2988 w (these) 2581 2988 w (alternate) 2892 2988 w (end) 3369 2988 w (states) 3599 2988 w (are) 3935 2988 w (also) 4136 2988 w (valid,) 4381 2988 w (we) 4690 2988 w (can) 4872 2988 w (define) 720 3108 w (special) 1091 3108 w (end-state) 1493 3108 w (labels.) 2036 3108 w (We) 2451 3108 w (can) 2661 3108 w (do) 2897 3108 w (so,) 3089 3108 w (for) 3301 3108 w (instance,) 3508 3108 w (in) 4011 3108 w (the) 4169 3108 w (process) 4391 3108 w (type) 4832 3108 w 10 /LucidaTypewriter f (Dijkstra) 720 3228 w 10 /LucidaSansUnicode00 f (, from an earlier example:) 1296 3228 w 9 /LucidaTypewriter f (proctype) 1008 3398 w (Dijkstra\(\)) 1593 3398 w ({) 1008 3508 w (byte) 1528 3508 w (count) 1853 3508 w (=) 2243 3508 w (1;) 2373 3508 w (end:) 1008 3728 w (do) 1528 3728 w (::) 1528 3838 w (\(count) 1723 3838 w (==) 2178 3838 w (1\)) 2373 3838 w (->) 2568 3838 w (sema!p;) 2048 3948 w (count) 2568 3948 w (=) 2958 3948 w (0) 3088 3948 w (::) 1528 4058 w (\(count) 1723 4058 w (==) 2178 4058 w (0\)) 2373 4058 w (->) 2568 4058 w (sema?v;) 2048 4168 w (count) 2568 4168 w (=) 2958 4168 w (1) 3088 4168 w (od) 1528 4278 w (}) 1008 4388 w 10 /LucidaSansUnicode00 f (The) 720 4568 w (label) 941 4568 w 10 /LucidaTypewriter f (end) 1213 4568 w 10 /LucidaSansUnicode00 f (defines) 1469 4568 w (that) 1863 4568 w (it) 2094 4568 w (is) 2200 4568 w (not) 2320 4568 w (an) 2520 4568 w (error) 2677 4568 w (if,) 2957 4568 w (at) 3095 4568 w (the) 3227 4568 w (end) 3422 4568 w (of) 3643 4568 w (an) 3781 4568 w (execution) 3939 4568 w (sequence,) 4455 4568 w (a) 4985 4568 w (process) 720 4688 w (of) 1137 4688 w (this) 1278 4688 w (type) 1500 4688 w (has) 1751 4688 w (not) 1962 4688 w (reached) 2165 4688 w (its) 2592 4688 w (closing) 2752 4688 w (curly) 3140 4688 w (brace,) 3418 4688 w (but) 3759 4688 w (waits) 3964 4688 w (at) 4256 4688 w (the) 4390 4688 w (label.) 4587 4688 w (Of) 4925 4688 w (course,) 720 4808 w (such) 1111 4808 w (a) 1374 4808 w (state) 1466 4808 w (could) 1739 4808 w (still) 2042 4808 w (be) 2254 4808 w (part) 2410 4808 w (of) 2643 4808 w (a) 2778 4808 w (deadlock) 2870 4808 w (state,) 3343 4808 w (but) 3648 4808 w (if) 3847 4808 w (so,) 3950 4808 w (it) 4131 4808 w (is) 4234 4808 w (not) 4351 4808 w (caused) 4549 4808 w (by) 4925 4808 w (this particular process.) 720 4928 w (There) 720 5084 w (may) 1040 5084 w (be) 1282 5084 w (more) 1443 5084 w (than) 1736 5084 w (one) 1994 5084 w (end-state) 2215 5084 w (label) 2732 5084 w (per) 3006 5084 w 9 /LucidaSansUnicode00 f (PROMELA) 3208 5084 w 10 /LucidaSansUnicode00 f (model.) 3663 5084 w (If) 4071 5084 w (so,) 4180 5084 w (all) 4367 5084 w (labels) 4523 5084 w (that) 4849 5084 w (occur) 720 5204 w (within) 1025 5204 w (the) 1360 5204 w (same) 1554 5204 w (process) 1848 5204 w (body) 2261 5204 w (must) 2539 5204 w (be) 2821 5204 w (unique.) 2979 5204 w (The) 3416 5204 w (rule) 3636 5204 w (is) 3862 5204 w (that) 3980 5204 w (every) 4209 5204 w (label) 4504 5204 w (name) 4774 5204 w (with the prefix) 720 5324 w 10 /LucidaTypewriter f (end) 1463 5324 w 10 /LucidaSansUnicode00 f (is taken to be an end-state label.) 1711 5324 w 10 /LucidaSans-Demi f (1.3.2.2.) 720 5564 w (Progress-State Labels) 1140 5564 w 10 /LucidaSansUnicode00 f (In) 720 5720 w (the) 848 5720 w (same) 1040 5720 w (spirit,) 1332 5720 w 9 /LucidaSansUnicode00 f (PROMELA) 1651 5720 w 10 /LucidaSansUnicode00 f (also) 2101 5720 w (allows) 2334 5720 w (for) 2673 5720 w (the) 2849 5720 w (definition) 3041 5720 w (of) 3543 5720 w 10 /LucidaTypewriter f (progress) 3678 5720 w 10 /LucidaSansUnicode00 f (labels.) 4291 5720 w (Passing) 4675 5720 w (a) 720 5840 w (progress) 814 5840 w (label) 1279 5840 w (during) 1550 5840 w (an) 1908 5840 w (execution) 2064 5840 w (is) 2578 5840 w (interpreted) 2697 5840 w (as) 3277 5840 w (a) 3422 5840 w (good) 3516 5840 w (thing:) 3802 5840 w (the) 4157 5840 w (process) 4350 5840 w (is) 4762 5840 w (not) 4880 5840 w (just) 720 5960 w (idling) 948 5960 w (while) 1270 5960 w (waiting) 1572 5960 w (for) 1972 5960 w (things) 2160 5960 w (to) 2512 5960 w (happen) 2659 5960 w (elsewhere,) 3069 5960 w (but) 3634 5960 w (is) 3845 5960 w (making) 3974 5960 w (effective) 4382 5960 w (pro\255) 4842 5960 w (gress) 720 6080 w (in) 1017 6080 w (its) 1143 6080 w (execution.) 1295 6080 w (The) 1869 6080 w (implicit) 2085 6080 w (correctness) 2480 6080 w (property) 3073 6080 w (expressed) 3522 6080 w (here) 4055 6080 w (is) 4305 6080 w (that) 4420 6080 w (any) 4646 6080 w (infi\255) 4850 6080 w (nite) 720 6200 w (execution) 950 6200 w (cycle) 1471 6200 w (allowed) 1756 6200 w (by) 2172 6200 w (the) 2333 6200 w (model) 2534 6200 w (that) 2882 6200 w (does) 3119 6200 w (not) 3396 6200 w (pass) 3602 6200 w (through) 3868 6200 w (at) 4302 6200 w (least) 4441 6200 w (one) 4716 6200 w (of) 4942 6200 w (these) 720 6320 w (progress) 1034 6320 w (labels) 1512 6320 w (is) 1847 6320 w (a) 1979 6320 w (potential) 2086 6320 w (starvation) 2567 6320 w (loop.) 3099 6320 w (In) 3429 6320 w (the) 3572 6320 w 10 /LucidaTypewriter f (Dijkstra) 3778 6320 w 10 /LucidaSansUnicode00 f (example,) 4405 6320 w (for) 4901 6320 w (instance,) 720 6440 w (we) 1189 6440 w (can) 1356 6440 w (label) 1558 6440 w (the) 1824 6440 w (successful) 2013 6440 w (passing) 2549 6440 w (of) 2957 6440 w (a) 3090 6440 w (semaphore) 3180 6440 w (test) 3753 6440 w (as) 3969 6440 w (progress) 4110 6440 w (and) 4571 6440 w (ask) 4786 6440 w (a) 4985 6440 w (verifier to make sure that there is no cycle elsewhere in the system.) 720 6560 w cleartomark showpage saveobj restore %%EndPage: 16 16 %%Page: 17 17 /saveobj save def mark 17 pagesetup 10 /LucidaSansUnicode00 f (\255 17 \255) 2752 480 w 9 /LucidaTypewriter f (proctype) 1008 830 w (Dijkstra\(\)) 1593 830 w ({) 1008 940 w (byte) 1528 940 w (count) 1853 940 w (=) 2243 940 w (1;) 2373 940 w (end:) 1008 1160 w (do) 1528 1160 w (::) 1528 1270 w (\(count) 1723 1270 w (==) 2178 1270 w (1\)) 2373 1270 w (->) 2568 1270 w (progress:) 1008 1380 w (sema!p;) 2048 1380 w (count) 2568 1380 w (=) 2958 1380 w (0) 3088 1380 w (::) 1528 1490 w (\(count) 1723 1490 w (==) 2178 1490 w (0\)) 2373 1490 w (->) 2568 1490 w (sema?v;) 2048 1600 w (count) 2568 1600 w (=) 2958 1600 w (1) 3088 1600 w (od) 1528 1710 w (}) 1008 1820 w 10 /LucidaSansUnicode00 f (If) 720 2000 w (more) 836 2000 w (than) 1137 2000 w (one) 1403 2000 w (state) 1633 2000 w (carries) 1920 2000 w (a) 2295 2000 w (progress) 2401 2000 w (label,) 2878 2000 w (variations) 3193 2000 w (with) 3716 2000 w (a) 3972 2000 w (common) 4078 2000 w (prefix) 4550 2000 w (are) 4888 2000 w (again valid.) 720 2120 w 10 /LucidaSans-Demi f (1.3.2.3.) 720 2360 w (Accept-State Labels) 1140 2360 w 10 /LucidaSansUnicode00 f (The) 720 2516 w (last) 957 2516 w (type) 1185 2516 w (of) 1449 2516 w (label,) 1603 2516 w (the) 1923 2516 w (accept-state) 2134 2516 w (label,) 2797 2516 w (is) 3117 2516 w (used) 3253 2516 w (primarily) 3541 2516 w (in) 4029 2516 w (combination) 4176 2516 w (with) 4835 2516 w 10 /LucidaTypewriter f (never) 720 2636 w 10 /LucidaSansUnicode00 f (claims.) 1145 2636 w (Briefly,) 1582 2636 w (by) 1981 2636 w (labeling) 2161 2636 w (a) 2610 2636 w (state) 2729 2636 w (with) 3029 2636 w (any) 3298 2636 w (label) 3531 2636 w (starting) 3827 2636 w (with) 4265 2636 w (the) 4534 2636 w (prefix) 4753 2636 w 10 /LucidaTypewriter f (accept) 720 2756 w 10 /LucidaSansUnicode00 f (we) 1194 2756 w (can) 1369 2756 w (ask) 1579 2756 w (the) 1785 2756 w (verifier) 1982 2756 w (to) 2365 2756 w (find) 2505 2756 w (all) 2738 2756 w (cycles) 2893 2756 w (that) 3226 2756 w 10 /LucidaSans-Italic f (do) 3460 2756 w 10 /LucidaSansUnicode00 f (pass) 3621 2756 w (through) 3884 2756 w (at) 4314 2756 w (least) 4449 2756 w (one) 4720 2756 w (of) 4942 2756 w (those) 720 2876 w (labels.) 1037 2876 w (The) 1434 2876 w (implicit) 1665 2876 w (correctness) 2075 2876 w (claim) 2682 2876 w (is) 2988 2876 w (that) 3117 2876 w (this) 3357 2876 w (cannot) 3585 2876 w (happen.) 3962 2876 w (The) 4436 2876 w (primary) 4666 2876 w (place) 720 2996 w (where) 1014 2996 w (accept) 1346 2996 w (labels) 1699 2996 w (are) 2022 2996 w (used) 2214 2996 w (is) 2486 2996 w (inside) 2606 2996 w 10 /LucidaTypewriter f (never) 2936 2996 w 10 /LucidaSansUnicode00 f (claims.) 3336 2996 w (We) 3749 2996 w (discuss) 3932 2996 w 10 /LucidaTypewriter f (never) 4331 2996 w 10 /LucidaSansUnicode00 f (claims) 4732 2996 w (next.) 720 3116 w 10 /LucidaSans-Demi f (1.3.3.) 720 3356 w (Never Claims) 1051 3356 w 10 /LucidaSansUnicode00 f (Up) 720 3512 w (to) 885 3512 w (this) 1016 3512 w (point) 1228 3512 w (we) 1513 3512 w (have) 1680 3512 w (talked) 1939 3512 w (about) 2271 3512 w (the) 2583 3512 w (specification) 2772 3512 w (of) 3417 3512 w (correctness) 3549 3512 w (criteria) 4141 3512 w (with) 4514 3512 w (asser\255) 4753 3512 w (tions) 720 3632 w (and) 1004 3632 w (with) 1228 3632 w (three) 1477 3632 w (special) 1773 3632 w (types) 2151 3632 w (of) 2454 3632 w (labels.) 2595 3632 w (Powerful) 2985 3632 w (types) 3446 3632 w (of) 3748 3632 w (correctness) 3889 3632 w (criteria) 4490 3632 w (can) 4872 3632 w (already) 720 3752 w (be) 1107 3752 w (expressed) 1262 3752 w (with) 1796 3752 w (these) 2037 3752 w (tools,) 2335 3752 w (yet) 2642 3752 w (so) 2823 3752 w (far) 2972 3752 w (our) 3142 3752 w (only) 3343 3752 w (option) 3584 3752 w (is) 3934 3752 w (to) 4051 3752 w (add) 4186 3752 w (them) 4404 3752 w (to) 4689 3752 w (indi\255) 4824 3752 w (vidual) 720 3872 w 10 /LucidaTypewriter f (proctype) 1050 3872 w 10 /LucidaSansUnicode00 f (declarations.) 1666 3872 w (We) 2360 3872 w (can,) 2541 3872 w (for) 2780 3872 w (instance,) 2958 3872 w (express) 3432 3872 w (the) 3850 3872 w (claim) 4044 3872 w 10 /LucidaSansUnicode20 f (\030\030) 4340 3872 w 10 /LucidaSansUnicode00 f (every) 4404 3872 w (system) 4700 3872 w (state) 720 3992 w (in) 994 3992 w (which) 1123 3992 w (property) 1442 3992 w 10 /LucidaTypewriter f (P) 1894 3992 w 10 /LucidaSansUnicode00 f (is) 2004 3992 w (true) 2123 3992 w (eventually) 2358 3992 w (leads) 2887 3992 w (to) 3180 3992 w (a) 3317 3992 w (system) 3411 3992 w (state) 3790 3992 w (in) 4065 3992 w (which) 4195 3992 w (property) 4515 3992 w 10 /LucidaTypewriter f (Q) 4968 3992 w 10 /LucidaSansUnicode00 f (is true,) 720 4112 w 10 /LucidaSansUnicode20 f (\031\031) 1060 4112 w 10 /LucidaSansUnicode00 f (with an extra monitor process, such as:) 1156 4112 w 9 /LucidaTypewriter f (active) 1008 4282 w (proctype) 1463 4282 w (monitor\(\)) 2048 4282 w ({) 1008 4392 w (progress:) 1008 4502 w (do) 1528 4612 w (::) 1528 4722 w (P) 1723 4722 w (->) 1853 4722 w (Q) 2048 4722 w (od) 1528 4832 w (}) 1008 4942 w 10 /LucidaSansUnicode00 f (If) 720 5122 w (we) 826 5122 w (require) 999 5122 w (that) 1387 5122 w (property) 1618 5122 w 10 /LucidaTypewriter f (P) 2072 5122 w 10 /LucidaSansUnicode00 f (must) 2184 5122 w 10 /LucidaSans-Italic f (remain) 2467 5122 w 10 /LucidaSansUnicode00 f (true) 2853 5122 w (while) 3089 5122 w (we) 3382 5122 w (are) 3555 5122 w (waiting) 3747 5122 w 10 /LucidaTypewriter f (Q) 4139 5122 w 10 /LucidaSansUnicode00 f (to) 4252 5122 w (become) 4391 5122 w (true,) 4812 5122 w (we can try to change this to:) 720 5242 w 9 /LucidaTypewriter f (active) 1008 5412 w (proctype) 1463 5412 w (monitor\(\)) 2048 5412 w ({) 1008 5522 w (progress:) 1008 5632 w (do) 1528 5742 w (::) 1528 5852 w (P) 1723 5852 w (->) 1853 5852 w (assert\(P) 2048 5852 w (||) 2633 5852 w (Q\)) 2828 5852 w (od) 1528 5962 w (}) 1008 6072 w 10 /LucidaSansUnicode00 f (but) 720 6252 w (this) 924 6252 w (does) 1145 6252 w (not) 1418 6252 w (quite) 1620 6252 w (do) 1909 6252 w (the) 2076 6252 w (job.) 2274 6252 w (Note) 2535 6252 w (that) 2806 6252 w (we) 3040 6252 w (cannot) 3216 6252 w (make) 3587 6252 w (any) 3892 6252 w (assumptions) 4104 6252 w (about) 4762 6252 w (the) 720 6372 w (relative) 920 6372 w (execution) 1320 6372 w (speeds) 1840 6372 w (of) 2225 6372 w (processes) 2368 6372 w (in) 2893 6372 w (a) 3028 6372 w 9 /LucidaSansUnicode00 f (PROMELA) 3127 6372 w 10 /LucidaSansUnicode00 f (model.) 3584 6372 w (This) 3994 6372 w (means) 4243 6372 w (that) 4604 6372 w (if) 4839 6372 w (in) 4949 6372 w (the) 720 6492 w (remainder) 909 6492 w (of) 1439 6492 w (the) 1571 6492 w (system) 1760 6492 w (the) 2134 6492 w (property) 2323 6492 w 10 /LucidaTypewriter f (P) 2771 6492 w 10 /LucidaSansUnicode00 f (becomes) 2877 6492 w (true,) 3342 6492 w (we) 3604 6492 w (can) 3771 6492 w (move) 3973 6492 w (to) 4269 6492 w (the) 4401 6492 w (state) 4590 6492 w (just) 4860 6492 w (before) 720 6612 w (the) 1067 6612 w 10 /LucidaTypewriter f (assert) 1255 6612 w 10 /LucidaSansUnicode00 f (,) 1687 6612 w (and) 1752 6612 w (wait) 1965 6612 w (there) 2196 6612 w (for) 2481 6612 w (an) 2653 6612 w (unknown) 2803 6612 w (amount) 3280 6612 w (of time \(anything between a) 3683 6612 w (zero) 720 6732 w (delay) 969 6732 w (and) 1258 6732 w (an) 1472 6732 w (infinite) 1623 6732 w (delay) 1998 6732 w (is) 2287 6732 w (possible) 2401 6732 w (here,) 2839 6732 w (since) 3121 6732 w (no) 3405 6732 w (other) 3563 6732 w (synchronizations) 3855 6732 w (apply\).) 4713 6732 w (If) 720 6852 w 10 /LucidaTypewriter f (Q) 844 6852 w 10 /LucidaSansUnicode00 f (becomes) 974 6852 w (true,) 1463 6852 w (we) 1749 6852 w (may) 1940 6852 w (pass) 2198 6852 w (the) 2476 6852 w (assertion,) 2689 6852 w (but) 3222 6852 w (we) 3442 6852 w (need) 3633 6852 w (not) 3928 6852 w (do) 4146 6852 w (so.) 4328 6852 w (Even) 4562 6852 w (if) 4844 6852 w 10 /LucidaTypewriter f (P) 4968 6852 w 10 /LucidaSansUnicode00 f (becomes) 720 6972 w (false) 1192 6972 w (only) 1461 6972 w 10 /LucidaSans-Italic f (after) 1706 6972 w 10 /LucidaTypewriter f (Q) 1985 6972 w 10 /LucidaSansUnicode00 f (has) 2098 6972 w (become) 2307 6972 w (true,) 2728 6972 w (we) 2997 6972 w (may) 3171 6972 w (still) 3412 6972 w (fail) 3628 6972 w (the) 3819 6972 w (assertion,) 4015 6972 w (as) 4531 6972 w (long) 4678 6972 w (as) 4934 6972 w (there) 720 7092 w (exists) 1017 7092 w (some) 1347 7092 w (later) 1653 7092 w (state) 1916 7092 w (where) 2196 7092 w (neither) 2532 7092 w 10 /LucidaTypewriter f (P) 2919 7092 w 10 /LucidaSansUnicode00 f (nor) 3035 7092 w 10 /LucidaTypewriter f (Q) 3243 7092 w 10 /LucidaSansUnicode00 f (is) 3359 7092 w (true.) 3483 7092 w (This) 3787 7092 w (is) 4036 7092 w (clearly) 4160 7092 w (unsatisfac\255) 4517 7092 w (tory,) 720 7212 w (and) 998 7212 w (we) 1233 7212 w (need) 1421 7212 w (another) 1713 7212 w (mechanism) 2142 7212 w (to) 2749 7212 w (express) 2902 7212 w (these) 3336 7212 w (important) 3653 7212 w (types) 4186 7212 w (of) 4500 7212 w (liveness) 4654 7212 w cleartomark showpage saveobj restore %%EndPage: 17 17 %%Page: 18 18 /saveobj save def mark 18 pagesetup 10 /LucidaSansUnicode00 f (\255 18 \255) 2752 480 w (properties.) 720 840 w 10 /LucidaSans-Demi f (The Connection with Temporal Logic) 720 1080 w 10 /LucidaSansUnicode00 f (A) 720 1236 w (general) 824 1236 w (way) 1220 1236 w (to) 1439 1236 w (express) 1572 1236 w (system) 1986 1236 w (properties) 2361 1236 w (of) 2894 1236 w (the) 3027 1236 w (type) 3218 1236 w (we) 3462 1236 w (have) 3631 1236 w (just) 3892 1236 w (discussed) 4108 1236 w (is) 4621 1236 w (to) 4737 1236 w (use) 4871 1236 w (linear) 720 1356 w (time) 1043 1356 w (temporal) 1309 1356 w (logic) 1795 1356 w (\(LTL\)) 2078 1356 w (formulae.) 2364 1356 w (Every) 2913 1356 w 9 /LucidaSansUnicode00 f (PROMELA) 3219 1356 w 10 /LucidaSansUnicode00 f (expression) 3683 1356 w (is) 4265 1356 w (automatically) 4395 1356 w (also) 720 1476 w (a) 951 1476 w (valid) 1042 1476 w (LTL) 1306 1476 w (formula.) 1511 1476 w (An) 1989 1476 w (LTL) 2156 1476 w (formula) 2361 1476 w (can) 2775 1476 w (also) 2979 1476 w (contain) 3211 1476 w (the) 3604 1476 w (unary) 3795 1476 w (temporal) 4103 1476 w (operators) 4574 1476 w 10 /LucidaSansUnicode25 f (\241) 720 1596 w 10 /LucidaSansUnicode00 f (\(pronounced) 834 1596 w (always\),) 1483 1596 w 10 /LucidaSansUnicode25 f (\312) 1901 1596 w 10 /LucidaSansUnicode00 f (\(pronounced) 2009 1596 w (eventually\),) 2657 1596 w (and) 3245 1596 w (two) 3458 1596 w (binary) 3666 1596 w (temporal) 4001 1596 w (operators) 4469 1596 w 10 /LucidaTypewriter f (U) 4968 1596 w 10 /LucidaSansUnicode00 f (\(pronounced weak until\) and) 720 1716 w 10 /Times-BoldItalic f (U) 2141 1716 w 10 /LucidaSansUnicode00 f (\(pronounced strong until\).) 2245 1716 w (Where) 720 1872 w (the) 1070 1872 w (value) 1274 1872 w (of) 1577 1872 w (a) 1724 1872 w 9 /LucidaSansUnicode00 f (PROMELA) 1828 1872 w 10 /LucidaSansUnicode00 f (expression) 2290 1872 w (without) 2871 1872 w (temporal) 3286 1872 w (operators) 3771 1872 w (can) 4287 1872 w (be) 4505 1872 w (defined) 4674 1872 w (uniquely) 720 1992 w (for) 1174 1992 w (individual) 1352 1992 w (system) 1864 1992 w (states,) 2243 1992 w (without) 2601 1992 w (further) 3005 1992 w (context,) 3380 1992 w (the) 3816 1992 w (truth) 4010 1992 w (value) 4288 1992 w (of) 4580 1992 w (an) 4716 1992 w (LTL) 4871 1992 w (formula) 720 2112 w (is) 1133 2112 w (defined) 1248 2112 w (for) 1649 2112 w (sequences) 1823 2112 w (of) 2366 2112 w (states:) 2499 2112 w (specifically,) 2853 2112 w (it) 3453 2112 w (is) 3555 2112 w (defined) 3671 2112 w (for) 4073 2112 w (the) 4248 2112 w (first) 4439 2112 w (state) 4670 2112 w (of) 4942 2112 w (a) 720 2232 w (given) 809 2232 w (infinite) 1104 2232 w (sequence) 1479 2232 w (of) 1970 2232 w (system) 2102 2232 w (states) 2476 2232 w (\(a) 2797 2232 w (trace\).) 2918 2232 w (Given,) 3288 2232 w (for) 3624 2232 w (instance,) 3796 2232 w (the) 4264 2232 w (sequence) 4452 2232 w (of) 4942 2232 w (system states:) 720 2352 w 9 /LucidaTypewriter f (s0;s1;s2;...) 1008 2522 w 10 /LucidaSansUnicode00 f (the) 720 2702 w (LTL) 911 2702 w (formula) 1116 2702 w 10 /LucidaTypewriter f (pUq) 1530 2702 w 10 /LucidaSansUnicode00 f (,) 1746 2702 w (with) 1814 2702 w 10 /LucidaTypewriter f (p) 2055 2702 w 10 /LucidaSansUnicode00 f (and) 2163 2702 w 10 /LucidaTypewriter f (q) 2379 2702 w 10 /LucidaSansUnicode00 f (standard) 2487 2702 w 9 /LucidaSansUnicode00 f (PROMELA) 2951 2702 w 10 /LucidaSansUnicode00 f (expressions,) 3401 2702 w (is) 4052 2702 w (true) 4169 2702 w (for) 4402 2702 w 10 /LucidaTypewriter f (s0) 4578 2702 w 10 /LucidaSansUnicode00 f (either) 4759 2702 w (if) 720 2822 w 10 /LucidaTypewriter f (q) 821 2822 w 10 /LucidaSansUnicode00 f (is) 928 2822 w (true) 1043 2822 w (in) 1274 2822 w 10 /LucidaTypewriter f (s0) 1400 2822 w 10 /LucidaSansUnicode00 f (,) 1544 2822 w (or) 1611 2822 w (if) 1748 2822 w 10 /LucidaTypewriter f (p) 1849 2822 w 10 /LucidaSansUnicode00 f (is) 1956 2822 w (true) 2071 2822 w (in) 2302 2822 w 10 /LucidaTypewriter f (s0) 2428 2822 w 10 /LucidaSansUnicode00 f (and) 2606 2822 w 10 /LucidaTypewriter f (pUq) 2820 2822 w 10 /LucidaSansUnicode00 f (holds) 3070 2822 w (for) 3370 2822 w (the) 3543 2822 w (remainder) 3732 2822 w (of) 4262 2822 w (the) 4394 2822 w (sequence) 4583 2822 w (after) 720 2942 w 10 /LucidaTypewriter f (s0) 978 2942 w 10 /LucidaSansUnicode00 f (.) 1122 2942 w (Informally,) 720 3098 w 10 /LucidaTypewriter f (pUq) 1272 3098 w 10 /LucidaSansUnicode00 f (says that) 1520 3098 w 10 /LucidaTypewriter f (p) 1984 3098 w 10 /LucidaSansUnicode00 f (is) 2088 3098 w (required) 2201 3098 w (to) 2645 3098 w (hold) 2776 3098 w (at) 3024 3098 w (least) 3149 3098 w (until) 3410 3098 w 10 /LucidaTypewriter f (q) 3662 3098 w 10 /LucidaSansUnicode00 f (becomes) 3767 3098 w (true.) 4231 3098 w (If,) 4524 3098 w (instead,) 4655 3098 w (we) 720 3218 w (would) 904 3218 w (write) 1247 3218 w 10 /LucidaTypewriter f (p) 1538 3218 w 10 /Times-BoldItalic f (U) 1610 3218 w 10 /LucidaTypewriter f (q) 1682 3218 w 10 /LucidaSansUnicode00 f (,) 1754 3218 w (then) 1837 3218 w (we) 2104 3218 w (also) 2287 3218 w (require) 2533 3218 w (that) 2931 3218 w (there) 3172 3218 w (exists) 3474 3218 w (at) 3809 3218 w (least) 3951 3218 w (one) 4229 3218 w (state) 4458 3218 w (in) 4744 3218 w (the) 4885 3218 w (sequence where) 720 3338 w 10 /LucidaTypewriter f (q) 1533 3338 w 10 /LucidaSansUnicode00 f (does indeed become true.) 1637 3338 w (The) 720 3494 w (temporal) 937 3494 w (operators) 1408 3494 w 10 /LucidaSansUnicode25 f (\241) 1910 3494 w 10 /LucidaSansUnicode00 f (and) 2026 3494 w 10 /LucidaSansUnicode25 f (\312) 2242 3494 w 10 /LucidaSansUnicode00 f (can) 2353 3494 w (be) 2557 3494 w (defined) 2712 3494 w (in) 3114 3494 w (terms) 3241 3494 w (of) 3555 3494 w (the) 3689 3494 w (strong) 3880 3494 w (until) 4230 3494 w (operator) 4485 3494 w 10 /Times-BoldItalic f (U) 4936 3494 w 10 /LucidaSansUnicode00 f (,) 5008 3494 w (as follows.) 720 3614 w 9 /LucidaSansUnicode25 f (\241) 1008 3784 w 9 /LucidaTypewriter f (p) 1145 3784 w (=) 1275 3784 w (!) 1405 3784 w 9 /LucidaSansUnicode25 f (\312) 1470 3784 w 9 /LucidaTypewriter f (!p) 1603 3784 w (=) 1798 3784 w (!\(true) 1928 3784 w 9 /Times-BoldItalic f (U) 2383 3784 w 9 /LucidaTypewriter f (!p\)) 2513 3784 w 10 /LucidaSansUnicode00 f (Informally,) 720 3964 w 10 /LucidaSansUnicode25 f (\241) 1274 3964 w 10 /LucidaTypewriter f (p) 1388 3964 w 10 /LucidaSansUnicode00 f (says) 1494 3964 w (that) 1737 3964 w (property) 1963 3964 w 10 /LucidaTypewriter f (p) 2412 3964 w 10 /LucidaSansUnicode00 f (must) 2519 3964 w (hold) 2797 3964 w (in) 3047 3964 w (all) 3173 3964 w (states) 3321 3964 w (of) 3643 3964 w (a) 3776 3964 w (trace,) 3866 3964 w (and) 4173 3964 w 10 /LucidaSansUnicode25 f (\312) 4388 3964 w 10 /LucidaTypewriter f (p) 4498 3964 w 10 /LucidaSansUnicode00 f (says) 4605 3964 w (that) 4849 3964 w 10 /LucidaTypewriter f (p) 720 4084 w 10 /LucidaSansUnicode00 f (holds in at least one state of the trace.) 824 4084 w (To) 720 4240 w (express) 884 4240 w (our) 1303 4240 w (original) 1507 4240 w (example) 1916 4240 w (requirement:) 2370 4240 w 10 /LucidaSansUnicode20 f (\030\030) 3039 4240 w 10 /LucidaSansUnicode00 f (every) 3103 4240 w (system) 3401 4240 w (state) 3782 4240 w (in) 4059 4240 w (which) 4191 4240 w (property) 4513 4240 w 10 /LucidaTypewriter f (P) 4968 4240 w 10 /LucidaSansUnicode00 f (is) 720 4360 w (true) 838 4360 w (eventually) 1072 4360 w (leads) 1600 4360 w (to) 1892 4360 w (a) 2028 4360 w (system) 2121 4360 w (state) 2499 4360 w (in) 2773 4360 w (which) 2902 4360 w (property) 3221 4360 w 10 /LucidaTypewriter f (Q) 3673 4360 w 10 /LucidaSansUnicode00 f (is) 3783 4360 w (true,) 3901 4360 w 10 /LucidaSansUnicode20 f (\031\031) 4129 4360 w 10 /LucidaSansUnicode00 f (we) 4231 4360 w (can) 4402 4360 w (write) 4608 4360 w (the) 4885 4360 w (LTL formula:) 720 4480 w 9 /LucidaSansUnicode25 f (\241) 1008 4650 w 9 /LucidaTypewriter f (\(P) 1145 4650 w (->) 1340 4650 w 9 /LucidaSansUnicode25 f (\312) 1535 4650 w 9 /LucidaTypewriter f (Q\)) 1668 4650 w 10 /LucidaSansUnicode00 f (where the logical implication symbol) 720 4830 w 10 /LucidaTypewriter f (->) 2530 4830 w 10 /LucidaSansUnicode00 f (is defined in the usual way as) 2706 4830 w 9 /LucidaTypewriter f (P) 1008 5000 w (=>) 1138 5000 w (Q) 1333 5000 w (means) 1463 5000 w (!P) 1853 5000 w (||) 2048 5000 w (Q) 2243 5000 w 10 /LucidaSans-Demi f (Mapping LTL Formulae onto Never Claims) 720 5300 w 9 /LucidaSansUnicode00 f (PROMELA) 720 5456 w 10 /LucidaSansUnicode00 f (does not include syntax for specifying LTL formulae) 1165 5456 w (directly,) 3717 5456 w (but) 4140 5456 w (it) 4335 5456 w (relies) 4434 5456 w (on) 4729 5456 w (the) 4885 5456 w (fact) 720 5576 w (that) 940 5576 w (every) 1171 5576 w (such) 1468 5576 w (formula) 1734 5576 w (can) 2152 5576 w (be) 2360 5576 w (translated) 2519 5576 w (into) 3045 5576 w (a) 3274 5576 w (special) 3369 5576 w (type) 3742 5576 w (of) 3989 5576 w (automaton,) 4126 5576 w (known) 4720 5576 w (as) 720 5696 w (a) 879 5696 w (B\374chi) 988 5696 w (automaton.) 1304 5696 w (In) 1945 5696 w (the) 2090 5696 w (syntax) 2299 5696 w (of) 2671 5696 w 9 /LucidaSansUnicode00 f (PROMELA) 2823 5696 w 10 /LucidaSansUnicode00 f (this) 3290 5696 w (automaton) 3523 5696 w (is) 4100 5696 w (called) 4234 5696 w (a) 4571 5696 w 10 /LucidaTypewriter f (never) 4680 5696 w 10 /LucidaSansUnicode00 f (claim.) 720 5816 w (If) 1080 5816 w (you) 1185 5816 w (don) 1399 5816 w 10 /LucidaSansUnicode20 f (\031) 1585 5816 w 10 /LucidaSansUnicode00 f (t) 1617 5816 w (care) 1693 5816 w (too) 1935 5816 w (much) 2133 5816 w (about) 2440 5816 w (the) 2757 5816 w (details) 2951 5816 w (of) 3310 5816 w 10 /LucidaTypewriter f (never) 3447 5816 w 10 /LucidaSansUnicode00 f (claims,) 3846 5816 w (you) 4225 5816 w (can) 4439 5816 w (skip) 4646 5816 w (the) 4885 5816 w (remainder) 720 5936 w (of) 1260 5936 w (this) 1402 5936 w (section) 1625 5936 w (and) 2016 5936 w (simple) 2240 5936 w (remember) 2605 5936 w (that) 3148 5936 w 9 /LucidaSansUnicode00 f (SPIN) 3383 5936 w 10 /LucidaSansUnicode00 f (can) 3619 5936 w (convert) 3831 5936 w (any) 4235 5936 w (LTL) 4448 5936 w (formula) 4662 5936 w (automatically into the proper never claim syntax with the command:) 720 6056 w 9 /LucidaTypewriter f (spin) 1008 6226 w (-f) 1333 6226 w ("...formula...") 1528 6226 w 10 /LucidaSansUnicode00 f (Here are the details.) 720 6406 w (The syntax of a never claim is:) 1766 6406 w 9 /LucidaTypewriter f (never) 1008 6576 w ({) 1398 6576 w (...) 1528 6686 w (}) 1008 6796 w 10 /LucidaSansUnicode00 f (where) 720 6976 w (the) 1051 6976 w (dots) 1245 6976 w (can) 1496 6976 w (contain) 1704 6976 w (any) 2101 6976 w 9 /LucidaSansUnicode00 f (PROMELA) 2310 6976 w 10 /LucidaSansUnicode00 f (fragment,) 2763 6976 w (including) 3278 6976 w (arbitrary) 3767 6976 w (repetition,) 4221 6976 w (selec\255) 4764 6976 w (tion, unless constructs, jumps, etc.) 720 7096 w (There) 720 7252 w (is) 1038 7252 w (an) 1159 7252 w (important) 1317 7252 w (difference) 1836 7252 w (in) 2365 7252 w (semantics) 2497 7252 w (between) 3023 7252 w (a) 3471 7252 w 10 /LucidaTypewriter f (proctype) 3567 7252 w 10 /LucidaSansUnicode00 f (declaration) 4184 7252 w (and) 4764 7252 w (a) 4985 7252 w cleartomark showpage saveobj restore %%EndPage: 18 18 %%Page: 19 19 /saveobj save def mark 19 pagesetup 10 /LucidaSansUnicode00 f (\255 19 \255) 2752 480 w 10 /LucidaTypewriter f (never) 720 840 w 10 /LucidaSansUnicode00 f (claim.) 1128 840 w (Every) 1497 840 w (statement) 1799 840 w (inside) 2330 840 w (a) 2667 840 w 10 /LucidaTypewriter f (never) 2769 840 w 10 /LucidaSansUnicode00 f (claim) 3176 840 w (is) 3480 840 w (interpreted) 3607 840 w (as) 4195 840 w (a) 4348 840 w (proposition,) 4450 840 w (i.e.,) 720 960 w (a) 943 960 w (condition.) 1040 960 w (A) 1602 960 w 10 /LucidaTypewriter f (never) 1714 960 w 10 /LucidaSansUnicode00 f (claim) 2117 960 w (should) 2417 960 w (therefore) 2788 960 w (only) 3278 960 w (contain) 3525 960 w (expressions) 3925 960 w (and) 4550 960 w (never) 4773 960 w (statements) 720 1080 w (that) 1294 1080 w (can) 1524 1080 w (have) 1731 1080 w (side-effects) 1995 1080 w (\(assignments,) 2615 1080 w (sends) 3327 1080 w (or) 3648 1080 w (receives,) 3788 1080 w (run-statements,) 4250 1080 w (etc.\)) 720 1200 w 10 /LucidaTypewriter f (Never) 720 1356 w 10 /LucidaSansUnicode00 f (claims) 1117 1356 w (are) 1463 1356 w (used) 1653 1356 w (to) 1923 1356 w (express) 2059 1356 w (behaviors) 2476 1356 w (that) 2984 1356 w (are) 3213 1356 w (considered) 3403 1356 w (undesirable) 3974 1356 w (or) 4579 1356 w (illegal.) 4719 1356 w (We) 720 1476 w (say) 911 1476 w (that) 1118 1476 w (a) 1358 1476 w 10 /LucidaTypewriter f (never) 1462 1476 w 10 /LucidaSansUnicode00 f (claim) 1871 1476 w (is) 2177 1476 w 10 /LucidaSansUnicode20 f (\030) 2306 1476 w 10 /LucidaSansUnicode00 f (matched) 2338 1476 w 10 /LucidaSansUnicode20 f (\031) 2755 1476 w 10 /LucidaSansUnicode00 f (if) 2836 1476 w (the) 2951 1476 w (undesirable) 3155 1476 w (behavior) 3771 1476 w (can) 4239 1476 w (be) 4455 1476 w (realized,) 4622 1476 w (contrary) 720 1596 w (to) 1169 1596 w (the) 1316 1596 w (claim,) 1520 1596 w (and) 1858 1596 w (thus) 2087 1596 w (the) 2348 1596 w (correctness) 2552 1596 w (requirement) 3159 1596 w (violated.) 3804 1596 w (The) 4299 1596 w (claims) 4530 1596 w (are) 4888 1596 w (evaluated) 720 1716 w (over) 1229 1716 w (system) 1483 1716 w (executions,) 1867 1716 w (that) 2469 1716 w (is,) 2704 1716 w (the) 2860 1716 w (propositions) 3059 1716 w (that) 3712 1716 w (are) 3947 1716 w (listed) 4143 1716 w (in) 4451 1716 w (the) 4585 1716 w (claim) 4783 1716 w (are) 720 1836 w (evaluated) 914 1836 w (over) 1422 1836 w (the) 1675 1836 w (traces) 1873 1836 w (from) 2207 1836 w (the) 2482 1836 w (remainder) 2680 1836 w (of) 3219 1836 w (the) 3360 1836 w (system.) 3558 1836 w (The) 4005 1836 w (claim,) 4229 1836 w (therefore,) 4561 1836 w (should) 720 1956 w (not) 1083 1956 w (alter) 1278 1956 w (that) 1531 1956 w (behavior:) 1757 1956 w (it) 2243 1956 w (merely) 2344 1956 w (monitors) 2706 1956 w (it.) 3176 1956 w (Every) 3341 1956 w (time) 3631 1956 w (that) 3880 1956 w (the) 4105 1956 w (system) 4294 1956 w (reaches) 4668 1956 w (a) 720 2076 w (new) 827 2076 w (state,) 1074 2076 w (by) 1394 2076 w (asynchronously) 1561 2076 w (executing) 2365 2076 w (statements) 2893 2076 w (from) 3480 2076 w (the) 3764 2076 w (model,) 3971 2076 w (the) 4358 2076 w (claim) 4566 2076 w (will) 4876 2076 w (evaluate) 720 2196 w (the) 1172 2196 w (appropriate) 1377 2196 w (propositions) 1991 2196 w (to) 2650 2196 w (determine) 2797 2196 w (if) 3339 2196 w (a) 3454 2196 w (counter-example) 3558 2196 w (can) 4448 2196 w (be) 4665 2196 w (con\255) 4833 2196 w (structed to the implicit LTL formula that is specified.) 720 2316 w (Since) 720 2472 w (LTL) 1019 2472 w (formulae) 1235 2472 w (are) 1716 2472 w (only) 1915 2472 w (defined) 2166 2472 w (for) 2579 2472 w (infinite) 2766 2472 w (executions,) 3155 2472 w (the) 3761 2472 w (behavior) 3964 2472 w (of) 4431 2472 w (a) 4577 2472 w 10 /LucidaTypewriter f (never) 4680 2472 w 10 /LucidaSansUnicode00 f (claim) 720 2592 w (can) 1014 2592 w (only) 1219 2592 w (be) 1460 2592 w (matched) 1616 2592 w (by) 2070 2592 w (an) 2221 2592 w (infinite) 2374 2592 w (system) 2751 2592 w (execution.) 3127 2592 w (This) 3702 2592 w (by) 3943 2592 w (itself) 4094 2592 w (would) 4369 2592 w (restrict) 4697 2592 w (us) 720 2712 w (to) 869 2712 w (the) 1003 2712 w (use) 1194 2712 w (of) 1399 2712 w (progress) 1533 2712 w (labels) 1995 2712 w (and) 2314 2712 w (accept) 2531 2712 w (labels) 2881 2712 w (as) 3201 2712 w (the) 3344 2712 w (only) 3536 2712 w (means) 3777 2712 w (we) 4131 2712 w (have) 4301 2712 w (discussed) 4563 2712 w (so) 720 2832 w (far) 878 2832 w (for) 1057 2832 w (expressing) 1242 2832 w (properties) 1820 2832 w (of) 2364 2832 w (infinite) 2508 2832 w (behaviors.) 2895 2832 w (To) 3475 2832 w (conform) 3645 2832 w (to) 4097 2832 w (standard) 4241 2832 w (omega) 4713 2832 w (automata) 720 2952 w (theory,) 1250 2952 w (the) 1666 2952 w (behaviors) 1896 2952 w (of) 2441 2952 w 10 /LucidaTypewriter f (never) 2614 2952 w 10 /LucidaSansUnicode00 f (claims) 3049 2952 w (are) 3432 2952 w (expressed) 3659 2952 w (exclusively) 4232 2952 w (with) 4835 2952 w 10 /LucidaTypewriter f (accept) 720 3072 w 10 /LucidaSansUnicode00 f (labels) 1189 3072 w (\(never) 1509 3072 w (with) 1846 3072 w 10 /LucidaTypewriter f (progress) 2088 3072 w 10 /LucidaSansUnicode00 f (labels\).) 2701 3072 w (To) 3118 3072 w (match) 3279 3072 w (a) 3614 3072 w (claim,) 3706 3072 w (therefore,) 4031 3072 w (an) 4546 3072 w (infinite) 4699 3072 w (sequence) 720 3192 w (of) 1235 3192 w (true) 1391 3192 w (propositions) 1645 3192 w (must) 2312 3192 w (exist,) 2613 3192 w (at) 2937 3192 w (least) 3088 3192 w (one) 3375 3192 w (of) 3613 3192 w (which) 3770 3192 w (is) 4110 3192 w (labeled) 4249 3192 w (with) 4659 3192 w (an) 4923 3192 w 10 /LucidaTypewriter f (accept) 720 3312 w 10 /LucidaSansUnicode00 f (label \(inside the never claim\).) 1184 3312 w (Since) 720 3468 w 9 /LucidaSansUnicode00 f (PROMELA) 1004 3468 w 10 /LucidaSansUnicode00 f (models) 1450 3468 w (can) 1836 3468 w (also) 2037 3468 w (express) 2266 3468 w (terminating) 2678 3468 w (system) 3274 3468 w (behaviors,) 3647 3468 w (we) 4182 3468 w (have) 4348 3468 w (to) 4606 3468 w (define) 4737 3468 w (the) 720 3588 w (semantics) 927 3588 w (of) 1464 3588 w (the) 1614 3588 w 10 /LucidaTypewriter f (never) 1821 3588 w 10 /LucidaSansUnicode00 f (claims) 2233 3588 w (also) 2593 3588 w (for) 2841 3588 w (those) 3032 3588 w (behaviors.) 3351 3588 w (To) 3937 3588 w (facilitate) 4113 3588 w (this,) 4580 3588 w (it) 4843 3588 w (is) 4960 3588 w (defined) 720 3708 w (that) 1121 3708 w (a) 1347 3708 w 10 /LucidaTypewriter f (never) 1437 3708 w 10 /LucidaSansUnicode00 f (claim) 1832 3708 w (can) 2124 3708 w (also) 2327 3708 w (be) 2558 3708 w (matched) 2713 3708 w (when) 3166 3708 w (it) 3459 3708 w (reaches) 3561 3708 w (its) 3969 3708 w (closing) 4122 3708 w (curly) 4503 3708 w (brace) 4774 3708 w (\(i.e.,) 720 3828 w (when) 971 3828 w (it) 1265 3828 w (appears) 1368 3828 w (to) 1789 3828 w (terminate\).) 1924 3828 w (This) 2524 3828 w (semantics) 2766 3828 w (is) 3288 3828 w (based) 3405 3828 w (on) 3730 3828 w (what) 3890 3828 w (is) 4157 3828 w (usually) 4273 3828 w (referred) 4649 3828 w (to) 720 3948 w (as) 853 3948 w (a) 994 3948 w 10 /LucidaSansUnicode20 f (\030) 1085 3948 w 10 /LucidaSansUnicode00 f (stuttering) 1117 3948 w (semantics.) 1627 3948 w 10 /LucidaSansUnicode20 f (\031) 2144 3948 w 10 /LucidaSansUnicode00 f (With) 2244 3948 w (stuttering) 2494 3948 w (semantics,) 3004 3948 w (any) 3557 3948 w (terminating) 3762 3948 w (execution) 4361 3948 w (can) 4872 3948 w (be) 720 4068 w (extended) 888 4068 w (into) 1391 4068 w (an) 1629 4068 w (equivalent) 1795 4068 w (infinite) 2345 4068 w (execution) 2735 4068 w (\(for) 3259 4068 w (the) 3479 4068 w (purposes) 3682 4068 w (of) 4178 4068 w (evaluating) 4324 4068 w (LTL) 4871 4068 w (properties\)) 720 4188 w (by) 1287 4188 w (repeating) 1438 4188 w (\(stuttering\)) 1935 4188 w (the) 2511 4188 w (final) 2703 4188 w (state) 2952 4188 w (infinitely) 3225 4188 w (often.) 3684 4188 w (As) 4038 4188 w (a) 4195 4188 w (syntactical) 4287 4188 w (con\255) 4833 4188 w (venience,) 720 4308 w (the) 1220 4308 w (final) 1419 4308 w (state) 1675 4308 w (of) 1955 4308 w (a) 2097 4308 w 10 /LucidaTypewriter f (never) 2196 4308 w 10 /LucidaSansUnicode00 f (claim) 2600 4308 w (is) 2901 4308 w (defined) 3025 4308 w (to) 3435 4308 w (be) 3576 4308 w (accepting,) 3738 4308 w (i.e.,) 4279 4308 w (it) 4503 4308 w (could) 4612 4308 w (be) 4921 4308 w (replaced with the explicit repetition construct:) 720 4428 w 9 /LucidaTypewriter f (accept:) 1008 4598 w (do) 1528 4598 w (::) 1723 4598 w (skip) 1918 4598 w (od) 2243 4598 w 10 /LucidaSansUnicode00 f (Every) 720 4778 w (process) 1016 4778 w (behavior,) 1431 4778 w (similarly,) 1923 4778 w (is) 2404 4778 w (\(for) 2525 4778 w (the) 2738 4778 w (purposes) 2934 4778 w (of) 3423 4778 w (evaluating) 3562 4778 w (the) 4102 4778 w 10 /LucidaTypewriter f (never) 4298 4778 w 10 /LucidaSansUnicode00 f (claims\)) 4699 4778 w (thought to be extended with a dummy self-loop on all final states:) 720 4898 w 9 /LucidaTypewriter f (do) 1528 5068 w (::) 1723 5068 w (skip) 1918 5068 w (od) 2243 5068 w 10 /LucidaSansUnicode00 f (\(Note the) 720 5248 w 10 /LucidaTypewriter f (accept) 1200 5248 w 10 /LucidaSansUnicode00 f (labels only occur in the) 1664 5248 w 10 /LucidaTypewriter f (never) 2823 5248 w 10 /LucidaSansUnicode00 f (claim, not in the system.\)) 3215 5248 w 10 /LucidaSans-Demi f (The Semantics of a Never Claim) 720 5488 w 10 /LucidaTypewriter f (Never) 720 5644 w 10 /LucidaSansUnicode00 f (claims) 1131 5644 w (are) 1490 5644 w (probably) 1693 5644 w (the) 2171 5644 w (hardest) 2377 5644 w (part) 2793 5644 w (of) 3040 5644 w (the) 3190 5644 w (language) 3397 5644 w (to) 3892 5644 w (understand,) 4042 5644 w (so) 4678 5644 w (it) 4842 5644 w (is) 4960 5644 w (worth) 720 5764 w (spending) 1039 5764 w (a) 1528 5764 w (few) 1623 5764 w (extra) 1833 5764 w (words) 2123 5764 w (on) 2456 5764 w (them.) 2619 5764 w (On) 2971 5764 w (an) 3151 5764 w (initial) 3308 5764 w (reading,) 3618 5764 w (feel) 4058 5764 w (free) 4276 5764 w (to) 4506 5764 w (skip) 4644 5764 w (the) 4885 5764 w (remainder of this section.) 720 5884 w (The) 720 6040 w (difference) 940 6040 w (between) 1467 6040 w (a) 1913 6040 w 10 /LucidaTypewriter f (never) 2007 6040 w 10 /LucidaSansUnicode00 f (claim) 2406 6040 w (and) 2702 6040 w (the) 2921 6040 w (remainder) 3115 6040 w (of) 3650 6040 w (a) 3787 6040 w 9 /LucidaSansUnicode00 f (PROMELA) 3881 6040 w 10 /LucidaSansUnicode00 f (system) 4333 6040 w (can) 4713 6040 w (be) 4921 6040 w (explained) 720 6160 w (as) 1227 6160 w (follows.) 1366 6160 w (A) 1808 6160 w 9 /LucidaSansUnicode00 f (PROMELA) 1910 6160 w 10 /LucidaSansUnicode00 f (model) 2356 6160 w (defines) 2691 6160 w (an asynchronous interleaving product of) 3078 6160 w (the) 720 6280 w (behaviors) 927 6280 w (of) 1449 6280 w (individual) 1599 6280 w (processes.) 2124 6280 w (Given) 2721 6280 w (an) 3044 6280 w (arbitrary) 3214 6280 w (system) 3681 6280 w (state,) 4074 6280 w (its) 4395 6280 w (successor) 4565 6280 w (states) 720 6400 w (are) 1051 6400 w (conceptually) 1247 6400 w (obtained) 1899 6400 w (in) 2369 6400 w (two) 2504 6400 w (steps.) 2723 6400 w (In) 3089 6400 w (a) 3224 6400 w (first) 3323 6400 w (step,) 3562 6400 w (all) 3845 6400 w (the) 4002 6400 w (executable) 4201 6400 w (state\255) 4771 6400 w (ments) 720 6520 w (in) 1065 6520 w (the) 1202 6520 w (individual) 1403 6520 w (processes) 1922 6520 w (are) 2449 6520 w (identified.) 2647 6520 w (In) 3219 6520 w (a) 3357 6520 w (second) 3459 6520 w (step,) 3850 6520 w (each) 4136 6520 w (one) 4407 6520 w (of) 4633 6520 w (these) 4778 6520 w (statements) 720 6640 w (is) 1311 6640 w (executed,) 1447 6640 w (each) 1976 6640 w (one) 2255 6640 w (producing) 2489 6640 w (one) 3038 6640 w (potential) 3272 6640 w (successor) 3756 6640 w (for) 4286 6640 w (the) 4480 6640 w (current) 4690 6640 w (state.) 720 6760 w (The) 1056 6760 w (complete) 1273 6760 w (system) 1755 6760 w (behavior) 2132 6760 w (is) 2588 6760 w (thus) 2705 6760 w (defined) 2954 6760 w (recursively) 3357 6760 w (and) 3914 6760 w (represents) 4131 6760 w (all) 4682 6760 w (pos\255) 4832 6760 w (sible) 720 6880 w (interleavings) 991 6880 w (of) 1654 6880 w (the) 1794 6880 w (individual) 1991 6880 w (process) 2506 6880 w (behaviors.) 2922 6880 w (It) 3498 6880 w (is) 3606 6880 w (this) 3728 6880 w (asynchronous) 3949 6880 w (product) 4662 6880 w (machine that we call the ) 720 7000 w 10 /LucidaSansUnicode20 f (\030) 1931 7000 w 10 /LucidaSansUnicode00 f (global system behavior) 1963 7000 w 10 /LucidaSansUnicode20 f (\031) 3085 7000 w 10 /LucidaSansUnicode00 f (.) 3117 7000 w (The) 720 7156 w (addition) 953 7156 w (of) 1404 7156 w (a) 1554 7156 w 10 /LucidaTypewriter f (never) 1661 7156 w 10 /LucidaSansUnicode00 f (claim) 2073 7156 w (defines) 2382 7156 w (a) 2788 7156 w 10 /LucidaSans-Italic f (synchronous) 2895 7156 w 10 /LucidaSansUnicode00 f (product) 3560 7156 w (of) 3990 7156 w (the) 4140 7156 w (global) 4348 7156 w (system) 4700 7156 w (behavior) 720 7276 w (with) 1187 7276 w (the) 1440 7276 w (behavior) 1643 7276 w (expressed) 2110 7276 w (in) 2656 7276 w (the) 2795 7276 w (claim.) 2998 7276 w (This) 3366 7276 w (synchronous) 3618 7276 w (product) 4281 7276 w (can) 4706 7276 w (be) 4921 7276 w cleartomark showpage saveobj restore %%EndPage: 19 19 %%Page: 20 20 /saveobj save def mark 20 pagesetup 10 /LucidaSansUnicode00 f (\255 20 \255) 2752 480 w (thought) 720 840 w (of) 1150 840 w (as) 1295 840 w (the) 1448 840 w (construction) 1650 840 w (of) 2302 840 w (a) 2447 840 w (new) 2549 840 w (global) 2791 840 w (state) 3137 840 w (machine,) 3420 840 w (in) 3907 840 w (which) 4045 840 w (every) 4373 840 w (state) 4677 840 w (is) 4960 840 w (defined) 720 960 w (as) 1122 960 w (a) 1264 960 w (pair) 1355 960 w 10 /LucidaTypewriter f (\(s,n\)) 1579 960 w 10 /LucidaSansUnicode00 f (with) 1975 960 w 10 /LucidaTypewriter f (s) 2216 960 w 10 /LucidaSansUnicode00 f (a) 2323 960 w (state) 2413 960 w (from) 2684 960 w (the) 2951 960 w (global) 3141 960 w (system) 3475 960 w (\(the) 3850 960 w (asynchronous) 4073 960 w (prod\255) 4779 960 w (uct) 720 1080 w (of) 924 1080 w (processes\),) 1076 1080 w (and) 1676 1080 w 10 /LucidaTypewriter f (n) 1910 1080 w 10 /LucidaSansUnicode00 f (a) 2036 1080 w (state) 2145 1080 w (from) 2435 1080 w (the) 2721 1080 w (claim.) 2930 1080 w (Every) 3306 1080 w (transition) 3616 1080 w (in) 4135 1080 w (the) 4281 1080 w (new) 4491 1080 w (global) 4741 1080 w (machine) 720 1200 w (is) 1169 1200 w (similarly) 1290 1200 w (defined) 1739 1200 w (by) 2146 1200 w (a) 2302 1200 w (pair) 2398 1200 w (of) 2627 1200 w (transitions,) 2766 1200 w (with) 3354 1200 w (the) 3600 1200 w (first) 3796 1200 w (element) 4032 1200 w (a) 4461 1200 w (statement) 4556 1200 w (from) 720 1320 w (the) 997 1320 w (system,) 1197 1320 w (and) 1614 1320 w (the) 1839 1320 w (second) 2039 1320 w (a) 2428 1320 w (proposition) 2528 1320 w (from) 3131 1320 w (the) 3408 1320 w (claim.) 3608 1320 w (In) 3974 1320 w (other) 4110 1320 w (words,) 4412 1320 w (every) 4783 1320 w (transition) 720 1440 w (in) 1220 1440 w (this) 1347 1440 w (final) 1562 1440 w (synchronous) 1810 1440 w (product) 2462 1440 w (is) 2876 1440 w (defined) 2992 1440 w (as) 3393 1440 w (a) 3534 1440 w (joint) 3624 1440 w (transition) 3878 1440 w (of) 4377 1440 w (the) 4510 1440 w (system) 4700 1440 w (and) 720 1560 w (the) 936 1560 w (claim.) 1127 1560 w (Of) 1484 1560 w (course,) 1635 1560 w (that) 2025 1560 w (transition) 2252 1560 w (can) 2752 1560 w (only) 2956 1560 w (occur) 3196 1560 w (if) 3498 1560 w (the) 3601 1560 w (proposition) 3793 1560 w (from) 4388 1560 w (the) 4657 1560 w (sec\255) 4849 1560 w (ond) 720 1680 w (half) 949 1680 w (of) 1175 1680 w (the) 1316 1680 w (transition) 1514 1680 w (pair) 2021 1680 w (evaluates) 2252 1680 w (to) 2748 1680 w (true) 2889 1680 w (in) 3128 1680 w (the) 3262 1680 w (current) 3460 1680 w (state) 3853 1680 w (of) 4132 1680 w (the) 4273 1680 w (system) 4470 1680 w (\(the) 4852 1680 w (first half of the state pair\).) 720 1800 w 10 /LucidaSans-Demi f (Examples) 720 2040 w 10 /LucidaSansUnicode00 f (To) 720 2196 w (manually) 894 2196 w (translate) 1381 2196 w (an) 1854 2196 w (LTL) 2021 2196 w (formula) 2241 2196 w (into) 2670 2196 w (a) 2910 2196 w 10 /LucidaTypewriter f (never) 3016 2196 w 10 /LucidaSansUnicode00 f (claim) 3427 2196 w (\(e.g.) 3735 2196 w (foregoing) 4001 2196 w (the) 4523 2196 w (builtin) 4729 2196 w (translation) 720 2316 w (that) 1273 2316 w 9 /LucidaSansUnicode00 f (SPIN) 1498 2316 w 10 /LucidaSansUnicode00 f (offers\),) 1724 2316 w (we) 2106 2316 w (must) 2273 2316 w (carefully) 2550 2316 w (consider) 2996 2316 w (whether) 3443 2316 w (the) 3867 2316 w (formula) 4055 2316 w (expresses) 4466 2316 w (a) 4985 2316 w (positive) 720 2436 w (or) 1136 2436 w (a) 1277 2436 w (negative) 1371 2436 w (property.) 1819 2436 w (A) 2336 2436 w (positive) 2444 2436 w (property) 2861 2436 w (expresses) 3314 2436 w (a) 3839 2436 w (good) 3933 2436 w (behavior) 4219 2436 w (that) 4677 2436 w (we) 4907 2436 w (would) 720 2556 w (like) 1056 2556 w (our) 1272 2556 w (system) 1480 2556 w (to) 1864 2556 w (have.) 2006 2556 w (A) 2339 2556 w (negative) 2451 2556 w (property) 2903 2556 w (expresses) 3360 2556 w (a) 3889 2556 w (bad) 3987 2556 w (behavior) 4211 2556 w (that) 4673 2556 w (we) 4907 2556 w (claim) 720 2676 w (the) 1015 2676 w (system) 1208 2676 w (does) 1586 2676 w (not) 1855 2676 w (have.) 2054 2676 w (A) 2382 2676 w 10 /LucidaTypewriter f (never) 2490 2676 w 10 /LucidaSansUnicode00 f (claim) 2889 2676 w (can) 3185 2676 w (express) 3392 2676 w (only) 3810 2676 w (negative) 4053 2676 w (claims,) 4501 2676 w (not) 4880 2676 w (positive) 720 2796 w (ones.) 1131 2796 w (Fortunately,) 1458 2796 w (the) 2069 2796 w (two) 2257 2796 w (are) 2465 2796 w (exchangeable:) 2650 2796 w (if) 3415 2796 w (we want to express that a good) 3514 2796 w (behavior) 720 2916 w (is) 1175 2916 w (unavoidable,) 1292 2916 w (we) 1948 2916 w (can) 2118 2916 w (formalize) 2323 2916 w (all) 2818 2916 w (ways) 2968 2916 w (in) 3240 2916 w (which) 3368 2916 w (the) 3686 2916 w (good) 3878 2916 w (behavior) 4162 2916 w (could) 4618 2916 w (be) 4921 2916 w (violated, and express that in the) 720 3036 w 10 /LucidaTypewriter f (never) 2322 3036 w 10 /LucidaSansUnicode00 f (claim.) 2714 3036 w (Suppose) 720 3192 w (that) 1165 3192 w (the) 1391 3192 w (LTL) 1581 3192 w (formula) 1785 3192 w 10 /LucidaSansUnicode25 f (\312\241) 2199 3192 w 10 /LucidaTypewriter f (p) 2390 3192 w 10 /LucidaSansUnicode00 f (,) 2462 3192 w (with) 2530 3192 w 10 /LucidaTypewriter f (p) 2771 3192 w 10 /LucidaSansUnicode00 f (a) 2879 3192 w 9 /LucidaSansUnicode00 f (PROMELA) 2970 3192 w 10 /LucidaSansUnicode00 f (expression,) 3419 3192 w (expresses) 4018 3192 w (a) 4540 3192 w (negative) 4631 3192 w (claim) 720 3312 w (\(i.e.,) 1011 3312 w (it) 1259 3312 w (is) 1359 3312 w (considered) 1473 3312 w (a) 2040 3312 w (correctness) 2129 3312 w (violation) 2721 3312 w (if) 3170 3312 w (there) 3270 3312 w (exists) 3555 3312 w (any) 3873 3312 w (execution) 4075 3312 w (sequence) 4583 3312 w (in) 720 3432 w (which) 852 3432 w 10 /LucidaTypewriter f (p) 1174 3432 w 10 /LucidaSansUnicode00 f (can) 1287 3432 w (eventually) 1496 3432 w (remain) 2027 3432 w (true) 2404 3432 w (infinitely) 2641 3432 w (long\).) 3104 3432 w (This) 3456 3432 w (can) 3702 3432 w (be) 3911 3432 w (written) 4071 3432 w (in) 4451 3432 w (a) 4583 3432 w 10 /LucidaTypewriter f (never) 4680 3432 w 10 /LucidaSansUnicode00 f (claim as:) 720 3552 w 9 /LucidaTypewriter f (never) 1008 3722 w ({) 1398 3722 w (/*) 1528 3722 w (<>[]p) 1723 3722 w (*/) 2113 3722 w (do) 1528 3832 w (::) 1528 3942 w (skip) 1723 3942 w (/*) 2048 3942 w (after) 2243 3942 w (an) 2633 3942 w (arbitrarily) 2828 3942 w (long) 3608 3942 w (prefix) 3933 3942 w (*/) 4388 3942 w (::) 1528 4052 w (p) 1723 4052 w (->) 1853 4052 w (break) 2048 4052 w (/*) 2568 4052 w (p) 2763 4052 w (becomes) 2893 4052 w (true) 3413 4052 w (*/) 3738 4052 w (od;) 1528 4162 w (accept:) 1008 4272 w (do) 1528 4272 w (::) 1528 4382 w (p) 1723 4382 w (/*) 2048 4382 w (and) 2243 4382 w (remains) 2503 4382 w (true) 3023 4382 w (forever) 3348 4382 w (after) 3868 4382 w (*/) 4258 4382 w (od) 1528 4492 w (}) 1008 4602 w 10 /LucidaSansUnicode00 f (Note) 720 4782 w (that) 982 4782 w (in) 1207 4782 w (this) 1332 4782 w (case) 1545 4782 w (the) 1792 4782 w (claim) 1981 4782 w (does) 2273 4782 w (not) 2539 4782 w (terminate,) 2734 4782 w (and) 3267 4782 w (also) 3482 4782 w (does) 3713 4782 w (not) 3979 4782 w (necessarily) 4174 4782 w (match) 4742 4782 w (all) 720 4902 w (system) 873 4902 w (behaviors.) 1253 4902 w (It) 1826 4902 w (is) 1931 4902 w (sufficient) 2050 4902 w (if) 2540 4902 w (it) 2645 4902 w (precisely) 2750 4902 w (captures) 3217 4902 w (all) 3672 4902 w (violations) 3824 4902 w (of) 4329 4902 w (our) 4466 4902 w (correct\255) 4669 4902 w (ness requirement, and no more.) 720 5022 w (If) 720 5178 w (the) 826 5178 w (LTL) 1021 5178 w (formula) 1230 5178 w (expressed) 1648 5178 w (a) 2186 5178 w (positive) 2281 5178 w (property,) 2699 5178 w (we) 3185 5178 w (first) 3358 5178 w (have) 3593 5178 w (to) 3858 5178 w (invert) 3997 5178 w (it) 4315 5178 w (to) 4422 5178 w (the) 4561 5178 w (corre\255) 4757 5178 w (sponding) 720 5298 w (negative) 1219 5298 w (property) 1674 5298 w 10 /LucidaSansUnicode25 f (\312) 2134 5298 w 10 /LucidaTypewriter f (!p) 2209 5298 w 10 /LucidaSansUnicode00 f (and) 2399 5298 w (translate) 2624 5298 w (that) 3092 5298 w (into) 3328 5298 w (a) 3562 5298 w 10 /LucidaTypewriter f (never) 3662 5298 w 10 /LucidaSansUnicode00 f (claim.) 4067 5298 w (The) 4433 5298 w (require\255) 4659 5298 w (ment now says that it is a violation if) 720 5418 w 10 /LucidaTypewriter f (p) 2538 5418 w 10 /LucidaSansUnicode00 f (does not hold infinitely long.) 2642 5418 w 9 /LucidaTypewriter f (never) 1008 5588 w ({) 1398 5588 w (/*) 1528 5588 w (<>!p*/) 1723 5588 w (do) 1528 5698 w (::) 1528 5808 w (skip) 1723 5808 w (::) 1528 5918 w (!p) 1723 5918 w (->) 1918 5918 w (break) 2113 5918 w (od) 1528 6028 w (}) 1008 6138 w 10 /LucidaSansUnicode00 f (We) 720 6318 w (have) 895 6318 w (used) 1153 6318 w (the) 1418 6318 w (implicit) 1606 6318 w (match) 1999 6318 w (of) 2331 6318 w (a) 2463 6318 w (claim) 2552 6318 w (upon) 2843 6318 w (reaching) 3125 6318 w (the) 3577 6318 w (closing) 3766 6318 w (terminating) 4145 6318 w (brace.) 4742 6318 w (Since) 720 6438 w (the) 1013 6438 w (first) 1209 6438 w (violation) 1445 6438 w (of) 1901 6438 w (the) 2040 6438 w (property) 2236 6438 w (suffices) 2691 6438 w (to) 3106 6438 w (disprove) 3245 6438 w (it,) 3702 6438 w (we) 3841 6438 w (could) 4015 6438 w (also) 4322 6438 w (have) 4558 6438 w (writ\255) 4823 6438 w (ten:) 720 6558 w cleartomark showpage saveobj restore %%EndPage: 20 20 %%Page: 21 21 /saveobj save def mark 21 pagesetup 10 /LucidaSansUnicode00 f (\255 21 \255) 2752 480 w 9 /LucidaTypewriter f (never) 1008 830 w ({) 1398 830 w (/*) 1528 830 w (<>!p*/) 1723 830 w (do) 1528 940 w (::) 1528 1050 w (p) 1723 1050 w (::) 1528 1160 w (!p) 1723 1160 w (->) 1918 1160 w (break) 2113 1160 w (od) 1528 1270 w (}) 1008 1380 w 10 /LucidaSansUnicode00 f (or, if we abandon the connection with LTL for a moment, even more tersely as:) 720 1560 w 9 /LucidaTypewriter f (never) 1008 1730 w ({) 1398 1730 w (do) 1528 1730 w (::) 1723 1730 w (assert\(p\)) 1918 1730 w (od) 2568 1730 w (}) 2763 1730 w 10 /LucidaSansUnicode00 f (Suppose we wish to express that it) 720 1910 w (is) 2441 1910 w (a) 2554 1910 w (violation) 2642 1910 w (of) 3090 1910 w (our) 3221 1910 w (correctness) 3418 1910 w (requirements) 4009 1910 w (if) 4689 1910 w (there) 4788 1910 w (exists) 720 2030 w (any) 1047 2030 w (execution) 1258 2030 w (in) 1775 2030 w (the) 1908 2030 w (system) 2105 2030 w (where) 2487 2030 w 10 /LucidaSansUnicode25 f (\241) 2821 2030 w 10 /LucidaTypewriter f (\(p) 2983 2030 w (->) 3209 2030 w 10 /LucidaSansUnicode25 f (\312) 3435 2030 w 10 /LucidaTypewriter f (q\)) 3592 2030 w 10 /LucidaSansUnicode00 f (is) 3777 2030 w (violated) 3898 2030 w (\(i.e.,) 4321 2030 w (the) 4576 2030 w (nega\255) 4772 2030 w (tion of this formula is satisfied\).) 720 2150 w (The following) 2341 2150 w 10 /LucidaTypewriter f (never) 3033 2150 w 10 /LucidaSansUnicode00 f (claim expresses that property:) 3425 2150 w 9 /LucidaTypewriter f (never) 1008 2320 w ({) 1398 2320 w (do) 1528 2430 w (::) 1528 2540 w (skip) 1723 2540 w (::) 1528 2650 w (p) 1723 2650 w (&&) 1853 2650 w (!q) 2048 2650 w (->) 2243 2650 w (break) 2438 2650 w (od;) 1528 2760 w (accept:) 1008 2870 w (do) 1528 2980 w (::) 1528 3090 w (!q) 1723 3090 w (od) 1528 3200 w (}) 1008 3310 w 10 /LucidaSansUnicode00 f (Note) 720 3490 w (that) 994 3490 w (using) 1231 3490 w 10 /LucidaTypewriter f (\(!p) 1543 3490 w (||) 1846 3490 w (q\)) 2077 3490 w 10 /LucidaSansUnicode00 f (instead) 2268 3490 w (of) 2668 3490 w 10 /LucidaTypewriter f (skip) 2813 3490 w 10 /LucidaSansUnicode00 f (in) 3148 3490 w (the) 3286 3490 w (first) 3488 3490 w (repetition) 3730 3490 w (construct) 4248 3490 w (would) 4748 3490 w (imply) 720 3610 w (a) 1023 3610 w (check) 1115 3610 w (for) 1430 3610 w (just) 1606 3610 w (the) 1823 3610 w (first) 2015 3610 w (occurrence) 2247 3610 w (of) 2816 3610 w (proposition) 2951 3610 w 10 /LucidaTypewriter f (p) 3546 3610 w 10 /LucidaSansUnicode00 f (becoming) 3655 3610 w (true) 4169 3610 w (in) 4402 3610 w (the) 4530 3610 w (execu\255) 4721 3610 w (tion) 720 3730 w (sequence,) 942 3730 w (while) 1464 3730 w 10 /LucidaTypewriter f (q) 1750 3730 w 10 /LucidaSansUnicode00 f (is) 1855 3730 w (false.) 1968 3730 w (The) 2293 3730 w (above) 2507 3730 w (formalization) 2827 3730 w (checks) 3506 3730 w (for) 3869 3730 w (all) 4042 3730 w (occurrences,) 4189 3730 w (any\255) 4838 3730 w (where in a trace.) 720 3850 w (Finally,) 720 4006 w (consider) 1095 4006 w (a) 1542 4006 w (formalization) 1630 4006 w (of) 2309 4006 w (the) 2440 4006 w (LTL) 2628 4006 w (property) 2830 4006 w 10 /LucidaSansUnicode25 f (\241) 3277 4006 w 10 /LucidaTypewriter f (\(p) 3430 4006 w (->) 3647 4006 w (\(q) 3864 4006 w (U) 4082 4006 w (r\)\)) 4228 4006 w 10 /LucidaSansUnicode00 f (.) 4444 4006 w (The) 4542 4006 w (corre\255) 4757 4006 w (sponding claim is:) 720 4126 w 9 /LucidaTypewriter f (never) 1008 4296 w ({) 1398 4296 w (do) 1528 4406 w (::) 1528 4516 w (skip) 1723 4516 w (/*) 2568 4516 w (to) 2763 4516 w (match) 2958 4516 w (any) 3348 4516 w (occurrence) 3608 4516 w (*/) 4323 4516 w (::) 1528 4626 w (p) 1723 4626 w (&&) 1853 4626 w (q) 2113 4626 w (&&) 2243 4626 w (!r) 2438 4626 w (->) 2633 4626 w (break) 2828 4626 w (::) 1528 4736 w (p) 1723 4736 w (&&) 1853 4736 w (!q) 2048 4736 w (&&) 2243 4736 w (!r) 2438 4736 w (->) 2633 4736 w (goto) 2828 4736 w (error) 3153 4736 w (od;) 1528 4846 w (do) 1528 4956 w (::) 1528 5066 w (q) 1788 5066 w (&&) 1918 5066 w (!r) 2113 5066 w (::) 1528 5176 w (!q) 1723 5176 w (&&) 1918 5176 w (!r) 2113 5176 w (->) 2308 5176 w (break) 2503 5176 w (od;) 1528 5286 w (error:) 1008 5396 w (skip) 1528 5396 w (}) 1008 5506 w 10 /LucidaSansUnicode00 f (Note) 720 5686 w (again) 994 5686 w (the) 1303 5686 w (use) 1504 5686 w (of) 1719 5686 w 10 /LucidaTypewriter f (skip) 1863 5686 w 10 /LucidaSansUnicode00 f (instead) 2197 5686 w (of) 2596 5686 w 10 /LucidaTypewriter f (\(!p) 2741 5686 w (||) 3044 5686 w (r\)) 3275 5686 w 10 /LucidaSansUnicode00 f (to) 3466 5686 w (avoid) 3611 5686 w (matching) 3918 5686 w (just) 4416 5686 w (the) 4643 5686 w (first) 4845 5686 w (occurrence of) 720 5806 w 10 /LucidaTypewriter f (\(p && !r\)) 1414 5806 w 10 /LucidaSansUnicode00 f (in a trace.) 2094 5806 w 10 /LucidaSans-Demi f (1.4.) 720 6046 w (Predefined Variables and Functions) 962 6046 w 10 /LucidaSansUnicode00 f (The) 720 6202 w (following) 955 6202 w (predefined) 1456 6202 w (variables) 2036 6202 w (and) 2521 6202 w (functions) 2755 6202 w (can) 3261 6202 w (be) 3483 6202 w (especially) 3656 6202 w (useful) 4182 6202 w (in) 4534 6202 w 10 /LucidaTypewriter f (never) 4680 6202 w 10 /LucidaSansUnicode00 f (claims.) 720 6322 w (The predefined variables are:) 720 6478 w 10 /LucidaTypewriter f (_pid) 2170 6478 w 10 /LucidaSansUnicode00 f (and) 2490 6478 w 10 /LucidaTypewriter f (_last) 2702 6478 w 10 /LucidaSansUnicode00 f (.) 3062 6478 w 10 /LucidaTypewriter f (_pid) 720 6634 w 10 /LucidaSansUnicode00 f (is) 1048 6634 w (a) 1168 6634 w (predefined) 1263 6634 w (local) 1829 6634 w (variable) 2094 6634 w (in) 2514 6634 w (each) 2645 6634 w (process) 2909 6634 w (that) 3324 6634 w (holds) 3556 6634 w (the) 3863 6634 w (unique) 4059 6634 w (instantiation) 4434 6634 w (number for that process.) 720 6754 w (It is always a non-negative number.) 1993 6754 w 10 /LucidaTypewriter f (_last) 720 6910 w 10 /LucidaSansUnicode00 f (is) 1114 6910 w (a) 1228 6910 w (predefined) 1318 6910 w (global) 1879 6910 w (variable) 2213 6910 w (that) 2628 6910 w (always) 2854 6910 w (holds) 3208 6910 w (the) 3509 6910 w (instantiation) 3699 6910 w (number) 4340 6910 w (of) 4752 6910 w (the) 4885 6910 w (process) 720 7030 w (that) 1131 7030 w (performed) 1359 7030 w (the) 1907 7030 w (last) 2098 7030 w (step) 2306 7030 w (in) 2549 7030 w (the) 2676 7030 w (current) 2867 7030 w (execution) 3253 7030 w (sequence.) 3764 7030 w (Its) 4321 7030 w (value) 4474 7030 w (is) 4764 7030 w (not) 4880 7030 w (part of the system state unless it is explicitly used in a specification.) 720 7150 w cleartomark showpage saveobj restore %%EndPage: 21 21 %%Page: 22 22 /saveobj save def mark 22 pagesetup 10 /LucidaSansUnicode00 f (\255 22 \255) 2752 480 w 9 /LucidaTypewriter f (never) 1008 830 w ({) 1398 830 w (/*) 1528 940 w (it) 1723 940 w (is) 1918 940 w (not) 2113 940 w (possible) 2373 940 w (for) 2958 940 w (the) 3218 940 w (process) 3478 940 w (with) 3998 940 w (pid=1) 4323 940 w (*) 1593 1050 w (to) 1723 1050 w (execute) 1918 1050 w (precisely) 2438 1050 w (every) 3088 1050 w (other) 3478 1050 w (step) 3868 1050 w (forever) 4193 1050 w (*/) 1593 1160 w (accept:) 1008 1270 w (do) 1528 1380 w (::) 1528 1490 w (_last) 1723 1490 w (!=) 2113 1490 w (1) 2308 1490 w (->) 2438 1490 w (_last) 2633 1490 w (==) 3023 1490 w (1) 3218 1490 w (od) 1528 1600 w (}) 1008 1710 w 10 /LucidaSansUnicode00 f (The initial value of) 720 1890 w 10 /LucidaTypewriter f (_last) 1651 1890 w 10 /LucidaSansUnicode00 f (is zero.) 2043 1890 w (Three) 720 2046 w (predefined) 1042 2046 w (functions) 1612 2046 w (are) 2108 2046 w (specifically) 2304 2046 w (intended) 2880 2046 w (to) 3352 2046 w (be) 3494 2046 w (used) 3657 2046 w (in) 3934 2046 w 10 /LucidaTypewriter f (never) 4070 2046 w 10 /LucidaSansUnicode00 f (claims,) 4475 2046 w (and) 4860 2046 w (may) 720 2166 w (not) 1007 2166 w (be) 1254 2166 w (used) 1460 2166 w (elsewhere) 1779 2166 w (in) 2350 2166 w (a) 2528 2166 w (model:) 2670 2166 w 10 /LucidaTypewriter f (pc_value\(pid\)) 3090 2166 w 10 /LucidaSansUnicode00 f (,) 4026 2166 w 10 /LucidaTypewriter f (enabled\(pid\)) 4144 2166 w 10 /LucidaSansUnicode00 f (,) 5008 2166 w 10 /LucidaTypewriter f (procname[pid]@label) 720 2286 w 10 /LucidaSansUnicode00 f (.) 2088 2286 w (The) 720 2442 w (function) 949 2442 w 10 /LucidaTypewriter f (pc_value\(pid\)) 1398 2442 w 10 /LucidaSansUnicode00 f (returns) 2383 2442 w (the) 2782 2442 w (current) 2986 2442 w (control) 3385 2442 w (state) 3776 2442 w (of) 4061 2442 w (the) 4208 2442 w (process) 4412 2442 w (with) 4835 2442 w (instantiation number) 720 2562 w 10 /LucidaTypewriter f (pid) 1767 2562 w 10 /LucidaSansUnicode00 f (, or zero if no such process exists.) 1983 2562 w (Example:) 720 2718 w 9 /LucidaTypewriter f (never) 1008 2888 w ({) 1398 2888 w (/*) 1528 2998 w (Whimsical) 1723 2998 w (use:) 2373 2998 w (claim) 2698 2998 w (that) 3088 2998 w (it) 3413 2998 w (is) 3608 2998 w (impossible) 3803 2998 w (*) 1593 3108 w (for) 1723 3108 w (process) 1983 3108 w (1) 2503 3108 w (to) 2633 3108 w (remain) 2828 3108 w (in) 3283 3108 w (the) 3478 3108 w (same) 3738 3108 w (control) 4063 3108 w (*) 1593 3218 w (state) 1723 3218 w (as) 2113 3218 w (process) 2308 3218 w (2,) 2828 3218 w (or) 3023 3218 w (one) 3218 3218 w (with) 3478 3218 w (smaller) 3803 3218 w (value.) 4323 3218 w (*/) 1593 3328 w (accept:) 1008 3438 w (do) 1528 3438 w (::) 1528 3548 w (pc_value\(1\)) 1723 3548 w (<=) 2503 3548 w (pc_value\(2\)) 2698 3548 w (od) 1528 3658 w (}) 1008 3768 w 10 /LucidaSansUnicode00 f (The) 720 3948 w (function) 935 3948 w 10 /LucidaTypewriter f (enabled\(pid\)) 1370 3948 w 10 /LucidaSansUnicode00 f (tells) 2269 3948 w (whether) 2506 3948 w (the) 2932 3948 w (process) 3122 3948 w (with) 3531 3948 w (instantiation) 3771 3948 w (number) 4412 3948 w 10 /LucidaTypewriter f (pid) 4824 3948 w 10 /LucidaSansUnicode00 f (has an executable statement that it can execute next.) 720 4068 w (Example:) 720 4224 w 9 /LucidaTypewriter f (never) 1008 4394 w ({) 1398 4394 w (/*) 1528 4504 w (it) 1723 4504 w (is) 1918 4504 w (not) 2113 4504 w (possible) 2373 4504 w (for) 2958 4504 w (the) 3218 4504 w (process) 3478 4504 w (with) 3998 4504 w (pid=1) 4323 4504 w (*) 1593 4614 w (to) 1723 4614 w (remain) 1918 4614 w (enabled) 2373 4614 w (without) 2893 4614 w (ever) 3413 4614 w (executing) 3738 4614 w (*/) 1593 4724 w (accept:) 1008 4834 w (do) 1528 4944 w (::) 1528 5054 w (_last) 1723 5054 w (!=) 2113 5054 w (1) 2308 5054 w (&&) 2438 5054 w (enabled\(1\)) 2633 5054 w (od) 1528 5164 w (}) 1008 5274 w 10 /LucidaSansUnicode00 f (The) 720 5454 w (last) 947 5454 w (function) 1165 5454 w 10 /LucidaTypewriter f (procname[pid]@label) 1613 5454 w 10 /LucidaSansUnicode00 f (tells) 3028 5454 w (whether) 3277 5454 w (the) 3715 5454 w (process) 3917 5454 w (with) 4338 5454 w (instantia\255) 4590 5454 w (tion) 720 5574 w (number) 953 5574 w 10 /LucidaTypewriter f (pid) 1374 5574 w 10 /LucidaSansUnicode00 f (is) 1634 5574 w (currently) 1757 5574 w (in) 2231 5574 w (the) 2365 5574 w (state) 2563 5574 w (labeled) 2842 5574 w (with) 3236 5574 w 10 /LucidaTypewriter f (label) 3484 5574 w 10 /LucidaSansUnicode00 f (in) 3887 5574 w 10 /LucidaTypewriter f (proctype) 4021 5574 w (proc\255) 4680 5574 w (name) 720 5694 w 10 /LucidaSansUnicode00 f (.) 1008 5694 w (It is an error if the process referred to is not an instantiation of that proctype.) 1104 5694 w 10 /LucidaSans-Demi f (2.) 720 5934 w (Verifications with) 873 5934 w 9 /LucidaSans-Demi f (SPIN) 1817 5934 w 10 /LucidaSansUnicode00 f (The) 720 6090 w (easiest) 945 6090 w (way) 1324 6090 w (to) 1552 6090 w (use) 1694 6090 w 9 /LucidaSansUnicode00 f (SPIN) 1907 6090 w 10 /LucidaSansUnicode00 f (is) 2143 6090 w (probably) 2267 6090 w (on) 2738 6090 w (a) 2905 6090 w (Windows) 3004 6090 w (terminal) 3478 6090 w (with) 3925 6090 w (the) 4175 6090 w (Tcl/Tk) 4375 6090 w (imple\255) 4737 6090 w (mentation) 720 6210 w (of) 1248 6210 w 9 /LucidaSansUnicode00 f (XSPIN) 1382 6210 w 10 /LucidaSansUnicode00 f (.) 1631 6210 w (All) 1731 6210 w (functionality) 1894 6210 w (of) 2533 6210 w 9 /LucidaSansUnicode00 f (SPIN) 2667 6210 w 10 /LucidaSansUnicode00 f (,) 2859 6210 w (however,) 2927 6210 w (is) 3400 6210 w (accessible) 3516 6210 w (from) 4044 6210 w (any) 4312 6210 w (plain) 4517 6210 w (ASCII) 4790 6210 w (terminal, and there is something to be said for directly interacting with the tool itself.) 720 6330 w (The) 720 6486 w (description) 941 6486 w (in) 1525 6486 w (this) 1657 6486 w (paper) 1877 6486 w (gives) 2196 6486 w (a) 2487 6486 w (short) 2583 6486 w (walk-through) 2876 6486 w (of) 3581 6486 w (a) 3720 6486 w (common) 3816 6486 w (mode) 4278 6486 w (of) 4592 6486 w (opera\255) 4731 6486 w (tion) 720 6606 w (in) 956 6606 w (using) 1094 6606 w (the) 1407 6606 w (verifier.) 1609 6606 w (A) 2061 6606 w (more) 2177 6606 w (tutorial) 2475 6606 w (style) 2873 6606 w (description) 3145 6606 w (of) 3735 6606 w (the) 3880 6606 w (verification) 4081 6606 w (process) 4666 6606 w (can) 720 6726 w (be) 921 6726 w (found) 1073 6726 w (in) 1391 6726 w ([Ho93].) 1515 6726 w (More) 1939 6726 w (detail) 2216 6726 w (on) 2518 6726 w (the) 2674 6726 w (verification) 2863 6726 w (of) 3436 6726 w (large) 3568 6726 w (systems) 3845 6726 w (with) 4270 6726 w (the) 4509 6726 w (help) 4698 6726 w (of) 4942 6726 w 9 /LucidaSansUnicode00 f (SPIN) 720 6846 w 10 /LucidaSansUnicode20 f (\031) 912 6846 w 10 /LucidaSansUnicode00 f (s supertrace \(bitstate\) verification algorithm can be found in [Ho95].) 944 6846 w 10 /LucidaSansUnicode22 f (\031) 970 7002 w 10 /LucidaSansUnicode00 f (Random and interactive simulations \(section 2.1\),) 1058 7002 w 10 /LucidaSansUnicode22 f (\031) 970 7122 w 10 /LucidaSansUnicode00 f (Generating a verifier \(section 2.2\),) 1058 7122 w 10 /LucidaSansUnicode22 f (\031) 970 7242 w 10 /LucidaSansUnicode00 f (Compilation for different types of searches \(section 2.3\),) 1058 7242 w cleartomark showpage saveobj restore %%EndPage: 22 22 %%Page: 23 23 /saveobj save def mark 23 pagesetup 10 /LucidaSansUnicode00 f (\255 23 \255) 2752 480 w 10 /LucidaSansUnicode22 f (\031) 970 840 w 10 /LucidaSansUnicode00 f (Performing the verification \(section 2.4\),) 1058 840 w 10 /LucidaSansUnicode22 f (\031) 970 960 w 10 /LucidaSansUnicode00 f (Inspecting error traces produced by the verifier \(section 2.5\),) 1058 960 w 10 /LucidaSansUnicode22 f (\031) 970 1080 w 10 /LucidaSansUnicode00 f (Exploiting partial order reductions \(section 2.6\).) 1058 1080 w 10 /LucidaSans-Demi f (2.1.) 720 1356 w (Random and Interactive Simulations) 962 1356 w 10 /LucidaSansUnicode00 f (Given) 720 1512 w (a) 1029 1512 w (model) 1122 1512 w (in) 1462 1512 w 9 /LucidaSansUnicode00 f (PROMELA) 1591 1512 w 10 /LucidaSansUnicode00 f (,) 2004 1512 w (say) 2074 1512 w (stored) 2271 1512 w (in) 2619 1512 w (a) 2749 1512 w (file) 2843 1512 w (called) 3033 1512 w 10 /LucidaTypewriter f (spec) 3355 1512 w 10 /LucidaSansUnicode00 f (,) 3643 1512 w (the) 3714 1512 w (easiest) 3908 1512 w (mode) 4282 1512 w (of) 4594 1512 w (opera\255) 4731 1512 w (tion is to perform a random simulation.) 720 1632 w (For instance,) 2705 1632 w 9 /LucidaTypewriter f (spin) 1008 1802 w (-p) 1333 1802 w (spec) 1528 1802 w 10 /LucidaSansUnicode00 f (tells) 720 1982 w 9 /LucidaSansUnicode00 f (SPIN) 956 1982 w 10 /LucidaSansUnicode00 f (to) 1182 1982 w (perform) 1314 1982 w (a) 1740 1982 w (random) 1829 1982 w (simulation,) 2238 1982 w (while) 2812 1982 w (printing) 3100 1982 w (the) 3520 1982 w (process) 3710 1982 w (moves) 4119 1982 w (selected) 4467 1982 w (for) 4901 1982 w (execution) 720 2102 w (at) 1231 2102 w (each) 1359 2102 w (step) 1619 2102 w (\(by) 1862 2102 w (default) 2046 2102 w (nothing) 2421 2102 w (is) 2832 2102 w (printed,) 2948 2102 w (other) 3367 2102 w (than) 3660 2102 w (explicit) 3912 2102 w 10 /LucidaTypewriter f (printf) 4303 2102 w 10 /LucidaSansUnicode00 f (state\255) 4771 2102 w (ments) 720 2222 w (that) 1066 2222 w (appear) 1304 2222 w (in) 1684 2222 w (the) 1822 2222 w (model) 2024 2222 w (itself\).) 2374 2222 w (A) 2758 2222 w (range) 2875 2222 w (of) 3199 2222 w (options) 3345 2222 w (exists) 3757 2222 w (to) 4090 2222 w (make) 4236 2222 w (the) 4546 2222 w (traces) 4749 2222 w (more) 720 2342 w (verbose,) 1014 2342 w (e.g.,) 1469 2342 w (by) 1726 2342 w (adding) 1884 2342 w (printouts) 2261 2342 w (of) 2747 2342 w (local) 2887 2342 w (variables) 3154 2342 w (\(add) 3627 2342 w (option) 3883 2342 w 10 /LucidaTypewriter f (-l) 4238 2342 w 10 /LucidaSansUnicode00 f (\),) 4382 2342 w (global) 4489 2342 w (vari\255) 4830 2342 w (ables) 720 2462 w (\(add) 1026 2462 w (option) 1293 2462 w 10 /LucidaTypewriter f (-g) 1659 2462 w 10 /LucidaSansUnicode00 f (\),) 1803 2462 w (send) 1921 2462 w (statements) 2206 2462 w (\(add) 2794 2462 w (option) 3061 2462 w 10 /LucidaTypewriter f (-s) 3427 2462 w 10 /LucidaSansUnicode00 f (\),) 3571 2462 w (or) 3689 2462 w (receive) 3844 2462 w (statements) 4238 2462 w (\(add) 4826 2462 w (option) 720 2582 w 10 /LucidaTypewriter f (-r) 1071 2582 w 10 /LucidaSansUnicode00 f (\).) 1215 2582 w (Use) 1350 2582 w (option) 1564 2582 w 10 /LucidaTypewriter f (-n) 1915 2582 w 10 /LucidaSansUnicode00 f (N) 2059 2582 w (\(with) 2171 2582 w (N) 2447 2582 w (any) 2559 2582 w (number\)) 2766 2582 w (to) 3214 2582 w (fix) 3350 2582 w (the) 3514 2582 w (seed) 3706 2582 w (on) 3969 2582 w 9 /LucidaSansUnicode00 f (SPIN) 4129 2582 w 10 /LucidaSansUnicode20 f (\031) 4321 2582 w 10 /LucidaSansUnicode00 f (s) 4353 2582 w (internal) 4441 2582 w (ran\255) 4849 2582 w (dom) 720 2702 w (number) 970 2702 w (generator,) 1381 2702 w (and) 1918 2702 w (thus) 2132 2702 w (make) 2378 2702 w (the) 2674 2702 w (simulation) 2863 2702 w (runs) 3405 2702 w (reproducible.) 3655 2702 w (By) 4368 2702 w (default) 4512 2702 w (the) 4885 2702 w (current time is used to seed the random number generator.) 720 2822 w (For instance:) 3683 2822 w 9 /LucidaTypewriter f (spin) 1008 2992 w (-p) 1333 2992 w (-l) 1528 2992 w (-g) 1723 2992 w (-r) 1918 2992 w (-s) 2113 2992 w (-n1) 2308 2992 w (spec) 2568 2992 w 10 /LucidaSansUnicode00 f (If) 720 3208 w (you) 827 3208 w (don) 1043 3208 w 10 /LucidaSansUnicode20 f (\031) 1229 3208 w 10 /LucidaSansUnicode00 f (t) 1261 3208 w (like) 1339 3208 w (the) 1552 3208 w (system) 1748 3208 w (randomly) 2130 3208 w (resolving) 2628 3208 w (non-deterministic) 3113 3208 w (choices) 4032 3208 w (for) 4435 3208 w (you,) 4616 3208 w (you) 4865 3208 w (can select an interactive simulation:) 720 3328 w 9 /LucidaTypewriter f (spin) 1008 3498 w (-i) 1333 3498 w (-p) 1528 3498 w (spec) 1723 3498 w 10 /LucidaSansUnicode00 f (In) 720 3678 w (this) 848 3678 w (case) 1064 3678 w (you) 1314 3678 w (will) 1526 3678 w (be) 1727 3678 w (offered) 1883 3678 w (a) 2271 3678 w (menu) 2364 3678 w (with) 2675 3678 w (choices) 2918 3678 w (each) 3317 3678 w (time) 3579 3678 w (the) 3832 3678 w (execution) 4025 3678 w (could) 4538 3678 w (pro\255) 4842 3678 w (ceed in more than one way.) 720 3798 w (Simulations,) 720 3954 w (of) 1352 3954 w (course,) 1488 3954 w (are) 1880 3954 w (intended) 2070 3954 w (primarily) 2536 3954 w (for) 3006 3954 w (the) 3183 3954 w (debugging) 3376 3954 w (of) 3935 3954 w (a) 4071 3954 w (model.) 4164 3954 w (They) 4568 3954 w (can\255) 4839 3954 w (not) 720 4074 w (prove) 926 4074 w (anything) 1245 4074 w (about) 1712 4074 w (it.) 2036 4074 w (Assertions) 2212 4074 w (will) 2766 4074 w (be) 2976 4074 w (evaluated) 3140 4074 w (during) 3650 4074 w (simulation) 4014 4074 w (runs,) 4567 4074 w (and) 4860 4074 w (any) 720 4194 w (violations) 937 4194 w (that) 1451 4194 w (result) 1690 4194 w (will) 2014 4194 w (be) 2227 4194 w (reported,) 2395 4194 w (but) 2894 4194 w (none) 3105 4194 w (of) 3395 4194 w (the) 3542 4194 w (other) 3746 4194 w (correctness) 4052 4194 w (require\255) 4659 4194 w (ments can be checked in this way.) 720 4314 w 10 /LucidaSans-Demi f (2.2.) 720 4554 w (Generating the Verifier) 962 4554 w 10 /LucidaSansUnicode00 f (A model-specific verifier is generated as follows:) 720 4710 w 9 /LucidaTypewriter f (spin) 1008 4880 w (-a) 1333 4880 w (spec) 1528 4880 w 10 /LucidaSansUnicode00 f (This generates a C program in a number of files \(with names starting with) 720 5060 w 10 /LucidaTypewriter f (pan) 4346 5060 w 10 /LucidaSansUnicode00 f (\).) 4562 5060 w 10 /LucidaSans-Demi f (2.3.) 720 5300 w (Compiling the Verifier) 962 5300 w 10 /LucidaSansUnicode00 f (At) 720 5456 w (this) 860 5456 w (point) 1073 5456 w (it) 1359 5456 w (is) 1459 5456 w (good) 1573 5456 w (to) 1854 5456 w (know) 1986 5456 w (the) 2278 5456 w (physical) 2468 5456 w (limitations) 2895 5456 w (of) 3442 5456 w (the) 3575 5456 w (computer) 3765 5456 w (system) 4264 5456 w (that) 4639 5456 w (you) 4865 5456 w (will) 720 5576 w (run) 928 5576 w (the) 1137 5576 w (verification) 1336 5576 w (on.) 1919 5576 w (If) 2150 5576 w (you) 2260 5576 w (know) 2478 5576 w (how) 2779 5576 w (much) 3022 5576 w (physical) 3333 5576 w (\(not) 3768 5576 w (virtual\)) 4004 5576 w (memory) 4385 5576 w (your) 4824 5576 w (system has, you) 720 5696 w (can) 1532 5696 w (take) 1733 5696 w (advantage) 1972 5696 w (of) 2502 5696 w (that.) 2633 5696 w (Initially,) 2921 5696 w (you) 3337 5696 w (can) 3545 5696 w (simply) 3746 5696 w (compile) 4096 5696 w (the) 4511 5696 w (verifier) 4699 5696 w (for) 720 5816 w (a) 906 5816 w (straight) 1008 5816 w (exhaustive) 1428 5816 w (verification) 1995 5816 w (run) 2580 5816 w (\(constituting) 2791 5816 w (the) 3450 5816 w (strongest) 3651 5816 w (type) 4155 5816 w (of) 4409 5816 w (proof) 4553 5816 w (if) 4862 5816 w (it) 4974 5816 w (can be completed\).) 720 5936 w (Compile as follows.) 1709 5936 w 9 /LucidaTypewriter f (pcc) 1008 6106 w (-o) 1268 6106 w (pan) 1463 6106 w (pan.c) 1723 6106 w (#) 3088 6106 w (standard) 3218 6106 w (exhaustive) 3803 6106 w (search) 4518 6106 w 10 /LucidaSansUnicode00 f (If) 720 6286 w (you) 821 6286 w (know) 1031 6286 w (a) 1324 6286 w (memory) 1414 6286 w (bound) 1845 6286 w (that) 2191 6286 w (you) 2417 6286 w (want) 2627 6286 w (to) 2893 6286 w (restrict) 3026 6286 w (the) 3404 6286 w (run) 3594 6286 w (to) 3795 6286 w (\(e.g.,) 3929 6286 w (to) 4212 6286 w (avoid) 4346 6286 w (paging\),) 4642 6286 w (find the nearest power of 2 \(e.g., 23 for the bound 2) 720 6406 w 7 /LucidaSansUnicode00 f (23) 3281 6366 w 10 /LucidaSansUnicode00 f (bytes\) and compile as follows.) 3409 6406 w 9 /LucidaTypewriter f (pcc) 1008 6576 w ('-DMEMCNT=23') 1268 6576 w (-o) 2178 6576 w (pan) 2373 6576 w (pan.c) 2633 6576 w 10 /LucidaSansUnicode00 f (or equivalently in terms of MegaBytes:) 720 6756 w 9 /LucidaTypewriter f (pcc) 1008 6926 w ('-DMEMLIM=8') 1268 6926 w (-o) 2113 6926 w (pan) 2308 6926 w (pan.c) 2568 6926 w 10 /LucidaSansUnicode00 f (If) 720 7106 w (the) 820 7106 w (verifier) 1009 7106 w (runs) 1384 7106 w (out) 1634 7106 w (of) 1829 7106 w (memory) 1962 7106 w (before) 2393 7106 w (completing) 2742 7106 w (its) 3320 7106 w (task,) 3472 7106 w (you) 3740 7106 w (can) 3950 7106 w (decide) 4153 7106 w (to) 4506 7106 w (increase) 4639 7106 w (the) 720 7226 w (bound) 913 7226 w (or) 1262 7226 w (to) 1402 7226 w (switch) 1537 7226 w (to) 1881 7226 w (a) 2016 7226 w (frugal) 2108 7226 w (supertrace) 2431 7226 w (verification.) 2981 7226 w (In) 3621 7226 w (the) 3749 7226 w (latter) 3941 7226 w (case,) 4233 7226 w (compile) 4515 7226 w (as) 4934 7226 w cleartomark showpage saveobj restore %%EndPage: 23 23 %%Page: 24 24 /saveobj save def mark 24 pagesetup 10 /LucidaSansUnicode00 f (\255 24 \255) 2752 480 w (follows.) 720 840 w 9 /LucidaTypewriter f (pcc) 1008 1010 w (-DBITSTATE) 1268 1010 w (-o) 1983 1010 w (pan) 2178 1010 w (pan.c) 2438 1010 w 10 /LucidaSans-Demi f (2.4.) 720 1310 w (Performing the Verification) 962 1310 w 10 /LucidaSansUnicode00 f (There) 720 1466 w (are) 1033 1466 w (three) 1220 1466 w (specific) 1507 1466 w (decisions) 1909 1466 w (to) 2397 1466 w (make) 2530 1466 w (to) 2827 1466 w (perform) 2960 1466 w (verifications) 3387 1466 w (optimally:) 4013 1466 w (estimating) 4529 1466 w (the) 720 1586 w (size) 913 1586 w (of) 1144 1586 w (the) 1279 1586 w (reachable) 1471 1586 w (state) 1976 1586 w (space) 2249 1586 w (\(section) 2562 1586 w (2.4.1\),) 2979 1586 w (estimating) 3334 1586 w (the) 3882 1586 w (maximum) 4074 1586 w (length) 4597 1586 w (of) 4942 1586 w (a) 720 1706 w (unique) 829 1706 w (execution) 1217 1706 w (sequence) 1746 1706 w (\(2.4.2\),) 2258 1706 w (and) 2664 1706 w (selecting) 2899 1706 w (the) 3387 1706 w (type) 3597 1706 w (of) 3860 1706 w (correctness) 4013 1706 w (property) 4626 1706 w (\(2.4.3\).) 720 1826 w (No) 1150 1826 w (great) 1332 1826 w (harm) 1630 1826 w (is) 1928 1826 w (done) 2055 1826 w (if) 2344 1826 w (the) 2457 1826 w (estimates) 2659 1826 w (from) 3171 1826 w (the) 3449 1826 w (first) 3650 1826 w (two) 3891 1826 w (steps) 4112 1826 w (are) 4416 1826 w (off.) 4614 1826 w (The) 4859 1826 w (feedback) 720 1946 w (from) 1197 1946 w (the) 1467 1946 w (verifier) 1660 1946 w (usually) 2039 1946 w (provides) 2417 1946 w (enough) 2871 1946 w (clues) 3275 1946 w (to) 3563 1946 w (determine) 3700 1946 w (quickly) 4232 1946 w (what) 4615 1946 w (the) 4885 1946 w (optimal settings for peak performance should be.) 720 2066 w 10 /LucidaSans-Demi f (2.4.1.) 720 2306 w (Reachable States) 1051 2306 w 10 /LucidaSansUnicode00 f (For) 720 2462 w (a) 918 2462 w (standard) 1015 2462 w (exhaustive) 1484 2462 w (run,) 2047 2462 w (you) 2286 2462 w (can) 2503 2462 w (override) 2713 2462 w (the) 3154 2462 w (default) 3352 2462 w (choice) 3734 2462 w (for) 4087 2462 w (the) 4269 2462 w (size) 4467 2462 w (for) 4703 2462 w (the) 4885 2462 w (hash table \(2) 720 2582 w 7 /LucidaSansUnicode00 f (18) 1355 2542 w 10 /LucidaSansUnicode00 f (slots\) with option) 1483 2582 w 10 /LucidaTypewriter f (-w) 2359 2582 w 10 /LucidaSansUnicode00 f (.) 2503 2582 w (For instance,) 2599 2582 w 9 /LucidaTypewriter f (pan) 1008 2752 w (-w23) 1268 2752 w 10 /LucidaSansUnicode00 f (selects) 720 2932 w (2) 1088 2932 w 7 /LucidaSansUnicode00 f (23) 1156 2892 w 10 /LucidaSansUnicode00 f (slots.) 1289 2932 w (The) 1619 2932 w (hash) 1838 2932 w (table) 2106 2932 w (size) 2384 2932 w (should) 2615 2932 w (optimally) 2981 2932 w (be) 3467 2932 w (roughly) 3624 2932 w (equal) 4031 2932 w (to) 4334 2932 w (the) 4470 2932 w (number) 4663 2932 w (of) 720 3052 w (reachable) 853 3052 w (states) 1356 3052 w (you) 1678 3052 w (expect) 1888 3052 w (\(within) 2247 3052 w (say) 2611 3052 w (a) 2804 3052 w (factor) 2894 3052 w (of) 3211 3052 w (two) 3344 3052 w (or) 3554 3052 w (three\).) 3691 3052 w (Too) 4075 3052 w (large) 4295 3052 w (a) 4573 3052 w (number) 4663 3052 w (merely) 720 3172 w (wastes) 1090 3172 w (memory,) 1460 3172 w (too) 1931 3172 w (low) 2133 3172 w (a) 2344 3172 w (number) 2443 3172 w (wastes) 2864 3172 w (CPU) 3235 3172 w (time,) 3472 3172 w (but) 3763 3172 w (neither) 3969 3172 w (can) 4356 3172 w (affect) 4568 3172 w (the) 4885 3172 w (correctness of the result.) 720 3292 w (For) 720 3532 w (a) 927 3532 w (supertrace) 1033 3532 w (run,) 1597 3532 w (the) 1845 3532 w (hash) 2051 3532 w (table) 2332 3532 w 10 /LucidaSans-Italic f (is) 2623 3532 w 10 /LucidaSansUnicode00 f (the) 2752 3532 w (memory) 2958 3532 w (arena,) 3405 3532 w (and) 3757 3532 w (you) 3988 3532 w (can) 4214 3532 w (override) 4434 3532 w (the) 4885 3532 w (default) 720 3652 w (of) 1094 3652 w (2) 1227 3652 w 7 /LucidaSansUnicode00 f (22) 1295 3612 w 10 /LucidaSansUnicode00 f (bits) 1426 3652 w (with) 1641 3652 w (any) 1881 3652 w (other) 2085 3652 w (number.) 2377 3652 w (Set) 2853 3652 w (it) 3035 3652 w (to) 3136 3652 w (the) 3269 3652 w (maximum) 3459 3652 w (size) 3980 3652 w (of) 4207 3652 w (physical) 4339 3652 w (mem\255) 4765 3652 w (ory) 720 3772 w (you) 916 3772 w (can) 1133 3772 w (grab) 1344 3772 w (without) 1608 3772 w (making) 2016 3772 w (the) 2418 3772 w (system) 2616 3772 w (page,) 2999 3772 w (again) 3310 3772 w (within) 3616 3772 w (a) 3955 3772 w (factor) 4053 3772 w (of) 4378 3772 w (say) 4519 3772 w (two) 4720 3772 w (or) 4938 3772 w (three.) 720 3892 w (Use,) 1074 3892 w (for) 1320 3892 w (instance) 1497 3892 w 10 /LucidaTypewriter f (-w23) 1938 3892 w 10 /LucidaSansUnicode00 f (if) 2264 3892 w (you) 2368 3892 w (expect) 2581 3892 w (8) 2943 3892 w (million) 3044 3892 w (reachable) 3414 3892 w (states) 3920 3892 w (and) 4245 3892 w (have) 4463 3892 w (access) 4725 3892 w (to at least 8 million \(2) 720 4012 w 7 /LucidaSansUnicode00 f (23) 1794 3972 w 10 /LucidaSansUnicode00 f (\) bits of memory \(i.e., 2) 1890 4012 w 7 /LucidaSansUnicode00 f (20) 3039 3972 w 10 /LucidaSansUnicode00 f (or 1 Megabyte of RAM\).) 3167 4012 w 10 /LucidaSans-Demi f (2.4.2.) 720 4252 w (Search Depth) 1051 4252 w 10 /LucidaSansUnicode00 f (By) 720 4408 w (default) 877 4408 w (the) 1263 4408 w (analyzers) 1465 4408 w (have) 1970 4408 w (a) 2242 4408 w (search) 2344 4408 w (depth) 2707 4408 w (restriction) 3035 4408 w (of) 3577 4408 w (10,000) 3723 4408 w (steps.) 4118 4408 w (If) 4488 4408 w (this) 4602 4408 w (isn) 4829 4408 w 10 /LucidaSansUnicode20 f (\031) 4971 4408 w 10 /LucidaSansUnicode00 f (t) 5003 4408 w (enough,) 720 4528 w (the) 1159 4528 w (search) 1356 4528 w (will) 1714 4528 w (truncate) 1920 4528 w (at) 2363 4528 w (9,999) 2497 4528 w (steps) 2823 4528 w (\(watch) 3123 4528 w (for) 3480 4528 w (it) 3661 4528 w (in) 3769 4528 w (the) 3902 4528 w (printout\).) 4099 4528 w (Define) 4629 4528 w (a) 4985 4528 w (different search depth with the -m flag.) 720 4648 w 9 /LucidaTypewriter f (pan) 1008 4818 w (-m100000) 1268 4818 w 10 /LucidaSansUnicode00 f (If) 720 4998 w (you) 831 4998 w (exceed) 1051 4998 w (also) 1439 4998 w (this) 1681 4998 w (limit,) 1906 4998 w (it) 2201 4998 w (is) 2313 4998 w (probably) 2439 4998 w (good) 2912 4998 w (to) 3205 4998 w (take) 3349 4998 w (some) 3601 4998 w (time) 3908 4998 w (to) 4169 4998 w (consider) 4313 4998 w (if) 4773 4998 w (the) 4885 4998 w (model) 720 5118 w (you) 1056 5118 w (have) 1265 5118 w (specified) 1524 5118 w (is) 1993 5118 w (indeed) 2107 5118 w (finite.) 2470 5118 w (Check,) 2818 5118 w (for) 3180 5118 w (instance,) 3353 5118 w (if) 3821 5118 w (no) 3920 5118 w (unbounded) 4076 5118 w (number) 4663 5118 w (of) 720 5238 w (processes) 851 5238 w (is) 1366 5238 w (created.) 1480 5238 w (If) 1937 5238 w (satisfied) 2037 5238 w (that) 2479 5238 w (the) 2704 5238 w (model) 2893 5238 w (is) 3229 5238 w (finite,) 3343 5238 w (increase) 3659 5238 w (the) 4094 5238 w (search) 4283 5238 w (depth) 4633 5238 w (at) 4948 5238 w (least as far as is required to avoid truncation completely.) 720 5358 w (If) 720 5514 w (you) 826 5514 w (find) 1041 5514 w (a) 1272 5514 w (particularly) 1367 5514 w (nasty) 1951 5514 w (error) 2248 5514 w (that) 2528 5514 w (takes) 2759 5514 w (a) 3056 5514 w (large) 3151 5514 w (number) 3434 5514 w (of) 3851 5514 w (steps) 3989 5514 w (to) 4287 5514 w (hit,) 4425 5514 w (you) 4625 5514 w (may) 4840 5514 w (also set lower search depths to find the shortest variant of an error sequence.) 720 5634 w 9 /LucidaTypewriter f (pan) 1008 5804 w (-m40) 1268 5804 w 10 /LucidaSansUnicode00 f (Go) 720 5984 w (up) 886 5984 w (or) 1044 5984 w (down) 1179 5984 w (by) 1475 5984 w (powers) 1623 5984 w (of) 2005 5984 w (two) 2136 5984 w (until) 2344 5984 w (you) 2596 5984 w (find) 2804 5984 w (the) 3028 5984 w (place) 3216 5984 w (where) 3503 5984 w (the) 3828 5984 w (error) 4017 5984 w (first) 4291 5984 w (appears) 4520 5984 w (or) 4938 5984 w (disappears) 720 6104 w (and) 1284 6104 w (then) 1501 6104 w (home) 1755 6104 w (in) 2064 6104 w (on) 2192 6104 w (the) 2352 6104 w (first) 2544 6104 w (depth) 2776 6104 w (where) 3094 6104 w (the) 3423 6104 w (error) 3615 6104 w (becomes) 3892 6104 w (apparent,) 4360 6104 w (and) 4860 6104 w (use the error trail of that verification run for guided simulation.) 720 6224 w (Note that if) 720 6464 w (a) 1302 6464 w (run) 1390 6464 w (with) 1588 6464 w (a) 1826 6464 w (given) 1914 6464 w (search) 2208 6464 w (depth) 2557 6464 w (fails) 2871 6464 w (to) 3105 6464 w (find) 3236 6464 w (an) 3460 6464 w (error,) 3610 6464 w (this) 3915 6464 w (does) 4127 6464 w (not) 4391 6464 w (necessar\255) 4584 6464 w (ily) 720 6584 w (mean) 864 6584 w (that) 1163 6584 w (no) 1387 6584 w (violation) 1543 6584 w (of) 1991 6584 w (a) 2122 6584 w (correctness) 2210 6584 w (requirement) 2801 6584 w (is) 3430 6584 w (possible) 3543 6584 w (within) 3979 6584 w (that) 4308 6584 w (number) 4532 6584 w (of) 4942 6584 w (steps.) 720 6704 w (The) 1079 6704 w (verifier) 1297 6704 w (performs) 1675 6704 w (its) 2155 6704 w (search) 2310 6704 w (for) 2664 6704 w (errors) 2841 6704 w (by) 3170 6704 w (using) 3323 6704 w (a) 3627 6704 w (standard) 3720 6704 w (depth-first) 4185 6704 w (graph) 4757 6704 w (search.) 720 6824 w (If) 1147 6824 w (the) 1260 6824 w (search) 1462 6824 w (is) 1825 6824 w (truncated) 1952 6824 w (at) 2463 6824 w (N) 2602 6824 w (steps,) 2723 6824 w (and) 3060 6824 w (a) 3287 6824 w (state) 3389 6824 w (at) 3672 6824 w (level) 3810 6824 w (N-1) 4078 6824 w (happens) 4319 6824 w (to) 4777 6824 w (be) 4921 6824 w (reachable) 720 6944 w (also) 1228 6944 w (within) 1464 6944 w (fewer) 1800 6944 w (steps) 2107 6944 w (from) 2405 6944 w (the) 2677 6944 w (initial) 2872 6944 w (state,) 3182 6944 w (the) 3490 6944 w (second) 3685 6944 w (time) 4069 6944 w (it) 4324 6944 w (is) 4430 6944 w (reached) 4550 6944 w (it) 4974 6944 w (will) 720 7064 w (not) 925 7064 w (be) 1126 7064 w (explored) 1286 7064 w (again,) 1757 7064 w (and) 2093 7064 w (thus) 2314 7064 w (neither) 2567 7064 w (will) 2950 7064 w (its) 3154 7064 w (successors.) 3311 7064 w (Those) 3941 7064 w (successors) 4274 7064 w (may) 4840 7064 w (contain) 720 7184 w (errors) 1117 7184 w (states) 1448 7184 w (that) 1775 7184 w (are) 2006 7184 w (reachable) 2198 7184 w (within) 2706 7184 w (N) 3042 7184 w (steps) 3156 7184 w (from) 3454 7184 w (the) 3726 7184 w (initial) 3922 7184 w (state.) 4233 7184 w (Normally,) 4574 7184 w (the) 720 7304 w (verification) 917 7304 w (should) 1498 7304 w (be) 1868 7304 w (run) 2028 7304 w (in) 2234 7304 w (such) 2366 7304 w (a) 2633 7304 w (way) 2729 7304 w (that) 2954 7304 w (no) 3186 7304 w (execution) 3350 7304 w (paths) 3866 7304 w (can) 4175 7304 w (be) 4384 7304 w (truncated,) 4544 7304 w cleartomark showpage saveobj restore %%EndPage: 24 24 %%Page: 25 25 /saveobj save def mark 25 pagesetup 10 /LucidaSansUnicode00 f (\255 25 \255) 2752 480 w (but) 720 840 w (to) 926 840 w (force) 1068 840 w (the) 1358 840 w (complete) 1557 840 w (exploration) 2047 840 w (of) 2646 840 w (also) 2788 840 w (truncated) 3028 840 w (searches) 3536 840 w (one) 4004 840 w (can) 4228 840 w (override) 4441 840 w (the) 4885 840 w (defaults) 720 960 w (with) 1159 960 w (a) 1413 960 w (compile-time) 1517 960 w (flag) 2221 960 w 10 /LucidaTypewriter f (-DREACH) 2453 960 w 10 /LucidaSansUnicode00 f (.) 2957 960 w (When) 3069 960 w (the) 3383 960 w (verifier) 3586 960 w (is) 3975 960 w (compiled) 4103 960 w (with) 4596 960 w (that) 4849 960 w (additional) 720 1080 w (directive,) 1240 1080 w (the) 1723 1080 w (depth) 1915 1080 w (at) 2233 1080 w (which) 2362 1080 w (each) 2680 1080 w (state) 2941 1080 w (is) 3214 1080 w (visited) 3332 1080 w (is) 3687 1080 w (remembered,) 3805 1080 w (and) 4493 1080 w (a) 4711 1080 w (state) 4804 1080 w (is) 720 1200 w (now) 838 1200 w (considered) 1076 1200 w (unvisited) 1647 1200 w (if) 2126 1200 w (it) 2230 1200 w (is) 2334 1200 w (revisited) 2452 1200 w (via) 2904 1200 w (a) 3078 1200 w (shorter) 3170 1200 w (path) 3556 1200 w (later) 3810 1200 w (in) 4065 1200 w (the) 4193 1200 w (search.) 4385 1200 w (\(This) 4802 1200 w (option cannot be used with a supertrace search.\)) 720 1320 w 10 /LucidaSans-Demi f (2.4.3.) 720 1560 w (Liveness or Safety Verification) 1051 1560 w 10 /LucidaSansUnicode00 f (For) 720 1716 w (the) 918 1716 w (last,) 1115 1716 w (and) 1361 1716 w (perhaps) 1583 1716 w (the) 2016 1716 w (most) 2213 1716 w (critical,) 2498 1716 w (runtime) 2895 1716 w (decision:) 3318 1716 w (it) 3795 1716 w (must) 3904 1716 w (be) 4190 1716 w (decided) 4352 1716 w (if) 4776 1716 w (the) 4885 1716 w (system is to be checked for safety violations or for liveness violations.) 720 1836 w 9 /LucidaTypewriter f (pan) 1008 2006 w (-l) 1268 2006 w (#) 1528 2006 w (search) 1658 2006 w (for) 2113 2006 w (non-progress) 2373 2006 w (cycles) 3218 2006 w (pan) 1008 2116 w (-a) 1268 2116 w (#) 1528 2116 w (search) 1658 2116 w (for) 2113 2116 w (acceptance) 2373 2116 w (cycles) 3088 2116 w 10 /LucidaSansUnicode00 f (\(In) 720 2296 w (the) 882 2296 w (first) 1075 2296 w (case,) 1308 2296 w (though,) 1591 2296 w (you) 2007 2296 w (must) 2221 2296 w (compile) 2503 2296 w (pan.c) 2924 2296 w (with) 3226 2296 w (-DNP) 3470 2296 w (as) 3771 2296 w (an) 3916 2296 w (additional) 4072 2296 w (directive.) 4594 2296 w (If) 720 2416 w (you) 826 2416 w (forget,) 1041 2416 w (the) 1407 2416 w (executable) 1602 2416 w (will) 2168 2416 w (remind) 2372 2416 w (you.\)) 2756 2416 w (If) 3067 2416 w (you) 3172 2416 w (don) 3386 2416 w 10 /LucidaSansUnicode20 f (\031) 3572 2416 w 10 /LucidaSansUnicode00 f (t) 3604 2416 w (use) 3680 2416 w (either) 3888 2416 w (of) 4208 2416 w (the) 4345 2416 w (above) 4539 2416 w (two) 4865 2416 w (options,) 720 2536 w (the) 1165 2536 w (default) 1369 2536 w (types) 1757 2536 w (of) 2065 2536 w (correctness) 2212 2536 w (properties) 2819 2536 w (are) 3367 2536 w (checked) 3569 2536 w (\(assertion) 4016 2536 w (violations,) 4542 2536 w (completeness,) 720 2656 w (race) 1457 2656 w (conditions,) 1699 2656 w (etc.\).) 2275 2656 w (Note) 2586 2656 w (that) 2852 2656 w (the) 3081 2656 w (use) 3274 2656 w (of) 3481 2656 w (a) 3617 2656 w 10 /LucidaTypewriter f (never) 3710 2656 w 10 /LucidaSansUnicode00 f (claim) 4108 2656 w (that) 4403 2656 w (contains) 4632 2656 w 10 /LucidaTypewriter f (accept) 720 2776 w 10 /LucidaSansUnicode00 f (labels requires the use of the) 1184 2776 w 10 /LucidaTypewriter f (-a) 2635 2776 w 10 /LucidaSansUnicode00 f (flag for complete verification.) 2811 2776 w (Adding) 720 2932 w (option) 1111 2932 w 10 /LucidaTypewriter f (-f) 1467 2932 w 10 /LucidaSansUnicode00 f (restricts) 1654 2932 w (the) 2092 2932 w (search) 2291 2932 w (for) 2651 2932 w (liveness) 2834 2932 w (properties) 3264 2932 w (further) 3806 2932 w (under) 4186 2932 w (a) 4514 2932 w (standard) 4613 2932 w 10 /LucidaSans-Italic f (weak fairness) 720 3052 w 10 /LucidaSansUnicode00 f (constraint:) 1423 3052 w 9 /LucidaTypewriter f (pan) 1008 3222 w (-f) 1268 3222 w (-l) 1463 3222 w (#) 2048 3222 w (search) 2178 3222 w (for) 2633 3222 w (weakly) 2893 3222 w (fair) 3348 3222 w (non-progress) 3673 3222 w (cycles) 4518 3222 w (pan) 1008 3332 w (-f) 1268 3332 w (-a) 1463 3332 w (#) 2048 3332 w (search) 2178 3332 w (for) 2633 3332 w (weakly) 2893 3332 w (fair) 3348 3332 w (acceptance) 3673 3332 w (cycles) 4388 3332 w 10 /LucidaSansUnicode00 f (With) 720 3512 w (this) 982 3512 w (constraint,) 1209 3512 w (each) 1775 3512 w (process) 2047 3512 w (is) 2469 3512 w (required) 2597 3512 w (to) 3056 3512 w (appear) 3202 3512 w (infinitely) 3583 3512 w (often) 4053 3512 w (in) 4355 3512 w (the) 4495 3512 w (infinite) 4699 3512 w (trace) 720 3632 w (that) 1000 3632 w (constitutes) 1231 3632 w (the) 1805 3632 w (violation) 2000 3632 w (of) 2455 3632 w (a) 2593 3632 w (liveness) 2688 3632 w (property) 3114 3632 w (\(e.g.,) 3568 3632 w (a) 3855 3632 w (non-progress) 3950 3632 w (cycle) 4659 3632 w (or) 4938 3632 w (an) 720 3752 w (acceptance) 888 3752 w (cycle\),) 1476 3752 w (unless) 1831 3752 w (it) 2193 3752 w (is) 2310 3752 w (permanently) 2441 3752 w (blocked) 3099 3752 w (\(i.e.,) 3532 3752 w (has) 3798 3752 w (no) 4018 3752 w (executable) 4193 3752 w (state\255) 4771 3752 w (ments) 720 3872 w (after) 1076 3872 w (a) 1359 3872 w (certain) 1471 3872 w (point) 1859 3872 w (in) 2168 3872 w (the) 2316 3872 w (trace) 2528 3872 w (is) 2825 3872 w (reached\).) 2962 3872 w (Adding) 3500 3872 w (the) 3905 3872 w (fairness) 4116 3872 w (constraint) 4554 3872 w (increases) 720 3992 w (the) 1209 3992 w (time) 1401 3992 w (complexity) 1653 3992 w (of) 2222 3992 w (the) 2357 3992 w (verification) 2549 3992 w (by) 3125 3992 w (a) 3277 3992 w (factor) 3369 3992 w (that) 3688 3992 w (is) 3916 3992 w (linear) 4033 3992 w (in) 4342 3992 w (the) 4470 3992 w (number) 4663 3992 w (of active processes.) 720 4112 w (By default, the verifier will report on unreachable code) 720 4268 w (in) 3395 4268 w (the) 3519 4268 w (model) 3707 4268 w (only) 4042 4268 w (when) 4279 4268 w (a) 4569 4268 w (verifica\255) 4657 4268 w (tion) 720 4388 w (run) 943 4388 w (is) 1142 4388 w (successfully) 1256 4388 w (completed.) 1872 4388 w (This) 2479 4388 w (default) 2717 4388 w (behavior) 3089 4388 w (can) 3541 4388 w (be) 3742 4388 w (turned) 3894 4388 w (off) 4248 4388 w (with) 4416 4388 w (the) 4654 4388 w (run\255) 4842 4388 w (time option) 720 4508 w 10 /LucidaTypewriter f (-n) 1312 4508 w 10 /LucidaSansUnicode00 f (, as in:) 1456 4508 w 9 /LucidaTypewriter f (pan) 1008 4678 w (-n) 1268 4678 w (-f) 1463 4678 w (-a) 1658 4678 w 10 /LucidaSansUnicode00 f (\(The) 720 4858 w (order) 980 4858 w (in) 1288 4858 w (which) 1425 4858 w (the) 1752 4858 w (options) 1953 4858 w (such) 2363 4858 w (as) 2635 4858 w (these) 2787 4858 w (are) 3095 4858 w (listed) 3293 4858 w (is) 3604 4858 w (always) 3730 4858 w (irrelevant.\)) 4096 4858 w (A) 4698 4858 w (brief) 4814 4858 w (explanation of these and other runtime options can be determined by typing:) 720 4978 w 9 /LucidaTypewriter f (pan) 1008 5148 w (--) 1268 5148 w 10 /LucidaSans-Demi f (2.5.) 720 5448 w (Inspecting Error Traces) 962 5448 w 10 /LucidaSansUnicode00 f (If) 720 5604 w (the) 832 5604 w (verification) 1033 5604 w (run) 1618 5604 w (reports) 1829 5604 w (an) 2226 5604 w (error,) 2390 5604 w (any) 2709 5604 w (error,) 2925 5604 w 9 /LucidaSansUnicode00 f (SPIN) 3244 5604 w 10 /LucidaSansUnicode00 f (dumps) 3483 5604 w (an) 3862 5604 w (error) 4026 5604 w (trail) 4313 5604 w (into) 4551 5604 w (a) 4787 5604 w (file) 4889 5604 w (named) 720 5724 w 10 /LucidaTypewriter f (spec.trail) 1110 5724 w 10 /LucidaSansUnicode00 f (,) 1830 5724 w (where) 1923 5724 w 10 /LucidaTypewriter f (spec) 2276 5724 w 10 /LucidaSansUnicode00 f (is) 2625 5724 w (the) 2765 5724 w (name) 2980 5724 w (of) 3306 5724 w (your) 3464 5724 w (original) 3740 5724 w 9 /LucidaSansUnicode00 f (PROMELA) 4168 5724 w 10 /LucidaSansUnicode00 f (file.) 4641 5724 w (To) 4916 5724 w (inspect) 720 5844 w (the) 1104 5844 w (trail,) 1294 5844 w (and) 1552 5844 w (determine) 1767 5844 w (the) 2296 5844 w (cause) 2487 5844 w (of) 2798 5844 w (the) 2932 5844 w (error,) 3123 5844 w (you) 3431 5844 w (must) 3642 5844 w (use) 3921 5844 w (the) 4126 5844 w (guided) 4317 5844 w (simula\255) 4688 5844 w (tion option.) 720 5964 w (For instance:) 1350 5964 w 9 /LucidaTypewriter f (spin) 1008 6134 w (-t) 1333 6134 w (-c) 1528 6134 w (spec) 1723 6134 w 10 /LucidaSansUnicode00 f (gives you a summary of message exchanges in the trail, or) 720 6314 w 9 /LucidaTypewriter f (spin) 1008 6484 w (-t) 1333 6484 w (-p) 1528 6484 w (spec) 1723 6484 w 10 /LucidaSansUnicode00 f (gives) 720 6664 w (a) 1010 6664 w (printout) 1105 6664 w (of) 1537 6664 w (every) 1675 6664 w (single) 1972 6664 w (step) 2302 6664 w (executed.) 2550 6664 w (Add) 3097 6664 w (as) 3333 6664 w (many) 3480 6664 w (extra) 3783 6664 w (or) 4074 6664 w (different) 4217 6664 w (options) 4676 6664 w (as you need to pin down the error:) 720 6784 w 9 /LucidaTypewriter f (spin) 1008 6954 w (-t) 1333 6954 w (-r) 1528 6954 w (-s) 1723 6954 w (-l) 1918 6954 w (-g) 2113 6954 w (spec) 2308 6954 w 10 /LucidaSansUnicode00 f (Make sure the file) 720 7134 w 10 /LucidaTypewriter f (spec) 1619 7134 w 10 /LucidaSansUnicode00 f (didn) 1939 7134 w 10 /LucidaSansUnicode20 f (\031) 2156 7134 w 10 /LucidaSansUnicode00 f (t change since you generated the analyzer from it.) 2188 7134 w cleartomark showpage saveobj restore %%EndPage: 25 25 %%Page: 26 26 /saveobj save def mark 26 pagesetup 10 /LucidaSansUnicode00 f (\255 26 \255) 2752 480 w (If you find non-progress) 720 840 w (cycles,) 1950 840 w (add) 2305 840 w (or) 2519 840 w (delete) 2654 840 w (progress) 2984 840 w (labels) 3443 840 w (and) 3759 840 w (repeat) 3972 840 w (the) 4313 840 w (verification) 4501 840 w (until you are content that you have found what you were looking for.) 720 960 w (If) 720 1200 w (you) 822 1200 w (are) 1033 1200 w (not) 1221 1200 w (interested) 1417 1200 w (in) 1941 1200 w (the) 2068 1200 w (first) 2259 1200 w (error) 2490 1200 w (reported,) 2766 1200 w (use) 3252 1200 w (pan) 3458 1200 w (option) 3675 1200 w 10 /LucidaTypewriter f (-c) 4025 1200 w 10 /LucidaSansUnicode00 f (to) 4206 1200 w (report) 4341 1200 w (on) 4677 1200 w (spe\255) 4837 1200 w (cific others:) 720 1320 w 9 /LucidaTypewriter f (pan) 1008 1490 w (-c3) 1268 1490 w 10 /LucidaSansUnicode00 f (ignores) 720 1670 w (the) 1122 1670 w (first) 1317 1670 w (two) 1552 1670 w (errors) 1767 1670 w (and) 2098 1670 w (reports) 2318 1670 w (on) 2708 1670 w (the) 2871 1670 w (third) 3066 1670 w (one) 3338 1670 w (that) 3557 1670 w (is) 3788 1670 w (discovered.) 3909 1670 w (If) 4537 1670 w (you) 4644 1670 w (just) 4860 1670 w (want to count all errors and not see them, use) 720 1790 w 9 /LucidaTypewriter f (pan) 1008 1960 w (-c0) 1268 1960 w 10 /LucidaSans-Demi f (State Assignments) 720 2260 w 10 /LucidaSansUnicode00 f (Internally, the verifiers produced by) 720 2416 w 9 /LucidaSansUnicode00 f (SPIN) 2486 2416 w 10 /LucidaSansUnicode00 f (deal with a) 2710 2416 w (formalization) 3270 2416 w (of) 3949 2416 w (a) 4080 2416 w 9 /LucidaSansUnicode00 f (PROMELA) 4168 2416 w 10 /LucidaSansUnicode00 f (model) 4614 2416 w (in) 4949 2416 w (terms) 720 2536 w (of) 1049 2536 w (extended) 1198 2536 w (finite) 1703 2536 w (state) 2004 2536 w (machines.) 2291 2536 w 9 /LucidaSansUnicode00 f (SPIN) 2859 2536 w 10 /LucidaSansUnicode00 f (therefore) 3102 2536 w (assigns) 3600 2536 w (state) 4012 2536 w (numbers) 4299 2536 w (to) 4778 2536 w (all) 4927 2536 w (statements in the model.) 720 2656 w (The state numbers are listed in all the relevant output) 1995 2656 w (to) 4647 2656 w (make) 4778 2656 w (it) 720 2776 w (completely) 824 2776 w (unambiguous) 1389 2776 w (\(source) 2089 2776 w (line) 2482 2776 w (references) 2696 2776 w (unfortunately) 3241 2776 w (do) 3931 2776 w (not) 4092 2776 w (have) 4289 2776 w (that) 4551 2776 w (prop\255) 4779 2776 w (erty\).) 720 2896 w (To) 1047 2896 w (confirm) 1215 2896 w (the) 1633 2896 w (precise) 1832 2896 w (state) 2223 2896 w (assignments,) 2503 2896 w (there) 3188 2896 w (is) 3484 2896 w (a) 3609 2896 w (runtime) 3709 2896 w (option) 4134 2896 w (to) 4492 2896 w (the) 4635 2896 w (ana\255) 4835 2896 w (lyzer generated:) 720 3016 w 9 /LucidaTypewriter f (pan) 1008 3186 w (-d) 1268 3186 w (#) 1528 3186 w (print) 1658 3186 w (state) 2048 3186 w (machines) 2438 3186 w 10 /LucidaSansUnicode00 f (which will print out a table with all state assignments for each) 720 3366 w 10 /LucidaTypewriter f (proctype) 3762 3366 w 10 /LucidaSansUnicode00 f (in the model.) 4370 3366 w 10 /LucidaSans-Demi f (2.6.) 720 3606 w (Exploiting Partial Order Reductions) 962 3606 w 10 /LucidaSansUnicode00 f (The) 720 3762 w (search) 938 3762 w (algorithm) 1291 3762 w (used) 1797 3762 w (by) 2066 3762 w 9 /LucidaSansUnicode00 f (SPIN) 2218 3762 w 10 /LucidaSansUnicode00 f (is) 2447 3762 w (optimized) 2564 3762 w (according) 3089 3762 w (to) 3601 3762 w (the) 3736 3762 w (rules) 3928 3762 w (of) 4204 3762 w (a) 4339 3762 w (partial) 4431 3762 w (order) 4778 3762 w (theory) 720 3882 w (explained) 1076 3882 w (in) 1597 3882 w ([HoPe94].) 1734 3882 w (The) 2282 3882 w (effect) 2509 3882 w (of) 2829 3882 w (the) 2973 3882 w (reduction,) 3174 3882 w (however,) 3714 3882 w (can) 4197 3882 w (be) 4411 3882 w (increased) 4576 3882 w (considerably) 720 4002 w (if) 1366 4002 w (the) 1465 4002 w (verifier) 1653 4002 w (has) 2027 4002 w (extra) 2228 4002 w (information) 2511 4002 w (about) 3112 4002 w (the) 3424 4002 w (access) 3613 4002 w (of) 3962 4002 w (processes) 4094 4002 w (to) 4609 4002 w (global) 4741 4002 w (message) 720 4122 w (channels.) 1181 4122 w (For) 1710 4122 w (this) 1903 4122 w (purpose,) 2118 4122 w (there) 2583 4122 w (are) 2871 4122 w (two) 3059 4122 w (keywords) 3270 4122 w (in) 3765 4122 w (the) 3892 4122 w (language) 4083 4122 w (that) 4562 4122 w (allow) 4789 4122 w (one) 720 4242 w (to) 954 4242 w (assert) 1108 4242 w (that) 1455 4242 w (specific) 1702 4242 w (channels) 2125 4242 w (are) 2609 4242 w (used) 2817 4242 w (exclusively) 3105 4242 w (by) 3689 4242 w (specific) 3860 4242 w (processes.) 4283 4242 w (For) 4884 4242 w (example, the assertions) 720 4362 w 9 /LucidaTypewriter f (xr) 1008 4532 w (q1;) 1203 4532 w (xs) 1008 4642 w (q2;) 1203 4642 w 10 /LucidaSansUnicode00 f (claim) 720 4822 w (that) 1012 4822 w (the) 1238 4822 w (process) 1428 4822 w (that) 1837 4822 w (executes) 2063 4822 w (them) 2528 4822 w (is) 2811 4822 w (the) 2926 4822 w 10 /LucidaSans-Italic f (only) 3116 4822 w 10 /LucidaSansUnicode00 f (process) 3354 4822 w (that) 3763 4822 w (will) 3989 4822 w (receive) 4188 4822 w (messages) 4565 4822 w (from channel) 720 4942 w 10 /LucidaTypewriter f (q1) 1393 4942 w 10 /LucidaSansUnicode00 f (, and the) 1537 4942 w 10 /LucidaSans-Italic f (only) 2000 4942 w 10 /LucidaSansUnicode00 f (process that will send messages to channel) 2235 4942 w 10 /LucidaTypewriter f (q2) 4370 4942 w 10 /LucidaSansUnicode00 f (.) 4514 4942 w (If) 720 5098 w (an) 823 5098 w (exclusive) 977 5098 w (usage) 1461 5098 w (assertion) 1784 5098 w (turns) 2264 5098 w (out) 2554 5098 w (to) 2751 5098 w (be) 2886 5098 w (invalid,) 3043 5098 w (the) 3432 5098 w (verifier) 3625 5098 w (will) 4004 5098 w (be) 4206 5098 w (able) 4363 5098 w (to) 4604 5098 w (detect) 4740 5098 w (this, and report it as a violation of an implicit correctness requirement.) 720 5218 w (Every) 720 5374 w (read) 1017 5374 w (or) 1274 5374 w (write) 1418 5374 w (access) 1700 5374 w (to) 2058 5374 w (a) 2199 5374 w (message) 2297 5374 w (channel) 2764 5374 w (can) 3184 5374 w (introduce) 3395 5374 w (new) 3900 5374 w (dependencies) 4138 5374 w (that) 4849 5374 w (may) 720 5494 w (diminish) 981 5494 w (the) 1460 5494 w (maximum) 1676 5494 w (effect) 2223 5494 w (of) 2558 5494 w (the) 2716 5494 w (partial) 2931 5494 w (order) 3300 5494 w (reduction) 3622 5494 w (strategies.) 4144 5494 w (If,) 4743 5494 w (for) 4901 5494 w (instance,) 720 5614 w (a) 1190 5614 w (process) 1280 5614 w (uses) 1689 5614 w (the) 1944 5614 w 10 /LucidaTypewriter f (len) 2134 5614 w 10 /LucidaSansUnicode00 f (function) 2385 5614 w (to) 2821 5614 w (check) 2954 5614 w (the) 3267 5614 w (number) 3457 5614 w (of) 3869 5614 w (messages) 4002 5614 w (stored) 4513 5614 w (in) 4858 5614 w (a) 4985 5614 w (channel,) 720 5734 w (this) 1172 5734 w (counts) 1393 5734 w (as) 1759 5734 w (a) 1907 5734 w (read) 2004 5734 w (access,) 2261 5734 w (which) 2650 5734 w (can) 2973 5734 w (in) 3183 5734 w (some) 3316 5734 w (cases) 3619 5734 w (invalidate) 3925 5734 w (an) 4434 5734 w (exclusive) 4593 5734 w (access) 720 5854 w (pattern) 1076 5854 w (that) 1468 5854 w (might) 1700 5854 w (otherwise) 2025 5854 w (exist.) 2537 5854 w (There) 2877 5854 w (are) 3197 5854 w (two) 3391 5854 w (special) 3608 5854 w (functions) 3984 5854 w (that) 4478 5854 w (can) 4711 5854 w (be) 4921 5854 w (used) 720 5974 w (to) 998 5974 w (poll) 1142 5974 w (the) 1370 5974 w (size) 1571 5974 w (of) 1810 5974 w (a) 1954 5974 w (channel) 2054 5974 w (in) 2476 5974 w (a) 2612 5974 w (safe) 2712 5974 w (way) 2956 5974 w (that) 3185 5974 w (is) 3421 5974 w (compatible) 3546 5974 w (with) 4128 5974 w (the) 4378 5974 w (reduction) 4578 5974 w (strategy.) 720 6094 w (The) 720 6250 w (expression) 972 6250 w 10 /LucidaTypewriter f (nfull\(qname\)) 1574 6250 w 10 /LucidaSansUnicode00 f (returns) 2509 6250 w (true) 2930 6250 w (if) 3197 6250 w (channel) 3334 6250 w 10 /LucidaTypewriter f (qname) 3783 6250 w 10 /LucidaSansUnicode00 f (is) 4215 6250 w (not) 4367 6250 w (full,) 4599 6250 w (and) 4860 6250 w 10 /LucidaTypewriter f (nempty\(qname\)) 720 6370 w 10 /LucidaSansUnicode00 f (returns) 1694 6370 w (true) 2082 6370 w (if) 2316 6370 w (channel) 2420 6370 w 10 /LucidaTypewriter f (qname) 2835 6370 w 10 /LucidaSansUnicode00 f (contains) 3232 6370 w (at) 3677 6370 w (least) 3806 6370 w (one) 4071 6370 w (message.) 4287 6370 w (Note) 4812 6370 w (that) 720 6490 w (the) 971 6490 w (parser) 1186 6490 w (will) 1553 6490 w (not) 1777 6490 w (recognize) 1997 6490 w (the) 2532 6490 w (free) 2748 6490 w (form) 2999 6490 w (expressions) 3292 6490 w 10 /LucidaTypewriter f (!full\(qname\)) 3935 6490 w 10 /LucidaSansUnicode00 f (and) 4860 6490 w 10 /LucidaTypewriter f (!empty\(qname\)) 720 6610 w 10 /LucidaSansUnicode00 f (as) 1757 6610 w (equally) 1964 6610 w (safe,) 2411 6610 w (and) 2743 6610 w (it) 3024 6610 w (will) 3191 6610 w (forbid) 3456 6610 w (constructions) 3851 6610 w (such) 4608 6610 w (as) 4934 6610 w 10 /LucidaTypewriter f (!nfull\(qname\)) 720 6730 w 10 /LucidaSansUnicode00 f (or) 1692 6730 w 10 /LucidaTypewriter f (!nempty\(qname\)) 1830 6730 w 10 /LucidaSansUnicode00 f (.) 2838 6730 w (More) 2938 6730 w (detail) 3219 6730 w (on) 3525 6730 w (this) 3685 6730 w (aspect) 3901 6730 w (of) 4251 6730 w (the) 4386 6730 w (reduction) 4578 6730 w (algorithms can be found in [HoPe94].) 720 6850 w cleartomark showpage saveobj restore %%EndPage: 26 26 %%Page: 27 27 /saveobj save def mark 27 pagesetup 10 /LucidaSansUnicode00 f (\255 27 \255) 2752 480 w 10 /LucidaSans-Demi f (Keywords) 720 840 w 10 /LucidaSansUnicode00 f (For) 720 996 w (reference,) 918 996 w (the) 1448 996 w (following) 1645 996 w (table) 2134 996 w (contains) 2416 996 w (all) 2866 996 w (the) 3021 996 w (keywords,) 3218 996 w (predefined) 3751 996 w (functions,) 4320 996 w (pre\255) 4847 996 w (defined) 720 1116 w (variables,) 1123 1116 w (and) 1623 1116 w (special) 1840 1116 w (label-prefixes) 2211 1116 w (of) 2932 1116 w (the) 3066 1116 w (language) 3257 1116 w 9 /LucidaSansUnicode00 f (PROMELA) 3736 1116 w 10 /LucidaSansUnicode00 f (,) 4149 1116 w (and) 4217 1116 w (refers) 4433 1116 w (to) 4751 1116 w (the) 4885 1116 w (section of this paper in which they were discussed.) 720 1236 w (_last \(1.4\)) 970 1416 w (_pid \(1.1.1\)) 2222 1416 w (accept \(1.3.2\)) 3147 1416 w (active \(1.1.1\)) 4074 1416 w (assert \(1.3.1\)) 970 1536 w (atomic \(1.2.1\)) 2222 1536 w (bit \(1.1.2\)) 3147 1536 w (bool \(1.1.2\)) 4074 1536 w (break \(1.2.4\)) 970 1656 w (byte \(1.1.2\)) 2222 1656 w (chan \(1.1.3\)) 3147 1656 w (d_step \(1.2.2\)) 4074 1656 w (do \(1.2.4\)) 970 1776 w (else \(1.2.4\)) 2222 1776 w (empty \(1.1.3\)) 3147 1776 w (enabled \(1.4\)) 4074 1776 w (end \(1.3.2\)) 970 1896 w (fi \(1.2.3\)) 2222 1896 w (full \(1.1.3\)) 3147 1896 w (goto \(1.2.2\)) 4074 1896 w (hidden \(not discussed\)) 970 2016 w (if \(1.2.3\)) 2222 2016 w (init \(1.1.1\)) 3147 2016 w (int \(1.1.2\)) 4074 2016 w (len \(1.1.3\)) 970 2136 w (mtype \(1.1.3\)) 2222 2136 w (nempty \(2.6\)) 3147 2136 w (never \(1.3.3\)) 4074 2136 w (nfull \(2.6\)) 970 2256 w (od \(1.2.4\)) 2222 2256 w (of \(1.1.3\)) 3147 2256 w (pc_value \(1.4\)) 4074 2256 w (printf \(1.1.1\)) 970 2376 w (proctype \(1.1.1\)) 2222 2376 w (progress \(1.3.2\)) 3147 2376 w (run \(1.1.1\)) 4074 2376 w (short \(1.1.2\)) 970 2496 w (skip \(1.2\)) 2222 2496 w (timeout \(1.2.4\)) 3147 2496 w (typedef \(1.1.2\)) 4074 2496 w (unless \(1.2.5\)) 970 2616 w (xr \(2.6\)) 2222 2616 w (xs \(2.6\)) 3147 2616 w 10 /LucidaSans-Demi f (References) 720 2916 w 10 /LucidaSansUnicode00 f ([Ho91] G.J. Holzmann,) 720 3072 w 10 /LucidaSans-Italic f (Design and Validation of Computer Protocols,) 1835 3072 w 10 /LucidaSansUnicode00 f (Prentice Hall, 1991.) 4085 3072 w ([Ho93]) 720 3228 w (G.J.) 1125 3228 w (Holzmann,) 1370 3228 w 10 /LucidaSansUnicode20 f (\030\030) 1973 3228 w 10 /LucidaSansUnicode00 f (Tutorial:) 2037 3228 w (Design) 2524 3228 w (and) 2938 3228 w (Validation) 3197 3228 w (of) 3761 3228 w (Protocols,) 3938 3228 w 10 /LucidaSansUnicode20 f (\031\031) 4417 3228 w 10 /LucidaSans-Italic f (Computer) 4560 3228 w (Networks and ISDN Systems,) 720 3348 w 10 /LucidaSansUnicode00 f (1993, Vol. 25, No. 9, pp. 981-1017.) 2143 3348 w ([HoPe94]) 720 3504 w (G.J.) 1196 3504 w (Holzmann) 1401 3504 w (and) 1932 3504 w (D.A.) 2150 3504 w (Peled,) 2396 3504 w 10 /LucidaSansUnicode20 f (\030\030) 2725 3504 w 10 /LucidaSansUnicode00 f (An) 2789 3504 w (improvement) 2958 3504 w (in) 3639 3504 w (formal) 3768 3504 w (verification,) 4122 3504 w 10 /LucidaSansUnicode20 f (\031\031) 4693 3504 w 10 /LucidaSans-Italic f (Proc.) 4795 3504 w (7th) 720 3624 w (Int.) 923 3624 w (Conf.) 1124 3624 w (on) 1421 3624 w (Formal) 1580 3624 w (Description) 1962 3624 w (Techniques,) 2552 3624 w 10 /LucidaSansUnicode00 f (FORTE94,) 3167 3624 w (Berne,) 3677 3624 w (Switzerland.) 4022 3624 w (October) 4653 3624 w (1994.) 720 3744 w ([Ho95]) 720 3900 w (G.J.) 1092 3900 w (Holzmann,) 1304 3900 w 10 /LucidaSansUnicode20 f (\030\030) 1874 3900 w 10 /LucidaSansUnicode00 f (An) 1938 3900 w (Analysis) 2114 3900 w (of) 2557 3900 w (Bitstate) 2701 3900 w (Hashing,) 3107 3900 w 10 /LucidaSansUnicode20 f (\031\031) 3534 3900 w 10 /LucidaSansUnicode00 f (technical) 3644 3900 w (report) 4122 3900 w (2/95,) 4467 3900 w (avail\255) 4787 3900 w (able from author.) 720 4020 w ([HS99]) 720 4176 w (G.J.) 1089 4176 w (Holzmann,) 1305 4176 w 10 /LucidaSansUnicode20 f (\030\030) 1879 4176 w 10 /LucidaSansUnicode00 f (Software) 1943 4176 w (model) 2410 4176 w (checking:) 2762 4176 w (extracting) 3275 4176 w (verification) 3816 4176 w (models) 4405 4176 w (from) 4808 4176 w (source) 720 4296 w (code,) 1086 4296 w 10 /LucidaSansUnicode20 f (\031\031) 1349 4296 w 10 /LucidaSans-Italic f (Proc.) 1457 4296 w (Formal) 1746 4296 w (Methods) 2132 4296 w (in) 2579 4296 w (Software) 2714 4296 w (Engineering) 3186 4296 w (and) 3804 4296 w (Distributed) 4031 4296 w (Systems,) 4616 4296 w 10 /LucidaSansUnicode00 f (PSTV/FORTE99, Beijng, China, Oct. 1999, Kluwer,pp. 481-497.) 720 4416 w cleartomark showpage saveobj restore %%EndPage: 27 27 %%Trailer done %%Pages: 27