| draw2d interaction sequence [message #643362] | 
Mon, 06 December 2010 11:20   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
This is a multi-part message in MIME format. 
--------------070709050504070903060409 
Content-Type: text/plain; charset=UTF-8 
Content-Transfer-Encoding: 7bit 
 
Hi, 
 
I'm reading Gronback's "Eclipse Modeling Project ...". 
 
In chapter 9, page 320, there's a diagram explaining Draw2D's 
interaction sequence (see attachment). 
 
I'm not sure I understand what happens after step 4. 
 
My understanding up to step 4 is: 
 
1. User Interaction ---[generates event in]---> FigureCanvas 
2. FigureCanvas ---[notifies]---> LWS 
3. LWS ---[delegates to]---> SWTEventDispatcher 
4. SWTEventDispatcher ---[notifies hit figure]---> ?? 
 
What then? Why the bifurcation? 
 
(tentative interpretation): 
 
[right branch] 
5_unlabelled. Figure---[forwards event to (?)]---> ContentRoot 
5b. ContentRoot revalidates itself (because some other child-figure 
could have been modified by the interaction, I assume) 
5b. ContentRoot---[marks as invalid]-->RootFigure (why? what does it mean?) 
5_unlabelled. RootFigure---[requests repaint to (?)]---> UpdateManager 
 
[left branch] 
5a. Figure---[requests repaint of dirty regions to]---> UpdateManager 
(why? Isn't the ContentRoot already going to calculate dirty regions for 
all its children in step 5b?) 
 
[branches merge] 
6. What does it mean that the UpdateManager "revalidates Invalid 
Figures"? Wheren't they already revalidated in step 5b? What's the 
meaning of "valid", "invalid" and "revalidate" in this context? 
 
Thanks in advance for your help, 
Carlo 
 
--------------070709050504070903060409 
Content-Type: image/png; 
 name="draw2d_interaction_seq.png" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; 
 filename="draw2d_interaction_seq.png" 
 
 iVBORw0KGgoAAAANSUhEUgAAArcAAAIYCAYAAAB318RMAAAAAXNSR0IArs4c 6QAAAARnQU1B 
 AACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAL01SURBVHhe7f1tcFZV uu8Lrw+ndu0P 
 59TZVc9zTp0Pz9lYCeREH2xeIkcLgWwtFy8ppTAb0ygl4IqAunlx2YHuY9De QD9bwmoTNx2w 
 d1h2sDXaBNqAzUsbbGLLrSYsbiTRZGnQIIRONFkESYQggfv/jDHnHHfm/T7v 93nP+Z9VKSWZ 
 c8wxfuMaY/7nNa9xjb8DDxIgARIgARIgARIgARJwCIG/c0g72AwSIAESIAES IAESIAESAMUt 
 jYAESIAESIAESIAESMAxBChuHdOVbAgJkAAJkAAJkAAJkADFLW2ABEiABEiA BEiABEjAMQQo 
 bh3TlWwICZAACZAACZAACZAAxS1tgARIgARIgARIgARIwDEEKG4d05VsCAmQ AAmQAAmQAAmQ 
 AMUtbYAESIAESIAESIAESMAxBChuHdOVbAgJkAAJkAAJkAAJkADFLW2ABEiA BEiABEiABEjA 
 MQQobh3TlWwICZAACZAACZAACZAAxS1tgARIgARIgARIgARIwDEEKG4d05Vs CAmQAAmQAAmQ 
 AAmQAMUtbYAESIAESIAESIAESMAxBChuHdOVbAgJkAAJkAAJkAAJkADFLW2A BEiABEiABEiA 
 BEjAMQQobh3TlWwICZAACZAACZAACZAAxS1tgARIgARIgARIgARIwDEEKG4d 05VsCAmQAAmQ 
 AAmQAAmQAMUtbYAESIAESIAESIAESMAxBChuHdOVbAgJkAAJkAAJkAAJkADF LW2ABEiABEiA 
 BEiABEjAMQQobh3TlWwICZAACZAACZAACZAAxS1tgARIgARIgARIgARIwDEE KG4d05VsCAmQ 
 AAmQAAmQAAmQAMUtbYAESIAESIAESIAESMAxBChuHdOVbAgJkAAJkAAJkAAJ kADFLW2ABEiA 
 BEiABEiABEjAMQQobh3TlWwICZAACZAACZAACZAAxS1tgARIgARIgARIgARI wDEEKG4d05Vs 
 CAmQAAmQAAmQAAmQAMUtbYAESIAESIAESIAESMAxBChuHdOVbAgJkAAJkAAJ kAAJkADFLW2A 
 BEiABEiABEiABEjAMQQobh3TlWwICZAACZAACZAACZBAGsXtLYy0/x7rS4qQ P+E28XMH7lu1 
 Cyf6ro9T911B9+EarC6+Qz9n6iJsfOszjPgCO8Y30on9m8pQpJUzA2VVx9E3 FnQS+5IESIAE 
 SIAESIAESMD1BNIobq/j3FvP4fHK36Ch6Y9o+M2zKMnLx4x1h9CndOn1VlRN fQArN7+Khnd+ 
 j6plM4V4nYstnkvjHXPjLPatnoX8vIew4X+8hYZtKzBDCNynms6D8tb19ksA JEACriJwEyM9 
 fxXPgX9E2WzDKTKhCKubLuBWTwOWTJiMJQ1fhT4b5LPmJ7fhzsoWXPHzuoG+ pvUoFM+TdYf7 
 Aij6tLKkM0V3zBQvq8LBL6/AZ5Sj/z70Ryt/zIuaqWH+vrAe3bfEba60YNPt pr/nzcW6uo/R 
 H8NhE+DkyXsAq2s/zJCT5zoG2t/Frk1PomRqvqnd94tn9VCKrW8QLZVzkF/W gHPpeMBf9WDL 
 5DuwqP4LyK4IOWL1XfAFQ83YMHEKljd+kyU90osD5dOCbDFK+1LcW5kp7pYY Mi/izglPoKHH 
 5ByNcfM0itvgOxtGO/EXaB66qf9x9CL+9Zthv1H4ehuxfEI+5tS2Qz9DTT5F WNHQLf4ljuun 
 UDMzHwVrDmMgM2R5FxIgARIggWwTGOtD687Vwrkhv/ItxLrNO7CnsQkHmo6h Y/AGrrdWYdqE 
 mdjQ/F1oTfubsDLg2SIfL13YUzZFEwbTtrVi/LHpM8q6Byur/4ADjbuwYf5k FDy0C+2Xvobn 
 oLyn+KmvRMmESbiv4rdokv9uOoij7QPwafe6AyWVr+nnGT8HPT0YFbfVhbP6 +17UVTyEgglz 
 8Ozh3sgCabQLDauEk2f6ClS92Wg4eYqxsbkvvaJq7CJaqh7TvpoWzF6Gyup6 7PO36U9ou2hd 
 bFgyH9832LdsCgormhEqm6+jp6EcBXf9Cp7hsNI05i10jRH6MuO/MEbfBd9A 70td5MuXq0fF 
 i0qAc05dcOssGn46DXdvPoHhmLWM44Sb7dh5bz7uLK/GO/5+OQRPzw9xFGL3 U4WjtOEJ5N/+ 
 IlquWO/3zIlb37do3iAGp1ncBjG91V2PReY371tfYM9C8XZ+z3a0XVWvccab yr216DA0st27 
 hvUjARIgARJIgoDvMtp3LhUicCaWVzejZyR48h9Df9NaIVQXYWf71ZAb3Wyv xZwJ07Cyqdf4 
 mw/XvK/gASF0imdPRv6yRvT6PYXBZSnPURnquq75yx7zVgvRZy5T/5N+rznY 1DIYtsH6dSYR 
 rnkTb4sg6GQRYxg4XIHCvGWo6xzRy7zxOeoeuiPKNUmwVpeKZ/aJrQ8L5rOw evdJDKQqFHCk 
 HftqarGv/XJoJQ3PaVG1V7Q6+PBhtOd9vP6HUxhM0Kurs1+AGq/BMegWsfou uEZ6eUuxp1u8 
 tox+jeY978A7KGv+A855DkG90Mh/9zS/hT94xctPCrrGX4TmOTY7BFNZuF3K GoG3egHy49R8 
 mRG3Y9+hvfFFPJgn3nK3fIihsL17RTRgkQg/KPe7nvW3onzMqj5leqs2xO3U anhDrd8uvcF6 
 kAAJkAAJpISADze+3IMl8vnxwl8wEPb5cRUdteL5MWEtDvQHPxiUODWJGuVs WViLA68tRf7k 
 rfD4HSjBZflw1bMVUyaYxe1NITifE8IvWCjdxFDzL0SoQ3iRLYWqLsJN1xni NvLXyDCf6g0P 
 Z355E/pTwjhUSOrifwrKdp4OWQeTzC1vdtVhngg/rGodDxDxl6d5TkNfGJK5 3/i1qs/C2Yg8 
 K1bfhUhbvS/znsORgaCXrZudqPv7SZiy2YPQV63UtEaWojsE08UrdfVMriRD 88Vp62kXt74L 
 jViRJ+OLIr1xy2b7MHZ+P1aLN5C7Nx03xK+akILegJU3N10xOcn1Aq8mARIg ARJIKYHLaNsm 
 PDcmx0do8d+huUKs2fhJFdquB6vfG+htXC2eQauxr1cLboP+XJqGFY1f43st ns/wvml/NcrS 
 HCgyxvd91CwVC6PvfwXea6rsUXTXC1FsKlOvk/p9JAEVKJzHBj/HoW2PanG/ kdeRGA93/zNP 
 PS+DwykiQb+Gc4deEGtexHN4ejl2nfo3C95DFUZYIYRbdC+SLrDm4Ge/eRmr p+dD87qOfIEj 
 NevxoClGV/fGque6ijkW63CW7fAvNNc9p8WofPMP2P7IDMFX/H11I3puCO6G oFdx076Rr9Bc 
 ++z4PZTI1Baq7zAtZpdhLLIvr6GrriyCjVjpO2k4kco2bOz2TXj33f8qXoRM MdUy1vobGQ5h 
 aBkt5noyFm/7HerWzBUvSKKNq95C96i0revoO7FrfJG9KifsF2/10hXmRcHQ SVOeq8EuGc6i 
 tT9S3dUL1zLU7N2FddoCf+Gtb/gcAz1HUaX1g0gIsO4dvR+kXuv/2Ki7oe1q /oo+sT6qoWzy 
 eFy77zu0bCoZj4HXwoBEaIbUeDdEiFHdetynaUNR9tq30Gl8jQmxp6rfoEaE Xmj24/senXue 
 wYy8h7Hl8NmoL11pF7e3eo9jR8UjwnVvMtKQF6AeHFgrgsgnrsW+8zIqSR5G nEXApCN+HfMT 
 TkpnVRZGAiRAAiSQTQLKoaEWZIWrizonwkIvbfGXP2ZvRHh5S8XzZj0O9N0w vF+mMIFwZU1/ 
 Bq93fm8ShUPwbL4/TByg8fugeox7ZQ3hHPB34fiR4iDiZ38j1nTCA1hX+wc0 vflPhviJEN8Z 
 zCd4AVs0jupaw/MYGK4RDrwSWFI4y3jgP+APf3oLv35IxCjP34j65k/gba7G YsO76Bv6CNtL 
 RBjI7c+j+dKP/heHgrI96L5x01g4JOJ7S14UYQt9+K75efHiYXjMtZAF4xO8 OQZ57/to83rh 
 7egVYmcI3poyFMgF6PV/Fr8/ippScT/N62cI9ojtj9F3suydy1Eky677Ezyn mrFzqVjMpZUd 
 +Ok8OPxB/7fuzfcvVsxbhBf2foB/adoiPOS68PX1HcKz06fgwc370XrqPexc VoSCnzagJ2yo 
 qXppMy9eNPgYOklzKm7bg8a3m9D4T5G4qBcuISAf2Yp9J05gX+Vc8TI5BUWz n8LO9z7Gx/Xr 
 xvvhRjcals/AjPJavNd6Ct6/1GL5RGmLPeLr+0PI1/iqry1qEafwirdsxt2a xhvC1w2rRZiN 
 3n7vJ29iw1134AHxhf6aGGH6VxKTPb1bh1/cLhftfYG+5s24TwjvpxrP6muw ohxpF7f6va+K 
 t9wV4g3lIRHrEhxOPYoLTRVikUBwhQ1jCfjM5MOP7TsxN9KK2GxOwLw3CZAA CZBA6gmoFezR 
 PksaWQwKl27DXtMiLn0x12vYNF94o/6+Dl3y6/HwCWy5S6z6L9mGI6eEKDpe i8dFyMO8uk59 
 IbPKrKAt0jmIIy2fojc4xleFBagyVavV7+dXYo+/HsZCM3mO7yvNu5Wv/d3I EDS9AgcuKKdO 
 eHwyU8K+DXLh2biQ0QWhhQjOqyJTxD3jWQ4KljfiQqzLwjJXDie9DvoiPCWw FmJ76yUpTYR3 
 9FHk3/U8jhhpP8fDEHrQtvslVP7DPeN94RczUsBe1hcO5a3Ani/lx3y1sM8Q t/6Qha/1LBd5 
 S7FLxO2ON0UIqq7dWCgWeG08fF6P2TVEulbXqIvV5O30xWx636iFgKrvVIz2 /fi5WsRn9KXO 
 wfzp3PCE+sMVlGdU9+brCx/Hyxlf5HbBCHVRXxgCrwu1DEMj3f4kav6o6qsv JtPLnIQHqj7B 
 sC8GF/WlomQHvJqdG/08sRy7P9df6MbF+Qiutm7HzDAvkUXVIi5bhuRIL/Ol PuG1fUDP4iDH 
 iHgZ2VNWpAtYbfwpMStbdUV8mRFiWoupDbYntQBzCkqfWSVCW4VHeU+HpTCZ DIlbBSc4NkRA 
 72nEU9MnYcbaJlwIeHMNJ26NuNxgb27qp1OWSAIkQAIkYAcCypMaLCTNdQuX DUH93VhRrntP 
 VQae0FRdfu+qVpZJ7IZjYIi/kDhZ4/eBKcdMBSgRbmQD8A28h5/fNckUjhcL +Ai+rH9SCLsy 
 vHJqyEJ4gSxvDIOn6rGhZKZIabYdRyytpO/DkTXic3RALLII0ejtNDyxKuVa 0GIfo6/G26/i 
 WFUaJ10EjmdDUJ466dX8Tl845F9PEygS9ZAFGav8pV63kNBEIyTEvKpeW3Bl 1NXs+Y3Sp+H7 
 zghpMPPQvKNG2YaN6aEXZrEmb2R4RrV2hQrWcS/vsCEcywQL4QTUPusLgRjR 7g1BHebvZk+x 
 P1QmEhcVwuCPDw6uvzlWedSIGQ8fdqOHFCzEy2/uwJKJK7D7zV9hTt5a/O7N SuG11b+U6P1o 
 TiNneMw1cRu6eExvy2QUTZ0kQoN+jbZha5kEMiRulee2VHTa+CpF38hp7HpE vCkVb0VLSFyP 
 AqogjMcZFa5uGs+VG2su4N9JgARIgARymIARRjChBFs9gavNfSK2809HOnEl QuYCrdGawLlN 
 j9kz0n8Fej2Nh6shqiJlQQgAOHAY60S8YMiqfu33UYRxiAg3no1+b2W0bhLi sv23KMsrwvL6 
 Ti2tWPoOI0ODyCHsT8Np3Cww20PQYh9D3I+nVgsSnMECUwk4LSPSeT1nq99D bwgdI/ZZX6gn 
 vZq9enx1SHiBcb4p7lrFb2qZK2ItVovad4a4NQlE3TtqxNGa890aHuCQUBQt I4e5TfqLh77A 
 0BCLY9/g0IZ5IqxiFkrmiThvEVv6qxPfhn+JCXhpM1tCsICOwSUk92/wAi6j 7Vo/qJeRQC2H 
 sWF8/4MQnVpZk4QQnaK/sBnxxUVTJxthByqbiClO+JpI73r/JCNWN/jeqi3P oPHUUWwtmWKK 
 T45u/WkRt76et7CitAI19XvFJ6G9qH9plQgcFjG3Zu+sbxCtVaXiM8tkPFj5 z0aeQOlaH8/R 
 5utrwlNiUip8ZAveFIHOMtdg/vS1aPgyfBqP9A10lkwCJEACJJAtAv5YzbwS rP/Nm+J5IZ4r 
 29Zqi4mKqtvQFzZzgV5bXeDImL0eXDXSfwUu3lKOFCmcRiNkQQhsuf6pPTR5 v/770By3WnjE 
 0Xb0nwpNH+a71IyNt+djpvi8HW1lvW/4JF55SDzc1QKrdHeG2kBJLHZbXPlb Lb9tU8MObCyV 
 C4yMbBDGZ/9xkX9JxCKLT8x3PYs9H55E66FqLBeLzPzeR8OTurj6KLyt76NR 25RpDtY39WDM 
 EGvjwtjwHmti15zrVCy6OrxRXCdikOuOirjaU2g7vhf/40g3Lnt+hbvFgrT1 9cdF+e+iRtsY 
 Sg9r0D2GEbI0CJax+q7vC5mxQ+qVN9AiYk1PNlSI2FBzHK0hdJX3fk09Pj71 If7cehy/9y+0 
 MmKu/annzF5d4awd+FAspJuLxRVVqHtLxAxfGInsnTe/tAXYglmMaiMAw1G4 6CLdFHMeko7N 
 iFVWdR75BFVi0Zk/5vbEH1Gz6nnsl4s1fRdwYJUQ5RNXo+FrkTZPheEYXlut mlpYgvhaUfEm 
 Pjn1ARo3LRJi3khzF2JPZj7qS7+ISd7yfswNTNIibm/1vo9/WrPQ2C5XfP6R u6lUH0G3P25J 
 GufzwgjD7fJidleL81p+jTJtxaWYxEp/if1d5qD+dI9ulk8CJEACJJB9AnKF diter1TbsOsb 
 OayvOYj2AbEKPGzmAllr5WkSz5UTnXqu9YCsB3rLdGEjnz19UcpSFExlBuzQ FZwJIOj5tuwt 
 nHlPeh+D04cZ4XYBC6qDiI8Jb+Um8cneFMuaiT4JyUigPYc3YtfBM3reW80z Zxb5op/6jhuZ 
 DsQq+DWV+JmId1ZeTP1FYzxTQlHJs9jZ/JUeQ2l4+fw7zJnjZdWnfvUJXm7o 4V9tL21hGXZ6 
 xbYP5k0nip/G5ufEAict9vVGjF2uYvWd9LpeR3/r70R4hxBvqg1a2SqOVqWK G0F3w1p9sxHh 
 vHt456v41U8Mb74RAjAu4M1iV4VwCNG+81189OVgmFy/470eOQ1YkBiVl0Tk oupusknNg23q 
 05CwBfEFoasRG6WzUbYxYLc8Kawf9Xtp9XjahVhS32VaACa+CrSKRWjypUdu DiL6aeeJi3pb 
 Q+wpuC3i3p1viKwcsQVuWsRtJgYd70ECJEACJEACJJArBNRLwXhKtlypecbq ee0M6sqkZ1x/ 
 ASiY/zz20aGXEH6K24Sw8SISIAESIAESIAHrBIz4yTi3UbVefm6fqYfezEBJ xWto9nais/UP 
 eEGmTbOSui23m56W2lPcpgUrCyUBEiABEiABEhgnELyYimzMBG6JHVkfzbsH q+s8uCBCOMcG 
 P8Xra2bCUuo2ogwhQHFLoyABEiABEiABEkgzAfMCsTTfKheL13Y/qzHtTiZi llft8u/elotN 
 ymadKW6zSZ/3JgESIAESIAESIAESSCkBituU4mRhJEACJEACJEACJEAC2SRA cZtN+rw3CZAA 
 CZAACZAACZBASgmkVNz6c7+FzV8bLqctf0dmtAHaAG2ANkAboA3QBmgDidlA OFWcUnGbUtnN 
 wkiABEiABEiABEiABEggTgIUt3EC4+kkQAIkQAIkQAIkQAL2JUBxa9++Yc1I gARIgARIgARI 
 gATiJEBxGycwnk4CJEACJEACJEACJGBfAhS39u0b1owESIAESIAESIAESCBO AhS3cQLj6SRA 
 AiRAAiRAAiRAAvYlQHFr375hzUiABEiABEiABEiABOIkQHEbJzCeTgIkQAIk QAIkQAIkYF8C 
 FLf27RvWjARIgARIgARIgARIIE4CFLdxAuPpJEACJEACJEACJEAC9iVAcWvf vmHNSIAESIAE 
 SIAESIAE4iRAcRsnMJ5OAiRAAiRAAiRAAiRgXwIUt/btG9aMBEiABEiABEiA BEggTgIUt3EC 
 4+kkQAIkQAIkQAIkQAL2JUBxa9++Yc1IgARIgARIgARIgATiJEBxGycwnk4C JEACJEACJEAC 
 JGBfAhS39u0b1owESIAESIAESIAESCBOAhS3cQLj6SRAAiRAAiRAAiRAAvYl QHFr375hzUiA 
 BEiABEiABEiABOIkQHEbJzCeTgIkQAIkQAIkQAIkYF8CFLf27RvWjARIgARI gARIgARIIE4C 
 FLdxAuPpJEACJEACJEACJEAC9iVAcWvfvmHNSIAESIAESIAESIAE4iRAcRsn MJ5OAiRAAiRA 
 AiRAAiRgXwIUt/btG9aMBEiABEiABEiABEggTgIUt3EC4+kkQAIkQAIkQAIk QAL2JUBxa9++ 
 Yc1IgARIgARIgARIgATiJEBxGycwnk4CJEACJEACJEACJGBfAhS39u0b1owE SIAESIAESIAE 
 SCBOAhS3cQLj6SRAAiRAAiRAAiRAAvYlQHFr375hzUiABEiABEiABEiABOIk QHEbJzCeTgIk 
 QAIkQAIkQAIkYF8CFLf27RvWjARIgARIgARIgARIIE4CFLdxAuPpJEACJEAC JEACJEAC9iVA 
 cWvfvmHNSIAESIAESIAESIAE4iRAcRsnMJ5OAiRAAiRAAiRAAiRgXwIUt/bt G9aMBEiABEiA 
 BEiABEggTgIUt3EC4+kkQAIkQAIkQAIkQAL2JUBxa9++Yc1IgARIgARIgARI gATiJEBxGycw 
 nk4CJEACJEACJEACJGBfAhS39u0b1owESIAESIAESIAESCBOAhS3cQLj6SRA AiRAAiRAAiRA 
 AvYlQHFr375hzUiABEiABEiABEiABOIkQHEbJ7Csnz42iG7vGXQPXo9ZFd9g O442NeGgpwej 
 xtn67w7iaPsAfDFLiPcEH0Z7PsLBtJUfb33Cn68zOARPzw+pKdDVpVzHYPcZ eDt6MWLBoMLZ 
 pMKXC/3ir/8H3ePtHe2B52D8Yyq0vT6MDXTg2MEmHNjXiP200QRGlnV7VH15 QMyR2s/hFrTF 
 ZcecQxLoIF5CAhkhQHGbEcypuslNDLf+Gg9MmIaVTb0xCx3zVqNowm3IL29C v3G2+l1RtRdj 
 MUuI94Qx9DetRb64Z8zyBw5jXV4+5tS242a8t4n3/KB76QysMYz3Vq46f7QL Datmaf2t/Ux/ 
 Bq93fh/1pSmcTSpmlvslk7YT1KH++uetwJ4vr+p/7W/CygRsPqS9105j50OT x3nSRuMaTr6R 
 DrxusseC4go0fjkSsQx/Xyr71f57B+5b+xY6R6LPSpZtNa4WGCen2r5TXV4i beI1JJBhAhS3 
 GQae6O1udu/FM/OLjAefNWFmRdz6Ri7gdMsRHGz+JNQb7BtBr/cDHGn2oKN3 RIgW4VkaPIvT 
 3k70jnyP3vZWeL8xez+DxO1ILzo0L/MwBr9sg8fTIa4zHhrhBEEc9/PJsk95 0PLBycB6yzI6 
 5L3ajDqHig9fvwevVe/Cga5hvTvUfZuOoMV7IcADqd0nUhsS7UxHXPcjLjQ+ hYIJRVhe+2e0 
 /rkGj0+8DQU/bUDPrcgNjCZug/slom1ash3ZrTH6Lg57CxTgupgvXN2EPumt Dq5PJHsKOi/E 
 Do2/y5fRvmAbNdupfzwq840yhh1ha1YacR09DeXCHhdgU+MJtDZuwn2ij+6s bMGVCJcrW5xS 
 0YCTXi+8re+joXKRKGMKltR34Ya6LsROgBBxG+Yc/23l17Y2Dzze8xgakPPn +Je3sPOYRfvW 
 TcJC30crL8ycZ4U2zyEBuxOguLV7Dxn10z+h/RF7KheKB2sqxO0pjPa9j60l Jk9R3jz8/L2L 
 muct2AuSP2EWVu85jW7NMzsDS8sfxYyQegSK21HNQ5qPaVOniAeGLggKSl5G 60AbaqYa3j7l 
 8QryukS7n2/gA/zKXG9Rt6caz+JGsCdR1rl+NzYH3Uuvl8Ew5Jp8zFjdiJ4b +jd2/SEWpg1D 
 afc329wyR9EtBMTKVTvgkSxufYE9C+9A/k+q0HY9cnyCNc/tBYxFss0xr0Xb 6cDlU5H7LjH7 
 VvYg7HjqNEyb8ABeaPkOPrN4iGRP106F1DvADoPapXvDx8d5+Pq2YyjKGLa5 AaW4etfR2/I7 
 1NT8ER0jt+DrbcRy+QJS0YyhGOLW/JXJ19OAJZL9wnp0i5e08NyVben9E+kc GaYT+LdJKJoq 
 51vjunDzWMMevGRpbrTY9+HGS4w5L8Udw+JIICsEKG6zgj3RmyrxmApx+yE6 6srERDsLG5u/ 
 hW/4FHavW4WVW5rRL7wQHbWl4m/CC7L/U5z7+gPsXCa8xnmPYfMvl+kidf6z qG14NyhuNZy4 
 FQ+YZTvxYedpHKicK66diQ3N3wV5u+K53yWca3hClDMXLzRfxLW/HcT622Xo xV78S9N6FAqv 
 S1n1EeGF2YtNxZOQf/uLaPlif8Bn43Gvy9fo819zHBf6u9G8bYkQ4jPwVNN5 TeQrMRa2DYl2 
 o+Ouu46+4y/hwTyTNzOGoDCHyqhTx/vlC3RFtE1xdoAnKpLtlGPPm1u1sJzQ vvsqQfset4ei 
 /7YbdWVTkH//K/B+/Y5hX5/gQjR7CvKghXj/TJ7b3oDQmUhtfAgr/+GBCGPY cUZmsUHipWvv 
 OhQLW8zPW4Kd7ZH8tqa+NIdoKTE4tRresVi2Jefhrgi2VI6GnmHj68YULN52 EG2th1CzVH59 
 k9edjTCPiRAyS/YdR98HlHcj5pxnETRPIwFbE6C4tXX3BFculeK2FX3NlcL7 anhUZy/Bz7a9 
 jbZ+uVCtFwfKp4lJuAglS8uxsrwcj2shEcrzMAXLG78JE1sZTtyqc4PqHjDh xnm/sT60vVWD 
 TWuewOLZwluoxRXvxr5tUjwvQI03KM4uoqg4ieaKmeKaJ8SDSF+gd6u7HotM nzN1ARKhDTll 
 O2mq7Nh38Nb/I+4TYqKg5CW09EVf6GjNc9uDgYi2GSxuI9nODKwS9hG+704k aN9mQXQKw95X 
 RPy7+IRduQGPaV8g3sWRaPaUsLiNPD7mlMyNMIbT1N+2L1b34FZXLhVcxFeY dYf00JEwR9j1 
 B0PN2CDCa/I1cRvLtqRIjWRLM7DusDdofrmB3sbV4x75sPNYsLhNQd8H2N13 Mec823cxK0gC 
 FghQ3FqAZJ9T4hO3SqjlL2tErzbB38RQ8y+Ed1Mt+LqOgfY/oW7LsygzRGLB wt3o/PGC/vCf 
 uAxVe42VxMaK4ob/+kiUsIhw4lZ5mS2IW0v3+wGddY8J7+pMPL75NRw4Vo8N k6W4fRUNm+83 
 iVtj1bT3LAYvBC74GfeYKXG7FHu69XwSN7vqMC9E3EZog30MIzs1GbuIli0P i76YjAc3NaE7 
 xiIcWUlr4lYuloxkm8KQw70YhdjOIbQ0bDItHDTbnyFILNlbINoAQeT7Di2b pOdUf0EcF7cR 
 7ClZcRumjZ6eSxHGsIXUFdmxmjTd9TI6GmtR82oLemXMt/LARgmTCRW3Yn5s 2Yy7/eEMhrCM 
 aluRbElmUvjaEJLKHq4b3lrd4xt+HosgbpPp+7DiNvKcl6YOYrEkkFECFLcZ xZ3szcKJWzEh 
 e3ZgdfkqPNfYHZh54Gorqu7JF5/nFmFT/X6R7qYeWx6RHtm52OL5Ai2Vc8T/ l2K7px83Rk7i 
 lRLhBZWf8a9cMT61FWN9/XF4Tx3HnrXF2rmVzz+eUnE7peItnOntR7sWBmHl fsqTsVwI0ssY 
 aN2BMvkJsvxtfKItcFKfAI2wBNNnY/1eI6bFICosQYizzfvR6vVgX+UCrR4b m/tMYQkUt6GW 
 O4aBwxXai1JBSSXqVTqlgx/h3OhYRJv0i9vZT2JLdTVqjJ9XGttx2f8p3hvF NoVyMR7W0W1n 
 Kerqt0QQt+pTshV7iyJu5QLL8/uxWnr6NHGrwhIi2FNAvc12aGQ+iRmWEFxf FbcebgxHWdWX 
 7DRky+svo22bHLtyQZkH3r/UYrm2wPF1/Mtfw8+P/pCj0gq8LO1w23NYPFXO lyqcQYUlBHM3 
 21YkW5LicdgIAZiE4jU7sK9xFzbMVzG3yuMbPI+Ni9vo9h1H3wfY3RD+poXO RJ7zbNm9rBQJ 
 xEmA4jZOYNk9PZy4jZZ+SwjfU7/F8uliwvanu5mBsqrj6Bu7hdEv92J9sfFZ X/u7WIDV0KXl 
 xPWNfIaGtXP9C8ECF3hFivmNw3MrxHSNsShMW9Bh+X4iZuzwxvFPsfMfxdLZ Irb2nu1ou9QZ 
 mJpq6lK80joo2hJ4r8CFPMr7qB4WYtLf8r7gY15QRnEbaveDhgAdXxio29ha HOgfjZgSLnz6 
 JT1d3Xic6fmotglLthO46Ee48ow6qUVAidh3uDjNq+iuX6GNE82O/d7sMPYU zQ4l4IjiNtJ4 
 bMdAlDGc3bkq03cXLxrBi+u01HT/JgRm+PSE4WyxYHY5alou+tMkhp8HgxeU hbOlDj3rirSH 
 qsf0lIx5xVj8sEydJ21QvFhHmse+bbUwN8bR98HjJZqNZrrbeD8SSBMBits0 gbVVsVp6rNPw 
 htv8QdsUQqTBCbsxxE2M9HZG+FsqWngTP1weNuXbtXo/dZ4IOTBE6HhtVDiC TFdmzmgQfC9z 
 /VV5p8fTh6WieSwjOQIxbDMx2wnX79Y2RbHemGj2FM0OY90hwviIyilWmQ77 u3+uCzc3JNpW 
 K/NSuHPGMNh+THwxU5s9XBULJR/VvpxVtcqFbtHmMYtzo+W+j1Qe57xErYLX 2ZsAxa29+4e1 
 IwESIAESyEkCtzByaoeWRSQ/bw5KH56jefgLHtqF9mtui4nOyQ5kpXOYAMVt Dnceq04CJEAC 
 JGBnAsI72yNi+et2iPjyndjT9DHOWVh4aecWsW4kkAsEKG5zoZdYRxIgARIg ARIgARIgAUsE 
 KG4tYeJJJEACJEACJEACJEACuUCA4jYXeol1JAESIAESIAESIAESsESA4tYS Jp5EAiRAAiRA 
 AiRAAiSQCwQobnOhl1jHrBL4+OOPsb2qypQrODi3K/89nkc5MRZLysrw6q5X cfHixaz2tV1v 
 3t3drfG5r1huppIYY14XnZtkKxlL1m49rl27hmPHjonNep6nnaVxnD3z9NN4 8403cOnSJbea 
 WtrbTXGbdsS8Qa4SkEJLTkJKFEgBJid9/qSegVl4yUlfPmR5QONgFhpSgNH+ Um9/kqn5xUH+ 
 223C48yZMwEM5NxHW0uPrZnnuwNid0ceqSdAcZt6pizRAQSksFUPOznBu9mb k6nulB5y+QIh 
 J375YHW7wDXboOQhxQeP9BKQjNULrRz/bvmSIMeeElzSe+02YZ9eqwotXc5t UtSqZ4xkziO1 
 BChuU8uTpTmAgFlUyE90PDJHQE76KgREigy3HpKDEvp88GXeCiRzKfZkHzj9 JUsKetlWKbT4 
 ApVZW5MvEeplSn6x4pE6AhS3qWPJkhxCQH0GprDNXoeqCd+tfaDEFYVt9mzQ DX0ghbvyHvLr 
 VHZszfwiyz5IXR9Q3KaOJUtyAAE5uUgvhhS4PLJHQHo0lOcse7XIzp1V26Xo cLrXMDuErd3V 
 LDqc+plevjzKccaXKGs2ka6z+NxJPVmK29QzZYk5TEB5a/h5LvudqPrCbd4M JTi40CT7Nij7 
 QIo/p35BUF9InCres29B1mugwpD4QmudWbQzKW5Tw5GlOISACklwSHNyuhlq kYvbRJ4S9W5Z 
 zGRnI5V9IMWtjAN34qEWbzqxbbnWJvUi5baX+XT1E8Vtusiy3JwkYKvJfrQH noNN2qpa889B 
 Tw+GB8/idEcvRnw5idlSpdWnOreJW75gWTKPjJ3k5DCljLRtbABdHzRhT+0u 7Nn/PjoGrgO+ 
 IXQdexdH2wegpjDfYDuOHvwQ3SM3jb4dw2D7MRz88BO0Hj0YMg9qc+LRdgya 58AIc+aBgx/h 
 3Ki9J0u3vsynayBT3KaLLMvNSQIZmeytkulvwsowicQL1hzE54efQ8G9tehQ zwGrZebQeRS3 
 OdRZDq6qreaEFHNOe9t83+LE1lLMKHkGW17+J2xZsxBFU5fildYutFTOwZ2V Lbiitek6zjU8 
 Ibzkc7CpZVBvpe8b7Fs2DbO2/w6//8dVWFn+JFYuXYCiCUUoWVqu//sfG9Ft ngMjzJn5ec/h 
 yEAKJ8shD2pW74BnKHVlunW+S7FJ+4ujuE0XWZabkwTSPtnHQ0WbqBegxjsS 46qbGOn9Cr1+ 
 j4fFm4wN4uzZQYzpTxKM2cwb7NbJnp5bi/abodNsNSekuM3pbtvNrjrMm1gh hKU+y0BIWW/1 
 IhRWHMJnTetQMLMG3uvCo+r7G46snSWE72RM2ezBVe3UFmy63SR25e+0OXEt DvSr8oKAxPp7 
 RH4x5j8xV3Z7z6B7UHidrdQjgX5y63yXACpLl1DcWsLEk9xCIN2TfVwcI4rb MTHHr0X+1Gp4 
 R75A49q5KNA8vDNQMn8m8sub0C8kq/8c7TkwIh4qwutR7cWotxpF85ZjZclk /dyxi2ipekw8 
 WOZh8fwiFJS8hJY+YxKPq8KpPdmtkz3FbWrtKNnSbDUnJNuYoOvT3TZN3OY9 Jjy13wa+RHcP 
 4np3PRZNWIo93aOGkH0Mu+q3YtYDO9Hxow/XvTWYlbcOB/pMQjaWeI329xuf o+6haVhU/wVu 
 SQ6aoJ6Dhb85hPfCzn/GHKrmSjnH5pViu+c91N6br296kUKPsFvnuxSbtL84 itt0kWW5OUkg 
 3ZN9XFC0ifoOFJeu0D/BaT+bsK97xBCuW9FQX47Csj3oviG8H2NfY9+qGdbE rf+BcxNDLZtx 
 9/2/Rtuw+MQmYuG8NY+gcO1hDGQ5RM2tkz3FbVyjJO0n22pOSHFr09429eKs CcE5KHuuCnuO 
 tGNgTEwuNztR9/dzsKG5H1c9WzFFitqhE9gyWQreK3qYQlkDzpnnIUvi1hS2 YMybq6s9GMKP 
 uND4FAoW1qNbqFvfwGGsv30pfv2bigjznyFuJ5Zj9+ffi29bl9G2bYEeShGr Hgn0k1vnuwRQ 
 WbqE4tYSpsycxHQsmeEc7S5pn+zjaaI2gYrJv8EDr9dr/HSK8IPrhrh9AutW zhr3ROAGehtX 
 WxO30uurOUSuiAl7LgpLK/BydTVqxM/LFaUo9P89ngqn9ly3TvYUt6m1o2RL s9WckGxjMuy5 
 1W8nP/l3o62lCfXb1uLBqZMwY90h9IkXac/m+0UYwmF8VPsIZm5rFeEIgyIW dy6WNHyIP1fM 
 wby6TgREtcYSldrfH0VN80nTnOnFaeEpltOdr68JT03UxbMUuoXLd6Hhv0Wa /wxx61/bYPxb 
 fu2KVY8E+smt810CqCxdQnFrCVNmTlIPNTWZyn/LtEByVajMsyiNX/4wD176 +sNWD7KYYQlL 
 xQKLWVje+I2x4thYlBE2LEF/kPjDEvziVf/9neXVeMeclSF4FXL6kEcs2a2T PcVtFowtyi1t 
 NSekGE162ybmo6bN0L2m6vDpXlrtc/6PGGr+BQrniy9T8x8wFpKNoU/E4t65 ai2e+cn92OIZ 
 v1IrIZaojPV3IxRh0e/exR+WP4D1hztwIuL8ZxKz2s0pblNsfmktjuI2rXjj K1wJWSlelZCV 
 olaKW/k3+dAzC2CZ9Fn9TqWK4uYD8TEPPju9k32cdYspbn+JutoyFK7ajwvi M59vpB27lxUZ 
 nlvjIfKTKrSJBRu+4U+w/f5JYcTtDfEwWY/Ch3ajS4Y2CN9Jd/0K3MmwhDg7 K3Wn54K41dM2 
 mdIrxZPaSaSyE1GWQiuESRGVOowpK8lWc0LKWqUXlN623cKw51e4+67nccQf wz8qPKZrUWgs 
 JPNdaMSKPBGyMPEXaDYyD/h6GrBEhjHc/iJarmjRseNHLPEa6+/CD3yp+Xnc +ZNpKJosy78e 
 Zf6juE2xuWW0OIrbjOKOfjMpZOPZBlEmGJciWApamWRcTlQyVx6PxAmkd7KP s14xxa0ILbjc 
 gddXzTIWN5Rg5T/MEyuRmzVPiW/oI2wXi8YK7p2DOROLUTJvShhxK04c1Rel Fc4uRXnpHBQW 
 V6Dxy1gZGuJsSwKn03ObALQMXTImFyUGrFqXn5MtpnaqPoXrEVNEDfrznmao KTFvY6s5IWZt 
 4zsh7W3zx9zKONjlWDz7DuRPf0IsMPtO7+dbX2DPwjtQsLwRF1RsrfrdqiYR uhDUnljiNVIq 
 MLOtDou43rsmGWEQ0ea/KOJWK0MsKuOCsvgMLoNnU9xmEHasW8mHufTaxHtI kSv3oaewDSUn 
 XxbkS4PVUI60T/bxdm7U82WS8/dxxNtnrEQeFhkRFmJObft4nFpwCpuI5V3H YPcZEad2FoNy 
 sYcNDqeIW9kOaYdWdx7KBc9tqLjVPydbTe0UOUWU/mJmp8Puc4Kc26RzI5H5 PzNtk6kKO40Y 
 WPvML4E2lsD8NzaE/n9LXVYZp8x3dhm7FLd26QlRDzlJyckmnkNeI8MT3nzj jXguc8W5coGe 
 lq7F+JECI9aWppmZ7FOF38h0MH0VavY2oenNl7D8ruWo68y+1zUVLXTKZC/H prJBOVZjvWzl 
 prgVTrg4UjtFSxEVIYNpKkwqoTLsPieona1kPaWTQ4aoWV2cbPe2JdRhOXqR U+Y7u+CnuLVL 
 Txj1kJNTLAFmrvIzTz/t2H3PU9E1cpKX4kJyVQJDMpMPhHDe3Jyb7H3DOOfZ j7oakemg9g0c 
 E6uA7eF3Tb73nDTZm0OHYr1s5aq4jSu1U7QUUcmbTkpLyIU5QX0dML/MS29u rDUYudC2lHam 
 jQtT8525D1P9/1a/HtkYk+WqUdxaRpWZE+WDLdaEZK6JFGnxCuLMtMR+d5Gs zAvyJDfpzTV7 
 OTjZ26ffnCRuFVVpa9KzFu1lK2fFrQgoiC+1U6QUUfaxQVmTXJoT5Au7/DIg vxCYvxZE8ubm 
 UtvsZRWpr42a75b89Kf+heJqwXiy/1X2QHGb+n5jiRYJqKwHFk/XTlMCNx5R bC5fZWZwy38l 
 L+m9Nb8Vy8lDfd5LJO45nv7iudYIqMlexas6zT5lu8wiV71srV+3Lu7wJGtE U3dWaMytLFuE 
 yVhK7RQrRVRAZtPUVTrBkuQ88czTz/gz2OSKHcpniVnkynYEx35T3CZoFGm4 LJ0v89IWZF9T 
 3Kah41ikNQJSYMnPSfEeSpgluqgg1Z8/crm8f1jxRLz403C+WIRx4RTee6sO r9TU4e3mDn1X 
 HxcdmfhMZ2c7tXNXhxe3IkOHpdROsVNE2antdraRROsmRa8Mf8uIuB3tgedg k/bF4kDTu2j2 
 nEb3oFqIJb33Z3G6oxcjGZ3efBjt+QjvqrR0NjA4itvUdgLDElLLM+nSpIFL r2Iih7w2kawJ 
 ylvspv+awxPUA0KlU8u+51bkXjz+Eh7MK8KDazaj+uXNWFcyA0WP7ECbkQsy EfvItWvUZC/7 
 w4m2KWPBgz1r8t9Lyn6aI57b8cWa+hhagJqT/2IttVOsFFE2MlbZNtknuWiD wfalvg6odR0Z 
 Ebdaei61JW45Hp8vcnHnzcX6hs+EoL2JgcPPiXSFtehIpcN+yIOa1TvgiThf Bqf5yr7BUdym 
 tg8oblPLMyWlyQkn0UO9jScaopDofXPhOhmPJj3b0eLRMjLZx4Dl6zuEZ6c/ gI2HzxspvsQF 
 N7qwp6wIc2vPiB3S5REjdY3lFGBRytLKGN+6MtN9nM7JPtNtMd9PjtHgkAQV FiPPy4WY29Tw 
 y4UUUbkVcyv7RcV1m+e5SItoMzLfheSmvY6B1h0om7gEO9uvhJpSlHnHN9KL jpB0hWHmwrD5 
 cI3zNC+xSdxGnCujeJXFNWfP6lv6pupI53zHsIRU9RLLSYqAnJQSjY2RD005 kf1mx46E8h4m 
 VXGbXhxLTJirnZHJPiqnoHyh/nN1IaDtkT7ahYZVc1A0/zE8KTZdKJi+Fg3a pgvGhD1vOVaK 
 zRs0b1peKbZ/+BfUPTQNi+q/gLbfj7EF5cK6z3EjQlljfe9ja0kRikuXisTr kzFjdSN6tB3M 
 Mnekc7LPXCvG7xQc6y29aNJ7G5y2yT3iNhu9EP89sz8nWKtzpIwc0Z4lGWlb OKHpu4ADq2Zg 
 VnUrvmlai3xtO3AhJsPOO8a8du88lNw1R2xGIzy/05/B653fwxdu/uo6gZ33 ig0WtPlPbvMr 
 XMLGRjUFUx9AidhIoqBkKxp2PIl8ba4Uu5VNFfOlnCtbjU1E1JeFqfOwWHia C0peQovYZU0L 
 x1Hzq7bNeeqOdM53FLep6yeWlASB4ITc8qFoJZZWCdvGxkYtPEF9gkqiKjl9 qRQN5oVjkcSE 
 vcTtiNiIYYGxhW54/Dfba1G8cDc6f5RiU1+hXlTtFdLWeAhMLMfuz8XEj8to 27YAd1YexWeN 
 T6FgYT26hbr1DRzG+tvL0dBzHeHL+hAddWK1tZq8r7Vjz7otOCDOz+SRzsk+ k+2Qq9fDZUeI 
 VAeK20z2Tux7ZUQAxq5GxDOkqA3+GhUrl7IqLCNtC+tFVfNcI7x+cXsNXWHn nR/QL8+ZuBb7 
 zsuNm/Utwgt/2oDuTyPMhQH3/FFs+Svmv5Id8I4Ioes7jwOrp+ni11/mFTFX zhVzZQuuyIWR 
 LZtx9/2/RtuwPH8I3ppHUCi2JO87JcRt3mNih7VvU+q1lf2RzvmO4jaJAcZL U0fAnDFBZUKI 
 FUurHqB/+tOf/KnBpNiVk95nHZ+lrnI5VpLkpj7JWal6Rib7qBW5io7aRVHF rQxJGGg/hrfr 
 XkFV5dPalpYB4tYfvzb+6a2vrwlPTVyKPSIPrpzoC/3bXYYrq018NnxZi/kt Ka9ETf1BfNQz 
 nPH8uemc7K3YQqrOUWPYyiYi8p4Ut6kin5pysj8nRG+HCkWTTpF4v/hlpG1h xa0uJgsrDuNz 
 v7gVojLsvGPMY8sa0Wt8PNI8qLe/iJYr18LPhQH37MORNWLNguYAUIfyBqtY X3MMrlG30gq8 
 XC3yh4uflytKUSi8y22t4r6alzk1tmUuJZ3zHcVt6vuLJSZAQL6Jqxg8lcNW bbErH5DBh3p4 
 moWt+XcqBUwCVcn5S6zu1JNRT0ZUqrdwpeVF3KlN3FoQgXHoXtjCikP47PBG zJi+AlVvvoMj 
 LX/Fvsogz63/c5lpwjZCERb97l38YfkDWH/4b0Ks3kBfxLJkvFkXPmiqR83z y1A88RHUnMrs 
 xqjpnOwzadgy1tvq9s8Ut5nsGWv3yogAtFaViGfFO89ldL4LJ25vfC5Cpe7B isZusW2zCkuQ 
 tQo37wzonltTGIAmbn+yGY37N4SfCwPu2YsD5SL0wC9uZYhXO468VGoq0yxu 9a9hd5ZX4x0t 
 w4Pxc7Qd/dJzS3GbpLVm5nIuKMsM57juooRscF46+XvphTQL3FjCVnku5XXx PGDjqrCDTrbF 
 g+zaKdTcX4Symo+M9F9iMv78d1g+8QG80PK1FrYwZbNHfJwTj4KR09j1yJRA z204cSs+tV1q 
 fh53/kRM8pOVcNY/DYaW9We0bC7BkvouIX/lTb7BvmWzsLKpN6M97RRxGy80 em7jJZbe820x 
 J6SpiRlpW7C4HfsO3t1PY8Zdm9A8MKoLV00wSlEZbt7p0c+5azNatOwHRljC 8jo0/jrCXBhw 
 z+voaShHYdkedMt1A9ri3P8bM6beEUHcipf+pvUofGg3urR1Bvr97lRhCRS3 abLG1BZLcZta 
 nikrTU464eJspUBVAlfltj116pQWPyQ9vkrsHjx4UPudPJfC1nq3ZGSyj1kd IWa7GrFxvrEo 
 TFsYMZ46x//pbumjYnHEEvxszSIUzl6Hxu6RIA9HULqb4RPYctckzNzWqglj Lem++gwYUNYa 
 /K5pN1ZPn4GSpeXaorXCkiqcGEjDt7goLChuYxoKT8gAAXvMCelpaEbapglN c9q4fBSV/hL7 
 u+S6AGOOMhaUjX75Vph5xxDA4sV8RnEpyrVFtHJB2aUI85eYC//lPTHXiUVl xoIy30gHXtcW 
 4ZbpC2RXvY7jbz4TQdwK1sYCtMLZ+v0KiyvQKBbtah5jitv0GGOKS6W4TTHQ VBWn8hCGK08J 
 XDkxSRGr4nGVGDhx4oR/AQuFbXw9ol4I4rsqTWf7RtDbcRpebyd65UII/2Gk qFG/l+d99hUG 
 E9rkIXJZetodr7j/2QTLTo4LxW1y/Hh1aghkRACmpqpxl2LHtoXOO+Mv6Rfk hg8B82GUuVB4 
 gvv/zbQI1phPtYwzlkjFSLdoqQzrJylnlQyDSPXBmNtUE2V5aSMgBe6HH37o F7YqlEGJXSlq 
 pehNNBYrbRW3ecH8JGyfDpJfIuTDNx2TvX1aGVoTGXYk2x3tBdfO9XdS3cyL tZzULtUWW73M 
 RwRsvw0X0mEL6RSg6Sw7HSxSUSY9t6mgmKUylAdXrpKVQlYJWynQ1EK0LFUt Z2+rhAU3wch+ 
 F6q+iHcFePZrnlwNZOYTN4r65Kil52rVF/K/TjxUqkR7O0Hst1VuOmxB9UU6 1sZQ3Kajx1hm 
 WgkogfvnP/9ZE7TKY0uvT2LYzVu+JlYCr0oFAfmwlQJPprJz26HaLsdzOh50 buOZaHsle5U/ 
 1t7iL9EWAkq8h8vCk3ipvDJeAul+7lDcxtsjPN82BJTx0mObfJeo0ASnemuS J5T+EpQXw619 
 oLzWFB3pt7VId3BDH0gBrzYYcdsXkuxZVuCdzS9R6eoDilu79DbrkRABuZWn lZ3MEircRReZ 
 U7GRZ2Y7Xk70MswmN2IB08fG/MCjwE0f51jCVnpune49V7HtUuSmS1xlvgdz 447mXTTTOc4p 
 bnPDHlhLEkg7ATnJK4+G9OQyzCPtyLUXM/UZmFk+oNmcskHJg3Hg6bdByVh9 NXDTVzC1Ul9t 
 +OPUMIz0W5C1O8gXJik41fhOp7CVNaK4tdYvPIsEXEFAbZqh7UFuxH9Kocuf 1DNQk7x6uDrd 
 W2Z1AEkOKkxGspGcaH+ptz+1CFeNdflvtwk8KezN41CKfNpaemxN2VmmFo5S 3FqdcXkeCbiI 
 gPRqqE/l5kmJ/29OzJ7c/0uPrfRe0EMefmDJLwmSj1l80P6Ss7lgfpKtHOdu /jQvX6ZknLv5 
 hYp2llo7U44SGUaYqRcoilsXCRY2lQScTkB9XnVjxgGn9y3bRwIkQAJWCVDc WiXF80iABGxN 
 QCWfV14XN3ujbN1RrBwJkAAJpJkAxW2aAbN4EiCBzBBQaYyUuE33goXMtIp3 IQESIAESiJcA 
 xW28xHg+CZCA7QiYc1ea4+W4SMt2XcUKkQAJkEDaCVDcph0xb0ACJJBuAiqt jzmlUaZW5aa7 
 bSyfBEiABEggPgIUt/Hx4tkkQAI2JKByxSqRq0IUuLDMhp3FKpEACZBAmglQ 3KYZMIsnARJI 
 LwHzHuXq/+XEplKZcSOA9PJn6SRAAiRgNwIUt3brEdaHBEggLgLKSyu9tmZx q/5filweJEAC 
 JEAC7iFAceuevmZLScBxBOSCMZUgXDbOLG7lv1W4QqYShzsOMBtEAiRAAjlI gOI2BzuNVSYB 
 EtAJyJ2FzAvHgsVt8N/JjQRIgARIwPkEKG6d38dsIQk4lkCwZzZY3CrPrtxm lAcJkAAJkIA7 
 CFDcuqOf2UoScCQBGW4gY23VESxu5e/l3+XuZTxIgARIgATcQYDi1h39zFaS gCsIhBO3rmg4 
 G0kCJEACJOAnQHFLYyABEnAMAYpbx3QlG0ICJEACCROguE0YHS8kARKwGwGK W7v1COtDAiRA 
 ApknQHGbeea8IwmQQJoIUNymCSyLJQESIIEcIkBxm0OdxaqSAAlEJ0BxSwsh ARIgARKguKUN 
 kAAJOIYAxa1jupINIQESIIGECVDcJoyOF5IACdiNAMWt3XqE9SEBEiCBzBOg uM08c96RBEgg 
 TQQobtMElsWSAAmQQA4RoLjNoc5iVUmABKIToLilhZAACZAACVDc0gbSROA6 BrvPwOvtRO/I 
 zRj3+AHnPIdwoOkYOgbHjHN9GO35CAebDuJo+wB8EUrwDbbjaNMheHp+gPn/ A09XZennZeaw 
 Vv9E6xLc1kTarl/TJLgH/Rxtx8DAONdE65iN6yhus0Gd9yQBEiABexGguLVX fzijNr5v4dn+ 
 GIom3IZ8+TN1KV5pHYwoUIERdNSWinOLsLrpgnHeMLzVD4nfzcGmlsGIXMa8 1eI+07CyqRfm 
 /w+8YAz9TWtFWfp5UY+Bw1iXl485te2IJcmjF6TueRuKqr1Qkj1VHRzc1kTa rl9j9JH5v1Or 
 0dY6zjVVdc5EORS3maDMe5AACZCAvQlQ3Nq7f3Kwdj5cbd2OmROmoKz6PbSf egsb7spHflkD 
 zkVyvwo5+2P7TswVAquwohlDstU3O1H395OQf9ev4Bm+Bd9ILzpOedDywUl0 D173czGLOl+/ 
 B69V78KBrmH972OD6G7zwOPtQXeQuI1UnlDBWCnq4RekvhH0ej/AkWYPOnpH AgS6b+QCTrcc 
 wcHmTwLqZNzcENTjZWn39J4R5w5j8Ms2eDwduldb3qPjtPByn8XgmIR0EyO9 nX6vd7i6BovZ 
 eNqu4ClxO6WiASe9XnE/46ejF8N9kViex9DAWZzW2nFdIB7/f9EQ49+6t17/ m/z/79Hb3grv 
 N4bXPALT6DytDQWKW2uceBYJkAAJOJkAxa2TezcrbbsqvLCLhJd0KXa2tKLl yPtouxAoCsNW 
 68cz2PmAELO3v4iWK7dwq7seiybkY+a2Vvww8AF+VTJZ9wJrP7PwVONZ3JD6 NYLn1jfSgddX 
 zTLOn4SiqfJ63XPri1TemBc1U8c9mdOe34nd/jL0+67e04ERnxBxfe9jq7lO efPw8/cumsRv 
 qOdWr2s+pk2dggKjLQUlL6N16DyOrL1HlF+Guq5rQiNewIFVRcifuB7vfNoc tu3XTO3WdLzp 
 39HabmavxG04z7K18nqCPOKqzQtQ471s/G0GlpY/ihmKfUC/KKbtGIrJ05ox U9xa48SzSIAE 
 SMDJBChundy7WWlbLw6UTzMJUSFghPDbeOibGJ/mVWjCAlS1fodzDU+IMsz/ PxcvNF/Etb8d 
 xPrbRZnlTeiPKG7PoqehXAjIKVi87aD4xH4INUuFWNQE1lmj7PDljXtuW+DV QiUWYNP+T3Hu 
 6w+wc5koI68cDT1D6Kor08TuxuZv4Rs+hd3rVmHllmb0+73TkcSt8E4v24kP O0/jQOVcUcZM 
 bGj+Gy41P487J9yBRfVf4NZQMzZMFOet3Y9P3pQcQuvaG1HcRmt7YEhG+LCE 4BCPr3Ch8akI 
 LK2I29tQMP9Z1Da8K+KdvzXCT4KZPoSV//BADJ7WjJni1honnkUCJEACTiZA cevk3s1K25S4 
 XSDE6AVc6zuMjTIs4Z7taLsaMS5B1FSFJkzC3N/8EX+Qnkt1zVgf2t6qwaY1 T2Dx7Dt04RxV 
 3J5Ec8VMcd4TQojKEIagmNso5Y2L20bs00R6EUqWlmNleTkeny8F8gysO3we A82Vwhupe3kL 
 Zi/Bz7a9jbb+8XCJ8XuOhyXoYnIKljd+Iz/gB3o9r7RgkxDtBcv/gM/+8qIQ uvdg/eG/wReh 
 rpHFbYy2m2xCidvC0gq8XF2NGu2nFvvaL5s8wcHl3UBv42rjRcGKuFXtlTdW thHMdBLmlMyN 
 wdOaMVPcWuPEs0iABEjAyQQobp3cu1lp2xA8m+8X4mctDvTLZVRK0Kh/R6mU Ck2YOQfFE/WQ 
 hKv4AZ11jwnP4Uw8vvk1HDhWjw2TY4nbj3FkzQyTuDULsq6o5YWI24nLULXX nE1AZVy4joH2 
 P6Fuy7MoMwR3wcLd6PxRCfhInlu1qC14kdslwU14cic+inVPC35aeMZwxLpG FrfR2h7ecxs9 
 LEGJ26XY0z0qOu+64fmW7QgWt9cMj7Y5LMG8iM+whbBML8Xgac2YKW6tceJZ JEACJOBkAhS3 
 Tu7drLTtFoY9v8LdwuO5vPY9eD+uxzrpkfxpA3pu3cSQZwdWl6/Cc43dYbIR qNAE6RGVIQmX 
 TeJ4uRBXlzHQugNlebHEbbRP8yeMsInw5SlxO6ViF35bPkXUoxjr64/De+o4 9qwt1mKJ93T3 
 oqVyjvj/Umz39OPGyEm8UiI8yka8sI49XnGrFuLJtufj7s0nMOx/MQitayrD EqKL26/R17Qe 
 hRMmoXjNDuxr3IUN81X88nlc9WzFFFnfijfxSetBVJVKZpHErerfYKYqzjmY 5/+DxndrhL2s 
 Q41nwJI1U9xawsSTSIAESMDRBChuHd29WWrc2EW0bHnYv2gqf/ozeL3ze9On +EjpsXy40bUb 
 C+Xnfn8Yww30Hd44/sl6/qNYOlssPDP+HjEV2GgXGvyLwWbg4dK5QqBJL6IQ a1HKgxCqNcZC 
 sWnP7xKCdu54O0wLyka/3Iv1xUaIhLHIbXVDF6RvMzFxK6662oqqe0QIh1/Y R26756+/9qdA 
 06S0OQY3YtsT8dyKa2R/Vhmp3fKKsfhhuVDP8MheO4O6MukllwJ1Bkrmy3CQ SOJWJob4DA0h 
 TEVe3bA8O9BjNYWbQZ3iNktjnrclARIgARsRoLi1UWc4qyrxbOIQq+UqNZZK lRXrfOPvRoqt 
 092DQYvZYpV3Ez9cHjauUefqqa8CDplqTEufFeZvFqsY+7RYdY1QQsS2x75j UCMx2H5MbPSg 
 wjGuitCDR7VFblWtV/RTtXu1h0mHFuleEZiG5Sm9vU+IRXffWao4xa0lTDyJ BEiABBxNgOLW 
 0d3LxpFAsgRuYeTUDjwoQ0Hy5qD04TmaJ7vgoV1ovxZtgWCy95XXizCWlq0o 2/AOuket3Yvi 
 NhXcWQYJkAAJ5DYBitvc7j/WngQyQEB4Wns82Fe3Q2RT2Ik9TR/jXMwtlTNQ rTC3oLjNDnfe 
 lQRIgATsRIDi1k69wbqQAAkkRYDiNil8vJgESIAEHEGA4tYR3chGkAAJSAIU t7QDEiABEiAB 
 ilvaQG4RGO2B56Ap7+zhFrSFLBgLbZJvsB1H/YuiUttkveygOnX0im16x++T lvsHs2h6F82e 
 DvQmETKQlnqmFnfU0ihuMwibtyIBEiABmxKguLVpx7BaEQj0N2GlsTOYnn5K /kzGg1s/wECU 
 NUcBqbKiwR04jHV5+ZhT2x4mD2/4C8NvY3sH7lv7FjoNoRn1/gncU6tJWBZi sVdJFU4MyA00 
 4j8sc4q/6IxcQXGbEcy8CQmQAAnYmgDFra27h5ULIaAEXWk1mmUarta92FQs 8t4aW+36RnrR 
 ccqDlg9OBqSm8vV78Fr1LhzoGhaZq8Q5WvquYQx+2QaP2dtplG/e2MA3cgGn W47gYPMnYdNd 
 KXE7paIBJ7U6vY+GykUiq8AULKnvwg3RiPH7X8HY4Fmc9nYKD+v36G1vhdez RxPs2j2NFF5e 
 v+dXpc2S598MxBHMwvsRDmxeJFhMwry6Tl2cy/K8H+BIswcdvSMi17BxyLRb bR54vOcxNCDr 
 o6czM3Py30yV0XQELd4Lfo90VI5ZMl2K2yyB521JgARIwEYEKG5t1BmsigUC StCVN6FfO/07 
 NFfoGwe8fOhd/MrYgEH36M7CU41nNXEZutlDPqZNneLfoKGg5GW0DrShZqry BkuxeQqjfe9j 
 q7nMvHn4+XsXx0Wiv+zAjSl8PQ1YIuuwsB7dt8z3V1vWzsDS8kf9m1MoL3TR r/di32q5KYKx 
 3a2vB/uWTxPb8lbgSLA3NoSF2OXM2DFMep7HRjrwun8jC53H6j0dGB42/34S iqaqHcd6AzeD 
 kHgDNoTQd0+bsboRPTd8xrlhOA4FiXAL3ZqqUyhuU0WS5ZAACZBA7hKguM3d vnNnzZWgm18p 
 UlL9EQ2/eRYlMgfrxNWo+v/pmwu80HwR1/52EOvFtr/5hggOFbe3oXDZTnzY eRoHKueK62bq 
 GwUEeG6viQ0LyjRRuLH5W/iGT2H3ulVYuaUZ/aYQCOW5DdjGdsyrC+Wp1fCK CIHx+ytxK8IH 
 5j+L2oZ34Tlh8tyKrSMGDldou6mtaOyBb6gZGyaKuq49HBp2oVhMXYDHy5/E yvIVWDxb7Jo2 
 fT329QyIzQ9KNdG/af+nOPf1B9i5rEjkqn0Ez/8/j2pe5cXbDqKt9RBqlorf GzuOBYYliB3S 
 tK13p6Cs+jgu9HejedsSce0MPNV0Hje0XdEicMySdVLcZgk8b0sCJEACNiJA cWujzmBVLBAI 
 F2c6tQwvHv4aN8b60PZWDTateUIXedJzGlHcTsHyxm9MWwIb28kGiFshNJsr x7f+nb0EP9v2 
 Ntr6A3cqCytuDVEaWdyq+4s2B4VC+EQM7nohaAtW/RFfHH8RdypxHYwnQNwa wlZusKDF3Pbg 
 QLnw+E4oQsnSciF8y/H4fClilWf6CTT0yHbcQG/j6gjiVnnF1bnAre56LBJl 3FnZgkuauI3A 
 0UJXpuMUitt0UGWZJEACJJBbBChuc6u/WNuQT/EKyQ/orHtMeBVn4vHNr+HA sXpsmBxN3Bpi 
 VnhK+5vW+sVdsNAErmOg/U+o2/IsygzBXLBwNzp/HHfdhopbubPWZtwtvZoV zRgSVQz13Kr7 
 h4pb+L5F84ZZwhv9KNY9fT/yb38RLVdEbEMkcesP0biCtm3KC31SF7cTl6Fq rymTQ9NOrNIE 
 rhH2INp3ruGJGOJWnSv2DOuqw7wAcRuBY5YsleI2S+B5WxIgARKwEQGKWxt1 BqtigUBEcdtr 
 eCqXY0/3ZQy07kCZDFeI6LmNLm6nVLyFM709aKmcI4RfKbZ7+nFj5CReKREe 4SCxqcRtYWkF 
 Xq6uRs2257B4ar4IAViCne1XtEZZEbf6PeWir1u40iI9trqXVXpJ9VKCjhAW I/BWLzCEapcR 
 llCM9fXH4T11HHvWFou/LcL/8/xyEWowCcVrdmBf4y5smB8p5laFJYhsFJv3 o9UrdimrlOUX 
 izCNvqD43KCXBAtdmY5TKG7TQZVlkgAJkEBuEaC4za3+Ym0jilshxA5vHA8h mP8ols4WWRTu 
 2Y62q2rxky5oA+NKg0SZELA1xgIyuaBs5Mu9WF9shDgYi9RWN3Rh1NQT4VKB FcwuR03LReEX 
 1o+o4jbgniJjgrzgSgs2yZjhCXOwqWUwfL+HsFBtuQMP1n6KayOfoWHtXP+i ObWgbOTGRbRU 
 PabFy+bnFWPxw8JLHDbmVlZcnLvlYVMZQuhueR99Y4FMxYmBHvAsWSrFbZbA 87YkQAIkYCMC 
 FLc26gxWJVkCKm3WWQwK8ZX4cRM/XB72C1ORuwvdMsWXkS4r8XKjXRl0T99X aCgTHlVDnCd+ 
 T8VET/UlRehg+zEc8G9ocVUsmtMX4lW1hvUPi2tUGacD04klXqm0XUlxmza0 LJgESIAEcoYA 
 xW3OdBUr6hoC2qYO0ms7nic3dW2/hZFTO/CgLD9vDkofnqN5ZQse2oX2a8m8 EKSuhsmURHGb 
 DD1eSwIkQALOIEBx64x+ZCucRGCkHftqdqCu0YNzSWylGxmJ8MT2iPjZuh2o qd4pUqp9nKb7 
 ZL5TKG4zz5x3JAESIAG7EaC4tVuPsD4kQAIJE6C4TRgdLyQBEiABxxCguHVM V7IhJEACFLe0 
 ARIgARIgAYpb2gAJkIBjCFDcOqYr2RASIAESSJgAxW3C6HghCZCA3QhQ3Nqt R1gfEiABEsg8 
 AYrbzDPnHUmABNJEgOI2TWBZLAmQAAnkEAGK2xzqLFaVBEggOgGKW1oICZAA CZAAxS1tgARI 
 wDEEKG4d05VsCAmQAAkkTIDiNmF0vJAESMBuBChu7dYjrA8JkAAJZJ4AxW3m mfOOJEACaSJA 
 cZsmsCyWBEiABHKIAMVtDnUWq0oCJBCdAMUtLYQESIAESIDiljZAAiTgGAIU t47pSjaEBEiA 
 BBImQHGbMDpeSAIkYDcCFLd26xHWhwRIgAQyT4DiNvPMeUcSIIE0EaC4TRNY FksCJEACOUSA 
 4jaHOotVJQESiE6A4pYWQgIkQAIkQHFLGyABEnAMAYpbx3QlG0ICJEACCROg uE0YHS8kARKw 
 GwGKW7v1COtDAiRAApknQHGbeea8IwmQQJoIUNymCSyLJQESIIEcIkBxm0Od xaqSAAlEJ0Bx 
 SwshARIgARKguKUNkAAJRCRw8eJFyEmi8vnnc+LnmaefQf6E27Ck7Kc5Ud/t VVU4duwYLl26 
 RCuMg4DkJblJfrlim7lWTznu5fjnQQK5SIDiNhd7jXUmgTQTkB5Q+TCWQpE/ mWHw6q5Xce3a 
 tTT3bG4XL0Wt5ESbzIxNSs5yHqDIze1x48baU9y6sdfZZhKIQuDjjz/2iwf5 YJP/puhKj8ko 
 z/iSsjLD41xGIREBtWR1X3GxnxM93umxSVmqfImQ41694Eru8t88SCBXCFDc 5kpPsZ4kkAEC 
 StjKh9mZM2cycEfeQhKQLw/KIynZ82Ui0C7MwvbNN96g0WSQgHyJUJ5yzgkZ BM9bJUWA4jYp 
 fLyYBJxDQHprlGeMnyGz069K4EqPGY9xAs88/bQmsKTQ4pF5AuaXXr54ZZ4/ 7xg/AYrb+Jnx 
 ChJwJAElrOSkwCN7BJSQk3HPPKB9Dlexn+SRPQLSYy77gfND9vqAd7ZOgOLW OiueSQKOJSC9 
 MXqWgTLHtjFXGiY//cq+kC8bPAAl9vk1IbvWoOYI+XWHBwnYnQDFrd17iPUj gQwQUPlhGc+Y 
 AdgWbiEFBEWEDkoKfSlweWSfgEy9JvuDLxrZ7wvWIDoBiltaCAmQgBbLKB9a XBFtD2NQq9Tt 
 UZvs1UKKKHqxs8c/+M5uFAz2oc+axEPAjbb6d/EA4rkk4AYCtpoIRnvgOXgM HYNjJvQ/4Jzn 
 MI62D8BnqUN8GO35CO96ejBq6Xx7nURxq/cHd5yzl13aap6wFxrWxmYE3Gir FLc2M0JWJ/sE 
 bDUR9Ddh5YQFqPGOmMD04kD5NBRVe2GWvJHJjaG/aS3yy5vQHw3vkAc1q3fA M3Qz+51gqgHF 
 LcWtrQzSqIyt5gk7AmKdbEPAjbZKcWsb82NF7ELAVhOBRXHrG+lFh/csBsfM vtybGOn9Cr0j 
 18OI2+sY7D4Dr/ka7V5rcaBfSWYfxgbP4nRHL0asuYjT0oUUtxS3aTGsJAu1 1TyRZFt4ubMJ 
 uNFWKW6dbdNsXQIEbDURRBW3reiVHtl756HkrjkomVeE/OnP4PXO7+Eb/QKN a+eiQNsyeAZK 
 5s8c99yOdqFh1RwUzX8MT5bOQcH0tWjoOoGd9+brCerznsORvm/QUvUYiqbO w+L5RSgoeQkt 
 fdcToJn8JRS3FLfJW1HqS7DVPJH65rFEBxFwo61S3DrIgNmU1BCw1URgRdxO XIt952U07VV0 
 169A4U//GX95+ykUPvJbtI+IEIOxr7Fv1Qy/uL3ZXovihbvR+aN0xw7Bs/l+ PcTB77m9jqGW 
 zbj7/l+jbVhc7xuCt+YRFK49jIEseHApbiluUzOyU1uKreaJ1DaNpTmMgBtt leLWYUbM5iRP 
 wFYTgRVxu6wRvYboHPNWo+j2EjyycAYW1X+BWxqO4Jjb6xhoP4a3615BVeXT WDz7jiBxewlt 
 2+aisLQCL1dXo0b8vFxRisKp1fBaC/JNvhNMJVDcUtym1KBSVJit5okUtYnF OJOAG22V4taZ 
 tsxWJUHAVhPBwGGsy5uLqtYr4y3yfYWGsnuwvPEs+oIWimni9ieL8fh/vgdL Gr4ysimYxe0N 
 9B3eiBnTV6DqzXdwpOWv2FcZ7Lkd0Ly5d5ZX4x2xQ5vkof0cbcdgDnhu5dbJ TtwWNa3ZErSs 
 HKa+PtyCtpAY7iQGVfClwfczbOygyOgxbIM4bysttdU8YaXCPMe1BNxoqxS3 rjV3NjwSAVtN 
 BL4e7Fs+A/dteg992mIxsUis/bcom/gY6kRsrZYF4a7NaNEyHBhhCctfw6Hf lqFw1X5ckNeM 
 fYMDa1XM7Qi81QswZbNHnC0iDkZOY9cjU4I8t9eEaF6Pwod2o+uGvKde7p02 D0uQeYmVl9eJ 
 G3CkVdxqXwjuQHHpCqwsf1L8rNA8+gUlVTgxkKC7Plr2De1+Mh488KdgzUF8 fvg5FNxbiw57 
 Je0ImS5sNU9wOieBKATcaKsUtxwSJBBEwF4TgchR2/0ONs6fbBICs7B6T4fI YGB4ZH8yDTOK 
 S1GuLQ4zFpSNdOB1bdHYo3h8/gOmBWU3MdT6Mh7MK0LJ0kdRMnsJfrZmEQpn r0Pjv7yHLXeJ 
 RWVyQdn5z7UFaYWz9XILiyvQ+KU5HVnmzCZaWIL00sr+klslK6Ek/19u2+u0 I/3iNijl3NVW 
 VN1ThJVNvSaURpaNkAwaYX4fkn3DVEzYcJtwPaYyfsSpdMcGcfbsoJEqLz1Z P+w1TzjN2tme 
 VBJwo61S3KbSgliWIwjYciLwjaC347RI3XUG3YMqa8F4uMEF+SnX2ynSfplE gHFNR+9I0GYP 
 xsNenS/P++wrPY3Y2BD6/02VHyZdWBZ6OJy4leJVbX+qRO2ru17VNjpw6pFx cXvrC+xZOAvr 
 DvfpSI0MHP4Xnvkv4FDPtfC/P/txYPaNgSBxGlHcGjYt47tHImX8MJ2jOZX1 rxFyUeSoDMuZ 
 txwrS8TLoMzrPHYxbVk/bDlPONX42a6kCLjRVilukzIZXuxEArkzEVjcnCHH O0mJWxlHK7dG 
 DvbSyt85McY2uNvSL26nYXHFNm0BYU31P2GL8OgXl70Kr8yYgR9xoVFk4Cjb g24ZquLPoPFH 
 /MvecL8XmTX6gvMmB3tuzWEQMhRiE/Z1j+ihNlO3oqG+fPx+ARk/YojbvMfw Suu3wmsrvlKk 
 MetH7swTOT4BsPpJE3CjrVLcJm02LMBpBHJnIsjtbXWt2s1/eeaZkNhM5a2V wtctP4qDtM+U 
 H5on1SxuX8a2NSUizGWjyHl8Q9yuD0fWzDJl4BBOfuklnfoE1q0M93vhee2N JW7nYEODR3yN 
 8Bo/8suDseFISLk30Nu42khnF0Pc+rN6XElr1o/cmSdSbi0sMMcIuNFWKW5z zEhZ3fQTcONE 
 kH6qid1BemT/88OlEcVt8IIkN/w7feI2OObWgy2T52BTy6DoPLnl80xTBg4f rnq2YsrUpVi5 
 NNzvrYjb4G2lpY0o4SrLnSUygnxjhNRcx7mGJyKI2/FczVpYgl/c6r9PV9YP zhOJjWlelXkC 
 brRVitvM2xnvaHMCbpwI7NwlKixBZkN45umn/UL3vuJiyKwIclGZG470hyUE ic0xL2qmTjMW 
 lI2KjBlLxzNw+EQu5KpFuHvze/iXsL8/geGEFpQpcftL1NWOZ/zwjbRj9zKx A5+MoxVyVxPW 
 P6lC23UffMOfYPv9k8Zjbv3iVqS9S2PWD84Tbhh1zmijG22V4tYZtstWpJBA tiYC32A7jjYd 
 xNH2gcAFYL4BdBw9mLU8sylEm1BRwQvKLl68CLl4TIpbc3iCFL9OPjIubm92 ou7vp+DB2k8h 
 97/z+TNw6Ns2FxpbMkf6PYZPjGffSGRB2WWZ8WOWsSV0CVb+wzwUVjSLPfVk yO9H2C4WjRXc 
 OwdzJhaLraf1dHaBnltxYvAiuBRm/cjWPOFkG2fb0kPAjbZKcZseW2KpOUwg WxOBFsMo8n4W 
 LG/EBdNmCbe667FI5gPN0g5h2e7KSKnAZMiCFLTBC8xk/znRm5tWcWu1k/1Z O87q2TXUEen3 
 Adk3rN5EnjeGwfb3ccTbZ6TzGhYZERZiTm27WCZmHCLdV3dA9pBI5acn60e2 5ol4KPJcEpAE 
 3GirFLe0fRIIIpCtiUCJ2/y8p7Dvwo9GrfTPwZqHMkDcRnlgR3zoR7omWi7R KDlCA3KJps+M 
 rGy/K4Wf9OYqT65ME+a0wxbiNmNQjUwH01ehZm8Tmt58CcvvWi42LslOruVw zc7WPJGxLuCN 
 HEPAjbZKcesY82VDUkUgWxOBJm5vfxiP/3QOHm04i1uyQVqu0XvEJgxzxsXt aBcatA0a9M/D 
 BdPXouHLy3oKJZXjU4rhvFJsbx3UQxzCXiOEgvHZtkDbKWqGabMH6TwLnyNU q6c5l2iqwEco 
 x4q4VZeqdGFOzHfrLnEretQ3jHOe/airEanJat/Ase4rQfma02x4MYrP1jyR 3Vbz7rlIwI22 
 SnGbi5bKOqeVQLYmAt1z+xR+V/9z3LmwHt1C3WohCbf/HHtee8ovbm+216J4 4W50/ihlq1op 
 3opeKW4nlmP3598LEXBZpEFagDsrW3BFnBX+Gg+6GyLlEo2cI7TvlKinP5do WrtCKzwecZv+ 
 2mTvDq4Tt9lDbenO2ZonLFWOJ5GAiYAbbZXilkOABIIIZGsi0MXtWhz4ohmb bl+KPd2XtZCE 
 Oyub8YWW2F6kV9J2ZLqOgfZjeLvuFVRVPo3Fs+8Qi2kMcXtvLTq0oMTgDR7C XfMODgbkLjXn 
 Eo2cI7St1ZxuKf3mQ3GrM6a4Tb+txXOHbM0T8dSR55KAJOBGW6W4pe2TgN3E bX8/WiofwKLX 
 GvG7hQtRJUIL9F2bpLgV6Y0Ob8SM6StQ9eY7ONLyV+yrvH9c3GqpkoLFbaRr GrGvPFIu0cg5 
 Qvul5zaDi9sobilu7ThJuVEw2LEfWKfYBNxoqxS3se2CZ7iMQLYmAr/ntv9H XGl5EXfKONh7 
 tqPt6g2TuB0Rq8YXYMpmD66KfvGNnMauR2QaJMNzG1bcRrrmQ3TURcolGjlH qBaWQHGb8VFB 
 z23GkUe9YbbmCXtRYG1ygYAbbZXiNhcsk3XMKIFsTQTj4lbEHlxpEaEJ+Zi5 rVWIWPN2oyIW 
 tvVlPJhXhJKlj6Jk9hL8bM0iFM5ehZeeF1kVworbSNesw95TrRFziUbKEapv u6pCJNLfNfTc 
 0nObfiuL/w7ZmifirymvcDsBN9oqxa3brZ7tDyEgc6fKlFLHjh2zKR0jPZe3 E70jIsBW5hj9 
 7KvAvKMhNQ93zb/iX08di55LVMT3DnafgdcblNc0g2QobnXYMnevtEvJg0f2 CbhRMGSfOmuQ 
 CAE32irFbSKWwmscTUDugCVFhBNzpQZ2nP1zicrUXrIv5La7PKDtyiZ/eGSf gNoKWtooDxKw 
 MwGKWzv3DutGAhkkoHa9cuJOVwEYcySX6JtvvJHB3rfvrdRGFU7fati+PaDX TMU/86XL7j3F 
 +kkCFLe0AxIgAY2Amgyc7721b4fLFwvppZSeW8e/ZFjsBiWq5MsXPYYWoaXh NOW15UtGGuCy 
 yJQToLhNOVIWSAK5S0A9wKS3jEdmCUjhpvjLiZnHOAHpxVahGhS4mbcM5T1n 7HPm2fOOiRGg 
 uE2MG68iAUcSkLG3ynMoH2T0Hmamm8+cOePnzheLUOZm4S89uE7cajgzlhbf XeT4Vy9c8r98 
 sYiPH8/OHgGK2+yx551JwJYEpMBVDzS1yExOFFKASVFh95/PPvvM9nWUDOXn XemRVLHOkjXj 
 bCMPCSmsZMiM5KS8uNIuJUe722Qu1U+Oc8nVPAfIF10KW1tO16xUBAIUtzQN EiCBsARkWjCz 
 8FKigv/VxVUqf6R4oDfS2kCUnFSqtFT2AcsKtWk5/hlja80ueZa9CFDc2qs/ WBsSsB0B6clV 
 3hw5Ydj557+/8oo/pZmd6ynrJl8epFCjRywxk5efzCU/u/ezrF/j3r24v/g/ 5URdZX0lV4Yk 
 JWaXvMoeBChu7dEPrAUJkEAKCKjP1lz4kgKYLCJlBOSLjPQMy5dEHiRAAukn QHGbfsa8AwmQ 
 QAYIqN2s1Odlep4yAJ23sERAhfcwzZ4lXDyJBJImQHGbNEIWQAIkYAcCajJT 4pZZB+zQK6yD 
 9Naa43n50kWbIIH0E6C4TT9j3oEESCADBIIXv8mUZoxnzQB43iIqAXOGByly mcOYBkMC6SdA 
 cZt+xrwDCZBAmgnIFd1SOAQLXK70TjN4Fh+VQHCojLRR+dLFgwRIIL0EKG7T y5elkwAJZICA 
 Sg2lJjS1o5LM1cmDBLJFQNmj2hhFvXzxpStbPcL7uoUAxa1beprtJAGHElDe MbVzlfr0qwSv 
 TGXGgwSyQUCJWbV9sHrgMptHNnqD93QTAYpbN/U220oCDiSghIPaqUqJWxWq wIVlDuz0HGiS 
 Wkgm7c/8oFU7f3FhWQ50IquYswQobnO261hxEiABSUB+8lWLx2TyefOiHfPf SIsEMklAfTlQ 
 G01Iu1TbLnOr5Uz2BO/lRgIUt27sdbaZBBxCINg7GyxulVdXJtHnQQKZImAO lZH3ND9oZQYP 
 9dKVqfrwPiTgNgIUt27rcbaXBBxEQH3iVXG1weI2WGTYo+k+jPZ8hINNh+Dp +cF6lUZ74Dlo 
 3v74XTR7OtA7ctN6GXGc6Rtsx1Gjjub/DywiwbbEUY/0nZq+uptDZYLFrfy3 WvDIhWXp6N3r 
 GOw+A6+3M+bY0O3aNKYOt6CtoxcjPr1eke0+HfUOX6ZvpBcd3jPoHrye8puG tF+xONqOgYHx 
 8Z/yG2egQIrbDEDmLUiABNJDQIoDc0xtsLiVd5VCIysiYqgZGybeFpDAP7+8 Cf0YQ3/TWvH7 
 aVjZ1GsdTH8TVopP2+YNAeT/F5RU4cTAmPVyLJ455q1GkVFH8/8HXm6xLQOH sS4vH3Nq25Ee 
 KW6xUQGnWax7AkUHh8MEP2jly5jsO2bzSABu1Et8uPH1W1ihjbsFqPGORD1b t+vgMXUH7lv7 
 FjrFS2Nku09BvS2OiXTWIXz7BY+p1WhrHR//KWhtxouguM04ct6QBEggXQTC idt03StWub6e 
 BiyZcA9WVv9B+ywtfw56ejAaIG6Fd6n9JNpOdmNwzHAXRSpYidvSajR7vcIz 9REObF4kHuKT 
 MK+uUxeNvhH0ej/AkWYPOnpHoJUof9dxWpx/1rjHTYz0dvo9W5pn6JQHLR+c DPAOmR+qvn4P 
 XqvehQNdw3rtxgbR3eaBx9uD7iChHrY8o+5F1V7ReuMIV1f/ny7gdMsRHGz+ JKLHKlK9xz1d 
 wxj8sg2eYO92lLrH6lOrf5eLycwvVOEetDJUhpk8rBK1eN5YDw6snWO8AFoX t1MqGnBSjqnW 
 99FQuQgFE6ZgSX0Xfgyye99IOLv0ieFwFqc1T/H3YcdzXGOiQ9psm3/8jo9D Ub4Y280tnwZ6 
 pJMYR0rc+tuvzSviR3ivh/uCxnzAuD+PoQHZZt2jrLdfeZfNPMQLQgCbVni/ EV+rotTZYk/H 
 PI3iNiYinkACJJArBOwkbvUHx0PY3PAnEYJwFB/1DOti0y9u8zFt6hTxINU9 RwUlL6N1KIpf 
 U4lbzfurqVZc9WzFlAm6R3RspAOvr5pl8uzOwuo9HeIT699wZO094vdlqOu6 Ji67gAOripA/ 
 cT3e+bQZvyqZHHDNU41ncUPWMoLn1hdwn0komiqv173QvoEPQstr2IOXpo57 xzSBG7Gu4sHY 
 9z62muuUNw8/f++iwU63xLD3Cah3eLbR6p5OG3fjgzadPMOXPYaB5k24+65V 2PC0HAfWxa35 
 pUt/KRX2urAeXSeV9/JCFLtUXwCmYMH8YmM852PGst/CK8az5TEx2oWG4PHb 0IURbRxasWc5 
 xtSYtzaOlLgNeOk04AZ7jCOPnZ6gL1GKh+R/2fjbDCwtfxQzxDzxZP2BCPNU ai3GjWPu71KL 
 kKWRAAnYhYB9xK2a4E2fPPMextbjF4W0Hf9b4dIa/Ln1IxzatkQ8FO/Aovov cCsSTCVupy7A 
 4+VPYmX5CiyefQfyp6/Hvp4BdNSWag/0Tfs/xbmvP8DOZULA5pWjoecqLjU/ jztV+Ua4ROHa 
 /fjkzSfENXPxQvNFXPvbQay/XdTXEM/hxe1Z9DSUa56txdsOik+Xh1CzVNxH E7dnca4hQnkB 
 ntuRKHUdQlddmfaQ3tj8LXzDp7B73Sqs3NKMfr9j+3rk+/hF+W0oXLYTH3ae xoHKuaK8mdjQ 
 fD5K3eMID0nA2N34oE0AU1KX+IY+xNbimVjdeAat1QsSFrfirQ418mUs4NP8 F1HsMng8e9C0 
 +WFjPLfjK0tj4gb6mtajUIyrsuojwoO8F5uKJyH/9hfR/P4/aaETheW/w5m+ r9G8Sdrz/dji 
 OZ/kOFIvsMFhGfqLaqC4/REXGp+KMO6tiFvx8j7/WdQ2/B5V2nwRbp5KbUyx G8ccxW1SUwgv 
 JgH7ErCTuB1sbUBNze9xrOcKbpzfj9UyDvDeWnTcVA/DGVh3uE/3RCpvkd8r G4ZxgLg1hK0/ 
 5lZ8ji2fJh4aRShZWi6Ebzkeny8fIsY9rrRgkxCuBcv/gM/+8qIQuvdg/eG/ wTfWh7a3arBp 
 zRO6UJYeq6ji9iSaK2aK854Qolk+jILiViOVFyBue6PU9bzwvlUKD4/hzZ69 BD/b9jba+oMe 
 fDHrPQXLG78R3l5z/WLUPY1m7cYHbRpxhin6Ctprl6DwkX9G5+gwvMmIWxUr HyBue6LYZeTx 
 XLDmMAYsjYkraNsmRWuot1kXmeHs+UTS40h5bgtLK/BydTVqtJ9a7Gu/HCRu vwsa9zfQ27ja 
 eKm1Im5V/aONfX0uTNXhxjFHcZsq62E5JGAzAvYRt2rFthHnerMdO+/NR/5P qtB2PfRheKu7 
 Houkd6aiGUOxPLd+AaweiNIreVJ/0E1chqq95owKKiPDJXg2i4fnxEex7un7 NY9Qy5VhdNY9 
 JrwxM/H45tdw4Fg9NkyOJW4/xpE1M0zi1vyQ64pcXjhxG7Gu1zHQ/ifUbXkW ZYbgLli4G50/ 
 KtftD5brHSi+o9WdnlubDeU4q6NEU7AXci0O9EdebBn6Wf4mhlo2425jLA6Y QnOASHapxrMc 
 h99p9R4fz/vx10hjLGBMDInxKcalX9yOzx/9rS/7F3YG2rMhbhMeR+Oe29hh CUrcLsWe7lHR 
 QvX1RHp5g8XtNcPLbQ5LUItnjX6KWOc4uz3K6RS3qWPJkkiABLJMwD7i1hCT 8vNbowfe96pR 
 lifE6+om9PmCP2OewL5K+Rl1GlaIuNFLnh1YXb4KzzV2B2YWCIm5HTE8VPLB 0WV8oizG+vrj 
 8J46jj1ri0WZ6mEk4nNbt2Om5hHNx92bT2AYShAsFw+syxho3aHVMfGwBOVJ ClOeUfcpFW/h 
 TG+/8LLJEIpwde1FS6VcEFSK7Z5+3Bg5iVdKhEdZE+MqYMN6vQPFQLSQCorb LA/dJG//A855 
 DhkLN/+AmnIZYy4Wc9Ycw6n3/nv48SS/OxjZEvyey23PYfFU8RKatwQ726+Y vJfeKHb5oxFX 
 Ksa3FmZkHs/H8Y72RSXWmLgU9NnfCEu4/xW0ffjrCOI22pi3Mo7iEbcqbGIS itfswL7GXdgw 
 X8Xan/fH/t9d8SY+aT2IqtIphlBXMbdK3KqQpEjzVJJmYLqc4jZ1LFkSCZBA lgnYR9yGLugo 
 KN6Iph6xoCvsgjKxAGXVW+geveF/UIZ4U0LErRLJd+DB2k9xbeQzNKyd61+g Nr64xOiUq62o 
 ukc8uIXgrmq9LH4pHliHN46HAMx/FEtnizi/e7aj7aqof6RUYAELX2bg4dK5 IlZQPry+jlze 
 t62oMRaJ6QvKItVV5J79ci/WFxshEpoYF4tkxMIa6S/SD+v1DgmbiFh3itss D90U3l699Jk9 
 h7chsncy0NtbMLscNS0yNt68qPJ8FLtU49C86EuN5x+tj4ngBWVTl+KV1sGg 8IDAMCBfUuMo 
 HnErYVxES9Vjeuq0vGIsflgu2jNE67UzqCuTX3QkyxkomS9Dl8J5bmWihBjz VIosgeI2RSBZ 
 DAmQQPYJ2EfcGixC0nAFM9I/P57uFg+xlOBTab6sJn1X56s0YRYrYbQrtN7R yruJHy4Pm9oZ 
 pa4yXZeWlihSOxKst2xexLpbbHsCp7nxQZsAJvtfEtYuzYLzqzDjOZ4xYX0D inFYyYwjq8jH 
 MNh+THjGVZjTVRF68Ki2GLWq9YpeiDau2i1uNhHvPGW1nuPnuXHMMeY2fjvh FSSQEwRsJ25z 
 ghormW4CbnzQppupfcpP32Yg9mnjLYyc2oEHZdhS3hyUPjxH+0JU8NAutF+L kZ87S41w45ij 
 uM2SsfG2JJBuAhS36SbM8hMh4MYHbSKccvOa9G3jbC8ewtva48G+uh0io8JO 7Gn6GOfStPV3 
 KtrtxjFHcZsKy2EZJGBDAhS3NuwUVklb6CTjEaV98iABEkg/ATeOOYrb9NsV 70ACWSFAcZsV 
 7LxpDAJufNDSKEggmwTcOOYobrNpcbw3CaSRQLbErW+wHUeFd258wYVspCk9 0dF2DFoOTVN7 
 s1tdFBYG6GgPPAfN+W7fRbOnI3BP+jT2Q2JFq8+7B3G0fSBgu93Eygu8Su8j fUGM+f+DzsJo 
 z0diu2S1cCYVdwY9t6nBmHulhIxDY0we/AjnRi1PCLnXbhvUmOLWBp3AKpAA CaSGQLbErcqX 
 KT89T9nswVXZHLVxg0yPI3Y78lpOh5CCBSoqbZix05eeokcsACmpwokByxUJ 3ykDh7EuLx9z 
 atsD8/Am3YXj+X/DpW1KtviIqc0CCk4B+zAVdeODNtn+csT1EcZh/oTom0sk 3Pa0jc2Ea5S1 
 C9045ui5zZq58cYkkF4CdhC3+X9fh66bpi11TeLWN9KLjlMetHxw0pQyR3lq O4Vn9Xv0tntw 
 YMsj4zkkxW5AMl2YOS2Wb+QCTrccwcHmT8Kn3lEP1dJqNGsptT7Cgc2LRJmT MK+uc1yUyvQ9 
 3g9wpOkIWrwXMGJ2JkX6W8DOSqH9Gb6NMlNQjDr78/8aOUklKy0V2DAGv2yD R3meQ9KrqbRC 
 kt9NcZ9wjM05S3vh6/fgtepdONA1rDdApnhq88Dj7UF301oT+9TYqxsftKkh l+OlhIxDORbl 
 j0i9d0Nso9JxWv//MTnwAu1YS60lx2azBx29I/4vGZp9hxsXElWYsRl73OU4 4wjVd+OYo7h1 
 pi2zVSSgLdiRHko5sWXyMHtu8/PW4UDfdVxpeRF3TpyJ4pliYwThuT3V9wF+ ZWxkoHtSZ+Ep 
 sSPZDb+om4Gl5Y/6N1XQE6R/gyGx/eaDwlM6Y9Ub6BTibazvfWw1l5M3Dz9/ 72LgZ/yQDR/E 
 DmWerZgidifze1yDk8aLv81Y3YieG+JBG+lv106hZup40vtgD6tvIFwbu3HN Sp2DxO2otomE 
 OTG+9Dy/jNah8ziyVu5AVYa6LrEphu8CDqwqElsLr8c7nzZHYBwobs1eXN9I B15fJRPSy3ZN 
 QtFUtfNS6jZ2cOODNpPjz7b3ChmHppr6/hbRjpu+OGWySWMjkz0d2sunbrth xsVAW9DYPIVR 
 S+POtvSSqpgbxxzFbVImw4tJwL4Esi1upy1dirIJc7Cp5WuxNe5DyC+rxJYn xPabU7eiof4J 
 Len5C80Xce1vB7H+drXV7fjn+IL5z6K2YT8a/qv03E5G6fObsHr6JL+wBdS+ 7bOwsflb+IZP 
 Yfe6VVi5pRn9Zq+reqhOXYDHy5/EyvIVWDxb7Po1fT32abukqe00p6Cs+jgu 9HejedsSkbty 
 Bp5q+gp/a1ovdh0L97fzwuvZhJVCCIaGDqj95oPb+Aaa68o0MR+1zmHFrdjS dNlOfNh5Ggcq 
 54oyZmJD899wqfl53DnhDiyq/wK3hpqxYaI4b+1+fPJmJMaRxG1mtuR144PW vrNEBmsWKSyh 
 vAn9wlMb3o7fwp9/I7enFlt37/8U577+ADuXiZe3vHI09Fwf3zI4ZFx8F+S5 tThXZBBHJm/l 
 xjFHcZtJC+O9SCCDBLItbou2/xY7/34y5v22Eb8vmyK8pE3YL/eWlzG3o31o e6sGm9Y8oQtN 
 6SnUHnJK3E7B8sZvhAd2XOyq7SyfahKiUuM4hoHmyvEtc2cvwc+2vY22/uuB lAPErSFsA2Ju 
 v0Nzhdwi8wntgSmPW931WCTOubPy9/hDxL+14Eq0sISxcG1sxBkrdQ4rboOZ GNt9XmnBJvFy 
 ULD8D/jsL8JDPuEerD/8N/jC3l8yjiRuTwZxYMxtBoer82+lxuH8SpEXdnyB 50FPj76ddFg7 
 /hhNcs6YUISSpeXixbQcj88X4la8eK473GeI2wjjImBsWpwrHNoLFLcO7Vg2 iwTcSCDr4rb6 
 z2jZfD/yZ85B8UTpwfXigCZuN6Gu9jHhGZ2Jxze/hgPH6rFhcrC4NYSbSeQV zHsYpdPzkX/X 
 ZrQMiUBe7biOgfY/oW7LsygzRHLBwt3o/NHkug35HHoFbduU51N4eKDE7VLs 6dYes7jZVYd5 
 AeI23N+iidsf0FkXqY0W6hxW3AYzUf++BM9m0Z6Jj2Ld04L37S+i5cpwlPtH Ercf48iaGSaR 
 fwO9jasZc+vGySMdbY4WlqDdL5wdf6PPGROXoWqvOeOJnsHDHFIjX3b7zTHi IS+eVsZdOhqe 
 /TIpbrPfB6wBCZBAighkX9y24kLTOm1rSt0r+pUhbpdi5VLpjVkuxORlDLTu QJncyjLAcxtO 
 yH2B7voVorzJWFh7WgQlDKKlco4opxTbPf24MXISr5QIL7Am7m6NUwx5qI6I MIkFJtGmwhIm 
 48HN+9HqFTsPVcq/F4vQgfNGWEK4v/X5wxKmVLyFM6aFLkCv3taQNtZij5U6 xyVuRQxx63bM 
 1Djn4+7NJyCW50S4fzTPLcMSUjT0WEw4Amoczn4SW6qrxc5e6ud3aOmVX0zC 2fEIOmplWEIx 
 1tcfh/fUcexZWyz+rb9sWhG3+tjssTZXOLTnKG4d2rFsFgm4kUD2xa0X1w0P qJ41wRBcU/8b 
 mg5sHA8nmP8ols4WC83u2Y62qzcCvS/B3hi5iOt+cW7eCuz58geMfrkX64uN sAZjYdrqhi79 
 M6c6QsSt8vDcgQdrP9XPHbuIli0PG0JcikQhZre8jz65cjva34SgrjEWtAXG 3QrBfDhcG7eh 
 5fQfYtc5LnEr6n+1FVX3CK+2iE2sar0sfhHp/pKxCPbQFuLoLxABAiFg8dwM PFw6V8QbqxeN 
 1IwiNz5oU0Mux0uJmApsAWq8I3rjQuxYZhb5DA1r55rG5iysDlhQFuGLRsDY PIURK3NFjiOO 
 VH03jjnG3DrUmNksEsiWuLVGXqX6Ual/rF0V9iyZukpLKZTERg9awapOpwPS Den3jP63Hy4P 
 CzkafERpY8rqHI1bgoyN9GKnuwfDtCmJfjIudeODNnlqbi9B2XK8Y/wmAsZm Rsad/frKjWOO 
 4tZ+dsgakUBKCNhb3KakiSwkBwm48UGbg93EKjuIgBvHHMWtgwyYTSEBMwGK W9qDHQm48UFr 
 x35gndxDwI1jjuLWPfbNlrqMAMWtyzo8R5rrxgdtjnQNq+lQAm4ccxS3DjVm NosEKG5pA3Yk 
 4MYHrR37gXVyDwE3jjmKW/fYN1vqMgIUty7r8BxprhsftDnSNaymQwm4ccxR 3DrUmNksEqC4 
 pQ3YkYAbH7R27AfWyT0E3DjmKG7dY99sqcsIUNy6rMNzpLlufNDmSNewmg4l 4MYxR3HrUGNm 
 s0iA4pY2YEcCbnzQ2rEfWCf3EHDjmKO4dY99s6UuI0Bx67IOz5HmuvFBmyNd w2o6lIAbxxzF 
 rUONmc0iAYpb2oAdCbjxQWvHfmCd3EPAjWOO4tY99s2WuowAxa3LOjxHmuvG B22OdA2r6VAC 
 bhxzFLcONWY2iwQobmkDdiTgxgetHfuBdXIPATeOOYpb99g3W+oyAhS3Luvw HGmuGx+0OdI1 
 rKZDCbhxzFHcOtSY2SwSoLilDdiRgBsftHbsB9bJPQTcOOYobt1j32ypywhQ 3Lqsw3OkuW58 
 0OZI17CaDiXgxjFHcetQY2azSIDiljZgRwJufNDasR9YJ/cQcOOYo7h1j32z pS4jQHHrsg7P 
 kea68UGbI13DajqUgBvHHMWtQ42ZzSIBilvagB0JuPFBa8d+YJ3cQ8CNY47i 1j32zZa6jADF 
 rcs6PEea68YHbY50DavpUAJuHHMUtw41ZjaLBChuaQN2JODGB60d+4F1cg8B N445ilv32Ddb 
 6jICFLcu6/Acaa4bH7Q50jWspkMJuHHMUdw61JjZLBKguKUN2JGAGx+0duwH 1sk9BNw45ihu 
 3WPfbKnLCFDcuqzDc6S5bnzQ5kjXsJoOJeDGMUdx61BjZrNIgOKWNmBHAm58 0NqxH1gn9xBw 
 45ijuHWPfbOlLiNAceuyDs+R5rrxQZsjXcNqOpSAG8ccxa1DjZnNIgGKW9qA HQm48UFrx35g 
 ndxDwI1jjuLWPfbNlrqMAMWtyzo8R5rrxgdtjnQNq+lQAm4ccxS3DjVmNosE KG7dYwNnzpyB 
 fIDlwk/l888jf8JteHXXqzlRX8n0448/xrVr19xjUGypowhQ3DqqO9kYEnA3 AYpbZ/e/FFvy 
 oXVfcbEmFvmTfgZSkFPkOntcObF1FLdO7FW2iQRcSoDi1rkdf/HiRTzz9NOa oJXiVoou6b2V 
 fc6f1DN48403/C8Rkrfkz4MEcoUAxW2u9BTrSQIkEJMAxW1MRDl5gvQcKm/t 9qoqehIz1IuS 
 uxS56oWCAjdD4HmbpAlQ3CaNkAWQAAnYhQDFrV16IrX1MMesprZklmaFgIy/ lQJ3SVkZXyys 
 AOM5WSdAcZv1LmAFSIAEUkWA4jZVJO1TjupTGZLAI3sEpMdcClwpGniQgN0J UNzavYdYPxIg 
 AcsEKG4to8qZE5Wokn3LI3sELl265PfeZq8WvDMJWCNAcWuNE88iARLIAQIU tznQSXFWUX0O 
 j/Mynp4GAupFQwpdHiRgZwIUt3buHdaNBEggLgIUt3Hhsv3JcgGTFLdSVPHI PgE3CobsU2cN 
 EiHgRlvlJg6JWAqvIYEcIEBxmwOdFEcV2Z9xwMrAqW4UDBnAylukgYAbbZXi Ng2GxCJJwA4E 
 KIbs0AupqwP7M3UsU1GSGwVDKrixjMwTcKOtUtxm3s54RxLICAGKoYxgzthN 2J8ZQ23pRm4U 
 DJbA8CTbEXCjrVLc2s4MWSESSA0BiqHUcLRLKexPu/SEXg83CgZ79QBrY5WA G22V4taqdfC8 
 UAKjPfAcbNImef3nXTR7OtA7cjP3aWW4bb7BdhxtOgRPzw8pY0cxlDKUtiiI /WmLbvBXwo2C 
 wV49wNpYJeBGW6W4tWodTjhvqBkbJt6mrbj2/5Q3oT/RtvU3YaW5LOP/C0qq cGJgLNFSU3vd 
 wGGsy8vHnNp2xCW5M9y2MW81iiZMw8qm3ujtj6M9FEOpNaVsl8b+zHYPBN7f jYLBXj3A2lgl 
 4EZbpbi1ah0OOM/X04AlE+7Byuo/+L2tBz09GDXa5hvpRccpD1o+OInuweux W6wEYGk1mr1e 
 eL0f4cDmRUI4T8K8uk5dTPpG0Ov9AEeaPejoHYFPlTo2gK4P3keL9zyGBs7i tPeMds+xwfH/ 
 Fxcb/+4c9wZHKk+71QWcbjmCg82fjNffqGNRtRdKboc9L7i1CbXNXN/v0dt+ Em0nuzE45m+1 
 qGN4xr5+D16r3oUDXcP6ORqPYQx+2QaP2Rsepj2ROopiKLYJ59IZ6enPmxi5 cArvvVWHV2rq 
 8HZzBwZM9mobPsFfUg63oM17NmBsZbqubhQMmWbM+6WGgBttleI2NbaTE6Xo 3sGHsLnhTzjY 
 dBQf9QghpYTtwAf4Vclkk1d3Fp5qPIsb0VqmBKDf++vDVc9WTJmge0rHRjrw +qpZAWWu3tOB 
 4WHz7yehaKq8r/Ra9qC/aa3x/9KDOWb8ewFqvEIYRyhvxCdEZd/72Gquf948 /PzQfrw8ddxL 
 XVR9CqPhznvv4rjoVu1NqG2n0a3VfwoWzC9GgebJzseMZb+Fd+gmfFEYmz23 +v/nY9rUKUYZ 
 t6Gg5GW0DrShJqA944I9XDelRwzlhKk7spKp78/r6Dv+Eh7MK8KDazaj+uXN WFcyA0WP7ECb 
 sNeEjiEPalbvgCfV12vj8Q4Ul67AyvInxc8KLJ59hxgXSXwlSrKubhQMCdkE L8o6ATfaKsVt 
 1s0uUxVQQtEUkpD3MLYevygk5HWca3hCCLG5eKH5Iq797SDW3y7OixWyoATg 1AV43PTAyZ++ 
 Hvt6BtBRWyrKXIBN+z/Fua8/wM5lRcjPK8XPnisVom0KFm87iLbWQ6hZKn4f U9z2RyivHA09 
 Q+iqKxNlzMLG5m/hGz6F3etWYeWWZvT36aETuuf2WuTzxp2reock1LbHsPmX yzQxX7i0Bn9u 
 9aBp88OirXdgUX07vorCOFTcijKW7cSHnadxoHKuKHMmNjR/56+X2RNNz22m xlB275Nqcevr 
 O4Rnpz+AjYfP+79q4EYX9pQVYW7tGfyoNfc6BrvPwNvRi5HgMTI2iG7ji4uf jDZu1uJAv/87 
 if71JeHrjZK1cvWXXP9xtRVV9xSZQnmi1DVcO0LqGl//ulEwxEeIZ9uFgBtt leLWLtaX9nqM 
 YbC1ATU1v8exniu4cX4/Vsv423tr0SGdNGN9aHurBpvWPKF5RLSY3LjEre5J kdfp3pQeHCif 
 Jv5dhJKl5cLTUo7H50sRq8T1auzrlX7hG+htXG1B3HZFKG8G1omH80BzJWao mN/ZS/CzbW+j 
 rV+EVgR8xh+LfF4w/wBxa7Vtygst69SnlaiHgggmaw6Lz72RGYeK2ylY3viN DMwI9GYzLCHt 
 I8WuN0ituB1DX9M6FMysgfe6WbWKMIXeTpzuHsTY6BdoXDsXhbNLUV46B4Xz X8Ah8bVH+7oy 
 bzlWqi8l4oV1e+sgfDfbsfPefH2M5z2HI33foKXqMfFlZh4Wi7FfUPISWvp+ sH79gMl7HE7c 
 3voCexbO0sda2Lpe07sy3N/OfhxYV/O9LBqAGwWDRTQ8zWYE3GirFLc2M8L0 Vcfwaqg4NfUg 
 +kkV2q6PoLPuMeFhnInHN7+GA8fqsWFyHOLWL4KvoG2b8jKe1MXoxGWo2mvO qPDfsUwToU8I 
 j6uM640mbpWnVXpsDHEbUp7KMHAdA+1/Qt2WZ1GmRPbC3ej8xuy51T1RYc/7 McgtFRKWYKVt 
 TWj4r4+Me1nF3W5112OR9ORW7MdfozAOFbdqcRnFbfrGRG6VnFpxOwJv9YIo L7A/4kLjUygs 
 24PuG2Js+IbgrXkEhWsP4IwUtxPLsfvz78XL12Ux5hfgzsoWXJE4/d7Q6xhq 2Yy77/812oaF 
 SI37+qAFqVq507C4YhtqqqvFzz9hy5pFKC57Fd7haxHqKl4ofZHaIf6mfdUx e5njswc3Cob4 
 CPFsuxBwo61S3NrF+tJej0vwbJbCU4QJNHrgfa8aZXlCdK1uQp+v1/CKLsee 7ssYaN2h/S2/ 
 fD86PTuwunwVnmvsDs02ECIAjQemFmLQZYQRFGN9/XF4Tx3HnrXF4v4l+C// RX6qV2EJB1FV 
 OsXw3J73x+zeXfEmPmlVf5PiVoUlBJe3VNS5Fy2Vc0QZwoPk6ceNkZN4pUR4 kW9/ES1f7NfC 
 EqZUvIUzvT2Rz7tyK7AHEmpbKSqff9wUlnAC+yqFgBA8VjQexzuaJzuYsZ6t Il5xq7fHtEAv 
 jP2kVgyl3UB5gxgEUtufV8X4FIs/I36d6cORNbNEOM0XUCNDs9Gp23CgUYhb 9cVHfVlQ5fjF 
 7SXtRbewtAIva2K0Gi9XlKLQ8vWxxO3L2LamBAXTN2oe4vB1rYZXfC2J+Lde ilsOOncQoLh1 
 Rz+7tJWhi64KijeiqUd+uruBvsMbxz/rz38US2dPQv49W7Hv989oYi1sjGeI AFRexjvwYO2n 
 uDbyGRrEZ019YZX8mYXoC8rEIrJrZ1BXNsM4fwZK5s/UBLm+oCx8eXJB2eiX e7G+2AinUPdq 
 6MKoELo1xudTuaBsJNJ5wVaRUNvUgjLzYjCxoGzVW+ge/TEC4+1ouyr6xpQK LDAtWJDnNqA9 
 XFDmpsH8Wcdn2riQD6rkj1u40vIi7pQvgAEvdrontrCiFr8tn4klDV8Ziy2N xaJKnPpFsWGf 
 IeJ2QLxM3487y6vxjj8PtviCc9SLjneEOI55fThxGxxz68GWyXOwqcUrXs7D 1VWKW/niHuFv 
 FLfJmxFLyAkCFLc50U2sZFIEZCqtjtMibVdwGh091i7090ndTVysytVTffkP ox6nu/txISBD 
 gjhD+1t7hHRkEcqTBWsLXGRKsqB7iTr8cHl4fNFMxPPibWtwXcxC9CttIY4W u+gvNlWMg9oT 
 odqp9fTFy4bnp4KA7MM333gDzzz9tD9ePTXiVtTu2inU3F+EspqPjPRfwj4/ /x2WT3wAL7Sc 
 R3f9UhSu2o8LMjWYT3hiqxbh7s3H8YUcrzHF6TUR07sehQ/tRpcMa8BVUd4K 3KnCGmJeb0Hc 
 jnlF9hD5lag7Ql1PYFgkOgzfDvG3FC0o27J5C65dM+J7U9HpLIMEUkyA4jbF QFkcCcQmEOSZ 
 jH2Bjc+wV1sobm1sKhGqdvHiRRw7dgzbq6pMiy8DN15JmbiVL55djdg435QC MG8u1jd8pmVG 
 0FPvzUHR/MfwpFxQZl4QFkmcDp/AlrvEojK5oOz854EL0oor0PjlZX1BmZXr Yy0ou9mJur+f 
 YnwlCldX/WU6fDvE38x1TWJBmfSmr161CrLveJCAHQlQ3NqxV1gnhxO4hZH2 P+KV6lrsa7+c 
 420V4RE9H4kcwqndRjdRKBS3iZLL3HXS4/fxxx/j1V2vYkmZTGcXtIOg6d+v 7tqVwrAEUxv9 
 X3NMm6WoP0f80hOF0dgQ+v9NfaUJWshqBW3A9VYuMM6JVtdIf0v0XuKWSjD8 fONGrV9mzZyJ 
 M2fOxFFhnkoCmSFAcZsZzrwLCZBABghQ3GYAchK3kII2WMxKj204z60UvqmN uU2i4rxUI2AW 
 DOr/UxcTTcgkkDoCFLepY8mSXElALIwa6MCxg00wb+srUfgG23HUvLBEbp8Z lNhdPyfFXs/g 
 bTub3kWzeTvbBPspLXVNsC6RLqO4TTHQFBcnxa2MpZUxtbKv5CE9uZXPP+/3 BN5XLDOM3KZ5 
 d9mfKe6AJIsLFgyyf6T3VvaX7EPG4SYJmJenjADFbcpQsiBXErh2GjsfMuL3 glIM6RkAgj+5 
 3oH71r6FzhE9WXtgloAgggOHsS5P39Y3ro1BVdaDoHsntW1nrLrapPMphmzS ERarIWM2H/nP 
 izVxJGM41QNJCiV5sD8tgszQaeEEw6VLl7S+k30o+5JxuBnqDN4mKgGKWxoI CVghIOPXvB/g 
 SNMRtHgvjG/LGZI+a7wwJW6nVDTgpMxo0Po+GioXaflul9R3iWRkwrvb78Fr 1btwoOuKvmWn 
 V8YAfo/e9lZ4PXvGt9FV8XN+z6/KQhAmZlDVqbQazVomhY9wYLPI7zlhEubV depCWbWn2YOO 
 4NyxMrNCmwce73kMDcg66ZkYxus6rDcyAhPfSC86tGuGMfhlGzwp8Bpb6SKK IauU7HGe9Myq 
 EAXp0ZUiSXltlUCiuLVHX6laRBIM0mOrQk6kJ1f2LQ8SyCYBitts0ue9c4PA aBcaVs0yxQqK 
 PK6rG9Ej0wpNNXlmI3huzfly1da0+Qvr0S0yxY97bnuMLWdnYGn5o/78u+rh X/Trvdi3WubC 
 lRs4jMo9brFvudwNrQJHBsKlEDLvtmbk65yge4HHtBXh5vbouXjHV4urv6mt dfWdwwK8zJGY 
 iBRI+nnmvLdye+KX0ToUl/85IdugGEoIW0YviiSE1MNIiiR1sD8z2jUxbxZL MAS/sMQskCeQ 
 QJoIxLLVNN02q8Vyh7Ks4s+1m4vNHmTuSuFtLas+jgv93WjetkR4X2fgqabz wpupb3Ubbtcj 
 5bkN2AxCy1Mpzp8qk62HE7dCCM5/FrUN78JzwuS5FZljBw5XiHrInb96xM6e zdgwUey2tlZu 
 txnEVNVp6gI8Xv4kVpavwGK5Pe/09djXM2DsoiZ2bdv/Kc59/QF2LisSaYzK xdbAw9qWnuM7 
 qR1CzVLxN233NbO4/ToqkxtGOEbhsp34sPM0DlSq7Ym/S3vnUwylHXFSN5Ae 2XCfsKXXVr7I 
 Sc+tOW6T/ZkU7pRfbEUwyD6ec6/+giz7mnG4Ke8GFmiBgBVbtVBMTp1CcZtT 3ZXtyn6H5gq5 
 YOIJIf70VD+3uuuxSEzc2t7y8YpbQ5RGFrdTsLzxG32HJKNsJY59IgZ3vRC0 Bav+iC+Oi52W 
 xO5nG5u/NXZTMnEKELeGsBX11WNue4xth4tQsrRcCN9yPD5fCtgZWHfYG9TW G+htXB1G3J6M 
 yuSSJm5VOzKbB5diKNvjJfL9ZcootfhIZkgwix61oExmTTAf7E979adVwWBe JCiFrlo8aK/W 
 sDZOJmDVVp3EgOLWSb2Z9rYocWuEA4j73eyqw7yExO1NDLVsxt3i2sKKZgyJ skLDEnQvqXYE 
 iVv4vkXzBuERmfgo1j19P/JDthE1YIQI7ivanvf5E2ZiQ/NJXdxOXIaqvWJr UH82B5mx4WtD 
 tKq2Xse5hieiiNvwTHRxq9pBcZt2E82BG8jsCCrEJpKAlam/gg/l0ZVimEf2 CcQrGKL1e/Zb 
 wxo4mUC8tuoEFhS3TujFjLVBhSVMxoOb96PV68G+ygXiQV0svKZ9lsISCksr 8HJ1NWq2PYfF 
 U+VORkuws/2K1gIr4nZKxVs4oy36uoUrLdJjq8f5ap7jcBxCxO0IvNWyzlJw dhlhCcVYX38c 
 3lPHsWetTL0kheqwEW4wCcVrdmBf4y5s0HZyihSWEJ5JYAYIituMmaoNbyQ9 eGob3UgePOnV 
 k+EIkbx70tbDCV8bNtfxVVIedvnSYfWQcbjKYy/jqRmmYJUcz0uGAMVtMvR4 rTsIjF1Ey5aH 
 RSyqWjwmRN2W99En95+3EJZgTlpfMLscNS0XRQStfkQVtyMnUVOipxnzx+1e acGm22U95mBT 
 y2B4/iF1UgLzDmPbzs/QsHauqT3jC8og21r1mJ7CLK8Yix+WsXNhFpRFYUJx 645hEauVUqym 
 IvZSbcvLT9uxiKf378qLnsiLhjnWmtv2prefWLpOgOKWlkAClgio1FunQ1Nn Wbo+0ZNu4ofL 
 w34xDN9XaCgTgvee7Wi7GrySLJ57qPboab4MqY3B9mNiUlCbSlxFV92jQtzO RVVrOB9xtphE 
 bidjNOOxgfSdK0MP1Eud/DSdzKH6VHqAeWSPgHrJSDTNl/TYqjK4bW/2+tEt d6a4dUtPs525 
 T0Db1EF6bcfz5Ka2UbcwcmoHHpT3yJuD0ofnaN7dgod2of1aMkI6tbWMVhrF beZYh7tTugSM 
 +hxuThOW3Za66+4qdjYVLxjcttddtpOt1lLcZos870sC8RIYace+mh2oa/Tg nLHDWbxFxD5f 
 eGN7RFxx3Q7UVO/EnqaP03iv2LWJ9wyK23iJpe784N3GUrlTlTl2VwrdeGI+ U9dC95Vkzkks 
 46JT1afcttd9tpTpFlPcZpo470cCJJA2AhS3aUMbteBMLBoyC1wZ8iC9uPK+ ss/5k1oGMm2b 
 5Kt2jJNxtqkStsqQuG1vdsaqW+5KceuWnmY7ScAFBChuM9/JattVKTiD03yl ozbyoaVEl3mx 
 Jv/ftFuif/Frcr+TnCXvdGU44La96RghLFMSoLilHZAACTiGAMVt5roy2543 2dfjeZrNOZvt 
 9//mmOFcqbP03mbq4La9mSLtnvtQ3Lqnr9lSEnA8AYrbzHSxebcxKdzS5dnL TGvSfxc3Pmjj 
 pSrDHopnz+G2vfGC4/lhCbhxzHETBw4GEnAoAYrb9HcsV7vHz9iND9r4KUF7 SVJebm7bmwhB 
 XqMIuHHMUdzS/knAoQQobtPXsWbhwTyl8XF244M2PkKBZ3Pb3mTo8VpJwI1j juKWtk8CDiVA 
 cZuejg1O88VUXPFxduODNj5CoWebQ1+4bW+yNN13vRvHHMWt++ycLXYJAYrb 1He0ebcxbqKQ 
 GF83PmgTIxV4FbftTQVFd5bhxjFHcetOW2erXUCA4jZ1ncw0Talj6cYHbaro pWvXu1TVj+XY 
 k4AbxxzFrT1tkbUigaQJUNwmjVArgB6z1HBUpbjxQZtagtByKKtcxjImlwcJ RCPgxjFHccsx 
 QQIOJUBxm3zHmncb215VxTRfySN15eKWFGALKYLb9qaDqjPLpLh1Zr+yVSTg SgIUt8l1O1ep 
 J8cv0tVufNCmhySQ7c1D0tUulptaAm4cc/TcptaGWBoJ2IYAxW1iXSHjGlev WqV99mV+0cQY 
 8hNp6rlFK9G87bP82sCDBMwEKG5pDyRAAo4hQHEbf1dKZlLQSmHL3cbi52fl Cjc+aK1wSfYc 
 btubLEHnXu/GMUfPrXPtmS1zOQGK2/gMwLzbGBfpxMcunrPd+KCNh08y5zIH czL0nHutG8cc 
 xa1z7ZktczkBiltrBsD0StY4peosNz5oU8XOSjncttcKJXed48YxR3HrLhtn a11EgOI2dmcH 
 e7rkv3mkl4AbH7TpJRq+dC6IzAZ1e97TjWOO4taetshakUDSBChuoyM0p/ni lqZJm5vlAtz4 
 oLUMJ8UnmrftZSq7FMPNoeLcOOYobnPIQFlVEoiHAMVteFrm3cbkwjGuLo/H qpI/140P2uSp 
 JV4CNyFJnJ1TrnTjmKO4dYr1sh3JEfjkE6ClJfQnuVKzejXFbSh+5gXNqklq N3fjgzbb1BlX 
 nu0eyO793TjmKG6za3O8ux0IrFgB/J0YCuF+Xn3VDjVMqA4Ut4HY+Ik2ITNK +UVufNCmHGKC 
 BXLb3gTB5fhlbhxzFLc5brSsfhIEzp0DnnpKF7W33Qb88pfjP4sW6b+Xv8vR g+J2vOPMi2vk 
 RM8jewTc+KDNHu3QOzOXs516IzN1ceOYo7jNjG3xLnYj8Oyz457af//v9XAE 81FfT3Frtz5L 
 oD7mtEizZs6EfLDzyC4BNz5os0s89O4Mz7Fbj6S3Pm4ccxS36bUplm5HAkrY /of/ANTUANKD 
 G3y89BLFrR37Lo46yYU0arcxuZ2ufKDzyD4BNz5os089fA24ba9deya19XLj mKO4Ta0NsTS7 
 E5g/Xxet/8f/AXz6aeTaynAEhiXYvTcj1o+xhfbtOjc+aO3bG9CyhcisIfJH il0eziPgxjFH 
 ces8O2aLIhE4elQXrNJjK8MOZCiCzJIQ7lDiVnpwc/RwY8xt8Kpwpvmyn/G6 8UFrv14IrBG3 
 7bV7DyVXPzeOOYrb5GyGV+cSgf5+XdgGZ0UIlxFBLTR7++1camFAXd0mbpnP MzdM1Y0P2lzo 
 Gcan50IvJVZHN445itvEbIVX5SoBGYoghet/+k/6j8yK8K//GtoaFb4QLXTB 5gzcJG7Nu41x 
 JyZ7G6YbH7T27pHA2nHb3lzqLWt1deOYo7i1Zhs8y00ERkd1D6/MonD5cs62 3C3ilg/j3DJR 
 Nz5oc6uHAOaEzrUei15fN445iltn2TBbkwoCMg+qDF2Q3tscPpwubs3pjGRW BBmWwMP+BNz4 
 oLV/r4TWkGE+udhr4evsxjFHcesc+2VLUkFAem1lJgUpbnM4JEGicLK4lW2T eWvlCu/K55+H 
 jBfkkRsE3PigzY2eCa2lHFcqXZgcb9KjyyP3CLhxzFHc5p6dssbpJKAWksn/ 5vjhVHGrJmop 
 bGVIAo/cIuDGB21u9VBobZlaL7d70I1jjuI2t22WtU8VAemllQvMVA5cmVkh xw+nidvgNF/0 
 IuWmgbrxQZubPRVYa27bm7u96MYxR3Gbu/bKmqeKgDkU4bbbcj4cQWFxkrhl Hs5UGXv2y3Hj 
 gzb71FNTA/mCKXf7k19NimfPYZx7arCmvRQ3jjmK27SbFW9gewJqcwfpuXXQ YVncSq+13NAi 
 3DbENuARvIMS42tt0ClJVMGND9okcNnyUm7ba8tuiVgpN445itvcslHWNh0E 5CYOOb7Vbjgs 
 lsStFLXmTS1k+jMp8p99FpC7tMkfKf7lecE/6egLU5nBi1m421iagWeoeDc+ aDOENqO3MeeW 
 lmKXL50ZxR/Xzdw45ihu4zIRnuxIAitW6AJPbsnroEOJ23cbG3VhWlOji1Yp XlVGiODd2uL5 
 9y9+kTZa5jREj/znxfz8mTbSmS/YjQ/azFPOzB0ZLpQZzsnexY1jjuI2Wavh 9blNQIo9Kejk 
 pg0OWESmdYZsh9g2+PtHH0XXv/t3odsNKwEr44vVTm1W/nvPPYFlyWukV1fG LKfwYAL5FMK0 
 YVFufNDasBtSViVu25sylGkryI1jjuI2bebEgm1PQG67q4Rtjue09YvaJUtC xOzV//1/B6R3 
 WoUYfPJJ4l0jOcl7yPAFJZLli4HcxjgFnm/zbmNyQubhPAJufNA6rxdDW2RO 0cexa68ed+OY 
 o7i1lw2yNpkkIMWYFGhp/LyesebItkiRqcS6yNPbt2sX7vn//J9Iy4NGbkss 7yl3cTOHMkyd 
 Oi6i42i82fsjdxuTIRU8nEnAjQ9aZ/ZkaKv41cWePe3GMUdxa09bZK0yQUCJ W+nRzNVDhB9A 
 CkolMKVQN8IELC0oS1W7ZUxvcNiCrJeFUA9z/kyZZogLU1LVKfYsx40PWnv2 RHpqxW1708M1 
 mVLdOOYobpOxGF6b2wRy2XMrRa2MmVWiVsa/BoUbZFTcKkuQYQsy+4TaEEOG L8iXB+npDXNw 
 56PcHkKJ1N6ND9pEOOXyNcx0Yq/ec+OYo7i1lw2yNpkkoMStjEfNpUPVWwpb GRYgvaZhjqyI 
 W1UP6T2Wi/VUbK4MmTDVM3i3Mab5yiUDTK6ubnzQJkcsd6/my6s9+s6NY47i 1h62x1pkg4DK 
 8SoXQ+XSoeJcpfc2ypFVcavqJTeGUKnWZPox4cHlZ8tcMrbU19WND9rUU8yd Erltb/b7yo1j 
 juI2+3bHGmSLgNp2V3oXLcSGZquaIfdV4QgRPvWr820hblVljCwO1yZMwNJp 07TtO5n43TYW 
 ldGKuPFBm1HANrwZt+3Nbqe4ccxR3GbX5nj3bBN46aXcypggvbUyHEEu3opx 2ErciheJvxUU 
 aHXv/Z/+J/x1795Y1effHUrAjQ9ah3Zl3M3itr1xI0vJBW4ccxS3KTEdFpKz BJRYFKmzbH9I 
 T7NK9xUhztbcBruI20uXLkFmQbjjP07AX/63/00X57nA2/YGkZsVdOODNjd7 Kj215ra96eEa 
 rVQ3jjmK28zbGe9oJwJSMErvrYwNtfshMxGoRWQW6moHcSvrMGvmTC0MofL5 5zEqOcswEPmT 
 4p3NLCDhKTYg4MYHrQ2w26oK3LY3s93hxjFHcZtZG+PdSCBxAsrLbHHTiWyL 24g7FskFfFKk 
 W/A+Jw6LV9qVgBsftHbti2zWi9v2Zo6+G8ccxW3m7It3IoHkCMS56US2xG3w Q0vuWhRwSHEu 
 xW2MbA/JweLVdiXgxgetXfvCDvXitr3p7wU3jjmK2/TbFe9AAqkhkAPi1tLn RtUOGQ7Cw3UE 
 3PigdV0nx9lgbtsbJ7A4T3fjmKO4jdNIeDoJZI2AzcWtOWG7XBUd8VCxw7mW XzhrHe+sG7vx 
 QeusHkxPa5j/Oj1cZaluHHMUt+mzJ5acawTk9rV2XuSkxK3c+cvCkamwhLi3 2pSM5YIyma+X 
 h+sIuPFB67pOTrDBcc8lCd7HbZe5ccxR3LrNytne8ASksJVxoHIXLelZtOOh FpRZ3C44E+LW 
 7G155D8v1nYfs3RMnarzjrERhaWyeFJOEXDjgzanOsgGleW2vantBDeOOYrb 1NoQS8tFAlLM 
 Hj0KFBbaOwer2i7YJuI2qTg5Y8cyyJcKHq4i4MYHras6OEWN5ba9KQIpinHj mKO4TZ39sKRc 
 JKAEo/Qiqh+7bjCg6vqf/pMl0un03L75xhta7lr5I70scR8qY8KrUWJz4y6U F+QCATc+aHOh 
 X+xYR/O2vXPunWX9y5AdG5PFOrlxzFHcZtHgeGsbEFCbOPzyl4D6+dd/tUHF wlRB1svi1rvy 
 6nSI2+CHjbxHQocUtbItFuOHE7oHL7IlATc+aG3ZETlUKfPLtNzhjEd8BNw4 5ihu47MRnk0C 
 2SMghbgUhBYXYqVa3Jo/Ez7z9NOQQjfho6lJb4vFEIuE78MLbUfAjQ9a23VC DlaI2/Ym3mlu 
 HHMUt4nbC68kgcwT+A//QReFFo5UituUL/BQIRZMB2ahJ511ihsftM7qwey1 xlIe7exVz7Z3 
 duOYs/aUtG2XsWIk4DICKstAf3/MhqdC3Erv7PaqKi22dtbMmQjZbSxmLSKc oEIsLMYPJ3ob 
 Xmc/Am580NqvF3K3Rmmbk3IXScyau3HMUdzGNAueQAI2IhBHloFkxW2wl8Ry mi8ruM6d0z3Q 
 FLdWaDnqHDc+aB3VgTZpDLfttd4RbhxzFLfW7YNnkkD2Ccgta6UotJBlIBlx m/b4NpVXmOI2 
 +zaV4Rq48UGbYcSuuV1S6QhdQ4mpwFzU1WwqCeQoAbUQy0KWgUTFrdw6N6k0 X1bQMubWCiVH 
 nkNx68huzVqjLl26hNWrVmlzVlwbyWStxpm/sRvHHD23mbcz3pEEEiegYlXn z49ZRrziNqMP 
 CblpBrMlxOxDJ57gxgetE/vRTm3itr3Re8ONY47i1k4jlHUhASsELKYDi0fc mj/vVT7/fHJp 
 vqy0QeYUlu2oqbFyNs9xEAE3Pmgd1H22bkrKs7rYurXWK+fGMUdxa90+eCYJ 2IPAPffowjDG 
 1rVWxW1WFmaoNth1wwx79LQja+HGB60jO9KmjZILX+VuZjJMIel83DZtY7zV cuOYo7iN10p4 
 PgmYCMiJVE4c0tuZqZ/37rtPE7c9EybgldWrI973maef0Sb4JWU/jXjOz557 DrcX/F+44/8q 
 FA+CZzLShq3inrL+Q//r/2rpfpKvDJngEZ6AZJNpG0zG1qU96sIjM/aWTF3V tZJvSrOF5Kgx 
 yy88crewVDBNZxk/37gRM8ULtLSz/6+Y29avW2f7OkseMu2i9D6ner6juM3R Acdqk0CmCcgH 
 nZyM1MKrTP532v/5H9H17/6d7r0VPw3/y/+CO/7jhKzUJZF2b/x//b+1eu// n//nuOosF7ql 
 etLPtN2k8n6ShcpBnEg/8Jrb4rI/yUuOeTeKXClql5SVxc2LNha/jSlm8iUi qV0gTZMNxW0q 
 Z16WRQIOJSDTZKkJSD7s5L9TNQlZRia34pVxq2rHMrnATP4uFw5ZVynM3347 Zm2lgJN81YP1 
 vuJiV4qLYFBSYEkWume+TGNE4R/TnBI6QY5tydf8Miv/7ZZDiiw138kXTCl0 Mz7fuQS2+hKo 
 xrYMq0jFuKa4dYkBsZkkkCgBObGnPU1WPJWTO5WpXctyQeDK+kphK0V5nGJc PWTdLnDNwlY+ 
 tHhkjoB5wVLKduvLXPXjvpMSRXLMyRh+HpkhYN6FLRVxwxS3mek33oUEcpKA nHDUG7WtHmyX 
 L48L3NtuA37xC0te0ax0gvLaWsjTG65+SlzICd+th2y7fMGSLHhknoD6ciPn Aid7MNWCVLe/ 
 TGbewsbvqHKOy/8mc1DcJkOP15KAwwkoz6EtvWVS4Mrdvow4XO2/MiOB/L1d DpX+SwrwOL22 
 5iaoz8Nu+jSs2q+ElYy15ZE9Akos2HIuSBEWNc5s9SKforblSjHy5UmFZCUT 601xmys9znqS 
 QBYISA+G7b01587pXlsVqiD/m4SQTBlmJWxlOMKnnyZVrJzkpefSjQJPeW1T EYeXVCe4/GL1 
 FUfOB048pH2pVFpObF8utUm90ErnSqIHxW2i5HgdCTicgBJUyX4eyhgmc6iC 9OL++38PLFqU 
 nXAFGSah4myTFLaKn/JmZIynTW5EwWGTjhDVUJkqkvGo2ac1gTVRgsrJnmm7 sg+ul3yRSnbc 
 U9zmSm+zniSQYQJWN0TIcLWi304K3CVLgMLCwHAFGRbwqojhammJuRFEQu2R i8Zk2dJbq+6d 
 Ao+tuS5KWLjJg5lzL1gJGU/uXORkweDktuWOhY3XVH2xSbTubuxPbuKQqLXw OlcRyElxG9xD 
 ckcz6b01x+Wq/5eCVy72koL06FFdnEYLZ5DCWZ4jQyDkNStW6DG/0kMcXL4U uCny2KomuXGy 
 doQNOmjWcLINOrltuWiCKv450bq7sT8pbhO1Fl7nKgKOEhZSaEpBKn+kIFXx ueFEb7y/k+JW 
 lvnUU7p3OMYWwYkakRsna0fZYKIdb6PrnGyDTm6bjUzIclUobi2j8p9IcRs/ M17hQgKuEBZS 
 9EpBKkMZpEANDmcwC10piOU5UiDX1OheXBmOkKHDjQ9fV9hghuwnFbdxsg06 uW2p6PtMl0Fx 
 Gz9xitv4mfEKFxKgsLBXp7vx4UsbpA1mioAbx1em2CZyH4rb+KlR3MbPjFe4 kACFhb063Y0P 
 X9ogbTBTBNw4vjLFNpH7UNzGT43iNn5mvMKFBCgs7NXpbnz40gZpg5ki4Mbx lSm2idyH4jZ+ 
 ahS38TPjFS4kYEthMdoD
 |  
 |  
  | 
 | 
| Re: draw2d interaction sequence [message #644469 is a reply to message #644389] | 
Sat, 11 December 2010 13:20   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
This is a multi-part message in MIME format. 
--------------060305030603080608080807 
Content-Type: text/plain; charset=UTF-8 
Content-Transfer-Encoding: 8bit 
 
On 12/10/2010 8:27 PM, Alexander Nyßen wrote: 
> Hi Carlo, 
>  
> I don't have the book at hand (and I cannot use the attached image), but in short: 
>  
> a) with repaint() a figure can query that it needs to repaint inside its bounds. What happens is that the figure notifies the update manager that the figure's bounds should be regarded as a dirty region. The update manager then schedules a paint() on the figure. 
>  
> b) invalidate(), revalidate() and validate() all refer to layouting (with revalidate() a figure can query that it needs to get re-layouted, i.e. obtain new bounds) and will - as a side effect - also issue a repaint.  
>  
>  I think you should take a look into the Programmer's Guide of the GEF and Draw2d Plug-in Developer Guide, which can be found e.g. under http://help.eclipse.org/helios/index.jsp The Draw2d sections about Painting and Layout may help to clarify your questions. 
>  
 
I've instrumented a small code snippet to show the methods called during 
the interaction. 
 
This is obtained by substituting the Figure and ContentRoot instances 
with proxyes that trace every method call. 
 
The result is interesting (see attachment) but unfortunately the program 
halts in ClickableEventHandler.focusGained 
 
	public void focusGained(FocusEvent fe) { 
		Clickable clickable = (Clickable) fe.gainer; 
		clickable.repaint(); 
	} 
 
because of the cast to Clickable (a proxy can't be cast to a class). 
 
Now, to my understanding, the cast here is useless since fe.gainer 
already is an IFigure, so the method should read: 
 
	public void focusGained(FocusEvent fe) { 
		fe.gainer.repaint(); 
	} 
 
without forcing a concrete type on fe.gainer (and allowing tracing). 
 
Do you think this is worth an entry in bugzilla? 
 
--------------060305030603080608080807 
Content-Type: text/plain; 
 name="result.txt" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; 
 filename="result.txt" 
 
 ZmlndXJlLmdldFBhcmVudCguLi4pIGNhbGxlZA0KZmlndXJlLmdldFBhcmVu dCByZXR1cm5z 
 DQpmaWd1cmUuc2V0UGFyZW50KC4uLikgY2FsbGVkDQpmaWd1cmUuc2V0UGFy ZW50IHJldHVy 
 bnMNCmZpZ3VyZS5yZXBhaW50KC4uLikgY2FsbGVkDQpmaWd1cmUucmVwYWlu dCByZXR1cm5z 
 DQpjb250ZW50Um9vdC5nZXRQYXJlbnQoLi4uKSBjYWxsZWQNCmNvbnRlbnRS b290LmdldFBh 
 cmVudCByZXR1cm5zDQpjb250ZW50Um9vdC5zZXRQYXJlbnQoLi4uKSBjYWxs ZWQNCmNvbnRl 
 bnRSb290LnNldFBhcmVudCByZXR1cm5zDQpjb250ZW50Um9vdC5hZGROb3Rp ZnkoLi4uKSBj 
 YWxsZWQNCmZpZ3VyZS5hZGROb3RpZnkoLi4uKSBjYWxsZWQNCmZpZ3VyZS5h ZGROb3RpZnkg 
 cmV0dXJucw0KY29udGVudFJvb3QuYWRkTm90aWZ5IHJldHVybnMNCmNvbnRl bnRSb290LnJl 
 cGFpbnQoLi4uKSBjYWxsZWQNCmNvbnRlbnRSb290LnJlcGFpbnQgcmV0dXJu cw0KY29udGVu 
 dFJvb3Quc2V0Qm91bmRzKC4uLikgY2FsbGVkDQpjb250ZW50Um9vdC5zZXRC b3VuZHMgcmV0 
 dXJucw0KY29udGVudFJvb3QudmFsaWRhdGUoLi4uKSBjYWxsZWQNCmZpZ3Vy ZS5nZXRQcmVm 
 ZXJyZWRTaXplKC4uLikgY2FsbGVkDQpmaWd1cmUuZ2V0UHJlZmVycmVkU2l6 ZSByZXR1cm5z 
 DQpmaWd1cmUuc2V0Qm91bmRzKC4uLikgY2FsbGVkDQpmaWd1cmUuc2V0Qm91 bmRzIHJldHVy 
 bnMNCmZpZ3VyZS52YWxpZGF0ZSguLi4pIGNhbGxlZA0KZmlndXJlLnZhbGlk YXRlIHJldHVy 
 bnMNCmNvbnRlbnRSb290LnZhbGlkYXRlIHJldHVybnMNCmNvbnRlbnRSb290 LmlzVmlzaWJs 
 ZSguLi4pIGNhbGxlZA0KY29udGVudFJvb3QuaXNWaXNpYmxlIHJldHVybnMN CmNvbnRlbnRS 
 b290LmdldEJvdW5kcyguLi4pIGNhbGxlZA0KY29udGVudFJvb3QuZ2V0Qm91 bmRzIHJldHVy 
 bnMNCmNvbnRlbnRSb290LnBhaW50KC4uLikgY2FsbGVkDQpmaWd1cmUuaXNW aXNpYmxlKC4u 
 LikgY2FsbGVkDQpmaWd1cmUuaXNWaXNpYmxlIHJldHVybnMNCmZpZ3VyZS5n ZXRCb3VuZHMo 
 Li4uKSBjYWxsZWQNCmZpZ3VyZS5nZXRCb3VuZHMgcmV0dXJucw0KZmlndXJl LnBhaW50KC4u 
 LikgY2FsbGVkDQpmaWd1cmUucGFpbnQgcmV0dXJucw0KY29udGVudFJvb3Qu cGFpbnQgcmV0 
 dXJucw0KY29udGVudFJvb3QuaXNWaXNpYmxlKC4uLikgY2FsbGVkDQpjb250 ZW50Um9vdC5p 
 c1Zpc2libGUgcmV0dXJucw0KY29udGVudFJvb3QuZ2V0Qm91bmRzKC4uLikg Y2FsbGVkDQpj 
 b250ZW50Um9vdC5nZXRCb3VuZHMgcmV0dXJucw0KY29udGVudFJvb3QucGFp bnQoLi4uKSBj 
 YWxsZWQNCmZpZ3VyZS5pc1Zpc2libGUoLi4uKSBjYWxsZWQNCmZpZ3VyZS5p c1Zpc2libGUg 
 cmV0dXJucw0KZmlndXJlLmdldEJvdW5kcyguLi4pIGNhbGxlZA0KZmlndXJl LmdldEJvdW5k 
 cyByZXR1cm5zDQpmaWd1cmUucGFpbnQoLi4uKSBjYWxsZWQNCmZpZ3VyZS5w YWludCByZXR1 
 cm5zDQpjb250ZW50Um9vdC5wYWludCByZXR1cm5zDQpjb250ZW50Um9vdC5p c0ZvY3VzVHJh 
 dmVyc2FibGUoLi4uKSBjYWxsZWQNCmNvbnRlbnRSb290LmlzRm9jdXNUcmF2 ZXJzYWJsZSBy 
 ZXR1cm5zDQpjb250ZW50Um9vdC5nZXRQYXJlbnQoLi4uKSBjYWxsZWQNCmNv bnRlbnRSb290 
 LmdldFBhcmVudCByZXR1cm5zDQpjb250ZW50Um9vdC5lcXVhbHMoLi4uKSBj YWxsZWQNCmNv 
 bnRlbnRSb290LmVxdWFscyByZXR1cm5zDQpjb250ZW50Um9vdC5nZXRQYXJl bnQoLi4uKSBj 
 YWxsZWQNCmNvbnRlbnRSb290LmdldFBhcmVudCByZXR1cm5zDQpjb250ZW50 Um9vdC5nZXRD 
 aGlsZHJlbiguLi4pIGNhbGxlZA0KY29udGVudFJvb3QuZ2V0Q2hpbGRyZW4g cmV0dXJucw0K 
 Y29udGVudFJvb3QuZ2V0Q2hpbGRyZW4oLi4uKSBjYWxsZWQNCmNvbnRlbnRS b290LmdldENo 
 aWxkcmVuIHJldHVybnMNCmZpZ3VyZS5pc0ZvY3VzVHJhdmVyc2FibGUoLi4u KSBjYWxsZWQN 
 CmZpZ3VyZS5pc0ZvY3VzVHJhdmVyc2FibGUgcmV0dXJucw0KZmlndXJlLmlz U2hvd2luZygu 
 Li4pIGNhbGxlZA0KZmlndXJlLmlzU2hvd2luZyByZXR1cm5zDQpmaWd1cmUu aGFuZGxlRm9j 
 dXNHYWluZWQoLi4uKSBjYWxsZWQNCmZpZ3VyZS5oYW5kbGVGb2N1c0dhaW5l ZCB0aHJvd3Mg 
 amF2YS5sYW5nLkNsYXNzQ2FzdEV4Y2VwdGlvbjogJFByb3h5MCBjYW5ub3Qg YmUgY2FzdCB0 
 byBvcmcuZWNsaXBzZS5kcmF3MmQuQ2xpY2thYmxlDQpFeGNlcHRpb24gaW4g dGhyZWFkICJt 
 YWluIiBqYXZhLmxhbmcuQ2xhc3NDYXN0RXhjZXB0aW9uOiAkUHJveHkwIGNh bm5vdCBiZSBj 
 YXN0IHRvIG9yZy5lY2xpcHNlLmRyYXcyZC5DbGlja2FibGUNCglhdCBvcmcu ZWNsaXBzZS5k 
 cmF3MmQuQ2xpY2thYmxlRXZlbnRIYW5kbGVyLmZvY3VzR2FpbmVkKENsaWNr YWJsZUV2ZW50 
 SGFuZGxlci5qYXZhOjI3KQ0KCWF0IG9yZy5lY2xpcHNlLmRyYXcyZC5GaWd1 cmUuaGFuZGxl 
 Rm9jdXNHYWluZWQoRmlndXJlLmphdmE6ODQ1KQ0KCWF0IHN1bi5yZWZsZWN0 Lk5hdGl2ZU1l 
 dGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpDQoJYXQg c3VuLnJlZmxl 
 Y3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRo b2RBY2Nlc3Nv 
 ckltcGwuamF2YTozOSkNCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0 aG9kQWNjZXNz 
 b3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmph dmE6MjUpDQoJ 
 YXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2 YTo1OTcpDQoJ 
 YXQgc25pcHBldHMuVHJhY2luZy5pbnZva2UoVHJhY2luZy5qYXZhOjc2KQ0K CWF0ICRQcm94 
 eTAuaGFuZGxlRm9jdXNHYWluZWQoVW5rbm93biBTb3VyY2UpDQoJYXQgb3Jn LmVjbGlwc2Uu 
 ZHJhdzJkLlNXVEV2ZW50RGlzcGF0Y2hlci5zZXRGb2N1cyhTV1RFdmVudERp c3BhdGNoZXIu 
 amF2YTo1MTMpDQoJYXQgb3JnLmVjbGlwc2UuZHJhdzJkLlNXVEV2ZW50RGlz cGF0Y2hlci5k 
 aXNwYXRjaEZvY3VzR2FpbmVkKFNXVEV2ZW50RGlzcGF0Y2hlci5qYXZhOjEz MykNCglhdCBv 
 cmcuZWNsaXBzZS5kcmF3MmQuTGlnaHR3ZWlnaHRTeXN0ZW0kRXZlbnRIYW5k bGVyLmZvY3Vz 
 R2FpbmVkKExpZ2h0d2VpZ2h0U3lzdGVtLmphdmE6MzU3KQ0KCWF0IG9yZy5l Y2xpcHNlLnN3 
 dC53aWRnZXRzLlR5cGVkTGlzdGVuZXIuaGFuZGxlRXZlbnQoVHlwZWRMaXN0 ZW5lci5qYXZh 
 OjEzOSkNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5FdmVudFRhYmxl LnNlbmRFdmVu 
 dChFdmVudFRhYmxlLmphdmE6ODQpDQoJYXQgb3JnLmVjbGlwc2Uuc3d0Lndp ZGdldHMuV2lk 
 Z2V0LnNlbmRFdmVudChXaWRnZXQuamF2YToxMDUzKQ0KCWF0IG9yZy5lY2xp cHNlLnN3dC53 
 aWRnZXRzLldpZGdldC5zZW5kRXZlbnQoV2lkZ2V0LmphdmE6MTA3NykNCglh dCBvcmcuZWNs 
 aXBzZS5zd3Qud2lkZ2V0cy5XaWRnZXQuc2VuZEV2ZW50KFdpZGdldC5qYXZh OjEwNTgpDQoJ 
 YXQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29udHJvbC5zZW5kRm9jdXNF dmVudChDb250 
 cm9sLmphdmE6MjYxOCkNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5X aWRnZXQud21T 
 ZXRGb2N1cyhXaWRnZXQuamF2YToyNDAyKQ0KCWF0IG9yZy5lY2xpcHNlLnN3 dC53aWRnZXRz 
 LkNvbnRyb2wuV01fU0VURk9DVVMoQ29udHJvbC5qYXZhOjQ3OTIpDQoJYXQg b3JnLmVjbGlw 
 c2Uuc3d0LndpZGdldHMuQ2FudmFzLldNX1NFVEZPQ1VTKENhbnZhcy5qYXZh OjQ0OCkNCglh 
 dCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLndpbmRvd1Byb2Mo Q29udHJvbC5q 
 YXZhOjQyMjkpDQoJYXQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ2FudmFz LndpbmRvd1By 
 b2MoQ2FudmFzLmphdmE6MzQxKQ0KCWF0IG9yZy5lY2xpcHNlLnN3dC53aWRn ZXRzLkRpc3Bs 
 YXkud2luZG93UHJvYyhEaXNwbGF5LmphdmE6NDg3MykNCglhdCBvcmcuZWNs aXBzZS5zd3Qu 
 aW50ZXJuYWwud2luMzIuT1MuU2V0Rm9jdXMoTmF0aXZlIE1ldGhvZCkNCglh dCBvcmcuZWNs 
 aXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLmZvcmNlRm9jdXMoQ29udHJvbC5q YXZhOjk5NSkN 
 CglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLnNldFRhYkl0 ZW1Gb2N1cyhD 
 b250cm9sLmphdmE6MzMyMCkNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0 cy5Db21wb3Np 
 dGUuc2V0VGFiR3JvdXBGb2N1cyhDb21wb3NpdGUuamF2YToxMTU3KQ0KCWF0 IG9yZy5lY2xp 
 cHNlLnN3dC53aWRnZXRzLkNvbnRyb2wudHJhdmVyc2VHcm91cChDb250cm9s LmphdmE6Mzkz 
 NikNCglhdCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5TaGVsbC5vcGVuKFNo ZWxsLmphdmE6 
 MTIyNSkNCglhdCBzbmlwcGV0cy5TbmlwcGV0MS5tYWluKFNuaXBwZXQxLmph dmE6MzQp 
--------------060305030603080608080807 
Content-Type: text/plain; 
 name="Snippet1.java" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; 
 filename="Snippet1.java" 
 
 cGFja2FnZSBzbmlwcGV0czsNCg0KaW1wb3J0IG9yZy5lY2xpcHNlLmRyYXcy ZC5CdXR0b247 
 DQppbXBvcnQgb3JnLmVjbGlwc2UuZHJhdzJkLkZpZ3VyZTsNCmltcG9ydCBv cmcuZWNsaXBz 
 ZS5kcmF3MmQuRmxvd0xheW91dDsNCmltcG9ydCBvcmcuZWNsaXBzZS5kcmF3 MmQuSUZpZ3Vy 
 ZTsNCmltcG9ydCBvcmcuZWNsaXBzZS5kcmF3MmQuTGlnaHR3ZWlnaHRTeXN0 ZW07DQppbXBv 
 cnQgb3JnLmVjbGlwc2Uuc3d0LlNXVDsNCmltcG9ydCBvcmcuZWNsaXBzZS5z d3QubGF5b3V0 
 LkZpbGxMYXlvdXQ7DQppbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMu Q2FudmFzOw0K 
 aW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkRpc3BsYXk7DQppbXBv cnQgb3JnLmVj 
 bGlwc2Uuc3d0LndpZGdldHMuU2hlbGw7DQoNCnB1YmxpYyBjbGFzcyBTbmlw cGV0MSBleHRl 
 bmRzIFNoZWxsIHsNCg0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmlu ZyBhcmdzW10p 
 IHsNCgkJRGlzcGxheSBkID0gbmV3IERpc3BsYXkoKTsNCgkJU2hlbGwgc2hl bGwgPSBuZXcg 
 U2hlbGwoZCk7DQoJCXNoZWxsLnNldExheW91dChuZXcgRmlsbExheW91dCgp KTsNCg0KCQlD 
 YW52YXMgY2FudmFzID0gbmV3IENhbnZhcyhzaGVsbCwgU1dULk5PTkUpOw0K CQlMaWdodHdl 
 aWdodFN5c3RlbSBsd3MgPSBuZXcgTGlnaHR3ZWlnaHRTeXN0ZW0oY2FudmFz KTsNCg0KCQlJ 
 RmlndXJlIGNvbnRlbnRSb290ID0gbmV3IEZpZ3VyZSgpOw0KCQljb250ZW50 Um9vdC5zZXRM 
 YXlvdXRNYW5hZ2VyKG5ldyBGbG93TGF5b3V0KCkpOw0KDQoJCUlGaWd1cmUg ZmlndXJlID0g 
 bmV3IEJ1dHRvbigiY2xpY2sgbWUiKTsNCg0KCQljb250ZW50Um9vdC5hZGQo KElGaWd1cmUp 
 IFRyYWNpbmcudHJhY2UoImZpZ3VyZSIsIGZpZ3VyZSkpOw0KDQoJCWx3cy5z ZXRDb250ZW50 
 cygoSUZpZ3VyZSkgVHJhY2luZy50cmFjZSgiY29udGVudFJvb3QiLCBjb250 ZW50Um9vdCkp 
 Ow0KDQoJCXNoZWxsLnNldFRleHQoImRyYXcyZCIpOw0KCQlzaGVsbC5vcGVu KCk7DQoNCgkJ 
 d2hpbGUgKCFzaGVsbC5pc0Rpc3Bvc2VkKCkpDQoJCQl3aGlsZSAoIWQucmVh ZEFuZERpc3Bh 
dGNoKCkpDQoJCQkJZC5zbGVlcCgpOw0KCX0NCn0= 
--------------060305030603080608080807 
Content-Type: text/plain; 
 name="Tracing.java" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; 
 filename="Tracing.java" 
 
 cGFja2FnZSBzbmlwcGV0czsNCg0KaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0 ZXI7DQppbXBv 
 cnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvbkhhbmRsZXI7DQppbXBv cnQgamF2YS5s 
 YW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsNCmltcG9y dCBqYXZhLmxh 
 bmcucmVmbGVjdC5NZXRob2Q7DQppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3Qu UHJveHk7DQpp 
 bXBvcnQgamF2YS51dGlsLkFycmF5czsNCmltcG9ydCBqYXZhLnV0aWwuQ29s bGVjdGlvbnM7 
 DQppbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7DQppbXBvcnQgamF2YS51dGls LlNldDsNCg0K 
 cHVibGljIGNsYXNzIFRyYWNpbmcgaW1wbGVtZW50cyBJbnZvY2F0aW9uSGFu ZGxlciB7DQoN 
 CglwdWJsaWMgc3RhdGljIE9iamVjdCBjcmVhdGVQcm94eShPYmplY3Qgb2Jq KSB7DQoJCXJl 
 dHVybiBjcmVhdGVQcm94eSgiIiwgb2JqLCBuZXcgUHJpbnRXcml0ZXIoU3lz dGVtLm91dCwg 
 dHJ1ZSkpOw0KCX0NCg0KCXB1YmxpYyBzdGF0aWMgT2JqZWN0IGNyZWF0ZVBy b3h5KFN0cmlu 
 ZyBvYmpOYW1lLCBPYmplY3Qgb2JqKSB7DQoJCXJldHVybiBjcmVhdGVQcm94 eShvYmpOYW1l 
 LCBvYmosIG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0LCB0cnVlKSk7DQoJ fQ0KDQoJcHVi 
 bGljIHN0YXRpYyBPYmplY3QgY3JlYXRlUHJveHkoU3RyaW5nIG9iak5hbWUs IE9iamVjdCBv 
 YmosIFByaW50V3JpdGVyIG91dCkgew0KCQlyZXR1cm4gUHJveHkubmV3UHJv eHlJbnN0YW5j 
 ZShvYmouZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpLA0KCQkJCWdldE9i akludGVyZmFj 
 ZXMob2JqKSwgbmV3IFRyYWNpbmcob2JqTmFtZSwgb2JqLCBvdXQpKTsNCgl9 DQoNCglwdWJs 
 aWMgc3RhdGljIFNldDxDbGFzczw/Pj4gZ2V0SW50ZXJmYWNlcyhDbGFzczw/ PiBjKSB7DQoJ 
 CWlmIChjID09IG51bGwpIHsNCgkJCXJldHVybiBDb2xsZWN0aW9ucy5lbXB0 eVNldCgpOw0K 
 CQl9DQoJCVNldDxDbGFzczw/Pj4gaW50ZXJmYWNlcyA9IG5ldyBIYXNoU2V0 PENsYXNzPD8+ 
 PigpOw0KCQlpbnRlcmZhY2VzLmFkZEFsbChBcnJheXMuYXNMaXN0KGMuZ2V0 SW50ZXJmYWNl 
 cygpKSk7DQoJCWludGVyZmFjZXMuYWRkQWxsKGdldEludGVyZmFjZXMoYy5n ZXRTdXBlcmNs 
 YXNzKCkpKTsNCgkJcmV0dXJuIGludGVyZmFjZXM7DQoJfQ0KDQoJcHVibGlj IHN0YXRpYyBD 
 bGFzczw/PltdIGdldE9iakludGVyZmFjZXMoT2JqZWN0IG9iaikgew0KCQly ZXR1cm4gZ2V0 
 SW50ZXJmYWNlcyhvYmouZ2V0Q2xhc3MoKSkudG9BcnJheShuZXcgQ2xhc3Nb MF0pOw0KCX0N 
 Cg0KCXB1YmxpYyBzdGF0aWMgT2JqZWN0IHRyYWNlKE9iamVjdCBvYmopIHsN CgkJcmV0dXJu 
 IGNyZWF0ZVByb3h5KG9iaik7DQoJfQ0KCQ0KCS8qKiByZXR1cm5zIGEgcHJv eHkgdGhhdCBk 
 dW1wcyBldmVyeSBtZXRob2QgY2FsbCB0byBTeXN0ZW0ub3V0ICoqLw0KCXB1 YmxpYyBzdGF0 
 aWMgT2JqZWN0IHRyYWNlKFN0cmluZyBvYmpOYW1lLCBPYmplY3Qgb2JqKSB7 DQoJCXJldHVy 
 biBjcmVhdGVQcm94eShvYmpOYW1lLCBvYmopOw0KCX0NCg0KCXByaXZhdGUg T2JqZWN0IHRh 
 cmdldDsNCglwcml2YXRlIFByaW50V3JpdGVyIG91dDsNCglwcml2YXRlIFN0 cmluZyBvYmpO 
 YW1lOw0KDQoJcHJpdmF0ZSBUcmFjaW5nKFN0cmluZyBvYmpOYW1lLCBPYmpl Y3Qgb2JqLCBQ 
 cmludFdyaXRlciBvdXQpIHsNCgkJdGhpcy5vYmpOYW1lID0gb2JqTmFtZTsN CgkJdGFyZ2V0 
 ID0gb2JqOw0KCQl0aGlzLm91dCA9IG91dDsNCgl9DQoNCglwdWJsaWMgT2Jq ZWN0IGFzKFN0 
 cmluZyBvYmpOYW1lKSB7DQoJCXNldE9iak5hbWUob2JqTmFtZSk7DQoJCXJl dHVybiB0aGlz 
 Ow0KCX0NCg0KCXB1YmxpYyB2b2lkIHNldE9iak5hbWUoU3RyaW5nIG9iak5h bWUpIHsNCgkJ 
 dGhpcy5vYmpOYW1lID0gb2JqTmFtZTsNCgl9DQoNCglAT3ZlcnJpZGUNCglw dWJsaWMgT2Jq 
 ZWN0IGludm9rZShPYmplY3QgcHJveHksIE1ldGhvZCBtZXRob2QsIE9iamVj dFtdIGFyZ3Mp 
 DQoJCQl0aHJvd3MgVGhyb3dhYmxlIHsNCgkJT2JqZWN0IHJlc3VsdCA9IG51 bGw7DQoJCXRy 
 eSB7DQoJCQlvdXQucHJpbnRsbihvYmpOYW1lICsgIi4iICsgbWV0aG9kLmdl dE5hbWUoKSAr 
 ICIoLi4uKSBjYWxsZWQiKTsNCgkJCXJlc3VsdCA9IG1ldGhvZC5pbnZva2Uo dGFyZ2V0LCBh 
 cmdzKTsNCgkJfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBl KSB7DQoJCQlv 
 dXQucHJpbnRsbihvYmpOYW1lICsgIi4iICsgbWV0aG9kLmdldE5hbWUoKSAr ICIgdGhyb3dz 
 ICINCgkJCQkJKyBlLmdldENhdXNlKCkpOw0KCQkJdGhyb3cgZS5nZXRDYXVz ZSgpOw0KCQl9 
 DQoJCW91dC5wcmludGxuKG9iak5hbWUgKyAiLiIgKyBtZXRob2QuZ2V0TmFt ZSgpICsgIiBy 
ZXR1cm5zIik7DQoJCXJldHVybiByZXN1bHQ7DQoJfQ0KfQ== 
--------------060305030603080608080807--
 |  
 |  
  | 
Powered by 
FUDForum. Page generated in 0.34694 seconds