From 26eee7328031f78b063ab71265ef4fddc8619c72 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Mon, 11 Dec 2000 23:01:26 +0000 Subject: Fix fucking CVS conflicts because fucking CVS is a fucking big doofus - Federico svn path=/trunk/; revision=6920 --- libical/doc/UsingLibical.ps | 2595 ++++++++++++++++++++++++++----------------- 1 file changed, 1553 insertions(+), 1042 deletions(-) (limited to 'libical/doc/UsingLibical.ps') diff --git a/libical/doc/UsingLibical.ps b/libical/doc/UsingLibical.ps index 83c8f6203f..5a618a0c7e 100644 --- a/libical/doc/UsingLibical.ps +++ b/libical/doc/UsingLibical.ps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 -%%Creator: dvips(k) 5.85 Copyright 1999 Radical Eye Software +%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: UsingLibical.dvi -%%Pages: 10 +%%Pages: 18 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments @@ -10,7 +10,7 @@ %+ /usr/local/home/eric/proj/FreeAssociation/libical/doc/UsingLibical.ps %+ UsingLibical.dvi %DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2000.06.10:1815 +%DVIPSSource: TeX output 2000.11.03:1354 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -71,178 +71,32 @@ rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 600 600 (UsingLibical.dvi) @start -%DVIPSBitmapFont: Fa ecrm0600 6 1 -/Fa 1 50 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49 -D E +%DVIPSBitmapFont: Fa ecti1000 10 7 +/Fa 7 118 df44 D<147F903803FFC090380FC1E0 +90381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091C7FC48 +5AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0EC0F80 +6CEB3E00380F81F83803FFE0C690C7FC1D2677A426>99 D109 D<3903C003F0390FF01FFC391E +783C0F381C7C703A3C3EE03F8038383FC0EB7F800078150000701300151CD8F07E90C7FC +EAE0FE5BA2120012015BA312035BA312075BA3120F5BA3121F5BA3123F90C9FC120E2126 +79A423>114 D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F000 +01130313F0A215E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C013 +00143F141F140F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB4 +5AD801FEC7FC1C267AA422>II<13F8D803FEEB01C0D8078FEB03E0390E0F8007121E121C0038140F131F007815C0 +1270013F131F00F0130000E015805BD8007E133FA201FE14005B5D120149137EA215FE12 +0349EBFC0EA20201131E161C15F813E0163CD9F003133814070001ECF07091381EF8F03A +00F83C78E090393FF03FC090390FC00F00272679A42D>I E %EndDVIPSBitmapFont -%DVIPSBitmapFont: Fb ecbx1000 10 55 -/Fb 55 122 df<913A03FF8007FE027F9039F07FFF800103B500FDB512E0010F903A00FF -FE0FF0D93FF8ECF81F90267FE0019038F03FF849485A4816E014804816C00200ED1FF081 -F007C06F91C7FCA8B912E0A4000390C701C0C7FCB3ABB5D8FC3FEBFF80A43D3A7EB938> -27 D<12E07E127C7E7E7F6C7E6C7E12037F6C7E7F12007F137E137FA2EB3F80A214C013 -1F14E0A2130F14F0A4EB07F8A514FCB114F8A5EB0FF0A414E0131FA214C0133F1480A2EB -7F00A2137E13FE5B12015B485A5B1207485A485A90C7FC123E5A12F05A16537BBD25>41 -D45 DI<49B4FC011F13F0017F13FC9038FF83FE4848C67E4848EB7F804848EB -3FC04848EB1FE0A2001F15F0A24848EB0FF8A3007F15FCA400FF15FEB3007F15FCA5003F -15F86D131FA2001F15F0A26C6CEB3FE0000715C06C6CEB7F806C6CEBFF003900FF83FE6D -B45A011F13F0010190C7FC27377CB530>48 D<141E143E14FE1307137FB5FCA3138FEA00 -0FB3B3A5007FB61280A4213679B530>IIII< -001C15C0D81F80130701F8137F90B61280A216005D5D15F05D15804AC7FC14F090C9FCA7 -EB03FE90381FFFE0017F13F89038FE07FC9038F003FFD9C0011380496C13C090C7FC000E -15E0C8127F16F0A216F8A3121FEA3FC0487E12FF7FA316F05B15FFD87F8014E0007EC713 -C0003E5B003F4913806C6C481300390FF01FFE6CB512F8000114E06C6C1380D90FF8C7FC -25377BB530>II<123C123EEA3FE090 -B71280A41700485D5E5E5E5EA2007CC7EA0FC000784A5A4BC7FC00F8147E485C5D14014A -5AC7485A4A5AA24A5A143F4AC8FCA214FEA213015C1303A21307A2130F5CA2131FA5133F -A96D5A6D5A6D5A29397BB730>I<49B47E010F13F0013F13FC9038FE01FF3A01F8007F80 -4848EB3FC04848EB1FE0150F484814F01507121FA27F7F7F6D130F01FF14E014C09138E0 -1FC06CEBF83F9138FE7F806C9038FFFE005D6C14F06C14FC6C14FF6D14806D14C090B612 -E0D803FD14F02607F07F13F848487E261FC00F13FC383F8003007F010013FE90C7127F15 -1F00FE140715031501A21500A216FC7E6C14016D14F86C6C13036DEB07F06C6CEB0FE0D8 -0FFEEB7FC00003B61200C614FC013F13F00103138027377CB530>I -I67 -DIIII73 D76 DI79 DI82 DI<003FB91280A4D9F800EBF003D87FC09238007FC049161F007EC7150FA2007C17 -07A200781703A400F818E0481701A4C892C7FCB3AE010FB7FCA43B387DB742>IIII<007FB5D8F803B512F8A4C66C48C7D80FF0C7FC6D6C5D6D5E6F495A6D6D49C8FC -7F6D6D137E6F5B6DEBF8016D5D6F485A6E6C485A023F130FDA1FFF5BEE9F806E01FFC9FC -805E6E5B6E5B80826F7E153F826F7F5D4B7F92B57EA2DA01F97FDA03F17F03F07F913807 -E07FDA0FC07F021F6D7E4B7E4A486C7F027E8102FE6D7F4A7F49488149486D7F0107804A -6E7E49488149486E7E013F81017F83B60107B61280A441397DB848>I97 -D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF00013804AEB7FC002 -80EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F06E133F6EEB7FE0 -6E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9C00390C7FC2F3A -7EB935>I<903801FFC0010F13FC017F13FFD9FF8013802603FE0013C048485AEA0FF812 -1F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01E06C7E15036C6C -EB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023257DA42A>II<903803FF8001 -1F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C0001FEC1FE05B003FEC0F -F0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F6C6C14F86D14F0 -00071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025257DA42C>II<161FD907FE -EBFFC090387FFFE348B6EAEFE02607FE07138F260FF801131F48486C138F003F15CF4990 -387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C6C4890C7FC3907FE07FE48B512F8 -6D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B512F8EDFF8016E06C15F86C816C81 -5A001F81393FC0000F48C8138048157F5A163FA36C157F6C16006D5C6C6C495AD81FF0EB -07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<13FFB5FCA41207 -7EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A14C05CA25CA291 -C7FCB3A3B5D8FC3F13FFA4303A7DB935>II<141FEC7FC0ECFFE0A249 -13F0A56D13E0A2EC7FC0EC1F0091C7FCA9EC0FF0EB0FFFA4EB007F143FB3B0121FEA3F80 -EA7FC0EAFFE0EC7FE0A215C014FF6C481380903883FE006CB45A000F13F0000113801C4B -86BA1D>I<13FFB5FCA412077EAF92380FFFE0A4923803FC0016F0ED0FE0ED1F804BC7FC -157E5DEC03F8EC07E04A5A141FEC7FE04A7E8181A2ECCFFEEC0FFF496C7F806E7F6E7F82 -157F6F7E6F7E82150F82B5D8F83F13F8A42D3A7EB932>I<13FFB5FCA412077EB3B3ACB5 -12FCA4163A7DB91B>I<01FED97FE0EB0FFC00FF902601FFFC90383FFF80020701FF90B5 -12E0DA1F81903983F03FF0DA3C00903887801F000749DACF007F00034914DE6D48D97FFC -6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA451>I<01FEEB7FC0 -00FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D4814C05CA25C -A291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F8017F13FFD9FF80 -7F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81A300FF1680A900 -7F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C6CB5C7FC -011F13FC010113C029257DA430>I<9039FF01FF80B5000F13F0023F13FC9138FE07FFDA -F00113800003496C13C00280EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17FC161FA2 -17F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8020F13E0 -020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F000FFEB0FFEEC3FFF91387C -7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3A2B512FE -A422257EA427>114 D<90383FF0383903FFFEF8000F13FF381FC00F383F0003007E1301 -007C130012FC15787E7E6D130013FCEBFFE06C13FCECFF806C14C06C14F06C14F81203C6 -14FC131F9038007FFE140700F0130114007E157E7E157C6C14FC6C14F8EB80019038F007 -F090B512C000F8140038E01FF81F257DA426>I<130FA55BA45BA25B5BA25A1207001FEB -FFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3E090383FFFC06D13809038 -03FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C6E48 -13E06CD9C03E13FF90387FFFFC011F13F00103138030257DA435>IIIII E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fc ecbx1200 12 41 -/Fc 41 122 df45 D45 DI49 DII<121E121F13FC90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F +00007C157E5E00785D15014B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D +14074A5AA2141F5D143FA2147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F44 +7AC238>II E %EndDVIPSBitmapFont -%DVIPSBitmapFont: Fd ectt1000 10 73 -/Fd 73 126 df<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7F -C0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480A66C14 -00A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<143814FC13011303EB07 -F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A -127EA312FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F -80EB1FC0EB0FF0EB07F8EB03FC130113001438164272B92C>40 D<127012FC7E7E6C7E6C -7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB07E0A214F01303A214F81301 -A314FC1300AC130114F8A3130314F0A2130714E0A2EB0FC0131F1480133F14005B13FE48 -5A485A485A485AEA3FC0485A48C7FC5A5A1270164279B92C>II44 D<007FB512F0B612F8A36C14F01D0579942C>I<121FEA3F80EA7FC0EAFFE0A5EA7F -C0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2151F16005D153E157E157CA215FC5D14 -015D14035D14075D140F5D141F92C7FC5C143EA2147E147C14FC5C13015C13035C13075C -130F5C131F91C8FC5B133EA2137E137C13FC5B12015B12035B12075B120F5B121F90C9FC -A25A123E127E127C12FC5AA2127021417BB92C>II<1307497EA2131FA2133F137F13FF5A1207127FB5FC13DF139FEA7C1F1200 -B3AE007FB512E0B612F0A36C14E01C3477B32C>IIII<000FB512FE4880A35D0180C8FCADEB83FE90389FFF8090B512E0 -15F8819038FE03FE9038F000FF01C07F49EB3F8090C7121F6C15C0C8120FA2ED07E0A412 -3C127EB4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80FFC6CB5 -5A6C5C000114C06C6C90C7FCEB0FF823347CB22C>I56 D -I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0 -A5EA7FC0EA3F80EA1F000B2470A32C>II<007FB612F0B712F8A36C -15F0CAFCA8007FB612F0B712F8A36C15F025127DA12C>61 D64 +%DVIPSBitmapFont: Fc ectt1000 10 71 +/Fc 71 123 df<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7F +C0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<143814FC13011303EB07F8EB0FF0 +EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312 +FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0 +EB0FF0EB07F8EB03FC130113001438164272B92C>40 D<127012FC7E7E6C7E6C7EEA0FE0 +6C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC13 +00AC130114F8A3130314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A48 +5A485AEA3FC0485A48C7FC5A5A1270164279B92C>II44 +D<007FB512F0B612F8A36C14F01D0579942C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA +3F80EA1F000B0B708A2C>I<1507ED0F80A2151F16005D153E157E157CA215FC5D14015D +14035D14075D140F5D141F92C7FC5C143EA2147E147C14FC5C13015C13035C13075C130F +5C131F91C8FC5B133EA2137E137C13FC5B12015B12035B12075B120F5B121F90C9FCA25A +123E127E127C12FC5AA2127021417BB92C>II<1307497EA2131FA2133F137F13FF5A1207127FB5FC13DF139FEA7C1F1200B3AE +007FB512E0B612F0A36C14E01C3477B32C>IIII<000FB512FE4880A35D0180C8FCADEB83FE90389FFF8090B512E015F8 +819038FE03FE9038F000FF01C07F49EB3F8090C7121F6C15C0C8120FA2ED07E0A4123C12 +7EB4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80FFC6CB55A6C +5C000114C06C6C90C7FCEB0FF823347CB22C>I56 DI<12 +1FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5EA +7FC0EA3F80EA1F000B2470A32C>II<007FB612F0B712F8A36C15F0 +CAFCA8007FB612F0B712F8A36C15F025127DA12C>61 D64 D<14FE497EA4497FA214EFA2130781A214C7A2010F7FA314C390381F83F0A590383F01F8 A490387E00FCA549137E90B512FEA34880A29038F8003FA34848EB1F80A4000715C04913 0FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>I<007FB512E015F8B612FE6C80 @@ -460,116 +316,285 @@ A36C141FA27F121F6D133F120F6D137F6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF01 2C>I<007FB512F8B612FCA36C14F839000FC000B3B3A5007FB512F8B612FCA36C14F81E 3379B22C>I<0107B512804914C0A36D148090390003F000B3AF1218127EA2B4FCA24A5A 48130F007F131F9038C07FC06CB55A6C91C7FC6C5B000313F838007FC022347BB22C>I< -387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025337DB2 -2C>76 DI -II<007FB512C0B612F88115FF6C15802603F00013C0153FED0F -E0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90B61280160015FC5D -15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>II<387FFFFCB67E15E0 -15F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F4BC7FCEC01FE140790 -B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF -00815E6C486D5AC8EA01F029347EB22C>I<90381FF80790B5EA0F804814CF000714FF5A -381FF01F383FC003497E48C7FC007E147F00FE143F5A151FA46CEC0F00007E91C7FC127F -7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14F06C6C7F01077F9038007FFEEC07FF02 -001380153FED1FC0A2ED0FE0A20078140712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F -009038FE01FF90B55A5D00F914F0D8F83F13C0D8700790C7FC23357CB32C>I<007FB612 -FCB712FEA43AFC007E007EA70078153CC71400B3AF90383FFFFCA2497F6D5BA227337EB2 -2C>I<3B7FFF803FFFC0B56C4813E0A36C496C13C03B03F00001F800B3AF6D130300015D -A26D130700005D6D130F017F495A6D6C485AECE0FF6DB5C7FC6D5B010313F86D5B903800 -3F802B3480B22C>II<3A3FFF03FFE0484913F0148714076C6D13E03A01F800FE007F0000495A13FE017E -5BEB7F03013F5B1487011F5B14CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2 -497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F000114 -7E49137F000380491480151FD87FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>88 -DI<00 -3FB612C04815E0A4007EC7EA1FC0ED3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA2 -4A5A4A5AA24A5A4AC7FCA214FE495AA2495A495AA2495A495AA2495A49C8FCA213FE485A -A24848EB03C049EB07E01207485A5B121F485AA248C7FCB7FCA46C15C023337CB22C>I< -007FB6FCB71280A46C150021067B7D2C>95 D<3801FFF0000713FE001F6D7E15E0488090 -38C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F48EB80 -7E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15FE6C14 -BF0001EBFE1F3A003FF007FC27247CA32C>97 DI<903803FFE0011F13F8017F13FE -48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2127F6C -140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E0010390 -C7FC21247AA32C>IIIIII<1307EB1FC0A2497EA36D5AA20107C7FC90C8FC -A7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>I<140E -EC3F80A2EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0A37EC7120FB3B3A2141F -003C1480007E133FB414005CEB01FEEBFFFC6C5B5C001F5B000790C7FC1A467CB32C>I< -EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E13F0913800FE004A5A4A5A4A5A4A5A -4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0FC001FE7FEBFC07496C7E -496C7E811400157E811680151F3A7FFFC0FFFCB500E113FEA36C01C013FC27337EB22C> -I<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I<3A7F -83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF83F49 -6C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87F -FC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC -00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0 -140029247FA32C>II<397FF01FE039FFF8FFF801FB13FE90B6FC6C158000019038 -F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2 -ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F8EC -3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I114 D<90387FF8700003B512F8120F5A5A387FC00F -387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0C66C -13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E6D13FE9038F0 -07FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E133FA9007FB6FCB712 -80A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6DB51280160001 -035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3007F7F0001EB000F -B3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603FE07130029247FA3 -2C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D131F00011500A26D5B -0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA21483010F5BA214C7 -01075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>II<3A3FFF03FFF048018713F8A36C010313F03A00FC007E00 -5D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF6D90C7FC5C6D5A14 -7C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F0013F7FEB7E00017C13 -7C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C>I<3A7FFF01FFFC -B5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012005D6D133E137C01 -7E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3ECE7C0130114 -F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F5BEA7F83EB87E0EA -7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003FB612E04815F0A400 -7EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01 -FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A485A485A485A485AB7 -FCA46C15E024247DA32C>I<15FF02071380141F147F91B512004913C04AC7FCEB03F85C -B31307EB1FE013FF007F5BB55A49C8FC6D7E6C7FC67F131FEB07F01303B380EB01FEECFF -C06D13FF6E1380141F14070200130021417BB92C>I125 -D E +D87FFCEB7FF8486CEBFFFCA36C48EB7FF8D807C0EB1F80153FED7F00157E5D4A5A14034A +5A5D4A5A4A5A143F4AC7FC147E5CEBC1F813C3EBC7FCA2EBCFFEEBDFBEEBFFBF141F01FE +7F496C7E13F86E7EEBF00301E07FEBC001816E7EA2157E153E153F811680ED0FC0A2ED07 +E0D87FFCEB1FFC486CEB3FFEA36C48EB1FFC27337EB22C>I<387FFFE0B57EA36C5BD803 +F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025337DB22C>IIII< +007FB512C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A2150316F81501A6 +150316F01507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FCB0387FFF80B5 +7EA36C5B25337EB22C>II<387FFFFCB67E15E015F86C803907E007FE1401EC +007F6F7E151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E007FC +EC01FE1400157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029 +347EB22C>I<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7 +FC007E147F00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13 +FC0003EBFFC06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0 +A20078140712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F9 +14F0D8F83F13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA7 +0078153CC71400B3AF90383FFFFCA2497F6D5BA227337EB22C>I<3B7FFF803FFFC0B56C +4813E0A36C496C13C03B03F00001F800B3AF6D130300015DA26D130700005D6D130F017F +495A6D6C485AECE0FF6DB5C7FC6D5B010313F86D5B9038003F802B3480B22C>II<3A3FFF03FFE0484913 +F0148714076C6D13E03A01F800FE007F0000495A13FE017E5BEB7F03013F5B1487011F5B +14CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1F +C7EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F0001147E49137F000380491480151F +D87FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>88 DI<003FB612C04815E0A4007EC7EA1F +C0ED3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A4A5AA24A5A4AC7FCA214FE +495AA2495A495AA2495A495AA2495A49C8FCA213FE485AA24848EB03C049EB07E0120748 +5A5B121F485AA248C7FCB7FCA46C15C023337CB22C>I<007FB6FCB71280A46C15002106 +7B7D2C>95 D<3801FFF0000713FE001F6D7E15E048809038C01FF81407EC01FC381F8000 +0006C77EC8127EA3ECFFFE131F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE +5AA47E007F14FEEB8003383FE01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27 +247CA32C>97 DI<903803FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF048 +5A49137E4848131890C9FC5A127EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6C +EB7F003907FE03FF6CB55A6C5C6C6C5B011F13E0010390C7FC21247AA32C>IIIIII<1307EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007 +B3A8007FB512FCB612FEA36C14FC1F3479B32C>I<140EEC3F80A2EC7FC0A3EC3F80A2EC +0E0091C7FCA748B512804814C0A37EC7120FB3B3A2141F003C1480007E133FB414005CEB +01FEEBFFFC6C5B5C001F5B000790C7FC1A467CB32C>II<387FFFE0B57EA37EEA0003B3 +B3A5007FB61280B712C0A36C158022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDF +FE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301 +C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C +>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807F +EC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C>II<39 +7FF01FE039FFF8FFF801FB13FE90B6FC6C158000019038F07FC09138801FE091380007F0 +49EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F91 +38801FE09138E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA3 +6C5B27367FA32C>I114 D<90387FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0 +007F140013F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE00 +78147F00FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F81480 +39701FFC0020247AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03 +C0ED07E0A5EC800F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7E +AD2C>I<3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE +03FF90B7FC6D15807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE14 +8314016C15FC3A03E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2 +017E13FC013E5BA2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D +90C7FCA26D5A147C27247EA32C>II< +3A3FFF03FFF048018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC +87E090380FCFC0903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF809038 +07CFC0EB0FC7EC83E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC +1483B514FE6C15FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113 +FC3A03E0000F806C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D +5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143E +A2147E147CA214FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C +5A6C5AEA07E027367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF +004A5A003C495AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49 +C8FC4848EB01E04848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd ecbx1000 10 57 +/Fd 57 122 df<913A03FF8007FE027F9039F07FFF800103B500FDB512E0010F903A00FF +FE0FF0D93FF8ECF81F90267FE0019038F03FF849485A4816E014804816C00200ED1FF081 +F007C06F91C7FCA8B912E0A4000390C701C0C7FCB3ABB5D8FC3FEBFF80A43D3A7EB938> +27 D<12E07E127C7E7E7F6C7E6C7E12037F6C7E7F12007F137E137FA2EB3F80A214C013 +1F14E0A2130F14F0A4EB07F8A514FCB114F8A5EB0FF0A414E0131FA214C0133F1480A2EB +7F00A2137E13FE5B12015B485A5B1207485A485A90C7FC123E5A12F05A16537BBD25>41 +D45 DI<141E143E14FE1307137FB5FCA3138FEA000FB3B3A5007FB61280A421 +3679B530>49 DI< +EB03FF011F13F0017F13FC3901FC07FF2603F003138048486C13C0496C13E0EA0FF86D14 +F0487EA66C4814E06C5A6C485AC714C04A138016004A5A4A5AEC3FF090380FFFC05D15F0 +90380007FE913801FF806E13C016E0ED7FF016F8ED3FFCA216FEEA1FC0487E487E487EA4 +16FCA249137F007F15F801C0EBFFF06C5A6C6C4813E0260FFC0713806CB61200000114FC +6C6C13F0010790C7FC27377CB530>II<001C15C0D81F80130701 +F8137F90B61280A216005D5D15F05D15804AC7FC14F090C9FCA7EB03FE90381FFFE0017F +13F89038FE07FC9038F003FFD9C0011380496C13C090C7FC000E15E0C8127F16F0A216F8 +A3121FEA3FC0487E12FF7FA316F05B15FFD87F8014E0007EC713C0003E5B003F4913806C +6C481300390FF01FFE6CB512F8000114E06C6C1380D90FF8C7FC25377BB530>II<123C123EEA3FE090B71280A41700485D5E5E +5E5EA2007CC7EA0FC000784A5A4BC7FC00F8147E485C5D14014A5AC7485A4A5AA24A5A14 +3F4AC8FCA214FEA213015C1303A21307A2130F5CA2131FA5133FA96D5A6D5A6D5A29397B +B730>I<49B47E010F13F0013F13FC9038FE01FF3A01F8007F804848EB3FC04848EB1FE0 +150F484814F01507121FA27F7F7F6D130F01FF14E014C09138E01FC06CEBF83F9138FE7F +806C9038FFFE005D6C14F06C14FC6C14FF6D14806D14C090B612E0D803FD14F02607F07F +13F848487E261FC00F13FC383F8003007F010013FE90C7127F151F00FE140715031501A2 +1500A216FC7E6C14016D14F86C6C13036DEB07F06C6CEB0FE0D80FFEEB7FC00003B61200 +C614FC013F13F00103138027377CB530>II65 DIIIII72 DI76 DIIII82 +DI<003F +B91280A4D9F800EBF003D87FC09238007FC049161F007EC7150FA2007C1707A200781703 +A400F818E0481701A4C892C7FCB3AE010FB7FCA43B387DB742>IIII<007F +B5D8F803B512F8A4C66C48C7D80FF0C7FC6D6C5D6D5E6F495A6D6D49C8FC7F6D6D137E6F +5B6DEBF8016D5D6F485A6E6C485A023F130FDA1FFF5BEE9F806E01FFC9FC805E6E5B6E5B +80826F7E153F826F7F5D4B7F92B57EA2DA01F97FDA03F17F03F07F913807E07FDA0FC07F +021F6D7E4B7E4A486C7F027E8102FE6D7F4A7F49488149486D7F0107804A6E7E49488149 +486E7E013F81017F83B60107B61280A441397DB848>I97 +D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF00013804AEB7FC002 +80EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F06E133F6EEB7FE0 +6E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9C00390C7FC2F3A +7EB935>I<903801FFC0010F13FC017F13FFD9FF8013802603FE0013C048485AEA0FF812 +1F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01E06C7E15036C6C +EB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023257DA42A>II<903803FF8001 +1F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C0001FEC1FE05B003FEC0F +F0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F6C6C14F86D14F0 +00071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025257DA42C>II<161FD907FE +EBFFC090387FFFE348B6EAEFE02607FE07138F260FF801131F48486C138F003F15CF4990 +387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C6C4890C7FC3907FE07FE48B512F8 +6D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B512F8EDFF8016E06C15F86C816C81 +5A001F81393FC0000F48C8138048157F5A163FA36C157F6C16006D5C6C6C495AD81FF0EB +07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<13FFB5FCA41207 +7EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A14C05CA25CA291 +C7FCB3A3B5D8FC3F13FFA4303A7DB935>II<141FEC7FC0ECFFE0A249 +13F0A56D13E0A2EC7FC0EC1F0091C7FCA9EC0FF0EB0FFFA4EB007F143FB3B0121FEA3F80 +EA7FC0EAFFE0EC7FE0A215C014FF6C481380903883FE006CB45A000F13F0000113801C4B +86BA1D>I<13FFB5FCA412077EAF92380FFFE0A4923803FC0016F0ED0FE0ED1F804BC7FC +157E5DEC03F8EC07E04A5A141FEC7FE04A7E8181A2ECCFFEEC0FFF496C7F806E7F6E7F82 +157F6F7E6F7E82150F82B5D8F83F13F8A42D3A7EB932>I<13FFB5FCA412077EB3B3ACB5 +12FCA4163A7DB91B>I<01FED97FE0EB0FFC00FF902601FFFC90383FFF80020701FF90B5 +12E0DA1F81903983F03FF0DA3C00903887801F000749DACF007F00034914DE6D48D97FFC +6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA451>I<01FEEB7FC0 +00FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D4814C05CA25C +A291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F8017F13FFD9FF80 +7F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81A300FF1680A900 +7F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C6CB5C7FC +011F13FC010113C029257DA430>I<9039FF01FF80B5000F13F0023F13FC9138FE07FFDA +F00113800003496C13C00280EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17FC161FA2 +17F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8020F13E0 +020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F000FFEB0FFEEC3FFF91387C +7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3A2B512FE +A422257EA427>114 D<90383FF0383903FFFEF8000F13FF381FC00F383F0003007E1301 +007C130012FC15787E7E6D130013FCEBFFE06C13FCECFF806C14C06C14F06C14F81203C6 +14FC131F9038007FFE140700F0130114007E157E7E157C6C14FC6C14F8EB80019038F007 +F090B512C000F8140038E01FF81F257DA426>I<130FA55BA45BA25B5BA25A1207001FEB +FFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3E090383FFFC06D13809038 +03FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C6E48 +13E06CD9C03E13FF90387FFFFC011F13F00103138030257DA435>IIIII E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe ecbx1440 14.4 41 /Fe 41 122 df121 D E %EndDVIPSBitmapFont -%DVIPSBitmapFont: Ff ecss2074 20.74 10 -/Ff 10 116 df76 -D85 -D<91380FFF8049B512F0010F14FC017F14FF48B712C0000782001F824882DAE0007F49C7 -EA3FFE01F8140FD81FC06E7E90C86C1380121E00186F13C0001081CAFCEF7FE0A318F017 -3FAD93B5FC157F0207B6FC143F49B7FC1307011F153F017FEBF80090B512804801F8C7FC -4813C04890C8FCEA0FFC485A485A5B485A5BA248C9FCA5177FA26D15FFA26C6C5C6D5C6D -140F6C6C5C01FF91B5FC6CEBE00791B612BF6CEDFE3F16FC6C15F06C15C06CECFE006C6C -13F0D91FFCC9FC344C77CA4C>97 DII103 D105 -D108 D110 -D<91380FFFC091B512FE0107ECFFC0011F15F8017F15FE90B812804817C05A489038F000 -3F4890C70003138049EC007FD81FF8151F491507003F16014992C7FCA2485AA77FA26C7E -7F7F6CB4FC6C13C014F86CEBFF806C14FC6CECFFE06C15FC6D14FF6D15C0010F81010315 -F8010081020F80DA007F7F03071480DB003F13C0160F040313E01600EF7FF0173FA2EF1F -F8A2170FA7EF1FF0A20070163F127C007FEE7FE001C015FF01F0020313C0B5020F138002 -F0137F91B712006C5E001F5E000716F0C65E011F1580010302FCC7FCD9000F13C0354C7C -CA3D>115 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg ecrm0700 7 2 -/Fg 2 66 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 -D<140EA2141FA34A7EA3EC6FC0A2ECEFE014C7A290380183F0A390380301F8A201067F14 -00A249137EA2011C137F01187FA24980013FB5FCA2903960000FC0A201E080491307A248 -486D7EA200038115011207D81FC0497ED8FFF890383FFFE0A22B2A7EA931>65 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fh ecrm1000 10 80 -/Fh 80 123 df21 D21 D27 DII<007C137C00FE13FEEAFF01A3EAFE00A7007E13FC -007C137CA8003C137800381338A700181330171E77BA2A>34 D<141FEC7FC0903801F0E0 -903803C0600107137090380F803090381F00381518A25BA2133E133F15381530A215705D -5D140190381F838092CAFC1487148E02DC49B51280EB0FF85C4A9039003FF8000107ED0F -C06E5D71C7FC6E140E010F150CD91DFC141C01391518D970FE143801E015302601C07F14 -70D803805D00076D6C5BD80F00EBC00148011F5C4890380FE003003E6E48C8FC007E9038 -07F8060203130E00FE6E5A6E6C5A1400ED7F706C4B13036F5A6F7E6C6C6D6C5B7013066C -6C496C130E6DD979FE5B281FF001F07F133C3C07F80FE03FC0F86CB539800FFFF0C69026 -FE000313C0D91FF0D9007FC7FC393E7DBB41>38 D<121C127FEAFF80A213C0A3127F121C -1200A412011380A2120313005A1206120E5A5A5A12600A1979B917>I<146014E0EB01C0 -EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FCA25A121EA2123EA3 -5AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7F -EB0380EB01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C -7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80 -A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A -13527CBD20>II<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A1206120E -5A5A5A12600A19798817>44 DI<121C127FEAFF80A5EA7F0012 -1C0909798817>I<1506A2150E150CA2151C151815381530A215701560A215E015C0A214 -011580A2140315005C1406A2140E140CA2141C1418A214381430A21470146014E05CA213 -015CA2130391C7FCA25B1306A2130E130C131C1318A213381330A213701360A213E05BA2 -12015B120390C8FCA25A1206A2120E120CA2121C1218A21238123012701260A212E05AA2 -1F537BBD2A>IIIII<1538A2157815 -F8A2140114031407A2140F141F141B14331473146314C313011483EB030313071306130C -131C131813301370136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3 -C73803F800AA4A7E0103B512F8A325387EB72A>I<0006140CD80780133C9038F003F890 -B5FC5D5D158092C7FC14FC38067FE090C9FCAAEB07F8EB1FFE9038780F809038E007E039 -07C003F0496C7E130000066D7E81C8FC8181A21680A4121C127F5A7FA390C713005D12FC -00605C12704A5A6C5C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1F -E021397CB62A>II<12301238123E003FB612E0A3 -16C05A168016000070C712060060140E5D5D00E014304814705D5DC712014A5A4AC7FC14 -06140E5CA25C1478147014F05C1301A213035C1307A2130FA3131F5CA2133FA5137FA96D -C8FC131E233A7BB72A>III<121C -127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A317>I<121C -127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A213C0A3127F121C1200A412011380 -A2120313005A1206120E5A5A5A12600A3479A317>I64 -D<1538A3157CA315FEA34A7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7FEC18 -0FA202387FEC3007A202707FEC6003A202C07F1501A2D901807F81A249C77F167FA20106 -810107B6FCA24981010CC7121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C81D8 -0FFC02071380B56C90B512FEA3373C7DBB3E>II<913A01FF800180 -020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD93F -80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A1703123F5B00 -7F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F160318006C7E5F6C7E17066C6C -150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F80902701FF80 -3FC7FC9039007FFFFC020F13F002011380313D7BBA3C>IIIIIII75 DIIIIIIII<003FB812E0A3D9C003EB -001F273E0001FE130348EE01F00078160000701770A300601730A400E01738481718A4C7 -1600B3B0913807FF80011FB612E0A335397DB83C>IIII<007FB590383FFF -FCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C5C6D6C13034CC8FC -6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A91380FF18015FB6E -B4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F91380607FC91 -380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E130391C76C7E01066E -7E130E010C6E7E011C1401013C8101FE822607FF80010713E0B500E0013FEBFF80A33939 -7EB83E>II<003FB7FCA39039FC0001 -FE01C0130349495A003EC7FC003C4A5A5E0038141F00784A5A12704B5A5E006014FF4A90 -C7FCA24A5A5DC712074A5AA24A5A5D143F4A5AA24A5A92C8FC5B495AA2495A5C130F4948 -EB0180A2495A5C137F495A16034890C7FC5B1203485AEE0700485A495C001F5D48485C5E -4848495A49130FB8FCA329397BB833>I<007FB81280B912C0A26C17803204797041>95 +007C137CA8003C137800381338A700181330171E77BA2A>34 D<121C127FEAFF80A213C0 +A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A1979B917>39 +D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FC +A25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E +1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F +6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0 +B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7 +FC120E5A5A5A5A5A13527CBD20>II<121C127FEAFF80A213C0A3127F121C1200A412011380A212 +0313005A1206120E5A5A5A12600A19798817>44 DI<121C127F +EAFF80A5EA7F00121C0909798817>I<1506A2150E150CA2151C151815381530A2157015 +60A215E015C0A214011580A2140315005C1406A2140E140CA2141C1418A214381430A214 +70146014E05CA213015CA2130391C7FCA25B1306A2130E130C131C1318A213381330A213 +701360A213E05BA212015B120390C8FCA25A1206A2120E120CA2121C1218A21238123012 +701260A212E05AA21F537BBD2A>IIIII<1538A2157815F8A2140114031407A2140F141F141B14331473146314C313011483EB +030313071306130C131C131813301370136013C01201EA038013005A120E120C5A123812 +305A12E0B712F8A3C73803F800AA4A7E0103B512F8A325387EB72A>I<0006140CD80780 +133C9038F003F890B5FC5D5D158092C7FC14FC38067FE090C9FCAAEB07F8EB1FFE903878 +0F809038E007E03907C003F0496C7E130000066D7E81C8FC8181A21680A4121C127F5A7F +A390C713005D12FC00605C12704A5A6C5C6C1303001E495A6C6C485A3907E03F800001B5 +C7FC38007FFCEB1FE021397CB62A>II<12301238 +123E003FB612E0A316C05A168016000070C712060060140E5D5D00E014304814705D5DC7 +12014A5A4AC7FC1406140E5CA25C1478147014F05C1301A213035C1307A2130FA3131F5C +A2133FA5137FA96DC8FC131E233A7BB72A>III<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C09 +2479A317>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A213C0A3127F12 +1C1200A412011380A2120313005A1206120E5A5A5A12600A3479A317>I<007FB812F8B9 +12FCCCFCB0B912FC6C17F836147B9E41>61 D64 D<1538A3157CA315FEA34A +7EA34A6C7EA202077FEC063FA2020E7FEC0C1FA2021C7FEC180FA202387FEC3007A20270 +7FEC6003A202C07F1501A2D901807F81A249C77F167FA20106810107B6FCA24981010CC7 +121FA2496E7EA3496E7EA3496E7EA213E0707E1201486C81D80FFC02071380B56C90B512 +FEA3373C7DBB3E>II<913A01FF800180020FEBE003027F13F8903A +01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE15 +3F12014848151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD +127F6DED0180A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F +15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F +13F002011380313D7BBA3C>IIIIIII75 +DIIIIIIII<003FB812E0A3D9C003EB001F27 +3E0001FE130348EE01F00078160000701770A300601730A400E01738481718A4C71600B3 +B0913807FF80011FB612E0A335397DB83C>IIII<007FB590383FFFFCA3C6 +01F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C5C6D6C13034CC8FC6D6C13 +06160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A91380FF18015FB6EB4C9FC +5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F91380607FC91380E03 +FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E130391C76C7E01066E7E130E +010C6E7E011C1401013C8101FE822607FF80010713E0B500E0013FEBFF80A339397EB83E +>II<003FB7FCA39039FC0001FE01C0 +130349495A003EC7FC003C4A5A5E0038141F00784A5A12704B5A5E006014FF4A90C7FCA2 +4A5A5DC712074A5AA24A5A5D143F4A5AA24A5A92C8FC5B495AA2495A5C130F4948EB0180 +A2495A5C137F495A16034890C7FC5B1203485AEE0700485A495C001F5D48485C5E484849 +5A49130FB8FCA329397BB833>I<007FB81280B912C0A26C17803204797041>95 DI E %EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg ecss2074 20.74 10 +/Fg 10 116 df76 +D85 +D<91380FFF8049B512F0010F14FC017F14FF48B712C0000782001F824882DAE0007F49C7 +EA3FFE01F8140FD81FC06E7E90C86C1380121E00186F13C0001081CAFCEF7FE0A318F017 +3FAD93B5FC157F0207B6FC143F49B7FC1307011F153F017FEBF80090B512804801F8C7FC +4813C04890C8FCEA0FFC485A485A5B485A5BA248C9FCA5177FA26D15FFA26C6C5C6D5C6D +140F6C6C5C01FF91B5FC6CEBE00791B612BF6CEDFE3F16FC6C15F06C15C06CECFE006C6C +13F0D91FFCC9FC344C77CA4C>97 DII103 D105 +D108 D110 +D<91380FFFC091B512FE0107ECFFC0011F15F8017F15FE90B812804817C05A489038F000 +3F4890C70003138049EC007FD81FF8151F491507003F16014992C7FCA2485AA77FA26C7E +7F7F6CB4FC6C13C014F86CEBFF806C14FC6CECFFE06C15FC6D14FF6D15C0010F81010315 +F8010081020F80DA007F7F03071480DB003F13C0160F040313E01600EF7FF0173FA2EF1F +F8A2170FA7EF1FF0A20070163F127C007FEE7FE001C015FF01F0020313C0B5020F138002 +F0137F91B712006C5E001F5E000716F0C65E011F1580010302FCC7FCD9000F13C0354C7C +CA3D>115 D E +%EndDVIPSBitmapFont end %%EndProlog %%BeginSetup @@ -1034,534 +1046,1033 @@ letter %%EndSetup %%Page: 1 1 -1 0 bop 0 162 a Fh(11)17 b(11)h(T)249 180 y(E)295 162 -y(X)h(L)398 145 y Fg(A)435 162 y Fh(T)481 180 y(E)527 -162 y(X)0 353 y Ff(Using)54 b(Libical)p 0 467 3900 24 -v 0 580 a Fh(Eric)28 b(Busb)r(o)r(om)f(\(eric@soft)n(w)n -(arestudio.org\))2054 b(Ma)n(y)26 b(2000)0 1217 y Fe(1)131 -b(In)l(tro)t(duction)0 1456 y Fh(Libical)23 b(is)f(an)h(Op)r(en)g -(Source)f(implemen)n(tation)h(of)g(the)g(iCalendar)f(proto)r(cols)f -(and)i(proto)r(col)e(data)i(units.)35 b(The)23 b(iCalendar)0 -1570 y(sp)r(eci\034cation)k(describ)r(es)g(ho)n(w)f(calendar)g(clien)n -(ts)i(can)f(comm)n(unicate)f(with)i(calendar)e(serv)n(ers)f(for)i -(users)g(can)g(store)f(their)0 1683 y(calendar)g(data)h(and)h(arrange)d -(meetings)i(with)h(other)f(users.)0 1840 y(Libical)g(implemen)n(ts)h +1 0 bop 0 201 a Fg(Using)54 b(Libical)p 0 315 3900 24 +v 0 428 a Ff(Eric)28 b(Busb)r(o)r(om)f(\(eric@soft)n(w)n +(arestudio.org\))1876 b(No)n(v)n(em)n(b)r(er)26 b(2000)0 +1072 y Fe(Con)l(ten)l(ts)0 1312 y Fd(1)77 b(In)m(tro)s(duction)3201 +b(2)125 1468 y Ff(1.1)83 b(The)28 b(libical)f(pro)5 b(ject)67 +b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(3)125 1625 y(1.2)83 +b(License)22 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)134 b(3)125 1781 y(1.3)83 b(Example)28 b(Co)r(de)78 +b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(3)0 2021 +y Fd(2)77 b(Building)30 b(the)h(Library)2865 b(3)0 2260 +y(3)77 b(Structure)3330 b(4)125 2417 y Ff(3.1)83 b(Core)27 +b(iCal)g(classes)62 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 +b(5)315 2573 y(3.1.1)94 b(Comp)r(onen)n(ts)84 b(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)134 b(5)315 2730 y(3.1.2)94 b(Prop)r(erties)99 +b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(5)315 2886 y(3.1.3)94 +b(V)-7 b(alues)108 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 +b(5)315 3043 y(3.1.4)94 b(P)n(arameters)61 b(.)41 b(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)134 b(5)125 3199 y(3.2)83 b(Other)27 b(elemen)n(ts)h(of)f(libical)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)134 b(5)315 3356 y(3.2.1)94 b(En)n(umerations)34 +b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(5)315 3512 y(3.2.2)94 +b(T)n(yp)r(es)59 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 +b(5)315 3669 y(3.2.3)94 b(The)28 b(parser)78 b(.)41 b(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)134 b(5)315 3825 y(3.2.4)94 b(Restrictions)41 +b(.)g(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(5)315 3981 y(3.2.5)94 +b(Error)26 b(ob)5 b(jects)57 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 +b(5)315 4138 y(3.2.6)94 b(Memory)27 b(Managemen)n(t)65 +b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)134 b(5)315 4294 y(3.2.7)94 b(Storage)26 b(classes)64 +b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)134 b(5)0 4534 y Fd(4)77 b(Di\033erences)30 +b(F)-8 b(rom)31 b(RF)m(Cs)2750 b(5)125 4690 y Ff(4.1)83 +b(Pseudo)28 b(Comp)r(onen)n(ts)62 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 +b(5)125 4847 y(4.2)83 b(Com)n(bined)28 b(V)-7 b(alues)108 +b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)125 5003 y(4.3)83 +b(Multi-V)-7 b(alued)28 b(Prop)r(erties)54 b(.)41 b(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 +b(6)0 5243 y Fd(5)77 b(Implemen)m(tation)28 b(Limitations)2557 +b(7)p eop +%%Page: 2 2 +2 1 bop 0 -167 3900 5 v 0 -200 a Fd(1.)73 b(In)m(tro)s(duction)3184 +b Ff(2)0 162 y Fd(6)77 b(Using)31 b(libical)3208 b(7)125 +318 y Ff(6.1)83 b(Creating)27 b(Comp)r(onen)n(ts)73 b(.)42 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)134 b(7)315 475 y(6.1.1)94 b(Constructor)26 +b(In)n(terfaces)48 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 631 y(6.1.2)94 b(v)-5 +b(aargs)26 b(Constructors)70 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 788 +y(6.1.3)94 b(P)n(arsing)26 b(T)-7 b(ext)28 b(Files)68 +b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +(.)h(.)f(.)h(.)134 b(8)125 944 y(6.2)83 b(A)n(ccessing)27 +b(Comp)r(onen)n(ts)105 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315 1101 +y(6.2.1)h(Finding)28 b(Comp)r(onen)n(ts)99 b(.)42 b(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315 +1257 y(6.2.2)h(In)n(terating)27 b(Through)f(Comp)r(onen)n(ts)66 +b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 +b(10)315 1413 y(6.2.3)h(Using)27 b(Comp)r(onen)n(t)h(Iterators)59 +b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 +b(11)315 1570 y(6.2.4)h(Remo)n(ving)27 b(Comp)r(onen)n(ts)83 +b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)93 b(11)315 1726 y(6.2.5)h(W)-7 b(orking)27 b(with)h(prop)r(erties)e +(and)i(parameters)e(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 +b(12)315 1883 y(6.2.6)h(W)-7 b(orking)27 b(with)h(v)-5 +b(alues)52 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)93 b(12)315 2039 y(6.2.7)h(W)-7 b(orking)27 +b(with)h(parameters)61 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)93 b(13)315 2196 y(6.2.8)h(Chec)n(king)27 +b(Comp)r(onen)n(t)g(V)-7 b(alidit)n(y)25 b(.)42 b(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(13)315 2352 y(6.2.9)h(Con)n(v)n +(erting)26 b(Comp)r(onen)n(ts)h(to)g(T)-7 b(ext)74 b(.)41 +b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(14)125 +2509 y(6.3)83 b(Time)33 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)93 b(14)315 2665 y(6.3.1)h(Time)28 b(structure)56 +b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)93 b(14)315 2822 y(6.3.2)h(Time)28 +b(manipulating)f(routines)38 b(.)j(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)93 b(14)125 2978 y(6.4)83 b(Storing)27 +b(Ob)5 b(jects)39 b(.)i(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 +b(16)125 3135 y(6.5)83 b(Memory)27 b(Managemen)n(t)73 +b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +(.)h(.)f(.)h(.)f(.)h(.)93 b(16)125 3291 y(6.6)83 b(Error)27 +b(Handling)56 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 +b(16)315 3448 y(6.6.1)h(Return)28 b(v)-5 b(alues)34 b(.)42 +b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)93 b(16)315 3604 y(6.6.2)h(icalerrno)28 +b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(17)315 3760 +y(6.6.3)h(X-LIC-ERR)n(OR)27 b(and)g(X-LIC-INV)-9 b(ALID-COMPONENT)70 +b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)93 b(17)125 3917 y(6.7)83 b(Naming)28 b(Standard)h(.)42 +b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(18)0 4156 y Fd(7)77 +b(Useful)31 b(Recipies)3038 b(18)0 4396 y(8)77 b(P)m(erformance)3153 +b(18)0 4635 y(9)77 b(Hac)m(ks)32 b(and)g(Bugs)3009 b(18)0 +4974 y Fe(1)131 b(In)l(tro)t(duction)0 5212 y Ff(Libical)23 +b(is)f(an)h(Op)r(en)g(Source)f(implemen)n(tation)h(of)g(the)g +(iCalendar)f(proto)r(cols)f(and)i(proto)r(col)e(data)i(units.)35 +b(The)23 b(iCalendar)0 5326 y(sp)r(eci\034cation)k(describ)r(es)g(ho)n +(w)f(calendar)g(clien)n(ts)i(can)f(comm)n(unicate)f(with)i(calendar)e +(serv)n(ers)f(for)i(users)g(can)g(store)f(their)p eop +%%Page: 3 3 +3 2 bop 0 -167 3900 5 v 0 -200 a Fd(2.)73 b(Building)31 +b(the)g(Library)2847 b Ff(3)0 162 y(calendar)26 b(data)h(and)h(arrange) +d(meetings)i(with)h(other)f(users.)0 318 y(Libical)g(implemen)n(ts)h (RF)n(C2445)e(and)h(RF)n(C2446.)35 b(Ev)n(en)n(tually)-7 b(,)27 b(it)h(will)g(also)e(implemen)n(t)j(iRIP)f(and)f(CAP)-7 -b(.)0 1996 y(This)32 b(do)r(cumen)n(tation)g(assumes)g(that)g(y)n(ou)g +b(.)0 475 y(This)32 b(do)r(cumen)n(tation)g(assumes)g(that)g(y)n(ou)g (are)f(familiar)h(with)h(the)f(iCalendar)f(standards)g(RF)n(C2445)g -(and)h(RF)n(C2446.)0 2110 y(these)c(sp)r(eci\034cations)e(are)h(online) -g(on)h(the)g(CALSCH)g(w)n(ebpage)e(at:)0 2308 y Fd(http://www.imc.o)o -(rg)o(/ie)o(tf)o(-c)o(ale)o(nd)o(ar)o(/)0 2706 y Fc(1.1)112 -b(The)38 b(libical)c(pro)6 b(ject)0 2916 y Fh(This)29 +(and)h(RF)n(C2446.)0 588 y(these)c(sp)r(eci\034cations)e(are)h(online)g +(on)h(the)g(CALSCH)g(w)n(ebpage)e(at:)0 828 y Fc(http://www.imc.o)o(rg) +o(/ie)o(tf)o(-c)o(ale)o(nd)o(ar)o(/)0 1119 y Fb(1.1)112 +b(The)38 b(libical)c(pro)6 b(ject)0 1329 y Ff(This)29 b(co)r(de)g(is)g(under)g(activ)n(e)f(dev)n(elopmen)n(t.)40 b(If)30 b(y)n(ou)e(w)n(ould)h(lik)n(e)f(to)h(con)n(tribute)g(to)g(the)g (pro)5 b(ject,)29 b(y)n(ou)f(can)h(con)n(tact)f(me,)0 -3029 y(Eric)g(Busb)r(o)r(om,)f(at)g(eric@soft)n(w)n(arestudio.org.)33 +1443 y(Eric)g(Busb)r(o)r(om,)f(at)g(eric@soft)n(w)n(arestudio.org.)33 b(The)27 b(pro)5 b(ject)27 b(has)g(a)g(w)n(ebpage)g(at)0 -3227 y Fd(http://softwares)o(tu)o(dio)o(.o)o(rg)o(/li)o(bi)o(ca)o(l/i)o -(nd)o(ex)o(.ht)o(ml)0 3539 y Fh(and)g(a)h(mailing)f(list)g(that)h(y)n +1682 y Fc(http://softwares)o(tu)o(dio)o(.o)o(rg)o(/li)o(bi)o(ca)o(l/i)o +(nd)o(ex)o(.ht)o(ml)0 1922 y Ff(and)g(a)h(mailing)f(list)g(that)h(y)n (ou)f(can)g(join)h(b)n(y)f(sending)g(the)h(follo)n(wing)f(mail:)0 -3737 y Fd(To:)42 b(minimalist@softwa)o(re)o(st)o(udi)o(o.)o(or)o(g)0 -3850 y(Subject:)e(subscribe)g(libical)0 4248 y Fc(1.2)112 -b(License)0 4458 y Fh(The)60 b(co)r(de)f(and)h(data\034les)f(in)h(this) +2161 y Fc(To:)42 b(minimalist@softwa)o(re)o(st)o(udi)o(o.)o(or)o(g)0 +2275 y(Subject:)e(subscribe)g(libical)0 2566 y Fb(1.2)112 +b(License)0 2777 y Ff(The)60 b(co)r(de)f(and)h(data\034les)f(in)h(this) g(distribution)g(are)e(licensed)i(under)g(the)g(Mozilla)f(Public)h -(License.)133 b(See)0 4572 y(h)n(ttp://www.mozilla.org/NPL/MPL-1.0.h)n +(License.)133 b(See)0 2890 y(h)n(ttp://www.mozilla.org/NPL/MPL-1.0.h)n (tml)37 b(for)j(a)h(cop)n(y)f(of)g(the)i(license.)76 b(Alternately)-7 b(,)44 b(y)n(ou)c(ma)n(y)g(use)g(libical)0 -4686 y(under)32 b(the)g(terms)g(of)g(the)g(GNU)h(Library)d(General)h +3004 y(under)32 b(the)g(terms)g(of)g(the)g(GNU)h(Library)d(General)h (Public)i(License.)50 b(See)32 b(h)n(ttp://www.fsf.org/cop)n -(yleft/lesser.h)n(tml)0 4799 y(for)27 b(a)g(cop)n(y)g(of)g(the)h(LGPL.) -0 4956 y(This)j(dual)g(license)f(ensures)h(that)g(the)g(library)f(can)g +(yleft/lesser.h)n(tml)0 3117 y(for)27 b(a)g(cop)n(y)g(of)g(the)h(LGPL.) +0 3274 y(This)j(dual)g(license)f(ensures)h(that)g(the)g(library)f(can)g (b)r(e)i(incorp)r(orated)d(in)n(to)i(b)r(oth)g(proprietary)e(co)r(de)i -(and)f(GPL'd)i(pro-)0 5069 y(grams,)23 b(and)h(will)h(b)r(ene\034t)g +(and)f(GPL'd)i(pro-)0 3387 y(grams,)23 b(and)h(will)h(b)r(ene\034t)g (from)f(impro)n(v)n(emen)n(ts)e(made)i(b)n(y)g(programmers)e(in)i(b)r (oth)h(realms.)34 b(I)25 b(will)f(only)g(accept)g(c)n(hanges)0 -5183 y(in)n(to)j(m)n(y)h(v)n(ersion)e(of)h(the)h(library)e(if)i(they)g -(are)f(similarly)f(dual-licensed.)0 5467 y Fc(1.3)112 -b(Example)37 b(Co)s(de)0 5677 y Fh(A)h(lot)f(of)h(the)g(do)r(cumen)n +3501 y(in)n(to)j(m)n(y)h(v)n(ersion)e(of)h(the)h(library)e(if)i(they)g +(are)f(similarly)f(dual-licensed.)0 3792 y Fb(1.3)112 +b(Example)37 b(Co)s(de)0 4003 y Ff(A)h(lot)f(of)h(the)g(do)r(cumen)n (tation)f(for)g(this)h(library)e(is)i(in)g(the)g(form)f(of)g(example)g (co)r(de.)67 b(These)37 b(examples)g(are)g(in)h(the)0 -5791 y("examples")26 b(directory)g(of)i(the)g(distribution.)36 +4116 y("examples")26 b(directory)g(of)i(the)g(distribution.)36 b(Also)28 b(lo)r(ok)e(in)i("src/test")e(for)h(more)g(annotated)g -(examples.)0 6122 y Fe(2)131 b(Building)46 b(the)e(Library)0 -6361 y Fh(Libical)37 b(uses)g(auto)r(conf)h(to)f(generate)f(mak)n +(examples.)0 4454 y Fe(2)131 b(Building)46 b(the)e(Library)0 +4693 y Ff(Libical)37 b(uses)g(auto)r(conf)h(to)f(generate)f(mak)n (e\034les,)k(although)c(it)i(uses)g(none)f(of)h(the)g(auto)r(conf)f -(\035ags)f(to)i(in\035uence)g(the)0 6474 y(compilation.)e(It)28 -b(should)f(built)i(with)f(no)f(adjustmen)n(ts)h(on)f(Lin)n(ux,)g(F)-7 -b(reeBSD)28 b(and)f(Solaris.)0 6805 y Fe(3)131 b(Structure)0 -7044 y Fh(The)28 b(iCal)f(calendar)f(mo)r(del)i(is)f(based)g(on)h(four) -f(t)n(yp)r(es)g(of)h(ob)5 b(jects:)36 b(comp)r(onen)n(ts,)27 -b(prop)r(erties,)g(v)-5 b(alues)27 b(and)g(parameters.)0 -7201 y(Prop)r(erties)32 b(are)f(the)i(fundamen)n(tal)f(unit)i(of)e -(information)g(in)g(iCal,)i(and)e(they)g(w)n(ork)f(a)h(bit)h(lik)n(e)f -(a)g(hash)g(en)n(try)-7 b(,)34 b(with)e(a)0 7314 y(constan)n(t)21 -b(k)n(ey)h(and)g(a)f(v)-5 b(ariable)21 b(v)-5 b(alue.)35 -b(Prop)r(erties)21 b(ma)n(y)h(also)f(ha)n(v)n(e)g(mo)r(di\034ers,)h -(called)g(parameters.)33 b(In)22 b(the)h(iCal)f(con)n(ten)n(t)0 -7428 y(line)0 7626 y Fd(ORGANIZER;ROLE=C)o(HA)o(IR:)o(MA)o(IL)o(TO:)o -(mr)o(bi)o(g@h)o(os)o(t.)o(com)p eop -%%Page: 2 2 -2 1 bop 0 -167 3900 5 v 0 -200 a Fb(3.)73 b(Structure)3313 -b Fh(2)0 162 y(The)34 b(prop)r(ert)n(y)f(name)h(is)g("OR)n(GANIZER,")g -(the)g(v)-5 b(alue)34 b(of)h(the)f(prop)r(ert)n(y)f(is)h -("mrbig@host.com")e(and)i(the)g("R)n(OLE")0 275 y(parameter)26 -b(sp)r(eci\034es)h(that)h(Mr)g(Big)f(is)g(the)h(c)n(hair)e(of)i(the)g -(meetings)f(asso)r(ciated)f(with)i(this)g(prop)r(ert)n(y)-7 -b(.)0 432 y(Comp)r(onen)n(ts)26 b(are)f(groups)g(of)h(prop)r(erties)f -(that)i(represen)n(t)e(the)i(core)e(ob)5 b(jects)26 b(of)g(a)g -(calendar)f(system,)h(suc)n(h)g(as)g(ev)n(en)n(ts)f(or)0 -545 y(timezones.)0 702 y(The)k(cen)n(tral)f(goal)g(of)h(libical)g(is)g -(to)g(parse)f(iTIP)i(data)e(in)n(to)h(an)g(in)n(ternal)f(represen)n -(tation)g(of)h(Comp)r(onen)n(ts,)g(Prop)r(erties,)0 815 -y(P)n(arameters)d(an)h(V)-7 b(alues,)27 b(and)h(to)f(allo)n(w)g(the)h -(user)f(to)g(manipulate)g(the)h(data)g(in)f(v)-5 b(arious)27 -b(w)n(a)n(ys)0 942 y Fg(1)37 972 y Fh(When)h(a)f(comp)r(onen)n(t)h(is)f -(sen)n(t)h(across)d(a)i(net)n(w)n(ork,)f(if)j(it)f(is)f(un-encrypted,)g -(it)h(will)g(lo)r(ok)f(something)g(lik)n(e:)p 0 1041 -3900 4 v 0 1218 a Fd(BEGIN:VEVENT)0 1331 y(DTSTAMP:19980309)o(T2)o(310) -o(00)o(Z)0 1445 y(UID:guid-1.host1)o(.c)o(om)0 1558 y(ORGANIZER;ROLE=C) +(\035ags)f(to)i(in\035uence)g(the)0 4807 y(compilation.)44 +b(It)31 b(should)f(built)h(with)g(no)f(adjustmen)n(ts)h(on)f(Lin)n(ux,) +h(F)-7 b(reeBSD)30 b(and)g(Solaris)f(under)h(gcc.)45 +b(Some)30 b(v)n(ersion)0 4920 y(ha)n(v)n(e)36 b(b)r(een)h(successfully) +f(b)r(een)i(build)f(on)f(MacOS,)h(Solaris)e(and)i(UnixW)-7 +b(are)36 b(without)h(gcc,)i(but)e(y)n(ou)g(ma)n(y)f(run)g(in)n(to)0 +5034 y(problems)27 b(with)h(a)f(particular)f(later)h(v)n(ersion.)0 +5190 y(F)-7 b(or)27 b(a)g(more)g(complete)g(guide)h(to)f(building)h +(the)g(library)-7 b(,)26 b(see)h(the)h(README)i(\034le)e(in)f(the)h +(distribution.)p eop +%%Page: 4 4 +4 3 bop 0 -167 3900 5 v 0 -200 a Fd(3.)73 b(Structure)3313 +b Ff(4)0 162 y Fe(3)131 b(Structure)0 400 y Ff(The)28 +b(iCal)f(calendar)f(mo)r(del)i(is)f(based)g(on)h(four)f(t)n(yp)r(es)g +(of)h(ob)5 b(jects:)36 b(comp)r(onen)n(ts,)27 b(prop)r(erties,)g(v)-5 +b(alues)27 b(and)g(parameters.)0 557 y(Prop)r(erties)32 +b(are)f(the)i(fundamen)n(tal)f(unit)i(of)e(information)g(in)g(iCal,)i +(and)e(they)g(w)n(ork)f(a)h(bit)h(lik)n(e)f(a)g(hash)g(en)n(try)-7 +b(,)34 b(with)e(a)0 670 y(constan)n(t)21 b(k)n(ey)h(and)g(a)f(v)-5 +b(ariable)21 b(v)-5 b(alue.)35 b(Prop)r(erties)21 b(ma)n(y)h(also)f(ha) +n(v)n(e)g(mo)r(di\034ers,)h(called)g(parameters.)33 b(In)22 +b(the)h(iCal)f(con)n(ten)n(t)0 784 y(line)0 1023 y Fc(ORGANIZER;ROLE=C) o(HA)o(IR:)o(MA)o(IL)o(TO:)o(mr)o(bi)o(g@h)o(os)o(t.)o(com)0 -1672 y(ATTENDEE;RSVP=TR)o(UE)o(;RO)o(LE)o(=R)o(EQ-)o(PA)o(RT)o(ICI)o -(PA)o(NT)o(;CU)o(TY)o(PE)o(=GR)o(OU)o(P:)87 1786 y(MAILTO:employee-)o -(A@h)o(os)o(t.)o(com)0 1899 y(DESCRIPTION:Proj)o(ec)o(t)38 -b(XYZ)k(Review)f(Meeting)0 2013 y(CATEGORIES:MEETI)o(NG)0 -2126 y(CLASS:PUBLIC)0 2240 y(CREATED:19980309)o(T1)o(300)o(00)o(Z)0 -2353 y(SUMMARY:XYZ)e(Project)i(Review)0 2467 y(DTSTART;TZID=US-)o(Ea)o -(ste)o(rn)o(:1)o(998)o(03)o(12)o(T08)o(30)o(00)0 2581 +1263 y Ff(The)34 b(prop)r(ert)n(y)f(name)h(is)g("OR)n(GANIZER,")g(the)g +(v)-5 b(alue)34 b(of)h(the)f(prop)r(ert)n(y)f(is)h("mrbig@host.com")e +(and)i(the)g("R)n(OLE")0 1377 y(parameter)26 b(sp)r(eci\034es)h(that)h +(Mr)g(Big)f(is)g(the)h(c)n(hair)e(of)i(the)g(meetings)f(asso)r(ciated)f +(with)i(this)g(prop)r(ert)n(y)-7 b(.)0 1533 y(Comp)r(onen)n(ts)26 +b(are)f(groups)g(of)h(prop)r(erties)f(that)i(represen)n(t)e(the)i(core) +e(ob)5 b(jects)26 b(of)g(a)g(calendar)f(system,)h(suc)n(h)g(as)g(ev)n +(en)n(ts)f(or)0 1647 y(timezones.)0 1803 y(The)k(cen)n(tral)f(goal)g +(of)h(libical)g(is)g(to)g(parse)f(iTIP)i(data)e(in)n(to)h(an)g(in)n +(ternal)f(represen)n(tation)g(of)h(Comp)r(onen)n(ts,)g(Prop)r(erties,)0 +1917 y(P)n(arameters)d(an)h(V)-7 b(alues,)27 b(and)h(to)f(allo)n(w)g +(the)h(user)f(to)g(manipulate)g(the)h(data)g(in)f(v)-5 +b(arious)27 b(w)n(a)n(ys)0 2073 y(When)h(a)f(comp)r(onen)n(t)g(is)h +(sen)n(t)f(across)f(a)h(net)n(w)n(ork,)f(if)i(it)g(is)g(un-encrypted,)f +(it)h(will)g(lo)r(ok)f(something)g(lik)n(e:)0 2313 y +Fc(BEGIN:VEVENT)0 2426 y(DTSTAMP:19980309)o(T2)o(310)o(00)o(Z)0 +2540 y(UID:guid-1.host1)o(.c)o(om)0 2653 y(ORGANIZER;ROLE=C)o(HA)o(IR:) +o(MA)o(IL)o(TO:)o(mr)o(bi)o(g@h)o(os)o(t.)o(com)0 2767 +y(ATTENDEE;RSVP=TR)o(UE)o(;RO)o(LE)o(=R)o(EQ-)o(PA)o(RT)o(ICI)o(PA)o +(NT)o(;CU)o(TY)o(PE)o(=GR)o(OU)o(P:)87 2880 y(MAILTO:employee-)o(A@h)o +(os)o(t.)o(com)0 2994 y(DESCRIPTION:Proj)o(ec)o(t)38 +b(XYZ)k(Review)f(Meeting)0 3108 y(CATEGORIES:MEETI)o(NG)0 +3221 y(CLASS:PUBLIC)0 3335 y(CREATED:19980309)o(T1)o(300)o(00)o(Z)0 +3448 y(SUMMARY:XYZ)e(Project)i(Review)0 3562 y(DTSTART;TZID=US-)o(Ea)o +(ste)o(rn)o(:1)o(998)o(03)o(12)o(T08)o(30)o(00)0 3675 y(DTEND;TZID=US-Ea)o(st)o(ern)o(:1)o(99)o(803)o(12)o(T0)o(930)o(00)0 -2694 y(LOCATION:1CP)d(Conference)i(Room)i(4350)0 2808 -y(END:VEVENT)p 0 3008 V 0 3235 a Fc(3.1)112 b(Core)37 -b(iCal)f(classes)0 3446 y Fb(3.1.1)94 b(Comp)s(onen)m(ts)0 -3656 y(3.1.2)g(Prop)s(erties)0 3866 y(3.1.3)g(V)-8 b(alues)0 -4076 y(3.1.4)94 b(P)m(arameters)0 4305 y Fc(3.2)112 b(Other)37 -b(elemen)m(ts)g(of)g(libical)0 4515 y Fh(In)26 b(addition)f(to)h(the)g +3789 y(LOCATION:1CP)d(Conference)i(Room)i(4350)0 3903 +y(END:VEVENT)p eop +%%Page: 5 5 +5 4 bop 0 -167 3900 5 v 0 -200 a Fd(4.)73 b(Di\033erences)31 +b(F)-8 b(rom)31 b(RF)m(Cs)2732 b Ff(5)0 162 y Fb(3.1)112 +b(Core)37 b(iCal)f(classes)0 372 y Fd(3.1.1)94 b(Comp)s(onen)m(ts)0 +582 y(3.1.2)g(Prop)s(erties)0 792 y(3.1.3)g(V)-8 b(alues)0 +1002 y(3.1.4)94 b(P)m(arameters)0 1231 y Fb(3.2)112 b(Other)37 +b(elemen)m(ts)g(of)g(libical)0 1441 y Ff(In)26 b(addition)f(to)h(the)g (core)e(iCal)h(classes,)g(libical)g(has)g(man)n(y)g(other)g(t)n(yp)r (es,)h(structures,)g(classes)e(that)i(aid)f(in)h(creating)e(and)0 -4628 y(using)j(iCal)g(comp)r(onen)n(ts.)104 4735 y Fa(1)p -eop -%%Page: 3 3 -3 2 bop 0 -167 3900 5 v 0 -200 a Fb(4.)73 b(Di\033erences)31 -b(F)-8 b(rom)31 b(RF)m(Cs)2732 b Fh(3)0 162 y Fb(3.2.1)94 -b(En)m(umerations)0 372 y(3.2.2)g(T)m(yp)s(es)0 582 y(3.2.3)g(The)32 -b(P)m(arser)0 792 y(3.2.4)94 b(Restrictions)0 1002 y(3.2.5)g(Error)32 -b(ob)5 b(jects)0 1212 y(3.2.6)94 b(Memory)30 b(Managemen)m(t)0 -1422 y(3.2.7)94 b(Storage)32 b(classes)0 1689 y Fe(4)131 -b(Di\033erences)44 b(F)-11 b(rom)43 b(RF)l(Cs)0 1928 -y Fh(Libical)c(has)f(b)r(een)h(designed)g(to)f(follo)n(w)h(the)g -(standards)e(as)i(closely)f(as)g(p)r(ossible,)j(so)e(that)g(the)g(k)n -(ey)f(ob)5 b(jects)39 b(in)g(the)0 2041 y(standards)30 -b(are)g(also)g(k)n(eey)g(ob)5 b(jects)31 b(in)h(the)f(library)-7 -b(.)47 b(Ho)n(w)n(ev)n(er,)30 b(there)h(are)f(a)h(few)g(areas)e(where)i -(the)h(sp)r(eci\034cations)e(are)0 2155 y(\(arguably\))g(irregular,)h -(and)g(follo)n(wing)g(them)h(exactly)f(w)n(ould)g(result)h(in)g(an)f -(unfriendly)h(in)n(terface.)49 b(These)31 b(deviations)0 -2268 y(mak)n(e)c(libical)g(easier)f(to)i(use)f(b)n(y)h(main)n(taining)e -(a)h(self-similar)g(in)n(terface.)0 2560 y Fc(4.1)112 -b(Pseudo)38 b(Comp)s(onen)m(ts)0 2770 y Fh(Libical)29 -b(de\034nes)g(comp)r(onen)n(ts)g(for)g(groups)f(of)h(prop)r(erties)f -(that)i(lo)r(ok)f(and)g(act)g(lik)n(e)g(comp)r(onen)n(ts,)g(but)h(are)e -(not)i(de\034ned)0 2884 y(as)e(comp)r(onen)n(ts)h(in)g(the)g(sp)r -(eci\034cation.)41 b(XD)n(A)-7 b(YLIGHT)30 b(and)f(XST)-7 -b(AND)n(ARD)30 b(are)e(notable)h(examples.)40 b(These)29 -b(pseudo)0 2997 y(comp)r(onen)n(ts)d(group)f(prop)r(erties)g(within)i -(the)g(VTIMEZONE)g(comp)r(onen)n(ts.)36 b(F)-7 b(or)25 -b(instanace,)h(the)h(timezone)f(prop)r(erties)0 3111 -y(asso)r(ciated)f(with)i(da)n(yligh)n(t)e(sa)n(vings)g(time)i(starts)e -(with)i("BEGIN:D)n(A)-7 b(YLIGHT")27 b(and)f(ends)h(with)f("END:D)n(A) --7 b(YLIGHT,)0 3224 y(just)32 b(lik)n(e)g(other)f(comp)r(onen)n(ts,)h -(but)g(is)g(not)g(de\034ned)g(as)f(a)g(comp)r(onen)n(t)g(in)h(RF)n -(C2445.)48 b(\()32 b(See)f(RF)n(C2445,)g(page)g(61)g(\))h(In)0 -3338 y(Libical,this)d(grouping)e(is)i(represen)n(ted)e(b)n(y)i(the)g +1555 y(using)j(iCal)g(comp)r(onen)n(ts.)0 1827 y Fd(3.2.1)94 +b(En)m(umerations)0 2037 y(3.2.2)g(T)m(yp)s(es)0 2247 +y(3.2.3)g(The)32 b(parser)0 2457 y(3.2.4)94 b(Restrictions)0 +2668 y(3.2.5)g(Error)32 b(ob)5 b(jects)0 2878 y(3.2.6)94 +b(Memory)30 b(Managemen)m(t)0 3088 y(3.2.7)94 b(Storage)32 +b(classes)0 3355 y Fe(4)131 b(Di\033erences)44 b(F)-11 +b(rom)43 b(RF)l(Cs)0 3593 y Ff(Libical)c(has)f(b)r(een)h(designed)g(to) +f(follo)n(w)h(the)g(standards)e(as)i(closely)f(as)g(p)r(ossible,)j(so)e +(that)g(the)g(k)n(ey)f(ob)5 b(jects)39 b(in)g(the)0 3707 +y(standards)30 b(are)g(also)g(k)n(eey)g(ob)5 b(jects)31 +b(in)h(the)f(library)-7 b(.)47 b(Ho)n(w)n(ev)n(er,)30 +b(there)h(are)f(a)h(few)g(areas)e(where)i(the)h(sp)r(eci\034cations)e +(are)0 3820 y(\(arguably\))g(irregular,)h(and)g(follo)n(wing)g(them)h +(exactly)f(w)n(ould)g(result)h(in)g(an)f(unfriendly)h(in)n(terface.)49 +b(These)31 b(deviations)0 3934 y(mak)n(e)c(libical)g(easier)f(to)i(use) +f(b)n(y)h(main)n(taining)e(a)h(self-similar)g(in)n(terface.)0 +4225 y Fb(4.1)112 b(Pseudo)38 b(Comp)s(onen)m(ts)0 4436 +y Ff(Libical)29 b(de\034nes)g(comp)r(onen)n(ts)g(for)g(groups)f(of)h +(prop)r(erties)f(that)i(lo)r(ok)f(and)g(act)g(lik)n(e)g(comp)r(onen)n +(ts,)g(but)h(are)e(not)i(de\034ned)0 4549 y(as)e(comp)r(onen)n(ts)h(in) +g(the)g(sp)r(eci\034cation.)41 b(XD)n(A)-7 b(YLIGHT)30 +b(and)f(XST)-7 b(AND)n(ARD)30 b(are)e(notable)h(examples.)40 +b(These)29 b(pseudo)0 4663 y(comp)r(onen)n(ts)d(group)f(prop)r(erties)g +(within)i(the)g(VTIMEZONE)g(comp)r(onen)n(ts.)36 b(F)-7 +b(or)25 b(instanace,)h(the)h(timezone)f(prop)r(erties)0 +4776 y(asso)r(ciated)f(with)i(da)n(yligh)n(t)e(sa)n(vings)g(time)i +(starts)e(with)i("BEGIN:D)n(A)-7 b(YLIGHT")27 b(and)f(ends)h(with)f +("END:D)n(A)-7 b(YLIGHT,)0 4890 y(just)32 b(lik)n(e)g(other)f(comp)r +(onen)n(ts,)h(but)g(is)g(not)g(de\034ned)g(as)f(a)g(comp)r(onen)n(t)g +(in)h(RF)n(C2445.)48 b(\()32 b(See)f(RF)n(C2445,)g(page)g(61)g(\))h(In) +0 5003 y(Libical,this)d(grouping)e(is)i(represen)n(ted)e(b)n(y)i(the)g (XD)n(A)-7 b(YLIGHT)30 b(comp)r(onen)n(t.)41 b(Standard)28 -b(iCAL)h(comp)r(onen)n(ts)f(all)h(start)0 3451 y(with)f(the)g(letter)g -("V,")f(while)g(pseudo)g(comp)r(onen)n(ts)g(start)g(with"X.")0 -3608 y(There)35 b(are)g(also)g(pseudo)h(comp)r(onen)n(ts)f(that)i(are)e -(conceptually)g(deriv)n(ed)g(classess)f(of)i(V)-9 b(ALARM.)37 -b(RF)n(C2446)d(de\034nes)0 3721 y(what)d(prop)r(erties)f(ma)n(y)g(b)r -(e)h(included)g(in)g(eac)n(h)f(comp)r(onen)n(t,)i(and)e(for)h(V)-9 -b(ALARM,)31 b(the)g(set)g(of)g(prop)r(erties)f(it)h(ma)n(y)f(ha)n(v)n -(e)0 3835 y(dep)r(ends)e(on)f(the)h(v)-5 b(alue)28 b(of)f(the)h(A)n -(CTION)f(prop)r(ert)n(y)-7 b(.)0 3992 y(F)g(or)19 b(instance,)j(if)e(a) -g(V)-9 b(ALARM)20 b(comp)r(onen)n(t)g(has)f(an)h(A)n(CTION)g(prop)r -(ert)n(y)e(with)j(the)f(v)-5 b(alue)20 b(of)g("A)n(UDIO,")f(the)h(comp) -r(onen)n(t)0 4105 y(m)n(ust)h(also)g(ha)n(v)n(e)f(an)h("A)-7 -b(TT)g(A)n(CH")21 b(prop)r(ert)n(y)-7 b(.)34 b(Ho)n(w)n(ev)n(er,)20 -b(if)i(the)g(A)n(CTION)f(v)-5 b(alue)21 b(is)g("DISPLA)-7 -b(Y,")22 b(the)g(comp)r(onen)n(t)f(m)n(ust)0 4219 y(ha)n(v)n(e)26 -b(a)i(DESCRIPTION)g(prop)r(ert)n(y)-7 b(.)0 4375 y(T)g(o)28 -b(handle)g(these)g(v)-5 b(arious,)27 b(complex)h(restrictions,)f -(libical)h(has)g(pseudo)g(comp)r(onen)n(ts)f(for)h(eac)n(h)f(t)n(yp)r -(e)i(of)f(alarm:)37 b(XA)n(U-)0 4489 y(DIO)n(ALARM,)28 -b(XDISPLA)-7 b(Y)g(ALARM,)30 b(XEMAILALARM)f(and)f(XPR)n(OCEDUREALARM.) -0 4780 y Fc(4.2)112 b(Com)m(bined)37 b(V)-9 b(alues)0 -4990 y Fh(Man)n(y)34 b(v)-5 b(alues)34 b(can)g(tak)n(e)g(more)g(than)g -(one)h(t)n(yp)r(e.)58 b(TRIGGER,)35 b(for)f(instance,)i(can)e(ha)n(v)n -(e)g(a)g(v)-5 b(alue)34 b(t)n(yp)r(e)h(of)g(with)g(DU-)0 -5104 y(RA)-7 b(TION)32 b(or)f(of)h(D)n(A)-7 b(TE-TIME.)33 -b(These)f(m)n(ultiple)g(t)n(yp)r(es)g(mak)n(e)f(it)i(di\036cult)g(to)e -(create)g(routines)h(to)f(return)h(the)g(v)-5 b(alue)0 -5217 y(asso)r(ciated)26 b(with)i(a)f(prop)r(ert)n(y)-7 -b(.)0 5374 y(It)30 b(is)g(natural)g(to)f(ha)n(v)n(e)g(in)n(terfaces)g -(that)i(w)n(ould)e(return)h(the)g(v)-5 b(alue)30 b(of)g(a)g(prop)r(ert) -n(y)-7 b(,)29 b(but)i(it)f(is)g(cum)n(b)r(ersone)f(for)h(a)g(single)0 -5488 y(routine)i(to)g(return)g(m)n(ultiple)h(t)n(yp)r(es.)51 -b(So,)33 b(in)g(libical,)g(prop)r(erties)e(that)i(can)f(ha)n(v)n(e)f(m) -n(ultiple)i(t)n(yp)r(es)f(are)f(giv)n(en)h(a)g(single)0 -5601 y(t)n(yp)r(e)26 b(that)g(is)g(the)g(union)g(of)g(their)g(RF)n -(C2445)e(t)n(yp)r(es.)36 b(F)-7 b(or)26 b(instance,)g(in)g(libical,)g -(the)g(v)-5 b(alue)26 b(of)g(the)g(TRIGGER)h(prop)r(ert)n(y)0 -5715 y(resolv)n(es)e(to)j(struct)f(icaltriggert)n(yp)r(e.)35 -b(This)28 b(t)n(yp)r(e)f(is)h(a)f(union)h(of)f(a)g(DURA)-7 -b(TION)29 b(and)e(a)g(D)n(A)-7 b(TE-TIME.)p eop -%%Page: 4 4 -4 3 bop 0 -167 3900 5 v 0 -200 a Fb(5.)73 b(Implemen)m(tation)29 -b(Limitations)2539 b Fh(4)0 162 y Fc(4.3)112 b(Multi-V)-9 -b(alued)36 b(Prop)s(erties)0 372 y Fh(Some)31 b(prop)r(erties,)h(suc)n -(h)f(as)g(CA)-7 b(TEGORIES)33 b(ha)n(v)n(e)d(only)h(one)g(v)-5 -b(alue)32 b(t)n(yp)r(e,)h(but)f(eac)n(h)e(CA)-7 b(TEGORIES)33 -b(prop)r(ert)n(y)d(can)0 485 y(ha)n(v)n(e)24 b(m)n(ultiple)h(v)-5 -b(alue)25 b(instances.)35 b(This)25 b(also)f(results)g(in)h(a)g(cum)n -(b)r(ersome)f(in)n(terface)g(\025)g(CA)-7 b(TEGORIES)26 -b(accessors)d(w)n(ould)0 599 y(ha)n(v)n(e)k(to)i(return)f(a)g(list)g -(while)h(all)f(other)g(accessors)e(returned)i(a)g(single)g(v)-5 -b(alue.)39 b(In)29 b(libical,)g(all)f(prop)r(erties)f(ha)n(v)n(e)h(a)g -(single)0 712 y(v)-5 b(alue,)35 b(and)e(m)n(ulti-v)-5 -b(alued)33 b(prop)r(erties)f(are)h(brok)n(en)f(do)n(wn)g(in)n(to)h(m)n -(ultiple)h(single)f(v)-5 b(alued)33 b(prop)r(erties)g(during)f -(parsing.)0 826 y(That)c(is,)f(an)g(input)i(line)e(lik)n(e,)0 -1035 y Fd(CATEGORIES:)39 b(work,)i(home)0 1357 y Fh(b)r(ecomes)27 +b(iCAL)h(comp)r(onen)n(ts)f(all)h(start)0 5117 y(with)f(the)g(letter)g +("V,")f(while)g(pseudo)g(comp)r(onen)n(ts)g(start)g(with"X.")p +eop +%%Page: 6 6 +6 5 bop 0 -167 3900 5 v 0 -200 a Fd(4.)73 b(Di\033erences)31 +b(F)-8 b(rom)31 b(RF)m(Cs)2732 b Ff(6)0 162 y(There)35 +b(are)g(also)g(pseudo)h(comp)r(onen)n(ts)f(that)i(are)e(conceptually)g +(deriv)n(ed)g(classess)f(of)i(V)-9 b(ALARM.)37 b(RF)n(C2446)d +(de\034nes)0 275 y(what)d(prop)r(erties)f(ma)n(y)g(b)r(e)h(included)g +(in)g(eac)n(h)f(comp)r(onen)n(t,)i(and)e(for)h(V)-9 b(ALARM,)31 +b(the)g(set)g(of)g(prop)r(erties)f(it)h(ma)n(y)f(ha)n(v)n(e)0 +389 y(dep)r(ends)e(on)f(the)h(v)-5 b(alue)28 b(of)f(the)h(A)n(CTION)f +(prop)r(ert)n(y)-7 b(.)0 545 y(F)g(or)19 b(instance,)j(if)e(a)g(V)-9 +b(ALARM)20 b(comp)r(onen)n(t)g(has)f(an)h(A)n(CTION)g(prop)r(ert)n(y)e +(with)j(the)f(v)-5 b(alue)20 b(of)g("A)n(UDIO,")f(the)h(comp)r(onen)n +(t)0 659 y(m)n(ust)h(also)g(ha)n(v)n(e)f(an)h("A)-7 b(TT)g(A)n(CH")21 +b(prop)r(ert)n(y)-7 b(.)34 b(Ho)n(w)n(ev)n(er,)20 b(if)i(the)g(A)n +(CTION)f(v)-5 b(alue)21 b(is)g("DISPLA)-7 b(Y,")22 b(the)g(comp)r(onen) +n(t)f(m)n(ust)0 772 y(ha)n(v)n(e)26 b(a)i(DESCRIPTION)g(prop)r(ert)n(y) +-7 b(.)0 929 y(T)g(o)28 b(handle)g(these)g(v)-5 b(arious,)27 +b(complex)h(restrictions,)f(libical)h(has)g(pseudo)g(comp)r(onen)n(ts)f +(for)h(eac)n(h)f(t)n(yp)r(e)i(of)f(alarm:)37 b(XA)n(U-)0 +1043 y(DIO)n(ALARM,)28 b(XDISPLA)-7 b(Y)g(ALARM,)30 b(XEMAILALARM)f +(and)f(XPR)n(OCEDUREALARM.)0 1334 y Fb(4.2)112 b(Com)m(bined)37 +b(V)-9 b(alues)0 1544 y Ff(Man)n(y)34 b(v)-5 b(alues)34 +b(can)g(tak)n(e)g(more)g(than)g(one)h(t)n(yp)r(e.)58 +b(TRIGGER,)35 b(for)f(instance,)i(can)e(ha)n(v)n(e)g(a)g(v)-5 +b(alue)34 b(t)n(yp)r(e)h(of)g(with)g(DU-)0 1658 y(RA)-7 +b(TION)32 b(or)f(of)h(D)n(A)-7 b(TE-TIME.)33 b(These)f(m)n(ultiple)g(t) +n(yp)r(es)g(mak)n(e)f(it)i(di\036cult)g(to)e(create)g(routines)h(to)f +(return)h(the)g(v)-5 b(alue)0 1771 y(asso)r(ciated)26 +b(with)i(a)f(prop)r(ert)n(y)-7 b(.)0 1928 y(It)30 b(is)g(natural)g(to)f +(ha)n(v)n(e)g(in)n(terfaces)g(that)i(w)n(ould)e(return)h(the)g(v)-5 +b(alue)30 b(of)g(a)g(prop)r(ert)n(y)-7 b(,)29 b(but)i(it)f(is)g(cum)n +(b)r(ersone)f(for)h(a)g(single)0 2041 y(routine)i(to)g(return)g(m)n +(ultiple)h(t)n(yp)r(es.)51 b(So,)33 b(in)g(libical,)g(prop)r(erties)e +(that)i(can)f(ha)n(v)n(e)f(m)n(ultiple)i(t)n(yp)r(es)f(are)f(giv)n(en)h +(a)g(single)0 2155 y(t)n(yp)r(e)26 b(that)g(is)g(the)g(union)g(of)g +(their)g(RF)n(C2445)e(t)n(yp)r(es.)36 b(F)-7 b(or)26 +b(instance,)g(in)g(libical,)g(the)g(v)-5 b(alue)26 b(of)g(the)g +(TRIGGER)h(prop)r(ert)n(y)0 2268 y(resolv)n(es)e(to)j(struct)f +(icaltriggert)n(yp)r(e.)35 b(This)28 b(t)n(yp)r(e)f(is)h(a)f(union)h +(of)f(a)g(DURA)-7 b(TION)29 b(and)e(a)g(D)n(A)-7 b(TE-TIME.)0 +2560 y Fb(4.3)112 b(Multi-V)-9 b(alued)36 b(Prop)s(erties)0 +2770 y Ff(Some)31 b(prop)r(erties,)h(suc)n(h)f(as)g(CA)-7 +b(TEGORIES)33 b(ha)n(v)n(e)d(only)h(one)g(v)-5 b(alue)32 +b(t)n(yp)r(e,)h(but)f(eac)n(h)e(CA)-7 b(TEGORIES)33 b(prop)r(ert)n(y)d +(can)0 2884 y(ha)n(v)n(e)24 b(m)n(ultiple)h(v)-5 b(alue)25 +b(instances.)35 b(This)25 b(also)f(results)g(in)h(a)g(cum)n(b)r(ersome) +f(in)n(terface)g(\025)g(CA)-7 b(TEGORIES)26 b(accessors)d(w)n(ould)0 +2997 y(ha)n(v)n(e)k(to)i(return)f(a)g(list)g(while)h(all)f(other)g +(accessors)e(returned)i(a)g(single)g(v)-5 b(alue.)39 +b(In)29 b(libical,)g(all)f(prop)r(erties)f(ha)n(v)n(e)h(a)g(single)0 +3111 y(v)-5 b(alue,)35 b(and)e(m)n(ulti-v)-5 b(alued)33 +b(prop)r(erties)f(are)h(brok)n(en)f(do)n(wn)g(in)n(to)h(m)n(ultiple)h +(single)f(v)-5 b(alued)33 b(prop)r(erties)g(during)f(parsing.)0 +3224 y(That)c(is,)f(an)g(input)i(line)e(lik)n(e,)0 3464 +y Fc(CATEGORIES:)39 b(work,)i(home)0 3703 y Ff(b)r(ecomes)27 b(in)h(libical's)f(in)n(ternal)g(represen)n(tation)0 -1566 y Fd(CATEGORIES:)39 b(work)0 1680 y(CATEGORIES:)g(home)0 -2002 y Fh(Oddly)-7 b(,)34 b(RF)n(C2445)d(allo)n(ws)g(some)h(m)n(ulti-v) +3943 y Fc(CATEGORIES:)39 b(work)0 4056 y(CATEGORIES:)g(home)0 +4296 y Ff(Oddly)-7 b(,)34 b(RF)n(C2445)d(allo)n(ws)g(some)h(m)n(ulti-v) -5 b(alued)33 b(prop)r(erties)f(\()h(lik)n(e)g(FREEBUSY)h(\))f(to)g -(exist)g(as)f(b)r(oth)h(a)f(m)n(ulti-v)-5 b(alues)0 2116 +(exist)g(as)f(b)r(oth)h(a)f(m)n(ulti-v)-5 b(alues)0 4409 y(prop)r(ert)n(y)24 b(and)h(as)f(m)n(ultiple)h(single)g(v)-5 b(alue)24 b(prop)r(erties,)h(while)g(others)f(\()i(lik)n(e)e(CA)-7 b(TEGORIES)26 b(\))f(can)g(only)g(exist)f(as)h(single)0 -2229 y(m)n(ulti-v)-5 b(alued)32 b(prop)r(erties.)48 b(This)31 +4523 y(m)n(ulti-v)-5 b(alued)32 b(prop)r(erties.)48 b(This)31 b(mak)n(es)g(the)h(in)n(ternal)f(represen)n(tation)e(for)i(CA)-7 b(TEGORIES)33 b(illegal.)48 b(Ho)n(w)n(ev)n(er)30 b(when)0 -2343 y(y)n(ou)d(con)n(v)n(ert)f(a)h(comp)r(onen)n(t)g(to)h(a)f(string,) +4637 y(y)n(ou)d(con)n(v)n(ert)f(a)h(comp)r(onen)n(t)g(to)h(a)f(string,) g(the)h(library)e(will)i(collect)f(all)g(of)h(the)g(CA)-7 -b(TEGORIES)28 b(prop)r(erties)f(in)n(to)g(one.)0 2676 -y Fe(5)131 b(Implemen)l(tation)44 b(Limitations)0 2971 -y(6)131 b(Using)44 b(libical)0 3229 y Fc(6.1)112 b(Creating)37 -b(Comp)s(onen)m(ts)0 3439 y Fh(There)e(are)g(three)h(w)n(a)n(ys)e(to)i -(create)e(comp)r(onen)n(ts)i(in)g(Libical:)53 b(creating)34 -b(individual)i(ob)5 b(jects)35 b(and)h(assem)n(bling)e(them,)0 -3553 y(building)28 b(en)n(tire)f(ob)5 b(jects)27 b(in)h(massiv)n(e)e(v) --5 b(aargs)26 b(calls,)h(and)g(parsing)f(a)h(text)h(\034le)g(con)n -(taining)e(iCalendar)h(data.)0 3820 y Fb(6.1.1)94 b(Constructor)32 -b(In)m(terfaces)0 4030 y Fh(Using)d(constructor)f(in)n(terfaces,)h(y)n -(ou)f(create)h(eac)n(h)f(of)i(the)f(ob)5 b(jects)29 b(sep)r(erately)g -(and)g(them)h(assem)n(ble)e(them)i(in)g(to)f(com-)0 4143 -y(p)r(onen)n(ts:)p 0 4201 3900 4 v 0 4346 a Fd(icalcomponent)38 -b(*event;)0 4460 y(icalproperty)g(*prop;)0 4574 y(icalparameter)g -(*param;)0 4687 y(struct)j(icaltimetype)e(atime;)0 4801 -y(event)i(=)j(icalcomponent_n)o(ew)o(\(IC)o(AL)o(_V)o(EVE)o(NT)o(_C)o -(OMP)o(ON)o(EN)o(T\);)0 4914 y(prop)e(=)h(icalproperty_new)o(_d)o(tst)o -(am)o(p\()o(ati)o(me)o(\))37 b(;)0 5028 y(icalcomponent_ad)o(d_)o(pro)o -(pe)o(rt)o(y\(e)o(ve)o(nt)o(,)h(prop\);)0 5141 y(prop)k(=)h -(icalproperty_new)o(_u)o(id\()o(st)o(rd)o(up\()o("g)o(ui)o(d-1)o(.h)o -(os)o(t1.)o(co)o(m"\))o(\))37 b(\);)0 5255 y(icalcomponent_ad)o(d_)o -(pro)o(pe)o(rt)o(y\(e)o(ve)o(nt)o(,pr)o(op)o(\);)0 5369 -y(prop=icalpropert)o(y_)o(new)o(_o)o(rg)o(ani)o(ze)o(r\()o(str)o(du)o -(p\()o("mr)o(bi)o(g@)o(hos)o(t.)o(com)o("\))o(\);)0 5482 -y(param)k(=)j(icalparameter_n)o(ew)o(_ro)o(le)o(\(I)o(CAL)o(_R)o(OL)o -(E_C)o(HA)o(IR)o(\))0 5596 y(icalproperty_add)o(_p)o(ara)o(me)o(te)o -(r\(p)o(ro)o(p,)37 b(param\);)0 5709 y(icalcomponent_ad)o(d_)o(pro)o -(pe)o(rt)o(y\(e)o(ve)o(nt)o(,pr)o(op)o(\);)p eop -%%Page: 5 5 -5 4 bop 0 -167 3900 5 v 0 -200 a Fb(6.)73 b(Using)32 -b(libical)3190 b Fh(5)p 0 162 3900 4 v 0 312 a(While)31 -b(w)n(e)g(are)f(on)h(this)g(example,)g(y)n(ou)g(should)f(notice)h(that) -g(libical)g(uses)g(a)f(semi-ob)5 b(ject-orien)n(ted)29 -b(st)n(yle)i(of)g(in)n(terface.)0 425 y(Most)23 b(things)h(y)n(ou)f(w)n -(ork)g(with)h(are)f(ob)5 b(jects,)24 b(that)g(are)f(instan)n(tiated)g -(with)h(a)g(constructor)e(that)i(has)f("new")g(in)h(the)g(name.)0 -539 y(Also)h(note)h(that,)g(other)f(than)h(the)g(ob)5 -b(ject)26 b(reference,)f(most)g(structure)g(data)g(is)h(passed)f(in)h -(to)f(libical)h(routines)f(b)n(y)g(v)-5 b(alue.)0 652 -y(Strings,)24 b(of)g(course,)f(are)g(passed)g(in)h(b)n(y)g(reference,)f -(but)i(libical)f(will)g(tak)n(e)f(o)n(wnership)f(of)i(the)g(memory)-7 -b(,)24 b(so)f(y)n(ou)g(had)h(b)r(eter)0 766 y(strdup\(\))30 -b(the)f(data)g(unless)g(y)n(ou)f(w)n(an)n(t)h(a)f(core)g(dump)i(when)f -(the)h(memory)e(is)h(freed)g(for)g(the)g(second)g(time.)42 -b(Libical)29 b(has)0 879 y(some)e(complex)g(but)h(v)n(ery)f(regular)e -(memory)i(handling)g(rules.)37 b(These)27 b(are)f(detailed)i(in)g -(section)f(6.4)g(\(\).)0 1036 y(If)33 b(an)n(y)e(of)h(the)h +b(TEGORIES)28 b(prop)r(erties)f(in)n(to)g(one.)p eop +%%Page: 7 7 +7 6 bop 0 -167 3900 5 v 0 -200 a Fd(5.)73 b(Implemen)m(tation)29 +b(Limitations)2539 b Ff(7)0 162 y Fe(5)131 b(Implemen)l(tation)44 +b(Limitations)0 457 y(6)131 b(Using)44 b(libical)0 715 +y Fb(6.1)112 b(Creating)37 b(Comp)s(onen)m(ts)0 925 y +Ff(There)e(are)g(three)h(w)n(a)n(ys)e(to)i(create)e(comp)r(onen)n(ts)i +(in)g(Libical:)53 b(creating)34 b(individual)i(ob)5 b(jects)35 +b(and)h(assem)n(bling)e(them,)0 1038 y(building)28 b(en)n(tire)f(ob)5 +b(jects)27 b(in)h(massiv)n(e)e(v)-5 b(aargs)26 b(calls,)h(and)g +(parsing)f(a)h(text)h(\034le)g(con)n(taining)e(iCalendar)h(data.)0 +1311 y Fd(6.1.1)94 b(Constructor)32 b(In)m(terfaces)0 +1521 y Ff(Using)d(constructor)f(in)n(terfaces,)h(y)n(ou)f(create)h(eac) +n(h)f(of)i(the)f(ob)5 b(jects)29 b(sep)r(erately)g(and)g(them)h(assem)n +(ble)e(them)i(in)g(to)f(com-)0 1635 y(p)r(onen)n(ts:)p +0 1704 3900 4 v 0 1881 a Fc(icalcomponent)38 b(*event;)0 +1994 y(icalproperty)g(*prop;)0 2108 y(icalparameter)g(*param;)0 +2221 y(struct)j(icaltimetype)e(atime;)0 2335 y(event)i(=)j +(icalcomponent_n)o(ew)o(\(IC)o(AL)o(_V)o(EVE)o(NT)o(_C)o(OMP)o(ON)o(EN) +o(T\);)0 2448 y(prop)e(=)h(icalproperty_new)o(_d)o(tst)o(am)o(p\()o +(ati)o(me)o(\))37 b(;)0 2562 y(icalcomponent_ad)o(d_)o(pro)o(pe)o(rt)o +(y\(e)o(ve)o(nt)o(,)h(prop\);)0 2676 y(prop)k(=)h(icalproperty_new)o +(_u)o(id\()o(st)o(rd)o(up\()o(gu)o(id)o(-1.)o(ho)o(st)o(1.c)o(om)o +(\)\))37 b(\);)0 2789 y(icalcomponent_ad)o(d_)o(pro)o(pe)o(rt)o(y\(e)o +(ve)o(nt)o(,pr)o(op)o(\);)0 2903 y(prop=icalpropert)o(y_)o(new)o(_o)o +(rg)o(ani)o(ze)o(r\()o(str)o(du)o(p\()o(mrb)o(ig)o(@h)o(ost)o(.c)o +(om\))o(\);)0 3016 y(param)k(=)j(icalparameter_n)o(ew)o(_ro)o(le)o(\(I) +o(CAL)o(_R)o(OL)o(E_C)o(HA)o(IR)o(\))0 3130 y(icalproperty_add)o(_p)o +(ara)o(me)o(te)o(r\(p)o(ro)o(p,)37 b(param\);)0 3243 +y(icalcomponent_ad)o(d_)o(pro)o(pe)o(rt)o(y\(e)o(ve)o(nt)o(,pr)o(op)o +(\);)p 0 3348 V 0 3498 a Ff(While)31 b(w)n(e)g(are)f(on)h(this)g +(example,)g(y)n(ou)g(should)f(notice)h(that)g(libical)g(uses)g(a)f +(semi-ob)5 b(ject-orien)n(ted)29 b(st)n(yle)i(of)g(in)n(terface.)0 +3612 y(Most)23 b(things)h(y)n(ou)f(w)n(ork)g(with)h(are)f(ob)5 +b(jects,)24 b(that)g(are)f(instan)n(tiated)g(with)h(a)g(constructor)e +(that)i(has)f("new")g(in)h(the)g(name.)0 3725 y(Also)h(note)h(that,)g +(other)f(than)h(the)g(ob)5 b(ject)26 b(reference,)f(most)g(structure)g +(data)g(is)h(passed)f(in)h(to)f(libical)h(routines)f(b)n(y)g(v)-5 +b(alue.)0 3839 y(Strings,)24 b(of)g(course,)f(are)g(passed)g(in)h(b)n +(y)g(reference,)f(but)i(libical)f(will)g(tak)n(e)f(o)n(wnership)f(of)i +(the)g(memory)-7 b(,)24 b(so)f(y)n(ou)g(had)h(b)r(eter)0 +3952 y(strdup\(\))30 b(the)f(data)g(unless)g(y)n(ou)f(w)n(an)n(t)h(a)f +(core)g(dump)i(when)f(the)h(memory)e(is)h(freed)g(for)g(the)g(second)g +(time.)42 b(Libical)29 b(has)0 4066 y(some)e(complex)g(but)h(v)n(ery)f +(regular)e(memory)i(handling)g(rules.)37 b(These)27 b(are)f(detailed)i +(in)g(section)f(6.5)g(\(\).)0 4222 y(If)33 b(an)n(y)e(of)h(the)h (constructors)d(fail,)k(they)f(will)f(return)g(0.)50 b(If)33 b(y)n(ou)f(try)g(to)g(insert)g(0)f(in)n(to)h(a)g(prop)r(ert)n -(y)f(or)h(comp)r(onen)n(t,)h(or)0 1149 y(use)j(a)g(zero-v)-5 +(y)f(or)h(comp)r(onen)n(t,)h(or)0 4336 y(use)j(a)g(zero-v)-5 b(alued)34 b(ob)5 b(ject)36 b(reference,)h(libical)f(will)h(either)f (silen)n(tly)f(ignore)g(the)i(error)d(or)h(will)h(ab)r(ort)g(with)g(an) -g(error)0 1263 y(message.)61 b(This)36 b(b)r(eha)n(vior)e(is)i(con)n +g(error)0 4450 y(message.)61 b(This)36 b(b)r(eha)n(vior)e(is)i(con)n (trolled)f(b)n(y)g(a)h(compile)g(time)g(\035ag)f(\(ICAL_ERR)n -(ORS_ARE_F)-9 b(A)i(T)g(AL\),)37 b(and)f(will)0 1377 -y(ab)r(ort)27 b(b)n(y)g(default.)0 1649 y Fb(6.1.2)94 -b(v)-5 b(aargs)32 b(Constructors)0 1859 y Fh(There)24 +(ORS_ARE_F)-9 b(A)i(T)g(AL\),)37 b(and)f(will)0 4563 +y(ab)r(ort)27 b(b)n(y)g(default.)0 4836 y Fd(6.1.2)94 +b(v)-5 b(aargs)32 b(Constructors)0 5046 y Ff(There)24 b(is)h(another)f(w)n(a)n(y)g(to)h(create)f(complex)g(comp)r(onen)n(ts,) h(whic)n(h)g(is)g(arguable)e(more)h(elegan)n(t,)h(if)g(y)n(ou)f(are)g -(not)h(horri\034ed)0 1973 y(b)n(y)f(v)-5 b(arargs.)33 +(not)h(horri\034ed)0 5159 y(b)n(y)f(v)-5 b(arargs.)33 b(The)24 b(v)-5 b(arargs)22 b(constructor)g(in)n(terface)i(all)g(y)n (ou)f(to)h(create)f(in)n(tricate)h(comp)r(onen)n(ts)f(in)i(a)e(single)h -(blo)r(c)n(k)g(of)g(text.)p 0 2042 V 174 2219 a Fd(calendar)40 -b(=)349 2332 y(icalcomponent_v)o(an)o(ew\()523 2446 y(ICAL_VCALENDAR_C) -o(OM)o(PO)o(NEN)o(T,)523 2560 y(icalproperty_new)o(_v)o(er)o(sio)o(n\() -o(st)o(rdu)o(p\()o("2)o(.0")o(\)\))o(,)523 2673 y(icalproperty_new)o -(_p)o(ro)o(did)o(\(s)o(tr)o(dup)o(\(")o(-/)o(/RD)o(U)d -(Software//NONSGML)g(HandCal//EN"\)\),)523 2787 y(icalcomponent_va)o -(ne)o(w\()697 2900 y(ICAL_VEVENT_COMP)o(ONE)o(NT)o(,)697 -3014 y(icalproperty_new)o(_dt)o(st)o(am)o(p\(a)o(ti)o(me)o(\),)697 -3127 y(icalproperty_new)o(_ui)o(d\()o(st)o(rdu)o(p\()o("g)o(uid)o(-1)o -(.ho)o(st)o(1.)o(com)o("\))o(\),)697 3241 y(icalproperty_van)o(ew_)o -(or)o(ga)o(niz)o(er)o(\()872 3355 y(strdup\("mrbig@h)o(os)o(t.)o(com)o -("\))o(,)872 3468 y(icalparameter_n)o(ew)o(_r)o(ole)o(\(I)o(CA)o(L_R)o -(OL)o(E_C)o(HA)o(IR)o(\),)872 3582 y(0)872 3695 y(\),)697 -3809 y(icalproperty_van)o(ew_)o(at)o(te)o(nde)o(e\()872 -3922 y(strdup\("employe)o(e-)o(A@)o(hos)o(t.)o(co)o(m"\))o(,)872 -4036 y(icalparameter_n)o(ew)o(_r)o(ole)o(\(I)o(CA)o(L_R)o(OL)o(E_R)o -(EQ)o(PA)o(RTI)o(CI)o(PA)o(NT\))o(,)872 4150 y(icalparameter_n)o(ew)o -(_r)o(svp)o(\(1)o(\),)872 4263 y(icalparameter_n)o(ew)o(_c)o(uty)o(pe)o -(\(I)o(CAL)o(_C)o(UTY)o(PE)o(_G)o(ROU)o(P\))o(,)872 4377 -y(0)872 4490 y(\),)697 4604 y(icalproperty_new)o(_lo)o(ca)o(ti)o(on\()o -(st)o(rd)o(up\()o("1)o(CP)g(Conference)i(Room)j(4350"\)\),)697 -4717 y(0)697 4831 y(\),)523 4945 y(0)523 5058 y(\);)p -0 5258 V 0 5408 a Fh(This)23 b(form)g(is)h(similar)e(to)i(the)f -(regular)f(constructor,)h(except)g(that)h(they)f(ha)n(v)n(e)g("v)-5 -b(anew")22 b(instead)h(of)g("new")g(in)g(the)h(name.)0 -5522 y(The)32 b(argumen)n(ts)f(are)g(similar)g(to)r(o,)j(except)e(that) -g(the)h(comp)r(onen)n(t)e(con)n(tstructor)g(can)h(ha)n(v)n(e)f(a)g -(list)i(of)f(prop)r(erties,)g(and)0 5635 y(the)f(prop)r(ert)n(y)f -(constructor)f(can)h(ha)n(v)n(e)f(a)i(list)g(or)f(parameters.)44 -b(Be)30 b(sure)g(to)h(terminate)g(ev)n(ery)e(list)i(with)g(a)f('0',)i -(or)d(y)n(our)0 5749 y(co)r(de)e(will)h(crash,)f(if)h(y)n(ou)e(are)h -(luc)n(ky)-7 b(.)p eop -%%Page: 6 6 -6 5 bop 0 -167 3900 5 v 0 -200 a Fb(6.)73 b(Using)32 -b(libical)3190 b Fh(6)0 162 y Fb(6.1.3)94 b(P)m(arsing)32 -b(T)-8 b(ext)32 b(Files)0 372 y Fh(The)g(\034nal)g(w)n(a)n(y)f(to)h -(create)f(comp)r(onen)n(ts)h(will)g(probably)f(b)r(e)h(the)h(most)f -(common;)i(y)n(ou)d(can)h(create)f(comp)r(onen)n(ts)g(from)0 -485 y(RF)n(C2445)26 b(complian)n(t)h(text.)37 b(If)28 -b(y)n(ou)f(ha)n(v)n(e)f(the)i(string)f(in)h(memory)-7 -b(,)26 b(use)0 725 y Fd(icalcomponent*)38 b(icalparser_pars)o(e_)o(str) -o(in)o(g\()o(cha)o(r*)f(str\);)0 1078 y Fh(This)30 b(ma)n(y)f(seem)g(w) -n(asteful)h(if)g(y)n(ou)f(w)n(an)n(t)g(to)g(pull)i(a)e(large)f(comp)r -(onen)n(t)i(o\033)f(of)h(the)g(net)n(w)n(ork;)g(y)n(ou)f(ma)n(y)g -(prefer)g(to)g(parse)0 1191 y(the)f(comp)r(onen)n(t)f(line)h(b)n(y)f -(line.)37 b(This)28 b(is)f(p)r(ossible)g(to)r(o)h(b)n(y)f(using:)0 -1431 y Fd(icalparser_get_l)o(in)o(e\(p)o(ar)o(se)o(r,r)o(ea)o(d_)o(str) -o(ea)o(m\))o(;)0 1545 y(icalparser_add_l)o(in)o(e\(p)o(ar)o(se)o(r,l)o -(in)o(e\))o(;)0 1658 y(icalparser_set_g)o(en)o(_da)o(ta)o(\(p)o(ars)o -(er)o(,s)o(tre)o(am)o(\))0 2011 y Fh(F)-7 b(or)27 b(an)g(example)g(of)h -(ho)n(w)f(to)g(use)h(this)f(t)n(yp)r(e)h(of)g(parsing,)e(see)h -(examples/parse_text.c)e(for)i(an)g(example.)0 2303 y -Fc(6.2)112 b(A)m(ccessing)37 b(Comp)s(onen)m(ts)0 2513 -y Fh(Giv)n(en)30 b(a)g(reference)f(to)i(a)e(comp)r(onen)n(t,)i(y)n(ou)f -(probably)f(will)h(w)n(an)n(t)g(to)g(access)f(the)i(prop)r(erties,)f -(parameters)e(and)j(v)-5 b(alues)0 2626 y(inside.)35 -b(Libical)22 b(in)n(terface)g(let)h(y)n(ou)e(\034nd)i(sub-comp)r(onen)n -(t,)g(add)f(and)g(remo)n(v)n(e)f(sub-comp)r(onen)n(ts,)h(and)h(do)f -(the)h(same)e(three)0 2740 y(op)r(erations)26 b(on)h(prop)r(erties.)0 -3013 y Fb(6.2.1)94 b(Finding)30 b(Comp)s(onen)m(ts)0 -3223 y Fh(T)-7 b(o)27 b(\034nd)h(a)f(sub-comp)r(onen)n(t)g(of)h(a)f -(comp)r(onen)n(t,)g(use:)0 3462 y Fd(icalproperty*)38 -b(icalcomponent_ge)o(t_)o(fir)o(st)o(_c)o(omp)o(on)o(en)o(t\()1482 -3576 y(icalcomponent*)f(component,)1482 3689 y(icalcomponent_k)o(in)o -(d)h(kind\);)0 4042 y Fh(This)27 b(routine)g(will)h(return)f(a)g -(reference)g(to)g(the)h(\034rst)f(comp)r(onen)n(t)g(of)h(the)f(t)n(yp)r -(e)h('kind.')37 b(The)28 b(k)n(ey)e(kind)i(v)-5 b(alues,)27 -b(listed)h(in)0 4156 y(icalen)n(ums.h)f(are:)p 0 4209 -3900 4 v 0 4386 a Fd(ICAL_ANY_COMPONE)o(NT)0 4499 y(ICAL_VEVENT_COMP)o -(ON)o(ENT)0 4613 y(ICAL_VTODO_COMPO)o(NE)o(NT)0 4726 -y(ICAL_VJOURNAL_CO)o(MP)o(ONE)o(NT)0 4840 y(ICAL_VCALENDAR_C)o(OM)o -(PON)o(EN)o(T)0 4954 y(ICAL_VFREEBUSY_C)o(OM)o(PON)o(EN)o(T)0 -5067 y(ICAL_VALARM_COMP)o(ON)o(ENT)p 0 5267 V 0 5417 -a Fh(These)g(are)g(only)g(the)h(most)f(common)g(comp)r(onen)n(ts;)g -(there)h(are)e(man)n(y)h(more)g(listed)h(in)g(icalen)n(ums.h.)0 -5573 y(As)h(y)n(ou)f(migh)n(t)h(guess,)g(if)g(there)g(is)g(more)f(than) -h(one)f(sub)r(comp)r(onen)n(t)h(of)g(the)h(t)n(yp)r(e)f(y)n(ou)f(ha)n -(v)n(e)g(c)n(hosen,)g(this)h(routine)g(will)0 5687 y(return)e(only)g -(the)h(\034rst.)37 b(to)27 b(get)h(at)f(the)h(others,)f(y)n(ou)f(need)i -(to)g(iterate)f(through)f(the)i(comp)r(onen)n(t.)p eop -%%Page: 7 7 -7 6 bop 0 -167 3900 5 v 0 -200 a Fb(6.)73 b(Using)32 -b(libical)3190 b Fh(7)0 162 y Fb(6.2.2)94 b(In)m(terating)32 -b(Through)g(Comp)s(onen)m(ts)0 372 y Fh(Iteration)27 -b(requires)f(a)h(second)g(routine)g(to)h(get)f(the)h(next)g(sub)r(comp) -r(onen)n(t)f(after)g(the)h(\034rst:)0 611 y Fd(icalcomponent*)38 -b(icalcomponent_g)o(et)o(_ne)o(xt)o(_c)o(omp)o(on)o(en)o(t\(i)o(ca)o -(lco)o(mp)o(on)o(ent)o(*)f(component,)0 725 y(icalcomponent_ki)o(nd)g -(kind\);)0 1078 y Fh(With)25 b(the)g('\034rst')f(and)g('next')h -(routines,)g(y)n(ou)e(can)h(create)g(a)g(for)f(lo)r(op)h(to)h(iterate)f -(through)f(all)h(of)h(a)f(comp)r(onen)n(ts)g(sub)r(com-)0 -1191 y(p)r(onen)n(ts)p 0 1261 3900 4 v 87 1444 a Fd(for\(c)42 -b(=)h(icalcomponent_g)o(et_)o(fi)o(rs)o(t_c)o(om)o(po)o(nen)o(t\()o(co) -o(mp,)o(IC)o(AL_)o(AN)o(Y_)o(COM)o(PO)o(NE)o(NT\))o(;)392 -1558 y(c)g(!=)g(0;)392 1671 y(c)g(=)g(icalcomponent_get)o(_n)o(ext)o -(_c)o(om)o(pon)o(en)o(t\()o(com)o(p,)o(ICA)o(L_)o(AN)o(Y_C)o(OM)o(PO)o -(NEN)o(T\))o(\))0 1785 y({)261 1899 y(do_something\(c\);)0 -2012 y(})p 0 2212 V 0 2362 a Fh(This)32 b(co)r(de)f(bit)h(wil)g -(iterate)g(through)f(all)g(of)h(the)g(sub)r(comp)r(onen)n(ts)f(in)h -('comp')g(but)g(y)n(ou)f(can)g(select)h(a)f(sp)r(eci\034c)h(t)n(yp)r(e) -g(of)0 2476 y(comp)r(onen)n(t)27 b(b)n(y)h(c)n(hanging)e -(ICAL_ANY_COMPONENT)i(to)f(another)g(comp)r(onen)n(t)g(t)n(yp)r(e.)0 -2748 y Fb(6.2.3)94 b(Remo)m(ving)29 b(Comp)s(onen)m(ts)0 -2958 y Fh(Libical)h(comp)r(onen)n(t)g(ha)n(v)n(e)f(in)n(ternal)h +(blo)r(c)n(k)g(of)g(text.)174 5399 y Fc(calendar)40 b(=)p +eop +%%Page: 8 8 +8 7 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3190 b Ff(8)349 162 y Fc(icalcomponent_v)o(an)o(ew\()523 +275 y(ICAL_VCALENDAR_C)o(OM)o(PO)o(NEN)o(T,)523 389 y(icalproperty_new) +o(_v)o(er)o(sio)o(n\()o(st)o(rdu)o(p\()o(2.)o(0\)\))o(,)523 +502 y(icalproperty_new)o(_p)o(ro)o(did)o(\(s)o(tr)o(dup)o(\()741 +616 y(-//RDU)41 b(Software//NONSG)o(ML)c(HandCal//EN\)\),)523 +730 y(icalcomponent_va)o(ne)o(w\()697 843 y(ICAL_VEVENT_COMP)o(ONE)o +(NT)o(,)697 957 y(icalproperty_new)o(_dt)o(st)o(am)o(p\(a)o(ti)o(me)o +(\),)697 1070 y(icalproperty_new)o(_ui)o(d\()o(st)o(rdu)o(p\()o(gu)o +(id-)o(1.)o(hos)o(t1)o(.c)o(om\))o(\),)697 1184 y(icalproperty_van)o +(ew_)o(or)o(ga)o(niz)o(er)o(\()872 1297 y(strdup\(mrbig@ho)o(st)o(.c)o +(om\))o(,)872 1411 y(icalparameter_n)o(ew)o(_r)o(ole)o(\(I)o(CA)o(L_R)o +(OL)o(E_C)o(HA)o(IR)o(\),)872 1525 y(0)872 1638 y(\),)697 +1752 y(icalproperty_van)o(ew_)o(at)o(te)o(nde)o(e\()872 +1865 y(strdup\(employee)o(-A)o(@h)o(ost)o(.c)o(om)o(\),)872 +1979 y(icalparameter_n)o(ew)o(_r)o(ole)o(\()1046 2092 +y(ICAL_ROLE_REQPA)o(RTI)o(CI)o(PA)o(NT\))o(,)872 2206 +y(icalparameter_n)o(ew)o(_r)o(svp)o(\(1)o(\),)872 2320 +y(icalparameter_n)o(ew)o(_c)o(uty)o(pe)o(\(I)o(CAL)o(_C)o(UTY)o(PE)o +(_G)o(ROU)o(P\))o(,)872 2433 y(0)872 2547 y(\),)697 2660 +y(icalproperty_new)o(_lo)o(ca)o(ti)o(on\()o(st)o(rd)o(up\()828 +2774 y(1CP)42 b(Conference)e(Room)h(4350\)\),)697 2887 +y(0)697 3001 y(\),)523 3115 y(0)523 3228 y(\);)0 3454 +y Ff(This)23 b(form)g(is)h(similar)e(to)i(the)f(regular)f(constructor,) +h(except)g(that)h(they)f(ha)n(v)n(e)g("v)-5 b(anew")22 +b(instead)h(of)g("new")g(in)g(the)h(name.)0 3568 y(The)32 +b(argumen)n(ts)f(are)g(similar)g(to)r(o,)j(except)e(that)g(the)h(comp)r +(onen)n(t)e(con)n(tstructor)g(can)h(ha)n(v)n(e)f(a)g(list)i(of)f(prop)r +(erties,)g(and)0 3681 y(the)f(prop)r(ert)n(y)f(constructor)f(can)h(ha)n +(v)n(e)f(a)i(list)g(or)f(parameters.)44 b(Be)30 b(sure)g(to)h +(terminate)g(ev)n(ery)e(list)i(with)g(a)f('0',)i(or)d(y)n(our)0 +3795 y(co)r(de)e(will)h(crash,)f(if)h(y)n(ou)e(are)h(luc)n(ky)-7 +b(.)0 4065 y Fd(6.1.3)94 b(P)m(arsing)32 b(T)-8 b(ext)32 +b(Files)0 4275 y Ff(The)g(\034nal)g(w)n(a)n(y)f(to)h(create)f(comp)r +(onen)n(ts)h(will)g(probably)f(b)r(e)h(the)h(most)f(common;)i(y)n(ou)d +(can)h(create)f(comp)r(onen)n(ts)g(from)0 4389 y(RF)n(C2445)26 +b(complian)n(t)h(text.)37 b(If)28 b(y)n(ou)f(ha)n(v)n(e)f(the)i(string) +f(in)h(memory)-7 b(,)26 b(use)0 4615 y Fc(icalcomponent*)38 +b(icalparser_pars)o(e_)o(str)o(in)o(g\()o(cha)o(r*)f(str\);)0 +4841 y Ff(This)30 b(ma)n(y)f(seem)g(w)n(asteful)h(if)g(y)n(ou)f(w)n(an) +n(t)g(to)g(pull)i(a)e(large)f(comp)r(onen)n(t)i(o\033)f(of)h(the)g(net) +n(w)n(ork;)g(y)n(ou)f(ma)n(y)g(prefer)g(to)g(parse)0 +4954 y(the)f(comp)r(onen)n(t)f(line)h(b)n(y)f(line.)37 +b(This)28 b(is)f(p)r(ossible)g(to)r(o)h(b)n(y)f(using:)0 +5180 y Fc(icalparser*)39 b(icalparser_new\(\))o(;)0 5294 +y(void)j(icalparser_free\()o(ic)o(al)o(par)o(se)o(r*)37 +b(parser\);)0 5407 y(icalparser_get_l)o(in)o(e\(p)o(ar)o(se)o(r,r)o(ea) +o(d_)o(str)o(ea)o(m\))o(;)p eop +%%Page: 9 9 +9 8 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3190 b Ff(9)0 162 y Fc(icalparser_add_l)o(in)o(e\(p)o(ar)o +(se)o(r,l)o(in)o(e\))o(;)0 275 y(icalparser_set_g)o(en)o(_da)o(ta)o +(\(p)o(ars)o(er)o(,s)o(tre)o(am)o(\))0 515 y Ff(These)21 +b(routines)f(will)i(construct)f(a)f(parser)g(ob)5 b(ject)21 +b(to)g(whic)n(h)g(y)n(ou)g(can)g(add)g(lines)g(of)g(input)h(and)f +(retriev)n(e)f(an)n(y)h(comp)r(onen)n(ts)0 628 y(that)28 +b(the)g(parser)e(creates)g(from)h(the)h(input.)38 b(F)-7 +b(or)27 b(an)g(example:)0 868 y Fc(char*)41 b(read_stream\(char)c(*s,) +43 b(size_t)e(size,)g(void)h(*d\))87 1095 y(char)g(*c)h(=)g +(fgets\(s,size,)38 b(\(FILE*\)d\);)87 1209 y(return)j(c;)0 +1436 y(main\(\))87 1549 y(char*)h(line;)87 1663 y(icalcomponent)c(*c;) +87 1776 y(icalparser)h(*parser)i(=)i(icalparser_new\(\))o(;)87 +1890 y(FILE*)f(stream)f(=)i(fopen\(argv1,r\);)87 2004 +y(icalparser_set_g)o(en_)o(da)o(ta)o(\(pa)o(rs)o(er)o(,st)o(re)o(am)o +(\);)87 2117 y(do)174 2231 y(line)f(=)h(icalparser_get_li)o(ne)o(\(p)o +(ars)o(er)o(,r)o(ead)o(_s)o(tr)o(eam)o(\);)174 2344 y(c)g(=)h +(icalparser_add_)o(li)o(ne\()o(pa)o(rs)o(er,)o(li)o(ne)o(\);)174 +2458 y(if)f(\(c)g(!=)f(0\))218 2571 y(printf\(s,icalcom)o(po)o(ne)o +(nt_)o(as)o(_i)o(cal)o(_s)o(tr)o(ing)o(\(c)o(\)\))o(;)218 +2685 y(icalparser_claim)o(\(p)o(ar)o(ser)o(\);)218 2799 +y(printf\(n--------)o(--)o(--)o(---)o(n\))o(;)218 2912 +y(icalcomponent_fr)o(ee)o(\(c)o(\);)131 3139 y(while)f(\()i(line)f(!=)h +(0\);)0 3379 y Ff(The)48 b(parser)f(ob)5 b(ject)48 b(parameterizes)f +(the)i(routine)f(used)g(to)g(get)h(input)g(lines)f(with)h +(icalparser_set_gen_data\(\))0 3492 y(andicalparser_get_line\(\).)81 +b(In)44 b(this)f(example,)k(the)d(routine)f(read_stream\(\))e(will)j +(fetc)n(h)g(the)f(next)h(line)g(from)e(a)0 3606 y(stream,)51 +b(with)d(the)f(stream)g(passed)f(in)h(as)g(the)g(v)n(oid*)f(parameter)f +(d.)96 b(The)47 b(parser)f(calls)g(read_stream\(\))f(from)0 +3720 y(icalparser_get_line\(\),)e(but)g(it)g(also)e(needs)h(to)h(kno)n +(w)e(what)h(stream)g(to)g(use.)81 b(This)42 b(is)h(set)f(b)n(y)g(the)h +(call)f(to)g(ical-)0 3833 y(parser_set_gen_data\(\).)0 +3990 y(Using)18 b(the)h(same)f(mec)n(hanism,)i(other)e(implmen)n +(tations)h(could)f(read)g(from)g(memory)g(bu\033ers,)i(so)r(c)n(k)n +(ets)d(or)h(other)g(in)n(terfaces.)0 4146 y(Since)28 +b(the)g(example)f(co)r(de)g(is)h(a)f(v)n(ery)f(common)h(w)n(a)n(y)f(to) +i(use)f(the)h(parser,)e(there)i(is)f(a)g(con)n(vienience)g(routine;)0 +4386 y Fc(icalcomponent*)38 b(icalparser_pars)o(e\()o(ica)o(lp)o(ar)o +(ser)f(*parser,)654 4499 y(char*)k(\(*line_gen_func\))o(\(c)o(har)c +(*s,)42 b(size_t)f(sise,)85 b(void*)42 b(d\)\))0 4739 +y Ff(T)-7 b(o)36 b(use)h(this)g(routine,)i(y)n(ou)d(still)h(m)n(ust)g +(construct)f(the)h(parser)f(ob)5 b(ject)36 b(and)h(pass)f(in)h(a)f +(reference)g(to)h(a)f(line)h(reading)0 4852 y(routine.)50 +b(If)33 b(the)f(parser)f(can)h(create)f(a)h(single)f(comp)r(onen)n(t)h +(from)g(the)g(input,)i(it)f(will)f(return)g(a)g(p)r(oin)n(ter)g(to)g +(the)g(newly)0 4966 y(constructed)j(comp)r(onen)n(t.)62 +b(If)36 b(the)g(parser)e(can)i(construct)f(m)n(ultiple)i(cmp)r(onen)n +(ts)e(from)h(the)g(input,)j(it)d(will)g(return)f(a)0 +5079 y(reference)28 b(to)h(an)g(XR)n(OOT)g(comp)r(onen)n(t)g(\()h(of)f +(t)n(yp)r(e)g(ICAL_XR)n(OOT_COMPONENT.\))g(This)g(XR)n(OOT)f(comp)r +(onen)n(t)0 5193 y(will)h(hold)g(all)g(of)g(the)h(comp)r(onen)n(ts)e +(constructed)h(from)f(the)i(input)g(as)e(c)n(hildren.)41 +b(See)29 b(section)g(6.2.2)f(for)g(ho)n(w)h(to)g(iterate)0 +5306 y(through)e(the)h(c)n(hild)f(comp)r(onen)n(ts.)p +eop +%%Page: 10 10 +10 9 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(10)0 162 y Fb(6.2)112 b(A)m(ccessing)37 +b(Comp)s(onen)m(ts)0 372 y Ff(Giv)n(en)30 b(a)g(reference)f(to)i(a)e +(comp)r(onen)n(t,)i(y)n(ou)f(probably)f(will)h(w)n(an)n(t)g(to)g +(access)f(the)i(prop)r(erties,)f(parameters)e(and)j(v)-5 +b(alues)0 485 y(inside.)35 b(Libical)22 b(in)n(terface)g(let)h(y)n(ou)e +(\034nd)i(sub-comp)r(onen)n(t,)g(add)f(and)g(remo)n(v)n(e)f(sub-comp)r +(onen)n(ts,)h(and)h(do)f(the)h(same)e(three)0 599 y(op)r(erations)26 +b(on)h(prop)r(erties.)0 866 y Fd(6.2.1)94 b(Finding)30 +b(Comp)s(onen)m(ts)0 1076 y Ff(T)-7 b(o)27 b(\034nd)h(a)f(sub-comp)r +(onen)n(t)g(of)h(a)f(comp)r(onen)n(t,)g(use:)0 1283 y +Fc(icalcomponent*)38 b(icalcomponent_g)o(et)o(_fi)o(rs)o(t_)o(com)o(po) +o(ne)o(nt\()1525 1396 y(icalcomponent*)g(component,)1525 +1510 y(icalcomponent_ki)o(nd)f(kind\);)0 1716 y Ff(This)27 +b(routine)g(will)h(return)f(a)g(reference)g(to)g(the)h(\034rst)f(comp)r +(onen)n(t)g(of)h(the)f(t)n(yp)r(e)h('kind.')37 b(The)28 +b(k)n(ey)e(kind)i(v)-5 b(alues,)27 b(listed)h(in)0 1830 +y(icalen)n(ums.h)f(are:)0 2037 y Fc(ICAL_ANY_COMPONE)o(NT)0 +2150 y(ICAL_VEVENT_COMP)o(ON)o(ENT)0 2264 y(ICAL_VTODO_COMPO)o(NE)o(NT) +0 2377 y(ICAL_VJOURNAL_CO)o(MP)o(ONE)o(NT)0 2491 y(ICAL_VCALENDAR_C)o +(OM)o(PON)o(EN)o(T)0 2605 y(ICAL_VFREEBUSY_C)o(OM)o(PON)o(EN)o(T)0 +2718 y(ICAL_VALARM_COMP)o(ON)o(ENT)0 2925 y Ff(These)g(are)g(only)g +(the)h(most)f(common)g(comp)r(onen)n(ts;)g(there)h(are)e(man)n(y)h +(more)g(listed)h(in)g(icalen)n(ums.h.)0 3081 y(As)h(y)n(ou)f(migh)n(t)h +(guess,)g(if)g(there)g(is)g(more)f(than)h(one)f(sub)r(comp)r(onen)n(t)h +(of)g(the)h(t)n(yp)r(e)f(y)n(ou)f(ha)n(v)n(e)g(c)n(hosen,)g(this)h +(routine)g(will)0 3195 y(return)e(only)g(the)h(\034rst.)37 +b(to)27 b(get)h(at)f(the)h(others,)f(y)n(ou)f(need)i(to)g(iterate)f +(through)f(the)i(comp)r(onen)n(t.)0 3462 y Fd(6.2.2)94 +b(In)m(terating)32 b(Through)g(Comp)s(onen)m(ts)0 3672 +y Ff(Iteration)27 b(requires)f(a)h(second)g(routine)g(to)h(get)f(the)h +(next)g(sub)r(comp)r(onen)n(t)f(after)g(the)h(\034rst:)0 +3879 y Fc(icalcomponent*)38 b(icalcomponent_g)o(et)o(_ne)o(xt)o(_c)o +(omp)o(on)o(en)o(t\()654 3992 y(icalcomponent*)f(component,)654 +4106 y(icalcomponent_k)o(in)o(d)h(kind\);)0 4312 y Ff(With)25 +b(the)g('\034rst')f(and)g('next')h(routines,)g(y)n(ou)e(can)h(create)g +(a)g(for)f(lo)r(op)h(to)h(iterate)f(through)f(all)h(of)h(a)f(comp)r +(onen)n(ts)g(sub)r(com-)0 4426 y(p)r(onen)n(ts)87 4633 +y Fc(for\(c)42 b(=)h(icalcomponent_g)o(et_)o(fi)o(rs)o(t_c)o(om)o(po)o +(nen)o(t\()o(co)o(mp,)o(IC)o(AL_)o(AN)o(Y_)o(COM)o(PO)o(NE)o(NT\))o(;) +392 4746 y(c)g(!=)g(0;)44 4860 y(c)g(=)g(icalcomponent_ge)o(t_)o(ne)o +(xt_)o(co)o(mp)o(one)o(nt)o(\(c)o(omp)o(,I)o(CA)o(L_A)o(NY)o(_CO)o(MP)o +(ON)o(ENT)o(\)\))261 5087 y(do_something\(c\);)0 5294 +y Ff(This)32 b(co)r(de)f(bit)h(wil)g(iterate)g(through)f(all)g(of)h +(the)g(sub)r(comp)r(onen)n(ts)f(in)h('comp')g(but)g(y)n(ou)f(can)g +(select)h(a)f(sp)r(eci\034c)h(t)n(yp)r(e)g(of)0 5407 +y(comp)r(onen)n(t)27 b(b)n(y)h(c)n(hanging)e(ICAL_ANY_COMPONENT)i(to)f +(another)g(comp)r(onen)n(t)g(t)n(yp)r(e.)p eop +%%Page: 11 11 +11 10 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(11)0 162 y Fd(6.2.3)94 b(Using)31 +b(Comp)s(onen)m(t)f(Iterators)0 372 y Ff(The)h(iteration)f(mo)r(del)h +(in)h(the)f(previous)f(section)g(requires)g(the)h(comp)r(onen)n(t)g(to) +g(k)n(eep)f(the)i(state)f(of)g(the)g(iteration.)46 b(So,)0 +485 y(y)n(ou)32 b(could)g(not)h(use)f(this)h(mo)r(del)g(to)f(p)r +(erform)g(a)g(sorting)f(op)r(erations,)i(since)f(y)n(ou'd)g(need)h(t)n +(w)n(o)f(iterators)f(and)h(there)g(is)0 599 y(only)25 +b(space)f(for)h(one.)36 b(If)26 b(y)n(ou)e(ev)n(er)g(call)h(icalcomp)r +(onen)n(t_get_\034rst_comp)r(onen)n(t\(\))e(whic)n(h)i(an)g(iteration)g +(is)g(in)g(progress,)0 712 y(the)j(p)r(oin)n(ter)f(will)h(b)r(e)g +(reset)f(to)g(the)h(b)r(eginning.)0 869 y(T)-7 b(o)28 +b(solv)n(e)g(this)h(problem,)g(there)f(are)g(also)g(external)f +(iterators)h(for)g(comp)r(onen)n(ts.)40 b(The)28 b(routines)g(asso)r +(ciated)g(with)h(these)0 983 y(external)e(iterators)f(are:)0 +1209 y Fc(icalcompiter)38 b(icalcomponent_beg)o(in)o(_co)o(mp)o(on)o +(ent)o(\(i)o(ca)o(lco)o(mp)o(one)o(nt)o(*)f(component,)j +(icalcomponent_k)o(ind)d(kind\);)0 1322 y(icalcompiter)h +(icalcomponent_end)o(_c)o(omp)o(on)o(en)o(t\(i)o(ca)o(lc)o(omp)o(on)o +(ent)o(*)f(component,)j(icalcomponent_k)o(in)o(d)e(kind\);)0 +1436 y(icalcomponent*)g(icalcompiter_ne)o(xt)o(\(ic)o(al)o(co)o(mpi)o +(te)o(r*)f(i\);)0 1550 y(icalcomponent*)h(icalcompiter_pr)o(io)o(r\(i)o +(ca)o(lc)o(omp)o(it)o(er)o(*)g(i\);)0 1663 y(icalcomponent*)g +(icalcompiter_de)o(re)o(f\(i)o(ca)o(lc)o(omp)o(it)o(er)o(*)g(i\);)0 +1890 y Ff(The)30 b(_b)r(egin_\(\))g(and)f(_end_\(\))h(routines)g +(return)f(a)h(new)g(iterator)e(that)i(p)r(oin)n(ts)g(to)g(the)g(b)r +(egining)g(and)g(ending)g(of)g(the)0 2003 y(list)36 b(of)f(sub)r(comp)r +(onen)n(t)h(for)f(the)h(giv)n(en)f(comp)r(onen)n(t,)i(and)e(the)h(kind) +g(argumen)n(t)e(w)n(orks)g(lik)n(e)h(the)h(kind)g(argumen)n(t)f(for)0 +2117 y(in)n(ternal)27 b(iterators.)0 2273 y(After)f(creating)e(an)h +(iterators,)g(use)g(_next_\(\))g(and)h(_prior_\(\))e(to)h(step)h(forw)n +(ard)d(and)j(bac)n(kw)n(ard)d(through)i(the)h(list)f(and)0 +2387 y(get)30 b(the)g(comp)r(onen)n(t)g(that)g(the)g(iterator)e(p)r +(oin)n(ts)i(to,)h(and)e(use)h(_deref\(\))g(to)g(return)f(the)h(comp)r +(onen)n(t)g(that)g(the)g(iterator)0 2500 y(p)r(oin)n(ts)c(to)g(without) +h(mo)n(ving)e(the)i(iterator.)35 b(All)27 b(routines)f(will)g(return)g +(0)g(when)g(they)h(mo)n(v)n(e)e(to)h(p)r(oin)n(t)h(o\033)f(the)h(end)f +(of)h(the)0 2614 y(list.)0 2770 y(Here)g(is)h(an)f(example)g(of)h(a)f +(lo)r(op)g(using)g(these)h(routines:)0 2997 y Fc(for\()131 +3110 y(i)43 b(=)g(icalcomponent_be)o(gi)o(n_c)o(om)o(po)o(nen)o(t\()o +(im)o(pl-)o(cl)o(us)o(ter)o(,I)o(CAL)o(_A)o(NY)o(_CO)o(MP)o(ON)o(ENT)o +(\);)131 3224 y(icalcompiter_de)o(ref)o(\(i)o(\)!)o(=)38 +b(0;)131 3337 y(icalcompiter_ne)o(xt\()o(i\))0 3451 y(\))261 +3565 y(icalcomponent)h(*this)i(=)i(icalcompiter_der)o(ef)o(\(i\))o(;)0 +3835 y Fd(6.2.4)94 b(Remo)m(ving)29 b(Comp)s(onen)m(ts)0 +4045 y Ff(Libical)h(comp)r(onen)n(t)g(ha)n(v)n(e)f(in)n(ternal)h (iterators,)f(so)h(y)n(ou)g(can)g(only)g(ha)n(v)n(e)f(one)h(iteration)g (o)n(v)n(er)e(a)i(comp)r(onen)n(t)g(at)h(a)f(time.)0 -3072 y(Remo)n(ving)23 b(an)h(elemen)n(t)h(from)f(a)g(list)g(while)h +4159 y(Remo)n(ving)23 b(an)h(elemen)n(t)h(from)f(a)g(list)g(while)h (iterating)e(through)h(the)h(list)f(can)g(cause)g(problems,)g(since)g -(y)n(ou)g(will)g(probably)0 3185 y(b)r(e)e(remo)n(ving)e(the)i(elemen)n -(t)g(that)g(the)g(in)n(ternal)f(iterator)f(p)r(oin)n(ts)i(to.)34 -b(This)22 b(will)g(result)f(in)h(the)g(iteration)f(lo)r(op)h -(terminating)0 3299 y(immediately)29 b(after)f(remo)n(ving)g(the)h -(elemen)n(t.)41 b(T)-7 b(o)28 b(a)n(v)n(oid)g(the)h(problem,)f(y)n(ou)h -(will)g(need)g(to)f(step)h(the)h(iterator)d(ahead)h(of)0 -3413 y(the)g(elemen)n(t)g(y)n(ou)e(are)h(going)f(to)i(remo)n(v)n(e,)e -(lik)n(e)h(this:)p 0 3482 V 0 3665 a Fd(for\(c)41 b(=)j -(icalcomponent_g)o(et)o(_fi)o(rs)o(t_)o(com)o(po)o(ne)o(nt\()o(pa)o(re) -o(nt_)o(co)o(mp,)o(IC)o(AL)o(_AN)o(Y_)o(CO)o(MPO)o(NE)o(NT)o(\);)305 -3779 y(c)f(!=)g(0;)305 3893 y(c)g(=)g(next)0 4006 y({)174 -4120 y(next)f(=)h(icalcomponent_get)o(_n)o(ex)o(t_c)o(om)o(po)o(nen)o -(t\()o(pa)o(ren)o(t_)o(com)o(p,)o(IC)o(AL_)o(AN)o(Y_)o(COM)o(PO)o(NE)o -(NT\))o(;)174 4233 y(icalcomponent_rem)o(ov)o(e_)o(com)o(po)o(ne)o -(nt\()o(pa)o(re)o(nt_)o(co)o(mp)o(,c\))o(;)0 4347 y(})p -0 4547 V 0 4763 a Fb(6.2.4)94 b(W)-8 b(orking)31 b(with)g(prop)s -(erties)g(and)h(parameters)0 4973 y Fh(Finding,)g(iterating)f(and)g -(remo)n(ving)e(prop)r(erties)h(w)n(orks)g(the)h(same)g(as)f(it)i(do)r -(es)e(for)h(comp)r(onen)n(ts,)g(using)g(the)h(prop)r(ert)n(y-)0 -5087 y(sp)r(eci\034c)c(or)e(parameter-sp)r(eci\034c)g(in)n(terfaces:)0 -5326 y Fd(icalproperty*)38 b(icalcomponent_ge)o(t_)o(fir)o(st)o(_p)o -(rop)o(er)o(ty)o(\()218 5440 y(icalcomponent*)g(component,)218 -5553 y(icalproperty_kin)o(d)f(kind\);)0 5667 y(icalproperty*)h -(icalcomponent_ge)o(t_)o(nex)o(t_)o(pr)o(ope)o(rt)o(y\()218 -5780 y(icalcomponent*)g(component,)p eop -%%Page: 8 8 -8 7 bop 0 -167 3900 5 v 0 -200 a Fb(6.)73 b(Using)32 -b(libical)3190 b Fh(8)218 162 y Fd(icalproperty_kin)o(d)37 -b(kind\);)0 275 y(void)42 b(icalcomponent_ad)o(d_)o(pr)o(ope)o(rt)o -(y\()218 389 y(icalcomponent*)c(component,)218 502 y(icalproperty*)g -(property\);)0 616 y(void)k(icalcomponent_re)o(mo)o(ve)o(_pr)o(op)o(er) -o(ty\()218 730 y(icalcomponent*)c(component,)218 843 -y(icalproperty*)g(property\);)0 957 y(icalparameter*)g(icalproperty_ge) -o(t_)o(fir)o(st)o(_p)o(ara)o(me)o(te)o(r\()218 1070 y(icalproperty*)g -(prop,)218 1184 y(icalparameter_ki)o(nd)f(kind\);)0 1297 -y(icalparameter*)h(icalproperty_ge)o(t_)o(nex)o(t_)o(pa)o(ram)o(et)o -(er)o(\()218 1411 y(icalproperty*)g(prop,)218 1525 y(icalparameter_ki)o -(nd)f(kind\);)0 1638 y(void)42 b(icalproperty_add)o(_p)o(ar)o(ame)o(te) -o(r\()218 1752 y(icalproperty*)c(prop,)218 1865 y(icalparameter*)g -(parameter\);)0 1979 y(void)k(icalproperty_rem)o(ov)o(e_)o(par)o(am)o -(et)o(er\()218 2092 y(icalproperty*)c(prop,)218 2206 -y(icalparameter_ki)o(nd)f(kind\);)0 2589 y Fb(6.2.5)94 -b(Getting)31 b(V)-8 b(alues)0 2799 y(6.2.6)94 b(Setting)31 -b(V)-8 b(alues)0 3009 y(6.2.7)94 b(Getting)31 b(P)m(arameters)0 -3219 y(6.2.8)94 b(Setting)31 b(P)m(arameters)0 3429 y(6.2.9)94 -b(Remo)m(ving)29 b(P)m(arameters)0 3639 y(6.2.10)93 b(Chec)m(king)32 -b(Comp)s(onen)m(t)e(V)-8 b(alidit)m(y)0 3868 y Fc(6.3)112 -b(Storing)37 b(Ob)6 b(jects)0 4078 y Fh(The)27 b(libical)g -(distribution)h(inclues)f(a)g(sep)r(erate)f(library)-7 -b(,)26 b(libicalss,)h(that)g(allo)n(ws)f(y)n(ou)g(to)i(store)e(iCal)h -(comp)r(onen)n(t)g(data)f(to)0 4192 y(disk)h(in)h(a)f(v)-5 -b(ariet)n(y)27 b(of)h(w)n(a)n(ys.)35 b(This)27 b(library)g(is)g(do)r -(cumen)n(ted)h(sep)r(erately)-7 b(.)36 b(\()28 b(&)f(curren)n(tly)-7 -b(,)27 b(not)g(at)h(all.)36 b(\))0 4480 y Fc(6.4)112 -b(Memory)37 b(Managemen)m(t)0 4690 y Fh(Libical)25 b(relies)f(hea)n -(vily)g(on)h(dynamic)g(allo)r(cation)f(for)h(b)r(oth)h(the)f(core)f(ob) -5 b(jects)25 b(and)g(for)f(the)i(strings)e(used)h(to)g(hold)g(v)-5 -b(alues.)0 4804 y(Some)34 b(of)f(this)h(memory)f(the)h(library)f +(y)n(ou)g(will)g(probably)0 4272 y(b)r(e)30 b(remo)n(ving)e(the)h +(elemen)n(t)h(that)g(the)f(in)n(ternal)g(iterator)f(p)r(oin)n(ts)i(to.) +42 b(The)29 b(_remo)n(v)n(e\(\))f(routine)h(will)h(k)n(eep)f(the)g +(iterator)0 4386 y(v)-5 b(alid)22 b(b)n(y)g(mo)n(ving)g(it)g(to)h(the)f +(next)h(comp)r(onen)n(t,)g(but)g(in)g(a)e(normal)h(lo)r(op,)h(this)f +(will)h(result)f(in)h(t)n(w)n(o)e(adv)-5 b(ances)22 b(p)r(er)g +(iteration,)0 4499 y(and)29 b(y)n(ou)g(will)g(remo)n(v)n(e)f(only)h(ev) +n(ery)f(other)h(comp)r(onen)n(t.)42 b(T)-7 b(o)29 b(a)n(v)n(oid)e(the)j +(problem,)f(y)n(ou)g(will)h(need)f(to)g(step)h(the)f(iterator)0 +4613 y(ahead)e(of)g(the)h(elemen)n(t)g(y)n(ou)f(are)f(going)h(to)g +(remo)n(v)n(e,)f(lik)n(e)h(this:)0 4839 y Fc(for\(c)41 +b(=)j(icalcomponent_g)o(et)o(_fi)o(rs)o(t_)o(com)o(po)o(ne)o(nt\()o(pa) +o(re)o(nt_)o(co)o(mp,)o(IC)o(AL)o(_AN)o(Y_)o(CO)o(MPO)o(NE)o(NT)o(\);) +305 4953 y(c)f(!=)g(0;)305 5066 y(c)g(=)g(next)174 5294 +y(next)f(=)h(icalcomponent_get)o(_n)o(ex)o(t_c)o(om)o(po)o(nen)o(t\()o +(pa)o(ren)o(t_)o(com)o(p,)o(IC)o(AL_)o(AN)o(Y_)o(COM)o(PO)o(NE)o(NT\))o +(;)174 5407 y(icalcomponent_rem)o(ov)o(e_)o(com)o(po)o(ne)o(nt\()o(pa)o +(re)o(nt_)o(co)o(mp)o(,c\))o(;)p eop +%%Page: 12 12 +12 11 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(12)0 162 y(Another)32 b(w)n(a)n(y)e(to)i(remo)n(v)n +(e)e(comp)r(onen)n(ts)i(is)g(to)f(rely)h(on)f(the)i(side)f(e\033ect)g +(of)g(icalcomp)r(onen)n(t_remo)n(v)n(e_comp)r(onen)n(t:)42 +b(if)0 275 y(comp)r(onen)n(t)28 b(iterator)g(in)h(the)g(paren)n(t)f +(comp)r(onen)n(t)h(is)f(p)r(oin)n(ting)h(to)g(the)g(c)n(hild)g(that)g +(will)g(b)r(e)g(remo)n(v)n(ed,)f(it)h(will)g(mo)n(v)n(e)f(the)0 +389 y(iterator)e(to)i(the)g(comp)r(onen)n(t)f(after)g(the)h(c)n(hild.) +37 b(The)27 b(follo)n(wing)g(co)r(de)g(will)h(exploit)f(this)h(b)r(eha) +n(vior:)0 628 y Fc(icalcomponent_ge)o(t_)o(fir)o(st)o(_c)o(omp)o(on)o +(en)o(t\(p)o(ar)o(en)o(t_c)o(om)o(p,)o(ICA)o(L_)o(VEV)o(EN)o(T_)o(COM)o +(PO)o(NE)o(NT\))o(;)0 742 y(while\(\(c=icalcom)o(po)o(nen)o(t_)o(ge)o +(t_c)o(ur)o(re)o(nt_)o(co)o(mp)o(one)o(nt)o(\(c)o(\)\))37 +b(!=)43 b(0)g(\))131 855 y(if\(icalcomponen)o(t_i)o(sa)o(\(c)o(\))38 +b(==)k(ICAL_VEVENT_COMP)o(ONE)o(NT)o(\))261 969 y(icalcomponent_rem)o +(ov)o(e_c)o(om)o(po)o(nen)o(t\()o(pa)o(ren)o(t_)o(co)o(mp,)o(in)o(ner)o +(\);)174 1083 y(else)261 1196 y(icalcomponent_get)o(_n)o(ext)o(_c)o(om) +o(pon)o(en)o(t\()o(par)o(en)o(t_)o(com)o(p,)o(ICA)o(L_)o(VE)o(VEN)o(T_) +o(CO)o(MPO)o(NE)o(NT)o(\);)0 1582 y Fd(6.2.5)94 b(W)-8 +b(orking)31 b(with)g(prop)s(erties)g(and)h(parameters)0 +1792 y Ff(Finding,)g(iterating)f(and)g(remo)n(ving)e(prop)r(erties)h(w) +n(orks)g(the)h(same)g(as)f(it)i(do)r(es)e(for)h(comp)r(onen)n(ts,)g +(using)g(the)h(prop)r(ert)n(y-)0 1906 y(sp)r(eci\034c)c(or)e +(parameter-sp)r(eci\034c)g(in)n(terfaces:)0 2146 y Fc(icalproperty*)38 +b(icalcomponent_ge)o(t_)o(fir)o(st)o(_p)o(rop)o(er)o(ty)o(\()218 +2259 y(icalcomponent*)g(component,)218 2373 y(icalproperty_kin)o(d)f +(kind\);)0 2486 y(icalproperty*)h(icalcomponent_ge)o(t_)o(nex)o(t_)o +(pr)o(ope)o(rt)o(y\()218 2600 y(icalcomponent*)g(component,)218 +2713 y(icalproperty_kin)o(d)f(kind\);)0 2827 y(void)42 +b(icalcomponent_ad)o(d_)o(pr)o(ope)o(rt)o(y\()218 2941 +y(icalcomponent*)c(component,)218 3054 y(icalproperty*)g(property\);)0 +3168 y(void)k(icalcomponent_re)o(mo)o(ve)o(_pr)o(op)o(er)o(ty\()218 +3281 y(icalcomponent*)c(component,)218 3395 y(icalproperty*)g +(property\);)0 3508 y(icalparameter*)g(icalproperty_ge)o(t_)o(fir)o(st) +o(_p)o(ara)o(me)o(te)o(r\()218 3622 y(icalproperty*)g(prop,)218 +3736 y(icalparameter_ki)o(nd)f(kind\);)0 3849 y(icalparameter*)h +(icalproperty_ge)o(t_)o(nex)o(t_)o(pa)o(ram)o(et)o(er)o(\()218 +3963 y(icalproperty*)g(prop,)218 4076 y(icalparameter_ki)o(nd)f +(kind\);)0 4190 y(void)42 b(icalproperty_add)o(_p)o(ar)o(ame)o(te)o +(r\()218 4303 y(icalproperty*)c(prop,)218 4417 y(icalparameter*)g +(parameter\);)0 4531 y(void)k(icalproperty_rem)o(ov)o(e_)o(par)o(am)o +(et)o(er\()218 4644 y(icalproperty*)c(prop,)218 4758 +y(icalparameter_ki)o(nd)f(kind\);)0 5030 y Fd(6.2.6)94 +b(W)-8 b(orking)31 b(with)g(v)-5 b(alues)0 5240 y Ff(V)e(alues)32 +b(are)g(t)n(ypically)g(part)g(of)g(a)g(prop)r(ert)n(y)-7 +b(,)33 b(although)f(they)h(can)f(exist)g(on)h(their)f(o)n(wn.)51 +b(Y)-7 b(ou)33 b(can)f(maniplulate)h(them)0 5354 y(either)27 +b(as)g(part)g(of)h(the)g(prop)r(ert)n(y)e(or)h(indep)r(endan)n(tly)-7 +b(.)p eop +%%Page: 13 13 +13 12 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(13)0 162 y(The)25 b(most)f(common)g(w)n(a)n(y)f(to) +i(w)n(ork)e(with)i(v)-5 b(alues)24 b(to)g(is)h(to)f(maniplate)g(them)h +(from)g(they)f(prop)r(erties)g(that)h(con)n(tain)e(them.)0 +275 y(This)31 b(in)n(v)n(olv)n(es)d(few)n(er)j(routine)f(calls)g(and)g +(in)n(termediate)h(v)-5 b(ariables)29 b(than)i(w)n(orking)e(with)i +(them)g(indep)r(enden)n(tly)-7 b(,)32 b(and)f(it)0 389 +y(is)c(t)n(yp)r(e-safe.)0 545 y(F)-7 b(or)28 b(eac)n(h)h(prop)r(ert)n +(y)-7 b(,)28 b(there)h(are)f(a)g(_get_)g(and)h(a)g(_set_)f(routine)g +(that)i(access)d(the)j(in)n(ternal)e(v)-5 b(alue.)41 +b(F)-7 b(or)29 b(instnace,)g(for)0 659 y(the)f(UID)g(prop)r(ert)n(y)-7 +b(,)27 b(the)h(routines)f(are:)0 886 y Fc(void)42 b(icalproperty_set)o +(_u)o(id)o(\(ic)o(al)o(pr)o(ope)o(rt)o(y*)37 b(prop,)k(const)h(char*)f +(v\))0 999 y(const)g(char*)h(icalproperty_get)o(_u)o(id)o(\(ic)o(al)o +(pr)o(ope)o(rt)o(y*)37 b(prop\))0 1226 y Ff(F)-7 b(or)21 +b(m)n(ultiv)-5 b(alued)22 b(prop)r(erties,)g(lik)n(e)f(A)-7 +b(TT)g(A)n(CH,)23 b(the)f(v)-5 b(alue)21 b(t)n(yp)r(e)h(is)g(usually)f +(a)g(struct)h(or)e(union)i(that)g(holds)f(b)r(oth)h(p)r(ossible)0 +1340 y(t)n(yp)r(es.)0 1496 y(If)28 b(y)n(ou)f(w)n(an)n(t)g(to)g(w)n +(ork)f(with)i(the)g(underlying)f(v)-5 b(alue)28 b(ob)5 +b(ject,)27 b(y)n(ou)g(can)g(get)g(and)h(set)f(it)h(with:)0 +1723 y Fc(icalvalue*)39 b(icalproperty_get_)o(va)o(lu)o(e)f +(\(icalproperty*)f(prop\))0 1836 y(void)42 b(icalproperty_set)o(_v)o +(al)o(ue\()o(ic)o(al)o(pro)o(pe)o(rt)o(y*)37 b(prop,)42 +b(icalvalue*)d(value\);)0 2063 y Ff(Icalprop)r(ert)n(y_get_v)-5 +b(alue\(\))36 b(will)i(return)g(a)g(reference)f(that)h(y)n(ou)g(can)g +(manipluate)g(with)h(other)e(icalv)-5 b(alue)38 b(routines.)0 +2177 y(Most)30 b(of)h(the)g(time,)g(y)n(ou)f(will)h(ha)n(v)n(e)e(to)i +(kno)n(w)e(what)i(the)g(t)n(yp)r(e)f(of)h(the)g(v)-5 +b(alue)30 b(is.)46 b(F)-7 b(or)30 b(instance,)g(if)i(y)n(ou)d(kno)n(w)h +(that)h(the)0 2290 y(v)-5 b(alue)27 b(is)h(a)f(D)n(A)-7 +b(TETIME)29 b(t)n(yp)r(e,)f(y)n(ou)f(can)g(manipluate)g(it)h(with:)0 +2517 y Fc(struct)41 b(icaltimetype)e(icalvalue_get_d)o(at)o(et)o(ime)o +(\(i)o(ca)o(lva)o(lu)o(e*)e(value\);)0 2631 y(void)42 +b(icalvalue_set_da)o(te)o(ti)o(me\()o(ic)o(al)o(val)o(ue)o(*)37 +b(value,)k(struct)h(icaltimetype)c(v\);)0 2858 y Ff(When)21 +b(w)n(orking)e(with)i(an)f(extension)g(prop)r(ert)n(y)f(or)h(v)-5 +b(alue)20 b(\(and)h(X-PR)n(OPER)-7 b(TY)21 b(or)f(a)g(prop)r(ert)n(y)f +(that)i(has)f(the)h(parameter)0 2971 y(V)-9 b(ALUE=x-name)27 +b(\))h(the)g(v)-5 b(alue)28 b(t)n(yp)r(e)f(is)h(alw)n(a)n(ys)d(a)j +(string.)36 b(T)-7 b(o)27 b(get)g(and)h(set)f(the)h(v)-5 +b(alue,)28 b(use:)0 3198 y Fc(void)42 b(icalproperty_set)o(_x)o(\(i)o +(cal)o(pr)o(op)o(ert)o(y*)37 b(prop,)k(char*)h(v\);)0 +3312 y(char*)f(icalproperty_get_)o(x\()o(ica)o(lp)o(ro)o(per)o(ty)o(*)c +(prop\);)0 3582 y Fd(6.2.7)94 b(W)-8 b(orking)31 b(with)g(parameters)0 +3792 y(6.2.8)94 b(Chec)m(king)32 b(Comp)s(onen)m(t)d(V)-8 +b(alidit)m(y)0 4002 y Ff(RF)n(C)27 b(2446)e(de\034nes)i(rules)g(for)f +(what)h(prop)r(erties)f(m)n(ust)h(exist)g(in)h(a)e(comp)r(onen)n(t)h +(to)g(b)r(e)g(used)g(for)g(transfering)f(sc)n(heduling)0 +4116 y(data.)58 b(Most)35 b(of)g(these)g(rules)f(relate)g(to)h(the)g +(existence)f(of)h(prop)r(erties)f(relativ)n(e)g(to)h(the)g(METHOD)h +(prop)r(ert)n(y)-7 b(,)35 b(whic)n(h)0 4229 y(declares)22 +b(what)h(op)r(eration)f(a)h(remote)g(reciev)n(er)f(should)h(use)g(to)g +(pro)r(cess)f(a)h(comp)r(onen)n(t.)35 b(F)-7 b(or)23 +b(instance,)h(if)g(the)f(METHOD)0 4343 y(is)36 b(REQUEST)h(and)e(the)i +(comp)r(onen)n(t)e(is)h(a)f(VEVENT,)j(the)e(sender)f(is)h(probably)f +(asking)f(the)j(reciev)n(er)d(to)h(join)h(in)g(a)0 4456 +y(meeting.)g(In)25 b(this)g(case,)g(RF)n(C2446)d(sa)n(ys)i(that)h(the)g +(comp)r(onen)n(t)g(m)n(ust)g(sp)r(ecify)g(a)f(start)g(time)i(\(DTST)-7 +b(AR)g(T\))26 b(and)f(list)g(the)0 4570 y(reciev)n(er)h(as)h(an)g +(attendee)h(\(A)-7 b(TTENDEE\).)0 4726 y(Libical)27 b(can)g(c)n(hec)n +(k)g(these)h(restrictions)e(with)i(the)g(routine:)0 4953 +y Fc(int)42 b(icalrestriction_c)o(he)o(ck)o(\(ic)o(al)o(co)o(mpo)o(ne)o +(nt)o(*)c(comp\);)0 5180 y Ff(This)19 b(routine)f(returns)g(0)h(if)g +(the)g(comp)r(onen)n(t)g(do)r(es)f(not)h(pass)f(RF)n(C2446)f +(restrictions,)i(or)f(if)h(the)g(comp)r(onen)n(t)g(is)g(malformed.)0 +5294 y(The)38 b(comp)r(onen)n(t)g(y)n(ou)f(pass)g(in)h +Fa(must)45 b Ff(b)r(e)38 b(a)g(V)n(CALEND)n(AR,)h(with)g(one)e(or)g +(more)h(c)n(hildren,)i(lik)n(e)d(the)i(examples)e(in)0 +5407 y(RF)n(C2446.)p eop +%%Page: 14 14 +14 13 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(14)0 162 y(When)28 b(this)f(routine)g(runs,)f(it)i +(will)f(insert)g(new)g(prop)r(erties)f(in)n(to)h(the)h(comp)r(onen)n(t) +e(to)h(indicate)h(an)n(y)e(errors)f(it)i(\034nds.)37 +b(See)0 275 y(section)27 b(6.5.3,)f(X-LIC-ERR)n(OR)i(for)f(more)f +(information)h(ab)r(out)h(these)f(error)f(prop)r(erties.)0 +548 y Fd(6.2.9)94 b(Con)m(v)m(erting)32 b(Comp)s(onen)m(ts)d(to)j(T)-8 +b(ext)0 758 y Ff(T)h(o)22 b(create)g(an)g(RF)n(C2445)f(complian)n(t)h +(text)h(represen)n(ttion)e(of)i(an)f(ob)5 b(ject,)23 +b(use)g(one)f(of)g(the)h(*_as_ical_string\(\))d(routines:)0 +997 y Fc(char*)41 b(icalcomponent_as_)o(ic)o(al_)o(st)o(ri)o(ng)c +(\(icalcomponent*)g(component\))0 1111 y(char*)k(icalproperty_as_i)o +(ca)o(l_s)o(tr)o(in)o(g)d(\(icalproperty*)f(property\))0 +1225 y(char*)k(icalparameter_as_)o(ic)o(al_)o(st)o(ri)o(ng)c +(\(icalparameter*)g(parameter\))0 1338 y(char*)k(icalvalue_as_ical)o +(_s)o(tri)o(ng)c(\(icalvalue*)i(value\))0 1578 y Ff(In)32 +b(most)h(cases,)f(y)n(ou)f(will)i(only)f(use)g(icalcomp)r(onen)n +(t_as_ical_string)c(\(\),)34 b(since)e(it)h(will)f(cascade)f(and)h(con) +n(v)n(ert)f(all)h(of)0 1691 y(the)c(parameters,)e(prop)r(erties)g(and)i +(v)-5 b(alues)27 b(that)h(are)e(attac)n(hed)h(to)h(the)g(ro)r(ot)e +(comp)r(onen)n(t.)0 1848 y(Icalprop)r(ert)n(y_as_ical_string\(\))34 +b(will)k(terminate)g(eac)n(h)g(line)g(with)h(the)g(RF)n(C2445)d(sp)r +(eci\034ed)j(line)f(terminator)f("rn")0 1961 y(Ho)n(w)n(ev)n(er,)24 +b(if)i(y)n(ou)f(compile)g(with)h(the)g(sym)n(b)r(ol)f +(ICAL_UNIX_NEWLINE)i(de\034ned,)f(it)g(will)g(terminate)f(lines)h(with) +g("n")0 2118 y(Remem)n(b)r(er)35 b(that)h(the)f(string)g(returned)f(b)n +(y)h(these)h(routines)e(is)h(o)n(wned)g(b)n(y)g(the)h(library)-7 +b(,)36 b(and)f(will)g(ev)n(en)n(tually)f(b)r(e)i(re-)0 +2231 y(written.)h(Y)-7 b(ou)28 b(should)f(cop)n(y)g(it)h(if)g(y)n(ou)e +(w)n(an)n(t)h(to)h(preserv)n(e)e(it.)0 2523 y Fb(6.3)112 +b(Time)0 2733 y Fd(6.3.1)94 b(Time)30 b(structure)0 2943 +y Ff(LIbical)d(de\034nes)g(it's)g(o)n(wn)f(time)i(structure)e(for)h +(storing)f(all)h(dates)f(and)h(times.)37 b(It)28 b(w)n(ould)e(ha)n(v)n +(e)g(b)r(een)i(nice)f(to)g(re-use)f(the)0 3057 y(C)j(library's)e +Fa(struct)j(tm,)h Ff(but)e(that)h(structure)e(do)r(es)g(not)h +(di\033eren)n(tiate)g(b)r(et)n(w)n(een)g(dates)f(and)h(times,)g(and)g +(b)r(et)n(w)n(een)g(lo)r(cal)0 3170 y(time)f(and)f(UTC.)h(The)g +(libical)f(structure)g(is:)0 3410 y Fc(struct)41 b(icaltimetype)87 +3523 y(int)h(year;)87 3637 y(int)g(month;)87 3750 y(int)g(day;)87 +3864 y(int)g(hour;)87 3978 y(int)g(minute;)87 4091 y(int)g(second;)87 +4205 y(int)g(is_utc;)f(/*)i(1-)g(time)e(is)i(in)g(UTC)f(timezone)e(*/) +87 4318 y(int)i(is_date;)f(/*)h(1)i(-)f(interpret)c(this)j(as)h(date.)e +(*/)i(;)0 4558 y Ff(The)35 b(y)n(ear,)h(mon)n(th,)g(da)n(y)-7 +b(,)37 b(hour,)f(min)n(ute)f(and)g(second)g(\034elds)g(ho)n(w)f(the)h +(brok)n(en-out)f(time)h(v)-5 b(alues.)59 b(The)35 b(is_utc)g(\034eld)0 +4671 y(distinguishes)30 b(b)r(et)n(w)n(een)h(times)g(UTC)g(and)g(a)f +(lo)r(cal)g(time)i(zone.)45 b(The)31 b(is_date)f(\034eld)h(indicates)g +(if)g(the)g(in)n(tra-da)n(y)e(\034elds)0 4785 y(hold)e(v)-5 +b(alid)28 b(data.)0 5057 y Fd(6.3.2)94 b(Time)30 b(manipulating)f +(routines)0 5268 y Ff(The)f(n)n(ull)f(time)h(v)-5 b(alue)28 +b(is)f(used)h(to)f(indicate)h(that)g(the)g(data)f(in)g(the)h(structure) +f(is)h(not)f(a)h(v)-5 b(alid)27 b(time.)p eop +%%Page: 15 15 +15 14 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(15)0 162 y Fc(struct)41 b(icaltimetype)e +(icaltime_null_t)o(im)o(e\()o(voi)o(d\))o(;)0 275 y(int)j +(icaltime_is_null_)o(ti)o(me)o(\(st)o(ru)o(ct)37 b(icaltimetype)h(t\);) +0 515 y Ff(It)33 b(is)g(sensible)g(for)g(the)g(brok)n(en-out)f(time)h +(\034elds)g(to)g(con)n(tain)g(v)-5 b(alues)32 b(that)i(are)e(not)h(p)r +(ermitted)h(in)f(an)g(ISO)g(complian)n(t)0 628 y(time)g(string.)53 +b(F)-7 b(or)32 b(instance,)i(the)g(seconds)e(\034eld)h(can)g(hold)g(v) +-5 b(alues)32 b(greater)f(than)j(59,)f(and)g(the)g(hours)f(\034eld)i +(can)e(hold)0 742 y(v)-5 b(alues)29 b(larger)e(than)j(24.)41 +b(The)29 b(excessiv)n(e)f(v)-5 b(alues)29 b(will)g(b)r(e)h(rolled)e(o)n +(v)n(er)g(in)n(to)h(the)g(next)h(larger)d(\034eld)j(when)f(the)h +(structure)0 855 y(is)d(normalized.)0 1095 y Fc(struct)41 +b(icaltimetype)e(icaltime_normal)o(iz)o(e\()o(str)o(uc)o(t)e +(icaltimetype)i(t\);)0 1334 y Ff(There)27 b(are)g(sev)n(eral)e +(routines)i(to)h(get)f(the)h(da)n(y)f(of)g(the)h(w)n(eek)f(or)g(mon)n +(th,)g(etc,)h(from)f(a)h(time)g(structure.)0 1574 y Fc(short)41 +b(icaltime_day_of_y)o(ea)o(r\(s)o(tr)o(uc)o(t)d(icaltimetype)g(t\);)0 +1688 y(struct)j(icaltimetype)e(icaltime_from_d)o(ay)o(_o)o(f_y)o(ea)o +(r\()o(sho)o(rt)e(doy,)42 b(short)f(year\);)0 1801 y(short)g +(icaltime_day_of_w)o(ee)o(k\(s)o(tr)o(uc)o(t)d(icaltimetype)g(t\);)0 +1915 y(short)j(icaltime_start_do)o(y_)o(of_)o(we)o(ek)o(\(st)o(ru)o(ct) +c(icaltimetype)i(t\);)0 2028 y(short)i(icaltime_week_num)o(be)o(r\(s)o +(ho)o(rt)c(day_of_month,)h(short)k(month,)f(short)g(year\);)0 +2142 y(struct)g(icaltimetype)e(icaltime_from_w)o(ee)o(k_)o(num)o(be)o +(r\()o(sho)o(rt)e(week_number,)h(short)k(year\);)0 2255 +y(short)f(icaltime_days_in_)o(mo)o(nth)o(\(s)o(ho)o(rt)c(month,short)i +(year\);)0 2495 y Ff(T)-7 b(w)n(o)37 b(routines)g(con)n(v)n(ert)g(time) +h(structures)f(to)h(and)f(from)h(the)g(n)n(um)n(b)r(er)g(of)f(seconds)g +(since)h(the)g(POSIX)g(ep)r(o)r(c)n(h.)68 b(The)0 2608 +y(is_date)31 b(\034eld)g(indicates)g(w)n(ether)g(or)f(not)h(the)h +(hour,)g(min)n(ute)f(and)g(second)g(\034elds)g(should)g(b)r(e)h(used)f +(in)h(the)f(con)n(v)n(ersion,)0 2722 y(and)h(is_utc)g(indicates)g(if)h +(the)g(v)-5 b(alue)32 b(should)g(b)r(e)h(con)n(v)n(erted)d(to)i(a)g(lo) +r(cal)g(time)h(or)e(a)h(UTC)h(time,)h(using)e(the)g(op)r(erating)0 +2836 y(system)27 b(suppled)h(notion)f(of)h(the)g(lo)r(cal)f(timezone.)0 +3075 y Fc(struct)41 b(icaltimetype)e(icaltime_from_t)o(im)o(et)o(\(ti)o +(me)o(_t)e(v,)43 b(int)f(is_date,)e(int)j(is_utc\);)0 +3189 y(time_t)e(icaltime_as_time)o(t\()o(str)o(uc)o(t)c +(icaltimetype\);)0 3428 y Ff(The)28 b(compare)e(routine)h(w)n(orks)f +(exactly)h(lik)n(e)g(strcmp,)g(but)h(on)g(time)g(structures.)0 +3668 y Fc(int)42 b(icaltime_compare\()o(st)o(ru)o(ct)37 +b(icaltimetype)i(a,struct)h(icaltimetype)e(b\);)0 3907 +y Ff(The)d(follo)n(wing)e(routines)h(con)n(v)n(ert)g(b)r(et)n(w)n(een)g +(UTC)h(and)g(a)f(named)h(timezone.)58 b(The)35 b(tzid)g(\034eld)g(m)n +(ust)g(b)r(e)g(a)f(timezone)0 4021 y(name)27 b(from)h(the)f(Olsen)h +(database,)e(suc)n(h)h(as)g("America/Los_Angeles.")0 +4177 y(The)h(utc_o\033set)f(routine)g(returns)g(the)h(o\033set)f(of)h +(the)g(named)f(time)h(zone)f(from)h(UTC,)f(in)h(seconds.)0 +4334 y(The)e(tt)h(parmeter)f(in)g(the)h(fonllo)n(wing)e(routines)h +(indicates)g(the)h(date)f(on)g(whic)n(h)g(the)h(con)n(v)n(ersion)d +(should)i(b)r(e)h(made.)36 b(The)0 4447 y(tt)23 b(parameter)e(is)h +(necessary)f(b)r(ecause)h(timezones)g(ha)n(v)n(e)f(man)n(y)g +(di\033eren)n(t)i(rules)f(for)g(when)g(da)n(yligh)n(t)f(sa)n(vings)g +(time)i(is)f(used,)0 4561 y(and)27 b(these)h(rules)f(can)g(c)n(hange)f +(o)n(v)n(er)g(time.)37 b(So,)27 b(for)g(a)g(single)g(timezone)g(one)g +(y)n(ear)f(ma)n(y)h(ha)n(v)n(e)f(da)n(yligh)n(t)h(sa)n(vings)e(time)j +(on)0 4674 y(Marc)n(h)f(15,)f(but)j(for)e(other)g(y)n(ears)f(Marc)n(h)g +(15)h(ma)n(y)g(b)r(e)h(standard)f(time,)h(and)f(some)g(y)n(ears)f(ma)n +(y)h(ha)n(v)n(e)g(standard)f(time)i(all)0 4788 y(y)n(ear.)0 +5027 y Fc(int)42 b(icaltime_utc_offs)o(et)o(\(s)o(tru)o(ct)37 +b(icaltimetype)h(tt,)43 b(char*)e(tzid\))0 5141 y(struct)g +(icaltimetype)e(icaltime_as_utc)o(\(s)o(tr)o(uct)e(icaltimetype)h +(tt,char*)i(tzid\);)0 5255 y(struct)h(icaltimetype)e(icaltime_as_zon)o +(e\()o(st)o(ruc)o(t)e(icaltimetype)i(tt,char*)h(tzid\);)p +eop +%%Page: 16 16 +16 15 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(16)0 162 y Fb(6.4)112 b(Storing)37 +b(Ob)6 b(jects)0 372 y Ff(The)27 b(libical)g(distribution)h(inclues)f +(a)g(sep)r(erate)f(library)-7 b(,)26 b(libicalss,)h(that)g(allo)n(ws)f +(y)n(ou)g(to)i(store)e(iCal)h(comp)r(onen)n(t)g(data)f(to)0 +485 y(disk)h(in)h(a)f(v)-5 b(ariet)n(y)27 b(of)h(w)n(a)n(ys.)35 +b(This)27 b(library)g(is)g(do)r(cumen)n(ted)h(sep)r(erately)-7 +b(.)36 b(\()28 b(curren)n(tly)-7 b(,)26 b(not)i(at)f(all.)37 +b(\))0 777 y Fb(6.5)112 b(Memory)37 b(Managemen)m(t)0 +987 y Ff(Libical)25 b(relies)f(hea)n(vily)g(on)h(dynamic)g(allo)r +(cation)f(for)h(b)r(oth)h(the)f(core)f(ob)5 b(jects)25 +b(and)g(for)f(the)i(strings)e(used)h(to)g(hold)g(v)-5 +b(alues.)0 1101 y(Some)34 b(of)f(this)h(memory)f(the)h(library)f (caller)g(o)n(wns)g(and)g(m)n(ust)h(free,)h(and)f(some)f(of)h(the)g -(memory)f(is)h(managed)e(b)n(y)i(the)0 4917 y(library)-7 +(memory)f(is)h(managed)e(b)n(y)i(the)0 1214 y(library)-7 b(.)36 b(Here)27 b(is)g(a)g(summary)g(of)h(the)g(memory)e(rules.)0 -5138 y Fb(1\))208 5281 y Fh(If)k(the)g(function)g(name)g(has)f -Fd(")p Fh(new)p Fd(")g Fh(in)h(it,)h(the)f(caller)f(gets)g(con)n(trol)g -(of)h(the)g(memory)-7 b(.)42 b(\()31 b(suc)n(h)e(as)g(icalcomp)r(onen-) -208 5394 y(t_new\(\),)f(or)e(icalprop)r(ert)n(y_new_clone\(\))f(\))0 -5566 y Fb(2\))208 5709 y Fh(If)j(y)n(ou)g(got)g(the)h(memory)f(from)g +1454 y Fd(1\))208 1600 y Ff(If)40 b(the)h(function)g(name)g(has)f(new)g +(in)h(it,)j(the)d(caller)e(gets)h(con)n(trol)f(of)i(the)g(memory)-7 +b(.)75 b(\()40 b(suc)n(h)h(as)e(icalcomp)r(o-)208 1714 +y(nen)n(t_new\(\),)27 b(or)g(icalprop)r(ert)n(y_new_clone\(\))e(\))0 +1894 y Fd(2\))208 2041 y Ff(If)j(y)n(ou)g(got)g(the)h(memory)f(from)g (a)g(routine)g(with)h(new)f(in)h(it,)g(y)n(ou)f(m)n(ust)h(call)f(the)h -(corresp)r(onding)d(*_free)i(routine)208 5823 y(to)f(free)g(the)h +(corresp)r(onding)d(*_free)i(routine)208 2154 y(to)f(free)g(the)h (memory)-7 b(.)36 b(\()28 b(Use)g(icalcomp)r(onen)n(t_free\(\))e(to)i (free)f(ob)5 b(jects)27 b(created)g(with)h(icalcomp)r(onen)n -(t_new\(\)\))p eop -%%Page: 9 9 -9 8 bop 0 -167 3900 5 v 0 -200 a Fb(6.)73 b(Using)32 -b(libical)3190 b Fh(9)0 162 y Fb(3\))208 307 y Fh(If)29 -b(the)g(function)g(name)f(has)g Fd(")p Fh(add)p Fd(")g -Fh(in)h(it,)g(the)g(caller)e(is)i(transfering)e(con)n(trol)g(of)i(the)g -(memory)f(to)g(the)h(routine.)40 b(\()208 420 y(icalprop)r(ert)n -(y_add_parameter\(\))23 b(\))0 596 y Fb(4\))208 741 y -Fh(If)29 b(the)h(function)g(name)f(has)g Fd(")p Fh(remo)n(v)n(e)p -Fd(")e Fh(in)j(it,)g(the)g(caller)f(passes)f(in)i(a)f(p)r(oin)n(ter)g -(to)g(an)g(ob)5 b(ject)29 b(and)h(after)f(the)g(call)208 -855 y(returns,)j(the)h(caller)e(o)n(wns)g(the)h(ob)5 +(t_new\(\)\))0 2334 y Fd(3\))208 2481 y Ff(If)33 b(the)g(function)g +(name)f(has)h(add)f(in)h(it,)i(the)e(caller)e(is)i(transfering)e(con)n +(trol)h(of)g(the)h(memory)f(to)h(the)g(routine.)52 b(\()208 +2595 y(icalprop)r(ert)n(y_add_parameter\(\))23 b(\))0 +2775 y Fd(4\))208 2921 y Ff(If)34 b(the)g(function)g(name)g(has)f(remo) +n(v)n(e)f(in)i(it,)i(the)e(caller)f(passes)f(in)i(a)g(p)r(oin)n(ter)f +(to)g(an)h(ob)5 b(ject)33 b(and)h(after)f(the)h(call)208 +3035 y(returns,)e(the)h(caller)e(o)n(wns)g(the)h(ob)5 b(ject.)50 b(So,)33 b(b)r(efore)f(y)n(ou)f(call)h(icalcomp)r(onen)n -(t_remo)n(v)n(e_prop)r(ert)n(y\(comp,fo)r(o\),)208 968 -y(y)n(ou)26 b(do)i(not)f(o)n(wn)g Fd(")p Fh(fo)r(o)p -Fd(")g Fh(and)g(after)g(the)h(call)f(returns,)g(y)n(ou)g(do.)0 -1145 y Fb(5\))208 1290 y Fh(If)d(the)g(routine)f(returns)g(a)g(string,) -h(libical)g(o)n(wns)f(the)h(memory)f(and)g(will)h(put)g(it)h(on)e(a)g -(ring)g(bu\033er)h(to)g(reclaim)f(later.)208 1403 y(Y)-7 -b(ou'd)27 b(b)r(etter)h(strdup\(\))g(it)g(if)g(y)n(ou)f(w)n(an)n(t)g -(to)h(k)n(eep)f(it,)h(and)f(y)n(ou)g(don't)h(ha)n(v)n(e)e(to)h(delete)h -(it.)0 1693 y Fc(6.5)112 b(Error)36 b(Handling)0 1903 -y Fh(Libical)27 b(has)g(sev)n(eral)e(error)h(handling)h(mec)n(hanisms)f -(for)h(the)h(v)-5 b(arioust)n(yp)r(es)25 b(of)j(programming,)d(seman)n -(tic)i(and)g(syn)n(tactic)0 2017 y(errors)e(y)n(ou)i(ma)n(y)g(encoun)n -(ter.)0 2288 y Fb(6.5.1)94 b(Return)31 b(v)-5 b(alues)0 -2498 y Fh(Man)n(y)29 b(library)f(routines)g(signal)h(errors)e(through)h -(their)h(return)g(v)-5 b(alues.)42 b(All)30 b(routines)e(that)i(return) -f(a)f(p)r(oin)n(ter,)i(suc)n(h)f(as)0 2611 y(icalcomp)r(onen)n -(t_new\(\),)36 b(will)f(return)f(0)g(\()h(zero)f(\))h(on)f(a)g(fatal)h -(error.)56 b(Some)35 b(routines)f(will)g(return)h(a)f(v)-5 -b(alue)34 b(of)h(en)n(um)0 2725 y(icalerroren)n(um.)0 -2996 y Fb(6.5.2)94 b(icalerrno)0 3206 y Fh(Most)23 b(routines)f(will)h -(set)g(the)g(global)f(error)f(v)-5 b(alue)23 b(icalerrno)e(on)h -(errors.)33 b(This)23 b(v)-5 b(ariable)22 b(is)h(an)f(en)n(umeration;)i -(p)r(ermissable)0 3320 y(v)-5 b(alues)21 b(can)h(b)r(e)g(found)g(in)g +(t_remo)n(v)n(e_prop)r(ert)n(y\(comp,fo)r(o\),)208 3149 +y(y)n(ou)26 b(do)i(not)f(o)n(wn)g(fo)r(o)g(and)h(after)f(the)h(call)f +(returns,)g(y)n(ou)g(do.)0 3329 y Fd(5\))208 3475 y Ff(If)d(the)g +(routine)f(returns)g(a)g(string,)h(libical)g(o)n(wns)f(the)h(memory)f +(and)g(will)h(put)g(it)h(on)e(a)g(ring)g(bu\033er)h(to)g(reclaim)f +(later.)208 3589 y(Y)-7 b(ou'd)27 b(b)r(etter)h(strdup\(\))g(it)g(if)g +(y)n(ou)f(w)n(an)n(t)g(to)h(k)n(eep)f(it,)h(and)f(y)n(ou)g(don't)h(ha)n +(v)n(e)e(to)h(delete)h(it.)0 3880 y Fb(6.6)112 b(Error)36 +b(Handling)0 4091 y Ff(Libical)27 b(has)g(sev)n(eral)e(error)h +(handling)h(mec)n(hanisms)f(for)h(the)h(v)-5 b(arioust)n(yp)r(es)25 +b(of)j(programming,)d(seman)n(tic)i(and)g(syn)n(tactic)0 +4204 y(errors)e(y)n(ou)i(ma)n(y)g(encoun)n(ter.)0 4477 +y Fd(6.6.1)94 b(Return)31 b(v)-5 b(alues)0 4687 y Ff(Man)n(y)29 +b(library)f(routines)g(signal)h(errors)e(through)h(their)h(return)g(v) +-5 b(alues.)42 b(All)30 b(routines)e(that)i(return)f(a)f(p)r(oin)n +(ter,)i(suc)n(h)f(as)0 4800 y(icalcomp)r(onen)n(t_new\(\),)36 +b(will)f(return)f(0)g(\()h(zero)f(\))h(on)f(a)g(fatal)h(error.)56 +b(Some)35 b(routines)f(will)g(return)h(a)f(v)-5 b(alue)34 +b(of)h(en)n(um)0 4914 y(icalerroren)n(um.)p eop +%%Page: 17 17 +17 16 bop 0 -167 3900 5 v 0 -200 a Fd(6.)73 b(Using)32 +b(libical)3149 b Ff(17)0 162 y Fd(6.6.2)94 b(icalerrno)0 +372 y Ff(Most)23 b(routines)f(will)h(set)g(the)g(global)f(error)f(v)-5 +b(alue)23 b(icalerrno)e(on)h(errors.)33 b(This)23 b(v)-5 +b(ariable)22 b(is)h(an)f(en)n(umeration;)i(p)r(ermissable)0 +485 y(v)-5 b(alues)21 b(can)h(b)r(e)g(found)g(in)g (libical/icalerror.h.)32 b(If)22 b(the)g(routine)g(returns)f(an)g(en)n (um)h(icalerroren)n(um,)f(then)h(the)g(return)f(v)-5 -b(alue)0 3433 y(will)28 b(b)r(e)g(the)g(same)f(as)g(icalerrno.)35 +b(alue)0 599 y(will)28 b(b)r(e)g(the)g(same)f(as)g(icalerrno.)35 b(Y)-7 b(ou)27 b(can)g(use)h(icalerror_strerror\(\))22 b(to)28 b(get)f(a)g(string)g(that)h(describ)r(es)f(the)h(error)0 -3704 y Fb(6.5.3)94 b(X-LIC-ERR)m(OR)0 3914 y Fh(The)38 -b(library)f(handles)g(seman)n(tic)g(and)h(syn)n(tactic)f(errors)f(in)i -(comp)r(onen)n(ts)g(b)n(y)f(inserting)g(errors)f(prop)r(erties)h(in)n -(to)h(the)0 4028 y(comp)r(onen)n(ts.)k(If)30 b(the)g(parser)d(cannot)i -(parse)g(incoming)g(text)g(\()h(a)f(syn)n(tactic)g(error)e(\))j(or)f -(if)h(the)g(icalrestriction_c)n(hec)n(k\(\))0 4141 y(routine)j -(indicates)h(that)f(the)h(comp)r(onen)n(t)g(do)r(es)f(not)h(meet)g(the) -g(requirmen)n(ts)e(of)i(RF)n(C2446)d(\()j(a)g(seman)n(tic)f(error\))f -(the)0 4255 y(library)g(will)h(insert)g(prop)r(erties)f(of)h(the)h(t)n -(yp)r(e)f(X-LIC-ERR)n(OR)g(to)g(describ)r(e)g(the)g(error.)52 -b(Here)33 b(is)g(an)g(example)g(of)g(the)0 4368 y(error)26 -b(prop)r(ert)n(y:)0 4598 y Fd(X-LIC-ERROR;X-LI)o(C-)o(ERR)o(OR)o(TY)o +868 y Fd(6.6.3)94 b(X-LIC-ERR)m(OR)30 b(and)j(X-LIC-INV)-11 +b(ALID-COMPONENT)0 1078 y Ff(The)38 b(library)f(handles)g(seman)n(tic)g +(and)h(syn)n(tactic)f(errors)f(in)i(comp)r(onen)n(ts)g(b)n(y)f +(inserting)g(errors)f(prop)r(erties)h(in)n(to)h(the)0 +1192 y(comp)r(onen)n(ts.)k(If)30 b(the)g(parser)d(cannot)i(parse)g +(incoming)g(text)g(\()h(a)f(syn)n(tactic)g(error)e(\))j(or)f(if)h(the)g +(icalrestriction_c)n(hec)n(k\(\))0 1305 y(routine)j(indicates)h(that)f +(the)h(comp)r(onen)n(t)g(do)r(es)f(not)h(meet)g(the)g(requirmen)n(ts)e +(of)i(RF)n(C2446)d(\()j(a)g(seman)n(tic)f(error\))f(the)0 +1419 y(library)g(will)h(insert)g(prop)r(erties)f(of)h(the)h(t)n(yp)r(e) +f(X-LIC-ERR)n(OR)g(to)g(describ)r(e)g(the)g(error.)52 +b(Here)33 b(is)g(an)g(example)g(of)g(the)0 1532 y(error)26 +b(prop)r(ert)n(y:)0 1752 y Fc(X-LIC-ERROR;X-LI)o(C-)o(ERR)o(OR)o(TY)o (PE=)o(IN)o(VA)o(LID)o(_I)o(TI)o(P)38 b(:Failed)i(iTIP)i(restrictions)d (for)j(property)e(DTSTART.)g(Expected)g(1)k(instances)39 -b(of)k(the)f(property)f(and)h(got)g(0)0 4942 y Fh(This)35 +b(of)k(the)f(property)f(and)h(got)g(0)0 1971 y Ff(This)35 b(error)f(resulted)h(from)g(a)g(call)g(to)h(icalrestriction_c)n(hec)n (k\(\),)f(whic)n(h)g(disco)n(v)n(ered)e(that)j(the)g(comp)r(onen)n(t)f -(do)r(es)g(not)0 5056 y(ha)n(v)n(e)26 b(a)i(DTST)-7 b(AR)g(T)28 +(do)r(es)g(not)0 2084 y(ha)n(v)n(e)26 b(a)i(DTST)-7 b(AR)g(T)28 b(prop)r(ert)n(y)-7 b(,)27 b(as)g(required)f(b)n(y)h(RF)n(C2445.)0 -5212 y(There)g(are)g(a)g(few)h(routines)e(to)i(manipulate)f(error)f -(prop)r(erties:)0 5369 y(Routine)g(Purp)r(ose)g(v)n(oid)f -(icalrestriction_c)n(hec)n(k\(\))e(Chec)n(k)i(a)h(comp)r(onen)n(t)f -(against)g(RF)n(C2446)e(and)j(insert)g(error)d(prop)r(er-)0 -5482 y(ties)e(to)g(indicate)g(an)n(y)f(non-complianes)g(in)n(t)h -(icalcomp)r(onen)n(t_coun)n(t_errors\(\))d(Return)j(the)g(n)n(um)n(b)r -(er)g(of)g(error)e(prop)r(erties)0 5596 y(in)33 b(a)f(comp)r(onen)n(t)h -(v)n(oid)f(icalcomp)r(onen)n(t_strip_errors\(\))d(Remo)n(v)n(e)j(all)g -(error)f(prop)r(erties)h(in)h(a)f(comp)r(onen)n(t)h(v)n(oid)f(ical-)0 -5709 y(comp)r(onen)n(t_con)n(v)n(ert_errors\(\))18 b(Con)n(v)n(ert)k -(some)g(error)f(prop)r(erties)h(in)n(to)h(REQUEST-ST)-7 -b(A)g(TUS)24 b(prop)r(erties)e(to)h(indicate)0 5823 y(the)28 -b(inabilit)n(y)f(to)h(pro)r(cess)e(the)i(comp)r(onen)n(t)f(as)g(an)h -(iTIP)g(request.)p eop -%%Page: 10 10 -10 9 bop 0 -167 3900 5 v 0 -200 a Fb(7.)73 b(Useful)32 -b(Recipies)3026 b Fh(10)0 162 y Fc(6.6)112 b(Naming)36 -b(Standard)0 372 y Fh(Structures)26 b(that)i(y)n(ou)e(access)f(with)j +2241 y(There)g(are)g(a)g(few)h(routines)e(to)i(manipulate)f(error)f +(prop)r(erties:)0 2397 y(Routine)i(Purp)r(ose)f(v)n(oid)g +(icalrestriction_c)n(hec)n(k\(\))e(Chec)n(k)i(a)g(comp)r(onen)n(t)g +(against)g(RF)n(C2446)e(and)j(insert)0 2554 y(error)g(prop)r(erties)g +(to)i(indicate)f(non)g(compliance)g(in)n(t)h(icalcomp)r(onen)n(t_coun)n +(t_errors\(\))c(Return)j(the)h(n)n(um)n(b)r(er)g(of)f(error)0 +2667 y(prop)r(erties)0 2824 y(in)f(a)f(comp)r(onen)n(t)g(v)n(oid)g +(icalcomp)r(onen)n(t_strip_errors\(\))d(Remo)n(v)n(e)i(all)i(error)d +(prop)r(erties)i(in)h(as)0 2980 y(comp)r(onen)n(t)f(v)n(oid)g(icalcomp) +r(onen)n(t_con)n(v)n(ert_errors\(\))c(Con)n(v)n(ert)j(some)h(error)e +(prop)r(erties)i(in)n(to)0 3137 y(REQUESTS-ST)-7 b(A)g(TUS)29 +b(to)f(indicate)f(the)h(inabilit)n(y)g(to)0 3293 y(pro)r(cess)e(the)i +(comp)r(onen)n(t)g(as)e(an)i(iTIP)g(request.)0 3450 y(The)g(t)n(yp)r +(es)f(of)h(errors)d(are)i(listed)g(in)h(icalerror.h.)35 +b(They)27 b(are:)0 3669 y Fc(ICAL_XLICERRORTY)o(PE)o(_CO)o(MP)o(ON)o +(ENT)o(PA)o(RS)o(EER)o(RO)o(R)0 3782 y(ICAL_XLICERRORTY)o(PE)o(_PA)o +(RA)o(ME)o(TER)o(VA)o(LU)o(EPA)o(RS)o(EE)o(RRO)o(R)0 +3896 y(ICAL_XLICERRORTY)o(PE)o(_PA)o(RA)o(ME)o(TER)o(NA)o(ME)o(PAR)o +(SE)o(ER)o(ROR)0 4009 y(ICAL_XLICERRORTY)o(PE)o(_PR)o(OP)o(ER)o(TYP)o +(AR)o(SE)o(ERR)o(OR)0 4123 y(ICAL_XLICERRORTY)o(PE)o(_VA)o(LU)o(EP)o +(ARS)o(EE)o(RR)o(OR)0 4237 y(ICAL_XLICERRORTY)o(PE)o(_UN)o(KV)o(CA)o +(LPR)o(OP)0 4350 y(ICAL_XLICERRORTY)o(PE)o(_IN)o(VA)o(LI)o(DIT)o(IP)0 +4569 y Ff(The)46 b(libical)f(parser)f(will)i(generate)e(the)i(error)d +(that)j(end)g(in)g(P)-7 b(ARSEERR)n(OR)47 b(when)e(it)h(encoun)n(ters)f +(garbage)e(in)0 4683 y(the)d(input)g(steam.)72 b(ICAL_XLICERR)n(OR)-7 +b(TYPE_INV)e(ALIDITIP)42 b(is)d(inserted)g(b)n(y)g(icalrestriction_c)n +(hec)n(k\(\),)h(and)0 4796 y(ICAL_XLICERR)n(OR)-7 b(TYPE_UNKV)n(CALPR)n +(OP)21 b(is)e(generated)f(b)n(y)i(icalv)n(cal_con)n(v)n(ert\(\))c(when) +k(it)g(encoun)n(ters)f(a)g(vCal)0 4910 y(prop)r(ert)n(y)26 +b(that)i(it)g(cannot)f(con)n(v)n(ert)f(or)h(do)r(es)g(not)h(kno)n(w)f +(ab)r(out.)0 5066 y(Icalcomp)r(onen)n(t_con)n(v)n(ert_errors\(\))37 +b(con)n(v)n(erts)j(some)i(of)g(the)g(error)f(prop)r(erties)g(ina)h +(comp)r(onen)n(t)g(in)n(to)f(REQUEST-)0 5180 y(ST)-7 +b(A)g(TUS)29 b(prop)r(erties)e(that)h(indicate)g(a)g(failure.)38 +b(As)28 b(of)g(libical)g(v)n(ersion0.18,)e(this)i(routine)g(only)f(con) +n(v)n(ert)g(*P)-7 b(ARSEER-)0 5294 y(R)n(OR)29 b(errors)d(and)j(it)h +(alw)n(a)n(ys)d(generates)h(a)g(3.x)h(\()g(failure)g(\))g(co)r(de.)42 +b(This)29 b(mak)n(es)f(it)h(more)f(of)h(a)g(go)r(o)r(d)g(idea)f(than)h +(a)g(really)0 5407 y(useful)f(bit)g(of)g(co)r(de.)p eop +%%Page: 18 18 +18 17 bop 0 -167 3900 5 v 0 -200 a Fd(7.)73 b(Useful)32 +b(Recipies)3026 b Ff(18)0 162 y Fb(6.7)112 b(Naming)36 +b(Standard)0 372 y Ff(Structures)26 b(that)i(y)n(ou)e(access)f(with)j (the)f("struct")f(k)n(eyw)n(ord,)f(suc)n(h)h(as)h("struct)f(icaltimet)n (yp)r(e")g(are)g(things)h(that)g(y)n(ou)f(are)0 485 y(allo)n(w)n(ed)g (to)i(see)f(inside)g(and)h(p)r(ok)n(e)f(at.)0 642 y(Structures)33 @@ -1577,28 +2088,28 @@ b(Ho)n(w)n(ev)n(er,)0 1139 y(they)34 b(lo)r(ok)f(and)g(act)h(lik)n(e)f (libical.)55 b(Names)33 b(that)h(start)f(with)h("XLIC")f(or)0 1253 y("X-LIC")26 b(are)h(not)h(part)f(of)g(an)n(y)g(iCal)g(sp)r(ec.)37 b(They)27 b(are)g(used)h(in)n(ternally)e(b)n(y)i(libical.)0 -1409 y(En)n(ums)d(that)f(iden)n(tify)h(a)f(comp)r(onen)n(t,)h(prop)r -(ert)n(y)-7 b(,)24 b(v)-5 b(alue)24 b(or)g(parameter)e(end)j(with)g -("_COMPONENT,")e("_PR)n(OPER-)0 1523 y(TY,")k("_V)-9 -b(ALUE,")28 b(or)e("_P)-7 b(ARAMETER"s)0 1679 y(En)n(ums)31 -b(that)f(iden)n(tify)h(a)f(parameter)f(v)-5 b(alue)30 -b(ha)n(v)n(e)f(the)i(name)f(of)h(the)f(parameter)f(as)h(the)h(second)e -(w)n(ord.)45 b(F)-7 b(or)29 b(instance:)0 1793 y(ICAL_R)n(OLE_REQP)-7 -b(AR)g(TICIP)g(ANT)29 b(or)d(ICAL_P)-7 b(AR)g(TST)g(A)g(T_A)n(CCEPTED.) -0 1949 y(The)28 b(en)n(ums)f(for)g(the)h(parts)f(of)g(a)g(recurarance)e -(rule)j(and)f(request)g(statuses)g(are)f(irregular.)0 -2287 y Fe(7)131 b(Useful)44 b(Recipies)0 2526 y Fh(Iteration)0 -2683 y(Cop)n(ying)24 b(comp)r(onen)n(ts.)36 b(Remem)n(b)r(er)25 -b(that)g(y)n(ou)g(m)n(ust)g(clone)g(or)f(remo)n(v)n(e)g(an)h(ob)5 -b(ject)25 b(b)r(efore)g(putting)h(in)f(on)h(another)e(list.)0 -2839 y(Finding)k(compliance)f(errors)0 3177 y Fe(8)131 -b(P)l(erformance)0 3416 y Fh(Chec)n(king)27 b(restrictions)f(is)h -(computationally)g(exp)r(ensiv)n(e.)0 3754 y Fe(9)131 -b(Hac)l(ks)45 b(and)e(Bugs)0 3993 y Fh(There)22 b(are)f(a)g(lot)h(of)g -(hac)n(ks)f(in)i(the)f(library)f(\025)h(bits)g(of)g(co)r(de)g(that)g(I) -g(am)g(not)g(proud)g(of)g(and)g(should)g(propbably)f(b)r(e)h(c)n -(hanged.)0 4107 y(These)27 b(are)g(mark)n(ed)f(with)i(the)g(commen)n(t) -g(string)e("HA)n(CK.")p eop +1409 y(En)n(ums)34 b(that)h(iden)n(tify)f(a)g(comp)r(onen)n(t,)h(prop)r +(ert)n(y)-7 b(,)35 b(v)-5 b(alue)33 b(or)h(parameter)e(end)i(with)h +("_COMPONENT,")e("_PR)n(OP-)0 1523 y(ER)-7 b(TY,")28 +b("_V)-9 b(ALUE,")27 b(or)g("_P)-7 b(ARAMETER"s)0 1679 +y(En)n(ums)31 b(that)f(iden)n(tify)h(a)f(parameter)f(v)-5 +b(alue)30 b(ha)n(v)n(e)f(the)i(name)f(of)h(the)f(parameter)f(as)h(the)h +(second)e(w)n(ord.)45 b(F)-7 b(or)29 b(instance:)0 1793 +y(ICAL_R)n(OLE_REQP)-7 b(AR)g(TICIP)g(ANT)29 b(or)d(ICAL_P)-7 +b(AR)g(TST)g(A)g(T_A)n(CCEPTED.)0 1949 y(The)28 b(en)n(ums)f(for)g(the) +h(parts)f(of)g(a)g(recurarance)e(rule)j(and)f(request)g(statuses)g(are) +f(irregular.)0 2287 y Fe(7)131 b(Useful)44 b(Recipies)0 +2526 y Ff(Iteration)0 2683 y(Cop)n(ying)24 b(comp)r(onen)n(ts.)36 +b(Remem)n(b)r(er)25 b(that)g(y)n(ou)g(m)n(ust)g(clone)g(or)f(remo)n(v)n +(e)g(an)h(ob)5 b(ject)25 b(b)r(efore)g(putting)h(in)f(on)h(another)e +(list.)0 2839 y(Finding)k(compliance)f(errors)0 3177 +y Fe(8)131 b(P)l(erformance)0 3416 y Ff(Chec)n(king)27 +b(restrictions)f(is)h(computationally)g(exp)r(ensiv)n(e.)0 +3754 y Fe(9)131 b(Hac)l(ks)45 b(and)e(Bugs)0 3993 y Ff(There)22 +b(are)f(a)g(lot)h(of)g(hac)n(ks)f(in)i(the)f(library)f(\025)h(bits)g +(of)g(co)r(de)g(that)g(I)g(am)g(not)g(proud)g(of)g(and)g(should)g +(propbably)f(b)r(e)h(c)n(hanged.)0 4107 y(These)27 b(are)g(mark)n(ed)f +(with)i(the)g(commen)n(t)g(string)e("HA)n(CK.")p eop %%Trailer end userdict /end-hook known{end-hook}if -- cgit v1.2.3