From: Subject: Avian Flu Diary: The Big Chill Date: Mon, 10 Dec 2007 21:25:40 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_000E_01C83B73.370DACA0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 This is a multi-part message in MIME format. ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://i45.photobucket.com/albums/f83/mcoston/mikes.jpg /9j/4AAQSkZJRgABAQEAYABgAAD/4QBSRXhpZgAASUkqAAgAAAABAGmHBAABAAAAGgAAAAAAAAAB AIaSAgAdAAAALAAAAAAAAABTJlEgVEVDSE5PTE9HWSBDTy4sIExURC4gVjAxAE7/2wBDAAEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQH/wAARCADwAMEDASIAAhEBAxEB/8QAHgAAAQQDAQEBAAAAAAAAAAAABwQF BggAAwkKAgH/xABLEAADAAEEAQQBAgMCCAcPBQABAgMEBRESEwYAByEiFAgjFTEyQUIJFiQzUVOT 01JUkpSV0tQXGDRVVmFiY2SRotHV4uNncYKWof/EABwBAAIDAQEBAQAAAAAAAAAAAAYHAwQFAgEI AP/EAEIRAAEDAwIEBQAFCgMIAwAAAAECAxEEEiEAMQUTQVEGIjJhcRSBkaHwBxUjM0JSYrHB4SRT oghDY3KS0eLxF1TC/9oADAMBAAIRAxEAPwDy2ZGoZGZn52VWtHfMsWoE7ZlKmjKZfDp+wzZDN17t tx5MySWlprcOjtjPYZOLszbh65A7IsjBLooGPfu4sIqWGS23YDsm33btarLO1/XaabjocVtd1TLw 5lHSU8ZtQeuN1kGdpyXFY4zuCnBtm4uAEG3Hzo17J0sWPJ+snGVtqSdkbiQ6TLtNAa2WQs6JxDpu x9AApmi0w5YhPOaQ7alNpTdm05zEbwPjGsV/C4OVjKl7FWBGOkZ6nf2kuzUrBkQlrVmogOMEKruB u0Ky2/pkWxEqy7t1myqORmHaOXVVo6reaTit3o8bqoUEkOFdkoGdSwejqhTcOiVmyUeP/lKwiIRK cMvGxYjuoOFXDbUQqsW/zIZ9lJajQQhRsdnJa7srUjKYVyoeRopVVvWLPtelcUqJwso5rPlzJ2+p B4cMLWG2VrQu03IkzBnKYxkkbmfs1Jdd+sciPT5d+/X41sORllZsztI/dJNxudsVJ3nujVZ+2C1R 12UTFfgnjwA9IU7RmYzrS7o9w2O4vjNzdQJuvWHgYs1FZT+0vyu/2/u7F4OwVOAQuaFWCqtELwmy iseRVvxseiqkaie4JVE/kVeLhZRphW/H7HvkTx4KsBksLZbLCc2lOU7BGa0RKToCS563SiLZfVt3 KuQzExchpEu/KkT8x5oEE99fmEJQm1IjaT3+rMf304d+VIy452Zj0Rg0ja9GVA3GT0mBejzdQyNu QpO/BA7HYyvRW8t1HU8PC0/NysjIzHliYsMOjZF75Vb9MoY4aK1yK5DiYnjci6lyaUjKbU9XF/S9 +g/3t/U35Z4/4t7e+AajqOJl2Wup+QOnRoPjuN+KuofxLMo55ZNod+LGCrP95ozlV4qwovs5/Ql/ gf8A9Pn6UNL03WvJdE033F9zji6Y2o6/q2n4eZg4eRgrWyw06dwa4kZZmRVzKbrOxFI0m+CZY6Uq Nmu4pW/m7w5TuurMIq31jl01OtJ830hwXFtDckcwJUVXQE41Pxdzw/4VoEcX8X1SOHMuJBoqFlYe 4pxFC4wzTMhbtO06IKKmrbYYyZWMDXlO9gv8G5+vP3kwtO1rTNH1nwnx/IbKrXP8pvl6fK06BI6e J4aZOJqrrnOmZkSbtxhOLYxZzTJWSdCNE/wQf6itK4ZPl36mdVxqPkmj42Bg5mYuHji3DkLZOo3R qAgn64nHIk0Z1C0gcjI9kcNN02XVhw08ww4p1Qxp4sEkifHCcwJ/RQo2AXiPrud9viknvZqun6Rm ZsjSCUSPF8TiiBEDc92PaT2rMSQkqrgjkUAZd6vjjwx4i8OUTNbU8cQrnpLZZpwCoOq5coBfaN8T gpCZyCBidr8jnjvwp+UnxE74eovAbZpKTP0ziFQ7WvutF1LYcfS0plpkmZCUNokAglW487j/AODl 93NGSnT+qDMZ/wAZUQZfgWj2EyI0GxysmedkAPS27WnCjVGJjOkoFQQCPOf0ifrF8ZQt4v7ke3fn 85Srf/KdBxtGyK3IBxsdJ0x5z+ti1GtbNkmNjBUaOQEKv2W8x9wcOXZVaxbIZ68JfdlVJAjYcuID tsPv8j/Sv+kKaz5bXUIcRQzry5HkYB0JK7mQmjzXddwCWdtj/SvyCnW+O8XYqgpLilzlSahimIOw 2DOSJOxxPtOvsiq/JP4NcpUN/mlqlqCgKSKRblOEXASBy3BtAiQY6bnXnI91/cX9WHsve8/c72c0 tdPx9QGnvrGLo+qZWkWajpKJ/ikcrBxzk3JN0MIohRGPBesgiLD/AFnYup6jp+mav7ZaTPLvliNz iZV5KwnTvo00rlOyWjDHoxhkZOQo5q7VZSJp6VtZ8gw8nTsjTdVXB1LDpVN8PUZxz1uV4K+QY2V0 lvxCpVUV1ZW25cfVAfeT9AXsL7rU1DybwnDX2284tPOJrpdrX8e1DM1aV1zn1HTrPkfhnPpe1aZU JWqHtkmEZrZgpbwjxHQJeSOL8NzAS2/TOcpwqMEhxQcaJ2kGFFIujfKb8SfkjrKC93w9xZ1C0GBR urbU0SSIjmIUQM5gHfbXKzS/1fe3eqZEsTK9vNahl5GVj4+NHBzWy7utTMQtDGwsJu417OtLETs7 hbddkZH9EDJ98va7Ax8jI1bSPPdInKHcwtpeaeISmwUUzBh43MO3CiLYmZ2Ul23VPxf0iaz7G+a+ P6ZreL/Ea1y9HnneSjElBNQXHv11pBi2ZjYXPrvJ1pu7UflTGWzlGn/6n/DNPwfYT3Kz8bS0fJw9 A0q0bLHGtaDN5NouDLJUZMqz2lW7WeqSW4RaGd0ZOZ3kPcDqKhr6Cy0pT7zLS3w/UuJHMWlCSkc1 MxJJgiSBtuVY9wXj9F9IZ4mLXqW4JhmnKFRAJSsswRtOD8GZ1++0PmvgPvbrA0rwjVvIc3VMemHL LxsjDighR5933qXdJooFJqd2mTFj2BmCDoD4FoENF8YysKbXq08myWvZpNdzG7SYhdmQIUmttgBx DlQTxDnkr/gxMEUt5JrgXNXKfyXBwHSmCkMecJ6VOuHkwsLNJH7dRyZWxrQtWV8bLC2ynVzPs/4o r20HVj1cKpnZiuOCMysGYghwZhlAryUia8gP5An1D4mpW6eoQw06paGy0AVdJHziQASc9O2r/hUP PUyal5CVPB11CVJbbatQlSQBDaEhRE4J2jG+Ad5JCs8TOCl1VVvVrMOUpQWdKIzF+tWC8SgKsfmm 5BKhTVT2dx8m+lZ1rVQNkaheiztZ2qDYUfn8oXVkZ5QnF9kFuYC7JsbceXw4Y2eEYJSOPay0sR+O 1FVmBKF3LMPryRyoAB/mDv6qV7LgvojF55UW/ILiN5iVJq9Xp0UMuIWjdoTkwO9Vodhvt6wqct00 /pHnzYUQU3smSnPqBV26R3M42KtnmVDa2whFiibVrgq2i025jO22PnRdubddZgpsvKI2IefWgDMr BgG5udyxD7If6VI39M+TvJ1oK/5uKl5UD1+peaJROpH+xNGaod+RjNyGHXuz1Ti4IaHFVWJWVKC4 7qFw/CbcOdECg7AU3Db9Xxy9NWV9VG7LsaOoWc6LdQ5mN1WMCCqht3ZgwZQBPt+wXxpd1QDzFtIW klJQfKbYyEbACRIuOeuq7rdqbTYoKJPmRJERt5vfUfuWDsVqTt2cZdcue685oOzgX3JY0VeZKD6n 7HcMORR3Vm5FWZeBdWYdm9RGBZdwrK3NipK77qRvt6keQFNZFyy0Cs9XWQcicwesVITrG4IAabOo PwQW5KGG84pVnNxVXDOkx+2FcABHKcGJqASJBUUA8iWBB9W/pLLiUoSsqVIuXESbkR5Zx1nP2azn UpFxSIuBJEzsMdtRz8C3/Cf/AJZ/6vrPTz1R/wCA3+0P/V9Z63Pon8f3fHv8/d76weX7/d/fXEmm 0bWmiGaCjbfZDR8gZDblaiSuq3nGQK0au80lVSpoU9bcc2ES/wBc13R2IezM8qFJMz/VQVfjQqjf O2zMB/Z6jx/JeqvaVBQ07iwyrzBsWDJOwnXki/kLACIf6fP7jg/Dtj0YsWgloT7qr03Z3WczfJeQ /IcFawEgkRRa0DuilljyAY/TRIE3KKtoxEd+pmf7d9DvLWZKLHE9FIVPaZEYMn+fbT9jsuQ1ziDG QzocqzNKo3DJR1E7KG249bBglktTkGSNknRpKDfsKoKbJ2V60g7TMg1lfk/U/Oz0YsrDqor9WwhS rzkW/Gfgk3UwmGLHZYobTKlUWXWqGYUTraRNEctKlFUIWYmW6Tp51HInjYTIK7yDq1pSarrF3NJN ynDtc4oEwnVUdiifazhRnFpLKSQYVICk9R6QM9eqtte5ddwIK4EDMWwPaZnX3g4GdkCcY4l8h5rH IdaTIV55FFiFjKhbtsHpGjkOgpsqngfsOuv+Dd/wevmP6tPNczI1bSNR8f8ADdHrp/8AENYnjfi9 mWnVkCmIlpUXLLY1qM8uqgMSeap3wZmL9CX6GPMf1Bed+G4ebi6roWjUgtdbzqYPZDE0LTWyEy6c c+hlVVsMiUYYd53yMg4yr2T/ACHX20ey3hfgfsL4Ppvh/h+Jj4WnaTj42MckYOHDJ1W2NL8MZeau npiR/JpPHXd0kswnCcVEZqzBnEOMVCqx2mpqlLKLyFVGEvU6E2ypsyJunzDy7CY30x+FeG18I4a3 xN7hyqzijjN/DqIpvZ+kmA29XIEk0qBN6MAkiFACdGL9MX6bfbv9OHt/pPhnhGhYunQxMHHhm6td CdU1XInjY8q5uo5NHftvW+NO4ZguQjBpUrSYWUrCanq+Dpi1OTkYGMY8iy5GdKJICim+5DcV6/sC 4UH+W+539V3y/crKlhvEZDQmQWByFInIMgUUmDSjNt8FeVAg33REYKwrb5t59l2tTt1pK5KlmYUs 1mX+lVDhCqsxRU4QcfLEKtF+T6K0+PqLwnwhmi4Kw0qseIXVVRS0t95bgBUpa21qAuI69Npk6U1F /s/+Mfyo+JazinizijlOhyoUWW2m3b0U6DCWWG1sHlNIB8qAo2zkqwdW08x979C0bCvDSs2WZqFZ 1x43dPx5ySkWXtmWNHpbm3FNl4sv3PHcBeY/ut5blal/EdSz8nlO1LMj0s6llLtYuPvQEFphASVJ K777/AS+TeY5hDbV3ak7bZGSQ+5Rp8nSaT6/ruHEvsx22Vj8kVP94PPc38RMDHWqFJijtNhPGqd6 cX6moGuVAIZutUHPeew33VXiLxjxTxO4HeJVjqm5WUUwWTTt5QU2oIHpgg956dfuf8kn5EvDP5Ja V17hdO0ap8NCpqqpQcqVFBakhzpcWzItPqH7skd+ReUXyc6piURQ7uX+7MQCObFOQ24qBuOTfUE/ 2beopXXp9Tc6vtSqmYcbdfH5RR/d4BgWFCwLnZUmWG3oM61rer71NclFZX7NkpOU2DHkVJ5iiAHb 5/tH934HqOT8j1C+Wk6U5VO7FhVXKAkcnLU5KquoUHbZxt8MQSAJrZvWOWYC4vb5vL5iQRi61X1G 34k6bb9WrnOLUV8pQTC0JKyIjJEiNG3K1oNjGlall/qBfkS/yQCzFUcA7/3TsN/kH+2Knyyc6oOK AS5qioyoxPa3IhHLMwQOSCqkHb7BfQl8i8jzJITTUeH406cQf2scrsSqNwV+RJO5JAJ+PgbehiPI crNyHnbKorIoWbszmjo39TohduKbMUPDYHbk3H4Hq0qj5ThS65YtSUKIKYQmRspd2MbEJMn40LV7 yVrIUEOjJBUmLYA6SZnc56DJ31a/N1rQ/IMM4WfHEyB3KSM2E8lIunEdqzutVO7bIQqqg35LwIXa jv6qPAdW1X2d9x/HPHcNNaydV0zBXTYL1UyKZGPr+k6hJlvWNIrcfivHHxqZGMuU+VUKwdyC/P5P qOAXYGudjkMvU1dmB3XjwCEqGcjdmZSCFUcTx3MqwPN8bUYRxMhagc5ulHGI3UyhnQXFDSigsQJU Tccm3EgF+dLh3N4dZVNXuJpqhCkAIlCFOSQpSQfNFhtyIE5Glv4i4Xw3idM8y6l1BqklClpNi7hb BBkyM5EdfedUq/wenimp+KS8iw9ax74OYPNDNxkY8426F8d05geEgaBWejtMhHkl5ZEpuzyZW60+ CS7vGNTyesM35WTSbqHQEM7wkSSVDAkzXt2+d/6fgb0it5Fo3gfkmQaYn4q5WcdTpcbIlgyZTXtj uJMWsAFb7z41DEG5E1Btx7I+ZaD5h7e6llaFmrq0ZZWSjNKIFMewq7HGy8dVUY10SfNmtXg6sjSa iUm1Nvi9W7xZCa+x0XNt/qkWTIG8EyREDGBOc6T1Fwun4HU/m/ntJLbjg9R80lEYnHbczOesjfzg mWm6sUaY4Y+VUXNUnOUoRegalPv1jtgpLsB17gkMBv6qj7K8G8Uw8hexf8nxmArWWTRWk7/D1j2z YKuwVlYq6bPuPlVtP7hr16HrtX2CNgZjK28+SsobhZn/AG0fn9xNtwAy7Mfod6vezGOq+I4q824M k7sjPetJqsYONrlQuUvAT3ojNNj/AE8R9TUpSxBuS8iVoSOabukyBAmIgj3Gca9rEf4lkThsqVMe qLcRON98/fooZi8nH1VuNeJK0VSg+AUdgUCo5Py5VtiOO22xDNlbyak91HGjCSqFRUACkVmZ8jv9 qBitPnf+rbdfUhyJK7V4Ku0+lxQcZgFtyrtybcqp3+hUcv5gj5HphylZwFQz3LGhBI2rNQnxxUIx LKW2Xnsp+32HqJanEvNLaBJXcFuk4W3KSUlOYJOSoEx21A8ylxNifJt0u6CMeXtP1476YHls5qkl JRR9tnYgruQ6SXig4bk9YZEG5O3yd2GrooRQV/cZeJ+e00JYu3ar7NMEBgCg3G4+BsTJMooQJBC5 N6tzaNWUbhlBEmT4/rB3IKHh9aHlt6ZctbTS6hV3QKX2fYUVlqWcja3M9fMzdCiS6ytApYMLpLpd ZVTJYdbbULghPpUCAUySTjuRmDgRrMWIK0zNo+O/43/u29v/ALSv/I//AC+s9J/x1/1v/wAB/wCt 6z0Rc8/uj7f7fP4GR/XDKoyCrTjWPBpwpy7pu6dUxJV2o1ofuUZFBWCBS25FCBsvxWzN6TCqz0O4 Dq7JxaiKxM5K43QUVz1RH1LFj9QC9XngnUMxsXEwequoZUMVRZwn4q51RF0umRiOjP8AkPkp+PmD ed59m+6EKMToye2Yw7isgVpSFxVOU5vV34YtRQcIxRQpFN2kChjVp0kwHam5lp0sutlSL+W6mxYu twRnbqfu0KOFLdSpCFrdSqIdUqUGAJLfffJkdNfuhYj59+jGDTL9kTxTIa6steqKSguL8sLqj49Y TUVSqFkQuu3Wr9GH6S8byzN0nyDyzRRqen5WfKuImpRyZYT4+OgKZSTNEpmpmF0MQxhFo3opd+YK 1I/Tf4zoWo6hl69m6YyRw0jNaZWU2TLvpfUZNZV/GKIHgZZMilKEsvGirspb0I/oFSvuB7qaZg4+ DbH8b0NBrWo51LXGRbF0lfz9viU+S5OoTCbI6KoyGQIQEVQbxDxNIbdaYc5dQlJKiyOWtK0lIUi6 VTE4UAOnlAnTS8CcDp616nfqmOby1rWUKPkXy4gKEdbt4Me8mO0/sL7WeP8As77c6TpGJhRwcvJw pZGfUYuJh3li1tSuFpk1xop+Pj4UrkzxudZ4+QTTbvDFSHqXka4cidltQlusBlKrszKvIPsv0UBQ CwLf+b0j1PWwUZSwnVj2tWh+s93NK9bFnbbifuC/9Q4jcLy9CbXNbPNyNjuS6sQDsWYq/wBf/SUK dxt8UUjf+RXinWEJUVOILy1qWHlt3Lzb5T5hcZ2yOuI19JcC8OuVTiXHk3XrJKAmEJQYsQkSYCRI JkzIwIJKnW/Os/hVBfes1KjtPVJFbcbhFHHioYBVCj49APXPMMnKo8UtNMnmaZeRx4MiM/wsnpxQ q7upXfY/T4AOw9fXkGs3qzoGVZFijqzurBiisdutVKlmIUHn8bkkMD8A7XtUK3rJG4yE15lN0oW3 Yjs3H9/kOI2ILfXc7g+sqpRVrUKtDinkqBhCsNCLZIRO09jHQ507eF8H4ZwhhDqEU6XYEpSgGCAJ N1wOx7DsMTp61TyJnSinJRWSnzfnzd9/hJuvNvv8BWoo5KdiCu+3quPn2onMyquMjK477CncgDf0 /PEUf/zfJIY/2s2w2etf1Rx+0HLiY4ugX6sWUspfbYh04nZQfqxDEtsB6gOrazCOMA6gKq7UsVK7 HZi2yfP9TlB/WCu+/wA/y9SMIC2bl+e0iAcDzb94mBt9Wq9TUh5xX6QptHQTMkQNxnHvPznQv1U4 4tdJrlA0cBiWYFnZpUGwIp9Cs3KbsPjfbcH4ZLVjjjjTvCkPOc50VkfsIAdVUFW4UB5bBeTAj68e Xr41byPPrkFMHBrlF7tN7qtXImivyAou6q6AAnYt/Mj4/mB3l5nlL5NHGJGCtewjauTGZQjkBsqv Siswp/nOK78SyqtCX9WHW2wqwqaaUn1Ji0mQmOpnEnpEx10I1jiWFlSQt0GPSn0xG5nG+BGw9sJf LMvEKOszkKsOzZFd+O5UghuICVQoUPyzIGUgj4BAqsj1RXx8qqlVBVwzGnEMWRSzVZdpMeezsilO QFGAVVfdUxNUu9K52o6dDhMT64G7jiGJmwr1lWZ+Y3DuGVt6OqIyn1BMrSBjOyjXpzf5BVU2mwSR nNWerD5KUUUSiox2+AVIb1+PLdDCFvwsotSnlOLkJi4koCgIJGFHrgmDoUrX3HFuqsUZt9QtgY23 mfkY+dOKZ+r4ypj1WLKKBT0XarIo/mXT7tNW6+wIp60ZGSnYrgpsGqXx8o5H3ZnP7kneQ2QMk+HJ SnIBiykl1A4j6HkSIQ1s7u6pZM8nGNKqkxROZFkEjPmAKVoQz8Ak/qrEhVC/O5M6mOWWIBgkxsl3 Av1uNnowSnZRXns6mk2P93cjfe06AwxyUqS3zYBKUQFxHkIugTM3TiIgzIG3nOWpw23SUjeNyQMQ epnST3jm2veJZbY9JQytPiWx6JSlkCsGfqUlo8o0G3Mrup+QN+G7Vo9sfffy/wBnfIp+S6JmGSZm Mul6/wCP5H5OVh6vgyyN6ZDxVXVc/GsdSfAzyiWmFsq1U1BnZDVs3twKBaB45U8j8XqkOkNuoM3c SmDReACuFcTodnA9c/PcXFr45rOTkY7YaY2SZdipEXBJf+cxahkDxH7izZFNsiCrweq0Td8Mt1Sq j6JUOBNKpp0tr5ba7lKKIbtWlREjFwIG0gwNKPxvS2lriTbVymVpDqgYtEAhZwTuNuuc9uzP/dN0 D3V9r9Q8m0HKjlwzNGznvEzRcvBrHGv2wzMTI/Mmjw/rjjUltlY7RdtxUiQz9mpzPh+nLZeSdWIy COJHZP8AJcejxocdxCexvJAq7yktAVY7cDza9ofePUfDF13Qxa7aD5To2bhZGBPJtTGx9QyIZIhm LtlFETEXERMhaI4kmS1oPBoML9J/Zoo3h+mosQwrDH4rYOiuox4CVnsqTmzpMTmxCT36w3WhbdrP EOHfmt9pASHGKh0OoQ95knAxE7puAmYO8CND9DxBVYqkUvzKQlwFU7zYZiBG3c/HQk56di85qzAs Ayoihjx3CgAO2/03G5/luNxsD6YqkHYlOQSeyLxnNjNuobOwZlNFMiXXZgodBud/UhtzntwRerrI nMcqmYIbsG43Ys4AAUKoG4Jb5OzHlY6Ah90nEO4KtxCMFQuX3nRzsSu2zzADBgdwNzkN0/0guLC7 IWUFITKEqThSUiRaAd8q6RtGtqoUkW3KjCj36pHcd9R7MDGlQ42DdYQqfh5v2FOIkQHBEz9QqgNu eX129R7LDok1ajMJs6FwOVCq/wDpghGmFfbmnJTt8u7ciJBl1MlrYzntx2Cm1i3y/wBrKrF1Resh goXb42Uj+Xpmv3CTbwoFkm1mHNoq1fjg9H2POjDIMyVAYoUQM24EtGpKbDdattZQk2OKkXCf1aFB MmB5iOkTmMF4KlSgmQUknMRH89/bb5ho6Y/8YH/IH+89Z62dUf8AVj//AD/5es9E/O/gH2/Ht7fy 7ZHtcNMdkk4NgVezkFnvQLQzSjUHTELuITi895SPLq5Pw5qgXaO15ZQtln9qdeV2hVAslRHDWRSZ dbymskVP3Md9iHxxJqSqx0bIglaXdDWWXkUrNBYGVFxsrTmoP2TjxhPmLIPyH5bvPkNufp10ihTK kpUsg4vS7x+jHHtFMeuS6XOwp30eSEENPZ+f7myseoRamoemb0JTbAxncHqcRET1nQwbQpK0NoSp EwVC+JiY2jb3k/Gr+eyslloOPbFDSF8mLyx1lc5lkl3diwR4RnSSq2NJJqauyypP6ceR9Nn+DI8b XRPbnz/zTJriG2XXB8bxDiZ9bqUmMbL1J8hm2Vr/AJSY7TbqC/j0GNRS8Gb15pPafNM9F8eje2Pv dVON+I2PGK5C2XHjyfsRd3rOnJLmxYOyM3xyPqy/R3pa+P8A6dfEdHxorC9xfVNUKqvY2fkWXmWA kVV5pHFVwRRAwbi7BW9JjxO5yAl1tKDzKpKVpULpQuPKDIiAnf319F/kjofzhVKQUo5DNOlagpUR a424AMEqu5ZT/DMwrOrS6xqNcuHJGDKCCEYleP8AdpuGQMdplUBKqf7QDuB6GerO1JPzLOea7qrt PfZgC54uu/Wm312O+38139SO2W4nNQf3Glwo4XcNcMQigFP70gCTNP7PsPkEMlpVyJsaKqL8K4VN nfZ2ckpxmPt//IDbc77kegZTpPKCmljl3GUwoGbCZiIIIxuDntr604W0imS2hDdiOgBntPT4/toX 6lkcquiTRFcKWYo9eM1IRg777BgxP14hlK/IB2HoX63KAylsQHlI0alGfdqGLfQz+uzhqBdt+P8A P+ZOw9GfMwY4ka0pisFD7yFGRUIP+eak1XiPr8zLzDBgCWfY7CDyLK09C72SJVWdHlR3N/5vQNJS QC3zspJG+25IG3qaorFJbKUFakYAQlHoGCZM7HEGOmtqpH6IkZSSm1W05E46RPfO+hDr+ZgqRdQr hzUbKJpsg7PkDizcidjuqNx22O/IegXqWflZmoIsFKzDAI/SBuzBk/cJnyKkAgAqn89x/L0Vtd1L HxI0/HxkIbv6nczrVFDluJ40MgSoZmVQduIG/wDpDeo+RGHEzTlW7cntsHDoX3A4NMmbkDi25H7Z CbfHL1MwlSqY3LBhSekRGc5xP4GhqsWlN1xiSOm4EY+do7xqU5ei4+Npoeqz/JdUV9is9qMBWZBQ cmCljtsV5AE/G+3oFeTY8lejtltj4k2f7LVuTPbYt/OLgqwCswMyo3CmoIBJWWWtapHabPi4zTTe lR0TV0mOc5t87qh3XcLt/IqT87R/VvF9IxiL6vmfmNLH5zxd+xeE2bf6LEWbnQkuQx3A4fBO4mck Py46knCUW+YFZAhJOIODGCTHfWRWIS/ThDKVJtyorTaDMRAMbCZ+NV01iujxRqEXy2dW7qFaUH1m yM4WVJNxQMoChxuAdjv8ehFm/wAPbIU5MsyUux0guMajHnwZiRRy61Tf5J5cmG5UkpurHfyfWcRM hsbBxcfGx0Sm6LMIQqtVBMFuDKwacKkAlDx67O53HoIeQeVwnOi5GW5aVl5Y823n1sSi7oHWfIbE oRNirD4BO/qRIeDoQq9ZaQVAqVJPowAQI98nPTOgni7rFOHAp6nEYFvlukjO5kz7949olkZGAAkt PvdaN2E42R9sY1dkCoruA6K/Hbi5sSSSGG/H06Y2SLyjAT2zMRW5zfkgrNGA2G0QrIWYr8MRxVFJ HqGap5545WzQymlj17XagUmb8VVZYr1NEiUZzMvwYS7dyiLkBSPX1hapJq497oXwrVm2JmIr0DbM o66JIFUXZlK8qNzcgbAD5tuedNnKUzclCbnMJ8uZKpwc+8+/UMdrUqdUG3mlrJEIZACjtsCTMfdO 0kw56txSDwWSzxqvzaVDBa8+QeqjfZpBjzZAhdaEsHUg7eqe+8kGqMl64WOceayyJzi7pS8mlzBL h0KfUMSVKhOrcglwVuFrfC0yWia0tIIIoebbCislpgs5VgV3+6lAxPGX9nqm3u1kTtCsppZ6hLKm NX8XFo5pYFuhpyVUaU03LnHVQNniC3NjtcHbWaujSFNWU7gWpXM3OAEhNsyZ3k7bZ0H+Jrl0rzal rXzEEBSjdb6cxic+4zPU6rrhZBAGNUpKkGo/F6OaKcemQqk0L9smj0ZJCoYgmHM447ex+xH6afLs fyr280ybUjTM05E0zKC5GOyGmMkU5zE2N+aqZORV9napK0YK23Fl8xdNbEssA6zoeeO1IoQsRil3 2MT0griZFX4hox4tRJKbOPXTD9EXkCZKeWaQOCxDYmp2DIgErvhLgVIJx4HadMN8dTw4lRyR2G4J zx5CUUBfU0h7kOJWkLwUq2CgrzRA9skjONKDgrhb4qhq63zcuYmSczEgCIwDvvq+91Ax5SUrKPFm DlGsr1+z0oHCuONNxsSU4lWGzfz9R4ptNyiSct/Qg+Ss1fiCF7B2fQLssm4lRyrI/CiSZjIhRgsq IEd+BX4dQXVjsDseIHIcWIIP8x8eo/WquDwM2KswUsrVrPlx4/LMR1qq/C8dwDsG3G/paKq0vVa0 paqoWJuaTLflgQDIuyd4GJEHTBUyooIU5OxHl2gD3zMe2o5kPyo5nvMbsCVQbsS3ztLl8qFBX5b4 Ozb/ABt6ZMwulNzQ1pRQ4dlO7MnyWZ1Qq31bjbgGICqdtj8SnJLO1J03diAtOqandn+FZJs3JgJp MEKjNuP5qCNo9kOSrcmKpUUZj1sHXgGdZlkKGaftKpLTZF3K8ifg221pRZel1tIIFzTdgJwRcJM9 htAuB3nWNVLU4gBJswqf2p2+Pfv/AN47yP8AoH/ur/ufWepTyyf+MYv+wP8Av/WetbQ1B7H8f+x9 uuAeQjnKzy7I93enKDQmyBN+ppRpRe8vbqXktkXnJqSXbdm9PmDJ55couh2VXyNpqFUzC1YUdeap NcedZyfqQsIym2zcNgw5Kpj6u0Qys4y8iIOMsaCDTyximdNpQmHVVmAuZSxeSzy8Zkey5DTnWtOh g5Wk5OO2ViT1LSoWrktB5rDLw6IjiyxyV5NdeD0tKC47s7cqjgOTTfSlCG2io2OXFDkQVW23eWTg T3OOmhaoKkPOoSm/9K71gi1wt7QcGwkZ3Orvez+LSUfEJ2xlyji4mHlxgjJeE75g7Zlr5CmdyJk3 xVrVGjkrNl4sqt69V36ZdSrh+z/iOEEYtTT8RHRaTbrfJdnr2bKBZFZd1d9t9yAq/Ynyd+1FqNh6 RwyL5sUqlbZKZFGX97LkUczedOy4Cy6mu052aHBlRaOB6i/0fa1iaj7beO4McvmRj4dIso6VvGcG H7ZKAdpZaoZ2euRbiFugqzFUl4oBqDLbS0WvJltX64lUAQ3gYCSPVtHUjX0p+RZxTdYu9XLBp7v3 gqyQRuAMKEkj7BnVqcoWDRnZhJqu3WJSVPqHdF5TUOFp9Nw44gkkFSFBDbl6vhactJ5L8WM6ly67 /YgKWHZTiN5ug25D/wDc+gJ70/qX9s/BMquhYGc2u+VTjDr7i+Pi4/OkOzFjdjIZdsU1NbSitUPJ ilAS6ihvuZ+txdKGXjWtpzrQKFjiYmVVl3ZAqKVjYji1GZ+wh1224hZqnoaYoX1AvqaUFJtllflU n2O+8CcfXvp98T8bcH4M0W1VDrroxeJUlK023JQQcxIk46bTrob5n7h4Wm45nl5sE7gOHbRpqW5B pzmA6/JC8rHYlJuRsSDvVnyL3LwsvNyp4eThs0EGQxm4oXcFOxypV6Mgqzf3E5bfP8xtyO9wf1Ne 5Hm5okddY4AyozbG41xO1VzOESWhjUQTnNRBQy4VuJB3YKVWO6D7geUY2XcpTUp5OROc7IT2CTsl pvlKxUztEdkSRF58wiLUyqGY66OHNvQ/UuBKHEoWHGlSDIyFJgREAdZE4HQN/wDlxb61s01Nc1eU LU4z67SLVJEmNzdkxIzAz1X1vzHCzMa1QyrjlS8iR9mI25vTirMiNWk5SZgOwnfYfIA2XWVz7rGZ iiq8g69VOUpL+4wcMQxQfbZuXU/x9X2BAG8Q8s1DOwcXA1Wt3qmNWlHmECMgWiDlQ0bm+wJb7UUF vlSdj6I3iM69eqZXVTqSpEySy7yMgKh3LsS1F2Ys3M/XiDx4hfF0y2FuhtpCmlptReJjaSBOY2I+ No0VUXHlcQSwQ5ah5AUps5UkmICh5Yx89RiBBvtryjTseSJH9ubNRqqV22XYCKD42O5KhQN9jvv6 rV5/7o6ZpuLqCahlYy7Cj/d0NvorKoQvMo/7RvuGU7EANMEjb48j82TS9Hy5TyoPfvIotnZWmUPJ eIVp0CsjLSauNut1fgwZSaBe5Gp5msUzGhZD2TpvkKahmVCwIOwQEFKvKlGdVYsnynHZu2qX6alP LKyN1lCrEtpESoIIMz1Fw6HbGh/xT4s/NyRTNuy8VFCE7WyEzESD92R1GtPnXvj1vbI55GKjGnUF 69mkSglF05wtdqL3VexoEH4/UFQOvCtep+82v6k9rJQY0OaNAxN8fvRqwlRsuxXHUsZ2YOTWuzsO DMN/XzrvitdWqMjLtOCs5nIPKbWX8hgrEOyVLbMNxtajHiWm8abP6dtC8F0WIv8AmRbIkcs1UFSK 7momYzAWprvETCMhVnVSwn/PiVUbHBaNoOPJdqXYAUHIctgYtVCbbpI2MxsYz888WqeOcVq1kPuo bcm5ITbnBHmk3DfoBmB10PJ+a+S6pdjK/wBqLNnt/OrY1iZ2pS6sH/Io8+PdsWKqAB/aSx4L5tq2 ArQ1r82+mVQFxvRLni9OpZwQXdBGIUMXeb5SKHcj+aPo8V0hV2xsXrkj3B+rVrNKBGFS2QsHsXtK Q2WasAhXY7cvTZqWlL1jIxp7JB5b8iVMoyUTyQEJM3dkLKN9uPMMEZgN4qitpahPIRSoYSoYWpMu iI/bwFDIBwI266rUnD+IUSmn0vuqdYWFFJPfpdnJ+DEe2rT6NrMNQ0hszH68lK4pxo/NJsOFkqp5 9gkKqu8i/GaHZjwDnZqg+9+CuHmYqtAHHqtkyJHksxFjMhXsbKCwNCU6hSjbf0AHkJ74h5Jnafqc 0NdRWeUJwGIamSCmOJTbqXIZguzl51CxRrPPlRyHCLs9+8Tu0KmrQgZ5EnV6m0gayn+ShZy4KdpJ mVL0qtVD/tsOI3ocJabpuJ0hcqLWwVNNrnlh1aykpBSbvtuIEgZ0Q8RqXOJcHqG3DbUNpCyN529k wIn2G3zSPLuqfkwyFm1SbJJkC059n0WMbmtkVbI+XIrHKpX9+v4+UjyorXW/Q9rNYebeR6fQcKX8 YS1ILPUAsVx9QljdKTLPj4WOsMwsBCMUtzIPDkwaj62yqtMbTWxQtw7lTkY/jY6ZCKrUEtwWp0rL HUE8QpYtVuif6APGMrNXzvzS0MZMZ5aBoulzUOySIjqGbq3UvJYNKdsjT5CNUdevFUF0ecUyWR4h RzOAVrd6EQwUJUpXqWoggJHwkyZ7d9KbhSb+M0rRbC1GqaucCokhJjywREY9Ubkzq+uT5HiKGNHS Dq9ShvSyu1HagWQWlNkoik/GwBAViPkgRbI8q02F9i1Os/j1aiyShLY/ZQMiNQzeu4JdPsASPsf6 fVD/AHU1DXsTMzM3D1HUqXj5DWODgT1LNw8WSZVqxmzznkJCjsEnQbtKqIOM3B2b0zY3t7745kYZ 0cPIC5ExKXPyaUi2MtHoVeWVnPZFoKAIVs7UUH7D+n0tuHUKX6Jlx2qaR5fKHfIYMEwc9QASQPrJ OmDV1yaRwspKm7QQUJQXP3YBPlj7Nz23vlk+RaX2ljYsp4HiElzYFArFV48zz4j44VVGBAUBd/TZ k+R6cxVUq5ImasESNqEzlWlOSc3VX22CpJiWAZgwCnajD+Ae+EltVcPN5K82ukPJLb5MmYlxxjkd bRLIbcKvxx/pwnN25lgp4d7048Zq+naw0Kv1k4nkLxXZOTSS2JHIMCwm5Us+7mpPMvyO07NAtswi obdRKYHNuLYxMSkTMyfiI1kucRaUhSeTUGRgpbkA4InaJn7PfGr7/wCN+H/wsz/YP/vvWeqEf4he 9/8A5NeS/wDSS/7/ANZ6IvoH/F/0f+esf84/8Af9fx/B7fy7Zp5q8WGp6vjXHQ1NSz5XSgVQnOub OmOXN37upoE9shajcuq5GKJY7FDXMWWT4t4hqqNjurX1DCpQRLsN73yA4ORNJbY08atHAsqSr0UA IXiwvysf+I52fm5FDKuTk5WWUfiEo961vR5cMtKkPkNcM15qsoRLqW4MrHhsSWX7W6Hl26icTLxA zJTgKyydQGFSRR6gr1tSvZJezudCS8uQ2N65xIb4W4pSG3QGmSFKIsXssAxCsEAny/foRWgreeWC LDzHUqje5wrKd8RzInrEx0E48C8pGPLH0tcrFSz9D5JljSTjySQmpbGkTk89nNmnzV2AbkhYcvRR +l7yK2T7A6XFI5K4WZka1g6xmY4tHprj1dOwVMhYxjUcUpj/AJLJ1tR1RkM/Xmz/AE7+EN7k+/Xt j7fT1NdCwPOvL9H0zJ1dpnKOHpWQ6nUMr8RRA5eTHQ7a0JzyPx449HWtXpPmg9Jf6dfFdR8W/T15 V474+8dUhovmHlGj42o42XbFw9WxMbKV55VMNwch07j2Vk9jaZozUu6dU1WniukZbLTRXKjU06kk IbQs3XXWqQhNpTAJJCpx6f2nX+S5VWtdRVITLSGHmMKlSnUWgISk7zMTPlxuThm132+wvOGMbVyd XxsRmWtMitI5lpqzMKrdPx84UG+yUqsmYBv6yPrWLzL9KGkRne0r6oIO6cPy8hBwE6UuirZgruDU hmPbQ7P2s3yE9Ws8392dJ9o/A66zq2HK2pUcY0tPQUnauXWV3IW6IaTXjJ6KJ1ZF4I9GLv8ANCvI M79QnvnonlHnkdVztM8X0PU5fwbQdGObLJy61ycTBo9/wPxr4mn6XS6Xzsyy5ElSF72VCjsw7TfS 3ObYtDTCHS0HFn9KbSPMF+5MRED3ydHvGangrFJNYwusqFJCw0hu9Y9JUAJgdJM5GYAGUae12heH s2O+JC5YNVgM/ZmmlErzoh3SswkyFec223YsF3AM80FPBeIXM004PZcMWEzXjIpV1EVSAYKrWV1c zV/niOIJPrmh5/qHuHofnPkviOtJbEzfHL6jo/kUtQy8i76f5DpVl0zXMOSHPzcOs46vi5UlzH/J OZMTvj0fGMcjIIft75zqppp2nalr22NqMp2jDUWyPwZ5eW2LCSx1HJU1xUpvBihYYcwW2XHatr11 6mhep0oQl1o2pSoqCvIoqtwlUdI8xj9oe2hPhfHOE1DykNcLXToSsoAWG3JgjI5ZV8wQM7E9OreD 4HDPxsK+gHFXGoqlKIipMioNKRaklGR8Aq1FZCQSWH9o9FvL8Qx/HvEriMHN8iIuzhSrF3QlnLP9 1G6MFZySmx+Tudh3+lrU8vVdCfS8/CsuZjZRj02ESskUcYUTKRWjkLUyoZcdqOg5nl/IXV810Mp4 XRDOQpXGUu9IRH+dX7S48WoQp/r2VG322YAncb4nVuJdPNdQVNmFJSq6AbQZMiJI7Z36afnhbg5q 6FVUyypqEOJTcPLgiShPScSJJkjJ21w59y8jJydWyrT7R03YKjU5K5RkXkQasH3692RW2LMNyCNz WPX9QngN30X96qlhRlkyBP5cP6aqtqI9Z1+52V1V5hkBN1PeXRpYVayfJyLN2WozyYyLcSBNdpgl CzHZW5kL0qSpHqgXuDhZavirjT4k95DBZjdXmCm0qPbHHyoZnTF7S25jVQTvp0KqZ5LfKdT9Hcab hKfNtO5kbTjE77aWHiukqKOoqy60o1DbqgVAExJSZOIH1TPWN9blyNPxlrqOe5/dmzpjCcKM7g/t rPHabNOro7sH5cVCFW/rBWM637hUwErDFbFwEtNDACGRm5K9Q+pMeVkiSojczbJUL3NK1BNVYMMl ysvUsHA5WxpxaOPlam2PkZIxu28p5FsLEVg+YYTsaMGlKzcCiBmJYKvO/FWxsDGyvGsfCzcnI0rO 03VcumINQ1GscjeuRnLPUZ5H4WTVEWEq4mGmfJeTJbGdt/RBS09Ml9tFQUguKAbtVf5SBCiIG8DH ec6V1bUcQU3dSISFIBJUhMRgRIyVenoR9emOHuLm6pkJjQ1TjY9m6TxjSptBLKH27lLENXHW045I VVrszkqCZYnlwfH09Mw8cjik5Z6LPHTedEeQeWVkNZXaro43KrtBSr17OUxx7d+MmGtYWTbGz1ws W+Tk1OTKmXZ6GTIQt8lHyMijpOtK5dbW78eRxwyCTCRbj4O+s5d8+GJkTxaZLM0oPPKZa0Ct9yjv ORV+NBJGBT5UogHL1JxJ/hbTppx52UpSXHleRKFkJ8qsKiCDB6mTjUHCXuKVLX0hSVl1ZKOU4h1K F2wLjehE7xiYnJgjTtotIWzJLkcil7VKSajRWllrtNGeWSJtjhk5CK5LnkzM0wSACJ7mabjv7dVo ZVTpitKMq2yYoEBsVX8l9wAacQyPELx5c9iNoxpmhPhZU4hcgLspUsbN1Ion3FYFgVopCKXL/YUJ C8QvIpeW4p1bwzU8I470i+mNN6Trx5c5qjSedXm7TirMlJnZanYh1A9YiFspeYcDzDpQ6Daj9J5V CUKJ8tlwBIEHbeBkoYpFGkrWHgltaqZafMrIxOMZ+0RnXMzJxT/ED1JLgW/Fp2IiuaVvj5GHsnY9 P3Bj3r9J1QGfEuSWC9Rf0reS5vg3immeJ5GJpxxbWXvzZu+Ll5GRmjHE8vJb8isyV5PEokcRpgK5 a39PrlvqVJz1WUs7HXjj5FZWTliZCUpj5SD9pCA5INsnLeSuGVv2AxY9wNXiXm2pQ8l8awsHUTi6 fLL0jDnhzdcBVkmVNbUy6WupDNOyl65rXgAiqaYoIdmFxcVNdw1hhlKUNqp23HC4m5MKAKDd5bCQ FHYyeuNLTw2ywmvdae87zdpQn02q83mmScDpiQT2OrCe69v8uhDHn13v5hjT5oHRWnfUI5KKq4uw skXQPEvjn7uaPkQ5He6Gm5BxPEY5vXXIfC0T8uuJHsZ8mOLh91FnyhMFa9RHM78iHZUdUbei3n2O y6tg1tmfkUydZxDKNH7os0s6UWWlYCkw5KOaOx4uqT2oQBxu1qNLYntzqm64lLS8O12jCOTK0Jbe O6hWVC7zvLrnIGroALUK9SlXCkrN9vl09MiXlf4lYubEIIlOZk3T02+/RRUhP05xaQlFlKBClDMg HBt7jYgjI6aDz++OXfFnkw8FzLYl+p40Ot6UO/YtXFVGAIZjDfJQTo6zH7btFytS353vNqLVqLe3 evzyJg3/ABMfUMJ3nFQzo9yDKC8u5aGdKSVeI/rZmPod6Hixy/HsWl8zGxJjBjTJyuK5ElxvuqK9 ltCSzkglFqNeysAqAzblJHc6Dp08fnLW9OfiO2m9YvJUxZcjRQMgqZKHDMxcMtFmQj8AryKdDToS htanELUhKElwBABSD5kLQk3YPmBjIzJBxlfTVtZdworUf0NPgGJT+qycbg/EalX/AHcv/wBOte/6 V0D/ALX6z1Fv4Nof/lTon/NU/wB/6z1q88fun7f7fP4OMXXNTI/GnqWdKK3xp42fkyx3mpVOuGSW VFWrnJZp48yo7WUnhupHJuB/0kyp7N5smrUgZeTY9/dWoaerXyqSiEdAsw+ZQjsNC/ENc2qz1Ncs lHlbLpUSnTIyamk2aQ68yDdOTfkRks5q5yQUNT18h92G+9lPCgp9ndelmMuOn8R1GlF5LWjVw7Un KnViPkWe69TiClO5nsyoLcWZWPxdRVR8NXGS/TIj3WDk+4tGIG/TQxQOpcLgRCkht5QXtcF2SIzF tu5JEk9Bll9m46nLz3xnVNPrTB1TRq4eTpmrTIGVjZWOoE604CSwcY1mLpLbgLbsaohnT1Xfpfw8 zVP0z+NDSg01rresd+otmItrPaWLS1Mm7wDGor2BxSbGlu9mJUzSXln9n0our6hTTsfIyZLjZslo 7PSWPVzTpCUuD1Vd6Cp52d34ZNZIzHp9esr9F2Ej/pm8WwFhipWGo6vSkYOzrAnUwyFmxsPFhFi1 FoZTggLhmZVZizLzxvWONOtt23+RCZsuMqjMSCkeXuZ9tfQf5DeHJrK56nUVquaDgSg2Tc6lspJz tfM+0ACSRDPIf07L7jVceT9ROMScNcwJm9VixYUSWQk0h3ASDVlKdOBeYbduQaE9gMj2/wAXPTTN fxtP0OyWaum5ODh6ho2R+RKaZU8rTtTOfhFMmcUjkc8ai1RyCnwvq7VsZJTpjWR2DILK5V6U7Pjf 7bJwXfbZSC39rAbDkJfMMTCz5X07KSubJ+ApFnc4xfs7F2FFCsUdV/vLv/o+dvQBR1ai4RUVC29r mUeVOwiMmNuxnX0XW+DqJhDyTw9FQp1RUp1bfMWBiATcCcKME79u/JPzX9NXttoWdemgeM6LSmRZ 8hY42BM48LdiVVsXDqP4NiKr9bYscfElDF/abFjMKqhj9v8A2KjqOs/Pj+nuooJL24YyVPG3fSiu yuqtvV0pHrpzX5APyF6Sn2rtrF+18ZcDTUvc2pUAuygBAk1XmxJPVvtsBx/l8/BA8N8U0fS9QMox RcbAHCa1gA9C4CM1Q03+/Lenwf5Mvx87jp3jHMVyWl1AnKil1x3zG2VEOKVbO0JIHcnAFHh3gCld XSrS1TssJWVC+nprxECCnlCJ7kk9cah/tX7aT8Wwcc1QqaPCiqitMQYBUMQjT5BSebAt8jnxA4qB 6L/uo9cPxZOBRUrj1jRaAglWmODIQvBeO2wejKrb/JUgbzXEwFflPgpSlQJMZBSwb7UUK/2HEKDu Rxb+7vtuBr736kstFbCKgyeZ4llVuJAUAu7bMAOX0RCqIfs2y7n1RqPMltKAEqcdRere/YDGIjJ3 Mz0idOOj4PTcJ4Y800iEfR1pjbzmJWRP7WMdM5zGuNfvXNcjO6k/e3q4cTAAWiGZXiyjZCGRtjI0 oePxsCfVadX8bhqkG3ktiwaoes+ZUJLY8QHneS0A4qe754Birbberd+4eki+TS77Dso7s/HrkER6 USkiZKVLf5sibsF4c3YAkADZWE2G/PIciT0Z1owoW2YHr3PYrNNz/mgGUChLHlvsLbCVtLbYYYSU NSAUeTcJ3wqcg9ozvOkH4np0VT1ShxSEocKSoLMTtABj39u/toOp47XT0bvghiywWdyO08SiKwRe gU2Tc8iS++4/p2+dmR4vi5kXy59l8lk4JQ2RHajVSaqCspoJmLCxanY3JgjdQ3Zi7LGweopkxQRy D05FbzZpGnJhPZachNJmgosiXRm5B3+QPUA1vTMjR2NoZMm0/ItvhxDMaCjgDg1tutC4VVbZEHAE hCSznVFW4tRRzOUtLZUpIF21sZkb5yNiZE76AqjgzbCDyG7mSReBladgAE7LukyZBSB1nEVn4dBW Vam9ceJUxlVbpzVT/V2iU1IfcVPJCycuB23JM6xlx8TDjiQm6LJKBS4qnBtmtNpsaq7sqBJNVJP2 NxAVQPj5xsHKzJA3xWKGKurAgqWKhUciNnQizqk2ZXXmvEWR9thIsHRa36u+aq2Nju2Qx7FWrBFc lFIU9kwOE0cBUYMRV/6WhUt/6M2VnzOAqWog/q0lMkDEwSnHUK3xrligtdSGWXm4m2W5tmJHqGCY zOP5QyfL82qMnKtdqws06jtDry/Ze6mvNnFDR4ikgg6yzOwUyhrybSctWpOaWk0woWYi37dIK5NM d04PuENUnuzIzCajfi45OjxWo5zijpTm6UNFd2SMgvy83VKCRQGicTwYoRt9vSeslWFYkutXHSSk F41mAiQaYlQBWnxG7Iq0ry4ryYbeuxclunfUllsrqG0hElCwIJNwg7QIjoYnXT9JyFvAtlXMQRvF oEZ2M7z0665Tecac2J5tmQVppHFzcpzNKRFOV60rxMVlOdZzFAXqlnWEyHsJK4Ulvxvx6mreX+BR xKZOenkOfp+OqxnYWOQmYcJ+4FZDIJKIcaUSz0HJCyLI0aO+5qtHz7IfT5QVqq7VssiiqZrSkrXj YWIyArz5IFFup4oAqw7XsZ+lbxzF1z3L9v8ACzoLCOjYusazEPWTLXKx9Pz74zIbZk8i0oZbRqsU HTJhKthQTChtVVUF8EYd5pH+Gvttna3rO2SQYnHTfSV4UEt+IOIIKbkoS4UJmLYUmc5PmOcRETEk xu8+E46joeAmPGpTyDTZOpdm7hLKwlaE2lkBky2+cM9isYjLF1DdZnS4mt5Cy9ttepM0mq+H6/LJ KOjMC2h5aydSiCs3LluCGxWRrRiyoC3qnnuhBa65oCG8VTL8txmnNpvRWR8zGyNzVLDgkqKN6Sk4 YkbEn5Nu9fomP7a6270afDxHWhROAKqtdMqlGDya3CSTDPcpNlZprPijMxVf1CUPU1IGnL1oUFBN u5lIgmSMzk9OmtWodv4ivyq8tLm0XbW7+mNsaAHt3LHz9PjO6B4U0rAhZKSauNSuQRRy0eFXrN1K Nvkqqq7FlyFUq7EG+l6OcQkYOA1HiqE9ODCsyqGJUfSCNOSgVWa7MFKkEt9mgftHhtbThR7pW09E wyiFGQ9To9A1ckRq4kyzBcqROZYcQ+x2l2qPfFFqfjYyz/Gd5XvSbsuTEtvVBQkqibqah3kpV0PZ v6oK5vPj9VKyDy1NousUmSpLi0k4OImAYkmNUStJZQEmYvVtHqtgASe33jTN/iloX+pX/lJ/8vWe ot/Gtd/1uF/tMT/tfrPW/of1zu8pxlwPMfKNGtHHx20fyLWdJoxnj1Wo0/W9QgkpqA6s4ynkVWor udwjL9ixn8cztP072a1LBpT93Xc7W8fGxpRDZVtQyLI+G7h+hzi4uQiCl1TrR7ynKr1sk3EfvFg2 073U9xsQXmFXzTyeyWbKXI3xH13ISNC1jkTnOUJoakzbaXJ9t57H90nLpmYmAmTkIZTUpNVVWlHv dmqZ4mLPGyFqyvSdbhIT7eSUK9KmjPebFXw7hlQo2h12gfdRF16hTtZuJETM4GIjroeWlNJW1YYF qUrdp0oJlNrTikJKhiQLSQMeogHAOjX7ANk4+u3vbsvi4emZtaYqt/Tatdkh/JxRxe5QIZJUHHDV GOlSU9Un6Hdcy8j2H8SVuRaTayuQEEpzpk31e2ZVUVKpxFK3NgqUotWAylpwsqr5QfaSTYXkeCsK 1yRnL+FxeQcC7stpFMhmqr1asVnSuQ0wVcheO5Pr09/oM1OuZ7W5Wm5CZmI2h+R5OI4zqC1tq4WB lKyxEY0SDUd5ToQ60MnZrM6kssfG7Si8m1KFyttRuTJTd2zjYyYzHSNfQv8As/8AEEDjK0Kdh5TT 3kKcYIk3T8GI36xkdCrapMscdGCoqh6F48QD/Nz2cjzPIlmJUb7j+W3zGc38L7XhiYrmlAgoIIAa qoB47ht/kKx+B/Lb18Wnzo6yoizVEd17F5s31NGptuyyeaOQSqN8bKdtz600x5tKJgizBGxcB+Cs flW5NutOQJbkpAPLYgBRyWDyW2lXTbzOm/pIHcfvdumvuZNKl5lKQQvuYiMp9zPWM9D30zDJy7jK XN3nObGZ6uCbBFDKP2zJV35bbcT/AC3+ASC05efpOiXXKyKLM0aazSSilb8xxE5RV1sXeihEsOKu 22ykbkN/lXlmm+JYV1vkxfLDcxJmSbND7s1BCCMrGb7ox4Hc7EcflTWf219w4ec+9WMcqk7YOh4W q6riwredotnQhj4mJSi2mi9kHyGzJbTUi8JbhXWat7RsvuuWIZVavZ5XlaMdlQZ3ztGO+M2rf4dS pKHKhpKzEgKGIj5kZnbf7NX+0aq209sjNV8VREvKdmIorMDXheJ32IJb68/7T/wfmqHu1qsr3bus jYqCpJLPyCshAVG2bfg27BNl5Bttxtv6es/9RfhGJ5ZPxLI8j0XF1jOx7HA0S+q4ePqOrIz1JGHi 5FRl3qFRyU/GV34j6hXVjU73c8+lk6nlpDUpkKaAwNCGSrO6KrmfMKw4qjIxXg3JQqbDfVZoH2m0 rIlQ9DePNFoMK6QY6HcHQ7X+LuEoYeYbrGlO06LFJv8AUtqAoTGIKsYME7HoE/cPUdLvk5EXHBEI aqIDIOsyyojuxoeLp8/C/Un+3bc1l12FZzN8dHdJvkUYtwohEmtxVFnOKCgVt1QDegYlm5KzOy+5 HnOLpeVlZ2pZ4wotSID5bMsZ5NVEpRpcrwO5XZHL3ZVYFQORBzR/MoZ+Bh5IyMPUNJuGbHzMfInl JVKY4mnUZU1BKv2USVp7pRSxWwnQFRcVS1KEoeebdSzm4NGZ9MXEgREkjB3+ZTdbxvh/EeIOtpeQ l1zLalqwgCLoBHmJMGZTERnTXo2tw1JbZILJyefO9CwlyXgSox60pJCzSCXYBiWREAHIMs5WMLYy 1tNWBVWNzBClZ8iCy8plpsS+/JVqANwdvhhWo+Q4Wg+barhxcDSrZD1TbfZFyQrNJYqXZ5buZTCx TgzOdyTsbEaRk42Tp6ZSY4JaXIrDqSXFvhLUXezNRSBz4tRS4481YnjGtCqJBSQFpqfIhfpIA3Vb CyYJBAkTqnwpxD5UkPIdS0u1SE5nOJJzkAxuYB+rfkA4SbwUt1yD7ys4LIw2+E/oVSNhxDAjYbA/ HqF6lr2oYtAa4taydy3EZBBDqGWaynkOppRzFJ1X5XZuXOQADzDNoGG02Q/EZNNB1vVaK5digYl1 fhsGDqDNiePx8jHXclfyOrp5oj9T71WtmpRVFewMSF2Uqq/DEpxYEb7eu0JFTToRzOZyxlTq4KZK fSLT2k56A5MEWa2oS235UoanohO8FO/xsNo6Z04v5TbJqspzVzKQcfuHZjT+hGXctHpcc3mxV+QH 9I2coIZt6RqeyXdQdrTolbCiyoaI3bTucs7chQPkCZAXZl47GFyyaM2Ms6sRHmxNXrdIqpImsxkN SkfoGR2kxFCVAWewPpwxMtEaSdtJgFYyyXlzCoGZeTui86Dkh5tRacdwpLFeRleaSSgJWt8Ej6Kl KIhzy7kKPac9BgjGhZdQ4tSlG9M9FJt7HBkzHfb7dU49z5ZE/LauQWDk1ZzZqBGx4lUSaf5KXZp8 BOgVhS/dxX7berd/otxr1903zbGrz03wjOsryZoSrkE4OJJ25RmrzZ8lPi1kluACd1BNTPcKyW8s yMjkKoburIqlCFnR0rBrK9MhnUAUJkpxiKKgbdaBehX6OkjquNrGfejY2sad49DTtQKyjIZkqRry yHE8moR60xuzjlF2Vh149AWY+jqsdUxwJhSsE06mwkmZKeX5pjE9vecxpR06UnxBWgpCkqcUlCtp kgyBHfAHWZPbVdfNuZ8j8bitquaeQRDKQGZjK/Nt5zGWyNamVOYcV4uV5qfgEW/81p1e1fliToZK 3g+sPNSFDWLaXks60e1GJQOxI4D6OAQjlhxqJ528n8p8SUI/+UeR1pMLOJdzEuk90rCs1oyJB3Xg WXq+GAZT6tx7h/jx9qPI6PWqxt49Uuyq0mLV6YzDCrI0RycobqGms2eoXaZVhZqo/wALQJLa7uWX 1hPmtgtiyQBuCYVHQ41K+kK4xVySAGAk+4ASJ3Hv7DuZ1Tvxn3KbxygljaZHO3wMTDyGyLJw5xDV sZzMkH5Ey4lN2cFCXUKw29FfA8or5jo2Tky05MUxomNkYlCHfGrkyebTDshlWdCwdH5Y9KTnXrgx mSaojDpplzK3HHCFSpecguR1krzdZS2APwxlAxXntRscli7mb23bE8ews/O1En/LzJpyaKFvx4Y+ oZKFwiinbkUCsn7bKgQEty+V1KimoApwBRKVNMlSwLVoU55gkEkkiRkYnsIg6vFeG8JRwNupp3EN 1Rbbi45UCACRnO3xn2gzP+En/UYf/N2/3vrPSj/GXQf9Xb/32/3vrPXnL9/u/vpZ656+8GoJT3b8 4q8vyVl5RqMul2RI5A/M7qY1CsjUs1qTSVKvZgluz5/oLZfIjDG657YKW+sEUclRrfbq3xcgUYik 5OTCh24bPtzUhg8uw9VxfI9RbMMraxVntkF2nk1fPyrWHeXWrO7ZGUHyJUu71LXlkdlAvX6+s7J/ N1QzzrDnLJrGN7wMV4QZ0kd4QY5FRTgjXj3yHaCjfUB3BTUiV0PD0JTCGqenUpYM+lttsAJx6uWT M4kDO+sOpt/ONShJkuVDqpj03uFcbm4/pI6TE9dEz2x1DMXzDxSDhcnFXPDi6ZIZ5ZTnIuwnahd+ dXXCU2rZqJA0DNbrHr0lf4PLWs6uj+4UcrMFYnUNLzca9smZH4vVkQPFZfvEWE5HH6qWWnXQcIcQ a+aH2wN8HzXSmnkyrlGmROVxxSizpHK7rYzDF7F/J/Jsq0WiKqlw/LdSO/X+D38hefmPmGmVdVjn eNYuoKxZQ4rg6hGq46IkzOLZMa5FKvzHBMKKUQclYL7xqP8AEqaablXIC/V6rCnG2NznPbTZ/I3X /m3xIwq+xordRBG0259/YH2667HHJxVe1jMybIgu9iyzLVG6lKj+6G25dm5KkkcW339M+s62NKwH LGZjJO2hc0YpM7/B5IS7BlV14GbEbEMu5AY76tsjUd5IqM4mGFRJ124qzAMeDgb8lJO5IHLcfIx9 0fIerxvNyD1hOinwG6T0pJOtZkgqSd2CGKUZzsCo339K52lvcS2tla0ImyzJSDbM++B8R9n2+fEP KpFLD0KbaFp29ESIE+qR8R1nFKP1D+5lmveOLk0/iGYZ4pWdHe8VXm5mJJTjNaK5pVihROYqWW5c ic+w/tafGtMj5D5Vc4Ot6rjPkXyMq0ueBj5MUbqpd1SUQqu7vMtxRWLlwpPGpsczI1v3GbyHLpKu Jo1hqGJ+UhOPTL7j12t9kRxKhLyRryDskq9ihpELfP8A3v1nO0XUcTTM+2K/49o4tYDatEQslail WrXGh1BqF2RUZRtIly/ZIUquQ2y66pkzci+AmCmJVGZk9OmMaVlV4xolVNXX1p+kNpStLDFl/MdA TBgKTtPYxoI/qO8g8Dxvd3P1XSMbG8u1DSq4EcXVNXpZtGx7ytWh/Ewsa8Xzs7AoL0jzZsZMhd2b lIqRtl+++u74kNcOHl5I/bnnrB0f8rmqzXJMeMRDqcqA3SiSRXetHYgwLUNOtmywr5ZFM3XaCqZA Vewxo6QtnPIoVe4V7XxS54ztiNyBJlzQNoWMsLa7k49r6bPLOnEF4BoTeuNDFzLLXKP7WWbJZXqI pQCqydZlGBI0hK6enJHnSgpSve2CCSRMkn6iOhOkdXeIH63ilXUMr5TNatYU02eWEFFsEpgx6jAE AiffQH9xPMNV8m1p8vWB2wvZ+lrsn48V/dpQQV2hjRNn41x12LvOrc6UZNzu9vfIcrTshsDTneOF lsMwY4u0cCtUWk75K4uPjzx+KGbJ+UlGNGRxUbqGKTzrx7IxfKtUwmlOGEmXkouRKYpG8EyGRaxq 3zkFopDMRCyniDPlwIszR4s9Md6xhT8bOxbqZPOjQXLw3WZ6XV86daVnWeRen4gmqojzY07AymL9 HRP8FFMj9Ip1KFuH03GJETdBEnqd9hoKa4w7TcZDjjplbhCQPSbokpVi4JIzj7NtWWwfF6ajJc2u QjZOQ862sKIzUYmuRQTkgHZM9nYihFR0ow57ISTn4jqUhp8cB6LWsJCHFSpdGk9AbVCOh4brupcB iocg8UC+q3af5YdFvPG/ORrynGvVVuauWNQs1q/+ZE3Ur1Tc1BZFPwxKzHTvKgMiWaesrWc2o8pS SO5dqVnWskbs6OWzKfsW+ez+z0BPUFXc4ypKVpQAlBUmbEYhI83QDJnIj400eC8aoWXg6hdqzBeT 3XjzXdJyYtP15g+6k6IXOGHFF3UMqiQUQVf29mWvySzkjf8Avj/Tt6Gup5WSaXhabdqM1QpTkHSi qXVlRdl5LNUbdVQb/Zv7CtfyCWZNayyIslpzDp2d/CtG3iVqqJKisGZZAByWVhQBuPpkzGnlTkY0 D0pRiodQrg2HCq97P9gZzrRf6qnr4lANuGU2XqdC2yRdKSlyOgyoFMmAcDeR9kE9bxJt9J5CwNrG 994nzYmOnlOB9eorLIrYHdZB5sF/GmeAotE3DFqGspjkQhqrkyCqUVlJT0uTJkqTWWNkM+zC0lY9 aJQKXkWDCZDB0YVAk2ynaZB29fmZwTkk64xIiJ2n2Tf+lIrK9JSlMMYtIu01ktNnPFatyZkVcnFr NjQOzAUQUiYp3kRm6ceyFVLsz8KKrytVFHUxZXQXW0F1DbjbtAxOSlpdpOREmJJHQwIk9zoXrnlN qUtTu0wLfjrOM/1zqvvl2Fx1Z3nhxYPqNJUWJqrAqHpR+lReztfGFHdQV6egVhWbOQt6f0R1SWn+ e1aPPItpwk8SmRTKxcXAx8pI1plVxIKsG/KKDGQu1aVDjsZDvQzy3VJYWoanPEEzWJfi1ojIdKCk wkZytCi7cTROFZHHOLbJjShNUM7Nfot8jgPKvNUyr3mZ+MZqZUGrEXaaLzJN0mK1ladXl02UY+Oi UyDXmiq5zWU7bnhypU4FrKKU2hSpIKijYxiYExvvpTF9TfGw7K0oNSkqsXAzEAwDMAb43I0y+Y0C +b+DqzVC4+qrMjjfKeyGlZKAk5c5m8rXU1Ee6QZTG0mVi1wfLNL1TyHwHWtM0qkhqepaMJY5bJbG kX54i9dLOst51g1p3gz9Vcb8haKhT7Uk841OmneS+K5gK1jp2TmXKSpjoKyxcvOwxRS1xBXaiMJF qTWr7gkcdyd4/qi8LxscyfR/IjJ41f7ppU2d34PJlT+L5Et6zM6t0uKoGAoo32YUepHyxQOIQ6rk NJJQzlSyQmMY7QcnGtirUh6vrIWhILYJuMGAQcbztj5G8xqO5Htz51VMKD+LaNM4M3kz/wCN2Gfy lIPK5P8AD1liuV6lJm1qIqc3e4cTVJleBeesabaVoqLYTuV/xprWuFjtdscLcDQOnJVlmoDmgB4s 6uhA2kNv1PeH8VI0jXlSj7BSumgqgVl7eN9RxMczE2opRwpyDTigsYkiNX/U14szuy6HrQSClbUp XDcNkSSlI/Q3yaWgxXadJXZOTbd/FePqJNLxt5wKVw5QQohSStkpBAInAPSADkY+dVVCighytkgY Bc3wMY32+euxMJf+5v59/wAQ8f8A/wC2ZP8A9N9Z6+P++e8c/wDEWr/7LA/7Z6z1tcuu/wDoUvT/ AHY9vfr/APr41gX03+f/AKPj+L3/ABImhnu8K/4+5TJHtxHnpGdASbm+WjYCZAtFDKe6GeTWobdt +HHYctwP65v5GpZmTkVWTtk5E3izlt1sbpFQ7OzKZT2oQZry7go/o5NPvdrFX/GvSaI6iWT4xodA h4gr2aZCO9G5flz4tis9e1uXCs6ln7Ssx3EAMUzKMzrOuwXIpTbmhk7Iygu06TdkU5MjIHd8Scao X9OLhCEq4Rw1aAUKFOUIO9qG3FISIIE+gmcQDA7kXcuS66CnzqeUUCfVhE5jEbjBmTtGip7Vtkw8 j03DRKq8Z5uTkUjFWqydEY2FqLNeyNb5w6mIXnR1AACnfsP+ivXs6PuB4PqdsauNgapiar49k9FM YyF9WXJw9MF+6crNc2w5LSE2ZKz3akHKpXG5B+2WPkv5RnOEer6bo1rY6b2EiuT+OlK1fnjuDARE 8isltOkollccyFvL+lvyk+NaXqGvTsgbR9a/xj1K8Vi9VxfHE0zUdMjOvClIMJ01IyxuYhl0/Dk3 Y8yYg3i2kTUrLkLRDSS462shYPltjBjYzEdO2ijwrWuUHGaOrcXy+ZXocBwSkK3TOJHuABnI16HL 5GVRUUgdZHQzTcf0u/FRVQpZmTizLsPo+x3+PkB+8+uPh6XSNp0E3PT+PYwVSxDOkhQzoVDAFWIT 5XdeJ5fBq0fL0zNwtOzMB1rj6hiYeZPiQAuPn4q5CUUqo4BoWnt8MFBDfPIgVM/VeuRjYuHmYGWm RhwpkUpBz9KVlidc/wBpjtW1GvOUTRDzdaCdQoqrq9ltxqqFMhRW5AuBm9QwMr6mJjA66+q+LcQq W+FvPhd6Vspt/ZkL32nIgbbzOw1UjyPyPETStuxJHITueWMtlarzNVxwBSMkVFWCgBhNVYKxc7bE U5mhar5BodtPxNFU5V4wEHx4MMnUBWpaGFk5t7xksoC++PjrTHx73c2qHYSZ0ep61X8ZOzFal1tW jrXtCHGWolOg67qiTNVlSkUowmBMJKooWkTfCdQ91szRUx9G0zxyZJMPy1g71xoTDJuiZBdCUaKU 5oqlmZl7WKhZ32aZhlLi2pU0CkL5jlthmfL5TMmZOIIHcaUTCnOLVqaZTjpQfUpkeYbdQRbMEzk4 nQ2X2k8qyK4aVwYac+nieOOxXW9mXFyEBYLMNiyfkTN5xVVoxR0owNTu1XwbWdD8ezNJ1TBnk5WR pun/AI748ZNgjMN8ZFwgaFOSQhjUkERmZ6UDohHIC0c9I89wsSGW+l4OrukcdcmuLa+PWlar+/2Y 7yPFVKNSnIUYD4Lbjch73J8h7B/D8jSNV0/MtKVcnvggikaSVEhO03p8u/SklXD2rW8Zko1WoenQ wWEoT9JDja0qKOe2yDt1WRd7lO3XfRG54PpkNh5xdaiNlrQ68EzE4bT1AHqIyAc76o15d4XrOfV6 V092zcTHGOqigdE/EWWO4RWZ+VbxkqKgoZq+7kqu49BUaPkx1YI61pdHnYgD60gFt3y49QQVmJlS s0RCCTu2x2svnebYeDkXxsrR9bij486Y2XiTwrIlRcJNNszUGtj1aTpNmjB2mkgAslY0SAax5V47 2Uy/xc1gwoA34eLjZC3KTmYW/fVxWlnJpV4ElQrTB3IUhoKypAS2llamkCGygySCAFTiR0j1dTtp ecV4FT89am3Au05LpiCYiN5GM4yY6nEMph5D1RZyUzbtKPVV4UDTVxKj9LSmytEKGFWNJsyqg/n6 krZNItgYlbynPpW2PXGCiM40KpkoSrzYlKFy4ZC2/DcnluEaeWeG5KvjytqeFlGIWBOO9ZzyufJH YIb1CpxdkuMaocMUuifUlkzMyaUSorSuPQbiFHVqTCMq0pEBF4vcrkKqkHmlm+w6zzs/Rah9hTXJ UiI8y+sjYDBI2mD/AE1jB6rolKZW6hyIhSTuN8jMdPnfcYImka5fDp0ZGRkTCXp0BKhZ3WA7DyiI XbvRCHf7qpLKpYMwPqUrqK3xaiqx3JV+xcblyBDAMx3l1onHYV++7EgqvHf0FsjWcfIpg2mpx7J+ PFkB5Um/DHchK7TE6tNEFPoQCxG5239EHSWkWSLCdJzUOGLTUpVyW2DMrSV2dzNC1QXZW2Q7esRV EG2iFM2lKClaS02nCiCMrS7MBJ2jffqCjhXFV1DbbSF3IglODKNoH8U77Jtjrp6zsyhDwigyKlZ0 6KZEpKoJSc3HPiLozPuHaj7bMoU7/P6+ZSOFSZpju5RXS8zJFbtPKNarPGVkk67cyppsGHAv/P0g z2c5ZjiUVOa2KYsgo5SCKVbjPaL1r8s62kwRV5hj87NWuZ+Vj4M5JVw15yWslLHeSuzIJX3CplKy nfr5pup4lNh64apW3AxyW45qgEtgjygWkm6BnY5A7yJxqOVammheL4BEzG4HQA4+/Qj1cYw1HLKU 2er1E2dckFZlHy+wNkS4yx6UmyTZKwqNgRyG6+iP7Da1LQfcjHyMG2c2Jm4DFQaJQiWVCS6hplqg K845ePTNW9KsyLOKcngKB/QXz853yWEsoszZL9HZk5NmYCpFUkFtUuZUZt958CCS222xIPsHG2R7 paVETP4FkyFa1DQtjZD0xSjETQqVzEbIE+CyJ/HI4t2fQ/qKVxHDX1uDlj6C24E5yIAInHeZ7bjS hfqltcQCWklz/EBRN0EFWQOpkCcyO2NXY80/Tlo/kGpNrunZrxllwxbuGeuW0j1ibFXsaG0gVFEw ZDEMWtlubOcgOouv+l2izXjqGOWnavVwx8xOtQqpF+X53F+tNsYFlVZUxzQluwol7p4ZxccY5Eyj Bd4wOSFi+5ZOCOikKxY7KwUA7nkeQAb7QSSzUKrKw5qONTU9T9lEZ+wKisGJclg3Egp17ElXo4pV IfCG62EuekLS480hCICULLaDBEm0qKZOYwYKTSMVTJeU2pClkFQUXFXKMEqBW4uJM4FsbEnGqJ3/ AE0ykrEarjOCZouOk6cCzNTk4eOUyC7clqzVTjybhs225az+nSU1us9Q6J8SBJMVuGRVsg75hSPG dTjshqve0GStGMxfc7XjyJY43pN5K67gjHM+0g834rsWYIgUEMO3mCzFgVO8fzV6S31ADhSLMQXD I7qD8ldx/PdW3Xc7gb/Pqb89cSacE1cIWQTcgqQSIABReLj2MiPedUneGshLiUIlSYIcmLcdE5md zn6o1Tb/AL3SP/jYf9FS/wC1+s9XD6V/1/8A8J/63rPVz86Vv+cfsH46D7ND3IP7w+z+/wA/g45G +9FJHXNBbioe3ivjsjOCNNOycorbIyWOYm+26cyVef8Aa82+pA78c/DyrXm98eZE5Y2K6rFC6zeK 2dFZgciUsdakUs1SvYWiIWVa+pl7tatDN8m0fCg6udP8d0PTs/rfCE55C6aliMZg0H3xo50gXMjN M2dOp69b7DvjjysmT21mv/hcrRyYvV3yoXCMiwl2TGVRFi5KPJZl1eidgJfHBqVY4ZRoWoIUlkSm J326iNj9msypXSl2CSLVpUABJJB2nEEzMifcGNFz2szap5rlR64ywtQ0fKxKU4ZCPX8emI8clal8 g0ra+NSjdpbhOtHRi+PyoVfbXyv+H5fkfi+XkZh0/Mrlre+OqJeBxM0otJiJaNDbFkwdS9V3gCQe QHqsOnXyUacRezqY5E2aRZ5sJjKtadSuNKZf9tJvkrSmOadoNV6R3S7Q9c0nSs6RuaRxYuC6BRdH 6GsVMXmcqZ7Z0QyPOc2amxrG05WGBxXhrjqXyElaktJKU7Ty9xd3VI6Y3zrvh9e0hLKHUqaW2tK4 V/CRtHzv09zGvSf+kL3Ulr/s/p+j6m/HW/B4T0y0Q+RTKtpcMOdtMGOmSwyaCOM3TRYyx8fHIMZz jGcZAde5Hm+J5Vh58tXCrkWKHElTj/kmRwbKyEiYqchzKknXsEJlZjdg/EeuefsV72T0rUY6jpc6 Y+nalJdBz4fjZMcsYCPj0bKm4k5nUkQhg99HSqDJyyAknNZZ5V7gLqWr6ytM5OZy6YqpNVcVXHdn bF4pjv2XyWyaUs80XEVJxH5NFLNNX1dBU09Q8602hCrioc4QTfGESTMZu+rTopvGyH+D09Kta1LZ RyFIRCrrINxMeWe0GRJJxpbqXkGh4eqJgzoj2ysumPFMqWaU/JvlLLrVgj4/4kKpCQo8g1WJDh1n NV6T+D6NhaL49p1MVlyAMabuy4zcWV1DsdjJO4uzVLKk1GzDcjYFuKudmtm+d41nZ302WScu16is +H499ukxl91rSIZ2E5K0kabtxDB07HeC+dad5N4zjYsblMm+LjpG1JwlTIkURZw6oMpUzg7TaZWK liQYjh8UK5D1JSpYWhSF1BbDlyYhKsKAGZmQScR2IOrnhLizb9Y/YlCnmlKW0FC6FA4IgAY+/qYE md6l5D4hPGu2XqiaNdZdd8dy4xWZUFFeV0d4LuvPdJ/0uhQgMCFrP5vbxc01PVjqmKYJifLzsykr R0seEZ/ub/CKodHCAr2qipyLr7i6XWOGupZcRLGQPOFL2EITiyAozq6Fvsk2aM5rRg6hd/nkKka/ rUcx6M7JDFwo2L5WoxuuRmiwyHpITdTFZq6rfHCmzpiQW1DsZySgaBJpecjmXki3lIbVaf4i4hZz GLbeszgAw4l+UWqoA7RVXD6dSm4tWu9pZ6yotqF+YyTInG+h75qmjZmU+Xi5oympWW08aNa/C8V5 MMpZtQzDfvkCkaDkACFPILZGkadk0m8oWySrBwuQKlGUlGoqCh/FFGZHSjcZ2sqbo++8/U+ve87J DIXvnl5QZHIRUq+UKZIxhsfyHpRsgcWbE4HkyhW6uTRfNxsnGzci4bei1qFr2NMhlyDkMqzsSeyY 4xLbbrvzXix2G7Q079KG2lrdQuwEi+fVGDicRk9f5rOq44rjLyyuip6dDy1LL7ZdWsTBAhajA6YI mROh3qmgTXHo2HjY4QclqJpZdkeeQtXcNtiUYxRUJlNxsgG6nbeP5AtKb2hckVoTTDdnXrrSt8nH ZhMrktDeJ3XE42K/HJV3Pot+Q2rmYKTLSFJ0nRk6qSZrZYCUyFSMItQ1Tkz41aNJRJ6cdqEkMajl ZuK+aGk1pUsn5SGlVH4yZQowd1fmEmclZorM0QqBng1GZyQ8MW49a04u670qj07TiSTOOu4iM6wq 95plLi2m0EyAFJFkDsfVIjcjaNug/ZzvdWyAsisaUlScGKET7Gd0p3FGdv4gGEuYvybGJYE02Qje M5rKHowVpL+KA7fCk2ZpiarTojJQtVMWVh+7yBmdwQIdP1kpl56KuNMGjzTtU8Ux6IKGKUDop2JB 5HbkRuF+R6nml6xM4QxyyJnW63ANw8yqtRZorK7NyaDZGQGmJVHVwDEOWWTilJUFstFpKkYKrgZO REZHQxGfu1T4bUsN2KS6plC4htJEQmJkwmd42xnvqdUSv5Ayi7dXWhUAMgT4jaTd6Ary61VgUcr+ 8QT9d2GfmvkmOl0wYouOMec0DzpTudk5HFHNIYpYdY2Lwtey9fJaqXPqZfxLHycZMh0O3UzpRxUC 3NWiGNXU5CypVAKGYbdVIO++xrJ5Bnrqeq2sbNwociUs1xi0FlneX5D4/JUlSO+YmUpN0RZ1MhV2 RiP3h7hiamr5jyqho0bSnEpSeWHZKSQd9oGRMT8HVnjfFSWAmmcsU84lJSRMiBBkdRkERv1GI+oZ vbaZXKaVIJ0CEjhKhQp0tQC5xWDmCSmzzD8uHL6luIvl+jXRPF9V1PyimRqEbeTYKCltEoZSeWlL XFljaxiLlUFMmcBtg5KySb4rEZd+uTSDc+8GMS9OYhGE0hTKBykYrJoZnNla9u/Ho2woYPMMFZeE 0RkLSvQtc1rxzWcbXdF1HUdE1XHNDDPwXfHz8THqIzQTfHByaysaY9WAacaUw8ZqoVUr6KuM8LXx OkXSMKU0txBEoON0mSJGI3zsToEbrEUtWFrQlfKqEvebdWCCkE+nvMEdI667zZXFDPpbmyqFUhjb cH+SI69y7KVG/Ljy3/kB8+o7e6Mh2oqFOaxYMg2b4LisZByVohVgyoZAtsHfid6h+yv6rE8rXS/F vcvFxtJ1zKTAwtJ8kgtcXR9XyKRR2fVscUri6Pldl4EUwqnSM3JyiuOunCX44ttdWqwVIMuzWkEL FqGZWTTU7OUabxVBJufWV4utGJ4+klxLhvEOEVr1O/TLZAIsdR+kQ91QR6Qm4SZlWdzGmPTcTouJ UiF0x5gEBaATzW1wJSpuDIgRM9JI0y2sHoJhUDzJDHYqVkASNyCRuQfggKB/MKT8lmv3iikMtTyI D1UlGNACWp2cgZj43chgh2YLy23eMoKru5nxiMi32WyhmnW46o7ii7I05yVHMqc2DL1gLsWTLboN 26xNKoCkwH4mTo/EOhhFQjFWmotwZEE1RV61Z67Cn+YH3g6DI5auUDylSBgXG6eu0do1w6WkoUpu DAyNtxvJ7ZnHx01+7J/oT/m3/wCX1nqK/nP/AMSH/O8n1nonvqf83t/u/wDl/i9h9o+sX1xj8nyL ZGtaq2WjKcfP1DE3J61lkQeaMk4/stjKtlqzTK4gWtHN3Mmx61YmRlM2Vex2tRnLWQSbhe2MqNPF yHm1D+MaTUJ+Rbm8m/KklUadeUDRz5Z5BC2LdBDyzyVMy85txaE8/JLlkSk59bbCjzQJvjcbs2wE /SKM9KfVjR5V/Bs86osxi0kVslJm1OM63EaZgok6fu70oiBULbl+U9ZFIwr6NVGxhtMcrJiZPqwJ Oe2hR3mMpvcbjoBOTNvsO4/G7dp6U5E5J5Y6/kUcJJ24CfdMB+OKN0tTGQiY4TM7TpNE2ZHUZSNi bdV2olBU1/ZKko8XKrN+uc6mZnBTNmTINIUQY425CTCXjCLcY+Y8OLCby7W2ai44t9HoXmXSnbFa Nltw2L7Hs4K20xpvPEycTLjiWytHbIcM+IWan75hJVKVczyaErdGqJjtqZTQVYCgipYW8t1SFMSE ixQm7brCdsTjr9eonsKCXG5t2828gE/s/Gp/7Z68+l4eZLIuMfJOYuTNLqh/Locej9cQjC7dQLbN 0FkSneqDiXmXX8lyJvqQVHvm5kkjDNqXyGARVsAjXyIqcqsI9e9luVnTvJLzVSO/bX2t8w8qtpWv 6Hp2aNNsVx8zUNRvj4+m0vKmP+6teVp5aX7mUPh0qdp2tkLjygXeUa5puVoWq5WiZVZ3fHyrIhR7 Mwn08wr9L05dcMe4mZd4WYVX61mXYU4xw5h1btanzzH6FItQjbCcncCDgDHTroU9c0ppNikJwAq1 MTkRJCjPXt/TUzrm5WC65GLOOIc+khlXxSfynyPx5IC1hU7Aqs61yEX8Yu+ysoJJt37L+6Wo6Pqu lYeUy0lKWBjB6uEEHZdiop3HFqs7ZSB6LV5Ao1GpNabLTrDWuTpGMKWks9J72XOmtFTLpkViDKVm M60yWE5Q6fxywdEcE9BV5zo+rvpqpj5Ys7zEZZtFKoqhlmmFM2aOQ6t9mveqgvtzVVHSWoHVbTZ8 qGVh1GCheJmwDJGwgzjRXwPiFVRVDNU0uEIBF4nM29Mx9vvrpN5d7i6J5Rg00xbSqPw8vHfMvObO 2bKWRkrj4kSSr5HXP4Kyd3Se45oA5oR7j63lpqssLGqXizajDPs3yox44wc1xsdSzTBJbFg4QsAt QyrzACXL9wMfDxJY2A2Q5Eq4Ybup1HPzz+O2ZJbYmLaS/iOZwfIliWZ7boo633GHlurVy9ZpqmkZ F6Y4qmTEwve1L5rtJqSIrVy9hcZOK6sPrOnMlZgM1emo3SAhtvyFalXgnIMfskQI7zmTIETre4tx 9VfTrWot84JbTzLJ7Zi7dW0yYjqThpbOqHyvy8yhbBnhK7gxAxqyyZQLLR6utOBd1ZmFWRlK8VY+ v3Vs6yxNctGSyLRojndmeRlOWOjMBEGgTkzvSvN0eToq9lN4u+o8tEy8vIKrn6vEpiCvSLTrPiaI +PXtcyotrw66Yy7moojuJlGTa1qwfB0jJtOF2zIJ0Dkj5s6Qqsfty4Pj1gsdOur5KozUWs5zE0UI Q0/Dm1JYfXyrUhXL/SkhYJRdBt6Yj+kaF2uKqbCwtLoUEFZTbtbAicTM5MYjbTdbyBZVeVWZUWU2 V1ZsdXVFCMyrZ4VFYcX2HUy04kI+xJ9RnN1mSJlmRXrgCBlK3J0R9jefGiUZUVEx2fHSgDPEMGTl xVszcicjkUKwoTeqzZMhGfHKtWv5BM5F6MbRVloJgEiqHbgWLNkcqJSqIjvL5rK9ppGyVYI7tGrn ne8mqgQScTnVamw34Nu0nDqYLS9Z6f2dpmDuPcdvq7UXeJuO3Cb7onMWjttBnI2G3XWrH1CgFkWr 8y1BzaN3kcVQKLIpaUkY3TkvNlJnvvud/lVDWbi5iK84FJJQdXxzk/Iq6t9gq8+CkMQi7tj2DfcM HGgZRj02EkgoRlxw6ZEsj4BcEc2R1myZcrZMqzZZzcNJ/ScZqnHvZZph8OErwQTXvXljnJmspDDn zByOYqam1wpb+Y3Gt9CpzAs3xJg/uz09p+vWY9VrZsWgoSlMgIUu3cjINpnpOB0ncxOtW17LdITF EYkoUnMgyvw3vlI6bIgJRquJgLCbEbT5c3eBVUZOXjtNXdDOv+VLMOk7ueU3tBkLoZMSGdXZaMd5 kgb+vjIyyXJflSQjkWmtDjY4pj0iEs8lo73o5YlOE55Vjx50od/j4lRkowFXtjzRUWaQQJJ/rQ0B Rlp3AEoxx0bJ/nxHEkG2xQN06LGzExPl3I26/Pf41A5U1hKbCVgDzdAMpG2ZmOsCAY0+O044OFDa cMnKnk9rUvhKJvpqjIoxZ2ACyFFPF3lbdtjJWHpoyMzJLB0VDVhOIR7sjpjrGORDcu/FnTvoSs3Y bMp7FLbKgysrIpR2NFyEL8GuzZUO4CEMWtEU4izq8ZTX/Jp2OWHP7h3Xkd+M/EZGSQcm87UaSZVs sNd4CdhV6ZczkLFlxFgtI0VSWYtPlMctSnonAi5whF2QIu7SJkbY+dZ9bUXCy2LSBN0zdaewgAT1 M6kUc9cdTBkZUq/UiuVDTKqj9iPNr5O4LAEtzUj4bcHb1Yj2o97tc9ua4mLkZ7a341agnl6BWgzL xnRjybx9tTyzPTspn7KHESUMHJZ/tGFZ4+ROqWIVecMyUqwxUXHx7fZ5JROvpdzU9uQTSgY40zRu 3iU3/t9KJmk0xqTI3Z6BMe082p72aAERVBGT8RYOTEZFk+QFxiXYj1dwJuueeQttDzaCL0KbbUbt kkKcSspGCTbBxnYa8pKl2jcDlK+pK5G3lHtcMzueo7fHVbE/Uv7YarRZ5OdrOkUs1ROmp6bkmZEK Y6SLtpk9SxsZHGTzTMqUxv2bqLcYijGMZ+Dn4ePmYeRi5eBXGxGxcvFrj5EmS62eVlZLndnnwamy srlipYFTvxmTV1vOsQeFwrBEe1Hr1zvSFMtQkpS7+Kf5vEdE/oQiFQzMcPAPfHX/AAyd9Jw8bHy9 PtWmUulasufiph0q9kFNNpPLpeaVpQGs2Dwo4YvxoxooRW+ES0s1NGHkLBBQzfKUjyk2yAAMwQBn 6tFVP4kWtfIr0sKSQZepjYqRAyIVudhMDOddF+v/ANtH/N8f/wCXrPVS/wDvqNW/8jdK/wCms7/f es9Sfmqu/wAn7z7e3ufs99e/nGi/zv8AT8e/v+JE0C8lzufl3lKC/wBF8n8ggFvKLmaV1bLe6gTS CLPv7QqVnYLwPB13bkl0kZ+oZc8fS8F9UzaZiShPAxDkZOVm1jbGHTi4ufPJvV/yibTk5a8pmR4d goh99v8A2V1v3W8h1nX6yzNI8cbWtZzszUc3GGHLNd8xKZWPpTOcdcm83rQWoSExUxsm3TkVnHFv 0F8P8C8V9udIrp2i6NjYEpcnycyhQ5Fs2kGQZeZeUFrk1inagpSjYpe/4uLjwwsbHxotBp+1vh7b SQ5zadlK1k2JZWBBSowqd8YBO8Y0IurSlTawpbqvNcVK39MRvHWYGfqzSfxX9LvuJrkcVvIX0nxT EzQ2Wx1GcMvVZ6fY5Ctb+HwMRi1e342Kk83NxrYzbRyMbeKs1sfHPYn248arjvPQv8a9bwsTFwUy 9WVNQhtiY08KTLj/AIsoY7bntmFxxWd2e/dS7PViXI31bEdkBnhVE60V+tWWatMvXKqJQsztyfqH M/0gSMFpxXZm6ni6DptER0OTkM0lqvW1ams2GwRZOqrNGKgJWDHlxDUDdR/GkvfSpyneEzBZXKcE T5oFwkxsI2zkar3qcm90pgCPLcDkTsRtAxnfoBpVnXpizbHtk9mXLecEcdqT/ZKSwcWJgEYzScUL 0D9CqQFEpE+q6+7/AInnpCOvYMe/Kkt3zEPbV7JWRSaJHLDYnHHx5s1EQoFV/hfqOR10PEzb1nqW UrvZZvKSOq8TMTmJlh2EBsTHKSRmYcqSZgABsM8xxI6hpa6SzI88u1MVjSe9bBFvauQtFk9pURIT AQsrqN2SXAhjLU8IbfpFNuFDbqoUhtR3TACVA4meojERJB1zTPqadS4kIFu6UC27b3O0Yx1jVLND cXwo9+fGCYvVjY7uGuhymysmqN1ZOPORRTR6ZNQZiUKULcjsDtyuzEw9TkZzrl6iJVyLTT958WMM bIsrvRjGeHO0EuxFIhsmlXShPpP5b4zl+K5H4+LxtHVswPgAPBmk0KWuqXV2LsjwfhK150DnfZ1B YM56TrGmVI1TM045a21XQjkYmLdkdcfq1JcrG75qziK4+aDX6PbI/ZVDIxDlZVNDUGpfS8iwB5Ta m5CgooKQDOO+RbiNzjRa1VqLbLgeswry2zvZ3IiN/jsd4bmNamnY1rgJPJpXKR7qKoaQrjNSU7ht u8FMoHelQsz27j5Vm1dQthtCjXRFNaBFQvRoFkyCWxtxHrU1eiurJQ0M6ER66ToxDzMo4mk+Pas+ Tl4cdNyNR02TaUc3T648sqCY+fBcjgKK2Zifn0lKDdNWzstWRN1JFnkGlHBxuWFR8mWMNP45BqqA YmQYo8Q2R+JSim9o7Us3J5EZKKy1CC4KdKFBKApN29zTbfpA25aUhW5yZg/J1EHX7UpU5cE7eWO3 uR0/9501anm40dNjhTtaVIYWRMCShYpylh5MP3Ux5yqRmdyOAWHFiOag7FzbOTN8W0nHRlhkYk9U lkLUbZVxe8NQhlYsQYvOaY6Ph2ZGkEyMesnRi8C8L1DMVseWTs29cvIn0qRjqzY8ZUC3+716awbs V0k4BHWduQYb43ZsTS1V44vCMEaP7bfjZRqfyKNSisPx3x3TrN6sUBICuCfVvlpLVMlIthwCd5m3 4jb68dtRrfSlx3MOLQEt5nBi8zn2xsAfbTNqiY95HsvRwsJ2jUcyrMHrbHcrJbUdEPT2KSXmL704 FAlGuMC1sPIw6rdbSpkLNA6ryTkMng1Vkk2YLNZ0NN9l+EO5AUapvi5B0+pyD1qgKSASVwKCOQry WcKK571KRdUl18aDG4VQ+mB894Kp/Irp7Y059TSFAcYZAFUaU78Kqg7aIsn6Qk7ZSoiyykcENLTQ yhN+dptiduk/1OuE2o/XPLBMWhAiYIkGSZ3H1TrRmJCVurEsuQv42NdHnTnyC49IlXnkvkTDKxYO ItUjjsG3PwjF3sezJaFYtkCitjjhytV3tiqEBFk/adQSzTB5blG229Ny3V0yHpVldWitg00oHYdU +wlIqP3Lq8+KO3Dblz3IA0jvohulumGLRUFqq0TjyeVrY0sSL0UXpRYZFGr+M7KqkUYk7+tltlKW 221eflggKiJkg7ZjbudUKipVfakW2yCZmZj4iP66XTvkosftFkC1bGsyu9oMYCXGs0UhXqJb429B 2sSPpx3Ka2Vju5ME2Eoiaik2V0Xkpyqx4MJSpOojVqTSc4kcuh2d2OtsmzV2UNabGcbzjFEKqE77 cSN3albUfJll2ezqakcWmiekONE1kLHGKvejCdFsH2x2GGOHB6ceR/JjA9aoAWDFW+EFpGx/H3fj 7tQKqHykpSu0GJxM/bp5R0yyWpLqCuz1ZgQzh61qgg8rgTRWdgAwb7q1Af3OKfF6TqjSnGjOaELS 5nV3kqILg2ybAMKMFZOFJPIqOK1bYjIX6QsFWdfx6Tmki7KufJjO8ptOEmCijydHF1MZOoLVfcTL 7h4lRBmjMNkUZHpYWjVnllTlIUqyJ0SaunqHc/jHqzMu9RzDcPURZsUXUqvc/ZbiLgI/akjH/L9Y 1RafU4+phbnMtzfFtuw9JUd/kHHU6/FyTTAqhSlkCTonXYY7ESyJRnRBZ7GlKizOwv3zUz3KsW3C Zu9OiYcyklatEsS4AFKm+WlJ7rjNbF/GKQpkzlHHEMWZp0h32kGTZAGPwNyj5c0RuqXPFg8nIbES LmgtwmyBy9RxDof5fnChqXZ5RgCPs0bVCI0xOstyRB+SzHJaQPBvqSQfVRtLoUouo5d5THmuwN+g 2kfgauNtpbBt6x9wj++lBQZDM6ITjyLcCEpWTIz0d1cKhnVFNX3RwFLb77jcelhzn6clUZQHyp1P UmPKr5GXXJqlgeufxhJD46JMY9m/Fj6TDNmJPFaWRJTyAtlVxjU3lSjpuBX8V3WRWiozI8yFRJBN ynimZ0TBY4wlHnyGT+5YPO+RYViDW03aEZB5soCqwJbY/HNRT2qR553PpjqPc/jprha2kQKhdxIl GIxIB77mPvHWC4/xWn/qv9lb/c+s9N/5af6gf8v/AOz1nqWB2H4/9D7NUuZ7ff8A211nwGk+j6PS a4mnYOl4ml4WDpS4342Kz2mlJLLGljQx2yK5TTzM0rh0NHWl6upLU9P6TfJKZurFYYJ2ylTLrFcq 9j1gtkTdZqtSwQ0TsKyZTJNk24xbCzcBtG0fUsxjPEXGwM3SsVmHA0aPFMnJX6Irs9ozmyJ9dwp5 7g+o3ma/TU6FVteSzmzNGJoFRaIBRdys4F1nBU3RX25F3BclqTU4+jtrYU0jmi0OqV5rkGTaE4tJ zJk/E6jeea5q3XFcvmWwmLvTg5lPcdANTHV9f/MOnYGlZuFDHybRTFx6u6ss5utMg5f4kmesSVCo ooqBx10BWZqHPTdOfIedc7JNWkEkTlUkTZaK+8pTfGKihVm2VNv3AlG34Kvpk8W0TGtQZlMU1z7b pDejAGDOjmzI05sr0afBFivZynTnMcFDT3Ivj4ycRMNDGLJKYVVm+Q16Rtuwt2l03q9lfi/H/g7H e2laUt062F1AUQvyKNs+mMwTA2OOvbUCEqUq9arlDdUROQRiTEQcyd/mVjNCeNCUSV4hDQoagBOq 7nH3mDNi6Tmt3KI3PkFC8iREPItQdjFlo3CWoMxRl+1JviBjvNC43iC2zE8nXZSfrv6fBnGSMsQQ 7TlFlKZFQH7erZ3YN1oJ13H1+qsEbdkbjCNUo9NMzMRZ7XlmYmYihmNBxM2uV4TGM46mY/dakheU 5ht2WJp1binLlqeS2uxKktkTEAki4lMmBudjnXanJdaciOVdid7inrGIt7Hf21AdbxdO1KDHMR3f Eyse+KFWxuQLMbRdqY6oGVOoz5FFRqFmJ48WGWve3Hlvi0s/VMHx7Us3xt3WmLqeMmQZSfPZMXJo 1pPHGL4r5GLJzaVJkXUKphkPlY5Ay8l9pM6uFLzoQtKVSQqVXsLvw+g2P1M+M2B49XE19XR/Sz7q 6AXr4N5QuPFNh/DEyIzSV52njtXDrTLfiy1WTq/czIXsrgshfZe+KVOUyTWUlDIpXUOvBKXFLKdp SlxxexkGCOgM40d+EGGeOPNcLrqpqmNUVrp3XSEw6IgBUiI698YjXLjK117aLlaBazaa+VqEF1Ce pyyb7QlgxlC8kajqLjNg75YVms2TFi7xhU1vBMrWK5eEuPiDsjL8mdmoFZ3jGsVxQz1V6OyJNd2p JEINJmLnai9oPeD9Hngnn2fr/k3hU4eNazlWrnHA0iGmwwbXsO4MtJYqVCO45OmPkpBnybU6kLFX 5ge6X6bvOvbHLy3z8Y10+1nimT9Vn+Q/GjNFYq2NGhDUfizRaIjQMlFU2bN4ZX0D6mnS+hFRYlQa cW2hTd0EhQcWkn0j0g7AY1e4/wCHuJ8BfcNYzcwSCioZS46haMAKHLbXE3TClDOBjauut7ZmD34p dFr20QELjdOQMSi2xHdw87zlkVyDGjvAvF5qJfUsVuZpv4lsTsOLaSUjl2mHuFpi5aY1lbh+D22Q YmUEyUEd4Vem5ZJybIb66LrU50xZ0zjhtbFvyVee9q0mZSo4Y463obIuVAiQeqVg4vORDMrQq70G oZQW+NidGKvfwEjMUAlRxGs3VsNcrHdxXtljCONREWUvRRT8t1ENuocDZF3L8yvNtCcA7d99CrxW brCUJbICUxJN0dce42+zWrVc6i1qjEOpIyPzWmxaaCd4Wsk5wWjBoukaqAwZFVS6f2weudPeXOdr 0WwVsh/yjviq/wC63F3nNBVw0yf2pLw5M5YhPUgypaZaRsk3pVZzP7uRjlpyZbCu9ld79DrEJNmS nEPy5DbZm7LAW56FtRRIlkDZWT1TVEtLIRcg1xo26zFxjLMXeZVwjTdaDcpEITySlK0FQVIWLdlI GMmTn2zg6hDqm1LSt04jNsyIzgHG/v8AZsmw+aYbPRh+VCc5Dd6L+0sqRSjza4bsutOVNxzKzReB Uo7p5UjZCwUsJyWdEgaYyyjjPjuR904ORi4ma5/dnT93g00KDk5vPFyFLSYivXRcTlCk/wAlKSoy sVx8jImoJmyibEdTLt0op4BvOPjYzsl+4yGOz0G87MtlVS5kvMJF+4yTd4zG1ORm4Vg11ag3beuZ 9Pl7FIPUzuDn+uKiXnVgqprCjErUsIntCSkzGRv1Hca1lGyDNGq7QFVxqMj1TriISW8Xvm27gDjh H5DIZOTBEgNxyXbQnFIUkGQqm0rUtV0yOOKrrJWJjFllkybq5wV9mYPyKqFNsLggvQgsVox2ld+l 3sEjNt9MlGyXpHHtYFXi4QSi803c6jDteRld72ZcV2YZGLxvus8p677Y9hOMnIpbEMXCJx2PHY9p Wl9JSkxBSSYmJgjHWIOvUOuJVesrdj02o22BkyR2Mx86+cbFhkuKznkmC5ExHsownLI26Usq3y8S nGFFoQkxTf8Al2I2wLpTlWTWJb6zRFlOtE55RSZqgqChq/S4XrvZ1K7uJlh8KLCaLVgxnKFbrRic gutDlZR7f8po9ZVEywKcrHrZWDbsANcDbNFGKzabzfiGWQLiEMnrvRb1V15B1pIGk3FFNVDlgFqV PPW7chPNQMhXp6icZ6fymTnXgQ0srccbvXg3TEkSdoP8+usfApz6KO8aSVOOxuyots3HlyO/1qdp fzyMh7jn+2+6TKqDMTvjyXHWsQjvShBIHeyhoqtesTRBMrjLNCr1LhgalndyaM5YyLj3XH3j12yI LdAVFarhM4xuURzdanapD/G70p8sGmiZOSk8ZV/FmymM+cUlj9ipZL0LzpZg3LISwZRvQNuFUgb8 PvJqGy2kRkEmZiMxECft+J17zppEPW5H7EyckA5jEdMZPQRpJNyFykfIrmTa/dKbKs7IlGyKB0Ix mV7COOSFjV2QBnYq/wC2HeU9zi5FZUGR1hKM840xsiwnkxD4r5L5C58THITmqTi0Xmws8mKEr5Y6 9s5XfGUzOVlpWtTCErYuRKrbz4JRnIyyFqFlW3V2HZ6bJtRUt8L2yId2pZ5cHYpWTWgMjLlR+8vX GvIIgrjJLiLUF9pV1qsExOdpj69jt8ahS4kuIbLa0NKBLhXiFAJtx13JOY+c6jnYf9A/2I/7F6z0 /wDD/wA0/wDZ/wD3es9W9ecz2+/+2rrLmZrY+FjIVdIYOm47otOUsYfw+ImOyZWuQsVltyiqTmxV 3WFVVfU+8d0QahkLj0xmnWnF6VmKUKTm/wB3LslaFv8AJh+O/J2WtAOCvwSsY8d0Ts2SkMSdsS4x VPGiKxVFkK7znVXUcKAJy7JlpVZSvLgYxbG0TGjjFGTKyJXvl3j804vkFpxBIqy040mxmyzA4Fd6 LRwv6kW20lLl4U1Us3JcgjlrBFpgE3AXGcpnaRqopVylJiLFqTM7xGdsfGfnUox1ljYhQFMSePOk 0kxp1ITYNMMvAdcAz8HJJVdw7uqqSI9k5lsvURSZJw4zo2PKR59tizua9lG4N3qZxmQf2AjMu61p JopqOpOYvhzA7EilrizyAXJtJ3ZCkkx5KKMyzRRUtBZji7cmHrcc11oZznMKnFkeZd3mvQZFlV2m qJKINXcChTsd9hUmjaabkBhZCTai0ICr0KgpMqTaM7QOnc6/BdmSlZR+0pIus7SJG8mM9Dp3zc9s kBA4QI5RwlWZwzAEA2jkQZmRUC8Hayn+ZUfyMTOoiHFytKilR+5kuaPKpFEJos3DInFjyb7jfYbK f57a6mCLwnxrOm5m2/WVtcWG1mLLl0IlwqEo8tnAcFuwqkMzMzeledIPwyLOzR3s5NEFf3JWn0vM mYQm77o5PWDsQ36W2gtbo5KzBKPUP+ry7STsfbXgKSlKkqmZ6RER7++mLWW6ytVNaY5W9sZSJR+t SGSVS7HeZGPOYDLQsCtN0/pYcNqOTj0iMTKy0yS0RxhQTDc3XpYnYXToyOsTKbo1us0ZNlViXa+O 86Y9d7YwJEny4WXsihpjzMAuRCi9Qc0mzbyFCCZMpZSO9RwqO7VbMXMVGsso/hwhVf37PKdbAlKK gq+1rvVj/wCtBUTGqw0lS284u93lpuCUoK2VHAgkKSVExmQm2PfEiKipQ607ziS0sKAtiYjrdjIn Y/8AYoeMfqa94NCx46VLW7alj4xrBTkYhtkGQ4tMDKyH3Qwhf8VDOsOqGDHHw5Y/7Arr8y/VT7ja /iNDL/hjSoaAxeAyrYYIyKTyGpmWu3aaY8ccyljo4nl0DobcJ2CjY0JTpdY3O8d5gztN6s3XN90s HIYKKTo6wgDjmZCuqqfUdviTRQu9qBJsGTuEQVDK01MrrImju4m1UL/AU8QVAbDHA+FLcaqhQ06X gq6UIiYwAc/XP3Z0Sr8XccepxSDi9RUs+nkuJbKSnBQk8xC8pkgFMHJnYaYtT1XUtSfJe2S1EyKQ taePS6xg7ZdjQpHGhyixmYEFESSEda86OiGI5eLkgWgg6ahQyLFsgLWTUnai2m1MlwQk3YcGVlDM KpMhSZiceiCn4qL3GTLSqyC0KUq7zlkosMelhMUbhTKrmN9T0vJCy+mK2AhUnrSqMWXIG9RQymRV ile41kXqCd5PNgWH7my7NeYP0eUU6Po8lNzZbtgj0+aYOCRIAA299YxffWpRS6pMxIV5zv0PliYg 4+zrDsnFAdOReCtjMccq82CZEjcAUWAaz4qQbfZ1o5MxzqxclW6OA4m9bTxjCsZnsxieri6NkXZl okmmslINy6jrUA/bfYTD8dL5VMeOz3lWq1JRiEjNCKB50FYs15qsppPkpsHfcUq5Zo1FJACk5U6o tsJyxMYNuqpOyDeVclA6gzq04zoUPEMATvqqcqG1cupKW1iAEp5ZGYmeW64O28YkCTMRylOxvneR EY+TO8fV9jPkBpBJjIQQU/MJiBaJkqBjzVEYELZDullkS3FnDFQf04OP1jIx7LRqYXPEFqZFTTlC dLWHNBweau/BC37dZk823PFfPFycmvUoZpni3F6yQZRZgk4o+Qn5M2+V3kvEF5ih3OyhFl/1Ww8W rTKBVElZAVS6hHWpRkyGnszg0kvFS3Fl3IJmU80t5LTiuUPNCoumInHljpG+rDZhimTGSlXXtYI6 7z+OjbmM7ZDJUM7lkR0vjxsDjpk4pnJZImRFA1Ixr2cVuSnE0cMWD3jokcLuR+NLiVAjVr3TTJ3V pSyjjc1WQGzy2EV324Bd990NOoZstUSwEybJGdYMj0Jl+POzzst2PFA7ZEnEkftCFl+UWTM80EEV ZGjSJeRNFIdohDwUjkWVy7lTyI3CgkARl6jLiG0vIRclRJVj0hOwxO5nIg4667pluQvmA4thKspO OqcSRA6jJOvrGg+YKpRn5KVW8uyWNHC5fCI6TyT24yhUovCE0d2Zm699vTzjYZw1qsbPEvjyWjKA HgyEuMWrIu2QdjyVICjKtVPAqdzmNFJ8si8UyLIOwoUj+/XiqTM9kkY1BC/+EKsyoOzq388zMjCx XofoTUJG9KB+Ss6WXLggs3fWdmy8kSphpVWDNy7ZoRSHmh5aGWHHSpfm/RiB5Sn1Z2zv0E+8U+Y4 tTrg5jSWii08u60KyoesEhVu4jrjOE9GjSjYqZVSwi+UZkT+LwVWmGZJEA82327Fdf5MJn0tw8FR 03vCULJKoaxt3WoEeGQq4/C1ejlaEGdrsYBZkD9whl2YOlNFASqoljkdspToxe6VplUecqTRWdkv NCgQkleTO6lZo7RORkB6vFknHkwPIrF3ri5aPjitZwe6zlNH3EWTtLTScxMBo6qrF4TTvtkJBCyF bLlIIiD6ZIkHPQDXbzqKpIDTyEBBlVxIJymIHXr9fTSDGStLiTWDClYikyIEnH3c2Q0FnWvPYDdG ybIB95jfiNuUTXLzIY8aBAx7ZRUVE1FJsEL4yzDF4RtXuhKqAJw76Dmirs4KN8XD5VyaJkxmqTMx ix4zrOHXOk648AzM8jSDK7s/3VTv624uI2mRtyQs1JrR6zfF3aD7DkSXdk5V5bqCSNvgkkbcpVzS tURyWUqtBuWuwpTATiBmSZx2M6hbeaUDy1XwfNi2MY7zOfjrps/gcP8Axdnf/H/9M9Z6dP3f+DT/ AGv/ANnrPV3n/wAH+r/x1HzPb7/7a//Z ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://buttons.blogger.com/bloggerbutton1.gif R0lGODlhWAAfAOYAAPjx6P9mAABDev///+jcy8i1n+/m2e3j1ezi1O7k1vTr4fPr4PTs4vXt4vLp 3vPq3/Hp3fHo2/Dn2kJxl7bDy/+zgOfl4SFaiRFPgYSgtf/Zv/8AAP+MQFN9nw5NgNfa2XSUrf+W UB1XhjJmkDxsk8bO0jxskv9wEGOJpjtrkUFwlrW/xJWrvLS+wrW/w/ngy//Gn/yaV9LSzrW/xdXW 0ztskv/iz0p2mPmWUsTKy/5uDvDUu0t3mZeruLbAxkt2mdXV0sTJybO/xv/s3/HWvlqAnvmVUYae r4efsP9vD1F7naW0vcTKyniVqmmLpdTU0ZWptf+DMJirueTg2ixhjNTW1Et2mC1ijYegsniWq7O+ xv/172iKo6e2v5aruKSzu7TAxsPJzP+fYJaptsPIyHmWrGqMpkp1l2mLpLO9wQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAABsALAAAAABYAB8AAAf/gBsbBISFhoeIiYqLjI2OiIKDCJOUlZaXmJmam5ydlwSDB6KjpKWm p6ipqqusqAUECbE7RgG1tre4tkY7sb2+v8DBwsPEwa8GBkQ6uczMOkTI0SkpUNFcKWdf0dvc3d7f 4NHHBjjN5rg43Gkp2ylHRyLh8vPzrxIS5/m29/wtNfwSarSQIUDGGA8iyCC5IcEDEn8Sbghg2IJK QYAYM2q89ypCBGYhKogUKeaEOY8oXZhAGcFEERErPSxBYyKIBxcCrDQpskREBBEuXIgIwrKo0aMo X0GAgOuEhgFQow7YEqLZ0qsrTFyFYALLCghMBEBYIVaAkx8efnjJIqDtiqxb/+PKnbv1lQMHuJ5K 3RuF2d2/M0j8dUBixl8BT3oIJuGhhwgROXKIACx4sOXLmP++evDgVoi9oGEw40z6igcppEn4IG3G g4AuD8oIAMLDA+faHoD4IEG6t+/fwB+8WrDgVoWoMDgo/wx1CDPi0KNLh05jyvToNGhc385d+isF CoxHrVrrxJCoJnGBX8++vZYw7ePLn0+f/isGDMRHtaFBr1QNHNyC34BKqGCgEkLgJ4QAKgzo4IMQ RijhhPi90kAD+oEGWgW3XOhhWyAKUEUDYDDo4Ykopqjiiixe+AoAAGSooVQc2gLjjW0BYEEHAmQA AAUCTHDjkEQWaeSRSML4Yv+Mthy3X3/92UDjLUTmCAAIPf4YJIwWoNAWChbAWMIFAoCQQQdcThAk CxN8AGMGGAQZJgAdZOAlC0QumSF5nkVVYy1V9ggCBheECaSQAKh5AZmIknlBnALA6CWhbVEAAAsC XDDClgC09ailQ+rZJHLKlcoBDH5SOWSIZcJ4qI4CYGCBBXFa8EGsWkYKAJkl0CqApZu6SWaYbX0w Z6gEwNjnjHsFaOOqv1KwKQhaCvlqotFyaqWValraVgYZkOmtrkWKaot/zGqAS6Cu5vjqtd1eu62u 3XYa5AT4umlluckyaYtTzA6gQXrP4qhrBu5uaUGss9Z6Kwa5wsirr8AKUALHu0aa69lIHFfg7LrQ 4tsWmkBi4KOijEoswAiQSpopmb8CgDAGE7AM47559quPPkRCOvKcm6K5489ikomlrhaoWXPMMsPc gZsYQJxxvzHsbE4MSWaNJM4w1qs1vzC+kITVuSTxwtdfs2AmjxeIiUIGR7uJNrI3vlA12bXEcPbc WfPYFgZ4yhwitXzfuGThiPNdAgUUHAvAB4zLnXgBGxSQ+OWYZ65kJAV07vnnoIcu+uikl2766aFH ovrqrLfu+uuwxy777IIEAgA7 ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://i45.photobucket.com/albums/f83/mcoston/worldmap.gif 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 3nrHPffffNM987o02y1zzLAEBAA7 ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://s28.sitemeter.com/meter.asp?site=s28afludiary R0lGODlhyAAoAMQAAP//M///M8wAAAAAzN7v7///nJzOnM6czpxjzv/OnAAAAG1tbZqamr6+vtbW 1u3t7f/////AgP///////////////////////////////////////////////////////yH/C05F VFNDQVBFMi4wAwEBAAAh+QQBFAAAACwAAAAAyAAoAAAFcCAgjmRpnmiqrmzrvnAsz3Rt33iu73zv /8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/ gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnSEAIfkEBQIAAAAsAAAOAMgAGAAABVQgII5k aZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0 es1uu9/wuHxOr9vv+Lx+z+/7/4CBTyEAIfkEBQIAAAAsAAAOACcAGAAABSQgII5kaZ5oqq5s675w LM90bd94ru987//AoHBILBqPyKQyGAIAIfkEBQIAAAAsAAAOAE8AGAAABTQgII5kaZ5oqq5s675w LM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7ZZCACH5BAUCAAAALAAADgB3ABgA AAVBICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+Cw eEwum8/otHptCgEAIfkEBQIAAAAsAAAOAJ8AGAAABUogII5kaZ5oqq5s675wLM90bd94ru987//A oHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOr9vXIQAh+QQFAgAA ACwAAA4AxwAYAAAFVCAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1a r9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIE3IQAh+QQFAQAAACwgAAEAiQAa AAAFSCAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/g sHhMLpvP6LR6zW673/C4fM4OAQAh+QQFAgAAACwgAAAAiQAaAAAF/yAgjmRpnmiqrmzrvnAsz3Rt 33iu73zv/8CgcEgsGo9IE2QJOTGbq6eUNHVCo8sSM/mSZqnVlHcrGmvJ2Cvguf6K3cKx26ySg8Nt dB1O1lvVajxog1lsb4EjfYR+KIZ5ZXB/iZE6fF+Le3iYdy6bNIw+hp5/YaOPLYqAd4OTeo5brniQ c7SIq1WmoJKnj3a9XrOpU77BgLWZUMKyulazrXm4l6/AdsSOz86H2NCMzEqahbTZvKnQv1fH3+iU mbeI3mfXwvHb5eXmnLu8qOz97IeWjKUjJ60Js2nAnsGrFegat3/qGobD5skepXRy1smKKA8UHRYO YdGpmLDbSGsbIzEl3BbP4R51DwuyLHnxIz9bNSGGwtlKpZaIVBq5rKGTi1EkRY8qXcq0qdOnUKNK 1RECACH5BAUCAAAALCAAAACJABoAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj0jT Y/k4MZurp5Q0dUKjyxIz+ZJmqdWUdysaa8nYK+C5/ordwrHbrJKDw210HU7WW9VqPGiDWWxvgSN9 hH4ohnllcH+JkTp8X4t7eJh3Lps0jD6Gnn9ho48tioB3g5N6jluueJBztIirVaagkqePdr1es6lT vsGAtZlQwrK6VrOtebiXr8B2xI7PzofY0IzMSpqFtNm8qdC/V8ff6JSZt4jeZ9fC8dvl5eacu7yo 7P3sh5aMpSMnrQmzacCewasV6Bq3f+oahsPmyR6ldHLWyYooDxQdFg5h0amYsNtIaxsjMSXcFs/h HnUPC7IsefEjP1s1IYbC2UqllohUGrmsoZOLUSRFjypdyrSp06dQo0rVEQIAIfkEBQIAAAAsIAAA AIkAGgAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPSJNj6Tgxm6unlDR1QqPLEjP5 kmap1ZR3Kxprydgr4Ln+it3CsduskoPDbXQdTtZb1Wo8aINZbG+BI32EfiiGeWVwf4mROnxfi3t4 mHcumzSMPoaef2Gjjy2KgHeDk3qOW654kHO0iKtVpqCSp492vV6zqVO+wYC1mVDCsrpWs615uJev wHbEjs/Oh9jQjMxKmoW02byp0L9Xx9/olJm3iN5n18Lx2+Xl5py7vKjs/eyHloylIyetCbNpwJ7B qxXoGrd/6hqGw+bJHqV0ctbJiigPFB0WDmHRqZiw20hrGyMxJdwWz+EedQ8Lsix58SM/WzUhhsLZ SqWWiFQauayhk4tRJEWPKl3KtKnTp1CjStURAgAh+QQFAgAAACwgAAAAiQAaAAAF/yAgjmRpnmiq rmzrvnAsz3Rt33iu73zv/8CgcEgsGo9IU2PZODGbq6eUNHVCo8sSM/mSZqnVlHcrGmvJ2Cvguf6K 3cKx26ySg8NtdB1O1lvVajxog1lsb4EjfYR+KIZ5ZXB/iZE6fF+Le3iYdy6bNIw+hp5/YaOPLYqA d4OTeo5brniQc7SIq1WmoJKnj3a9XrOpU77BgLWZUMKyulazrXm4l6/AdsSOz86H2NCMzEqahbTZ vKnQv1fH3+iUmbeI3mfXwvHb5eXmnLu8qOz97IeWjKUjJ60Js2nAnsGrFegat3/qGobD5skepXRy 1smKKA8UHRYOYdGpmLDbSGsbIzEl3BbP4R51DwuyLHnxIz9bNSGGwtlKpZaIVBq5rKGTi1EkRY8q Xcq0qdOnUKNK1RECACH5BAUCAAAALCAAAACJABoAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO// wKBwSCwaj0gTY8k4MZurp5Q0dUKjyxIz+ZJmqdWUdysaa8nYK+C5/ordwrHbrJKDw210HU7WW9Vq PGiDWWxvgSN9hH4ohnllcH+JkTp8X4t7eJh3Lps0jD6Gnn9ho48tioB3g5N6jluueJBztIirVaag kqePdr1es6lTvsGAtZlQwrK6VrOtebiXr8B2xI7PzofY0IzMSpqFtNm8qdC/V8ff6JSZt4jeZ9fC 8dvl5eacu7yo7P3sh5aMpSMnrQmzacCewasV6Bq3f+oahsPmyR6ldHLWyYooDxQdFg5h0amYsNtI axsjMSXcFs/hHnUPC7IsefEjP1s1IYbC2UqllohUGrmsoZOLUSRFjypdyrSp06dQo0rVEQIAIfkE BQIAAAAsIAAAAIkAGgAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPSNNiuTgxm6un lDR1QqPLEjP5kmap1ZR3Kxprydgr4Ln+it3CsduskoPDbXQdTtZb1Wo8aINZbG+BI32EfiiGeWVw f4mROnxfi3t4mHcumzSMPoaef2Gjjy2KgHeDk3qOW654kHO0iKtVpqCSp492vV6zqVO+wYC1mVDC srpWs615uJevwHbEjs/Oh9jQjMxKmoW02byp0L9Xx9/olJm3iN5n18Lx2+Xl5py7vKjs/eyHloyl IyetCbNpwJ7BqxXoGrd/6hqGw+bJHqV0ctbJiigPFB0WDmHRqZiw20hrGyMxJdwWz+EedQ8Lsix5 8SM/WzUhhsLZSqWWiFQauayhk4tRJEWPKl3KtKnTp1CjStURAgAh+QQFAgAAACwgAAAAiQAaAAAF /yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo9Ik2KpODGbq6eUNHVCo8sSM/mSZqnVlHcr GmvJ2Cvguf6K3cKx26ySg8NtdB1O1lvVajxog1lsb4EjfYR+KIZ5ZXB/iZE6fF+Le3iYdy6bNIw+ hp5/YaOPLYqAd4OTeo5brniQc7SIq1WmoJKnj3a9XrOpU77BgLWZUMKyulazrXm4l6/AdsSOz86H 2NCMzEqahbTZvKnQv1fH3+iUmbeI3mfXwvHb5eXmnLu8qOz97IeWjKUjJ60Js2nAnsGrFegat3/q GobD5skepXRy1smKKA8UHRYOYdGpmLDbSGsbIzEl3BbP4R51DwuyLHnxIz9bNSGGwtlKpZaIVBq5 rKGTi1EkRY8qXcq0qdOnUKNK1RECACH5BAUBAAAALCAAAACJABoAAAX/ICCOZGmeaKqubOu+cCzP dG3feK7vfO//wKBwSCwaj0iTYqk4MZurp5Q0dUKjyxIz+ZJmqdWUdysaa8nYK+C5/ordwrHbrJKD w210HU7WW9VqPGiDWWxvgSN9hH4ohnllcH+JkTp8X4t7eJh3Lps0jD6Gnn9ho48tioB3g5N6jluu eJBztIirVaagkqePdr1es6lTvsGAtZlQwrK6VrOtebiXr8B2xI7PzofY0IzMSpqFtNm8qdC/V8ff 6JSZt4jeZ9fC8dvl5eacu7yo7P3sh5aMpSMnrQmzacCewasV6Bq3f+oahsPmyR6ldHLWyYooDxQd Fg5h0amYsNtIaxsjMSXcFs/hHnUPC7IsefEjP1s1IYbC2UqllohUGrmsoZOLUSRFjypdyrSp06dQ o0rVEQIAIfkEBQEAAAAsKAAZAHkADgAABTEgII5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqP yKRyyWw6n9CodEqtWq/YbDIEACH5BAUCAAAALCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+cCzPdG3f eK67UK9DJCBOaCOeekbfSLlslowyJpQ2jTFNSqFWtOUSq8VvDswDkIPctFm9DkrNSK/22uxm61lk XL/M09tnXmp2ckdpPkBvcFiLiYeJeY2HdYKIT04oV4SAbE6Oa0l/g5ackGKleKdYemB0m4RJk6Cy bWiVo5+zqLS5KWRTr4NyYnZforGLmHGcoMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5BAUCAAAA LCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+cCzPdG3feK67T68/JCBOaCOeekbfSLlslowyJpQ2jTFN SqFWtOUSq8VvDswDkIPctFm9DkrNSK/22uxm61lkXL/M09tnXmp2ckdpPkBvcFiLiYeJeY2HdYKI T04oV4SAbE6Oa0l/g5ackGKleKdYemB0m4RJk6CybWiVo5+zqLS5KWRTr4NyYnZforGLmHGcoMtw XSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5BAUCAAAALCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+cCzP dG3feK67Tq87JCBOaCOeekbfSLlslowyJpQ2jTFNSqFWtOUSq8VvDswDkIPctFm9DkrNSK/22uxm 61lkXL/M09tnXmp2ckdpPkBvcFiLiYeJeY2HdYKIT04oV4SAbE6Oa0l/g5ackGKleKdYemB0m4RJ k6CybWiVo5+zqLS5KWRTr4NyYnZforGLmHGcoMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5BAUC AAAALCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+cCzPdG3feK67Ta83JCBOaCOeekbfSLlslowyJpQ2 jTFNSqFWtOUSq8VvDswDkIPctFm9DkrNSK/22uxm61lkXL/M09tnXmp2ckdpPkBvcFiLiYeJeY2H dYKIT04oV4SAbE6Oa0l/g5ackGKleKdYemB0m4RJk6CybWiVo5+zqLS5KWRTr4NyYnZforGLmHGc oMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5BAUCAAAALCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+ cCzPdG3feK67TK8zJCBOaCOeekbfSLlslowyJpQ2jTFNSqFWtOUSq8VvDswDkIPctFm9DkrNSK/2 2uxm61lkXL/M09tnXmp2ckdpPkBvcFiLiYeJeY2HdYKIT04oV4SAbE6Oa0l/g5ackGKleKdYemB0 m4RJk6CybWiVo5+zqLS5KWRTr4NyYnZforGLmHGcoMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5 BAUCAAAALCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+cCzPdG3feK67S68vJCBOaCOeekbfSLlslowy JpQ2jTFNSqFWtOUSq8VvDswDkIPctFm9DkrNSK/22uxm61lkXL/M09tnXmp2ckdpPkBvcFiLiYeJ eY2HdYKIT04oV4SAbE6Oa0l/g5ackGKleKdYemB0m4RJk6CybWiVo5+zqLS5KWRTr4NyYnZforGL mHGcoMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5BAUCAAAALCgAGAB5AA4AAAW0ICCOZGmeaKqu bOu+cCzPdG3feK67Sq8rJCBOaCOeekbfSLlslowyJpQ2jTFNSqFWtOUSq8VvDswDkIPctFm9DkrN SK/22uxm61lkXL/M09tnXmp2ckdpPkBvcFiLiYeJeY2HdYKIT04oV4SAbE6Oa0l/g5ackGKleKdY emB0m4RJk6CybWiVo5+zqLS5KWRTr4NyYnZforGLmHGcoMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMh ACH5BAUBAAAALCgAGAB5AA4AAAW0ICCOZGmeaKqubOu+cCzPdG3feK67Sq8rJCBOaCOeekbfSLls lowyJpQ2jTFNSqFWtOUSq8VvDswDkIPctFm9DkrNSK/22uxm61lkXL/M09tnXmp2ckdpPkBvcFiL iYeJeY2HdYKIT04oV4SAbE6Oa0l/g5ackGKleKdYemB0m4RJk6CybWiVo5+zqLS5KWRTr4NyYnZf orGLmHGcoMtwXSqqw8Zu1TvX2IbZ29zd3t/g4SMhACH5BAUAQAAALAAAAAAEAAQAAAUGICCOZAmE ADs= ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.blogger.com/img/navbar/1/btn_search_this.gif R0lGODlhYAAPANUAAB9YjAlCeEN6rneq3VKIuxBKf0uBtWic0C5mmjVsoTxzpwhCeBhRhm+j1ghC d0J3q1mOwkJ4qxJLgD9ypDBikhJKgEN4rD5xozBiky9ikiVckRJKfSZdkSVdkRJJfSZdkj9xo2GV ySZfk36x5BFEd0J4rAlDeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABgAA8AAAb/QA8G 9CgZj8ikcslsOp/Q54VCynQqpqx2y+16v+CweDyWcCgTyYLMbrvfbsmk5FjD7/i8eLF4RBwBWQkD IwkmIiOJIlkGIwZZiCMDhiYADY6HI1kji1kCiSMhmZuLiiaDhVuRIwJZIa2ChI+xIwRZDiZFJoEm AwgFBaNbByEHkJoKmiYNCiYMwpxc0dCLAqK9v8FaiCYIyq9avgwjAM7klVmBEQ+AWQMHnYginQWF I8HyBMYA99uc8tLi/YtmzR08LvmMmQAnDJwChVoCLChhIQAvSyMQZApxzZuJjJkODFjEzR/HaVqm ITpZ7RpGjSYb2FoIqyQ4a5HSmSjxwOIWxgiiSjIaEGLAI24GRPF7doxUwKYfW/681rReOYb8gh1o lqCBsEAlIkjMokAEBFvyRAQLQUAEgaCaxj070JakMpROqZnQF6zsWVWckl1t+6yBAG/PGAxQkExL n4p2khIIBoBjiKvlKle6ZsBQgbfNNC8st+VyFtGmOZaTrO20ZZhJQxgCABRmJaCzAjgI206P7995 Jl6QwAu48eNhHMihoKHCAoskokufTr269evTA2Dfzr379AofMGxAEyGK+fPo05ufkIFEEAA7 ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www2.blogger.com/v-css/navbar/2173601441-navbar.css #b-navbar { DISPLAY: block! important; Z-INDEX: 1; MIN-HEIGHT: 24px; LEFT: 0px; = MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 7px; FONT: small "Trebuchet = MS",Verdana,Arial,Sans-serif; WIDTH: 100%; COLOR: #47a; BORDER-BOTTOM: = #024 1px solid; POSITION: absolute! important; TOP: 0px } .bt1 { FONT-SIZE: 1px; MARGIN: 0px 1px; LINE-HEIGHT: 1px; POSITION: relative; = HEIGHT: 1px } .bt2 { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 83%; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px; POSITION: relative } #b-next { PADDING-LEFT: 5px } #b-search-this { MARGIN: 0px; TEXT-TRANSFORM: uppercase; CURSOR: pointer; WHITE-SPACE: = nowrap; POSITION: relative; TEXT-DECORATION: none } #b-flag-this { PADDING-LEFT: 5px; MARGIN: 0px; TEXT-TRANSFORM: uppercase; CURSOR: = pointer; WHITE-SPACE: nowrap; POSITION: relative; TEXT-DECORATION: none } #b-navbar #b-logo { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 5px; = BORDER-BOTTOM-WIDTH: 0px; POSITION: absolute! important; TOP: 0.15em; = BORDER-RIGHT-WIDTH: 0px } @media All =20 { #b-search { MARGIN: 0px 0px 0px 34px; HEIGHT: 1em; BACKGROUND-COLOR: #147 } #b-search TABLE { PADDING-RIGHT: 5px } #b-search TD { FONT-SIZE: 100%; LINE-HEIGHT: 0.8em } #b-more { FLOAT: right } #b-searchbtn { MARGIN-RIGHT: 5px } #b-more { FLOAT: right } #b-search TABLE { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 2px; PADDING-TOP: 2px; _padding: 1px 2px 1px } #b-search A { LINE-HEIGHT: 1em; TEXT-DECORATION: none } #b-search A:hover { LINE-HEIGHT: 1em; TEXT-DECORATION: none } #b-search TD { LINE-HEIGHT: 0.8; PADDING-TOP: 2px } #b-search TD TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #b-searchbtn { DISPLAY: block } } @media Handheld =20 { #b-search { DISPLAY: none! important } #b-more { DISPLAY: none! important } } .navbar-right { PADDING-RIGHT: 10px } TD.navbutton { PADDING-RIGHT: 5px; _padding-top: .3em } TD.navsearch { PADDING-LEFT: 5px } #b-query { VERTICAL-ALIGN: top; WIDTH: 12em; MARGIN-RIGHT: 0.25em } #b-query { FONT-SIZE: x-small! important } @media All =20 { BODY DIV.b-mobile { DISPLAY: none } #b-sms { DISPLAY: none! important } } @media Handheld =20 { BODY DIV.b-mobile { DISPLAY: block } #b-sms { PADDING-RIGHT: 7px; DISPLAY: block! important; PADDING-LEFT: 7px; = FONT-SIZE: 100%; PADDING-BOTTOM: 4px; MARGIN: 0px 0px 0px 100px; = LINE-HEIGHT: 1em; PADDING-TOP: 4px; TEXT-ALIGN: left } #b-sms A { LINE-HEIGHT: 1em; MARGIN-RIGHT: 0.5em; WHITE-SPACE: nowrap; = TEXT-DECORATION: none } #b-sms A:hover { COLOR: #fff; TEXT-DECORATION: underline } } @media All =20 { #flagi { PADDING-RIGHT: 1px; DISPLAY: none; PADDING-LEFT: 1px; Z-INDEX: 300; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TOP: 7px; BACKGROUND-COLOR: #333 } #unflagi { PADDING-RIGHT: 1px; DISPLAY: none; PADDING-LEFT: 1px; Z-INDEX: 300; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TOP: 7px; BACKGROUND-COLOR: #333 } } @media Handheld =20 { #flagi { DISPLAY: none! important } #unflagi { DISPLAY: none! important } } #flagi-body { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: = 10px; PADDING-BOTTOM: 3px; LINE-HEIGHT: 14px; PADDING-TOP: 3px; = FONT-FAMILY: "Trebuchet MS", Vedana, Arial, Sans-serif; = BACKGROUND-COLOR: #ffff99; TEXT-ALIGN: center } #flagi-body A { FONT-SIZE: 10px; COLOR: #3366cc; TEXT-DECORATION: none } #flagi-body A:hover { TEXT-DECORATION: underline } #unflagi-body { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: = 10px; PADDING-BOTTOM: 3px; LINE-HEIGHT: 14px; PADDING-TOP: 3px; = FONT-FAMILY: "Trebuchet MS", Vedana, Arial, Sans-serif; = BACKGROUND-COLOR: #ffff99; TEXT-ALIGN: center } #unflagi-body A { FONT-SIZE: 10px; COLOR: #3366cc; TEXT-DECORATION: none } #unflagi-body A:hover { TEXT-DECORATION: underline } ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www2.blogger.com/v-css/navbar/2433223533-1.css #b-navbar { COLOR: #47a; BORDER-BOTTOM: #024 1px solid; BACKGROUND-COLOR: #036 } #b-search TABLE { BACKGROUND: url(../../img/navbar/1/corner.gif) #147 no-repeat left = bottom } #b-query { BORDER-RIGHT: #47a 1px solid; BORDER-TOP: #47a 1px solid; BORDER-LEFT: = #47a 1px solid; BORDER-BOTTOM: #47a 1px solid } #b-search A { COLOR: #9cf } #b-search TD { COLOR: #fff } #b-search A:hover { COLOR: #fff } #b-sms A { COLOR: #9cf } #b-sms A:hover { COLOR: #fff } #navbar-logo { BACKGROUND-IMAGE: url(../../img/navbar/1/logobar.gif); WIDTH: 24px; = HEIGHT: 24px } #b-search-this { BACKGROUND: #114477 } .bt1 { BACKGROUND-COLOR: #4477aa } .bt2 { BORDER-RIGHT: #4477aa 1px solid; BORDER-LEFT: #4477aa 1px solid; COLOR: = #99ccff; BACKGROUND-COLOR: #114477 } DIV.bt2:hover { BACKGROUND-COLOR: #4477aa } #bt-flag { PADDING-LEFT: 8px; BACKGROUND: url(../../img/navbar/1/flag.gif) = no-repeat left 50% } ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www2.blogger.com/v-js/3625575137-cookies.common.js // Copyright 2005, Google Inc.=0A= // =0A= // Operations on cookies that are common across our pages.=0A= //=0A= // Original Author: Pal Takacsi-Nagy (pal@google.com)=0A= =0A= =0A= /**=0A= * Sets a Cookie with the given name and value.=0A= *=0A= * name Name of the cookie=0A= * value Value of the cookie=0A= * [expires] Expiration date of the cookie (default: end of current = session)=0A= * [path] Path where the cookie is valid (default: path of calling = document)=0A= * [domain] Domain where the cookie is valid=0A= * (default: domain of calling document)=0A= * [secure] Boolean value indicating if the cookie transmission = requires a=0A= * secure transmission=0A= */=0A= function setCookie(name, value, domain, expires, path, secure) {=0A= document.cookie =3D name + "=3D" + escape(value) +=0A= ((expires) ? "; expires=3D" + expires.toGMTString() : "") +=0A= ((path) ? "; path=3D" + path : "") +=0A= ((domain) ? "; domain=3D" + domain : "") +=0A= ((secure) ? "; secure" : "");=0A= }=0A= =0A= /**=0A= * Gets the value of the specified cookie.=0A= *=0A= * name Name of the desired cookie.=0A= *=0A= * Returns a string containing value of specified cookie,=0A= * or null if cookie does not exist.=0A= */=0A= function getCookie(name) {=0A= var dc =3D document.cookie;=0A= var prefix =3D name + "=3D";=0A= var begin =3D dc.indexOf("; " + prefix);=0A= =0A= if (begin =3D=3D -1) {=0A= begin =3D dc.indexOf(prefix);=0A= if (begin !=3D 0) return null;=0A= } else {=0A= begin +=3D 2;=0A= }=0A= =0A= var end =3D document.cookie.indexOf(";", begin);=0A= =0A= if (end =3D=3D -1) {=0A= end =3D dc.length;=0A= }=0A= =0A= return unescape(dc.substring(begin + prefix.length, end));=0A= }=0A= ------=_NextPart_000_000E_01C83B73.370DACA0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www2.blogger.com/v-app/scripts/1019856700-common.js // Copied from .../google3/javascript/common.js=0A= =0A= //-----------------------------------------------------------------------= -=0A= // This file contains common utilities and basic javascript = infrastructure.=0A= //=0A= // Notes:=0A= // * Press 'D' to toggle debug mode.=0A= //=0A= // Functions:=0A= //=0A= // - Assertions=0A= // DEPRECATED: Use assert.js=0A= // AssertTrue(): assert an expression. Throws an exception if false.=0A= // Fail(): Throws an exception. (Mark block of code that should be = unreachable)=0A= // AssertEquals(): assert that two values are equal.=0A= // AssertNumArgs(): assert number of arguments for the function=0A= // AssertType(): assert that a value has a particular type=0A= //=0A= // - Cookies=0A= // SetCookie(): Sets a cookie.=0A= // ExpireCookie(): Expires a cookie.=0A= // GetCookie(): Gets a cookie value.=0A= //=0A= // - Dynamic HTML/DOM utilities=0A= // MaybeGetElement(): get an element by its id=0A= // GetElement(): get an element by its id=0A= // GetParentNode(): Get the parent of an element=0A= // GetAttribute(): Get attribute value of a DOM node=0A= // SetInnerHTML(): set the inner HTML of a node=0A= // GetInnerHTML(): get the inner HTML of a node=0A= // ClearInnerHTML(): clear the inner HTML of a node=0A= // SetCssStyle(): Sets a CSS property of a node.=0A= // GetStyleProperty(): Get CSS property from a style attribute string=0A= // ShowElement(): Show/hide element by setting the "display" css = property.=0A= // ShowBlockElement(): Show/hide block element=0A= // SetButtonText(): Set the text of a button element.=0A= // AppendNewElement(): Create and append a html element to a parent node.=0A= // CreateDIV(): Create a DIV element and append to the document.=0A= // CreateIFRAME(): Create an IFRAME and append to the document.=0A= // HasClass(): check if element has a given class=0A= // AddClass(): add a class to an element=0A= // RemoveClass(): remove a class from an element=0A= //=0A= // - Window/Screen utiltiies=0A= // GetPageOffsetLeft(): get the X page offset of an element=0A= // GetPageOffsetTop(): get the Y page offset of an element=0A= // GetPageOffset(): get the X and Y page offsets of an element=0A= // GetPageOffsetRight() : get X page offset of the right side of an = element=0A= // GetPageOffsetRight() : get Y page offset of the bottom of an element=0A= // GetScrollTop(): get the vertical scrolling pos of a window.=0A= // GetScrollLeft(): get the horizontal scrolling pos of a window=0A= // IsScrollAtEnd(): check if window scrollbar has reached its maximum = offset=0A= // ScrollTo(): scroll window to a position=0A= // ScrollIntoView(): scroll window so that an element is in view.=0A= // GetWindowWidth(): get width of a window.=0A= // GetWindowHeight(): get height of a window=0A= // GetAvailScreenWidth(): get available screen width=0A= // GetAvailScreenHeight(): get available screen height=0A= // GetNiceWindowHeight(): get a nice height for a new browser window.=0A= // Open{External/Internal}Window(): open a separate window=0A= // CloseWindow(): close a window=0A= //=0A= // - DOM walking utilities=0A= // AnnotateTerms(): find terms in a node and decorate them with some tag=0A= // AnnotateText(): find terms in a text node and decorate them with some = tag=0A= //=0A= // - String utilties=0A= // HtmlEscape(): html escapes a string=0A= // HtmlUnescape(): remove html-escaping.=0A= // QuoteEscape(): escape " quotes.=0A= // CollapseWhitespace(): collapse multiple whitespace into one = whitespace.=0A= // Trim(): trim whitespace on ends of string=0A= // IsEmpty(): check if CollapseWhiteSpace(String) =3D=3D ""=0A= // IsLetterOrDigit(): check if a character is a letter or a digit=0A= // ConvertEOLToLF(): normalize the new-lines of a string.=0A= // HtmlEscapeInsertWbrs(): HtmlEscapes and inserts s (word break = tags)=0A= // after every n non-space chars and/or after or before certain = special chars=0A= //=0A= // - TextArea utilities=0A= // GetCursorPos(): finds the cursor position of a textfield=0A= // SetCursorPos(): sets the cursor position in a textfield=0A= //=0A= // - Array utilities=0A= // FindInArray(): do a linear search to find an element value.=0A= // DeleteArrayElement(): return a new array with a specific value = removed.=0A= // CloneObject(): clone an object, copying its values recursively.=0A= // CloneEvent(): clone an event; cannot use CloneObject because it=0A= // suffers from infinite recursion=0A= //=0A= // - Formatting utilities=0A= // PrintArray(): used to print/generate HTML by combining static text=0A= // and dynamic strings.=0A= // ImageHtml(): create html for an img tag=0A= // FormatJSLink(): formats a link that invokes js code when clicked.=0A= // MakeId3(): formats an id that has two id numbers, eg, foo_3_7=0A= //=0A= // - Miscellaneous=0A= // IsDefined(): returns true if argument is not undefined=0A= //-----------------------------------------------------------------------= -=0A= =0A= // browser detection=0A= var agent =3D navigator.userAgent.toLowerCase();=0A= var is_ie =3D (agent.indexOf('msie') !=3D -1);=0A= //var is_ie5 =3D (agent.indexOf('msie 5') !=3D -1 && document.all);=0A= var is_konqueror =3D (agent.indexOf('konqueror') !=3D -1);=0A= var is_safari =3D (agent.indexOf('safari') !=3D -1) || is_konqueror;=0A= var is_nav =3D !is_ie && !is_safari && (agent.indexOf('mozilla') !=3D = -1);=0A= var is_win =3D (agent.indexOf('win') !=3D -1);=0A= delete agent;=0A= =0A= =0A= var BACKSPACE_KEYCODE =3D 8;=0A= var COMMA_KEYCODE =3D 188; // ',' key=0A= var DEBUG_KEYCODE =3D 68; // 'D' key=0A= var DELETE_KEYCODE =3D 46;=0A= var DOWN_KEYCODE =3D 40; // DOWN arrow key=0A= var ENTER_KEYCODE =3D 13; // ENTER key=0A= var ESC_KEYCODE =3D 27; // ESC key=0A= var LEFT_KEYCODE =3D 37; // LEFT arrow key=0A= var RIGHT_KEYCODE =3D 39; // RIGHT arrow key=0A= var SPACE_KEYCODE =3D 32; // space bar=0A= var TAB_KEYCODE =3D 9; // TAB key=0A= var UP_KEYCODE =3D 38; // UP arrow key=0A= var SHIFT_KEYCODE =3D 16;=0A= =0A= // This is a "constant" but has different values depending on the browser=0A= var semicolon_keycode =3D (is_ie ? 186 : 59);=0A= =0A= var MAX_EMAIL_ADDRESS_LENGTH =3D 320; // 64 + '@' + 255=0A= var MAX_SIGNATURE_LENGTH =3D 1000; // 1000 chars of maximum = signature=0A= =0A= //-----------------------------------------------------------------------= -=0A= // Assertions=0A= // DEPRECATED: Use assert.js=0A= //-----------------------------------------------------------------------= -=0A= /**=0A= * DEPRECATED: Use assert.js=0A= */=0A= function raise(msg) {=0A= if (typeof Error !=3D 'undefined') {=0A= throw new Error(msg || 'Assertion Failed');=0A= } else {=0A= throw (msg);=0A= }=0A= }=0A= =0A= /**=0A= * DEPRECATED: Use assert.js=0A= *=0A= * Fail() is useful for marking logic paths that should=0A= * not be reached. For example, if you have a class that uses=0A= * ints for enums:=0A= *=0A= * MyClass.ENUM_FOO =3D 1;=0A= * MyClass.ENUM_BAR =3D 2;=0A= * MyClass.ENUM_BAZ =3D 3;=0A= *=0A= * And a switch statement elsewhere in your code that=0A= * has cases for each of these enums, then you can=0A= * "protect" your code as follows:=0A= *=0A= * switch(type) {=0A= * case MyClass.ENUM_FOO: doFooThing(); break;=0A= * case MyClass.ENUM_BAR: doBarThing(); break;=0A= * case MyClass.ENUM_BAZ: doBazThing(); break;=0A= * default:=0A= * Fail("No enum in MyClass with value: " + type);=0A= * }=0A= *=0A= * This way, if someone introduces a new value for this enum=0A= * without noticing this switch statement, then the code will=0A= * fail if the logic allows it to reach the switch with the=0A= * new value, alerting the developer that he should add a=0A= * case to the switch to handle the new value he has introduced.=0A= *=0A= * @param {string} opt_msg to display for failure=0A= * DEFAULT: "Assertion failed"=0A= */=0A= function Fail(opt_msg) {=0A= if (opt_msg =3D=3D=3D undefined) opt_msg =3D 'Assertion failed';=0A= if (IsDefined(DumpError)) DumpError(opt_msg + '\n');=0A= raise(opt_msg);=0A= }=0A= =0A= /**=0A= * DEPRECATED: Use assert.js=0A= *=0A= * Asserts that an expression is true (non-zero and non-null).=0A= *=0A= * Note that it is critical not to pass logic=0A= * with side-effects as the expression for AssertTrue=0A= * because if the assertions are removed by the=0A= * JSCompiler, then the expression will be removed=0A= * as well, in which case the side-effects will=0A= * be lost. So instead of this:=0A= *=0A= * AssertTrue( criticalComputation() );=0A= *=0A= * Do this:=0A= *=0A= * var result =3D criticalComputation();=0A= * AssertTrue(result);=0A= *=0A= * @param {anything} expression to evaluate=0A= * @param {string} opt_msg to display if the assertion fails=0A= *=0A= */=0A= function AssertTrue(expression, opt_msg) {=0A= if (!expression) {=0A= if (opt_msg =3D=3D=3D undefined) opt_msg =3D 'Assertion failed';=0A= Fail(opt_msg);=0A= }=0A= }=0A= =0A= /**=0A= * DEPRECATED: Use assert.js=0A= *=0A= * Asserts that two values are the same.=0A= *=0A= * @param {anything} val1=0A= * @param {anything} val2=0A= * @param {string} opt_msg to display if the assertion fails=0A= */=0A= function AssertEquals(val1, val2, opt_msg) {=0A= if (val1 !=3D val2) {=0A= if (opt_msg =3D=3D=3D undefined) {=0A= opt_msg =3D "AssertEquals failed: <" + val1 + "> !=3D <" + val2 + = ">";=0A= }=0A= Fail(opt_msg);=0A= }=0A= }=0A= =0A= /**=0A= * DEPRECATED: Use assert.js=0A= *=0A= * Asserts that a value is of the provided type.=0A= *=0A= * AssertType(6, Number);=0A= * AssertType("ijk", String);=0A= * AssertType([], Array);=0A= * AssertType({}, Object);=0A= * AssertType(ICAL_Date.now(), ICAL_Date);=0A= *=0A= * @param {anything} value=0A= * @param {constructor function} type=0A= * @param {string} opt_msg to display if the assertion fails=0A= */=0A= function AssertType(value, type, opt_msg) {=0A= // for backwards compatability only=0A= if (typeof value =3D=3D type) return;=0A= =0A= if (value || value =3D=3D "") {=0A= try {=0A= if (type =3D=3D AssertTypeMap[typeof value] || value instanceof = type) return;=0A= } catch (e) { /* failure, type was an illegal argument to instanceof = */ }=0A= }=0A= if (opt_msg =3D=3D=3D undefined) {=0A= if (typeof type =3D=3D 'function') {=0A= var match =3D type.toString().match(/^\s*function\s+([^\s\{]+)/);=0A= if (match) type =3D match[1];=0A= }=0A= opt_msg =3D "AssertType failed: <" + value + "> not typeof "+ type;=0A= }=0A= Fail(opt_msg);=0A= }=0A= =0A= var AssertTypeMap =3D {=0A= 'string' : String,=0A= 'number' : Number,=0A= 'boolean' : Boolean=0A= };=0A= =0A= /**=0A= * DEPRECATED: Use assert.js=0A= *=0A= * Asserts that the number of arguments to a=0A= * function is num. For example:=0A= *=0A= * function myFunc(one, two, three) [=0A= * AssertNumArgs(3);=0A= * ...=0A= * }=0A= *=0A= * myFunc(1, 2); // assertion fails!=0A= *=0A= * Note that AssertNumArgs does not take the function=0A= * as an argument; it is simply used in the context=0A= * of the function.=0A= *=0A= * @param {int} number of arguments expected=0A= * @param {string} opt_msg to display if the assertion fails=0A= */=0A= function AssertNumArgs(num, opt_msg) {=0A= var caller =3D AssertNumArgs.caller; // This is not supported in = safari 1.0=0A= if (caller && caller.arguments.length !=3D num) {=0A= if (opt_msg =3D=3D=3D undefined) {=0A= opt_msg =3D caller.name + ' expected ' + num + ' arguments '=0A= + ' but received ' + caller.arguments.length;=0A= }=0A= Fail(opt_msg);=0A= }=0A= }=0A= =0A= //-----------------------------------------------------------------------= -=0A= // Cookies=0A= //-----------------------------------------------------------------------= -=0A= var ILLEGAL_COOKIE_CHARS_RE =3D /[\s;]/=0A= /**=0A= * Sets a cookie.=0A= * The max_age can be -1 to set a session cookie. To expire cookies, use=0A= * ExpireCookie() instead.=0A= *=0A= * @param name The cookie name.=0A= * @param value The cookie value.=0A= * @param opt_max_age The max age in seconds (from now). Use -1 to set a=0A= * session cookie. If not provided, the default is -1 (i.e. set a = session=0A= * cookie).=0A= * @param opt_path The path of the cookie, or null to not specify a path=0A= * attribute (browser will use the full request path). If not = provided, the=0A= * default is '/' (i.e. path=3D/).=0A= * @param opt_domain The domain of the cookie, or null to not specify a = domain=0A= * attribute (brower will use the full request host name). If not = provided,=0A= * the default is null (i.e. let browser use full request host name).=0A= * @return Void.=0A= */=0A= function SetCookie(name, value, opt_max_age, opt_path, opt_domain) {=0A= =0A= value =3D '' + value;=0A= AssertTrue((typeof name =3D=3D 'string' &&=0A= typeof value =3D=3D 'string' &&=0A= !name.match(ILLEGAL_COOKIE_CHARS_RE) &&=0A= !value.match(ILLEGAL_COOKIE_CHARS_RE)),=0A= 'trying to set an invalid cookie');=0A= =0A= if (!IsDefined(opt_max_age)) opt_max_age =3D -1;=0A= if (!IsDefined(opt_path)) opt_path =3D '/';=0A= if (!IsDefined(opt_domain)) opt_domain =3D null;=0A= =0A= var domain_str =3D (opt_domain =3D=3D null) ? '' : ';domain=3D' + = opt_domain;=0A= var path_str =3D (opt_path =3D=3D null) ? '' : ';path=3D' + opt_path;=0A= =0A= var expires_str;=0A= =0A= // Case 1: Set a session cookie.=0A= if (opt_max_age < 0) {=0A= expires_str =3D '';=0A= =0A= // Case 2: Expire the cookie.=0A= // Note: We don't tell people about this option in the function doc = because=0A= // we prefer people to use ExpireCookie() to expire cookies.=0A= } else if (opt_max_age =3D=3D 0) {=0A= // Note: Don't use Jan 1, 1970 for date because NS 4.76 will try to = convert=0A= // it to local time, and if the local time is before Jan 1, 1970, = then the=0A= // browser will ignore the Expires attribute altogether.=0A= var pastDate =3D new Date(1970, 1 /*Feb*/, 1); // Feb 1, 1970=0A= expires_str =3D ';expires=3D' + pastDate.toUTCString();=0A= =0A= // Case 3: Set a persistent cookie.=0A= } else {=0A= var futureDate =3D new Date(Now() + opt_max_age * 1000);=0A= expires_str =3D ';expires=3D' + futureDate.toUTCString();=0A= }=0A= =0A= document.cookie =3D name + '=3D' + value + domain_str + path_str + = expires_str;=0A= }=0A= =0A= var EXPIRED_COOKIE_VALUE =3D 'EXPIRED';=0A= =0A= /**=0A= * Expires a cookie.=0A= *=0A= * @param name The cookie name.=0A= * @param opt_path The path of the cookie, or null to expire a cookie = set at=0A= * the full request path. If not provided, the default is '/' (i.e. = path=3D/).=0A= * @param opt_domain The domain of the cookie, or null to expire a = cookie set=0A= * at the full request host name. If not provided, the default is null = (i.e.=0A= * cookie at full request host name).=0A= * @return Void.=0A= */=0A= function ExpireCookie(name, opt_path, opt_domain) {=0A= SetCookie(name, EXPIRED_COOKIE_VALUE, 0, opt_path, opt_domain);=0A= }=0A= =0A= /** Returns the value for the first cookie with the given name=0A= * @param name : string=0A= * @return a string or the empty string if no cookie found.=0A= */=0A= function GetCookie(name) {=0A= var nameeq =3D name + "=3D";=0A= var cookie =3D String(document.cookie);=0A= for (var pos =3D -1; (pos =3D cookie.indexOf(nameeq, pos + 1)) >=3D = 0;) {=0A= var i =3D pos;=0A= // walk back along string skipping whitespace and looking for a ; = before=0A= // the name to make sure that we don't match cookies whose name = contains=0A= // the given name as a suffix.=0A= while (--i >=3D 0) {=0A= var ch =3D cookie.charAt(i);=0A= if (ch =3D=3D ';') {=0A= i =3D -1; // indicate success=0A= break;=0A= } else if (' \t'.indexOf(ch) < 0) {=0A= break;=0A= }=0A= }=0A= if (-1 =3D=3D=3D i) { // first cookie in the string or we found a ;=0A= var end =3D cookie.indexOf(';', pos);=0A= if (end < 0) { end =3D cookie.length; }=0A= return cookie.substring(pos + nameeq.length, end);=0A= }=0A= }=0A= return "";=0A= }=0A= =0A= =0A= //-----------------------------------------------------------------------= -=0A= // Time=0A= //-----------------------------------------------------------------------= -=0A= function Now() {=0A= return (new Date()).getTime();=0A= }=0A= =0A= //-----------------------------------------------------------------------= -=0A= // Dynamic HTML/DOM utilities=0A= //-----------------------------------------------------------------------= -=0A= // Gets a element by its id, may return null=0A= function MaybeGetElement(win, id) {=0A= return win.document.getElementById(id);=0A= }=0A= =0A= // Same as MaybeGetElement except that it throws an exception if it's = null=0A= function GetElement(win, id) {=0A= var el =3D win.document.getElementById(id);=0A= if (!el) {=0A= DumpError("Element " + id + " not found.");=0A= }=0A= return el;=0A= }=0A= =0A= // Gets elements by its id/name=0A= // IE treats getElementsByName as searching over ids, while Moz use = names.=0A= // so tags must have both id and name as the same string=0A= function GetElements(win, id) {=0A= return win.document.getElementsByName(id);=0A= }=0A= =0A= // Gets the parent of a html element.=0A= function GetParentNode(n) {=0A= try {=0A= return n.parentNode;=0A= } catch (e) {=0A= // n.parentNode may throw a permission-denied exception on mozilla=0A= // (e.g. on text element), ignore this exception.=0A= return n;=0A= }=0A= }=0A= =0A= function IsDescendant(parent, child) {=0A= do {=0A= if (parent =3D=3D=3D child) return true;=0A= child =3D GetParentNode(child);=0A= } while (child && child !=3D=3D document.body);=0A= return false;=0A= }=0A= =0A= // Get attribute value of a DOM node=0A= function GetAttribute(node, attribute) {=0A= if (!node.getAttribute) {=0A= return null;=0A= }=0A= var attr =3D node.getAttribute(attribute);=0A= if (is_ie && attribute =3D=3D "style") {=0A= return attr.value;=0A= } else {=0A= return attr;=0A= }=0A= }=0A= =0A= // Sets inner html of a html element=0A= function SetInnerHTML(win, id, html) {=0A= try {=0A= GetElement(win, id).innerHTML =3D html;=0A= } catch (ex) {=0A= DumpException(ex);=0A= }=0A= }=0A= =0A= // Gets inner-html of a html element=0A= function GetInnerHTML(win, id) {=0A= try {=0A= return GetElement(win, id).innerHTML;=0A= } catch (ex) {=0A= DumpException(ex);=0A= return "";=0A= }=0A= }=0A= =0A= // Clears inner html of a html element=0A= function ClearInnerHTML(win, id) {=0A= try {=0A= GetElement(win, id).innerHTML =3D "";=0A= } catch (ex) {=0A= DumpException(ex);=0A= }=0A= }=0A= =0A= // Sets a CSS style of an element=0A= function SetCssStyle(win, id, name, value) {=0A= try {=0A= var elem =3D GetElement(win, id);=0A= elem.style[name] =3D value;=0A= } catch (ex) {=0A= DumpException(ex);=0A= }=0A= }=0A= =0A= // Get CSS property from a style attribute string=0A= function GetStyleProperty(style, name) {=0A= var i =3D style.indexOf(name);=0A= if (i !=3D -1) {=0A= var j =3D style.indexOf(";", i);=0A= if (j =3D=3D -1) {=0A= j =3D style.length;=0A= }=0A= // the +1 below is for the colon following the attribute name=0A= return CollapseWhitespace(style.substring(i + name.length + 1, j));=0A= }=0A= return null;=0A= }=0A= =0A= // Show/hide an element.=0A= function ShowElement(el, show) {=0A= el.style.display =3D show ? "" : "none";=0A= }=0A= =0A= // Show/hide a block element.=0A= // ShowElement() doesn't work if object has an initial class with = display:none=0A= function ShowBlockElement(el, show) {=0A= el.style.display =3D show ? "block" : "none";=0A= }=0A= =0A= // Show/hide an inline element.=0A= // ShowElement() doesn't work when an element starts off display:none.=0A= function ShowInlineElement(el, show) {=0A= el.style.display =3D show ? "inline" : "none";=0A= }=0A= =0A= // Set the text of a button. This is to get around a bug in mozilla,=0A= // where we can't set the text of a button by setting innerHTML.=0A= function SetButtonText(button, text) {=0A= button.childNodes[0].nodeValue =3D text;=0A= }=0A= =0A= // Append a new HTML element to a HTML node.=0A= function AppendNewElement(win, parent, tag) {=0A= var e =3D win.document.createElement(tag);=0A= parent.appendChild(e);=0A= return e;=0A= }=0A= =0A= // Finds the child with the given ID, or null if there is node.=0A= // This does not search the children's children.=0A= function FindChildWithID(parent, id) {=0A= var el;=0A= for (el =3D parent.firstChild; el && el.id !=3D id; el =3D = el.nextSibling) {=0A= // skip=0A= }=0A= return el;=0A= }=0A= =0A= // Adds a disabled option to the given menu=0A= function AddMenuDisabledOption(win, menu, html) {=0A= var op =3D AppendNewElement(win, menu, 'OPTION');=0A= op.disabled =3D true;=0A= op.innerHTML =3D html;=0A= =0A= return op;=0A= }=0A= =0A= // Adds a option to the given menu=0A= function AddMenuOption(win, menu, value, html) {=0A= var op =3D AppendNewElement(win, menu, 'OPTION');=0A= op.value =3D value;=0A= op.innerHTML =3D html;=0A= =0A= return op;=0A= }=0A= =0A= // Create a new DIV (append it to the end of the document)=0A= function CreateDIV(win, id) {=0A= var div =3D MaybeGetElement(win, id);=0A= if (!div) {=0A= div =3D AppendNewElement(win, win.document.body, "div");=0A= div.id =3D id;=0A= }=0A= return div;=0A= }=0A= =0A= // Create a new IFRAME (append it to the end of the document)=0A= function CreateIFRAME(win, id, url) {=0A= var iframe =3D MaybeGetElement(win, id);=0A= if (!iframe) {=0A= // We cannot create an IFRAME directly (IE doesn't allow it), so we=0A= // create a DIV and then insert an IFRAME.=0A= // We also give the IFRAME a name (same as id)=0A= var div =3D AppendNewElement(win, win.document.body, "div");=0A= div.innerHTML =3D "";=0A= iframe =3D GetElement(win, id);=0A= }=0A= return iframe;=0A= }=0A= =0A= // Create a new TR containing the given td's=0A= function Tr(win, tds) {=0A= var tr =3D win.document.createElement("TR");=0A= for (var i =3D 0; i < tds.length; i++) {=0A= tr.appendChild(tds[i]);=0A= }=0A= return tr;=0A= }=0A= =0A= // Create a new TD, with an optional colspan=0A= function Td(win, opt_colspan) {=0A= var td =3D win.document.createElement("TD");=0A= if (opt_colspan) {=0A= td.colSpan =3D opt_colspan;=0A= }=0A= return td;=0A= }=0A= =0A= =0A= // Check if an element has a given class=0A= function HasClass(el, cl) {=0A= if (el =3D=3D null || el.className =3D=3D null) return false;=0A= var classes =3D el.className.split(" ");=0A= for (var i =3D 0; i < classes.length; i++) {=0A= if (classes[i] =3D=3D cl) {=0A= return true;=0A= }=0A= }=0A= return false;=0A= }=0A= =0A= // Add a class to element=0A= function AddClass(el, cl) {=0A= if (HasClass(el, cl)) return;=0A= el.className +=3D " " + cl;=0A= }=0A= =0A= // Remove a class from an element=0A= function RemoveClass(el, cl) {=0A= if (el.className =3D=3D null) return;=0A= var classes =3D el.className.split(" ");=0A= var result =3D [];=0A= var changed =3D false;=0A= for (var i =3D 0; i < classes.length; i++) {=0A= if (classes[i] !=3D cl) {=0A= if (classes[i]) { result.push(classes[i]); }=0A= } else {=0A= changed =3D true;=0A= }=0A= }=0A= if (changed) { el.className =3D result.join(" "); }=0A= }=0A= =0A= // Performs an in-order traversal of the tree rooted at the given node=0A= // (excluding the root node) and returns an array of nodes that match the=0A= // given selector. The selector must implement the method:=0A= //=0A= // boolean select(node);=0A= //=0A= // This method is a generalization of the DOM method = "getElementsByTagName"=0A= //=0A= function GetElementsBySelector(root, selector) {=0A= var nodes =3D [];=0A= for (var child =3D root.firstChild; child; child =3D = child.nextSibling) {=0A= AddElementBySelector_(child, selector, nodes);=0A= }=0A= return nodes;=0A= }=0A= =0A= // Recursive helper for GetElemnetsBySelector()=0A= function AddElementBySelector_(root, selector, nodes) {=0A= // First test the parent=0A= if (selector.select(root)) {=0A= nodes.push(root);=0A= }=0A= =0A= // Then recurse through the children=0A= for (var child =3D root.firstChild; child; child =3D = child.nextSibling) {=0A= AddElementBySelector_(child, selector, nodes);=0A= }=0A= }=0A= =0A= //-----------------------------------------------------------------------= -=0A= // Window/screen utilities=0A= // TODO: these should be renamed (e.g. GetWindowWidth to = GetWindowInnerWidth=0A= // and moved to geom.js)=0A= //-----------------------------------------------------------------------= -=0A= // Get page offset of an element=0A= function GetPageOffsetLeft(el) {=0A= var x =3D el.offsetLeft;=0A= if (el.offsetParent !=3D null)=0A= x +=3D GetPageOffsetLeft(el.offsetParent);=0A= return x;=0A= }=0A= =0A= // Get page offset of an element=0A= function GetPageOffsetTop(el) {=0A= var y =3D el.offsetTop;=0A= if (el.offsetParent !=3D null)=0A= y +=3D GetPageOffsetTop(el.offsetParent);=0A= return y;=0A= }=0A= =0A= // Get page offset of an element=0A= function GetPageOffset(el) {=0A= var x =3D el.offsetLeft;=0A= var y =3D el.offsetTop;=0A= if (el.offsetParent !=3D null) {=0A= var pos =3D GetPageOffset(el.offsetParent);=0A= x +=3D pos.x;=0A= y +=3D pos.y;=0A= }=0A= return {x: x, y: y};=0A= }=0A= =0A= function GetPageOffsetRight(el) {=0A= return GetPageOffsetLeft(el) + el.offsetWidth;=0A= }=0A= =0A= function GetPageOffsetBottom(el) {=0A= return GetPageOffsetTop(el) + el.offsetHeight;=0A= }=0A= =0A= // Get the y position scroll offset.=0A= function GetScrollTop(win) {=0A= // all except Explorer=0A= if ("pageYOffset" in win) {=0A= return win.pageYOffset;=0A= }=0A= // Explorer 6 Strict Mode=0A= else if ("documentElement" in win.document &&=0A= "scrollTop" in win.document.documentElement) {=0A= return win.document.documentElement.scrollTop;=0A= }=0A= // other Explorers=0A= else if ("scrollTop" in win.document.body) {=0A= return win.document.body.scrollTop;=0A= }=0A= =0A= return 0;=0A= }=0A= =0A= // Get the x position scroll offset.=0A= function GetScrollLeft(win) {=0A= // all except Explorer=0A= if ("pageXOffset" in win) {=0A= return win.pageXOffset;=0A= }=0A= // Explorer 6 Strict Mode=0A= else if ("documentElement" in win.document &&=0A= "scrollLeft" in win.document.documentElement) {=0A= return win.document.documentElement.scrollLeft;=0A= }=0A= // other Explorers=0A= else if ("scrollLeft" in win.document.body) {=0A= return win.document.body.scrollLeft;=0A= }=0A= =0A= return 0;=0A= }=0A= =0A= /**=0A= * Checks if window scrollbar has reached its maximum offset=0A= *=0A= * @param win a window object=0A= * @param opt_isHoriz true if horizontal bar, false if vertical=0A= */=0A= function IsScrollAtEnd(win, opt_isHoriz) {=0A= var total =3D=0A= (opt_isHoriz) ? document.body.offsetWidth : = document.body.offsetHeight;=0A= var inner =3D=0A= (opt_isHoriz) ? GetWindowWidth(win) : GetWindowHeight(win);=0A= var offset =3D=0A= (opt_isHoriz) ? GetScrollLeft(win) : GetScrollTop(win);=0A= =0A= return (inner + offset >=3D total || total < inner);=0A= }=0A= =0A= // Scroll window to pos=0A= // position: 0 =3D top, 0.5 =3D middle, 1 =3D bottom=0A= function ScrollTo(win, el, position) {=0A= var y =3D GetPageOffsetTop(el);=0A= y -=3D GetWindowHeight(win) * position;=0A= win.scrollTo(0, y);=0A= }=0A= =0A= // Scroll so that as far as possible the entire element is in view.=0A= var ALIGN_BOTTOM =3D 'b';=0A= var ALIGN_MIDDLE =3D 'm';=0A= var ALIGN_TOP =3D 't';=0A= function ScrollIntoView(win, el, alignment) {=0A= var el_top =3D GetPageOffsetTop(el);=0A= var el_bottom =3D el_top + el.offsetHeight;=0A= var win_top =3D GetScrollTop(win);=0A= var win_height =3D GetWindowHeight(win);=0A= var win_bottom =3D win_top + win_height;=0A= =0A= // Out of view?=0A= if (el_top < win_top ||=0A= el_bottom > win_bottom) {=0A= =0A= var scrollto_y;=0A= if (alignment =3D=3D ALIGN_BOTTOM) {=0A= scrollto_y =3D el_bottom - win_height + 5;=0A= } else if (alignment =3D=3D ALIGN_MIDDLE) {=0A= scrollto_y =3D (el_top + el_bottom) / 2 - win_height/2;=0A= } else {=0A= scrollto_y =3D el_top - 5; // ALIGN_TOP=0A= }=0A= =0A= Debug("Scrolling to " + scrollto_y);=0A= win.scrollTo(0, scrollto_y);=0A= }=0A= }=0A= =0A= function IsElementVisible(win, id) {=0A= var el =3D MaybeGetElement(win, id);=0A= if (el =3D=3D null) {=0A= return false;=0A= }=0A= var el_top =3D GetPageOffsetTop(el);=0A= var el_bottom =3D el_top + el.offsetHeight;=0A= var win_top =3D GetScrollTop(win);=0A= var win_bottom =3D win_top + GetWindowHeight(win);=0A= if (el_top >=3D win_top && el_bottom <=3D win_bottom) {=0A= return true;=0A= }=0A= return false;=0A= }=0A= =0A= function GetWindowWidth(win) {=0A= // all except Explorer=0A= if ("innerWidth" in win) {=0A= return win.innerWidth;=0A= }=0A= // Explorer 6 Strict Mode=0A= else if ("documentElement" in win.document &&=0A= "clientWidth" in win.document.documentElement) {=0A= return win.document.documentElement.clientWidth;=0A= }=0A= // other Explorers=0A= else if ("clientWidth" in win.document.body) {=0A= return win.document.body.clientWidth;=0A= }=0A= =0A= return 0;=0A= }=0A= =0A= function GetWindowHeight(win) {=0A= // all except Explorer=0A= if ("innerHeight" in win) {=0A= return win.innerHeight;=0A= }=0A= // Explorer 6 Strict Mode=0A= else if ("documentElement" in win.document &&=0A= "clientHeight" in win.document.documentElement) {=0A= return win.document.documentElement.clientHeight;=0A= }=0A= // other Explorers=0A= else if ("clientHeight" in win.document.body) {=0A= return win.document.body.clientHeight;=0A= }=0A= =0A= return 0;=0A= }=0A= =0A= function GetAvailScreenWidth(win) {=0A= return win.screen.availWidth;=0A= }=0A= =0A= function GetAvailScreenHeight(win) {=0A= return win.screen.availHeight;=0A= }=0A= =0A= // Returns a "nice" window height.=0A= // Use the screen height. (Or should we use the height of the current = window?)=0A= function GetNiceWindowHeight(win) {=0A= return Math.floor(0.8 * GetAvailScreenHeight(win));=0A= }=0A= =0A= // Used for horizontally centering a new window of the given width in the=0A= // available screen. Set the new window's distance from the left of the = screen=0A= // equal to this function's return value.=0A= // Params: width: the width of the new window=0A= // Returns: the distance from the left edge of the screen for the new = window to=0A= // be horizontally centered=0A= function GetCenteringLeft(win, width) {=0A= return (win.screen.availWidth - width) >> 1;=0A= }=0A= =0A= // Used for vertically centering a new window of the given height in the=0A= // available screen. Set the new window's distance from the top of the = screen=0A= // equal to this function's return value.=0A= // Params: height: the height of the new window=0A= // Returns: the distance from the top edge of the screen for the new = window to=0A= // be vertically aligned.=0A= function GetCenteringTop(win, height) {=0A= return (win.screen.availHeight - height) >> 1;=0A= }=0A= =0A= /*=0A= * Opens a child popup window that has no browser toolbar/decorations.=0A= * (Copied from caribou's common.js library with small modifications.)=0A= *=0A= * @param url the URL for the new window (Note: this will be = unique-ified)=0A= * @param opt_name the name of the new window=0A= * @param opt_width the width of the new window=0A= * @param opt_height the height of the new window=0A= * @param opt_center if true, the new window is centered in the = available screen=0A= * @param opt_hide_scrollbars if true, the window hides the scrollbars=0A= * @param opt_noresize if true, makes window unresizable=0A= * @param opt_blocked_msg message warning that the popup has been blocked=0A= * @return a reference to the new child window=0A= */=0A= function Popup(url, opt_name, opt_width, opt_height, opt_center,=0A= opt_hide_scrollbars, opt_noresize, opt_blocked_msg) {=0A= if (!opt_height) {=0A= opt_height =3D Math.floor(GetWindowHeight(window.top) * 0.8);=0A= }=0A= if (!opt_width) {=0A= opt_width =3D Math.min(GetAvailScreenWidth(window), opt_height);=0A= }=0A= =0A= var features =3D "resizable=3D" + (opt_noresize ? "no" : "yes") + "," +=0A= "scrollbars=3D" + (opt_hide_scrollbars ? "no" : "yes") = + "," +=0A= "width=3D" + opt_width + ",height=3D" + opt_height;=0A= if (opt_center) {=0A= features +=3D ",left=3D" + GetCenteringLeft(window, opt_width) + "," = +=0A= "top=3D" + GetCenteringTop(window, opt_height);=0A= }=0A= return OpenWindow(window, url, opt_name, features, opt_blocked_msg);=0A= }=0A= =0A= /*=0A= * Opens a new window. Returns the new window handle. Tries to open the = new=0A= * window using top.open() first. If that doesn't work, then tries = win.open().=0A= * If that still doesn't work, prints an alert.=0A= * (Copied from caribou's common.js library with small modifications.)=0A= *=0A= * @param win the parent window from which to open the new child window=0A= * @param url the URL for the new window (Note: this will be = unique-ified)=0A= * @param opt_name the name of the new window=0A= * @param opt_features the properties of the new window=0A= * @param opt_blocked_msg message warning that the popup has been blocked=0A= * @return a reference to the new child window=0A= */=0A= function OpenWindow(win, url, opt_name, opt_features, opt_blocked_msg) {=0A= var newwin =3D OpenWindowHelper(top, url, opt_name, opt_features);=0A= if (!newwin || newwin.closed || !newwin.focus) {=0A= newwin =3D OpenWindowHelper(win, url, opt_name, opt_features);=0A= }=0A= if (!newwin || newwin.closed || !newwin.focus) {=0A= if (opt_blocked_msg) alert(opt_blocked_msg);=0A= } else {=0A= // Make sure that the window has the focus=0A= newwin.focus();=0A= }=0A= return newwin;=0A= }=0A= =0A= /*=0A= * Helper for OpenWindow().=0A= * (Copied from caribou's common.js library with small modifications.)=0A= */=0A= function OpenWindowHelper(win, url, name, features) {=0A= var newwin;=0A= if (features) {=0A= newwin =3D win.open(url, name, features);=0A= } else if (name) {=0A= newwin =3D win.open(url, name);=0A= } else {=0A= newwin =3D win.open(url);=0A= }=0A= return newwin;=0A= }=0A= =0A= //-----------------------------------------------------------------------= -=0A= // DOM walking utilities=0A= //-----------------------------------------------------------------------= -=0A= =0A= function MaybeEscape(str, escape) {=0A= return escape ? HtmlEscape(str) : str;=0A= }=0A= =0A= =0A= //-----------------------------------------------------------------------= -=0A= // Window data=0A= //-----------------------------------------------------------------------= -=0A= // Gets an array, which can store data for the window. This data=0A= // is deleted when the window is unloaded.=0A= var windata =3D [];=0A= function GetWindowData(win) {=0A= var data =3D windata[win.name];=0A= if (!data) {=0A= windata[win.name] =3D data =3D [];=0A= }=0A= return data;=0A= }=0A= =0A= // Clear js data for a window.=0A= function ClearWindowData(win_name) {=0A= if (windata[win_name]) {=0A= windata[win_name] =3D null;=0A= }=0A= }=0A= =0A= //-----------------------------------------------------------------------= -=0A= // String utilities=0A= //-----------------------------------------------------------------------= -=0A= // Do html escaping=0A= var amp_re_ =3D /&/g;=0A= var lt_re_ =3D //g;=0A= =0A= // Convert text to HTML format. For efficiency, we just convert '&', = '<', '>'=0A= // characters.=0A= // Note: Javascript >=3D 1.3 supports lambda expression in the = replacement=0A= // argument. But it's slower on IE.=0A= // Note: we can also implement HtmlEscape by setting the value=0A= // of a textnode and then reading the 'innerHTML' value, but that=0A= // that turns out to be slower.=0A= // Params: str: String to be escaped.=0A= // Returns: The escaped string.=0A= function HtmlEscape(str) {=0A= if (!str) return "";=0A= return str.replace(amp_re_, "&").replace(lt_re_, "<").=0A= replace(gt_re_, ">").replace(quote_re_, """);=0A= }=0A= =0A= /** converts html entities to plain text. It covers the most common = named=0A= * entities and numeric entities.=0A= * It does not cover all named entities -- it covers = &{lt,gt,amp,quot,nbsp}; but=0A= * does not handle some of the more obscure ones like &{ndash,eacute};.=0A= */=0A= function HtmlUnescape(str) {=0A= if (!str) return "";=0A= return str.=0A= replace(/&#(\d+);/g,=0A= function (_, n) { return String.fromCharCode(parseInt(n, 10)); }).=0A= replace(/&#x([a-f0-9]+);/gi,=0A= function (_, n) { return String.fromCharCode(parseInt(n, 16)); }).=0A= replace(/&(\w+);/g, function (_, entity) {=0A= entity =3D entity.toLowerCase();=0A= return entity in HtmlUnescape.unesc ? HtmlUnescape.unesc[entity] : = '?';=0A= });=0A= }=0A= HtmlUnescape.unesc =3D { lt: '<', gt: '>', quot: '"', nbsp: ' ', amp: = '&' };=0A= =0A= // Replace multiple spaces with   to retain whitespace formatting=0A= // in addition to escaping '&', '<', and '>'.=0A= var dbsp_re_ =3D / /g;=0A= var ret_re_ =3D /\r/g;=0A= var nl_re_ =3D /\n/g;=0A= function HtmlWhitespaceEscape(str) {=0A= str =3D HtmlEscape(str);=0A= str =3D str.replace(dbsp_re_, "  ");=0A= str =3D str.replace(ret_re_, "");=0A= str =3D str.replace(nl_re_, "
");=0A= return str;=0A= }=0A= =0A= // Escape double quote '"' characters in addition to '&', '<', '>' so = that a=0A= // string can be included in an HTML tag attribute value within double = quotes.=0A= // Params: str: String to be escaped.=0A= // Returns: The escaped string.=0A= var quote_re_ =3D /\"/g;=0A= function QuoteEscape(str) {=0A= return HtmlEscape(str).replace(quote_re_, """);=0A= }=0A= =0A= var JS_SPECIAL_RE_ =3D /[\'\\\r\n\b\"<>&]/g;=0A= =0A= function JSEscOne_(s) {=0A= if (!JSEscOne_.js_escs_) {=0A= var escapes =3D {};=0A= escapes['\\'] =3D '\\\\';=0A= escapes['\''] =3D '\\047';=0A= escapes['\n'] =3D '\\n';=0A= escapes['\r'] =3D '\\r';=0A= escapes['\b'] =3D '\\b';=0A= escapes['\"'] =3D '\\042';=0A= escapes['<'] =3D '\\074';=0A= escapes['>'] =3D '\\076';=0A= escapes['&'] =3D '\\046';=0A= =0A= JSEscOne_.js_escs_ =3D escapes;=0A= }=0A= =0A= return JSEscOne_.js_escs_[s];=0A= }=0A= =0A= /** convert a string to a javascript string literal. This function has = the=0A= * property that the return value is also already html escaped, so the = output=0A= * can be embedded in an html handler attribute.=0A= */=0A= function ToJSString(s) {=0A= return "'" + s.toString().replace(JS_SPECIAL_RE_, JSEscOne_) + "'";=0A= }=0A= =0A= // converts multiple ws chars to a single space, and strips=0A= // leading and trailing ws=0A= var spc_re_ =3D /\s+/g;=0A= var beg_spc_re_ =3D /^ /;=0A= var end_spc_re_ =3D / $/;=0A= function CollapseWhitespace(str) {=0A= if (!str) return "";=0A= return str.replace(spc_re_, " ").replace(beg_spc_re_, "").=0A= replace(end_spc_re_, "");=0A= }=0A= =0A= var newline_re_ =3D /\r?\n/g;=0A= var spctab_re_ =3D /[ \t]+/g;=0A= var nbsp_re_ =3D /\xa0/g;=0A= function StripNewlines(str) {=0A= if (!str) return "";=0A= return str.replace(newline_re_, " ");=0A= }=0A= =0A= function CanonicalizeNewlines(str) {=0A= if (!str) return "";=0A= return str.replace(newline_re_, '\n');=0A= }=0A= =0A= function HtmlifyNewlines(str) {=0A= if (!str) return "";=0A= return str.replace(newline_re_, "
");=0A= }=0A= =0A= function NormalizeSpaces(str) {=0A= if (!str) return "";=0A= return str.replace(spctab_re_, " ").replace(nbsp_re_, " ");=0A= }=0A= =0A= // URL encodes the string.=0A= function UrlEncode(str) {=0A= return encodeURIComponent(str);=0A= }=0A= =0A= function Trim(str) {=0A= if (!str) return "";=0A= return str.replace(/^\s+/, "").replace(/\s+$/, "");=0A= }=0A= =0A= function EndsWith(str, suffix) {=0A= if (!str) return !suffix;=0A= return (str.lastIndexOf(suffix) =3D=3D (str.length - suffix.length));=0A= }=0A= =0A= // Check if a string is empty=0A= function IsEmpty(str) {=0A= return CollapseWhitespace(str) =3D=3D "";=0A= }=0A= =0A= // Check if a character is a letter=0A= function IsLetterOrDigit(ch) {=0A= return ((ch >=3D "a" && ch <=3D "z") ||=0A= (ch >=3D "A" && ch <=3D "Z") ||=0A= (ch >=3D '0' && ch <=3D '9'));=0A= }=0A= =0A= // Check if a character is a space character=0A= function IsSpace(ch) {=0A= return (" \t\r\n".indexOf(ch) >=3D 0);=0A= }=0A= =0A= // Converts any instances of "\r" or "\r\n" style EOLs into "\n" (Line = Feed),=0A= // and also trim the extra newlines and whitespaces at the end.=0A= var eol_re_ =3D /\r\n?/g;=0A= var trailingspc_re_ =3D /[\n\t ]+$/;=0A= function NormalizeText(str) {=0A= return str.replace(eol_re_, "\n").replace(trailingspc_re_, "");=0A= }=0A= =0A= // Inserts s (word break tag) after every n non-space chars and/or=0A= // after or before certain special chars. The input string should be = plain=0A= // text that has not yet been HTML-escaped.=0A= // Params:=0A= // str: The string to insert s into.=0A= // n: The maximum number of consecutive non-space characters to allow = before=0A= // adding a . To turn off this rule (i.e. if you only want to = add=0A= // breaks based on special characters), pass in the value -1.=0A= // chars_to_break_after: The list of special characters (concatenated = into a=0A= // string) after which a should be added, if there is no = natural=0A= // break at that point. To turn off this rule, pass in the empty = string.=0A= // chars_to_break_before: The list of special characters (concatenated = into a=0A= // string) before which a should be added, if there is no = natural=0A= // break at that point. To turn off this rule, pass in the empty = string.=0A= // Returns: The string str htmlescaped, and with s inserted = according to=0A= // the rules specified by the other arguments.=0A= function HtmlEscapeInsertWbrs(str, n, chars_to_break_after,=0A= chars_to_break_before) {=0A= AssertNumArgs(4);=0A= =0A= var out =3D '';=0A= var strpos =3D 0;=0A= var spc =3D 0;=0A= =0A= for (var i =3D 1; i < str.length; ++i) {=0A= var prev_char =3D str.charAt(i - 1);=0A= var next_char =3D str.charAt(i);=0A= if (IsSpace(next_char)) {=0A= spc =3D i;=0A= } else if (i - spc =3D=3D n ||=0A= chars_to_break_after.indexOf(prev_char) !=3D -1 ||=0A= chars_to_break_before.indexOf(next_char) !=3D -1) {=0A= out +=3D HtmlEscape(str.substring(strpos, i)) + '';=0A= strpos =3D i;=0A= spc =3D i;=0A= }=0A= }=0A= out +=3D HtmlEscape(str.substr(strpo